JP5184659B2 - 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 - Google Patents
秘密鍵を伴う電子暗号アセンブリを安全に守る方法 Download PDFInfo
- Publication number
- JP5184659B2 JP5184659B2 JP2011005165A JP2011005165A JP5184659B2 JP 5184659 B2 JP5184659 B2 JP 5184659B2 JP 2011005165 A JP2011005165 A JP 2011005165A JP 2011005165 A JP2011005165 A JP 2011005165A JP 5184659 B2 JP5184659 B2 JP 5184659B2
- Authority
- JP
- Japan
- Prior art keywords
- round
- input
- rounds
- electronic system
- surrogate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 41
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000000873 masking effect Effects 0.000 claims description 13
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims 9
- 230000006870 function Effects 0.000 description 28
- 238000013478 data encryption standard Methods 0.000 description 27
- 238000000605 extraction Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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
- 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/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
本発明は、秘密鍵を使用した暗号アルゴリズムを含む電子アセンブリを安全に守る方法に関する。より詳細には、本方法は、計算の実行中に電子アセンブリの電力消費を調査した後に秘密鍵についての情報を取得しようとする(高次電力差分解析(High−Order Differential Power Analysis)と呼ばれる)一部のタイプの物理攻撃による攻撃が不可能となるアルゴリズムのバージョンを実現することを目指すものである。
ここで考慮される暗号アルゴリズムでは、秘密鍵を使用して入力情報に従って出力情報が計算される。すなわち、これらは、符号化演算、復号化演算、署名演算、署名の検査演算、認証演算、または否認防止演算でもよい。これらは、入力と出力とを知っている攻撃者が、この秘密鍵それ自体に関する情報を実際上何も推論できないようにするために行われる。
したがって、これは、秘密鍵をもつ表現アルゴリズムまたは対称アルゴリズムによって古典的に指定されるものに比べて大きなカテゴリの問題である。特に、本特許出願で説明するものはどれも、公開鍵または非対称アルゴリズムを伴うと言われるアルゴリズムにも適用され、これらは実際のところ2つの鍵、すなわち一方は公開鍵、他方は公開されない秘密鍵を有しており、この後者の秘密鍵が、以下で説明する攻撃の対象となっている。
電力解析タイプの攻撃は、実際に攻撃者が、計算を実行するときに、例えばマイクロコントローラの電力消費または回路によって生成される電磁放射として単なる入力および出力の放出以外の情報を獲得することができるという事実に起因している。
電力消費差分解析は、短縮してDPAと言う電力差分解析(Differential Power Analysis)と呼ばれる攻撃のカテゴリについての原理であり、同じ鍵を用いて多数回、計算する間になされる電力消費の記録を統計的に解析することによって電子アセンブリ中に含まれる秘密鍵についての情報を取得することを可能にするものである。
「1次のDPA」または混同する可能性がないときに単に「DPA」と呼ばれる最も簡単な攻撃では、攻撃者は、電流消費信号を記録し、各瞬間におけるこの信号についての個別の統計的特性を計算する。ここでは、発明者らは、「1次のDPA」攻撃を一般化した、短縮してHO−DPAと言う高次電力差分解析(High−Order Differential Power Analysis)と呼ばれる攻撃のことを考えている。すなわち、攻撃者は、今では、いくつかの異なる時点で取られた電力消費の総合統計的特性を計算することになる。より詳細には、n次のDPA攻撃では、暗号アルゴリズムの計算中に現れる、n個の異なる中間値に対応する消費信号のn個の値が考慮に入れられる。攻撃によって検出される中間値のことを、以下のテキストでは、クリティカル情報と呼ぶことにする。
非限定的な例として、参照として述べられている文献、FIPS PUB 46−2、 Data Encryption Standard、1994年に記載されているDES(Data Encryption Standardデータ暗号化規格)アルゴリズムの場合を考慮している。
DESアルゴリズムは、ラウンドと呼ばれる16ステップで実行される(図2参照)。16ラウンドのそれぞれで、32ビットを用いた変換fが行われる。この変換fは、それぞれS−ボックス(S−box)(図2上のS)と呼ばれるテーブル中で符号化される、8個の4ビットにわたる6ビットの非線形変換を使用している。
DESに対する2次のDPA攻撃は、以下のように実行することができる。
第1のステップでは、消費測定が、1000回のDES計算について第1ラウンドの間で行われる。E[1]、...、E[1000]は、これら1000回の計算についての入力値であることに留意すべきである。C[1]、...、C[1000]は、これらの計算を行う際に測定される電力消費の1000本の対応する曲線であることに留意すべきである。
第2のステップでは、それぞれ値b1およびb2をもつ(クリティカル情報である)2ビットがこの計算中に現れ、
が第1ラウンドの間に第1のS−ボックスからの第1の出力ビットの値bに等しくなるように想定することにする。ここで、
は、ビットごとの「排他的論理和」関数を示す。b1に対応する消費曲線ポイントが存在する時間とb2に対応する消費曲線ポイントが存在する時間との間に、δの時間間隔があると想定する。次いで、各曲線C[i](式中iは、連続的に1、2、...、1000に等しくなる整数)に対して、C[i]と、X軸に沿ってδ値だけ平行移動することによってC[i]から得られる曲線との間の差に等しい他の曲線Cδ[i]を関連づける。1000本のCδ[i]曲線の平均CM曲線についても計算する。
第3のステップでは、bは、その秘密鍵のうちの6ビットにしか依存しないことを理解するのは、容易である。この攻撃者は、この6ビットに関するある想定を行う。この攻撃者は、これらの6ビットおよびE[i]から、bについて予想される理論値を計算する。これによって、1000個の入力E[1]、...、E[1000]を、b=0をもたらすものとb=1をもたらすものの2つのクラスに分けることが可能になる。
第4のステップでは、次いで、b=0(b=1)となる第1のクラス(第2のクラス)の入力に関するCδ[i]曲線のCM’(CM”)平均値の計算が行われる。CM’とCM”の間に大きな差が示される場合、その鍵の中のその6ビットについて採用された値、ならびにδ値の選択が正しいものであったと考えられる。CM’とCM”の間に統計的な意味であまり大きな差が示されない場合、すなわち、測定されたノイズについての典型的なオフセットに比べて明らかに大きな差がない場合には、この6ビットについての別の選択肢を用いて第2のステップを再開する。鍵の6ビットについて有効な選択がない場合には、δについて別の選択を用いてステップ3およびステップ4を再開する。
第5のステップでは、「排他的論理和」が第2のS−ボックスからの場合にそこからの2ビットを用いてステップ2、ステップ3、およびステップ4を反復し、次いで、第3のS−ボックス、...、第8のS−ボックスに至るまで繰り返す。このようにして、最終的にその秘密鍵の48ビットが取得される。
第6のステップでは、その残りの8ビットを完全探索を使用して見出すことができる。
理論的に、n次のDPAでは、各命令ごとの個々の電力消費、または各命令ごとの時間的な位置についてのどのような知識も必要とされない。この攻撃者が一部のアルゴリズムの出力およびその対応する消費曲線について知っていると想定されるときにも、n次のDPAは同様に適用される。n次のDPAは、以下の基本的な仮説に基づいているだけである。
すなわち、仮説とは、2つの入力、およびそのそれぞれの2つに対する出力が、これらのn個の変数の知られている関数について同じ値をもたらすか否かを判定できるようにする、実際には32ビット未満の数ビットの鍵ビットの知識など、アルゴリズム計算中に現れる1組のn個の中間変数が存在するというものである。
「1次のDPA」攻撃に抵抗するように設計されたものを含めて通常の実施形態の態様では、一般に前述の仮説が成立したままなので、DESなど、S−ボックスを使用するすべてのアルゴリズムは、「高次のDPA」による攻撃を受けやすい可能性がある。
実際には、このインストレーションでは、考慮されるn個の変数に対応する消費曲線ポイント間の時間間隔を(完全探索、または他の情報の知識、例えば暗号アルゴリズムの実装の詳細の知識を用いて)見出すことも必要になる。
FIPS PUB 46−2、 Data Encryption Standard、1994年
本発明の一目的は、秘密鍵または個人鍵をもつn個のセットまたは暗号電子システムの、すべてのnの値についての「n次のDPA」攻撃のどのようなリスクもなくすることである。
本発明の他の目的は、前述の基本的な仮説がもはや正しいことが確認されないような、すなわち、1組のn個の中間変数のいずれの知られている関数も、秘密鍵または個人鍵の簡単にアクセス可能なサブセットの知識に依存しないような、暗号電子システムについての保護を与えることであり、したがって「高次のDPA」攻撃を動作不可能にすることである。
本発明は、秘密鍵を使用してメモリ中に記憶される暗号計算プロシージャを実装する、プロセッサおよびメモリを含む電子システムのためのセキュリティ保護を行う方法であって、そのクリティカル関数が、マスキングされない中間結果を出力において提供し入力において受け取るように、そのプロセッサを用いて実行される前記プロシージャの少なくとも1つのクリティカル関数の入力または出力の中間結果をマスキングすることから成ることを特徴とする方法に関する。
本発明の他の目的、利点、および特徴は、ここに添付された図面を参照して非限定的な例として提供された本発明による方法の実装、およびこの実装に合わせて構成された電子システムの実施形態の態様についての以下の説明を読めば、理解されよう。
本発明による方法は、秘密鍵を伴う暗号計算プロシージャを使用した電子システム、および例えばチップカードなどの基板上の(on−board)システムのセキュリティ保護を行うことを目指したものである。この電子システムは、プロセッサおよびメモリを含んでいる。この暗号計算プロシージャは、例えば前記システム用のROMタイプのメモリに組み込まれている。前記システム用のプロセッサは、例えばE2PROMタイプのメモリの秘密区域に記憶される秘密鍵を使用してこの計算プロシージャを実行する。
本発明による方法は、以下でクリティカル関数と呼ぶ関数の入力または出力としてこの計算プロシージャ中で取得される、クリティカル情報を構成する中間結果をマスキングすることから成っている。
この方法は、クリティカル関数を「同じ」計算を行うが修正された入力データまたは出力データを伴う関数で置き換えるものである。
図1aおよび図1b上に示すように、ある計算(テーブルを調べる一連の基本演算を介した計算)を行う、nビットからmビットへの任意のf関数は、別の(n’ビットからnビットへの)関数g(図1a)、または(mビットからm’ビットへの)関数h(図1b)を伴い、gがfの前に実行され、hがfの後で実行される、fから成る新しい関数pで置き換えられる。したがって、この方法では、この計算fが(g−>f)または(f−>h)で置き換えられる。
図に示す例によれば、gおよびhは、「排他的論理和」形式のデータマスキング演算である。このp関数は、入力がgでマスキングされたデータを取り込み、または、hでマスキングされたデータを出力する。
本説明中の用語「マスキング(mask)」は、(内部的な、カードユーザによって知られていない)非公開関数、例えばハザードを使用した関数を使用して変換することを意味する。
計算プロシージャにおける最初のクリティカル関数のマスキングは、h関数を伴う出力で行われる。計算プロシージャにおける最後のクリティカル関数のマスキングは、g関数を伴う入力で行われる。このようにして、この計算プロシージャは、非マスクデータを入力で受け取り出力で提供する。マスキングは、外側では透明(clear)である。このシステムに対してDPAタイプの攻撃を行おうと思う人は、検出可能な情報を作成するその中間結果がマスキングされていることを知らず、その人にとっては、その理由を理解せずにその結果からどのような結論を引き出すこともできないはずである。
gの入力データ(およびhの出力データ)のサイズは、必ずしもfと同じサイズである必要はないことに留意されたい。
本発明は、(修正された関数をどのようにして含めるかという)計算プロシージャそれ自体を変換すること、ならびに(例えばこの方法が、テーブルに基本的にアクセスする場合、新しいテーブルを構築する方法という)修正された関数の計算態様という2つの態様を有している。
以下の説明では、DESアルゴリズムに対する本発明の適用について説明している。まず、簡単化されているが理解しやすい第1の例を示して、次にこの第1の例に直接由来する様々な開発形態について検討することにする。
本発明による方法では、以下の2つの問題が別々に解決される。
修正されたS−ボックスを使用してDESをどのように構成するか
どのようにしてこれらのS−ボックスを構築するか
修正されたS−ボックスを使用してDESをどのように構成するか
どのようにしてこれらのS−ボックスを構築するか
図2、図3aから図3e、および図4を参照して第1の簡単化された例における修正されたS−ボックスを使用するDESの構成を以下に説明する。
まず、DESのi番目のラウンドについて考察する(図2)。マスキングされたデータを操作するために古典的なDESのS−ボックスを修正する。次いで、32ビットの任意の値を伴うαについて考察する。48ビットから32ビットへの2つの新しい関数S’1およびS’2を以下のように定義する。
S’1(x)=S(x xor E(α)) 32ビットの任意のxについて
S’2(x)=S(x) xor P−1(α) 32ビットの任意のxについて
S’1(x)=S(x xor E(α)) 32ビットの任意のxについて
S’2(x)=S(x) xor P−1(α) 32ビットの任意のxについて
次いで、関数fKiに類似しているが、Sの代わりにS’1ボックスおよびS’2ボックスを使用した2つの関数f’1,Kiおよびf’2,Kiを定義する。
これらの2つの新しい関数により、f’1,Kiがマスキングされない値から出発してαによってマスキングされた値を取得し、f’2,Kiではその逆になるようにすることができる。
図3aから図3eは、αによってマスキングされ、またはマスキングされない値と様々なボックス(SKi、S’1,KiまたはS’2,Ki)とを使用することによって得られるDESのラウンド(AからE)についての図を全部示したものである。明瞭に示すためにそのマスキングされたデータは破線で示すのに対して、マスキングされていないデータ(通常のもの)は実線で示している。
図4は、オートマトンとして記号で表される、得られる可能性のあるラウンドシーケンスの全体を示している。前述のように、マスキングされていないデータで出発し到着するために開始状況はAまたはBであるのに対し、終了状況はAまたはEである。
したがって、シーケンス:IP−BCDCDCEBCDCDCDCE−IP−1を用いた完全なDES(16ラウンド)を実行することが可能である。メッセージMと共に出発して、この方法では、マスキングされない入力および出力のない通常の暗号文(シーケンスIP−AAAAAAAAAAAAAAAA−IP−1を用いて得られた暗号文)を得ることが可能になる。
多くの有効な組合せが存在する。一部には、例えばIP−BCEAAAAAAAAAABCE−IP−1など、マスキングされたラウンドの間には通常のラウンド(タイプA)を使用して最初と最後のラウンドだけをマスキング可能にするものさえある。
本発明の開発によれば、データは、ラウンドに応じて異なるマスクを用いてマスキングされる。以上で使用されるラウンド表記法(A、B、C、D、およびE)を採用して、マスキングの際に使用される32ビットマスクを記号化するインデックス(α、β、γ...)が追加される。したがって、上記簡単化された例におけるBラウンドは、Bαと書かれることが分かる。マスクが含まれないのでAラウンドは、マスク値でインデックス付けする必要がないことにも留意されたい。かかる一般化例では、DESは、以下のシーケンスに従って行われる。
IP−BαCαDαCαDαCαEαBβCβDβCβDβCβDβCβEβ−IP−1
IP−BαCαDαCαDαCαEαBβCβDβCβDβCβDβCβEβ−IP−1
このようにして、これらのラウンド、および特に攻撃を受けやすい最初と最後のラウンドは、別々のマスクによって保護される。
前述の計算を実行するためには、タイプS、S’1,α、S’2,α、S’1,βおよびS’2,βのS−ボックスを構築する必要がある。
本発明によるこの方法に従って使用されるこれらの様々な修正されたS−ボックスは、以下の式に基づいてセキュリティ保護された方法で構築される。
S’1,α(x)=S(x xor E(α))
S’1,β(x)=S(x xor E(β))
S’2,α(x)=S(x) xor P−1(α)
S’2,β(x)=S(x) xor P−1(β)
S’1,α(x)=S(x xor E(α))
S’1,β(x)=S(x xor E(β))
S’2,α(x)=S(x) xor P−1(α)
S’2,β(x)=S(x) xor P−1(β)
前記式は、以下に示される基本演算に従って分割される。
(α、β...などの)ランダム値を抽出する、
(E(α)、P−1(β)...などの)秘密値のビットの置換、
S−ボックス(入力または出力)の通常の値に対応する値テーブルを用いて(例えばP−1(α)などの)値のXORを実行する。
(α、β...などの)ランダム値を抽出する、
(E(α)、P−1(β)...などの)秘密値のビットの置換、
S−ボックス(入力または出力)の通常の値に対応する値テーブルを用いて(例えばP−1(α)などの)値のXORを実行する。
nビット(DESでは、n=32)のランダム値の抽出が、以下のアルゴリズムに基づいて行われる。
この方法が使用されるシステムは、nオクテットのテーブル「t」と、「ランド(rand)」と呼ばれるオクテットにわたるハザードソースとを含んでいる。このアルゴリズムは、以下のように実行される。
0からn−1のiについて:t[i]:=rand%2
0からm−1のiについて:t[rand%n]とt[rand%n]を置換する
式中、mは、基本的にn以上の数である。
「%」は、モジュロ演算、すなわち全除算の残余である。
0からn−1のiについて:t[i]:=rand%2
0からm−1のiについて:t[rand%n]とt[rand%n]を置換する
式中、mは、基本的にn以上の数である。
「%」は、モジュロ演算、すなわち全除算の残余である。
求める結果は、テーブルtに含まれるnビットのチェーン(chain)である。
第1のバージョンによれば、このシステムは、n/4オクテットのテーブルtを含む。
0とn/4−1の間のiについて:t[i]:=rand
0とmの間のiについて:t[rand%(n/4)]に対してt[rand%(n/4)]を置換する
式中、mは基本的にn/4より大きな数である。
0とn/4−1の間のiについて:t[i]:=rand
0とmの間のiについて:t[rand%(n/4)]に対してt[rand%(n/4)]を置換する
式中、mは基本的にn/4より大きな数である。
結果は、tの各n/4オクテットについて最初の4ビットの連結となる。
第2のバージョンによれば、n/2、n/3、n/8またはnについての任意の除算結果(divider)を使用して、第1のバージョンに従ってこのアルゴリズムを再度行う。
第3のバージョンによれば、ランダムな方法でケースを交換する代わりに、あるケースをランダムに選択し、それにランダム値に対するXOR演算を追加する。
(DESの場合には、P−1(β):n=48およびm=32の置換、E(α):n=m=32の置換における)秘密値からのnビットのmビットへの置換は、以下のアルゴリズムに基づいている。
記述例では、nビットの「in」とマークされたテーブルをmビットの「m」とマークされたテーブルへ置換するのが望まれる。このシステムは、m個の値の「テンプ(temp)」テーブルを含んでいる(各ケースが、値n−1を含むこともある)。
テンプテーブル中で、数字0、1、2、...、m−2、m−1の置換が行われる。
0からm−1のiについて:out[V[temp[i]]]:=in[temp[i]]
0からm−1のiについて:out[V[temp[i]]]:=in[temp[i]]
実際には、これはランダムな方法でビットごとに置換を行うという問題である。
第1のバージョンによれば、この置換は、ビットごとではなくてkビットごとに、すべてランダムな方法で行われる。
第2のバージョンによれば、テーブルV中、または入力テーブルおよび/または出力テーブル中に、あるいはその両方にダミー値を追加することもできる。したがって、オクテットを使用してビットを記憶する場合、他の「空いている」ビットをハザードで完全なものにすることが可能である。
このXOR演算の実施形態は、m個の値のtテーブル中のnビットの(P−1(α)などの)値を追加することから構成される。
この演算は、出力テーブルのオクテットに対して、ならびにこれらのオクテットのビットに対してランダムな方法で実行することができる。
あるバージョンによれば、αのビット中、ならびにテーブルt中にダミー値を追加することも可能である。
本発明による方法では、S−ボックスが鍵を使用しないで構築されるときには、マスキングするための非公開関数が使用される。計算プロシージャが実行されるときには、マスクは使用されない。したがって、本発明による方法では、たとえそれを知らない場合でさえ、マスクを使用するどのような攻撃に対してもこの電子システムをセキュリティで保護することが可能になる。
この修正されたS−ボックスを構築するためには他の任意のタイプの抽出および置換を使用することができることを強調しておく必要がある。
さらに、説明した3つの演算に基づくS−ボックスの構築については、他の任意のタイプの形態を用いて、また特にこの説明における例として使用されるDESに特有のS−ボックス以外の別の形態で実行することができる。
Claims (10)
- 秘密鍵を使用する暗号計算プロシージャを記憶する手段と、前記計算プロシージャを実行する手段とを備える電子システムにして、暗号計算プロシージャはラウンドのシーケンスで実行され、中間結果を構成する中間ラウンドの出力(Li+1,Ri+1)は次のラウンドの入力(Li,Ri)として使用され、各ラウンドが、変換関数(fKi)を実行するシステムであって、
各オリジナルのラウンドについて代用ラウンド(A,B,C,D,E)の組を定義する手段と、
各ラウンドの代わりに、代用ラウンド(A,B,C,D,E)の1つを実行する手段を含み、代用ラウンド(A,B,C,D,E)の組は、代用ラウンドの1つ(A)が修正されないラウンドであり、他の代用ラウンド(B,C,D,E)の各々が、置換変換関数(f’1Ki,f’2Ki)を使用すること、または、マスキングされた中間結果を、出力で与えることまたは、入力で受信すること、を含むものである、ことを特徴とする、電子システム。 - 各代用ラウンドの入力は左側部分(Li)と右側部分(Ri)に分けられ、各代用ラウンドの出力は左側部分(Li+1)と右側部分(Ri+1)に分けられる、請求項1に記載の電子システム。
- Aと呼ぶ第1の代用ラウンド(A)は、修正されないラウンドであり、
Bと呼ぶ第2の代用ラウンド(B)は、マスキングされていない入力(Li,Ri)から右側部分(Ri+1)がマスキングされた出力(Li+1,Ri+1)を生成するために、置換変換関数(f’2Ki)を使用することを含み、
Cと呼ぶ第3の代用ラウンド(C)は、右側部分(Ri)がマスキングされた入力(Li,Ri)から左側部分(Li+1)がマスキングされた出力(Li+1,Ri+1)を生成するために、置換変換関数(f’1Ki)を使用することを含み、
Dと呼ぶ第4の代用ラウンド(D)は、左側部分(Li)がマスキングされた入力(Li,Ri)から右側部分(Ri+1)がマスキングされた出力(Li+1,Ri+1)を生成するために、オリジナルの変換関数(fKi)を使用することを含み、
Eと呼ぶ第5の代用ラウンド(E)は、左側部分(Li)がマスキングされた入力(Li,Ri)からマスキングされていない出力(Li+1,Ri+1)を生成するために、置換変換関数(f’2Ki)を使用することを含む、
5つの代用ラウンドを定義することを含む、請求項2に記載の電子システム。 - 代用ラウンドのランダムシーケンスを含み、ランダムシーケンスは暗号計算プロシージャの入力と出力に対してマスキングされていない結果を与えるように定義され、AまたはBを第1の代用ラウンドとして使用し、AまたはEを最後の代用ラウンドとして使用し、任意の代用ラウンドを中間代用ラウンドとして使用するが、AにはAまたはBのみが続くことができ、BにはCのみが続くことができ、CにはDまたはEのみが続くことができ、DにはCのみが続くことができ、EにはAまたはBのみが続くことができる、という規則に従う、請求項3に記載の電子システム。
- 暗号計算プロシージャはDESアルゴリズムの実装であり、代用ラウンドのシーケンスは固定され、BCDCDCEBCDCDCDCEまたは、BCEAAAAAAAAAABCEのいずれかである、請求項3に記載の電子システム。
- 異なる代用ラウンドに対して、異なるマスク(α,β,γ)を使用する、請求項1から5のいずれか一項に記載の電子システム。
- 暗号計算プロシージャはDESアルゴリズムの実装であり、代用ラウンドのシーケンスは固定され、BαCαDαCαDαCαEαBβCβDβCβDβCβDβCβEβである、請求項6に記載の電子システム。
- 各代用ラウンドの出力の左側部分(Li+1)は入力の右側部分(Ri)に等しく、各代用ラウンドの出力の右側部分(Ri+1)は、入力の右側部分(Ri)に適用された変換関数(fKi,f’1Ki,f’2Ki)の結果と排他的論理和(XOR)の演算がなされた入力の左側部分(Li)に等しい、請求項2に記載の電子システム。
- ラウンド(C)が置換変換関数(f’1Ki)を含み、ラウンド(C)が入力のマスキングされた部分(Ri)を使用し、ラウンド(C)が、以下の演算、すなわち、
公開ではないマスク(α,β,γ)との排他的論理和(XOR)演算から成るマスキング/アンマスキングの第1の演算であって、マスキング/アンマスキングの演算は入力のマスキングされた部分(Ri)に適用され、
変換関数(fKi)と同じ計算を行うが、入力が、マスキング/アンマスキングの第1の演算の結果に対応する、第2の演算
に基づいて構築される、請求項8に記載の電子システム。 - ラウンド(B)が、その出力をマスキングする置換変換関数(f’2Ki)を含み、ラウンド(B)が入力のマスキングされていない部分(Ri)を使用し、ラウンド(B)は、以下の演算、すなわち、
変換関数(fKi)と同じ計算を行う第1の演算であって、入力が前記入力のマスクされていない部分(Ri)に等しいが、第1の演算の結果が第2のマスキング/アンマスキング演算により続いてマスキングされる第1の演算、
非公開のマスク(α,β,γ)との排他的論理和(XOR)演算から成る第2のマスキング/アンマスキング演算
に基づいて構築される、請求項8に記載の電子システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0202918 | 2002-03-07 | ||
FR0202918 | 2002-03-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003573822A Division JP2005519527A (ja) | 2002-03-07 | 2003-03-04 | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011101413A JP2011101413A (ja) | 2011-05-19 |
JP5184659B2 true JP5184659B2 (ja) | 2013-04-17 |
Family
ID=27772038
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003573822A Withdrawn JP2005519527A (ja) | 2002-03-07 | 2003-03-04 | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 |
JP2011005165A Expired - Fee Related JP5184659B2 (ja) | 2002-03-07 | 2011-01-13 | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003573822A Withdrawn JP2005519527A (ja) | 2002-03-07 | 2003-03-04 | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8582774B2 (ja) |
EP (1) | EP1486026A1 (ja) |
JP (2) | JP2005519527A (ja) |
CN (1) | CN1640051B (ja) |
AU (1) | AU2003207931A1 (ja) |
WO (1) | WO2003075506A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4936996B2 (ja) * | 2007-05-24 | 2012-05-23 | 株式会社東芝 | 非線形データ変換器、暗号化装置、および復号装置 |
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
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. |
FR2941342B1 (fr) * | 2009-01-20 | 2011-05-20 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve. |
KR101026439B1 (ko) * | 2009-07-20 | 2011-04-07 | 한국전자통신연구원 | Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 |
EP3300291A1 (en) * | 2016-09-27 | 2018-03-28 | Gemalto SA | Method to counter dca attacks of order 2 and higher |
EP3422176A1 (en) * | 2017-06-28 | 2019-01-02 | Gemalto Sa | Method for securing a cryptographic process with sbox against high-order side-channel attacks |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2638869B1 (fr) * | 1988-11-10 | 1990-12-21 | Sgs Thomson Microelectronics | Dispositif de securite contre la detection non autorisee de donnees protegees |
US5317638A (en) * | 1992-07-17 | 1994-05-31 | International Business Machines Corporation | Performance enhancement for ANSI X3.92 data encryption algorithm standard |
US5493240A (en) * | 1995-03-01 | 1996-02-20 | International Business Machines Corporation | Static combinatorial logic circuits for reversible computation |
DE69527773T2 (de) * | 1995-05-18 | 2002-11-28 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Schaltungsanordnung zur Überwachung der Benutzung von Funktionen in einem integrierten Schaltungkreis |
EP0743603B1 (en) * | 1995-05-18 | 2002-10-02 | Hewlett-Packard Company, A Delaware Corporation | Integrated circuit device for use in the protection of multiple resources in an electronic assembly |
CA2164768C (en) * | 1995-12-08 | 2001-01-23 | Carlisle Michael Adams | Constructing symmetric ciphers using the cast design procedure |
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 |
FR2745924B1 (fr) * | 1996-03-07 | 1998-12-11 | Bull Cp8 | Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre |
CN2319858Y (zh) * | 1997-08-25 | 1999-05-19 | 北京市润飞机电公司 | 用于计算机软件保护的智能算法加密装置 |
WO1999067909A2 (en) * | 1998-06-03 | 1999-12-29 | Cryptography Research, Inc. | Secure modular exponentiation with leak minimization for smartcards and other cryptosystems |
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
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 |
JP3679936B2 (ja) * | 1998-11-27 | 2005-08-03 | 東芝ソリューション株式会社 | 暗復号装置及び記憶媒体 |
US7162031B1 (en) * | 1998-12-30 | 2007-01-09 | Nokia Corporation | Method and device for cryptographically processing data |
US7092523B2 (en) * | 1999-01-11 | 2006-08-15 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
CA2258338C (en) | 1999-01-11 | 2009-02-24 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
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 |
JP2000305453A (ja) * | 1999-04-21 | 2000-11-02 | Nec Corp | 暗号化装置,復号装置,および暗号化・復号装置 |
US6804782B1 (en) * | 1999-06-11 | 2004-10-12 | General Instrument Corporation | Countermeasure to power attack and timing attack on cryptographic operations |
US6295606B1 (en) * | 1999-07-26 | 2001-09-25 | Motorola, Inc. | Method and apparatus for preventing information leakage attacks on a microelectronic assembly |
JP4671571B2 (ja) * | 1999-09-29 | 2011-04-20 | 株式会社日立製作所 | 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ |
AU773982B2 (en) * | 1999-10-25 | 2004-06-10 | Cyphermanx Consultants Limited | Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals |
FR2802741B1 (fr) | 1999-12-15 | 2003-10-31 | Sagem | Dispositif mettant en oeuvre un algorithme de chiffrage par bloc a repetition de rondes |
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 |
FR2820577B1 (fr) * | 2001-02-08 | 2003-06-13 | St Microelectronics Sa | Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede |
FR2820576B1 (fr) * | 2001-02-08 | 2003-06-20 | St Microelectronics Sa | Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
US7092474B2 (en) * | 2001-09-18 | 2006-08-15 | Broadcom Corporation | Linear phase detector for high-speed clock and data recovery |
EP1449045A2 (en) * | 2001-11-14 | 2004-08-25 | International Business Machines Corporation | Device and method with reduced information leakage |
-
2003
- 2003-03-04 CN CN03805272.5A patent/CN1640051B/zh not_active Expired - Fee Related
- 2003-03-04 JP JP2003573822A patent/JP2005519527A/ja not_active Withdrawn
- 2003-03-04 WO PCT/IB2003/000946 patent/WO2003075506A1/en active Application Filing
- 2003-03-04 EP EP03704934A patent/EP1486026A1/en not_active Withdrawn
- 2003-03-04 US US10/506,851 patent/US8582774B2/en not_active Expired - Fee Related
- 2003-03-04 AU AU2003207931A patent/AU2003207931A1/en not_active Abandoned
-
2011
- 2011-01-13 JP JP2011005165A patent/JP5184659B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20100272264A1 (en) | 2010-10-28 |
WO2003075506A1 (en) | 2003-09-12 |
CN1640051A (zh) | 2005-07-13 |
AU2003207931A1 (en) | 2003-09-16 |
CN1640051B (zh) | 2011-05-18 |
JP2011101413A (ja) | 2011-05-19 |
JP2005519527A (ja) | 2005-06-30 |
US8582774B2 (en) | 2013-11-12 |
EP1486026A1 (en) | 2004-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5184659B2 (ja) | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 | |
KR102628466B1 (ko) | 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 | |
Mouha et al. | Differential and linear cryptanalysis using mixed-integer linear programming | |
CN107005404B (zh) | 实现密码算法的可执行的白盒掩码实施的处理器装置 | |
EP2290872B1 (en) | Device for generating a message authentication code for authenticating a message | |
US8971526B2 (en) | Method of counter-measuring against side-channel attacks | |
EP3469762B1 (en) | Device and method to compute a block cipher | |
RU2603550C2 (ru) | Устройство обработки данных, способ обработки данных и программа | |
JP2008516502A (ja) | 命令の暗号セットを自動的に生成する方法および装置ならびにコード生成 | |
Jati et al. | Threshold Implementations of $\mathtt {GIFT} $: A Trade-Off Analysis | |
CN109726565B (zh) | 在抗泄漏原语中使用白盒 | |
Dobraunig et al. | Fault attacks on nonce-based authenticated encryption: Application to keyak and ketje | |
US11502846B2 (en) | Whitebox computation of keyed message authentication codes | |
KR102169369B1 (ko) | 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치 | |
Huang et al. | What is the effective key length for a block cipher: an attack on every practical block cipher | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
JP6793822B2 (ja) | テーブルベースの実装への2次以上のdca攻撃に対抗する方法 | |
Martinasek et al. | Crucial pitfall of DPA Contest V4. 2 implementation | |
KR101203474B1 (ko) | 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법 | |
JP2019504343A (ja) | 計算デバイス及び方法 | |
JP2006054568A (ja) | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム | |
Kumar et al. | SHC: 8-bit Compact and Efficient S-Box Structure for Lightweight Cryptography | |
Elbaz-Vincent et al. | SPAE a mode of operation for AES on low-cost hardware | |
Rigot | Útoky na white-box AES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20121225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130116 |
|
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: 20160125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |