JP3503638B1 - 暗号装置及び暗号プログラム - Google Patents

暗号装置及び暗号プログラム

Info

Publication number
JP3503638B1
JP3503638B1 JP2002280469A JP2002280469A JP3503638B1 JP 3503638 B1 JP3503638 B1 JP 3503638B1 JP 2002280469 A JP2002280469 A JP 2002280469A JP 2002280469 A JP2002280469 A JP 2002280469A JP 3503638 B1 JP3503638 B1 JP 3503638B1
Authority
JP
Japan
Prior art keywords
cache
encryption
processing
conversion table
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002280469A
Other languages
English (en)
Other versions
JP2004120307A (ja
Inventor
幸保 角尾
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2002280469A priority Critical patent/JP3503638B1/ja
Priority to CA002605648A priority patent/CA2605648A1/en
Priority to CA002607116A priority patent/CA2607116A1/en
Priority to CA002605376A priority patent/CA2605376A1/en
Priority to CA002442456A priority patent/CA2442456C/en
Priority to US10/669,269 priority patent/US7454016B2/en
Priority to EP03021864.8A priority patent/EP1404052B1/en
Priority to SG200305740A priority patent/SG115568A1/en
Priority to AU2003248442A priority patent/AU2003248442C1/en
Priority to KR1020030067008A priority patent/KR100571445B1/ko
Application granted granted Critical
Publication of JP3503638B1 publication Critical patent/JP3503638B1/ja
Publication of JP2004120307A publication Critical patent/JP2004120307A/ja
Priority to US12/189,847 priority patent/US8306227B2/en
Priority to AU2009208116A priority patent/AU2009208116A1/en
Priority to AU2009208117A priority patent/AU2009208117A1/en
Priority to AU2009208124A priority patent/AU2009208124A1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【要約】 【課題】 キャッシュ攻撃型暗号解読法という新たな暗
号解読法に対する防御機能を備えた暗号装置を提供す
る。 【解決手段】 ビット列変換に使用する換字テーブル3
05を用いて暗号処理を行う暗号プログラム3Aがキャ
ッシュ4を有するコンピュータに実装された暗号装置に
おいて、暗号処理に先立って換字テーブル305をキャ
ッシュ4にプリロードする手段311を備える。1つの
平文の暗号処理における換字テーブル305に対するア
クセス時のキャッシュミスヒット回数が、任意の平文に
ついてほぼ均一化されるため、換字テーブルの動作エン
トリ数が少ない平文も多い平文も、その暗号時間がほぼ
同じになり、キャッシュ型攻撃暗号解読法の要である鍵
差分を抽出する際に用いる平文の抽出が困難となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータの通信や蓄積
の際にデータを秘匿するための暗号装置に関し、特に換
字テーブルなどの変換表を用いてデータを暗号化する暗
号装置の改良に関する。
【0002】
【従来の技術】一般に暗号方式は、共通鍵暗号と公開鍵
暗号に大別される。共通鍵暗号では、暗号化アルゴリズ
ムは公開するが、暗号化の鍵と復号化の鍵が同一であ
り、鍵の値を秘密にする。他方、公開鍵暗号は、暗号化
の鍵と復号化の鍵が異なっており、暗号化アルゴリズム
に加えて暗号化の鍵を公開し、復号化の鍵を秘密にす
る。公開鍵暗号は、鍵の配送の手間がかからず鍵管理が
容易である等の利点を有するが、共通鍵暗号に比べて処
理量が多くなり処理速度が遅くなるといった問題がある
ため、大量データの暗号化には共通鍵暗号が専ら使用さ
れている。
【0003】共通鍵暗号は、更に、ブロック暗号とスト
リーム暗号とに分けられる。ストリーム暗号は、乱数生
成器が出力する乱数列を1ビットずつデータに作用させ
るビット単位の処理によって暗号化する。他方、ブロッ
ク暗号は、数十ビット以上の比較的長いデータブロック
毎に暗号化および復号化を行う。ブロック暗号の代表的
なものに、DES暗号、FEAL暗号などがある。
【0004】DES暗号やFEAL暗号などの暗号処理
部は、データランダム化部と鍵生成部とで構成される。
鍵生成部は、鍵を拡大し、データランダム化部に出力す
る。データランダム化部は、平文(または暗号文)と鍵
を混ぜ合わせ、暗号文(または平文)を出力する。デー
タランダム化部は、通常、入力部、データ変換部および
出力部で構成される。入力部は、初期置換(IP:In
itial Permutation)など簡単な処理
を行い、出力部は逆初期置換(IP-1)などの処理を行
う。データ変換部は、入力部の出力と鍵生成部で生成さ
れた鍵とを用いて、基本的な単位操作を複数回繰り返
し、結果を出力部へ出力する。単位操作では、排他的論
理和、換字(substitution)、置換(co
ordinate permutation)などの操
作が組み合わされる。
【0005】換字の処理を行う部分は、Sボックスとも
呼ばれる。Sボックスでは、一般に換字テーブルと呼ば
れる変換表が使われ、Sボックスの入力ビット列で表さ
れる番地に格納されているビット列を換字テーブルから
読み出し、Sボックスの出力として出力する。一般にS
ボックスは、使用する換字テーブルの種類に応じて複数
種類存在し、入力ビット数に応じてS7ボックス、S9
ボックスなどとして区別される。各Siボックスは、一
般に1ブロックの暗号化(または復号)の過程で複数回
実行される。
【0006】図に換字テーブルの簡単な例を示す。こ
の例の換字テーブルは16個のエントリを有し、各エン
トリに16進数で0からFの番地が振られており、各エ
ントリに0からFの値が格納されている。左上のエント
リを0番地とし、右方向に1、2、3番地を割振り、2
段目は左から右に4、5、6、7番地を、3段目は同じ
く左から右に8、9、A、B番地を、4段目は同じく左
から右にC、D、E、F番地を割振るものとすると、例
えば、入力ビットが0000(16進数で0)の場合、
0番地のエントリに格納されている16進数で8の値が
読み出され、2進数で表現した1000が出力される。
このような換字テーブルを使用すると、換字テーブルを
交換するだけで異なる暗号変換を実施でき、秘匿通信の
柔軟性が向上する等の利点がある。
【0007】図10は従来の暗号装置のブロック図であ
る。図10において、1はCPU(演算装置)、2はメ
モリ(主記憶)、3は暗号プログラム、4はキャッシュ
であり、CPU1とキャッシュ4との間はデータ線、ア
ドレス線および制御線を含むプロセッサバス5によって
接続され、キャッシュ4とメモリ2との間は、同じくデ
ータ線、アドレス線および制御線を含むメモリバス6に
よって接続されている。周知のようにキャッシュ4は、
メモリ2よりも高速アクセス可能な小容量のメモリであ
り、メモリ2の内容の一部の写しを保持する。CPU1
がプロセッサバス5を通じて要求する命令やデータがキ
ャッシュ4に存在すれば(これをキャッシュヒットと呼
ぶ)、キャッシュ4はキャッシュヒットした命令やデー
タを直ちにCPU1に返却する。他方、CPU1が要求
する命令やデータがキャッシュ4に存在しなければ(こ
れをキャッシュミスヒットと呼ぶ)、キャッシュ4はミ
スヒットした命令やデータを含む所定サイズのデータを
メモリバス6を通じてメモリ2から読み出して自身に格
納すると共にCPU1に該当する命令やデータを返却す
る。ここで、所定サイズのデータとは、例えば32バイ
ト、128バイトといったサイズである。このようなサ
イズでキャッシュ4に読み込んでおくことにより、命令
が実行される場合には実行アドレスが近い命令が続けて
実行されることが多いという原理(命令の局所性の原
理)により、キャッシュヒット率を高めることができ、
高速化が可能となる。
【0008】暗号プログラム3は、前述したDES暗号
やFEAL暗号などの共通鍵暗号を実現するプログラム
であり、通常は図示しない磁気ディスク等の補助記憶装
置に格納されており、使用時に図10に示すようにメモ
リ2にロードされて実行される。図10のメモリ2のブ
ロックの右に記載した構成図は、1つの平文を暗号化す
る際の暗号プログラム3の処理の内容を示している。
【0009】暗号プログラム3は、他のプログラムから
の呼出しなどによって起動されると(ステップ30
1)、先ず、入力部302によって、平文の入力、初期
置換などの処理を行い、その後、鍵生成部303による
鍵生成処理、データ変換部304によるデータ変換処理
が実行される。鍵生成部303では、暗号プログラム3
に設定されている鍵を拡大し、データ変換部304で使
う幾つかの鍵(拡大鍵)を生成する。拡大鍵は、共通鍵
が変更されなければ変化せず、平文や暗号文に依存しな
い。そのため、鍵生成部303をあらかじめ一度実行し
て拡大鍵を生成記憶し、暗号化/復号化では記憶した拡
大鍵を使い、鍵生成部303を動作させない場合もあ
る。データ変換部304は、入力部302から出力され
た初期置換後の平文と鍵生成部303で生成された鍵を
混ぜ合わせる基本操作を複数回繰り返し、結果のデータ
を出力する。このとき、換字を行う場合は、暗号プログ
ラム3に予め設定されている換字テーブル305をアク
セスして換字処理が実行される。データ変換部304で
複数回の基本操作が繰り返されて得られたデータは、出
力部306において逆初期置換などの処理が実行され、
最終的に得られた暗号文が呼出し元のプログラム等に返
却され、1つの平文の暗号化を終える(ステップ30
7)。復号処理は、暗号化の逆となり、ほぼ同様の動作
となる。
【0010】一方、暗号アルゴリズムで使われる鍵を解
読する方法が幾つか存在する。古典的な解読方法は、鍵
の全数探索法と呼ばれるもので、鍵の値として取りうる
全ての値を用いて既知の平文の暗号化を試み、既知の暗
号文と一致するかどうかを調べるものである。しかし、
この方法は鍵長が長くなると調べるべき鍵の候補数が膨
大となり、現実的でなくなる。このため、調べるべき鍵
の候補数を現実的な範囲に押え込む解読方法として、差
分解読法や線形解読法が提案されている。更に近年にお
いては、主に公開鍵暗号を対象としたタイミングアタッ
クと呼ばれる方法が提案され(後述する非特許文献1参
照)、更にタイミングアタックに対する防御技術が提案
されている(後述する特許文献1参照)。
【0011】非特許文献1に記載されるタイミングアタ
ックは、公開鍵暗号の基本演算である冪乗剰余演算の演
算時間の差違に基づいて秘密鍵の候補を絞り込むもので
あり、このため特許文献1では、冪乗剰余演算毎に伝搬
遅延によるクリティカルパスの遅延時間を変化させるこ
とで、公開鍵暗号に対するタイミングアタックを防御し
ている。
【0012】
【非特許文献1】Paul C.Kohcer,”Ti
ming Attacks on Implement
ations of Diffie−Hellman,
RSA,DSS,and Other System
s,AdvancesmCryptology:Pro
ceedings of Crypto 96,Ple
num Press,1995,pp104−113
【特許文献1】特開平10−222065号公報
【0013】
【発明が解決しようとする課題】本発明者は、換字テー
ブルを用いて暗号化を行う図10に示したような暗号装
置の安全性を研究する過程で、新たな暗号解読法を見出
した。以下、この新たな暗号解読法をキャッシュ攻撃型
暗号解読法と呼び、その解読方法について説明する。
【0014】今、図11に示すように、平文P0と鍵k
0の排他的論理和で換字テーブルSを引いた出力値と、
平文P1と鍵k1の排他的論理和で同じ換字テーブルS
を引いた出力値とを暗号文とする暗号器を考えてみる。
そして、双方で換字テーブルSのそれぞれ異なるエント
リを引いたものとする。このとき、次式が成り立つ。 P0○k0≠P1○k1 P0○P1≠k0○k1=Δk …(1) ここで、記号○は排他的論理和を示し、鍵k0、k1の
ビット数はnである。また、Δkを鍵差分と呼ぶ。
【0015】式(1)は2テーブルモデルであるが、一
般にnテーブルモデルへ拡張することができ、次式が導
き出せる。 ここで、i、j=1〜nである。
【0016】式(2)は、暗号過程(または復号過程)
で換字テーブルSをn回引く場面がある場合に、全ての
場面で換字テーブルSの異なるエントリを引くこととな
る任意の2つの平文Piと平文Pjの排他的論理和は鍵
差分Δkijに一致せず、且つ、任意の2つの鍵はその
鍵差分がΔkijとなる関係にあることを意味する。こ
のような鍵差分Δkijが求まれば、鍵探索の範囲は2
2Nから2Nに狭まる。例えば、図11においてk0〇k
1=ΔkのNビットが求まれば、k0のNビットを全数
探査すればk1=k0〇Δkで他方のNビットのk1が
計算できるからである。これにより、k0とk1の2N
ビットの全数探査が、k0のみのNビットの全数探査で
済むようになる。
【0017】鍵差分Δkijは、例えば以下のようにし
て求めることができる。先ず、図12(a)に示すよう
に、鍵差分Δkijの取りうる全ての値毎に初期値とし
て値0のカウンタを設定したテーブルを用意する。次
に、暗号過程の全場面で換字テーブルSの異なるエント
リを引く多数の平文の集合から任意のペアを抽出し、そ
のペアの排他的論理和の値と一致する鍵差分Δkijに
対応するカウンタを+1する処理を、全てのペアについ
て繰り返す。この結果、カウンタの値は図12(b)に
示すように更新されていき、初期値0のまま或いは極め
て小さな値(この値は式(2)の成立確率に依存する)
になっているカウンタに対応する鍵差分Δkijの値が
求める鍵差分となる。
【0018】次に、暗号過程(または復号過程)で換字
テーブルSをn回引く場面がある場合に、全ての場面
(もしくは、かなり多くの場面)で換字テーブルSの異
なるエントリを引くこととなる任意の平文の集合を求め
る方法について説明する。
【0019】図10で説明したように、キャッシュ4を
備えるコンピュータで暗号プログラム3を実行すると、
CPU1の処理速度が一定で、他のプログラムが実行さ
れていない理想的な環境下でも、与える平文(または暗
号文)によって暗号化処理時間(または復号時間)が相
違する。その理由は、与える平文が異なれば、換字テー
ブル(S)305の使用するエントリが異なる場合があ
り、換字テーブル305アクセス時のキャッシュヒット
率が相違するからである。つまり、キャッシュミスヒッ
トが最も多くなる平文の暗号処理時間が最も長くなる。
キャッシュミスヒットが最も多くなる平文は、換字テー
ブルSを引く全場面(もしくは、かなり多くの場面)で
異なるエントリを引いている可能性があると推測され
る。
【0020】本発明者は、この推測の正しさを、既知の
暗号アルゴリズムを用いて検証した。検証に使用した暗
号アルゴリズムは、1996年に三菱電気株式会社によ
って提案されたMISTY1という、64ビットのブロ
ック暗号(鍵長は128ビット)である。図13にMI
STY1のデータランダム化部の構成を示し、図14
データランダム化部で使用されるFOi関数と、さらに
このFOi関数で使用されるFIij関数の構成を示
す。FOi関数は合計8個あり、1つのFOi関数の中
に3個のFIij関数があり、1つのFIij関数の中
で換字テーブルS9が2回使用され、換字テーブルS7
が1回使用されている。つまり、暗号化の過程で、換字
テーブルS9は、8×3×2=48回使用され、換字テ
ーブルS7は8×3×1=24回使用される。換字テー
ブルS9は入力が9ビットで、512のエントリ(サン
プルプログラムでは1エントリのサイズは32ビットで
記述されていた)を有し、換字テーブルS7は入力が7
ビットで、128のエントリ(サンプルプログラムでは
1エントリのサイズは8ビットで記述されていた)を有
する。
【0021】図15は、MISTY1で多数の平文を暗
号化したときの暗号化時間の分布を示し、横軸は暗号化
時間、縦軸は平文数である。また、図16は、暗号化時
間と変換テーブルS9の動作エントリ数の関係を示し、
17は、暗号化時間と変換テーブルS7の動作エント
リ数の関係を示す。ここで、動作エントリ数とは、変換
テーブルのエントリの内、幾つのエントリが暗号化処理
で使用されたかを示し、変換テーブルS9の最大値は4
8、変換テーブルS7の最大値は24である。図15
よび図16から理解されるように、暗号処理時間が或る
しきい値T以上かかる平文は、換字テーブルS9を引く
殆どの場面で異なるエントリを引いており、毎回キャッ
シュミスヒットを起こしているために暗号処理時間が長
くなっている。これに対し、変換テーブルS7は、動作
エントリ数にかかわらず暗号処理時間はほぼ一定であ
る。変換テーブルS9とS7とでこのような差違が生じ
る理由は、変換テーブルS7は128エントリと小型の
テーブルであるため、何回かミスヒットするとキャッシ
ュ4にテーブルの大部分のエントリがロードされて、そ
の後ミスヒットが発生しなくなるのに対し、変換テーブ
ルS9は512エントリと大型のテーブルであるため、
そのような状況が発生しないためと考えられる。従っ
て、図11および図12で説明した原理による攻撃は、
換字テーブルS7に対しては余り効果がなく、換字テー
ブルS9が攻撃対象となる。
【0022】図18は、暗号過程で換字テーブルS9を
ほぼ48回引く可能性が高い平文の集合を抽出する処理
の一例を示す。先ず、MISTY1の暗号プログラムを
コンピュータのメモリにロードする(ステップ10
1)。次に、乱数によって平文を生成し(ステップ10
2)、コンピュータのキャッシュをクリアし(ステップ
103)、前記生成した平文を暗号化対象の平文に設定
して(ステップ104)、MISTY1による暗号化と
この暗号化の処理に要した時間の測定とを行う(ステッ
プ105)。次に、測定した暗号化時間が予め設定した
しきい値T以上であるかどうかを判定する(ステップ1
06)。ここで、しきい値Tは図15および図16のT
で示される暗号化時間を使用する。しきい値Tは、解読
が成立するのに必要充分な数の平文が得られるように設
定する。因みに、式(2)の成立確率が高いほど少ない
数の平文で足りる。そして、暗号化時間がしきい値T以
上であれば、今回の平文を保存し(ステップ107)、
ステップ102に戻って上述した処理を繰り返す。暗号
化時間がしきい値T以上でなければ、今回の平文を保存
せずにステップ102に戻って上述した処理を繰り返
す。このような処理の繰り返しによって、暗号過程で換
字テーブルS9をほぼ48回引く可能性が高い平文を充
分な数だけ抽出することができる。
【0023】こうして抽出した平文の集合を用いて、図
12で示したような方法で鍵差分Δkを決定し、鍵の候
補を絞り込む。そして、最終的には、確定しなかった鍵
のビット部分について総当りによってビット値を確定す
ることにより、秘密鍵の全ビットを特定する。
【0024】このように、キャッシュを備えるコンピュ
ータに、換字テーブルを用いて暗号化処理を行う暗号プ
ログラムを実装した暗号装置では、キャッシュ攻撃型暗
号解読法により、暗号化時間から換字エントリの動作エ
ントリ数が推測され、鍵差分の決定によって鍵の候補数
が絞り込まれ、最終的には鍵の全ビットが解読されてし
まう危険性がある。キャッシュ攻撃型暗号解読法はタイ
ミングアタックの一種と考えられるが、冪乗剰余積演算
を使用しない共通鍵暗号に対して適用されるため、特許
文献1記載の技術では防御できない。このため、キャッ
シュ攻撃型暗号解読方法に頑健な暗号装置の開発が強く
望まれる。
【0025】本発明はこのような事情に鑑みて提案され
たものであり、その目的は、キャッシュ攻撃型暗号解読
法に対する防御機能を備えた暗号装置を提供することに
ある。
【0026】
【課題を解決するための手段】第1の観点に基づく本発
明の暗号装置は、ビット列変換に使用する変換表を用い
て暗号処理または復号処理を行う暗号プログラムをキャ
ッシュ装備のコンピュータに実装した暗号装置におい
て、1つの平文または1つの暗号文の暗号処理または復
号処理における前記変換表に対するアクセス時のキャッ
シュミスヒット回数を、任意の平文または暗号文につい
てほぼ均一化する調整手段を備え、前記調整手段は、暗
号処理または復号処理で使用する複数の変換表をキャッ
シュにプリロードするプリロード手段を備え、前記プリ
ロード手段は、前記複数の変換表のうち攻撃対象とされ
る可能性の高いものとして設定された変換表を他の変換
表より後にプリロードするものであることを特徴とす
る。また、ビット列変換に使用する変換表を用いて暗号
処理または復号処理を行う暗号プログラムを、高い優先
度の付いたデータほどキャッシュから掃き出され難くす
ることができるキャッシュ装備のコンピュータに実装し
た暗号装置において、1つの平文または1つの暗号文の
暗号処理または復号処理における前記変換表に対するア
クセス時のキャッシュミスヒット回数を、任意の平文ま
たは暗号文についてほぼ均一化する調整手段を備え、前
記調整手段は、暗号処理または復号処理で使用する複数
の変換表をキャッシュにプリロードするプリロード手段
を備え、前記プリロード手段は、前記複数の変換表のう
ち攻撃対象とされる可能性の高いものとして設定された
変換表は高い優先度を設定してプリロードするものであ
ることを特徴とする。ここで、前記プリロード手段は、
1つの平文または1つの暗号文の暗号処理または復号処
理において同じ変換表を複数の時点でプリロードするも
のであっても良い。
【0027】
【0028】第2の観点に基づく本発明の暗号装置は、
ビット列変換に使用する変換表を用いて暗号処理または
復号処理を行う暗号プログラムをキャッシュ装備のコン
ピュータに実装した暗号装置において、1つの平文また
は1つの暗号文の暗号処理または復号処理における前記
変換表に対するアクセス時のキャッシュミスヒット回数
を、任意の平文または暗号文についてキャッシュミスヒ
ット回数が増加する方向に調整してほぼ均一化する調整
手段を備える。具体的には、以下の(1)乃至(5)に
記載される何れかの調整手段を備える。 (1) 変換表のエントリのうち暗号処理または復号処理
で実際に使用されたエントリを管理する使用エントリ管
理手段と、変換表のエントリのうち暗号処理または復号
処理で実際に使用されなかったエントリをアクセスする
不使用エントリロード手段とを備える調整手段。 (2) 変換表のエントリのうち暗号処理または復号処理
で実際に使用されたエントリを管理する使用エントリ管
理手段と、変換表の使用エントリの最大数と暗号処理ま
たは復号処理で実際に使用されたエントリ数の差分だけ
キャッシュミスヒットを発生させるキャッシュミスヒッ
ト発生手段とを備える調整手段。 (3) 暗号処理または復号処理で変換表のエントリにキ
ャッシュヒットした回数を管理する使用エントリ管理手
段と、前記キャッシュヒットした回数だけキャッシュミ
スヒットを発生させるキャッシュミスヒット発生手段と
を備える調整手段。 (4) 暗号処理または復号処理で変換表のエントリにキ
ャッシュヒットする毎にキャッシュミスヒットを発生さ
せる手段を備える調整手段。 (5) 1つの平文または1つの暗号文の暗号処理または
復号処理で参照される総回数がn回である同一内容の変
換表をn個備え、各参照毎にそれぞれ異なる変換表を参
照させる調整手段。ここで、前記(1)〜(5)の調整
手段は、暗号処理または復号処理で使用する複数の変換
表のうち攻撃対象とされる可能性の高いものとして設定
された変換表のみを調整対象として良い。また、攻撃対
象とされる可能性の高い変換表には、エントリ総数に対
する参照総エントリ数(動作エントリ数)の比である利
用率が小さな変換表を含むようにして良い。
【0029】
【0030】第3の観点に基づく本発明の暗号装置は、
ビット列変換に使用する変換表を用いて暗号処理または
復号処理を行う暗号プログラムをキャッシュ装備のコン
ピュータに実装した暗号装置において、1つの平文また
は1つの暗号文の実質的な暗号処理または復号処理に要
した時間を計測する計測手段と、計測された時間が予め
設定された時間より短い場合、予め設定された一定時間
または無作為に決定した時間だけ暗号処理または復号処
理に要する時間を常に或いは無作為に延長する延長手段
とを含む調整手段を備えたことを特徴とする
【0031】
【0032】
【作用】第1および第2の観点に基づく本発明の暗号装
置にあっては、1つの平文または1つの暗号文の暗号処
理または復号処理における換字テーブル等の変換表に対
するアクセス時のキャッシュミスヒット回数が、任意の
平文または暗号文についてほぼ均一化されるため、換字
テーブル等の変換表の動作エントリ数が少ない平文また
は暗号文も、反対に多い平文または暗号文も、その暗号
時間または復号時間がほぼ同じになり、キャッシュ型攻
撃暗号解読法の要である鍵差分を抽出する際に用いる平
文の抽出が困難となる。このため鍵差分を決定できず、
鍵の解読が困難となる。
【0033】
【0034】第3の観点に基づく本発明の暗号装置にあ
っては、真に最大暗号時間を与える平文とそれ以外の平
文の一部とが同じ暗号時間および復号時間になり、キャ
ッシュ型攻撃暗号解読法の要である鍵差分を抽出する際
に用いる平文の抽出が困難となる。その結果、鍵差分を
決定できず、結果として鍵の解読が困難となる。
【0035】
【0036】
【発明の第1の実施の形態】図1を参照すると、本発明
の第1の実施の形態にかかる暗号装置は、ハードウェア
としてCPU1とメモリ(主記憶)とキャッシュ4と
を含んで構成されるコンピュータ上に暗号プログラム3
Aが実装されている。
【0037】CPU1とキャッシュ4との間はデータ
線、アドレス線および制御線を含むプロセッサバス5に
よって接続され、キャッシュ4とメモリ2との間は、同
じくデータ線、アドレス線および制御線を含むメモリバ
ス6によって接続されている。キャッシュ4は、メモリ
2よりも高速アクセス可能な小容量のメモリであり、メ
モリ2の内容の一部の写しを保持する。CPU1がプロ
セッサバス5を通じて要求する命令やデータがキャッシ
ュ4に存在すれば、キャッシュヒットした命令やデータ
がキャッシュ4から直ちにCPU1に返却される。他
方、CPU1が要求する命令やデータがキャッシュ4に
存在しなければ、キャッシュ4はミスヒットした命令や
データを含む所定サイズのデータをメモリバス6を通じ
てメモリ2から読み出して自身に格納すると共にCPU
1に該当する命令やデータを返却する。前記所定サイズ
としては、例えば32バイト、128バイトが使用され
る。
【0038】暗号プログラム3Aは、DES暗号やFE
AL暗号など、ビット列変換に使用する変換表を用いて
暗号処理または復号処理を行う共通鍵暗号を実現するプ
ログラムであり、通常は図示しない磁気ディスク等の補
助記憶装置に格納されており、使用時に図1に示すよう
にメモリ2にロードされて実行される。図1のメモリ2
のブロックの右に記載した構成図は、1つの平文を暗号
化する際の暗号プログラム3Aの処理の内容を示してい
る。ここで、プリロード部311が調整手段を構成す
る。
【0039】暗号プログラム3Aは、他のプログラムか
らの呼出しなどによって起動されると(ステップ30
1)、先ず、入力部302によって、平文の入力、初期
置換などの処理を行う。次いで、本実施の形態の特徴と
して、プリロード部311によって、ビット列変換に使
用する変換表である換字テーブル305をキャッシュ4
にプリロードする処理を行う(ステップ311)。この
プリロードは、例えば、換字テーブル305の全エント
リを一度リードする処理で可能である。このプリロード
処理時に発生するキャッシュミスヒット回数をC回とす
る。このキャッシュミスヒット回数Cは、任意の平文お
よび暗号文について等しい。
【0040】プリロード対象とする換字テーブル305
は、本実施の形態の場合、暗号処理または復号処理で使
用する全ての換字テーブルのうち、キャッシュ攻撃暗号
解読法で攻撃される可能性の高い換字テーブルである。
攻撃対象とされる可能性の高い換字テーブルは、当該暗
号プログラムのアルゴリズムに照らして事前に決定さ
れ、暗号プログラム3Aに設定されている。図13およ
び図14で説明したMISTY1の場合、変換テーブル
S9が設定される。一般的に、図16で示されるよう
に、暗号時間が長くなるのに応じて動作エントリ数が増
加する傾向を示す換字テーブルが攻撃対象とされる可能
性が高い。また、簡便な方法として、エントリ総数に対
する参照総エントリ数(動作エントリ数)の比である利
用率が小さい変換表を、攻撃対象とされる可能性の高い
換字テーブルとして決定する方法を用いることができ
る。
【0041】次に、暗号プログラム3Aは、鍵生成部3
03による鍵生成処理、データ変換部304によるデー
タ変換処理を実行する。鍵生成部303では、暗号プロ
グラム3Aが使用する共通鍵を拡大し、データ変換部3
04で使う幾つかの鍵を生成する。データ変換部304
は、入力部302から出力された初期置換後の平文と鍵
生成部303で生成された鍵を混ぜ合わせる基本操作を
複数回繰り返し、暗号文を出力する。このとき、換字を
行う場合は、暗号プログラム3Aに予め設定されている
換字テーブル305をアクセスして換字処理が実行され
るが、換字テーブルのうちプリロード部311でキャッ
シュ4にプリロードされた換字テーブルのアクセス時に
はほぼ100%近くキャッシュヒットする。換言すれ
ば、攻撃対象となる可能性の高いものとして設定された
換字テーブルに対する、実質的な暗号処理におけるキャ
ッシュミスヒット回数はほぼ0に均一化される。
【0042】データ変換部304で複数回の基本操作が
繰り返されて得られたデータは、出力部306において
逆初期置換などの処理が実行され、最終的に得られた暗
号文が呼出し元のプログラム等に返却され、1つの平文
の暗号化を終える(ステップ307)。
【0043】以上の暗号プログラム3Aの動作は平文を
暗号化する際の動作であるが、一般に暗号処理と復号処
理の大部分は同じである。概略を説明すると、先ず、入
力部302によって、暗号文の入力、初期置換などの処
理を行い、次いで、プリロード部311によって、攻撃
される可能性の高い換字テーブル305をキャッシュ4
にプリロードし、鍵生成部303による鍵生成処理、デ
ータ変換部304によるデータ変換処理を実行する。鍵
生成部303では、暗号時と逆の順番で順次に鍵を生成
してデータ変換部304に供給し、データ変換部304
では、暗号時と逆の順番で基本操作を複数回繰り返し、
その結果を出力する。最後に出力部306において逆初
期置換などの処理が実行され、最終的に得られた平文が
呼出し元のプログラム等に返却され、1つの暗号文の復
号を終える(ステップ307)。
【0044】本実施の形態によれば、キャッシュ型攻撃
暗号解読法の攻撃対象とされる可能性の高い換字テーブ
ルについては、1つの平文または1つの暗号文の実質的
な暗号処理または復号処理におけるアクセス時のキャッ
シュミスヒット回数が、任意の平文または暗号文につい
てほぼ0に均一化される。また、その換字テーブルのプ
リロード時におけるキャッシュミスヒット回数は常に一
定回数Cとなる。従って、攻撃対象とされる可能性の高
い換字テーブルの動作エントリ数が少ない平文または暗
号文も、反対に多い平文または暗号文も、その暗号時間
または復号時間がほぼ同じになり、キャッシュ型攻撃暗
号解読法の要である鍵差分を抽出する際に用いる平文の
抽出が困難となる。そうなると、鍵差分を決定できず、
結果として鍵の解読が困難となる。
【0045】以上の説明では、キャッシュ型攻撃暗号解
読法で攻撃される可能性の高い換字テーブルだけをプリ
ロードしたが、キャッシュ4の容量が許すなら、全ての
換字テーブルをプリロードする。この場合、真に残した
い換字テーブルがキャッシュのLRU等の掃き出しアル
ゴリズムで掃き出されてしまわないように、攻撃される
可能性の高い換字テーブルは他の換字テーブルより後に
プリロードする。また、キャッシュ4に保持されたデー
タに優先度を付けることができ、優先度の高いデータほ
ど掃き出され難くすることができるコンピュータでは、
攻撃される可能性の高い換字テーブルのデータに高い優
先度を設定してプリロードする。
【0046】図1の実施の形態では、換字テーブル30
5を参照する箇所が暗号プログラム3Aのデータ変換部
304内だけであるDES等の共通鍵暗号を対象とした
ので、換字テーブルのプリロード部311をデータ変換
部304の直前に設けたが、スタートのステップ301
の直後に設けるようにしても良い。こうすれば、入力部
302や、鍵生成部303においても換字テーブル30
5を参照するような共通鍵暗号に対しても適用可能であ
る。また、同じ換字テーブルのプリロードを複数の時
点、例えばスタートのステップ301の直後とデータ変
換部304の直前に設けるようにしても良い。更に、暗
号プログラム3Aが呼出される前に、換字テーブル30
5のプリロード処理を行うプログラムを別途設けること
も考えられる。
【0047】また、図1の実施の形態では、プリロード
対象となる換字テーブルの全エントリがキャッシュ4に
プリロードされるようにしたが、例えば約半分程度のエ
ントリをプリロードしても、キャッシュミスヒット回数
を或る程度均一化できるため、必ずしも全エントリをプ
リロードする必要はない。
【0048】
【発明の第2の実施の形態】図2(a)を参照すると、
本発明の第2の実施の形態にかかる暗号装置は、図1の
第1の実施の形態にかかる暗号装置と比較して、暗号プ
ログラム3Bには、換字テーブル305のプリロード部
がなく、その代わりに、換字テーブル305のエントリ
のうち暗号処理または復号処理で実際に使用されたエン
トリを管理する使用エントリ管理部312と、換字テー
ブル305のエントリのうち暗号処理または復号処理で
実際に使用されなかったエントリをアクセスする不使用
エントリロード部313とを備えている。ここで、使用
エントリ管理部312と不使用エントリロード部313
とで調整手段を構成する。以下、第1の実施の形態の暗
号装置との相違点を中心に、本実施の形態の構成と動作
を説明する。
【0049】図2(b)は使用エントリ管理部312に
備わる管理テーブルの一例を示す。この管理テーブル
は、キャッシュ攻撃型暗号解読法によって攻撃される可
能性の高い換字テーブル毎に対応して設けられ、対応す
る換字テーブルと同数のエントリを持つ。管理テーブル
の各エントリは、暗号処理および復号処理の開始時点で
未使用を示す値にクリアされる。図2(b)では、×の
記号が未使用を示す。使用エントリ管理部312は、暗
号処理または復号処理の過程で、攻撃される可能性の高
い換字テーブルのエントリが参照される毎に、対応する
管理テーブルの対応するエントリを使用済みを示す値に
変更する。図2(b)では、○の記号が使用済みを示
す。つまり、○の記号が付けられたエントリに対応する
換字テーブルエントリは動作エントリであることが示さ
れる。
【0050】不使用エントリロード部313は、実際の
暗号処理または復号処理でもはや換字テーブル305が
参照されなくなった時点で、図2(b)の管理テーブル
を参照し、攻撃対象とされる可能性の高い換字テーブル
毎に、参照されなかったエントリの全てをロード(参
照、リード)する命令を実行する。
【0051】次に本実施の形態の効果を説明する。今、
攻撃対象とされる可能性の高い換字テーブルとして、M
ISTY1の換字テーブルS9を考える。この換字テー
ブルS9のエントリ総数は512、1文の暗号化または
復号化で動作するエントリ数(最大動作エントリ数)は
48である。図18で説明したように攻撃者は、暗号プ
ログラム3Bの起動前に換字テーブルS9をクリアする
ため、1つの平文を暗号化する際の換字テーブルS9の
キャッシュミスヒット回数の最大値は48になる。ま
た、実際上は出現しないかも知れないが、1つの平文を
暗号化する際の換字テーブルS9のキャッシュミスヒッ
ト回数の最小数を1とする。
【0052】キャッシュミスヒット回数が最大の48の
場合、動作エントリ数も48なので、不使用エントリロ
ード部313は、512−48=464エントリをリー
ドする。このときのキャッシュミスヒット回数は、既に
48エントリのキャッシュミスヒットにより換字エント
リS9の未だ参照されていない他の多くのエントリがキ
ャッシュ4に存在するため、「小さな数の或る回数」と
なる。他方、キャッシュミスヒット回数が最小の1の場
合、動作エントリ数も1なので、不使用エントリロード
部313は、512−1=511エントリをリードす
る。このときのキャッシュミスヒット回数は、未だ1エ
ントリのキャッシュミスしか起こしていないので換字エ
ントリS9の未だ参照されていない他の多くのエントリ
はキャッシュ4に存在しないため、「大きな数の或る回
数」となる。従って、最終的なキャッシュミスヒット回
数は、キャッシュミスヒット回数が最大の48の場合、
48+「小さな数の或る回数」となり、キャッシュミス
ヒット回数が最小の1の場合、1+「大きな数の或る回
数」となり、両者は均一化される傾向を示す。このた
め、第1の実施の形態と同様の理由で、キャッシュ攻撃
型暗号解読法に対する防御が可能になる。
【0053】以上の説明では、キャッシュ型攻撃暗号解
読法で攻撃される可能性の高い換字テーブルについてだ
け不使用エントリ分のロードを実行したが、全ての換字
テーブルを対象にして同様のロードを実行しても良い。
【0054】
【発明の第3の実施の形態】図3を参照すると、本発明
の第3の実施の形態にかかる暗号装置は、図2(a)の
第2の実施の形態にかかる暗号装置と比較して、暗号プ
ログラム3Cに、不使用エントリロード部313の代わ
りに、換字テーブル305の使用エントリの最大数と暗
号処理または復号処理で実際に使用されたエントリ数の
差分である不足エントリ数だけキャッシュミスヒットを
発生させるキャッシュミスヒット発生部314を備えて
いる。ここで、使用エントリ管理部312とキャッシュ
ミスヒット発生部314とで調整手段を構成する。以
下、第2の実施の形態の暗号装置との相違点を中心に、
本実施の形態の構成と動作を説明する。
【0055】第2の実施の形態と同様に使用エントリ管
理部312は、図2(b)に示したような管理テーブル
によって、キャッシュ攻撃型暗号解読法によって攻撃さ
れる可能性の高い換字テーブル毎に、暗号処理または復
号処理で実際に使用されたエントリを管理している。キ
ャッシュミスヒット発生部314は、実際の暗号処理ま
たは復号処理でもはや換字テーブル305が参照されな
くなった時点で、図2(b)の管理テーブルを参照し、
攻撃対象とされる可能性の高い換字テーブル毎に、使用
エントリの最大数と使用されたエントリ数の差分である
不足エントリ数を算出する。そして、その不足エントリ
数の総数だけ、キャッシュミスヒットを発生させる処理
を実行する。この処理は、例えばメモリ2上に暗号化お
よび復号化で使わないデータ領域を設定しておき、キャ
ッシュ4に一度に読み込まれるデータサイズ以上の間隔
でリード要求を発行することで可能である。
【0056】次に本実施の形態の効果を説明する。今、
攻撃対象とされる可能性の高い換字テーブルとして、M
ISTY1の換字テーブルS9を考える。この換字テー
ブルS9のエントリ総数は512、最大動作エントリ数
は48である。図18で説明したように攻撃者は、暗号
プログラム3Cの起動前に換字テーブルS9をクリアす
るため、1つの平文を暗号化する際の換字テーブルS9
のキャッシュミスヒット回数の最大値は48である。ま
た、最小数は第2の実施の形態と同様に1を想定する。
【0057】キャッシュミスヒット回数が最大の48の
場合、動作エントリ数も48なので、キャッシュミスヒ
ット発生部314は、不足エントリ数として、48−4
8=0を算出する。従って、この場合はキャッシュミス
ヒットはもはや1回も発生させない。他方、キャッシュ
ミスヒット回数が最小の1の場合、動作エントリ数も1
なので、キャッシュミスヒット発生部314は、不足エ
ントリ数として、48−1=47を算出する。そして、
47回だけキャッシュミスヒットを発生させる。従っ
て、最終的なキャッシュミスヒット回数の総数は1+4
7=48となり、両者は均一化される。このため、第2
の実施の形態と同様の理由で、キャッシュ攻撃型暗号解
読法に対する防御が可能になる。
【0058】以上の説明では、キャッシュ型攻撃暗号解
読法で攻撃される可能性の高い換字テーブルについてだ
け不足エントリ分のキャッシュミスヒットを発生させた
が、全ての換字テーブルを対象にして同様のキャッシュ
ミスヒットを発生させるようにしても良い。
【0059】
【発明の第4の実施の形態】図4(a)を参照すると、
本発明の第4の実施の形態にかかる暗号装置は、図2
(a)の第2の実施の形態にかかる暗号装置と比較し
て、暗号プログラム3Dに、使用エントリ管理部312
および不使用エントリロード部313の代わりに、暗号
処理または復号処理で換字テーブル305のエントリに
キャッシュヒットした回数を管理する使用エントリ管理
部315および前記キャッシュヒットした回数だけキャ
ッシュミスヒットを発生させるキャッシュミスヒット発
生部316とを備えている。ここで、使用エントリ管理
部315とキャッシュミスヒット発生部316とで調整
手段を構成する。以下、第2の実施の形態の暗号装置と
の相違点を中心に、本実施の形態の構成と動作を説明す
る。
【0060】図4(b)は使用エントリ管理部315に
備わる管理テーブルの一例を示す。この管理テーブル
は、キャッシュ攻撃型暗号解読法によって攻撃される可
能性の高い換字テーブル毎に対応して設けられ、対応す
る換字テーブルと同数のエントリを持つ。管理テーブル
の各エントリは、暗号処理および復号処理の開始時点で
0の値にクリアされる。使用エントリ管理部315は、
暗号処理または復号処理の過程で、攻撃される可能性の
高い換字テーブルのエントリが参照される毎に、対応す
る管理テーブルの対応するエントリの値を+1する。
【0061】キャッシュミスヒット発生部316は、実
際の暗号処理または復号処理でもはや換字テーブル30
5が参照されなくなった時点で、図4(b)の管理テー
ブルを参照し、攻撃対象とされる可能性の高い換字テー
ブル毎に、キャッシュヒットした回数の総数を求め、そ
の総数だけキャッシュミスヒットを発生させる。この処
理は、第3の実施の形態のキャッシュミスヒット発生部
314と同様に行える。
【0062】次に本実施の形態の効果を説明する。今、
攻撃対象とされる可能性の高い換字テーブルとして、M
ISTY1の換字テーブルS9を考える。この換字テー
ブルS9のエントリ総数は512、最大動作エントリ数
は48である。図18で説明したように攻撃者は、暗号
プログラム3Dの起動前に換字テーブルS9をクリアす
るため、1つの平文を暗号化する際の換字テーブルS9
のキャッシュミスヒット回数の最大値は48である。ま
た、最小数は第2の実施の形態と同様に1を想定する。
【0063】キャッシュミスヒット回数が最大の48の
場合、動作エントリ数も48なので、図4(b)の管理
テーブルのエントリの値は、何れか48個のエントリだ
けが値1を示し、他の全てのエントリは値0になる。キ
ャッシュミスヒット発生部316は、キャッシュヒット
回数の総数として、2以上の値を持つエントリ毎に、そ
のエントリの値から1を引いた値を計算し、その結果を
合計する。従って、今の場合は0になる。従って、キャ
ッシュミスヒット発生部316は1回もキャッシュミス
ヒットを発生させない。この結果、キャッシュミスヒッ
ト回数の総数は48となる。他方、キャッシュミスヒッ
ト回数が最小の1の場合、動作エントリ数も1なので、
図4(b)の管理テーブルのエントリの値は、何れか1
つのエントリの値が48になり、他の全てのエントリは
値0になる。従って、キャッシュミスヒット発生部31
4は、キャッシュヒット回数として、48−1=47を
求め、キャッシュミスヒットを47回発生させる。この
結果、最終的なキャッシュミスヒット回数の総数は1+
47=48となり、両者は均一化される。このため、第
2の実施の形態と同様の理由で、キャッシュ攻撃型暗号
解読法に対する防御が可能になる。
【0064】以上の説明では、キャッシュ型攻撃暗号解
読法で攻撃される可能性の高い換字テーブルについてだ
けキャッシュヒット回数分のキャッシュミスヒットを発
生させたが、全ての換字テーブルを対象にして同様のキ
ャッシュミスヒットを発生させるようにしても良い。
【0065】また、本実施の形態では、キャッシュヒッ
トした回数分のキャッシュミスヒットをキャッシュミス
ヒット発生部316でまとめて発生したが、他の実施の
形態として、使用エントリ管理部315にキャッシュミ
スヒットを発生させる機能を持たせ、キャッシュヒット
が発生する毎に、つまり図4(b)の管理テーブルの或
るエントリの値を+1したときに2以上の値となる毎
に、1回だけキャッシュミスヒットを発生させるように
しても良い。
【0066】
【発明の第5の実施の形態】図5を参照すると、本発明
の第5の実施の形態にかかる暗号装置は、図10に示し
た従来の暗号装置と比較して、暗号プログラム3Eは、
換字テーブル305が1つの平文または1つの暗号文の
暗号処理または復号処理でn回参照される場合に、換字
テーブル305と同じ内容を持つn個の換字テーブル3
05−1〜305−nを備え、データ変換部304は、
1つの平文または1つの暗号文の暗号処理または復号処
理において換字テーブル305を参照する場合、各参照
毎にそれぞれ異なる換字テーブル305−1〜305−
nを参照するように構成される点で相違する。
【0067】この第5の実施の形態によれば、1つの平
文または1つの暗号文の暗号処理または復号処理におい
て、データ変換部304は、換字テーブル305を参照
する場合、各参照毎にそれぞれ異なる換字テーブル30
5−1〜305−nを参換するため、何回必ずキャッシ
ュミスヒットが発生する。このため、任意の平文または
暗号文について、換字テーブルに対するキャッシュミス
ヒット回数を均一化することができる。従って、キャッ
シュ攻撃型暗号解読法による攻撃を防御することができ
る。
【0068】同じ内容の換字テーブルをn個独立して備
えるようにする換字テーブルは、キャッシュ型攻撃暗号
解読法で攻撃される可能性の高い換字テーブルのみとす
る構成以外に、全ての換字テーブルを対象に複数備える
構成が考えられる。
【0069】
【発明の第6の実施の形態】図6を参照すると、本発明
の第6の実施の形態にかかる暗号装置の前提となる装置
は、図10の従来の暗号装置と比較して、暗号プログラ
ム3Fに、暗号処理および復号処理の開始時に内部のタ
イマTを起動するタイマ起動部321と、暗号処理およ
び復号処理の終了時にタイマTのタイマ値が予め設定さ
れた暗号処理または復号処理の最大時間Tmaxより短い
かどうかを判定する判定部322と、タイマTのタイマ
値が最大時間Tmaxより短い場合に、その差の時間「Tm
ax−T」だけ暗号処理または復号処理の時間を延長する
ためにウエイトを行うウエイト部323とを備えてい
る。ここで、タイマ起動部321と判定部322とウエ
イト部323とで調整手段を構成する。
【0070】上記の最大時間Tmaxとしては、例えば、
15に示したような暗号化時間分布における最大の暗
号化時間が用いられる。勿論、その最大の暗号化時間よ
り若干長い時間を設定しても良い。
【0071】図6の前提装置によれば、1つの平文また
は1つの暗号文の暗号処理または復号処理における暗号
処理時間および復号処理時間が、任意の平文または暗号
文についてほぼ均一化するため、図15の暗号化時間分
布が最大の暗号化時間の箇所に集中する。このため、キ
ャッシュ攻撃型暗号解読法による攻撃を防御することが
できる。
【0072】さて、図7を参照すると、本発明の第6の
実施の形態にかかる暗号装置は、図6の前提装置と比較
して、暗号プログラム3Gに、ウエイト部323に代え
て、予め定められた一定時間Tcだけウエイトを行うウ
エイト部324を備えている。ここで、一定時間Tcと
しては、例えば、図15に示したような暗号化時間分布
における最大暗号時間の半分の時間を用いる。勿論、そ
れより若干長い時間、短い時間を設定しても良い。ここ
で、タイマ起動部321と判定部322とウエイト部3
24とで調整手段を構成する。
【0073】本実施の形態の暗号装置によれば、図15
に示した暗号化時間分布の中央部分の山が最大の暗号時
間の箇所に移動し、真に最大暗号時間を与えた平文に混
合される。このため、キャッシュ型攻撃暗号解読法の要
である鍵差分を抽出する際に用いる平文の抽出が困難と
なる。その結果、鍵差分を決定できず、結果として鍵の
解読が困難となる。
【0074】
【発明の第7の実施の形態】図8を参照すると、本発明
の第7の実施の形態にかかる暗号装置は、図7の第6の
実施の形態の暗号装置と比較して、暗号プログラム3H
に、ウエイト部324に代えて、0か1の何れかの値を
とる乱数rを無作為に生成する乱数生成部325、生成
した乱数rが0か否かを判定する判定部326、乱数r
が0の場合に、ウエイト時間tを乱数によって生成する
ウエイト時間生成部327、生成されたウエイト時間t
だけウエイトを行うウエイト部328を備えている。こ
こで、タイマ起動部321と判定部322、326と、
乱数生成部325とウエイト時間生成部327とウエイ
ト部328とで調整手段を構成する。ウエイト時間生成
部327は、図15に示したような暗号化時間分布にお
けるほぼ最大暗号時間から時間0の範囲内で、ウエイト
時間tを無作為に生成する。
【0075】本実施の形態の暗号装置によれば、図15
に示した暗号化時間分布の特性が不定なものとなり、真
に最大暗号時間を与えた平文とそれ以外の平文とが同じ
暗号時間帯に出現する。このため、キャッシュ型攻撃暗
号解読法の要である鍵差分を抽出する際に用いる平文の
抽出が困難となり、その結果、鍵差分を決定できず、結
果として鍵の解読が困難となる。
【0076】
【0077】
【0078】
【0079】
【0080】
【0081】
【0082】
【0083】
【0084】
【0085】
【0086】
【0087】
【0088】
【発明の効果】以上説明したように本発明によれば、キ
ャッシュ攻撃型暗号解読法という新たな暗号解読法によ
る攻撃によって秘密鍵を推測されることを防止すること
ができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかる暗号装置の
構成図である。
【図2】本発明の第2の実施の形態にかかる暗号装置の
構成図である。
【図3】本発明の第3の実施の形態にかかる暗号装置の
構成図である。
【図4】本発明の第4の実施の形態にかかる暗号装置の
構成図である。
【図5】本発明の第5の実施の形態にかかる暗号装置の
構成図である。
【図6】本発明の第6の実施の形態にかかる暗号装置の
前提となる装置の構成図である。
【図7】本発明の第6の実施の形態にかかる暗号装置の
構成図である。
【図8】本発明の第7の実施の形態にかかる暗号装置の
構成図である。
【図9】換字テーブルの構成例を示す図である。
【図10】従来の暗号装置の構成図である。
【図11】キャッシュ攻撃型暗号解読法の原理説明図で
ある。
【図12】キャッシュ攻撃型暗号解読法による鍵差分値
の決定方法の説明図である。
【図13】MISTY1のデータランダム化部の構成を
示す図である。
【図14】MISTY1のデータランダム化部で使用さ
れるFOi関数と、さらにこのFOi関数で使用される
FIij関数の構成を示す図である。
【図15】暗号化時間分布を示す図である。
【図16】MISTY1で使われる換字テーブルS9の
動作エントリ数と暗号化時間との関係を示す図である。
【図17】MISTY1で使われる換字テーブルS7の
動作エントリ数と暗号化時間との関係を示す図である。
【図18】暗号過程で換字テーブルS9の全エントリが
ほぼ参照される可能性の高い平文の集合を抽出する処理
例を示すフローチャートである。
【符号の説明】
1…CPU 2…メモリ(主記憶) 3、3A〜3K…暗号プログラム 4…キャッシュ 5…プロセッサバス 6…メモリバス
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 D.Page,Theoretica l Use of Cache Mem ory as a Cryptanal ytic Side−Channel, Technical Report C STR−02−003,Departmen t of Computer Scie nce, University o f Bri,URL,http://w ww.cs.bris.ac.uk/T ools/Reports/Abstr acts/2002−page.html 暗号とネットワークセキュリティ 理 論と実際,株式会社ピアソン・エデュケ ーション,2001年 9月25日,p.210 −211 暗号最新事情11 新しい暗号攻撃法, bit,Vol.28 No.11,p.62 −66,2.4 タイミングアタックの回 避法 (58)調査した分野(Int.Cl.7,DB名) G06C 1/00 610 H04L 9/10 JICSTファイル(JOIS)

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてほ
    ぼ均一化する調整手段を備え、前記調整手段は、暗号処
    理または復号処理で使用する複数の変換表をキャッシュ
    にプリロードするプリロード手段を備え、前記プリロー
    ド手段は、前記複数の変換表のうち攻撃対象とされる可
    能性の高いものとして設定された変換表を他の変換表よ
    り後にプリロードするものであることを特徴とする暗号
    装置。
  2. 【請求項2】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムを、高い
    優先度の付いたデータほどキャッシュから掃き出され難
    くすることができるキャッシュ装備のコンピュータに実
    装した暗号装置において、1つの平文または1つの暗号
    文の暗号処理または復号処理における前記変換表に対す
    るアクセス時のキャッシュミスヒット回数を、任意の平
    文または暗号文についてほぼ均一化する調整手段を備
    え、前記調整手段は、暗号処理または復号処理で使用す
    る複数の変換表をキャッシュにプリロードするプリロー
    ド手段を備え、前記プリロード手段は、前記複数の変換
    表のうち攻撃対象とされる可能性の高いものとして設定
    された変換表は高い優先度を設定してプリロードするも
    のであることを特徴とする暗号装置。
  3. 【請求項3】 前記プリロード手段は、1つの平文また
    は1つの暗号文の暗号処理または復号処理において同じ
    変換表を複数の時点でプリロードするものであることを
    特徴とする請求項1または2記載の暗号装置。
  4. 【請求項4】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてキ
    ャッシュミスヒット回数が増加する方向に調整してほぼ
    均一化する調整手段を備え、前記調整手段は、変換表の
    エントリのうち暗号処理または復号処理で実際に使用さ
    れたエントリを管理する使用エントリ管理手段と、変換
    表のエントリのうち暗号処理または復号処理で実際に使
    用されなかったエントリをアクセスする不使用エントリ
    ロード手段とを備えたことを特徴とする暗号装置。
  5. 【請求項5】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてキ
    ャッシュミスヒット回数が増加する方向に調整してほぼ
    均一化する調整手段を備え、前記調整手段は、変換表の
    エントリのうち暗号処理または復号処理で実際に使用さ
    れたエントリを管理する使用エントリ管理手段と、変換
    表の使用エントリの最大数と暗号処理または復号処理で
    実際に使用されたエントリ数の差分だけキャッシュミス
    ヒットを発生させるキャッシュミスヒット発生手段とを
    備えたことを特徴とする暗号装置。
  6. 【請求項6】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてキ
    ャッシュミスヒット回数が増加する方向に調整してほぼ
    均一化する調整手段を備え、前記調整手段は、暗号処理
    または復号処理で変換表のエントリにキャッシュヒット
    した回数を管理する使用エントリ管理手段と、前記キャ
    ッシュヒットした回数だけキャッシュミスヒットを発生
    させるキャッシュミスヒット発生手段とを備えたことを
    特徴とする暗号装置。
  7. 【請求項7】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてキ
    ャッシュミスヒット回数が増加する方向に調整してほぼ
    均一化する調整手段を備え、前記調整手段は、暗号処理
    または復号処理で変換表のエントリにキャッシュヒット
    する毎にキャッシュミスヒットを発生させる手段を備え
    たことを特徴とする暗号装置。
  8. 【請求項8】 ビット列変換に使用する変換表を用いて
    暗号処理または復号処理を行う暗号プログラムをキャッ
    シュ装備のコンピュータに実装した暗号装置において、
    1つの平文または1つの暗号文の暗号処理または復号処
    理における前記変換表に対するアクセス時のキャッシュ
    ミスヒット回数を、任意の平文または暗号文についてキ
    ャッシュミスヒット回数が増加する方向に調整してほぼ
    均一化する調整手段を備え、前記調整手段は、1つの平
    文または1つの暗号文の暗号処理または復号処理で参照
    される総回数がn回である同一内容の変換表をn個備
    え、各参照毎にそれぞれ異なる変換表を参照させるもの
    であることを特徴とする暗号装置。
  9. 【請求項9】 前記調整手段は、暗号処理または復号処
    理で使用する複数の変換表のうち攻撃対象とされる可能
    性の高いものとして設定された変換表のみを調整対象と
    することを特徴とする請求項4乃至8の何れか1項に記
    載の暗号装置。
  10. 【請求項10】 攻撃対象とされる可能性の高い変換表
    には、エントリ総数に対する参照総エントリ数の比であ
    る利用率が小さな変換表を含むことを特徴とする請求項
    9記載の暗号装置。
  11. 【請求項11】 ビット列変換に使用する変換表を用い
    て暗号処理または復号処理を行う暗号プログラムをキャ
    ッシュ装備のコンピュータに実装した暗号装置におい
    て、1つの平文または1つの暗号文の実質的な暗号処理
    または復号処理に要した時間を計測する計測手段と、計
    測された時間が予め設定された時間より短い場合、予め
    設定された一定時間または無作為に決定した時間だけ暗
    号処理または復号処理に要する時間を常に或いは無作為
    に延長する延長手段とを含む調整手段を備えたことを特
    徴とする暗号装置。
  12. 【請求項12】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、暗号処理または復号処
    理で使用する複数の変換表をキャッシュにプリロードす
    る際に攻撃対象とされる可能性の高いものとして設定さ
    れた変換表を他の変換表より後にプリロードするプリロ
    ード手段を備え、1つの平文または1つの暗号文の暗号
    処理または復号処理における前記攻撃対象とされる可能
    性の高いものとして設定された変換表に対するアクセス
    時のキャッシュミスヒット回数を、任意の平文または暗
    号文についてほぼ均一化する調整手段を有する暗号装置
    として機能させるための暗号プログラム。
  13. 【請求項13】 高い優先度の付いたデータほどキャッ
    シュから掃き出され難くすることができるキャッシュ装
    備のコンピュータを、ビット列変換に使用する変換表を
    用いて暗号処理または復号処理を行う暗号装置であっ
    て、暗号処理または復号処理で使用する複数の変換表を
    キャッシュにプリロードする際に攻撃対象とされる可能
    性の高いものとして設定された変換表は高い優先度を設
    定してプリロードするプリロード手段を備え、1つの平
    文または1つの暗号文の暗号処理または復号処理におけ
    る前記攻撃対象とされる可能性の高いものとして設定さ
    れた前記変換表に対するアクセス時のキャッシュミスヒ
    ット回数を、任意の平文または暗号文についてほぼ均一
    化する調整手段を有する暗号装置として機能させるため
    の暗号プログラム。
  14. 【請求項14】 前記プリロード手段は、1つの平文ま
    たは1つの暗号文の暗号処理または復号処理において同
    じ変換表を複数の時点でプリロードするものであること
    を特徴とする請求項12または13記載の暗号プログラ
    ム。
  15. 【請求項15】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、変換表のエントリのう
    ち暗号処理または復号処理で実際に使用されたエントリ
    を管理する使用エントリ管理手段と、変換表のエントリ
    のうち暗号処理または復号処理で実際に使用されなかっ
    たエントリをアクセスする不使用エントリロード手段と
    を含み、1つの平文または1つの暗号文の暗号処理また
    は復号処理における前記変換表に対するアクセス時のキ
    ャッシュミスヒット回数を、任意の平文または暗号文に
    ついてキャッシュミスヒット回数が増加する方向に調整
    してほぼ均一化する調整手段を有する暗号装置として機
    能させるための暗号プログラム。
  16. 【請求項16】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、変換表のエントリのう
    ち暗号処理または復号処理で実際に使用されたエントリ
    を管理する使用エントリ管理手段と、変換表の使用エン
    トリの最大数と暗号処理または復号処理で実際に使用さ
    れたエントリ数の差分だけキャッシュミスヒットを発生
    させるキャッシュミスヒット発生手段とを含み、1つの
    平文または1つの暗号文の暗号処理または復号処理にお
    ける前記変換表に対するアクセス時のキャッシュミスヒ
    ット回数を、任意の平文または暗号文についてキャッシ
    ュミスヒット回数が増加する方向に調整してほぼ均一化
    する調整手段を有する暗号装置として機能させるための
    暗号プログラム。
  17. 【請求項17】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、暗号処理または復号処
    理で変換表のエントリにキャッシュヒットした回数を管
    理する使用エントリ管理手段と、前記キャッシュヒット
    した回数だけキャッシュミスヒットを発生させるキャッ
    シュミスヒット発生手段とを含み、1つの平文または1
    つの暗号文の暗号処理または復号処理における前記変換
    表に対するアクセス時のキャッシュミスヒット回数を、
    任意の平文または暗号文についてキャッシュミスヒット
    回数が増加する方向に調整してほぼ均一化する調整手段
    を有する暗号装置として機能させるための暗号プログラ
    ム。
  18. 【請求項18】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、暗号処理または復号処
    理で変換表のエントリにキャッシュヒットする毎にキャ
    ッシュミスヒットを発生させる手段を含み、1つの平文
    または1つの暗号文の暗号処理または復号処理における
    前記変換表に対するアクセス時のキャッシュミスヒット
    回数を、任意の平文または暗号文についてキャッシュミ
    スヒット回数が増加する方向に調整してほぼ均一化する
    調整手段を有する暗号装置として機能させるための暗号
    プログラム。
  19. 【請求項19】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、1つの平文または1つ
    の暗号文の暗号処理または復号処理で参照される総回数
    がn回である同一内容の変換表をn個備え、各参照毎に
    それぞれ異なる変換表を参照させることにより、1つの
    平文または1つの暗号文の暗号処理または復号処理にお
    ける前記変換表に対するアクセス時のキャッシュミスヒ
    ット回数を、任意の平文または暗号文についてキャッシ
    ュミスヒット回数が増加する方向に調整してほぼ均一化
    する調整手段を有する暗号装置として機能させるための
    暗号プログラム。
  20. 【請求項20】 前記調整手段は、暗号処理または復号
    処理で使用する複数の変換表のうち攻撃対象とされる可
    能性の高いものとして設定された変換表のみを調整対象
    とすることを特徴とする請求項15乃至19の何れか1
    項に記載の暗号プログラム。
  21. 【請求項21】 攻撃対象とされる可能性の高い変換表
    には、エントリ総数に対する参照総エントリ数の比であ
    る利用率が小さな変換表を含むことを特徴とする請求項
    20記載の暗号プログラム。
  22. 【請求項22】 キャッシュ装備のコンピュータを、ビ
    ット列変換に使用する変換表を用いて暗号処理または復
    号処理を行う暗号装置であって、1つの平文または1つ
    の暗号文の実質的な暗号処理または復号処理に要した時
    間を計測する計測手段と、計測された時間が予め設定さ
    れた時間より短い場合、予め設定された一定時間または
    無作為に決定した時間だけ暗号処理または復号処理に要
    する時間を常に或いは無作為に延長する延長手段とを含
    む調整手段を有する暗号装置として機能させるための暗
    号プログラム。
JP2002280469A 2002-09-26 2002-09-26 暗号装置及び暗号プログラム Expired - Lifetime JP3503638B1 (ja)

Priority Applications (14)

Application Number Priority Date Filing Date Title
JP2002280469A JP3503638B1 (ja) 2002-09-26 2002-09-26 暗号装置及び暗号プログラム
CA002607116A CA2607116A1 (en) 2002-09-26 2003-09-25 Data encryption system and method
CA002605376A CA2605376A1 (en) 2002-09-26 2003-09-25 Data encryption system and method
CA002442456A CA2442456C (en) 2002-09-26 2003-09-25 Data encryption system and method
US10/669,269 US7454016B2 (en) 2002-09-26 2003-09-25 Data encryption system and method
CA002605648A CA2605648A1 (en) 2002-09-26 2003-09-25 Data encryption system and method
SG200305740A SG115568A1 (en) 2002-09-26 2003-09-26 Data encryption system and method
AU2003248442A AU2003248442C1 (en) 2002-09-26 2003-09-26 Data Encryption System and Method
EP03021864.8A EP1404052B1 (en) 2002-09-26 2003-09-26 Data encryption system and method
KR1020030067008A KR100571445B1 (ko) 2002-09-26 2003-09-26 데이터 암호 시스템 및 방법
US12/189,847 US8306227B2 (en) 2002-09-26 2008-08-12 Data encryption system and method
AU2009208116A AU2009208116A1 (en) 2002-09-26 2009-08-12 Data encryption system and method
AU2009208117A AU2009208117A1 (en) 2002-09-26 2009-08-12 Data encryption system and method
AU2009208124A AU2009208124A1 (en) 2002-09-26 2009-08-12 Data encryption system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002280469A JP3503638B1 (ja) 2002-09-26 2002-09-26 暗号装置及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP3503638B1 true JP3503638B1 (ja) 2004-03-08
JP2004120307A JP2004120307A (ja) 2004-04-15

Family

ID=31973298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002280469A Expired - Lifetime JP3503638B1 (ja) 2002-09-26 2002-09-26 暗号装置及び暗号プログラム

Country Status (7)

Country Link
US (2) US7454016B2 (ja)
EP (1) EP1404052B1 (ja)
JP (1) JP3503638B1 (ja)
KR (1) KR100571445B1 (ja)
AU (4) AU2003248442C1 (ja)
CA (1) CA2442456C (ja)
SG (1) SG115568A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019124713A (ja) * 2018-01-11 2019-07-25 Necプラットフォームズ株式会社 暗号化装置、復号装置、回線暗号システム、暗号化方法およびプログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4701166B2 (ja) * 2004-04-26 2011-06-15 パナソニック株式会社 暗号又は復号を行うコンピュータシステム及びコンピュータプログラム
EP1865481A1 (en) * 2005-03-31 2007-12-12 Matsushita Electric Industrial Co., Ltd. Data encryption device and data encryption method
JP4364166B2 (ja) 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US7610493B2 (en) * 2005-08-31 2009-10-27 Intel Corporation System and methods for adapting to attacks on cryptographic processes on multiprocessor systems with shared cache
JP2007122843A (ja) 2005-10-31 2007-05-17 Toshiba Corp 情報再生装置及び方法
US20080052530A1 (en) * 2006-02-16 2008-02-28 International Business Machines Corporation System and method to provide CPU smoothing of cryptographic function timings
US8607350B2 (en) * 2006-03-30 2013-12-10 International Business Machines Corporation Sovereign information sharing service
US7681047B2 (en) 2006-04-18 2010-03-16 International Business Machines Corporation Decryption of data in storage systems
US8687800B2 (en) * 2006-08-15 2014-04-01 Alcatel Lucent Encryption method for message authentication
GB2448907B (en) * 2007-05-02 2011-07-27 Advanced Risc Mach Ltd Reducng information leakage between processes sharing a cache
US8738926B2 (en) 2008-01-10 2014-05-27 Intel Mobile Communications GmbH Data processing system, method for executing a cryptographic algorithm and method for preparing execution of a cryptographic algorithm
JP5056860B2 (ja) * 2008-01-18 2012-10-24 富士通株式会社 データ変換関数の処理装置
EP2237246B1 (en) * 2008-01-18 2018-02-28 Fujitsu Limited Encrypting device, encrypting method and program
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
JP5387295B2 (ja) * 2009-09-29 2014-01-15 富士通株式会社 暗号装置及び方法
WO2014140698A1 (en) * 2013-03-11 2014-09-18 Indian Institute of Technology Kharagpur Improved resistance to cache timing attacks on block cipher encryption
GB2522217A (en) * 2014-01-16 2015-07-22 Parcelhome Ltd Electronic lock apparatus, method and system
CN104753684B (zh) * 2015-04-15 2018-01-05 飞天诚信科技股份有限公司 一种实现数字签名和验签的方法
CN108933650B (zh) 2018-06-28 2020-02-14 阿里巴巴集团控股有限公司 数据加解密的方法及装置
EP3805916A1 (en) * 2019-10-10 2021-04-14 Thales Dis France Sa Method for performing mutualized calculations of multiple cryptographic operations
CZ202220A3 (cs) 2022-01-17 2023-07-26 Miroslav Tyrpa Způsob kódování a dekódování textových a multimediálních zpráv a zařízení k uskutečnění tohoto způsobu

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01193665A (ja) * 1988-01-28 1989-08-03 Hitachi Electron Eng Co Ltd 半導体テスター
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US4888741A (en) * 1988-12-27 1989-12-19 Harris Corporation Memory with cache register interface structure
US5461674A (en) * 1992-05-22 1995-10-24 Zenith Electronics Corp. Method and apparatus for controlling playback of recorded HDTV signals
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
US5752031A (en) * 1995-04-24 1998-05-12 Microsoft Corporation Queue object for controlling concurrency in a computer system
JPH10222065A (ja) 1997-02-03 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> 冪乗剰余演算方法及び装置
US6138209A (en) * 1997-09-05 2000-10-24 International Business Machines Corporation Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
US20020059481A1 (en) * 1998-12-30 2002-05-16 Patrick O. Nunally Method and apparatus for a multimedia application specific processor
KR100308211B1 (ko) * 1999-03-27 2001-10-29 윤종용 압축 명령을 갖는 마이크로 컴퓨터 시스템
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
US6788811B1 (en) * 1999-05-10 2004-09-07 Ricoh Company, Ltd. Coding apparatus, decoding apparatus, coding method, decoding method, amd computer-readable recording medium for executing the methods
WO2001052069A2 (de) 2000-01-11 2001-07-19 Infineon Technologies Ag Speicherzugriffsverfahren und schaltungsanordung
DK1193665T3 (da) * 2000-03-09 2012-04-02 Mitsubishi Electric Corp Blokkrypteringsindretning, som anvender hjælpekonvertering
US6725329B1 (en) * 2000-04-19 2004-04-20 Western Digital Technologies, Inc. Cache control system and method having hardware-based tag record allocation
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6772348B1 (en) * 2000-04-27 2004-08-03 Microsoft Corporation Method and system for retrieving security information for secured transmission of network communication streams
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US6996725B2 (en) * 2001-08-16 2006-02-07 Dallas Semiconductor Corporation Encryption-based security protection for processors
US6671196B2 (en) * 2002-02-28 2003-12-30 Sun Microsystems, Inc. Register stack in cache memory
US6795897B2 (en) * 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US6970999B2 (en) * 2002-07-31 2005-11-29 International Business Machines Corporation Counting latencies of an instruction table flush, refill and instruction execution using a plurality of assigned counters

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
D.Page,Theoretical Use of Cache Memory as a Cryptanalytic Side−Channel,Technical Report CSTR−02−003,Department of Computer Science, University of Bri,URL,http://www.cs.bris.ac.uk/Tools/Reports/Abstracts/2002−page.html
暗号とネットワークセキュリティ 理論と実際,株式会社ピアソン・エデュケーション,2001年 9月25日,p.210−211
暗号最新事情11 新しい暗号攻撃法,bit,Vol.28 No.11,p.62−66,2.4 タイミングアタックの回避法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019124713A (ja) * 2018-01-11 2019-07-25 Necプラットフォームズ株式会社 暗号化装置、復号装置、回線暗号システム、暗号化方法およびプログラム
JP7063628B2 (ja) 2018-01-11 2022-05-09 Necプラットフォームズ株式会社 暗号化装置、暗号化方法およびプログラム

Also Published As

Publication number Publication date
US20040062391A1 (en) 2004-04-01
KR20040027461A (ko) 2004-04-01
CA2442456C (en) 2009-01-20
JP2004120307A (ja) 2004-04-15
US7454016B2 (en) 2008-11-18
AU2003248442C1 (en) 2010-01-07
KR100571445B1 (ko) 2006-04-17
AU2009208116A1 (en) 2009-09-03
EP1404052A2 (en) 2004-03-31
EP1404052B1 (en) 2018-09-12
US20090016536A1 (en) 2009-01-15
AU2003248442A1 (en) 2004-04-22
AU2009208124A1 (en) 2009-09-03
CA2442456A1 (en) 2004-03-26
AU2003248442B2 (en) 2009-05-14
SG115568A1 (en) 2005-10-28
AU2009208117A1 (en) 2009-09-03
EP1404052A3 (en) 2005-01-26
US8306227B2 (en) 2012-11-06

Similar Documents

Publication Publication Date Title
JP3503638B1 (ja) 暗号装置及び暗号プログラム
Shi et al. High efficiency counter mode security architecture via prediction and precomputation
Provos Encrypting virtual memory
Mathur et al. AES based text encryption using 12 rounds with dynamic key selection
Krawczyk et al. HMAC: Keyed-hashing for message authentication
Bonneau et al. Cache-collision timing attacks against AES
Kong et al. Deconstructing new cache designs for thwarting software cache-based side channel attacks
Krawczyk et al. RFC2104: HMAC: Keyed-hashing for message authentication
US9276913B2 (en) Transmission/reception system, transmission device, reception device, authentication device, user equipment, method executed using these, and program
KR20180110550A (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
JPWO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
JP2010166402A (ja) 暗号処理装置及び暗号処理方法及び暗号処理プログラム
Banescu Cache timing attacks
O’Hanlon et al. Investigation of cache timing attacks on AES
Agrawal et al. A new and more authentic cryptographic based approach for securing short message
Moon et al. Mapping character position based cryptographic algorithm with numerical conversions
Prasad et al. An enhanced ENCIPHER to encrypt large text & image using basic arithmetic and logic operation with substitution-transposition
Hu et al. A fast real-time memory authentication protocol
Huang et al. Cache-collision side-channel analysis and attacks against AES-GCM
JP3526504B2 (ja) 乱数生成器
Atici et al. Remote cache-timing attack without learning phase
MANAA et al. A PROACTIVE DATA SECURITY SCHEME OF FILES USING MINHASH TECHNIQUE
Liu Design of WEB Communication Security System: Based on Digital Signature
Anbazhagan et al. ENHANCED PRIVACY PRESERVING USING MULTILEVEL ENCRYPTION TECHNIQUE
Okunade et al. Hybrid Encryption System with Initialization Vector for Secure Data Transmission

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031201

R150 Certificate of patent or registration of utility model

Ref document number: 3503638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 10

EXPY Cancellation because of completion of term