JP2002366029A - Dpaに対して安全な暗号化 - Google Patents

Dpaに対して安全な暗号化

Info

Publication number
JP2002366029A
JP2002366029A JP2001178407A JP2001178407A JP2002366029A JP 2002366029 A JP2002366029 A JP 2002366029A JP 2001178407 A JP2001178407 A JP 2001178407A JP 2001178407 A JP2001178407 A JP 2001178407A JP 2002366029 A JP2002366029 A JP 2002366029A
Authority
JP
Japan
Prior art keywords
encryption
random number
exclusive
input
fixed
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.)
Granted
Application number
JP2001178407A
Other languages
English (en)
Other versions
JP4596686B2 (ja
Inventor
Koichi Ito
孝一 伊藤
Masahiko Takenaka
正彦 武仲
Naoya Torii
直哉 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001178407A priority Critical patent/JP4596686B2/ja
Priority to US10/028,265 priority patent/US7386130B2/en
Priority to EP02001146A priority patent/EP1267514B1/en
Priority to EP07000759A priority patent/EP1772985A1/en
Priority to DE60222052T priority patent/DE60222052T2/de
Publication of JP2002366029A publication Critical patent/JP2002366029A/ja
Application granted granted Critical
Publication of JP4596686B2 publication Critical patent/JP4596686B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/04Masking or blinding
    • 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/12Details relating to cryptographic hardware or logic circuitry

Abstract

(57)【要約】 【課題】 固定値を用いてマスクを行うことによって処
理速度の向上と必要なRAM領域の削減を実現する。 【解決手段】 暗号化装置(300)は、乱数を発生す
る乱数発生器手段と、乱数に従ってq個の固定値の中の
1つを選択する第1の選択器(329)と、乱数に従っ
てq組の固定テーブルの中の1組を選択する選択器(3
39)と、を具えている。排他的論理和手段(333)
は、固定値と鍵の排他的論理和と入力の排他的論理和を
とる。非線形変換手段(334)は、1組の固定テーブ
ルに従って非線形変換を行う。別の暗号化装置(50
0)は、並列に結合された複数の暗号化部(511、5
13)と、乱数に従ってその複数の暗号化部の中の1つ
を選択する選択器(502)と、を具えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報の暗号化の分
野に関し、特に電力解析攻撃と呼ばれる暗号解読法に対
する暗号のセキュリティ(安全)のための技術に関す
る。
【0002】
【発明の背景】暗号方式には一般的に公開鍵暗号方式と
共通鍵暗号方式が含まれる。いわゆる共通鍵暗号方式
は、暗号化と復号で同一の秘密鍵(キー)を用いる。こ
の秘密鍵を送信機側のユーザと受信機側のユーザの間で
共有しその他の者に対して秘密にすることによって、暗
号文が安全に送信できる。図1はスマートカードにおけ
る共通秘密鍵を用いた暗号化の例を示している。図1に
おいて、スマートカードは、周知の形態で入力の平文
(プレインテキスト)をその内部の暗号化処理部におい
て共通秘密鍵を用いて暗号化して出力の暗号文を供給す
る。
【0003】暗号解読は、秘密鍵を含めた秘密情報を、
暗号文等入手可能な情報から推定する。暗号解読の1つ
である電力解析攻撃が、Paul Kocher, Joshua Jaffe, a
nd Benjamin Jun,“Differential Power Analysis”in
proceedings of Advances inCryptology−CRYPTO’9
9, Springer-Verlag, 1999, pp. 388−397
に記載されている。この電力解析攻撃は、スマートカー
ド等に搭載された暗号化プロセッサに様々な入力データ
を与えた時の電力消費データを収集および解析して、暗
号プロセッサ内部の鍵情報を推定する。これは、公開鍵
暗号と秘密鍵暗号の双方に適用できる。
【0004】電力解析攻撃には、単純電力解析(以下、
SPAという)(Single Power Analysis)および電力
差分攻撃(以下、DPAという)(Differential Power
Analysis)が含まれる。SPAは暗号プロセッサにお
ける単一の電力消費データの特徴から秘密鍵の推定を行
う。DPAは相異なる多数の電力消費データの差分を解
析することによって秘密鍵の推定を行い、一般的にはD
PAの方が強力である。
【0005】例えばRSA等の公開鍵暗号に対するDP
Aが、例えば、Thomas S. Messerges, Ezzy A. Dabbish
and Robert H. Sloan“Power Analysis Attacks of Mo
dular Exponentitiation in Smartcards”Cryptographi
c Hardware and Embedded Systems(CHES’99), Spr
inger-Verlag, pp.144−157に記載されている。
共通鍵暗号方式の現在の標準のDES(Data Encryptio
n Standards)に対するSPAおよびDPAが、Paul Ko
cher, Joshua Jaffe, and Benjamin Jun,”Differentia
l Power Analysis,”in proceedings of Advances in C
ryptology−CRYPTO’99, Springer-Verlag, 199
9, pp. 388−397 に記載されている。共通鍵暗号
方式の次世代標準となりうるラインデール(Rijndael)
法に対するDPAが、例えば、S. Chari, C. Jutla, J.
R. Rao, P. Rohatgi, “An Cautionary Note Regardin
g Evaluation of AES Candidates on Smart-Cards,” S
econd Advanced Encryption Standard Candidate Confe
rence, March1999に記載されている。
【0006】このように、電力解析攻撃の中でもDPA
は特に有効な方法として注目されており、様々なDPA
暗号解読法が研究されている。一方、DPA暗号解読を
防止するための技術も開発されている。
【0007】DPAを適用可能な共通鍵暗号の通常の典
型的な構成を説明する。図2、3および4は、典型的な
共通鍵暗号で用いられる処理(operations)である鍵X
OR(排他的論理和)、線形変換および非線形変換をそ
れぞれ示している。
【0008】図2において、鍵XORは入力データXi
の鍵情報Kiとの排他的論理和(XOR)の出力Ziを
供給する。(但し、演算XORは図面および式では、○
と+を合成したシンボルで示されている。)図3におい
て、線形変換Lは入力データXiに対する線形変換され
た出力Zi=L(Xi)を供給する。ここで、任意のx
およびyについてL(xXORy)=L(x)XORL
(y)である。線形変換には、ビット転置(permutatio
n)および行列演算等がある。図4において、非線形変
換Wは、入力データXiを非線形変換して出力Zi=W
(Xi)を供給する。ここで、任意のxよびyについて
W(xXORy)≠W(x)XORW(y)である。非
線形変換は、典型的には非線型変換テーブルSboxを
しばしば用い、入力XをX={xu−1,...,
,x}(uは自然数)とu個に分割し、Sbox
であるw(i=0〜u)を用いてz=w(x
を演算し、Z=(zu−1...z)として結合
して出力Zを生成する。
【0009】典型的な共通鍵暗号では、これらの鍵XO
R演算、線形変換および非線形変換の3つを適当に組み
合わせて各ラウンド関数を構成し、そのようなラウンド
関数を順に複数回(ラウンド)繰り返す。
【0010】DPAによる暗号解読技術を説明する。D
PAは、電力消費データの測定の段階と、その電力消費
データの差分に基づく鍵の解析の段階とを含んでいる。
電力消費データの測定において、相異なる複数の符号の
シーケンスを含んだ入力平文をスマートカード等の暗号
化器にシリアルに供給して、その暗号化プロセッサによ
ってその入力平文に応答して消費される電力消費の時間
変化を例えばオシロスコープ等を用いて測定して、電力
消費曲線を得る。図7(A)はそのような電力消費曲線
を例示している。相異なる入力平文に対してその測定を
行って統計的に充分な数の電力消費曲線を収集する。そ
の測定で得られた複数の電力消費曲線の集合(セット)
をGとする。
【0011】次に電力消費曲線を用いた鍵の解析を説明
する。図5は、従属接続の形の鍵XOR演算(図2)と
非線形変換(図4)の組合せである暗号化の例を示して
いる。この暗号化に対するDPAを説明する。図6は、
図5における任意の非線形変換要素wiに関係する構成
要素を取り出したものである。図6において、任意の入
力平文における既知の数ビット値をmとし、未知の鍵
Kにおける要素値をk (K={ku−1,...,k
,k}の中の1つの要素)とし、既知のSboxテ
ーブルにおける変換関数をwとし、出力をz(=w
(mXORk))とする。DPAのために、プロ
セッサ内部で用いられている鍵の要素値を任意のk
であると仮定する。既知のmおよびwとその仮定さ
れたk’とからz’=w(mXORk’)を
演算して、仮定されたk’に対する集合G(k’)
を次の部分集合G(k’)およびG(k’)に
分ける。
【0012】
【数1】
【数2】 ここで、eは、自然数であり、e番目のLSBを表して
いる。
【0013】次いで、仮定されたk’に対する次の電
力消費曲線の差分DG(k’)を作成する。
【数3】
【0014】図7(A)はG1に属する電力消費曲線の
平均電力消費曲線を例示している。図7(B)はG
属する電力消費曲線の平均電力消費曲線を例示してい
る。仮定された鍵の要素値が真の鍵の要素値と等しく、
即ちk’=kである場合には、図7(A)と(B)
の差を表す図7(C)に例示された差分電力消費曲線中
にスパイクが現われる。仮定された鍵の要素値が真の鍵
の要素値と等しくなく、即ちk’≠kである場合に
は、図7(A)と(B)の差を表す図7(D)に例示さ
れた差分電力消費曲線は概ね平坦な曲線となる。従っ
て、仮定したk’に基づいて生成されたスパイクを有
する差分電力消費曲線から、鍵kが推定できる。全て
のiに対するkについて差分電力消費曲線を生成する
ことによって、最終的に鍵Kを解読または確定(determ
ine)することができる。
【0015】次に、k’=kである場合に、電力差
分曲線DG(k’)にスパイクが現れることを説明す
る。k’=kである場合、集合G(k’)を式
(1)および式(2)に従って部分集合G(k’)
およびG(k’)に分けると、仮定したz’=w
(mXORk’)とこれに対応するプロセッサ内
における実際のz=w(mXORk)とが全て
のmに対して一致するので、zのハミング・ウェイ
トHW(Hamming weight)に関して次の式(4)が得ら
れる。ハミング・ウェイトとは或る値をビット値で表現
したときのビット値=1の個数である。例えば2進4ビ
ット値(1101)のハミングウェイトHWは3であ
る。
【数4】
【0016】一方、k’≠kの場合は、仮定された
’=w(mXORk’)とそれに対応するプ
ロセッサ内における実際のそれぞれのz=w(m
XORk)とが無関係なので、仮定されたz’に対
する式(1)および式(2)に従って全てのmに対す
る集合G(k’)を部分集合G(k’)およびG
(k’)に分けても、実際のそれぞれのz(即ち
’と仮定された実際のz)に対しては2つの部分
集合にランダムに分けたことになるので、次の式(5)
が成立する。
【数5】
【0017】式(4)が成立する場合はG(k’)
とG(k’)の間でのロード値zの平均ハミング
・ウェイトに大きな差が生じるが、式(5)が成立する
場合はG(k’)とG(k’)の間でのロード値
の平均ハミングウェイトに大きな差が生じない。
【0018】z=w(x)で示される変換w
は、暗号化器内のROMやRAMなどのメモリ上から
変換テーブルSboxの出力値zがロード命令によっ
て読み込まれることによって行われる。ロード命令が実
行されるとき、ロード値のハミングウェイトに比例した
電力が消費されるものと考えられている。その考えの妥
当性を示す実験結果が、T. S. Messerge, Ezzy A. Dabb
ish and Robert H.Sloan,“Investigations of Power A
ttacks on Smartcards”Proceedings of USENIX Worksh
op on Smartcard Technology, Mar. 1999に記載さ
れている。
【0019】従って、k’=kである場合、式
(4)が満たされることで消費電力の差が電力差分曲線
上のスパイクという形になって現れるが、式(5)の場
合はスパイクが現れず、概ね平坦な曲線となる。DPA
は、図4に図3の線形変換Lを挿入した暗号化器にも適
用できることが判明している。
【0020】図8は、図4の暗号化器の前後に2つの線
形変換を追加した構成を有する暗号化器を示している。
1およびL2をビット転置関数とし、wをDESのS
boxとすると、図8の構成はDESのF関数と等価に
なる。DESの仕様については、FIPS 46,“Data enc
ryption standard”Federal Information ProcessingSt
andards Publication 46, U.S. Department of Comme
rce/ National Bureau of Standards, National Techni
cal Information Service, Springfield, Virginia,1
977を参照されたい。図8の処理も、図6と同様の処
理に変換でき、同様にDPAを適用して鍵Kを推定でき
る。
【0021】以上の手法では、非線形変換中のSbox
出力に注目してDPAを適用している。さらに、入力m
と鍵kのXORの値(鍵XOR演算の出力)やSb
oxへの入力値xに対してDPAを適用する手法もあ
る。また、或るプロセッサにおいては、隣接ビットモデ
ルによって次の式(6)で表される電力消費がロード値
のビットの関数で表現でき、それによってより有効な解
析が可能になる場合がM. Akkar, R. Bevan, P. Discham
p, and D. Moyart,“Power Analysis, What IsNow Poss
ible...”Asiacrypt 2000において報告されてい
る。
【数6】
【0022】これらの手法によれば、次の場合にDPA
によって秘密鍵Kが解読される。図9は、図4の暗号化
器における電力消費曲線の測定対象点A、BおよびCを
示している。
【0023】1.入力Mが既知かつ攻撃者が自由に選択
可能即ち制御可能であり、鍵Kが未知の固定値であり、
Sboxのwの変換が既知の場合。この場合、図9の
測定対象点Aの所定タイミングにおける(Sboxw
の出力の)電力消費曲線が測定される。
【0024】2.入力Mが既知かつ制御可能であり、鍵
Kが未知の固定値である場合。この場合、図9の測定対
象点Bの所定タイミングにおける(鍵XOR演算の出力
の)電力消費曲線が測定される。
【0025】3.入力Mが既知かつ制御可能であり、鍵
Kが未知の固定値である場合。この場合、図9の測定対
象点Cの所定タイミングにおける(Sboxのwをイ
ンデックスするためのロード入力の)電力消費曲線が測
定される。
【0026】従来のDPA対策 従来のDPA対策法としては、例えばスマートカード内
にノイズ発生器を置くことによって電力消費量の測定精
度を落とす手法と、暗号アルゴリズムに対策を施す手法
が存在する。その測定精度を落とす手法は容易に行える
が、測定回数を増加するなどの方法で解析が可能になる
ので根本的な対策とはならない。それに対して、暗号ア
ルゴリズムへの対策は、容易でないが根本的な対策とな
りうる。暗号アルゴリズムに対策を施す手法の代表的な
ものとして、マスキング法と呼ばれているThomas S. Me
sserges,“Securing the AES Finalists Against Power
Analysis Attacks,”in proceedings of Fast Softwar
e Encryption Workshop 2000, Springer-Verlag, Ap
ril 2000が知られている。マスキング法とは、入力
値Mそのものを用いて暗号化の各処理を行う代わりに、
乱数RをマスクとしてM’=MXORRで表される値
M’を用いて暗号化を行う方法である。乱数Rは暗号化
の各処理ごとに発生させるので、ここでは“乱数マスク
値法”と呼ぶ。
【0027】次に、乱数マスク値法について説明する。
図10は、乱数マスク値法による処理の概要図を示して
いる。この処理は、図示のような上側の暗号化処理部と
下側のマスク値生成部と乱数発生とで構成される。
【0028】図2、3および4に示されている通常の鍵
XOR関数、線形関数および非線形関数が用いられる通
常の暗号化処理を図10の暗号化処理に変更する場合
は、それらは図10の暗号化において図11、12およ
び13に示されているような乱数マスク値法による鍵X
OR関数、線形関数および非線形関数に置換される。
【0029】乱数マスク値法では、暗号化における通常
の中間データXを計算する代わりに排他的論理和X
=X’XORRを満たすX’および乱数Rが計
算される。暗号化処理部においてX’が計算され、マ
スク値生成処理部においてR が計算される。図2と図
11、図3と図12、および図4と図13に示されてい
る処理(operation)におけるX、X’、Z、Z
’、RおよびRO に関して、次の式(7)が成立
する。
【数7】
【0030】図2では入力値Xと鍵Kに対してZ
=XXORKが演算されるのに対して、図11では
暗号化処理内部で乱数発生器によって乱数RKを発生
させた後、入力値X’と鍵Kに対してZ’=
’XORKXORRKが演算される。また、マ
スク値生成においてRとRKからRO=RXO
RRKが演算される。
【0031】図3ではZ=L(X)の線形変換が行
われるのに対して、図12の暗号化処理ではZ’=L
(X’)の変換が行われ、マスク値生成ではRO
L(R)の変換が行われる。
【0032】図4ではw、w、・・・、wu−1
表されるu個のSboxを用いた非線型変換が行われる
のに対して、図13(A)の暗号化処理では、図のNe
wSboxを用いた処理によってRAM領域上にwi’
、wi’、・・・、wi’u−1で表される新しい
Sboxが作成されて、これを用いて非線型変換が行わ
れる。また、図13(A)のマスク値生成ではそのNe
wSboxを用いた処理が行われ、Rと内部で生成さ
れた乱数ROからw’、w’、・・・、w’
u−1が生成され、w’、w’、・・・、w’
u−1とROが出力される。図13(B)はNewS
boxの詳細構成を示している。NewSboxは、内
部の乱数発生器を用いてROを生成し、また、R
riu−1・・・ririと、RO=roi
u−1・・・roiroiと、図12(B)内で用
いられるSbox、w、w、・・・、wu−1とか
ら、wi’(x)=w(xXORri)XORro
を満たすwi’をj=0、1、・・・、u−1に
ついて作成し、そしてそのROiとwi’を出力す
る。
【0033】次に、乱数マスク値法の安全性について簡
単に説明する。乱数マスク値法においては、図10およ
び後で説明する図19中の各ラウンド(段)における図
13(A)および(B)のSboxのwi’が乱数に従
って変化するので、DPAにおいてSboxの内容を知
ることができない。即ち、前述の条件1におけるSbo
xが既知であるという条件が成立しないので、図8の測
定対象点Aの所定のタイミングにおいて測定された電力
消費曲線を式(1)および(2)に従ってGとG
分けることができない。従って、乱数値マスク法を用い
た暗号処理装置はDPAに対して安全である。同様に、
前述の条件2および3における鍵XOR関数の出力にお
ける測定対象点BおよびSboxへの入力における測定
対象点Cについても、測定毎に変化する乱数要素が加算
されるので、鍵Kが固定であるという条件が成立しない
ので、DPAに対して安全である。
【0034】次に、乱数マスク値法を用いた暗号化の例
として、ラインデール法を説明する。図14は、DPA
対策のない通常のN段ラインデール処理の全体的構成を
示している。N段ラインデール処理の各段は、XOR演
算、サブバイト処理Subbyte(Substitute Byt
e)、シフト処理Shift、およびミクストコラム処
理Mixedcolumnを含んでいる。但し、最後の
段は、別のXOR演算を含んでおり、ミクストコラム処
理を含んでいない。図14において、Nは、秘密鍵Ks
ecのビット数によって決定され、Ksecが128ビ
ットの場合はN=10とし、192ビットの場合はN=
12とし、および256ビットの場合はN=14とす
る。Kは拡大鍵(sub-key)と呼ばれる鍵である。図
15は、ラインデール法の128/192/256ビッ
ト秘密鍵KsecからN+1個の128ビット拡大鍵K
、K、・・・、Kを生成する拡大鍵生成器を示し
ている。秘密鍵から拡大鍵を生成する方法は、http://w
ww.nist.gov/aes/に示されているRijndaelの仕様書に記
載されている。
【0035】図16はサブバイト処理Subbyteを
示しており、この処理は、8ビット−8ビット変換Sb
oxであるSを用いて、128ビット−128ビット非
線形変換を行う。図17はシフト処理Shiftを示し
ており、この処理は、バイト単位の並べ替えを行う処理
である。図18はミクストコラム処理Mixedcol
umnを示しており、この処理は、行列を用いた体GF
(2)上の演算を行う。
【0036】図19は、図14の通常のN段ラインデー
ル法に対して、乱数マスク値法を適用したN段ラインデ
ール法を示している。図19のN段ラインデール法は、
図示のような上側のN段の暗号化処理部と下側のN段の
マスク値生成部と乱数発生とで構成される。Kはライ
ンデール法の第i段の拡大鍵を表す。RKはそれぞれ
の拡大鍵に対するランダムなマスク値を表す。サブバイ
ト処理Subbyteは、図16に示されているような
形態で16個のSbox:Si,0 、Si, 、・・
・、Si,15を用いて128ビット−128ビット非
線形変換を行う。Si,0 、Si,1 、・・・、S
i,15は第i段の新しいSbox“NewSbox”
によって生成されたSboxである。図20は、New
Sboxを示しており、入力値Rinから、内部で発
生した乱数Routに従って相異なる16個のSbo
x、Si,0 (x)、Si,1 (x)、・・・、S
i, 15(x)を生成し、乱数Routを供給する。
Shift処理およびMixedcolumn処理は、
通常のラインデール法の処理と同様に、図17および図
18に示す線形変換である。
【0037】図19の処理のフローをステップ[110
1]〜[1109]およびステップ[1201]〜[1
209]で示す。 [1101] i=0とセットする。 [1102] 乱数マスク値Rinを生成し、平文に対
してRinとのXOR演算を行う(XORする)。 [1103] 平文に対してKXORKとのXOR
演算を行う。マスク処理にマスク値RKを入力して1
6個のSbox、Si,j(x)(j=0、1、・・
・、15)を生成する。 [1104] ステップ[1103]で生成したS
i,j(x)を用いたSubbyte処理を行う。 [1105] Shift処理およびMixedcol
umn処理を行う。 [1106] i:= i+1 とする。 [1107] i < N−1である場合はステップ[1
103]に戻る。それ以外は次のステップに進む。 [1108] KN−1とのXOR処理を行い、RK
N−1をマスク値処理部に供給して16個のSbox、
N−1,j(x)(j=0,1,・・・,15)を
生成する。 [1109] SN−1,j(x)によるSubbyt
e処理、Shift処理、およびKとのXOR演算を
行う。 [1110] ステップ[1109]の演算出力に対し
て、マスク値生成の出力結果RoutとのXOR演算を
行い、その結果の暗号文を出力として供給する。
【0038】マスク値生成処理のフロー: [1201] i=0、Mask=Rinとセットする。
但し、Rinは[1102]で生成された乱数マスク値で
ある。 [1202] 暗号化処理部より受け取ったRK
ら、MaskXORRKを演算して、新しいMask
を生成する。 [1203] ステップ[1202]で生成した新しい
MaskをNewSboxに入力することによって、1
6個のSbox、Si,j(x)(j=0,1,・・
・,15)と乱数Routを得て、Routを新し
いMaskとする。Si,j(x)は暗号化処理部の第
i段のSubbyteにおいて用いられる。 [1204] MaskをShift処理およびMix
edcolumn処理に供給し、その処理からの出力を
新しいMaskとする。 [1205] i:=i+1とセットする。i < N−1
である場合はステップ[1202]に戻る。 [1206] 暗号化処理部から入力されたRKN−1
からMaskXORRK N−1を演算して、その演算結
果を新しいMaskとする。 [1207] RinN−1をNewSboxに供給する
ことによって、16個のSbox、 S
N−1,j(x)(j=0,1,・・・,15)と乱数
Rout N−1を得て、RoutN−1を新しいMas
kとする。SN−1,j(x)は暗号化処理部の第N−
1段のSubbyteにおいて用いられる。 [1208] MaskをShift処理に供給し、そ
の処理結果を新しいMaskとする。 [1209] 暗号化処理部より入力されたRKN
ら、MaskXORRKNを演算し、それを出力して処
理を終了する。
【0039】
【発明が解決しようとする課題】乱数マスク値法はDP
Aに対する安全性(セキュリティ)が高いことが知られ
ているが、乱数マスク値法を採用した暗号化は、その暗
号化の速度が通常の暗号化と比べて数分の1と低く、非
常に大きいRAM領域を必要とするという欠点がある。
【0040】暗号化の速度が低い理由は、例えば暗号化
処理におけるXOR演算では、通常の実装では2つの中
間値xおよびyからz=xXORyを演算するのに対し
て、乱数マスク値法ではx’=xXORr、y’=y
XORrを満たす中間値x’、y’からz’=x’X
ORy’を演算する他に、z’に関する新しいマスク値
の生成処理r=rXORrを演算する必要がある
からである。さらに、非線変換において、通常Sbox
という非線形変換テーブルをROMに保持するのに対し
て、乱数マスク値法では、新しいマスク値から非線形変
換テーブルを毎回生成しなければならないので大量の計
算が要求される。
【0041】大きいRAM領域を必要とする理由は、そ
の非線形変換において、通常はその非線形変換テーブル
をROMに保持するのに対して、乱数マスク値法では暗
号化のたびに新しいSboxをRAMに格納するからで
ある。例えば8ビット−8ビットの変換を行うSbox
を用いるラインデール法において、DPA対策として乱
数マスク値法を実装するには最低2=256バイト分
のRAM領域が必要である。しかし、例えばST16
(STマイクロエレクトロン社製)等の低コストのスマ
ートカード用チップはRAM領域が128バイト程度し
か持っていないので、乱数マスク値法を実装することは
実際上不可能である。
【0042】乱数マスク値法の実装のために、マスク値
を共有すること、および或る暗号化から次の暗号化まで
の間にマスク値を生成することなどによって、見かけの
処理速度の向上および必要なRAM領域の削減等が考え
られているが、最初に乱数値でマスクするので全体的な
処理速度の向上および大幅な必要RAM領域の削減は不
可能である。
【0043】発明者は、暗号化において、乱数値を用い
てマスクするのではなくて、固定値を用いてマスクする
ことによって処理速度の向上と必要なRAM領域の削減
を実現すると有利であると認識した。ここで、この固定
値を用いてマスクを行う方法を、固定マスク値法と呼
ぶ。
【0044】本発明の1つの目的は、共通鍵暗号を行う
暗号プロセッサに対する効率的な暗号解読防止を実現す
ることである。本発明の別の目的は、秘密鍵の推定を困
難にし、暗号プロセッサの安全性を高めることである。
【0045】
【発明の概要】本発明の1つの特徴(側面)によれば、
暗号化装置は排他的論理和手段および非線形変換手段を
有する。その暗号化装置は、さらに、乱数を発生する乱
数発生手段と、q個(qは整数)の固定値と、その乱数
に従ってそのq個の固定値の中の1つを選択する第1の
選択器と、を具えている。その排他的論理和手段は、そ
の選択された固定値と鍵の排他的論理和とその排他的論
理和手段の入力の排他的論理和をとる。
【0046】本発明の別の特徴によれば、暗号化装置は
排他的論理和手段および非線形変換手段を有する。その
暗号化装置は、さらに、乱数を発生する乱数発生手段
と、q組(qは整数)のマスクされた固定テーブルと、
その乱数に従ってそのq組の固定テーブルの中の1組を
選択する選択器と、を具えている。その非線形変換手段
は、その選択された1組の固定テーブルに従って入力を
非線形変換する。
【0047】本発明のさらに別の特徴によれば、暗号化
装置は、乱数を発生する乱数発生手段と、並列に結合さ
れた複数の暗号化部と、その乱数に従ってその複数の暗
号化部の中の1つを選択する選択器と、を具えている。
その複数の暗号化部の各々は、排他的論理和手段および
非線形変換手段を含んでいる。
【0048】本発明のさらに別の特徴によれば、暗号化
装置は、乱数を発生する乱数発生手段と複数の暗号化段
とを具えている。その複数の暗号化段の各々は、入力を
非線形変換する非線形変換手段と、第1の入力と第2の
入力の排他的論理和をとる排他的論理和手段と、を含ん
でいる。その排他的論理和手段の第2の入力はその非線
形変換手段の出力に結合されている。その非線形変換手
段は、q個(qは整数)の固定値と、その乱数に従って
そのq個の固定値の中の1つを選択する選択器と、その
選択された固定値と鍵の排他的論理和と入力の排他的論
理和をとる別の排他的論理和手段と、を有する。
【0049】本発明のさらに別の特徴によれば、暗号化
装置は、乱数を発生する乱数発生手段と、並列に結合さ
れた複数の暗号化部と、その乱数に従ってその複数の暗
号化部の中の1つを選択する選択器と、を具えている。
その複数の暗号化部の各々は複数の暗号化段を有する。
その複数の暗号化段の各々は、入力を非線形変換する非
線形変換手段と、第1の入力と第2の入力の排他的論理
和をとる排他的論理和手段と、を含んでいる。その排他
的論理和手段の第2の入力はその非線形変換手段の出力
に結合されている。
【0050】本発明のさらに別の特徴によれば、暗号化
装置において用いられるプログラムは、乱数に従って複
数の暗号化手順の中の1つを選択するステップと、その
選択された暗号化手順に従って、入力値を暗号化して出
力するステップと、を含んでいる。その暗号化するステ
ップは、固定値と鍵の排他的論理和と入力値の排他的論
理和をとるステップと、1組の固定テーブルに従って入
力値を非線形変換するステップと、を含んでいる。
【0051】本発明によれば、共通鍵暗号を行う暗号プ
ロセッサに対する効率的なDPA対策を実現でき、DP
Aを用いた秘密鍵の解読(analyze)を困難にし、暗号
プロセッサの安全性を高めることができる。
【0052】実施形態においては、通常は乱数値で入力
や鍵をマスクする乱数マスク値法に対して、本発明の固
定マスク値法に従って、複数個の固定値を用意し、それ
を乱数によって切換えることによって、乱数マスク値法
と同様の効果を得る。固定マスク値法では、マスク値が
特定の固定値に限定されるので、新しいマスク値を予め
求めておくことによって処理速度を高くできる。また、
予め固定マスク値の集合(セット)を用意し、それぞれ
の固定マスク値に対応した非線形変換テーブルをROM
に用意することによって、小さいRAM領域を有するプ
ラットフォーム上でも実装が可能になる。例えばST1
6等の低コストのスマートカード用のLSIチップでも
6Kバイト程度の大きなROM領域を備えているので、
固定値マスク法は低コストのスマートカードに適してい
る。
【0053】
【発明の好ましい実施形態】次に、本発明の実施形態を
説明する。実施形態において、暗号化における全てまた
は一部の諸要素および諸処理は、集積回路等によってハ
ードウェアの形態で実装してもよいし、またはプロセッ
サによって実行されるプログラムの形態で実装してもよ
い。
【0054】図21は本発明による第1のタイプの暗号
化装置100の概略的構成を示している。図22および
23は、暗号化装置100の鍵XOR演算および非線形
変換の構成をそれぞれ示している。線形変換は図2に示
されているものを用いればよい。
【0055】図21において、暗号化装置100は、乱
数R(R=0,1,・・・,q−1)を発生する乱数発
生器103と、その乱数に従って固定マスク値FM
0,Rの中の1つを選択して供給する切換部または選択
器104と、入力の平文と選択された固定マスク値FM
0,Rとの排他的論理和を演算する(XORする)(X
in’=平文XORFM0,R)排他的論理和106
と、入力Xin’を受取り乱数Rに従って入力Xin’
を暗号化して出力Xout’を生成する暗号化処理部1
01と、その乱数に従って固定マスク値FMN+1,R
の中の1つを選択して供給する切換部105と、その出
力Xout’と選択された固定マスク値FM +1,R
との排他的論理和を演算して(XORして)暗号文(X
out’XORFMN+1,R)を生成する排他的論理
和107と、を含んでいる。ここで、Nは暗号化処理部
101で使用される固定マスク値のセットの数を表す。
【0056】暗号化装置100は、さらに、作業メモリ
用のRAM162と、固定マスク値と、固定非線形変換
テーブルSboxと、線形変換関数L等を格納するRO
M164と、ROM等のプログラム・メモリ160に格
納されているプログラムに従ってこれらの諸処理要素1
03〜107を制御するプロセッサ150とを含んでい
る。代替構成として、プロセッサ150は、諸処理要素
103〜107に対応する機能を実装したメモリ160
中のプログラムを実行することによって諸処理要素10
3〜107を実現してもよい。この場合、図21はフロ
ー図として見ることができる。
【0057】暗号化処理部101において、図22の鍵
XOR、図2の線形変換および図23の非線形変換の組
み合わせによって規定されるラウンド関数が繰返し実行
され、または縦続接続されたそのような複数のラウンド
関数回路によってそのラウンド関数が実行される。
【0058】図22の鍵XORは、切換部109によっ
て乱数Rに従って選択された固定マスク値FMi,R
鍵KとをXORして或る値を供給し、その値と入力X
i’とをXORして出力Zi’を供給する。図23の非
線形変換は、切換部111〜119によって乱数Rに従
ってSboxの要素wij,R’(j=0,・・・,u
−1)を選択し、その選択された要素wij,R’を用
いて非線形変換する。
【0059】乱数マスク値法において示した式(7)の
関係を用いると、図22の鍵XORにおいて図11のR
iとROiに対応して次の式(8)が得られる。
【数8】
【0060】図23の非線形変換において用いられる図
13(B)のNewSboxのriとroiに対応して
次の式(9)が得られる。
【数9】
【0061】図24は本発明による第2のタイプの暗号
化装置200の概略的構成を示している。図25および
26はその鍵XORおよび非線形変換の構成をそれぞれ
示している。線形変換はいずれの暗号化処理部において
も図2に示されているものを用いればよい。
【0062】図24において、暗号化装置200は、乱
数Rを発生する乱数発生器203と、その乱数に従って
固定マスク値FM0,Rの中の1つを選択して供給する
切換部204と、入力の平文と切換部204によって選
択された固定マスク値FM ,RとをXORする(Xi
n’=平文XORFM0,R)XOR(排他的論理和)
206と、入力Xin’を受取りその入力Xin’を暗
号化して出力Xout’を生成する複数の暗号化処理部
208〜209と、入力Xin’を受取り乱数Rに従っ
て互いに並列に結合された暗号化処理部208〜209
の中の1つを選択してその選択された暗号化処理部に入
力Xin’を供給する切換部211と、同じ乱数Rに従
って暗号化処理部208〜209の中の同じ1つを選択
してその選択された暗号化処理部からの出力Xout’
を供給する切換器213と、その乱数に従って固定マス
ク値FMN+1,Rの中の1つを選択して供給する切換
部205と、その出力Xout’と選択された固定マス
ク値FMN+1,RとをXORして暗号文(=Xou
t’XORFMN+1,R)を生成するXOR207
と、を含んでいる。ここで、Nは使用される固定マスク
値の数を表す。図24において、2つの切換部211お
よび213のうちの一方だけで選択してもよく、その他
方の切換部を省いてもよい。
【0063】暗号化装置200は、さらに、作業メモリ
用のRAM262と、固定マスク値、固定非線形変換テ
ーブルSboxと、線形変換関数L等を格納するROM
264と、ROM等のプログラム・メモリ260に格納
されているプログラムに従ってこれらの諸処理要素20
3〜211を制御するプロセッサ250とを含んでい
る。代替構成として、プロセッサ250は、諸処理要素
203〜211に対応する機能を実装したメモリ260
中のプログラムを実行することによって諸処理要素20
3〜211を実現してもよい。この場合、図24はフロ
ー図として見ることができる。
【0064】暗号化処理部208〜209は、固定マス
ク値FMi,jおよびSboxのセットwii,jが異な
ること以外は構成が共に同じである。各暗号化処理部2
08〜209において、図25の鍵XOR演算、図2の
線形変換処理および図26の非線形変換の組み合わせに
よって規定されるラウンド関数が繰返し実行され、また
は縦続に結合されたそのような複数のラウンド関数回路
によってそのラウンド関数が実行される。
【0065】図25の鍵XORは、暗号化処理部208
〜209の各々に固有の固定マスク値FMi,Rと鍵K
iをXORして或る値を供給し、その値と入力Xi’と
をXORして出力Zi’を供給する。図26の非線形変
換は、その暗号化処理部に固有のSboxのセットwi
j,R’(j=0,・・・,u−1)を用いて非線形変
換する。ここで、乱数マスク値法における式(7)の関
係を用いると、図25の鍵XORにおいて図11のRi
とROiに対応してROi= RiXORFM i,R
得られ、図26の非線形変換において図12(B)のr
iとroiに対応してwij,R’(xi’)=wi
(riXORxi’)XORroiが得られる。
【0066】本発明による上述の固定マスク値法は、低
コストのスマートカードに実装するのに適した方法と考
えられる。ここでは、次のような問題点を検討すること
によってより好ましい実装形態を実現する。
【0067】(A)DPA対策としての有効性の問題 乱数マスク値法はDPAに対して安全であることが知ら
れているが、固定マスク値法はDPAに対してどの程度
安全であるかが不明であり、実装法および固定マスク値
の条件しだいではDPAに対して弱い可能性がある。
【0068】(B)ROM領域が膨大になる可能性の問
題 固定マスク値法は、非線形変換テーブルをROMに用意
することで、乱数マスク値法より必要なRAM領域を小
さく抑えることができるという利点がある。しかし、用
意されるマスク固定値の数に応じて使用ROM量が決ま
る。安全性を確保するために必要なROMの容量が膨大
になる可能性がある。
【0069】(A)の問題に関連して、本発明を適用す
る或る暗号化では、或る条件の固定マスク値を使用すれ
ばその数qが2でも充分に安全であることが分かってい
る。本発明による暗号化法としてラインデール法を適用
した場合の安全性を後で説明する。同様に(B)の問題
に関連して、相異なる固定マスク値の数qを2程度にし
て、同じラウンドやラウンド毎のSboxを共通にする
ことで、Sboxのデータ量を、本発明が適用されない
通常の実装の約2〜数倍に抑えて、使用ROM量を小さ
く抑える。実施形態において暗号化法としてラインデー
ル法を適用した場合の使用ROM量について後で述べ
る。
【0070】図27は、図21の第1のタイプの暗号化
装置100の一例を示しており、ラインデール(Rijnda
el)暗号化法に固定マスク値法を適用した暗号化装置3
00を示している。但し、図27において、図21にお
けるプロセッサ150、メモリ160、162および1
64は簡単化のために省略されている。図27におい
て、暗号化装置300は、乱数h(h=0,1,・・
・,q−1)を発生する乱数発生器303と、その乱数
hに従って固定マスク値FMinの中の1つを選択し
て供給する選択器305と、入力の平文と選択された固
定マスク値FMin とをXORするXOR302と、
入力Xin’を受取って乱数hに従って入力Xin’を
暗号化して出力Xout’を生成する複数段の暗号化処
理段310(各段iは0≦i≦N−2)と、第N−2段
の暗号化処理段310の出力Xout’を入力Xin’
として受取り乱数Rに従ってその入力を暗号化して暗号
文Xout’を生成する第N−1段の暗号化処理段31
1と、を含んでいる。
【0071】複数段の暗号化処理段310の各段iは、
乱数hに従って選択された固定マスク値FMi,hを供
給する選択器329と、鍵Kと固定マスク値FM
i,hをXORして出力を供給するXOR331、その
出力の値と入力Xi’とをXORするXOR333と、
その乱数hに従ってSboxである固定値Si,j,h
(j=0,1,・・・,15)の中の1つを選択してマ
スクされた鍵K0,hを供給する切換器または選択器3
39と、その選択されたSi,j,hに従ってXOR3
33からの出力をサブバイトするSubbyte334
と、Subbyte334の出力をシフトするShif
t335と、Shift335の出力をミクストコラム
するMixedColumn336とを含んでいる。
【0072】第N−1段の暗号化処理段311は、第i
段の暗号化処理段310と同様の切換器329および3
39と、XOR331および333と、Subbyte
334と、Shift335とを有し、MixedCo
lumnは有せず、切換器379によって選択された固
定マスク値FMN,hとKとをXOR371によって
XORしてマスクされた鍵KN,hを生成し、KN,h
とShift335の出力とをXOR373によってX
ORし、切換器399によって選択された固定マスク値
FMoutとXOR373の出力とをXOR383に
よってXORして暗号文を生成する。
【0073】ここで、FMi,h、FMin、および
FMoutは、固定マスク値である。S
i,j,hは、固定のSboxである。これらの固定マ
スク値およびSbox値は予め求められる。従って、固
定マスク値法では通常の乱数マスク値法における逐次計
算が不要なので、処理が高速化される。さらに、予め求
めた固定マスク値およびSboxの変換テーブルを、例
えば図21のRAM162および図24のRAM262
のようなRAMにではなくて、図21のROM164お
よび図24のROM264のようなROMに格納するこ
とによって、実装に必要なRAM領域を大幅に節約でき
る。このような必要なRAM量の節約は、ほんの128
バイトのRAM領域しか持っていない低コストのスマー
トカードへの実装に有利である。
【0074】図27の暗号化装置300に入力平文が供
給されると、内部の乱数発生器303によって0≦h≦
q−1を満たす乱数hが生成される。その生成された乱
数hに従って、図27に示す全ての切換器305、32
9、339、379および399において、q個の入力
値の中からh番目のものが選択されて供給される。図2
8は図27におけるSubbyte334の構成を例示
している。Shift335は図16に例示されている
ものを、 Mixedcolumn336は図17に例
示されているものを用いる。図28のSubbyteに
おいて用いられるSbox Si,j,hは、図16に
示されている通常のラインデール法のSubbyteの
SboxであるSを用いて次の式(10)で表される。
【数10】
【0075】式(10)におけるai,j,hおよびb
i,j,hは、式(9)のrii, およびroi
i,jにそれぞれ対応し、それぞれi番目のラウンドの
Subbyteの入力および出力のマスク値に対応す
る。ai,j,hは、入力マスク値なので、そのSub
byteより前のマスク値および処理等によって一意的
に決まる。一方、bi,j,hは任意に設定可能であ
る。
【0076】図27の暗号化装置300処理のフローを
ステップ[1301]〜[1314]に示す。ステップ
[1303]〜[1309]は図28の第i段における
処理である。ステップ[1310]〜[1314]は図
27の第N−1段における処理である。 [1301] i=0とセットする。 [1302] 入力平文を受け取り、次いで乱数発生器
303によって乱数h(0≦h≦q−1)が発生され
る。この乱数hは後のステップで使用される。 [1303] 入力平文に対して、固定マスク値の集合
{FMin,・・・,FMinq−1}の中からFM
inを切換器305によって選択した後、XOR30
2によって入力平文とFMinをXORする。XOR
302の出力を中間データXとする。 [1304] 固定マスク値の集合{FMi,0,・・
・,FMi,q−1}の中からFMi,hを切換器32
9によって選択して、拡大鍵K、中間データXおよび
FMi,hに対してXXORKXORFMi,hを演
算し、その演算結果を新しい中間データXとする。 [1305] Subbyte334において、中間デ
ータXに対して、切換器339によって乱数hに従って
選択された非線形変換テーブルSi,j,h(x)に従
ってサブバイト処理する。その演算結果を新しい中間デ
ータXとする。 [1306] Shift335において中間データX
をシフトする。そのシフトされたデータを新しい中間デ
ータXとする。 [1307] Mixedcolumn336において
中間データXをミクストコラム処理する。その処理結果
を新しい中間データXとする。 [1308] i:=i+1とセットする。 [1309] i < N−1の場合は[1303]に戻
る。それ以外は次のステップに進む。 [1310] 乱数hに従って固定マスク値の集合{F
N−1,0,・・・,FMN−1,q−1}の中から
FMN−1,hを切換器329によって選択して、拡大
鍵KN−1、中間データXおよびFMN−1,hに対し
て、XXORK −1XORFMN−1,hを演算す
る。その演算結果を新しい中間データXとする。 [1311] 切換器339によって選択された非線形
変換テーブルSN−1, j,h(x)に従ってサブバイ
ト処理を行う。その処理結果を新しい中間データXとす
る。 [1312] Shift335において中間データX
をシフトする。そのシフトされたデータを新しい中間デ
ータXとする。 [1313] 乱数hに従って固定マスク値の集合{F
N,0,・・・,FM N,q−1}の中から切換器3
79によってFMN,hを選択して、その中間データ
X、拡大鍵KNおよびFMN,hに対して、XXORKN
XORFMN,hを演算する。その演算結果を新しい中
間データXとする。 [1314] 乱数hに従って固定マスク値の集合{F
Mout,・・・,FMoutq−1}の中からFM
outを切換器399によって選択して、中間データ
XとFMoutをXORし、その演算結果を出力暗号
文Xout’として供給する。
【0077】図29は、ラインデール法に固定マスク値
法を適用した別の暗号化装置400を例示している。但
し、図29において、図21におけるプロセッサ15
0、メモリ160、162および164は簡単化のため
に省略されている。図29の構成は、その各ラウンド関
数における各Subbyte334に結合された切換器
339に供給されるSboxが互いに同じである以外
は、図27と同じであり、同じ構成要素については再び
説明はしない。図30は図29におけるSubbyte
334の構成を例示している。マスク値FMi,hは、
任意のh=0,1,・・・,q−1について次の式(1
1)を満たす。
【数11】
【0078】ここで、Cおよび Dは、16バイトの
定数であり、1バイト定数ch,jおよびdh,j(j
=0,1,・・・,15)をそれぞれ用いて、次の式
(12)のように記述される。
【数12】
【0079】図29の暗号化装置400において、サブ
バイト処理Subbyte334は、切換器339によ
って選択された16個のSbox、S0,h、 S
1,h、・・・、S15,hを用いて、図30に示す非
線形変換処理を行う。16個のS j,hはDPA対策な
しの通常のラインデール法におけるSであり、および式
(12)におけるch,j、dh,jを用いて、S
j,h(x)=S(xXORc h,j)XORdh,j
と表される。
【0080】図29の暗号化装置400の処理フローに
おいては、図27の暗号化装置400の処理フローにお
けるステップ[1305]および[1311]におい
て、切換器339によって乱数hに従って16個のSb
ox、S0,h、S1,h、・・・、S15,hの中から選
択された非線形変換テーブルSj,hに従ってサブバイ
ト処理する。
【0081】図27の暗号化装置300ではSubby
te334のテーブルが各ラウンドで異なるのに対し
て、図29の暗号化装置400では全てのラウンドで共
通のテーブルが使用される。これが可能な理由を説明す
る。まず、通常のラインデール処理におけるSubby
te(図16)への入力値をXと表す。これに対し、図
30のSubbyte処理の入力値はXXORCと表
すことができる。これは、マスク値の間に式(11)の
関係が成立するからである。Cは段数iとは関係ない
定数なので、式(10)におけるSi,j,h(x)=
S(xXORa ,j,h)XORbi,j,hに対し
て、ai,j,hを段番号iに関係ない定数に設定でき
る。また、bi,j,hは、任意の定数なので、iに関
係ない定数に設定できる。よって、図30に示すように
j,h(x)=S(xXORc ,j)XORd
h,jで表される段数iに無関係なSboxを用いたサ
ブバイト処理が可能となる。従って、図29の暗号化装
置400で用いられるSboxに必要な使用ROM量
は、図27の暗号化装置300の場合の1/Nとするこ
とができる。
【0082】さらに、図29の暗号化装置400におい
て、マスク値CおよびDに関する条件式(12)に、
次の式(13)に示す条件を加えることによって、使用
するSboxの数(種類の数)を相異なる16セットか
らほんの1セットに減らすことができる。
【数13】
【0083】即ち、図29の暗号化装置400で用いら
れるSboxに必要な使用ROM量は、図27の暗号化
装置300の場合の1/16とすることができる。以上
から、式(13)を満たす図29の暗号化装置400を
用いることによって、Sboxに必要なROM領域を図
27の暗号化装置300を用いた場合の1/(16N)
とすることができる。
【0084】また、図29の暗号化装置400では入力
側および出力側においてFMinおよびFMout
をそれぞれXORしているが、この処理は安全性に寄与
しないことが判明しているので、省略できる。さらに、
マスク済みの鍵KXORFMi,hの値を用いること
によって、鍵Kと固定マスク値FMi,hとのXOR
演算を省略できる。これらの省略によって、切換器によ
る処理が少し増加するだけなので、DPA対策のないラ
インデール法の場合とほぼ同じ計算量で固定マスク値法
を適用したラインデール法が実現できる。
【0085】図31は、図24の第2のタイプの暗号化
装置200の一例を示しており、ラインデール法に固定
マスク値法を適用した別の暗号化装置500を例示して
いる。但し、図31において、図24におけるプロセッ
サ250、メモリ260、262および264は簡単化
のために省略されている。図31において、暗号化装置
500は、乱数hを発生する乱数発生器503と、乱数
hに従って切換えを行う切換器502および504と、
切換器502および504によって乱数hに従って選択
される互いに並列に結合された第0〜第q−1のq個の
暗号処理部511〜513と、を含んでいる。
【0086】暗号処理部511〜513の各々は、入力
Xin’を受け取って出力Xout’を生成する複数段
の暗号化処理段530(段iは0≦i≦N−2)と、前
段の出力を入力として受取りその入力を暗号化して出力
Xout’を生成する第N−1段の暗号化処理段と53
1、を含んでいる。第0段〜第N−2段の暗号化処理段
530は、固定マスク値、XOR523、それぞれのS
ubbyte525、Shift526およびMixe
dcolumn527を有し、それぞれの固定マスク値
および固定Sboxに従って暗号化を行う。第0段の暗
号化処理段530の前にはXOR521が結合されてい
る。第N−1段の暗号化処理段531は、固定マスク
値、XOR523、528および529、Subbyt
e525およびShift526を有し、それぞれの固
定マスク値および固定Sboxに従って暗号化を行う。
図31では、鍵KとFMj,hとがXORされたK
XORFMj,hの値が直接供給されるように示されて
いるが、図29の場合と同様に鍵KとFMj,hとが
XORによってXORされてXOR523〜553の入
力に供給されるようにしてもよい。図31においては、
図29の場合と同様にFMinとFMoutとを省
略できる。
【0087】図31の暗号化装置500においても、図
29の暗号化装置400の場合と同様に全てのラウンド
で同じSboxを使用しており、式(13)の条件を満
たすようにすれば、図29の暗号化装置400の場合と
同様のROMの削減が可能となる。暗号化装置500の
計算量は、暗号化装置400の場合より切換器が少ない
だけ有利であり、DPA対策のないラインデール法とほ
ぼ同じ計算量となる。但し、図31の暗号化装置500
は、図29の暗号化装置400の場合よりもシフトおよ
びミクストコラム処理の数が増えるので、暗号化装置5
00の方が回路のサイズが大きくなる。なお、暗号化装
置500には2つの選択器502および504が存在す
るが、左右の切換器502および504のうち一方だけ
で切換えてもよい。そのような場合、他方の選択器は省
略できる。
【0088】図29および図31の暗号処理装置におい
ては同じ処理が異なる構成で行われるだけなので、安全
性は共に同じである。
【0089】次に、固定マスク値法の安全性について説
明する。図27の暗号化装置では、固定マスクの数qが
充分大きい場合は、乱数マスク値法と実質的に同じ動作
になるので、同様に高い安全性を有する。乱数マスク値
法におけるほんの1ラウンドに簡略化された暗号関数に
ついて安全性が証明できるので、各ラウンドに同じSb
oxを使用する図29および31の暗号化装置400お
よび500についても同様に安全性が証明できる。
【0090】次に、qが小さい場合の固定マスク値法の
安全性を説明する。q=1では安全でないことが分かっ
ている。次に小さいq=2の場合の安全性を評価する。
図29および31の暗号化装置400および500にお
いて、q=2とし、式(13)に従ってSubbyte
において1セット(種類)だけのSboxを用い、かつ
FMinおよびFMoutを省略した最も単純な場
合においても、c0, 、c1,j、・・・、c
q−2,jに関して次の式(14)または式(15)の
条件を設定し、d0,j、d1,j、・・・、d
q−2,jに関して次の式(16)の条件に設定するこ
とによって、DPAに対する安全性を高めることができ
る。
【0091】q=2、Sboxのセット(種類)の数が
1、全てのj=0、1、・・・、15について
【数14】 q≧2、Sboxのセットの数が1、全てのj=0、
1、・・・、15について
【数15】 q≧2、Sbox数が1、全てのj=0、1、・・・、
15について
【数16】 ここで、( )は2進法の値を表す。
【0092】DPAは、図9の測定対象点Aにおける所
定タイミングで行われる場合と、測定対象点BおよびC
における所定タイミングで行われる場合とがある。図2
9および31の暗号化装置400および500が安全で
あることを説明する。ビット(x,e)はxの第e桁の
ビット値を表す。
【0093】攻撃者は、鍵の推定のために以下の(i)
および(ii)の処理を行う。 (i)DPAを用いて、チェックする仮の鍵(可能な
鍵)の数を限定する。 (ii)(i)で限定された数の仮の鍵について、プロ
セッサ内部で用いられている真の鍵と値が一致するかど
うかをチェックすることによって鍵を推定する。1つの
仮の鍵すなわち1つのパターンの鍵をチェックするため
の計算の量を1単位(サイクル)とする。
【0094】上述の鍵の値のチェックは、暗号プロセッ
サの平文と暗号文の関係を調べることによって実現でき
る。即ち、暗号化プロセッサにより平文を暗号化した場
合と、ソフトウェアなどの別の手段によって、そのチェ
ックされる仮の鍵の値を用いてその平文を暗号化した場
合とを比較する。平文と暗号文の関係が両方の暗号化で
一致した場合は、その仮の鍵の値が暗号プロセッサ内部
で用いられていると判定する。両者が一致しない場合は
その仮の鍵は用いられていないと判定する。
【0095】DPAを用いて128ビットの鍵を推定す
るのに必要な計算量の例を示す。例えば、DPAを行っ
ても128ビット鍵に関する有益な情報を得られなかっ
た場合は、128ビット鍵の全ての可能なパターンをチ
ェックする必要があるので、必要な計算量は2128
位である。例えば、DPAによって128ビット鍵の最
下位ビット(LSB)が0であることが分かった場合
は、その鍵の残りの127上位ビット(MSBs)の全
ての可能なパターンをチェックすればよいので、必要な
計算量は2127単位である。
【0096】次に、Sboxの出力のDPAに対する安
全性について、図9の測定対象点AにおけるDPAを図
29および31の暗号化装置400および500に対し
て適用した場合について説明する。図29および31の
第0段のSubbyteにおいて、それぞれのSbox
の出力値がロードされるタイミングにおいてDPAを適
用すると、鍵Kは28(16−F)=2128−8F
に比例した計算量で解読できることが分かっている。こ
こで、F=f0+f1+・・・+f15である。fは、
次のように定義される。j(j = 0,1,・・・,1
5)番目のSboxの出力マスク値をd0,j、 d
1,j、・・・、dq−1,jとしたときに、
【数17】
【0097】よって、j=0,1,・・・,15の全て
についてf=0の場合に、暗号化装置はDPAに対し
て最も安全である。そのためには、全てのj=0,1,
・・・,15について、WD=(11111111)
でなければならない。このとき、DPAを用いて鍵を
求めるのに必要な計算量は最大の2128となる。
【0098】次に、鍵XORの出力(図9の測定対象点
B)またはSboxへの入力(図9の測定対象点C)に
おけるDPAに対する安全性を説明する。図9の測定対
象点BおよびCにおける所定タイミングにおけるDPA
に対する安全性は、暗号プロセッサでRAMへのロード
が行われた時の測定電圧とロード値との関係がどのよう
なモデルを用いて近似できるかによって異なる。まず、
任意モデルの場合のDPAを考え、その後で式(6)で
表される隣接ビット・モデルの場合のDPAを考える。
【0099】任意モデルの場合について、図9の測定対
象点BおよびCにおける所定タイミングにおけるDPA
を、式(13)によってサブバイト処理で用いられるS
boxの数を1つ(1セット)だけとした図29および
31の暗号化装置400および500に対して適用した
場合について説明する。第0段のSubbyte処理に
おいて、それぞれの鍵XORの出力値がロードされるタ
イミングにおいてDPAを適用すれば、鍵Kは2
128−(15/16)Hに比例した計算量で解読でき
ることが分かっている。ここで、H=h0+h+・・
・+h15である。h は次のように定義される。j
(j = 0,1,・・・,15)番目のSboxの入力
マスク値をc0,j、c1,j、・・・、cq−1,j
したときに、
【数18】
【0100】即ち、j=0,1,・・・,15について
=0の場合がDPAに対して最も安全である。その
ためには、全てのj=0,1,・・・,15についてW
=(11111111)でなければならない。こ
のとき、DPAを用いて鍵を求めるのに必要な計算量は
最大の2128になる。
【0101】次に、隣接ビット・モデルの場合につい
て、q=2かつ式(13)によりサブバイト処理で用い
るSboxのセット(種類)の数を1に限定し、式
(6)で表される隣接ビット・モデルを適用した場合に
ついて説明する。隣接ビット・モデルは、低コストのス
マートカードにおける電圧を近似するのに適したモデル
として知られており、このモデルが適用できる場合は、
上述の任意モデルでは解読できない鍵情報を解読でき
る。図29および31の暗号化装置400および500
における第0段のSubbyte処理において、それぞ
れのSboxの入力値がロードされるタイミング(図9
の測定対象点Cにおける所定タイミング)にDPAを適
用することによって、鍵Kを2
128−(15/16)Hに比例した計算量で解読でき
る。ここで、H = h0+・・・+h15 である。
は、次のように定義される。j番目のSboxの入
力マスク値をc0,jおよび c ,jとしたときに、
【数19】 ここで、wcj,e=0または1である。jはSbox
の序数(番号)を表す。eはビット位置を表す。
【0102】Sboxの数は1なので、条件式(14)
がc0,jXORc1,j=(01010101)
たは(10101010)である場合は、Hは最小値
64となり、DPAを用いて鍵を求めるのに必要な計算
量は最大でも268である。
【0103】以上のように、c0,j、c1,j、・・
・、cq−1,jに関して条件式(14)または式(1
5)を満たし、かつd0,j、d1,j、・・・、d
q−1 ,jについて式(16)の条件を満たすことによ
って、本発明による固定マスク値法を適用した暗号化装
置に対してDPAを用いて128ビットのラインデール
法の秘密鍵を求める場合、表1および表2に示すように
128または268に比例した計算量が必要となる。
但し、DPAに対する計算量についての安全性の閾値は
64である。なお、計算量268は鍵の全てのビット
・パターンを計算する場合の計算量2128と比較する
と小さいが、そのような鍵は実際の制限された時間内で
解読することは実際上不可能である。従って、本発明に
よる固定マスク値法を適用した暗号プロセッサに対して
DPAを用いた場合も秘密鍵の解読は実際上不可能であ
る。
【0104】
【表1】
【0105】
【表2】
【0106】従って、固定マスク値法の安全性は次の通
りである。 1.2以上のqについて、固定マスク値法は、Sbox
出力値のロードに対するDPAに対して、式(16)の
条件を満たせば、鍵の推定に計算量2128が必要なの
で、安全である。この計算量は鍵の全ての可能なパター
ンをチェックする場合の計算量と同じである。
【0107】2.2以上のqについて、式(13)の条
件を満たす場合、固定マスク値法は、Sbox入力値ロ
ードに対するDPAに対して、隣接ビット・モデルでな
い任意のモデルについて式(15)の条件を満たせば、
鍵の推定に計算量2128が必要なので、安全である。
【0108】3.q=2について、式(13)の条件を
満たす場合、固定マスク値法は、Sbox入力値ロード
に対するDPAに対して、隣接ビットモデルについて条
件式(14)のc0,jXORc1,j=(01010
101)または(10101010)を満たせば、
鍵の推定に計算量268が必要なので、有限時間内での
推定は実際上不可能であり、従って安全である。
【0109】4.q≧3について、必要なROM容量は
増加するが、固定マスク値法は、q=2と同じ解析方法
が適用できないため、上述の2の場合と同様に式(1
5)の条件を満たせば、、隣接ビット・モデルと任意モ
デル鍵の双方とも鍵の推定に計算量2128が必要なの
で、安全である。
【0110】5.上述の3の場合において、条件式(1
4)はSboxのセットの数を1つに限定している(q
=2なので出力値の数は2個)が、Sboxのセットの
数を相異なるn個とするとROM容量はn倍となるが、
計算量は28(n−1)×n 倍必要となる。
【0111】本発明による固定マスク値法は、上述のラ
インデール法のようなSPN型の暗号以外に、DESの
ようなフェイステル(Feistel)型の暗号にも適用でき
る。図32(A)は通常のDESによる暗号化の構成を
示している。図32(B)は図32(A)におけるF関
数のより詳細な構成を示している。図32(B)におい
て、F関数は、線形変換EおよびPと、非線形変換テー
ブルS〜Sを有する非線形変換S〜Sとを有す
る。
【0112】図33(A)は、図21の第1のタイプの
暗号化装置100の一例を示しており、図29の暗号化
装置400に類似した形態で固定マスク値法を図32の
DESによる暗号化に適用した暗号化装置700を示し
ている。図33(B)は図33(A)におけるF関数の
より詳細な構成を示している。但し、図33(A)にお
いて、図21におけるプロセッサ150、メモリ16
0、162および164は簡単化のために省略されてい
る。
【0113】暗号化装置700は、乱数hを発生する乱
数発生器701と、その乱数h従って固定マスク値FM
inの中の1つを選択して供給する選択器702と、
入力平文と選択された固定マスク値FMinとをXO
RするXOR712と、入力を受取って乱数hおよび拡
大鍵Kiに従って入力を暗号化して出力を生成する複数
(例えば16段)のF関数暗号化処理段710〜720
と、その乱数h従って固定マスク値FMoutの中の
1つを選択して供給する選択器704と、F関数暗号化
処理段720の出力と選択された固定マスク値FMou
とをXORして暗号文を生成するXOR714と、
を含んでいる。F関数暗号化処理段710〜720の各
々は、前段のXOR出力を受け取って図33(B)に示
されたF関数を実行し、その出力と前段の出力をXOR
(722〜723)によってXORして出力を供給す
る。
【0114】図33(B)のF関数は、乱数hに従って
選択された固定マスク値FMi,hを供給する選択器7
59と、拡大鍵Kと固定マスク値FMi,hをXOR
して出力を供給するXOR762、その出力の値と線形
変換Eによって線形変換された入力Xi’とをXORす
るXOR763と、その乱数hに従ってサブバイト処理
SubbyteSi,h中の1つを選択してXOR76
3の出力を供給する選択器752および756と、非線
形テーブルSboxSi,hに従ってサブバイト処理す
るSubbyteSi,hと、その乱数hに従ってサブ
バイト処理S ,h中の1つを選択してその出力を供給
する選択器754および757と、選択器754および
757の出力を線形変換して出力Zi’を供給する線形
変換Pとを含んでいる。
【0115】図21におけるプロセッサ150は、メモ
リ160に格納されているプログラムに従って図33の
暗号化装置700の諸処理要素701〜763等を制御
する。代替構成として、プロセッサ150は、諸処理要
素701〜763等に対応する機能を実装したメモリ1
60中のプログラムを実行することによって諸処理要素
701〜763等を実現してもよい。この場合、図33
はフロー図として見ることができる。
【0116】図34(A)は、図24の第2のタイプの
暗号化装置200の一例を示しており、図31の暗号化
装置500に類似した形態で固定マスク値法を図32の
DESによる暗号化に適用した暗号化装置800を示し
ている。図34(B)は図34(A)におけるF関数の
より詳細な構成を示している。但し、図34(A)にお
いて、図24におけるプロセッサ250、メモリ26
0、262および264は簡単化のために省略されてい
る。
【0117】図34(A)において、暗号化装置800
は、乱数hを発生する乱数発生器801と、乱数hに従
って切換えを行う切換器802および804と、切換器
802および804によって乱数hに従って選択される
複数の暗号処理部820〜830と、を含んでいる。
【0118】図24におけるプロセッサ250は、メモ
リ260に格納されているプログラムに従って図34の
暗号化装置800の諸処理要素801〜862等を制御
する。代替構成として、プロセッサ150は、諸処理要
素801〜862等に対応する機能を実装したメモリ1
60中のプログラムを実行することによって諸処理要素
801〜862等を実現してもよい。この場合、図34
はフロー図として見ることができる。
【0119】暗号処理部820〜830の各々は、入力
を受け取って出力を生成する複数段(例えば16段)の
F関数暗号化処理段840〜850を含んでいる。F関
数暗号化処理段840〜850の各々は、前段のXOR
出力を受け取ってKiXORFMi,hに従って図34
(B)に示されたF関数を実行し、そのF関数の出力と
前段の出力をXOR(822〜823)によってXOR
して出力を供給する。
【0120】図34(B)のF関数は、拡大鍵Kと固
定マスク値FMi,hのXOR値と線形変換Eによって
線形変換された入力Xi’とをXORするXOR862
と、非線形テーブルSboxSi,hによるサブバイト
処理SubbyteSi,h(i=1,2,・・・,
8)と、サブバイト処理Si,hの出力を線形変換して
出力Zi’を供給する線形変換Pとを含んでいる。
【0121】図33および34において、ラインデール
法の場合と同様に入力マスクFMinは省略できるが、
ラインデール法と同様な手法ではFMoutは省略でき
ない。図35は、フェイステル型暗号化装置における複
数の段の間のマスクの影響の伝播を示している。図35
において太線はマスクされている経路を示している。F
Moutが省略できない理由は、図35に示されている
ように、フェイステル型の暗号では或る段でマスクされ
たデータ(A)が、次段(B)だけでなくそれ以降の段
(C)へも影響するからである。
【0122】従って、フェイステル型暗号では、前段の
マスク値を次段で完全にキャンセルできない。図36
は、フェイステル型暗号化装置におけるマスク発生から
マスク値キャンセルまでの経路を示している。図36に
おいて、太線はマスクされている経路を示している。フ
ェイステル型暗号ではマスクを行ってからマスク値をキ
ャンセルするまでには図36に示されているように4段
以上必要であり、4段以上にわたってマスク値をキャン
セルできる。このマスク値キャンセルの手法は、SPN
型暗号化におけるように非線形変換の出力マスクが任意
選択可能であることを利用するのでなくて、図36に示
されているように前段からのマスクと等しい出力マスク
を生成して、フェイステル型暗号化におけるXORによ
ってキャンセルするものである。
【0123】この方法を用いれば暗号化処理最後のマス
クFMoutが不要になる。この手法をDES等の4ラ
ウンド以上の暗号に適用する場合は、4ラウンドでキャ
ンセルするような固定マスク値の構成を繰り返してもよ
いし、または全ラウンドの最後でキャンセルするような
固定マスク値を用いてもよい。
【0124】上述の実施形態においては、全てのラウン
ドに対して固定マスク値法を適用する場合について説明
した。しかし、DPAが可能となる条件で述べたよう
に、DPAが成功するためには入力値が既知でかつ攻撃
者がその値を制御可能でなければならない。従って、暗
号化処理の最初の数ラウンドに対して固定値マスク法を
適用すれば、その後のラウンドはその入力が未知でかつ
制御不可能なのでDPA対策は不要となる。それによっ
て暗号化対策に必要な処理を削減できる。
【0125】表3は、ラインデール法の実装における固
定マスク値法を用いた暗号化の結果と、DPA対策なし
の通常の暗号化、および従来の乱数マスク値法を用いた
暗号化との比較を示している。表3において、Sは対策
なしの場合の処理時間を表し、Rは対策なしの場合の必
要なRAM量を表し、Mは対策なしの場合の必要なRO
M量を表す。但し、R≪Mである。安全性は攻撃者が鍵
を推定するのに必要なチェックすべき可能な鍵の数で表
される。
【表3】
【0126】表4は、DESの実装における固定マスク
値法を用いた暗号化の結果と、DPA対策なしの通常の
暗号化、および従来の乱数マスク値法を用いた暗号化と
の比較を示している。
【表4】
【0127】表3および表4より、乱数マスク値法では
処理時間が長く大きいRAM量を必要とするのに対し
て、固定マスク値法では、2〜3倍のROM量を必要と
するが大きいRAM領域を必要とせずに、対策なしの場
合とほぼ同じ程度の処理時間で充分な安全性が確保でき
る。
【0128】上述の実施形態では主にラインデール法お
よびDESについて説明したが、固定マスク値法は、ラ
インデール法以外のSPN型暗号化、DES以外のフェ
イステル型暗号化、およびそれを組合せた型の暗号にも
適用でき同様の有効性を示す。
【0129】以上説明した実施形態は典型例として挙げ
たに過ぎず、その変形およびバリエーションは当業者に
とって明らかであり、当業者であれば本発明の原理およ
び請求の範囲に記載した発明の範囲を逸脱することなく
上述の実施形態の種々の変形を行えることは明らかであ
る。
【0130】(付記1) 排他的論理和手段および非線
形変換手段を有する暗号化装置であって、乱数を発生す
る乱数発生器手段と、q個の固定値(ここでqは整数で
ある)と、前記乱数に従って前記q個の固定値の中の1
つを選択する第1の選択器と、を具え、前記排他的論理
和手段は、前記選択された固定値と鍵の排他的論理和と
前記排他的論理和手段の入力の排他的論理和をとるもの
である、暗号化装置。 (付記2) さらに、q組(セット)のマスクされた固
定テーブルと、前記乱数に従って前記q組の固定テーブ
ルの中の1組を選択する第2の選択器と、を具え、前記
非線形変換手段は前記選択された1組の固定テーブルに
従って入力を非線形変換するものである、付記1に記載
の暗号化装置。 (付記3) 前記第1の排他的論理和手段および前記非
線形変換手段を有する暗号化部と、前記暗号化装置への
入力と前記乱数に従って選択された或る固定値の排他的
論理和をとる第2の排他的論理和手段と、前記乱数に従
って選択された或る固定値と前記暗号化部の出力の排他
的論理和をとる第3の排他的論理和手段とを具える、付
記1に記載の暗号化装置。 (付記4) 排他的論理和手段および非線形変換手段を
有する暗号化装置であって、乱数を発生する乱数発生器
手段と、q組のマスクされた固定テーブル(ここでqは
整数である)と、前記乱数に従って前記q組の固定テー
ブルの中の1組を選択する選択器と、を具え、前記非線
形変換手段は、前記選択された1組の固定テーブルに従
って入力を非線形変換するものである、暗号化装置。 (付記5) 複数の暗号化段を具え、この複数の暗号化
段の各々は、その段の、前記排他的論理和手段と、前記
固定テーブルと、前記選択器と、を有するものであり、
前記複数の暗号化段のそれぞれの前記固定テーブルは同
じものである、付記4に記載の暗号化装置。 (付記6) マスクされる前の固定テーブルをS[x]
とし、マスクされたj番目のテーブルをS[xXOR
i,j]XORdi,j(j=0,1,・・・,1
5)としたときに、(c0,jXORc1,j)∨XO
R(c1,jXORc2,j)∨・・・∨(c
q−2,jXORcq−2,j)=(1111111
1)である、付記4に記載の暗号化装置。 (付記7) テーブルの組の数q=2とする場合に、マ
スクされる前の固定テーブルをS[x]とし、マスクさ
れたj番目のテーブルをS[xXORci,j]XO
Rdi,j(j=0,1,・・・,15)としたとき
に、c0,jXORc1,j= (10110101
0)または(011010101)である、付記4
に記載の暗号化装置。 (付記8) マスクされる前の固定テーブルをS[x]
とし、マスクされたj番目のテーブルをS[xXOR
i,j]XORdi,j(j=0,1,・・・,1
5)としたときに、(d0,jXORd1,j)∨(d
1,jXORd2, )∨・・・∨(dq−2,jXO
Rdq−2,j)=(11111111)である、付
記4に記載の暗号化装置。 (付記9) 前記非線形変換手段はサブバイト手段であ
り、さらに、入力をシフトする手段と、入力をミクスト
コラムする手段とを具える、付記4に記載の暗号化装
置。 (付記10) 乱数を発生する乱数発生器手段と、並列
に結合された複数の暗号化部と、前記乱数に従って前記
複数の暗号化部の中の1つを選択する選択器と、を具
え、前記複数の暗号化部の各々は、排他的論理和手段お
よび非線形変換手段を含むものである、暗号化装置。 (付記11) 前記選択された暗号化部の前記排他的論
理和手段は、固定値と鍵の排他的論理和と前記排他的論
理和手段の入力の排他的論理和をとるものである、付記
10に記載の暗号化装置。 (付記12) 前記非線形変換手段は、固定テーブルに
従って前記非線形変換手段の入力を非線形変換するもの
である、付記10に記載の暗号化装置。 (付記13) 前記複数の暗号化部の各々は、その暗号
化部への入力と固定値の排他的論理和をとる第2の排他
的論理和手段と、入力と固定値の排他的論理和をその暗
号化部の出力として生成する第3の排他的論理和手段
と、を具えるものである、付記10に記載の暗号化装
置。 (付記14) 前記選択された暗号化部の前記非線形変
換手段は、固定テーブルに従って前記非線形変換手段の
入力を非線形変換するものである、付記10に記載の暗
号化装置。 (付記15) 前記複数の暗号化部の各々は複数の暗号
化段を含んでおり、前記複数の暗号化段の各々は、その
段の、鍵と固定値の排他的論理和と入力の排他的論理和
をとる排他的論理和手段と、固定テーブルに従って入力
を非線形変換する非線形変換手段とを含むものである、
付記10に記載の暗号化装置。 (付記16) 乱数を発生する乱数発生器手段と複数の
暗号化段とを具えた暗号化装置であって、前記複数の暗
号化段の各々は、入力を非線形変換する非線形変換手段
と、第1の入力と第2の入力の排他的論理和をとる排他
的論理和手段と、を含み、前記排他的論理和手段の第2
の入力は前記非線形変換手段の出力に結合されており、
前記非線形変換手段は、q個の固定値(ここでqは整数
である)と、前記乱数に従って前記q個の固定値の中の
1つを選択する選択器と、前記選択された固定値と鍵の
排他的論理和と入力の排他的論理和をとる別の排他的論
理和手段と、を有するものである、暗号化装置。 (付記17) 前記非線形変換手段は、さらに、前記非
線形変換手段の内部に、固定テーブルに従って入力を非
線形変換する複数の非線形変換手段と、前記複数の非線
形変換手段の中の1つのを選択する選択器とを有するも
のである、付記16に記載の暗号化装置。 (付記18) 前記複数の暗号化段のそれぞれの前記非
線形変換手段の固定テーブルは同じである、付記17に
記載の暗号化装置。 (付記19) 前記複数の暗号化段における連続する複
数の段においてマスクをキャンセルする、付記16に記
載の暗号化装置。 (付記20) 前記複数の暗号化段において前記複数の
暗号化段の数より少ない数の暗号化段においてマスクが
行われる、付記16に記載の暗号化装置。 (付記21) 乱数を発生する乱数発生器手段と複数の
暗号化段とを具えた暗号化装置であって、前記複数の暗
号化段の各々は、入力を非線形変換する非線形変換手段
と、第1の入力と第2の入力の排他的論理和をとる排他
的論理和手段と、を含み、前記排他的論理和手段の第2
の入力は前記非線形変換手段の出力に結合されており、
前記非線形変換手段は、内部に、前記乱数に従って、固
定テーブルに従って入力を非線形変換する非線形変換手
段を有するものである、暗号化装置。 (付記22) 乱数を発生する乱数発生器手段と、並列
に結合された複数の暗号化部と、前記乱数に従って前記
複数の暗号化部の中の1つを選択する選択器と、を具
え、前記複数の暗号化部の各々は複数の暗号化段を有
し、前記複数の暗号化段の各々は、入力を非線形変換す
る非線形変換手段と、第1の入力と第2の入力の排他的
論理和をとる排他的論理和手段と、を含み、前記排他的
論理和手段の第2の入力は前記非線形変換手段の出力に
結合されているものである、暗号化装置。 (付記23) 前記非線形変換手段は、固定値と鍵の排
他的論理和と入力の排他的論理和をとる別の排他的論理
和手段と、前記非線形変換手段の内部に、固定テーブル
に従って入力を非線形変換する非線形変換手段と、を有
するものである、付記22に記載の暗号化装置。 (付記24) マスクされる前の固定テーブルをS
[x]とし、マスクされたj番目のテーブルをS
[xXORci,j]XORdi,j(j=0,1,・
・・,7)としたときに、(d0,jXORd1,j
∨(d1,jXORd 2,j)∨・・・∨(d
q−2,jXORdq−2,j)=(1111)であ
る、付記22に記載の暗号化装置。 (付記25) 暗号化装置において用いるための記憶媒
体に格納されたプログラムであって、乱数に従ってq個
の固定値の中の1つを選択するステップ(ここでqは整
数である)と、前記選択された固定値と鍵の排他的論理
和と入力値の排他的論理和をとるステップと、前記乱数
に従ってq組のマスクされた固定テーブルの中の1組を
選択するステップと、前記選択された1組の固定テーブ
ルに従って入力値を非線形変換するステップと、を実行
させる、プログラム。 (付記26) 暗号化装置において用いるための記憶媒
体に格納されたプログラムであって、乱数に従って複数
の暗号化手順の中の1つを選択するステップと、前記選
択された暗号化手順に従って、入力値を暗号化して出力
するステップと、を実行させ、前記暗号化するステップ
は、固定値と鍵の排他的論理和と入力値の排他的論理和
をとるステップと、1組の固定テーブルに従って入力値
を非線形変換するステップと、を含むものである、プロ
グラム。 (付記27) 暗号化装置において用いるための記憶媒
体に格納されたプログラムであって、入力値を非線形変
換して出力を供給するステップと、第1の入力値と前記
出力である第2の入力値の排他的論理和をとるステップ
と、を実行させ、前記非線形変換するステップは、乱数
に従ってq個の固定値の中の1つを選択するステップ
(ここでqは整数である)と、前記選択された固定値と
鍵の排他的論理和と入力値の排他的論理和をとるステッ
プと、前記乱数に関連付けられた固定テーブルに従って
入力値を非線形変換するステップと、を含むものであ
る、プログラム。 (付記28) 暗号化装置において用いるための記憶媒
体に格納されたプログラムであって、乱数に従って複数
の暗号化手順の中の1つを選択するステップと、前記選
択された暗号化手順に従って、入力値を暗号化して出力
を供給するステップと、を実行させ、前記暗号化するス
テップは、入力値を非線形変換して出力を供給するステ
ップと、第1の入力値と前記出力である第2の入力値の
排他的論理和をとるステップと、を含むものである、プ
ログラム。
【0131】
【発明の効果】本発明は、上述の特徴によって、共通鍵
暗号を行う暗号プロセッサに対する効率的な暗号解読防
止を実現でき、秘密鍵の推定を困難にし、暗号プロセッ
サの安全性を高めることができるという効果を奏する。
【図面の簡単な説明】
【図1】図1は、図1はスマートカードにおける共通秘
密鍵を用いた暗号化の例を示している。
【図2】図2は、典型的な共通鍵暗号で用いられる鍵X
ORを示している。
【図3】図3は、典型的な共通鍵暗号で用いられる線形
変換を示している。
【図4】図4は、典型的な共通鍵暗号で用いられる非線
形変換を示している。
【図5】図5は、縦続接続の形の鍵XOR演算(図2)
と非線形変換(図4)の組合せである暗号化の例を示し
ている。
【図6】図6は、図5における任意の非線形変換要素w
iに関係する構成要素を示している。
【図7】図7(A)および(B)は、暗号化プロセッサ
がその入力平文に応答して消費する電力消費の時間変化
を表す電力消費曲線を示している。図7(C)はスパイ
クを有する電力消費曲線の差分を示している。図7
(D)はスパイクのない電力消費曲線の差分を示してい
る。
【図8】図8は、図4の暗号化器の前後に2つの線形変
換を追加した構成を有する暗号化器を示している。
【図9】図9は、図4の暗号化器における電力消費曲線
の測定対象点A、BおよびCを示している。
【図10】図10は、乱数マスク値法による処理の概要
図を示している。
【図11】図11は、乱数マスク値法による鍵XORを
示している。
【図12】図12は、乱数マスク値法による線形関数を
示している。
【図13】図13は、乱数マスク値法による非線形関数
を示している。
【図14】図14は、DPA対策のない通常のN段ライ
ンデール処理の全体的構成を示している。
【図15】図15は、ラインデール法の秘密鍵Ksec
から拡大鍵K、K、・・・、Kを生成する拡大鍵
生成器を示している。
【図16】図16は、サブバイト処理Subbyteの
構成を示している。
【図17】図17は、シフトShiftの構成を示して
いる。
【図18】図18は、ミクストコラム処理Mixedc
olumnの構成を示している。
【図19】図19は、図14の通常のN段ラインデール
法に対して、乱数マスク値法を適用したN段ラインデー
ル法を示している。
【図20】図20は、図19の16個のSboxで使用
されるNewSboxを示している。
【図21】図21は、本発明による第1のタイプの暗号
化装置の概略的構成を示している。
【図22】図22は、図21における鍵XORの構成を
示している。
【図23】図23は、図21における非線形変換の構成
を示している。
【図24】図24は、本発明による第2のタイプの暗号
化装置の概略的構成を示している。
【図25】図25は、図24における鍵XORの構成を
示している。
【図26】図26は、図24における非線形変換の構成
を示している。
【図27】図27は、図21の第1のタイプの暗号化装
置の一例を示している。
【図28】図28は、図27におけるSubbyteの
構成を示している。
【図29】図29は、図21の第1のタイプの暗号化装
置の別の例を示している。
【図30】図30は、図29におけるSubbyteの
構成を示している。
【図31】図31は、図24の第2のタイプの暗号化装
置の一例を示している。
【図32】図32は、通常のDESの構成を示してい
る。
【図33】図33は、図29の固定マスク値法をフェイ
ステル型のDESに適用した構成を示している。
【図34】図34は、図31の固定マスク値法をフェイ
ステル型のDESに適用した構成を示している。
【図35】図35は、フェイステル型暗号化装置におけ
る暗号における段の間のマスクの伝播を示している。
【図36】図36は、フェイステル型暗号化装置におけ
るマスク発生からマスク値キャンセルまでの経路を示し
ている。
【符号の説明】
100 暗号化措置 101 暗号化処理部 103 乱数発生器 104、105 切換器 106、107 論理XOR 200 暗号化装置 203 乱数発生器 208〜209 暗号化処理部 204、205 論理XOR 211、213 切換器 300 暗号化装置 310 第i段の処理 311 第N−1段の処理 303 乱数発生器 305、329、339、379、399 切換器 302、331、333、371、373、383 O
XR(排他的論理和) 334 Subbyte 335 Shift 336 Mixedcolumn
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鳥居 直哉 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5J104 AA41 AA47 FA00 JA03 NA02

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 排他的論理和手段および非線形変換手段
    を有する暗号化装置であって、 乱数を発生する乱数発生手段と、q個(qは整数)の固
    定値と、前記乱数に従って前記q個の固定値の中の1つ
    を選択する第1の選択器と、を具え、 前記排他的論理和手段は、前記選択された固定値と鍵の
    排他的論理和と前記排他的論理和手段の入力の排他的論
    理和をとるものであること、を特徴とする、暗号化装
    置。
  2. 【請求項2】 排他的論理和手段および非線形変換手段
    を有する暗号化装置であって、 乱数を発生する乱数発生手段と、q組(qは整数)のマ
    スクされた固定テーブルと、前記乱数に従って前記q組
    の固定テーブルの中の1組を選択する選択器と、を具
    え、 前記非線形変換手段は、前記選択された1組の固定テー
    ブルに従って入力を非線形変換するものであること、を
    特徴とする、暗号化装置。
  3. 【請求項3】 乱数を発生する乱数発生手段と、並列に
    結合された複数の暗号化部と、前記乱数に従って前記複
    数の暗号化部の中の1つを選択する選択器と、を具え、 前記複数の暗号化部の各々は、排他的論理和手段および
    非線形変換手段を含むものであること、を特徴とする、
    暗号化装置。
  4. 【請求項4】 乱数を発生する乱数発生手段と複数の暗
    号化段とを具えた暗号化装置であって、 前記複数の暗号化段の各々は、入力を非線形変換する非
    線形変換手段と、第1の入力と第2の入力の排他的論理
    和をとる排他的論理和手段と、を含み、 前記排他的論理和手段の第2の入力は前記非線形変換手
    段の出力に結合されており、 前記非線形変換手段は、q個(qは整数)の固定値と、
    前記乱数に従って前記q個の固定値の中の1つを選択す
    る選択器と、前記選択された固定値と鍵の排他的論理和
    と入力の排他的論理和をとる別の排他的論理和手段と、
    を有するものであること、を特徴とする、暗号化装置。
  5. 【請求項5】 乱数を発生する乱数発生手段と、並列に
    結合された複数の暗号化部と、前記乱数に従って前記複
    数の暗号化部の中の1つを選択する選択器と、を具え、 前記複数の暗号化部の各々は複数の暗号化段を有し、 前記複数の暗号化段の各々は、入力を非線形変換する非
    線形変換手段と、第1の入力と第2の入力の排他的論理
    和をとる排他的論理和手段と、を含み、 前記排他的論理和手段の第2の入力は前記非線形変換手
    段の出力に結合されているものであること、特徴とす
    る、暗号化装置。
  6. 【請求項6】 暗号化装置において用いられるプログラ
    ムであって、 乱数に従って複数の暗号化手順の中の1つを選択するス
    テップと、前記選択された暗号化手順に従って、入力値
    を暗号化して出力するステップと、を実行させ、 前記暗号化するステップは、固定値と鍵の排他的論理和
    と入力値の排他的論理和をとるステップと、1組の固定
    テーブルに従って入力値を非線形変換するステップと、
    を含むものであること、を特徴とする、プログラム。
JP2001178407A 2001-06-13 2001-06-13 Dpaに対して安全な暗号化 Expired - Fee Related JP4596686B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001178407A JP4596686B2 (ja) 2001-06-13 2001-06-13 Dpaに対して安全な暗号化
US10/028,265 US7386130B2 (en) 2001-06-13 2001-12-28 Encryption secured against DPA
EP02001146A EP1267514B1 (en) 2001-06-13 2002-01-25 Encryption secured against Differential Power Analysis (DPA)
EP07000759A EP1772985A1 (en) 2001-06-13 2002-01-25 Encryption secured against Differential Power Analysis (DPA)
DE60222052T DE60222052T2 (de) 2001-06-13 2002-01-25 Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001178407A JP4596686B2 (ja) 2001-06-13 2001-06-13 Dpaに対して安全な暗号化

Publications (2)

Publication Number Publication Date
JP2002366029A true JP2002366029A (ja) 2002-12-20
JP4596686B2 JP4596686B2 (ja) 2010-12-08

Family

ID=19019110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001178407A Expired - Fee Related JP4596686B2 (ja) 2001-06-13 2001-06-13 Dpaに対して安全な暗号化

Country Status (4)

Country Link
US (1) US7386130B2 (ja)
EP (2) EP1267514B1 (ja)
JP (1) JP4596686B2 (ja)
DE (1) DE60222052T2 (ja)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP2004354920A (ja) * 2003-05-30 2004-12-16 Toshiba Corp 記憶装置
WO2005027403A1 (ja) * 2003-09-11 2005-03-24 Renesas Technology Corp. 情報処理装置
JP2005086670A (ja) * 2003-09-10 2005-03-31 Toshiba Corp 暗号化/復号モジュール
JP2005204128A (ja) * 2004-01-16 2005-07-28 Mitsubishi Electric Corp 個別鍵生成装置及びプログラム
JP2005236977A (ja) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd 電力分析攻撃に安全な基本演算装置および方法
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
WO2006006199A1 (ja) * 2004-07-07 2006-01-19 Mitsubishi Denki Kabushiki Kaisha 電子素子及びデータ処理方法
JP2006520565A (ja) * 2003-03-14 2006-09-07 アクサルト・エス・アー 暗号プロセッサを備える電子ユニットのセキュリティのプロセス
WO2006112114A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. データ暗号化装置及びデータ暗号化方法
WO2006118086A1 (ja) * 2005-04-28 2006-11-09 Matsushita Electric Industrial Co., Ltd. プログラム変換装置、暗号処理装置、暗号処理方法
JP2006345242A (ja) * 2005-06-09 2006-12-21 Sony Corp 暗号化復号処理回路および暗号化復号システム
US7159115B2 (en) 2002-09-11 2007-01-02 Kabushiki Kaisha Toshiba Method and apparatus for encrypting data
JP2007073012A (ja) * 2005-09-09 2007-03-22 Iwate Univ 乱数生成システム
JP2007096973A (ja) * 2005-09-29 2007-04-12 Toshiba Corp 暗号化/復号装置
JP2007228141A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd 暗号処理方法及び暗号処理装置
JP2007537474A (ja) * 2004-05-11 2007-12-20 アクサルト・エス・アー ホモグラフィックマスキングにより暗号アセンブリを保護する方法
JP2008292742A (ja) * 2007-05-24 2008-12-04 Toshiba Corp 非線形データ変換器、暗号化装置、および復号装置
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2009516964A (ja) * 2005-11-21 2009-04-23 アトメル・コーポレイション 暗号化保護方法
WO2009122464A1 (ja) 2008-03-31 2009-10-08 富士通株式会社 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
JP2010166402A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 暗号処理装置及び暗号処理方法及び暗号処理プログラム
WO2010103928A1 (ja) * 2009-03-10 2010-09-16 株式会社 東芝 演算装置及びプログラム
JP2011101413A (ja) * 2002-03-07 2011-05-19 Axalto Sa 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
US7949807B2 (en) 2005-03-16 2011-05-24 Mitsubishi Electric Corporation Data conversion apparatus and data conversion method
JP2012063700A (ja) * 2010-09-17 2012-03-29 Toshiba Corp 暗号化装置
US8218762B2 (en) 2006-11-16 2012-07-10 Fujitsu Limited Encrypting apparatus for common key cipher
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
JP2013077034A (ja) * 2013-01-28 2013-04-25 Fujitsu Ltd 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2013186157A (ja) * 2012-03-06 2013-09-19 Toshiba Corp 暗号処理装置

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US7092523B2 (en) 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
FR2844896A1 (fr) * 2002-09-19 2004-03-26 St Microelectronics Sa Alimentation d'un circuit de traitement asynchrone de donnees
US7190791B2 (en) * 2002-11-20 2007-03-13 Stephen Laurence Boren Method of encryption using multi-key process to create a variable-length key
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
US8102997B2 (en) * 2004-03-29 2012-01-24 Stmicroelectronics S.A. Processor for executing an AES-type algorithm
US7899190B2 (en) 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
EP1601132B1 (en) * 2004-05-24 2006-11-15 Research In Motion Limited Table Masking for Resistance to Power Analysis Attacks
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
JP5068176B2 (ja) 2005-01-18 2012-11-07 サーティコム コーポレーション デジタル署名と公開鍵の促進された検証
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
GB2443358A (en) * 2005-01-27 2008-04-30 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
US8024583B2 (en) * 2005-04-27 2011-09-20 Panasonic Corporation Confidential information processing host device and confidential information processing method
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
DE602006020010D1 (de) * 2005-12-19 2011-03-24 St Microelectronics Sa Schutz der Ausführung eines DES-Algorithmus
JP2007192893A (ja) * 2006-01-17 2007-08-02 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
ATE476803T1 (de) * 2006-03-07 2010-08-15 Research In Motion Ltd Tabellenteilung für kryptografische verfahren
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
FR2903508B1 (fr) * 2006-07-10 2008-10-17 Sagem Defense Securite Protection d'un programme interprete par une machine virtuelle
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
US7949130B2 (en) * 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
EP2186250B1 (en) * 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US7945050B2 (en) * 2007-09-28 2011-05-17 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US8503678B2 (en) * 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
EP2195761B1 (en) * 2007-10-01 2013-04-03 Research In Motion Limited Substitution table masking for cryptographic processes
KR101011264B1 (ko) * 2008-01-18 2011-01-27 고려대학교 산학협력단 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법
JP5268609B2 (ja) * 2008-12-09 2013-08-21 株式会社東芝 暗号処理装置及び演算方法
FR2941343B1 (fr) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
JP2010245881A (ja) * 2009-04-07 2010-10-28 Toshiba Corp 暗号処理装置
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
JP2011169977A (ja) * 2010-02-16 2011-09-01 Renesas Electronics Corp 暗号処理装置
US8619985B2 (en) 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
DE102010029735A1 (de) * 2010-06-07 2011-12-08 Robert Bosch Gmbh Verfahren zum Generieren eines Bitvektors
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
KR20120070873A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 부채널 방지 마스킹 덧셈 연산 장치
FR2977953A1 (fr) * 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
MY178555A (en) * 2011-08-19 2020-10-16 Mimos Berhad Method and system for providing a secured internet protocol based communication
US8624624B1 (en) 2011-08-26 2014-01-07 Lockheed Martin Corporation Power isolation during sensitive operations
US8525545B1 (en) 2011-08-26 2013-09-03 Lockheed Martin Corporation Power isolation during sensitive operations
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
FR2995111B1 (fr) * 2012-09-04 2015-07-24 Morpho Protection contre canaux auxiliaires
CN103001762B (zh) * 2012-11-25 2015-08-19 宁波大学 一种密码器件上防御零值功耗攻击的方法
DE102012025416A1 (de) * 2012-12-21 2014-06-26 Giesecke & Devrient Gmbh Verfahren zum Betreiben eines portablen Datenträgers sowie ein solcher portabler Datenträger
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
CN103905462B (zh) * 2014-04-16 2017-05-17 深圳国微技术有限公司 可抵御差分功耗分析攻击的加密处理装置及方法
US9871651B2 (en) * 2014-06-16 2018-01-16 Cisco Technology, Inc. Differential power analysis countermeasures
US9654111B1 (en) * 2014-11-12 2017-05-16 Maxim Integrated Products, Inc. Systems and methods for protecting data using reconfigurable logic paths
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
DE102015115649A1 (de) 2015-09-16 2017-03-16 Claas Tractor Sas Landwirtschaftliches Arbeitsfahrzeug
FR3048096A1 (fr) * 2016-02-22 2017-08-25 Eshard Procede de protection d'un circuit contre une analyse par canaux auxiliaires
EP3220304B1 (en) 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
EP3264396B1 (en) * 2016-06-28 2022-01-26 Eshard A method for protecting a substitution operation using a substitution table against a side-channel analysis
EP3264397B1 (en) * 2016-06-28 2020-09-16 Eshard A protection method and device against a side-channel analysis
EP3264311B1 (en) 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
CN107547193A (zh) 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
FI20165911A (fi) * 2016-11-30 2018-05-31 Sam Widlund Menetelmä ja järjestelmä tiedon salaukseen
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
KR20210108787A (ko) 2020-02-26 2021-09-03 삼성전자주식회사 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452358A (en) * 1994-02-08 1995-09-19 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
US5870470A (en) 1996-02-20 1999-02-09 International Business Machines Corporation Method and apparatus for encrypting long blocks using a short-block encryption procedure
US6510518B1 (en) * 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems
US6275586B1 (en) * 1998-09-10 2001-08-14 Igt Cryptographically secure pseudo random number generator
FR2784829B1 (fr) 1998-10-16 2000-12-29 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2784831B1 (fr) 1998-10-16 2000-12-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2785477B1 (fr) 1998-10-29 2000-12-29 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
FR2789535B1 (fr) 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
FR2789776B1 (fr) 1999-02-17 2001-04-06 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2790890B1 (fr) * 1999-03-08 2001-04-27 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000305453A (ja) 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
DE19936529C1 (de) 1999-08-03 2001-02-01 Orga Kartensysteme Gmbh Verfahren zur Verschlüsselung von Daten mit Hilfe einer Standard-Verschlüsselung in einem mikroprozessorgestützten, tragbaren Datenträger
US6873706B1 (en) * 1999-09-29 2005-03-29 Hitachi, Ltd. Processing apparatus, program, or system of secret information
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
FR2809893B1 (fr) * 2000-06-02 2002-11-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
US7000111B1 (en) * 2000-11-07 2006-02-14 Ericsson Inc. Method for masking secret multiplicands

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
THOMAS S. MESSERGES: "Securing the AES Finalists Against Power Analysis Attacks", PROCEEDINGS OF THE 7TH INTERNATIONAL WORKSHOP ON FAST SOFTWARE ENCRYPTION, FSE 2000, JPN6010018476, 2000, pages 150 - 164, ISSN: 0001729105 *

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011101413A (ja) * 2002-03-07 2011-05-19 Axalto Sa 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
US7159115B2 (en) 2002-09-11 2007-01-02 Kabushiki Kaisha Toshiba Method and apparatus for encrypting data
JP2006520565A (ja) * 2003-03-14 2006-09-07 アクサルト・エス・アー 暗号プロセッサを備える電子ユニットのセキュリティのプロセス
JP2004354920A (ja) * 2003-05-30 2004-12-16 Toshiba Corp 記憶装置
JP2005086670A (ja) * 2003-09-10 2005-03-31 Toshiba Corp 暗号化/復号モジュール
WO2005027403A1 (ja) * 2003-09-11 2005-03-24 Renesas Technology Corp. 情報処理装置
JPWO2005027403A1 (ja) * 2003-09-11 2006-11-24 株式会社ルネサステクノロジ 情報処理装置
JP4611643B2 (ja) * 2004-01-16 2011-01-12 三菱電機株式会社 個別鍵生成装置
JP2005204128A (ja) * 2004-01-16 2005-07-28 Mitsubishi Electric Corp 個別鍵生成装置及びプログラム
JP2005236977A (ja) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd 電力分析攻撃に安全な基本演算装置および方法
US7292060B2 (en) 2004-02-19 2007-11-06 Samsung Electronics Co., Ltd. Logic circuit and method thereof
US7965836B2 (en) 2004-03-16 2011-06-21 Samsung Electronics Co., Ltd. Data cipher processors
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
JP2007537474A (ja) * 2004-05-11 2007-12-20 アクサルト・エス・アー ホモグラフィックマスキングにより暗号アセンブリを保護する方法
JP4668985B2 (ja) * 2004-05-11 2011-04-13 アクサルト・エス・アー ホモグラフィックマスキングにより暗号アセンブリを保護する方法
JPWO2006006199A1 (ja) * 2004-07-07 2008-04-24 三菱電機株式会社 電子素子及びデータ処理方法
US8577942B2 (en) 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms
JP4589327B2 (ja) * 2004-07-07 2010-12-01 三菱電機株式会社 電子素子及びデータ処理方法
WO2006006199A1 (ja) * 2004-07-07 2006-01-19 Mitsubishi Denki Kabushiki Kaisha 電子素子及びデータ処理方法
US7949807B2 (en) 2005-03-16 2011-05-24 Mitsubishi Electric Corporation Data conversion apparatus and data conversion method
JP4823904B2 (ja) * 2005-03-31 2011-11-24 パナソニック株式会社 データ暗号化装置及びデータ暗号化方法
US8094811B2 (en) 2005-03-31 2012-01-10 Panasonic Corporation Data encryption device and data encryption method
WO2006112114A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. データ暗号化装置及びデータ暗号化方法
US7724897B2 (en) 2005-04-28 2010-05-25 Panasonic Corporation Program converter, encrypting device, and encrypting method
WO2006118086A1 (ja) * 2005-04-28 2006-11-09 Matsushita Electric Industrial Co., Ltd. プログラム変換装置、暗号処理装置、暗号処理方法
US8184805B2 (en) 2005-04-28 2012-05-22 Panasonic Corporation Program converter, encrypting device, and encrypting method
JP2006345242A (ja) * 2005-06-09 2006-12-21 Sony Corp 暗号化復号処理回路および暗号化復号システム
US8738927B2 (en) 2005-06-29 2014-05-27 Irdeto B.V. Arrangement for and method of protecting a data processing device against an attack or analysis
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2007073012A (ja) * 2005-09-09 2007-03-22 Iwate Univ 乱数生成システム
JP4586163B2 (ja) * 2005-09-09 2010-11-24 国立大学法人岩手大学 暗号化システム
JP2007096973A (ja) * 2005-09-29 2007-04-12 Toshiba Corp 暗号化/復号装置
US8023643B2 (en) 2005-09-29 2011-09-20 Kabushiki Kaisha Toshiba Encryption/decryption apparatus
JP2009516964A (ja) * 2005-11-21 2009-04-23 アトメル・コーポレイション 暗号化保護方法
KR101345083B1 (ko) 2005-11-21 2013-12-26 인사이드 씨큐어 암호화 보호 방법
JP2007228141A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd 暗号処理方法及び暗号処理装置
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
US8218762B2 (en) 2006-11-16 2012-07-10 Fujitsu Limited Encrypting apparatus for common key cipher
JP2008292742A (ja) * 2007-05-24 2008-12-04 Toshiba Corp 非線形データ変換器、暗号化装置、および復号装置
US8401180B2 (en) 2007-05-24 2013-03-19 Kabushiki Kaisha Toshiba Non-linear data converter, encoder and decoder
JP5229315B2 (ja) * 2008-03-31 2013-07-03 富士通株式会社 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US8369516B2 (en) 2008-03-31 2013-02-05 Fujitsu Limited Encryption apparatus having common key encryption function and embedded apparatus
WO2009122464A1 (ja) 2008-03-31 2009-10-08 富士通株式会社 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2010166402A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 暗号処理装置及び暗号処理方法及び暗号処理プログラム
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
JP2010210940A (ja) * 2009-03-10 2010-09-24 Toshiba Corp 演算装置及びプログラム
US8631249B2 (en) 2009-03-10 2014-01-14 Kabushiki Kaisha Toshiba Operation unit and program
WO2010103928A1 (ja) * 2009-03-10 2010-09-16 株式会社 東芝 演算装置及びプログラム
US9654280B2 (en) 2009-03-10 2017-05-16 Irdeto B.V. White-box cryptographic system with input dependent encodings
JP2012063700A (ja) * 2010-09-17 2012-03-29 Toshiba Corp 暗号化装置
JP2013186157A (ja) * 2012-03-06 2013-09-19 Toshiba Corp 暗号処理装置
JP2013077034A (ja) * 2013-01-28 2013-04-25 Fujitsu Ltd 共通鍵暗号機能を搭載した暗号化装置及び組込装置

Also Published As

Publication number Publication date
US7386130B2 (en) 2008-06-10
DE60222052T2 (de) 2008-05-21
DE60222052D1 (de) 2007-10-11
EP1267514B1 (en) 2007-08-29
JP4596686B2 (ja) 2010-12-08
EP1267514A3 (en) 2003-11-05
US20030048903A1 (en) 2003-03-13
EP1772985A1 (en) 2007-04-11
EP1267514A9 (en) 2003-05-21
EP1267514A2 (en) 2002-12-18

Similar Documents

Publication Publication Date Title
JP4596686B2 (ja) Dpaに対して安全な暗号化
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US8290148B2 (en) Encryption processing apparatus, encryption processing method, and computer program
US11546135B2 (en) Key sequence generation for cryptographic operations
JP2000066585A (ja) 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
Jaffe A first-order DPA attack against AES in counter mode with unknown initial counter
JP2013511057A (ja) カスタマイズされたマスキングによって保護される低複雑度の電子回路
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
KR100737171B1 (ko) 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
Kumar et al. A block cipher using rotation and logical XOR operations
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Ha et al. Differential power analysis on block cipher ARIA
JPH0736672A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法
Golić DeKaRT: A new paradigm for key-dependent reversible circuits
Bajaj et al. Enhancement of RC5 for image encryption
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
RU2186467C2 (ru) Способ блочного итеративного шифрования
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
EP1514174B1 (en) Aes mixcolumn transform
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
RU2204212C2 (ru) Итеративный способ блочного шифрования
JP3017725B2 (ja) データ変換装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100921

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees