JP5229315B2 - 共通鍵暗号機能を搭載した暗号化装置及び組込装置 - Google Patents
共通鍵暗号機能を搭載した暗号化装置及び組込装置 Download PDFInfo
- Publication number
- JP5229315B2 JP5229315B2 JP2010505044A JP2010505044A JP5229315B2 JP 5229315 B2 JP5229315 B2 JP 5229315B2 JP 2010505044 A JP2010505044 A JP 2010505044A JP 2010505044 A JP2010505044 A JP 2010505044A JP 5229315 B2 JP5229315 B2 JP 5229315B2
- Authority
- JP
- Japan
- Prior art keywords
- mask
- bit
- value
- multiplication
- circuit
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Description
<DPAによる秘密鍵解読手法>
以下では、DPAによる秘密鍵解読手法について説明を行う。DPAは、図1のラウンド処理に関する消費電力を測定することで、秘密鍵を解読する手法である。以下では、DPAを用いて解読を行うことができる共通鍵暗号の処理構成について、AESに限定せずに説明を行う。一般的な共通鍵暗号では、拡大鍵XOR処理(図7)、線形変換処理(図8)、非線形変換処理(図3)の3つを組み合わせてラウンド処理を構成し、ラウンド処理を複数回繰り返すことで構成される。図7に示す通り、拡大鍵XOR処理は入力データXに対して、拡大鍵Kの排他的論理和(XOR)の演算結果Zを出力する処理である。図8は線形変換処理であり、入力データXに対して、Z=L(X)を満たすZを出力する処理である。このとき、Lは任意のX,Yに関して、
G0 (k’j) = { G| zj= wj(mj○k’j)のe番目のビット値=0 } (1)
G1 (k’j) = { G| zj= wj(mj○k’j)のe番目のビット値=1 } (2)
そして、以下に示す電力差分曲線DG(k’j)を作成する。
DG(k’i) = (集合G1に属する電力消費曲線の平均)
- (集合G0に属する電力消費曲線の平均) (3)
もしこの仮定が正しい、すなわちk’j=kjである場合、図13Aに示すようなスパイクが現われる。もしこの仮定が誤り、すなわちk’j 1kjである場合、図13Bに示すようにスパイクが現れない平坦な曲線となる。よって、仮定したk’jから図13Aのような電力差分曲線が得られれば、拡大鍵kjを解読できたことになる。このようなkjの解読を各jについて行えば、最終的に図10における拡大鍵Kを解読することができる。この解読を、拡大鍵0,拡大鍵1,…, 拡大鍵Nについて繰り返すことで、秘密鍵を解読することができる。なおAESの場合、アルゴリズムの性質上、拡大鍵の先頭の値がそのまま秘密鍵の値であるため、秘密鍵が128-bitならば拡大鍵0を、秘密鍵が192-bitもしくは256-bitならば拡大鍵0と拡大鍵1を解読すれば、秘密鍵全体を解読することができる。
(G1に属するzjの平均ハミングウェイト)
- (G0に属するzjの平均ハミングウェイト) = 1 (4)
一方、k’j 1kjの場合(4)式は成立せず、ランダムな分類を行うことになるので(5)式が成立する。
(G1に属するzjの平均ハミングウェイト)
- (G0に属するzjの平均ハミングウェイト) = 0 (5)
ただし、ハミングウェイトとは、ある値をビット値で表現したときにビット値=’1’となる個数のことであり、例えばビット値(1101)2のハミングウェイトは3である。
DPA-1. 入力Mが既知かつ制御可能、鍵Kは未知で固定、Sbox wjの変換が既知の場合、図15のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。
DPA-2. 入力Mが既知かつ制御可能、鍵Kは未知で固定の場合、図15のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。
DPA-3. 入力Mが既知かつ制御可能、鍵Kは未知で固定の場合、図15のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
以下では、SPAによる秘密鍵解読手法について説明を行う。この攻撃は、
といった乗算処理の消費電力を観察する。ただし、◎は乗算をあらわす記号であり、AES処理では、後に説明する合成体の計算(図23)において、a,b,cがGF(28)やGF(((22)2)2)の元である場合の乗算処理が行われる。入力データであるaもしくはbに’0’が入力された場合、0との乗算、つまり0=0◎bもしくは0=a◎0の演算が行われる(以下、ゼロ乗算と呼ぶ)。ゼロ乗算の消費電力波形と、a,b共に非ゼロの場合の乗算(以下、非ゼロ乗算と呼ぶ)の電力波形と比較した場合、前者は非常に特殊な波形となることが知られている。つまり、乗算処理におけるゼロ乗算と非ゼロ乗算の区別は、SPAにより観察できる。この性質を利用することで、秘密鍵を解読することができる。この攻撃をゼロ乗算SPAと呼ぶ。ゼロ乗算SPAは、その性質上乗算処理を用いる暗号処理装置に対してのみ実施可能な攻撃法である。AESの場合、後に述べる合成体の計算(図23)を用いたSubbyte処理を用いる暗号処理装置に対してのみこの攻撃法が可能であり、そうでない暗号処理装置に対してはこの攻撃は不可能である。
従来のDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法を用いた対策法として、以下の2つの従来例が知られており、下記に従来例1、従来例2として示す。また、DPA対策なしのAES回路に対して、Subbyte回路の縮小を実現する方法を、以下の従来例3に示す。従来例1,2は、Subbyteの回路を乗算処理ではなくテーブル演算で実行するため、ゼロ乗算SPAに対して安全であるので、DPA対策を行うことでそのままPA対策となることに注意されたい。
消費電力をランダム化する手法の代表的なものとして、masking method と呼ばれている手法が知られている(下記非特許文献8、以下「従来例1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、従来例1に記載されているDPA対策は、データMを計算する代わりに、M’=M○Rで表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、PAに安全な処理を実現することができる。以下の説明では、RのようにPA対策なしのデータに対してXORされる値をマスク値と呼ぶ。
課題1.DPA対策無しの回路と比較して、回路規模が大きい。
課題2.DPA対策無しの回路と比較して、処理速度が遅い。
従来例1の課題2を解消するための方法が下記特許文献1に公開されている(以下本書では「従来例2」と記す)。従来例1ではマスクする値をランダムに生成していたのに対し、従来例2は事前計算された複数の固定値の中から一つを乱数によって選択した値によりマスクする。この選択されたマスク値をRiと表記する。従来例2では、従来例1と同様に、M’i=Mi○Riを満たすデータM’i,Riを計算するが、Riは事前計算された値であるため、M’i,Riの両方を計算する必要はなく、M’iのみを計算すれば良い。乱数が事前計算された値であるため、従来例1と異なりSboxのテーブルデータを動的に更新する必要はなく、事前計算された静的なデータを複数用意すれば良いので、従来例1より高速な処理を実現することができる。従来例2のDPA対策方法を用いることで、図18に示したDPA対策無しのAES暗号処理は、以下の図20に示すような暗号処理に置き換えられる。
課題1.DPA対策無しの回路と比較して、回路規模が大きい。
従来例3
AESのSboxの回路規模を小さくする方法として、合成体(Composite Field)を用いた方法が知られている。(下記非特許文献9、以下「従来例3」と呼ぶ)この方法は、SPA,DPA対策を用いないAES回路に適用できる方法として知られている。
従来例3の課題
課題3.SPA,DPAに対して安全な処理を実現することができない。
なお、GF(28)の元とGF(((22)2)2)の元を用いた乗算◎は以下の種類が知られている。乗算◎、及びXOR演算○に関しては(law-1), (law-2), (law-3), (law-4) に示される法則が成立する。
・GF(28)の乗算: 以下の1種類のみ定義される。
・ GF(((22)2)2)の乗算: 以下の3種類が定義される。
(law-1) a◎b = b◎a
ただし、a,bは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-2) a◎(b○c) = a◎b○a◎c
ただし、a,b,cは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-3) a○a=0
ただし、aは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-4) a◎b = aH◎b || aL◎b
ただし、aは8-bitデータ、aHはaの上位4-bit, aLはaの下位4-bit、bは4-bitデータである。||はビット結合(concatenation)を表す記号であり、例えばビット値(1110)2は(1110)2=(11)2 || (10)2と表記される。また、a, aH, aLの関係はa=aH||aLと表記される。a, aH, aL, bはGF(((22)2)2)の元である。
(law-1)(law-2)は, 整数における乗算´、加算+について成立する交換則a´b=b´aと、結合則a´ (b+c)=a´b+a´cに対応する法則であり、GF(28), GF(((22)2)2)の両方に成立する。(law-3)はXOR演算の定義0○0=0, 1○1=0より明らかであり、GF(28), GF(((22)2)2)の両方に成立する。(law-4)はGF(((22)2)2)のみ成立する特殊な法則である。GF(((22)2)2)における8-bit´4-bit乗算の計算結果は2つの4-bit´4-bit乗算aH◎b, aL◎bの演算結果をビット結合することで得られることを意味している。
<従来の課題と解決手段について>
ここでは、3つの特徴全てについて優れた効果を発揮する本発明の手段を示
す。この手段を説明するために、従来例2と従来例3の単純な組み合わせを示したうえで、本発明による解決手段を示す。最初に、従来例2と3の単純な組み合わせの一つを図24に示す。
(ZSPA-sec) ゼロ乗算SPAに対して安全な乗算処理は、c=a◎bで表される乗算処理の2つの入力a,bともに乱数値マスク化データを入力する演算である。
Thomas S.Messerges, Ezzy A.Dabbish and Robert H.Sloan "Power Analysis Attacks of Modular Exponentitiation in Smartcards", Cryptographic Hardware and Embedded Systems(CHES’99), Springer-Verlag, pp.144-157 Paul Kocher, Joshua Jaffe, and Benjamin Jun, "Differential Power Analysis," in proceedings of Advances in Cryptology-CRYPTO’99, Springer-Verlag, 1999, pp. 388-397 S. Chari, C. Jutla, J.R. Rao, P. Rohatgi, "An Cautionary Note Regarding Evaluation of AES Candidates on Smart-Cards," Second Advanced Encryption Standard Candidate Conference, March 1999 米NIST(National Institute of Standards and Technology), 標準FIPS197 (Federal Information Processing Standards Publication)http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf T. S. Messerge, Ezzy A. Dabbish and Robert H.Sloan ,"Investigations of Power Attacks on Smartcards". Proceedings of USENIX Workshop on Smartcard Technology, Mar 1999. Takeshi Shimoyama, Hitoshi Yanami, Kazuhiro Yokoyama, Masahiko Takenaka, Kouichi Itoh, Jun Yajima, Naoya Torii, Hidema Tanaka "The Block Cipher SC2000", Fast Software Encryption (FSE 2001), pp.312-327, LNCS vol.2355 M.Akkar, RBevan, P.Dischamp, and D. Moyart, "Power Analysis, What Is Now Possible... ", Asiacrypt 2000) Thomas S. Messerges, "Securing the AES Finalists Against Power Analysis Attacks," in proceedings of Fast Software Encryption Workshop 2000, Springer-Verlag, April 2000. Akashi Satoh, Sumio Morioka, Kohji Takano and Seiji Munetoh: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS Vol.2248, pp.239-254, Dec 2001. Akashi Satoh, Sumio Morioka, Kohji Takano and Seiji Munetoh: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS Vol.2248, pp.239-254, Dec 2001. "A Compact Rijndael Hardware Architecture with S-Box Optimization"
J1=(X○R’)◎(Y○S’)
J2=S’◎(X○R’)
J3=R’◎(Y○S’)
J4=R’◎S’
J0=J1○J2○J3○J4○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
J1=(X○R’)◎(Y○R’)
J2=R’◎((X○R’)○(Y○R’)○R’)
J0=J1○J2○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
J1=(X○R’)◎(Y○R’L)
J2=(Y○R’H)◎R’H○R’H 2
J3=((X○R’)○(Y○R’L)○R’L)◎R’L
J0=J1○(J2||(0000)2)○J3○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
J1=(XH○R’L)◎(Y○R’L)
J2=((XH○R’L)○(Y○R’L)○R’L)◎R’L
J3=(XL○R’L)◎(Y○R’L)
J4=((XL○R’L)○(Y○R’L)○R’L)◎R’L
J0=((J1○J2)||(J3○J4))○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
J1=(U○R)◎(U16○R16)
J2=R16◎(U○R)
J3=R◎(U16○R16)
J4=R◎R16
J0=J1○J2○J3○J4○cr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU17○crとして4ビット対4ビット変換テーブル回路へ入力させ、U16○R16及びR16をU16○R’及びR’としてmaskedU-17◎U16計算回路に入力させる。
J1=(U○R)◎(U16○R)
J2=R◎((U○R)○(U16○R)○R)
J0=J1○J2○cr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU17○crとして4ビット対4ビット変換テーブル回路へ入力させ、U16○R及びRをU16○R’及びR’としてmaskedU-17◎U16計算回路に入力させる。
J1=(U-17○S○dr)◎(U16○R’)
J2=R’◎(U-17○S○dr)
J3=(S○dr)◎(U16○R’)
J4=(S○dr)◎R’
J0=J1○J2○J3○J4○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
J1=(U16○(dr||dr)○R’)◎(U-17○dr○R’H)
J2=(U-17○dr○R’H)◎(dr○R’H)○(dr○R’H)2
J3=((U16○(dr||dr)○R’)○(U-17○dr○R’L)○(dr○R’L))◎(dr○R’L)
J0=J1○(J2||(0000)2)○J3○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
J1=(U16 H○R’L)◎(U-17○R’L)
J2=((U16 H○R’L)○(U-17○R’L)○R’L)◎R’L
J3=(U16 L○R’L)◎(U-17○R’L)
J4=((U16 L○R’L)○(U-17○R’L)○R’L)◎R’L
J0=((J1○J2)||(J3○J4))○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
本発明の基本原理
本発明は、「背景技術」において指摘した課題1,2,3を全て解決したAES暗号処理装置を実現する。そのために、以下の(条件-1), (条件-2), (条件-3), (条件-4)を満たした処理を行う。
(条件-1) AESのSubbyte処理以外について、従来例2による処理を行う。
(条件-2) AESのSubbyte処理は、合成体による逆元演算をSPA,DPAに安全な方法で実行。
(条件-3) (条件-2)の合成体演算におけるテーブル処理は、従来例2による処理を行う。
(条件-4) (条件-2)の合成体演算における乗算には、常に乱数値マスク化データを入力。
(条件-1)を導入することで、AESのSubbyte処理以外について、課題1、課題2、課題3を同時に解決する。なぜなら、従来例2の唯一の問題であった課題1は、Subbyte回路に関してのみの課題であるため、Subbyte処理に従来例2を用いなければこれらの課題は全て解決される。後は、AESのSubbyte処理に関して課題1,2,3を解決できるならば、AES処理全体として全ての課題を解決できる。
<課題を解決するための基本アイデア>
乗算処理のみ乱数値マスク化データによる処理を行い、それ以外を固定値マスク化データによる処理を行うための、本発明の基本アイデアを図26に示す。
U17=U16◎UとU-1=U-17◎U16の両方の乗算に適用可能な方法である。(図27)
J1 = (X○R’)◎(Y○S’)
J2 = S’ ◎(X○R’)
J3 = R’ ◎(Y○S’)
J4 = R’ ◎S’
ただし、U17=U16◎UならX,Y,R’,S’は8-bit、U-1=U-17◎U16ならX,R’は8-bit, Y,S’は4-bitである。
J1,J2,J3,J4を計算し、J0 = J1○J2○J3○J4○frによりJ0=X◎Y○frを得る。基本原理-1によりX◎Y○frを計算する回路を、記号としてMaskedMul_1(X○R’, Y○S’,R’,S’,fr)により表現する。また、(law-1)〜(law-3)を考慮すると、
J1 = X◎Y○ X◎S’ ○ Y◎R’○ R’◎S’
J2 = S’ ◎X○ S’ ◎ R’
J3 = R’ ◎Y○ R’ ◎S’
J4 = R’ ◎S’
であるので、J0 = J1○J2○J3○J4○fr= X◎Y○frを確認できる。
J1〜J4の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通り。
-U17=U16◎Uの場合:8-bit´8-bit乗算4回、
-U-1=U-17◎U16の場合:8-bit´4-bit乗算4回(もしくは4-bit´4-bit乗算8回)。
基本原理-1は(law-1)〜(law-3)に基づいているため、任意の2進体と合成体の演算に適用可能である。
基本原理-1によるPA対策を用いた場合、PA対策なしにおける1回の乗算が4回の乗算に置き換えられる。この乗算回数の増加は、PA対策に伴うオーバヘッドとなる。よって、この置き換え後の乗算回数を減らすことが、PA対策に伴うオーバヘッドを減少させることになる。このオーバヘッドの減少を行うために、基本原理-1におけるS’に関して、S’=R’による特殊化を行ったものが(基本原理-2)である。この特殊化を行うことで、演算処理が簡略化されるため、PA対策なしにおける1回の乗算が2回の乗算に置き換えられる。
J1 = (X○R’)◎(Y○R’)
J2 = R’ ◎( (X○R’) ○(Y○R’) ○R’)
ただし、X,Y,R’は8-bitである。J1,J2を計算し、J0 = J1○J2○frによりJ0=X◎Y○frを得る。基本原理-2によりX◎Y○frを計算する回路を、記号としてMaskedMul_2(X○R’,Y○R’,R’,fr)により表現する。また(law-1)〜(law-3)を考慮すると、
J1 = X◎Y ○ X◎R’ ○ Y◎R’ ○ R’2
J2 = X ◎R’ ○ Y’ ◎ R’ ○R’2
であるので、J0 = J1○J2○fr= X◎Y○frを確認できる。
J1,J2の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通り。
- U17=U16◎Uの場合:8-bit´8-bit乗算2回
基本原理-2は(law-1)〜(law-3)に基づいているため、任意の2進体と合成体の演算に適用可能である。
基本原理-2を用いることで、本発明1よりPA対策に伴う乗算回数のオーバヘッドを減少させることができるが、その技術を適用可能となるのはU17=U16◎Uに示される8-bit´8-bit乗算のみであり、U-1=U-17◎U16に示される8-bit´4-bit乗算には適用できなかった。この問題を改善するために、U-1=U-17◎U16に示す8-bit´4-bit乗算には適用可能であり、かつ基本原理-1より乗算回数のオーバヘッドを低減させる方法が以下に示す基本原理-3である。
J1 = (X○R’)◎(Y○R’L )
J2 = (Y○R’H) ◎R’H○ R’H 2
J3 = ((X○R’ ) ○ (Y○R’L) ○R’L) ◎ R’L
ただし、X,R’は8-bit, Y, R’H, R’Lは4-bitであり、R’=R’H||R’Lである。J1,J2,J3を計算し、J0 = J1○(J2 || (0000)2 )○J3○frによりJ0=X◎Y○frを得る。基本原理-3によりX◎Y○frを計算する回路を、記号としてMaskedMul_3(X○R’,Y○R’H,Y○R’L,R’H,R’L,fr)により表現する。また、(law-1)〜(law-4)を考慮すると、
J1= (XH ○ R’H) ◎ (Y○R’L) || (XL○R’L) ◎ (Y○R’L)
= (XH ◎ Y ○ XH◎R’L○ Y◎R’H ○ R’ H◎R’L) || (XL ◎ Y ○ XL◎R’L○ Y◎R’L○ R’ H◎R’L 2)
J2 || (0000)2 = (Y ◎R’H) || (0000)2
J3= (XH ○ R’H) ◎R’L || (XL○R’L○Y○R’L○ R’L) ◎R’L
= (XH◎R’L ○ R’ H◎R’L) || (XL ◎ R’L○ YL◎R’L○ R’L 2)
である。ただし、XH, XLはX=XH||XLを満たす4-bit値である。よって、J0 = J1○(J2 || (0000)2 )○J3○fr = ( (XH◎Y) || (XL◎Y) )○ frであるが、(law-4)より、X◎Y= ( (XH◎Y) || (XL ◎ Y) )を考慮すると、J0 = J1○(J2 || (0000)2 )○J3○fr =X◎Y○frを導出できる。
J1,J2,J3の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通りである。
-U17=U16◎Uの場合:8-bit´4-bit乗算2回、4-bit´4-bit乗算1回、4-bit´4-bit自乗算1回。
さらに、8-bit´4-bit乗算1回は4-bit´4-bit乗算2回に相当すること、4-bit´4-bit自乗算1回は4-bit´4-bit乗算1回よりコストが安い演算(つまり、4-bit´4-bit乗算では1回未満のコスト)ことを考慮すると、基本原理-3に必要な乗算回数は以下のようにも表現できる。
-U17=U16◎Uの場合:8-bit´4-bit乗算φ回 (2.5<φ<3)
基本原理-3は(law-1)〜(law-4)に基づいているため、βγ=2を満たす合成体GF((…(2β1)…)βγ)の演算に対して適用可能である。
U-1=U-17◎U16に示される8-bit´4-bit乗算に関して、基本原理-1の場合4回の8-bit´4-bit乗算を必要とするのに対して、基本原理-3を用いることでφ回の8-bit´4-bit乗算(2.5<φ<3)まで減少させることに成功した。8-bit´4-bit乗算の性質を利用することで、この乗算回数をさらに減少させることができる方法が基本原理-4である。(law-4)より、8-bit´4-bit乗算は2つの4-bit´4-bit乗算に分解できる。基本原理-4では、これら個々の4-bit´4-bit乗算に入力される2つのデータに対し、(基本原理-2)と同様に、同一の乱数値のXORを行う(図30)。
J1 = (XH ○ R’L) ◎ (Y○R’L)
J2 = ( (XH○R’L) ○ (Y○R’L) ○ R’L) ◎R’L
J3= (XL ○ R’L) ◎ (Y○R’L)
J4= ( (XL○R’L) ○ (Y○R’L) ○ R’L) ◎ R’L
ただし、Xは8-bit、XH, XL, Y, R’Lは4-bitであり、X=XH||XLである。J1,J2,J3,J4を計算し、J0 = ( (J1○J2) || (J3○J4) ) ○frによりJ0=X◎Y○frを得る。 (law-1)〜(law-4)を考慮すると、
J1○J2=(XH ○ R’L) ◎ (Y○R’L) ○(XH○R’L○Y○R’L○ R’L) ◎R’L
= XH◎Y ○ XH◎R’L○ Y◎R’L ○ R’L 2 ○ XH◎R’L ○ Y◎R’L ○ R’L 2 = XH◎Y
J3○J4=(XL ○ R’L) ◎ (Y○R’L) ○(XL○R’L○Y○R’L○ R’L) ◎R’L
= XL◎Y ○ XL◎R’L○ Y◎R’L ○ R’L 2 ○ XL◎R’L ○ Y◎R’L ○ R’L 2 = XL◎Y
である。基本原理-4によりX◎Y○frを計算する回路を、記号としてMaskedMul_4(XH○R’L,XL○R’L,Y○R’L, R’L,fr)により表現する。(law-4)から、X◎Y= ( (XH◎Y) || (XL◎ Y) )であるので、J0 = ( (J1○J2) || (J3○J4) ) ○fr =X◎Y ○ frを確認できる。
J1,J2,J3,J4の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通りである。
-U17=U16◎Uの場合: 4-bit´4-bit乗算4回(8-bit´4-bit乗算2回と等価)。
基本原理-4は(law-1)〜(law-4)に基づいているため、βγ=2を満たす合成体GF((…(2β1)…)βγ)の演算に対して適用可能である。
基本原理-1, 基本原理-2, 基本原理-3, 基本原理-4に記した本発明の技術を、図23に示した従来例3に示した逆元演算に適用した実施形態を以下に示す。以下の実施形態の説明では、図31に示すように、逆元演算の処理のコア部分、つまり合成体の計算部分に対して本発明を用いた場合の実施形態を示す。本発明の実施形態において説明する逆元演算では、共通して以下のI〜IVのステップを実行する。
i.逆元演算回路はGF(28)の元T○prを入力することで、GF(28)の元T-1○qrを計算し出力する回路である。ただし、pr,qrは乱数rによって選択される固定値マスクを表す。
ii.入力されたGF(28)の元T○grにδ変換を行い、δ(T○pr)=δ(T)○δ(pr)=U○grを計算する。ただし、grは乱数rによって選択される固定値マスクであり、gr=δ(pr)を満たす。
iii.U○grに対して、乗算とテーブル演算を組み合わせた演算を行うことで、U○grから、U-1○frを計算する。ただし、frは乱数rによって選択される固定値マスクを表す。
iv.U-1○frに対して、δ-1変換を行うことでδ-1(U-1○fr)=δ-1(U-1)○δ-1(fr)=T-1○qrを計算する。ただし、qrとfrの間には、δ-1(fr)= qrの関係式が成立する。
・masked U 16 ◎U計算
この回路の基本機能は、U○grを入力することで、U17○crを計算し出力することである。ただし、cr,grは乱数rによって選択される固定値マスクであり、crは4-bit, grは8-bitである。この固定値マスクcr, grはこの回路に対する入力として与える。この回路内部で乱数値マスク化されたデータによる乗算を実行するために、乱数Rを入力として与える。また、U16○R’, R’で表される2つのデータを出力し、masked U-17◎U16計算への入力として与える。R’として出力される値は、この回路の実施形態によって異なり、基本原理-1の乗算回路を用いた[第1の実施形態]の場合R’=R16であり、基本原理-2の乗算回路を用いた[第2の実施形態]の場合R’=Rである。[第1の実施形態][第2の実施形態]の詳細については、後に述べる。
・masked U -17 ◎U 16 計算
この回路の基本機能は、U-17○dr及びU16○R’、乱数R’を入力することで、U-1○frを計算し出力することである。ただし、dr,frは乱数rによって選択される固定値マスクであり、drは4-bit, frは8-bitである。この固定値マスクdr, frはこの回路に対する入力として与える。
本発明の技術を用いたAES暗号処理装置は、「本発明の基本原理」に記した(条件-1),(条件-2),(条件-3),(条件-4)を満たすので、従来例1,2,3が解決できなかった課題1,2,3を全て解決できる。つまり、従来例では不可能であった、小さな回路規模(課題1の解決)、高速な処理速度(課題2の解決)、SPA,DPAに安全な処理(課題3の解決)の3点を全て満たしたAES暗号処理装置を実現することができる。
Claims (5)
- 非線型変換を2進体又は合成体における乗算処理で演算する共通鍵ブロック暗号化装置であって、
前記非線型変換以外の演算処理を、固定値によるマスク(以下「固定値マスク」)をエクスクルーシブオア演算(以下「XOR」)して得た固定値マスク化入力データにより実行する演算器と、
前記非線型変換における乗算処理において、
全ての入力データに固定値マスクをXORして固定値マスク化入力データに変換し、更に乱数値によるマスク(以下「乱数値マスク」)をXORして乱数値マスク化入力データに変換するXOR演算回路と、
該XOR演算回路から出力された乱数値マスク化入力データに基づいて前記乗算処理を実行する乗算器と、
該乗算器から出力される乱数値マスク化出力データを固定値マスク化出力データに再変換して出力する乱数値マスク−固定値マスク変換回路と、
を含むことを特徴とする暗号化装置。 - 前記乗算処理は、
前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算処理、◎を乗算処理とし、R’=R○pr,S’=S○qrのように固定値マスクp r 、q r に乱数値マスクをXORした結果の乱数値マスクをR’,S’として、
J1=(X○R’)◎(Y○S’)
J2=S’◎(X○R’)
J3=R’◎(Y○S’)
J4=R’◎S’
J0=J1○J2○J3○J4○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
ことを特徴とする請求項1に記載の暗号化装置。 - 前記乗算処理は、
前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR、固定値マスクをfr、○をXOR演算処理、◎を乗算処理とし、R’=R○prのように固定値マスクp r に乱数値マスクをXORした結果の乱数値マスクをR’として、
J1=(X○R’)◎(Y○R’)
J2=R’◎((X○R’)○(Y○R’)○R’)
J0=J1○J2○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
ことを特徴とする請求項1に記載の暗号化装置。 - 前記乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、
前記乗算処理は、
前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算処理、◎を乗算処理とし、R’=R○pr,S’=S○qrのように固定値マスクp r 、q r に乱数値マスクをXORした結果の乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、J2||(0000)2をJ2の下位側にそれと同じビット数のゼロビット列を結合する演算として、
J1=(X○R’)◎(Y○R’L)
J2=(Y○R’H)◎R’H○R’H 2
J3=((X○R’)○(Y○R’L)○R’L)◎R’L
J0=J1○(J2||(0000)2)○J3○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
ことを特徴とする請求項1に記載の暗号化装置。 - 前記乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、
前記乗算処理は、
前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算処理、◎を乗算処理とし、R’=R○pr,S’=S○qrのように固定値マスクp r 、q r に乱数値マスクをXORした結果の乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、X’H及びX’LをそれぞれX’を上位及び下位に半分ずつ分割した場合のビット値として、
J1=(XH○R’L)◎(Y○R’L)
J2=((XH○R’L)○(Y○R’L)○R’L)◎R’L
J3=(XL○R’L)◎(Y○R’L)
J4=((XL○R’L)○(Y○R’L)○R’L)◎R’L
J0=((J1○J2)||(J3○J4))○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
ことを特徴とする請求項1に記載の暗号化装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/000837 WO2009122464A1 (ja) | 2008-03-31 | 2008-03-31 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013013329A Division JP5500277B2 (ja) | 2013-01-28 | 2013-01-28 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009122464A1 JPWO2009122464A1 (ja) | 2011-07-28 |
JP5229315B2 true JP5229315B2 (ja) | 2013-07-03 |
Family
ID=41134886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010505044A Active JP5229315B2 (ja) | 2008-03-31 | 2008-03-31 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8369516B2 (ja) |
EP (1) | EP2273472B1 (ja) |
JP (1) | JP5229315B2 (ja) |
WO (1) | WO2009122464A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5060570B2 (ja) * | 2010-02-23 | 2012-10-31 | 株式会社東芝 | 暗号化装置および復号装置 |
JP5556955B2 (ja) * | 2011-03-29 | 2014-07-23 | 富士通株式会社 | 暗号処理装置、認証方法およびプログラム |
GB2494731B (en) | 2011-09-06 | 2013-11-20 | Nds Ltd | Preventing data extraction by sidechannel attack |
JP5818768B2 (ja) * | 2012-10-18 | 2015-11-18 | 日本電信電話株式会社 | マスク生成装置、情報処理装置、及びその方法、プログラム |
US10142099B2 (en) * | 2013-01-11 | 2018-11-27 | Qualcomm Incorporated | Method and apparatus for a computable, large, variable and secure substitution box |
US20150227472A1 (en) * | 2014-02-10 | 2015-08-13 | Kabushiki Kaisha Toshiba | Memory system, controller, and method |
US9875377B2 (en) * | 2014-03-31 | 2018-01-23 | Stmicroelectronics S.R.L. | Encryption device of a substitution-box type, and corresponding encryption method and computer program product |
US9800406B2 (en) * | 2014-05-21 | 2017-10-24 | Intel Corporation | Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher |
KR102376506B1 (ko) * | 2014-10-20 | 2022-03-18 | 삼성전자주식회사 | 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법 |
US20160269175A1 (en) * | 2015-03-09 | 2016-09-15 | Qualcomm Incorporated | Cryptographic cipher with finite subfield lookup tables for use in masked operations |
US10210350B2 (en) * | 2015-08-10 | 2019-02-19 | Samsung Electronics Co., Ltd. | Electronic device against side channel attacks |
US9853813B2 (en) | 2016-03-17 | 2017-12-26 | Crater Dog Technologies, LLC | Method for securing a private key |
CN106452725B (zh) * | 2016-06-14 | 2019-05-31 | 东南大学 | 一种基于寄存器掩码的面向aes算法的抗功耗攻击方法 |
CN107547193A (zh) * | 2016-06-28 | 2018-01-05 | 埃沙尔公司 | 使替换运算免受侧信道分析的方法 |
CN109033847B (zh) * | 2018-06-11 | 2021-06-18 | 安徽工程大学 | Aes加密运算单元、aes加密电路及其加密方法 |
CN109033893B (zh) * | 2018-06-11 | 2021-06-18 | 安徽工程大学 | 基于合成矩阵的aes加密单元、aes加密电路及其加密方法 |
CN109033894B (zh) * | 2018-06-11 | 2021-06-22 | 安徽工程大学 | 普通轮变换运算单元、普通轮变换电路及其aes加密电路 |
CN109818732B (zh) * | 2019-03-12 | 2021-05-11 | 南京航空航天大学 | 一种动态路径s盒及可防御功耗攻击的aes加密电路 |
CN110059492B (zh) * | 2019-04-01 | 2023-01-31 | 南京航空航天大学 | 一种基于双路互补结构的可检错aes加密电路 |
US11838403B2 (en) * | 2019-04-12 | 2023-12-05 | Board Of Regents, The University Of Texas System | Method and apparatus for an ultra low power VLSI implementation of the 128-bit AES algorithm using a novel approach to the shiftrow transformation |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002366029A (ja) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Dpaに対して安全な暗号化 |
JP2005266810A (ja) * | 2004-03-16 | 2005-09-29 | Samsung Electronics Co Ltd | マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法 |
JP2006003905A (ja) * | 2004-06-19 | 2006-01-05 | Samsung Electronics Co Ltd | 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL94449A (en) * | 1990-05-20 | 1994-06-24 | Fortress U & T 2000 Ltd | Method and apparatus for exponentiation over gf(2") |
JP4859370B2 (ja) * | 2005-01-19 | 2012-01-25 | 三菱電機株式会社 | 電子素子 |
US8923510B2 (en) * | 2007-12-28 | 2014-12-30 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
-
2008
- 2008-03-31 EP EP08720703.1A patent/EP2273472B1/en not_active Not-in-force
- 2008-03-31 WO PCT/JP2008/000837 patent/WO2009122464A1/ja active Application Filing
- 2008-03-31 JP JP2010505044A patent/JP5229315B2/ja active Active
-
2010
- 2010-09-23 US US12/889,096 patent/US8369516B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002366029A (ja) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Dpaに対して安全な暗号化 |
JP2005266810A (ja) * | 2004-03-16 | 2005-09-29 | Samsung Electronics Co Ltd | マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法 |
JP2006003905A (ja) * | 2004-06-19 | 2006-01-05 | Samsung Electronics Co Ltd | 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置 |
Non-Patent Citations (3)
Title |
---|
JPN6012060244; Trichina, E.: 'Combinational Logic Design for AES SubByte Transformation on Masked Data' Cryptology ePrint Archive Report 2003/236, 200311, The Internet * |
JPN6012060246; 森岡澄夫 他: '合成体を用いたAES S-Box回路に対するDPA攻撃' コンピュータセキュリティシンポジウム2004 , 20041020, p.679-684 * |
JPN6012060247; 川畑伸幸 他: 'AESにおける合成体Subbytes向けパワーマスキング乗算回路の設計' 電子情報通信学会技術研究報告 第107巻 第335号, 20071114 * |
Also Published As
Publication number | Publication date |
---|---|
EP2273472A1 (en) | 2011-01-12 |
US8369516B2 (en) | 2013-02-05 |
EP2273472B1 (en) | 2016-02-17 |
WO2009122464A1 (ja) | 2009-10-08 |
EP2273472A4 (en) | 2011-06-29 |
JPWO2009122464A1 (ja) | 2011-07-28 |
US20110013769A1 (en) | 2011-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
JP4596686B2 (ja) | Dpaに対して安全な暗号化 | |
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
JP4909018B2 (ja) | 共通鍵暗号のための暗号化装置 | |
KR101026439B1 (ko) | Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
Jaffe | A first-order DPA attack against AES in counter mode with unknown initial counter | |
TW201044334A (en) | Encryption device, encryption method, and computer program | |
WO2011101994A1 (ja) | 暗号化装置 | |
US20170366339A1 (en) | Method of encryption with dynamic diffusion and confusion layers | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
Ara et al. | Dynamic key dependent S-Box for symmetric encryption for IoT devices | |
KR100991713B1 (ko) | 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템 | |
Noura et al. | Tresc: Towards redesigning existing symmetric ciphers | |
JP2012143011A (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
Mohan et al. | Revised aes and its modes of operation | |
Ha et al. | Differential power analysis on block cipher ARIA | |
JP2002510058A (ja) | 2進データ・ブロックの暗号変換のための方法 | |
Yang et al. | A new block cipher based on chaotic map and group theory | |
Silva-Garcia et al. | The triple-DES-96 cryptographic system | |
Bai et al. | Securing SMS4 cipher against differential power analysis and its VLSI implementation | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
Cook et al. | Elastic aes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130128 |
|
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: 20130219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130304 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160329 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5229315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |