JP4828526B2 - 暗号計算を実行するための方法及び装置 - Google Patents

暗号計算を実行するための方法及び装置 Download PDF

Info

Publication number
JP4828526B2
JP4828526B2 JP2007515982A JP2007515982A JP4828526B2 JP 4828526 B2 JP4828526 B2 JP 4828526B2 JP 2007515982 A JP2007515982 A JP 2007515982A JP 2007515982 A JP2007515982 A JP 2007515982A JP 4828526 B2 JP4828526 B2 JP 4828526B2
Authority
JP
Japan
Prior art keywords
masked
data block
bit
algorithm
linear
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
Application number
JP2007515982A
Other languages
English (en)
Other versions
JP2008502931A (ja
Inventor
エマニュエル・ドタックス
エルベ・シャバンヌ
ヴィンセント・カルリエ
Original Assignee
モルフォ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by モルフォ filed Critical モルフォ
Publication of JP2008502931A publication Critical patent/JP2008502931A/ja
Application granted granted Critical
Publication of JP4828526B2 publication Critical patent/JP4828526B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • H04L2209/046Masking 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

本発明は暗号の分野に関し、特に、暗号アルゴリズムによって用いられるキーの秘密性の保護に関するものである。それを、暗号または解読機能に対するその非制限的な応用において以下に説明する。
暗号のためのアルゴリズム、すなわち、それぞれ解読のためのまたは再度暗号化するためのアルゴリズムは、データを暗号化すること、それぞれ解読化することを目的としている。このようなアルゴリズムは、幾つかの動作または計算を一緒にしたチェーニングを一般的に含んでおり、該チェーニングは、暗号化されたデータ項目を得るように暗号化されるべきであるデータ項目に連続的に適用される。これらのアルゴリズムは秘密キーを用いる。
このような暗号アルゴリズムは、用いられるキーの秘密性を侵害することを目的とする“アタック(attacks)”からの不利益をこうむり得る。今日では、多くの種類のアタックが知られている。
このように、或るアタックは、暗号アルゴリズムの実行中に検出される情報漏れに基づいている。これらのアタックは、一般に、データ項目の及びキーまたは複数のキーの、暗号アルゴリズムによる処理中に検出される情報漏れ間の(現在の、電磁放射計算時間等の消費を分析することによるアタック)相関に基づいている。
このようなアタックに対する保護のための手順が知られている。一般に用いられている該保護手順の1つは、暗号または解読アルゴリズムによって操作される中間データのランダムなマスキングである。この種の保護においては、入力データはランダム値によってマスキングされる。このように、アルゴリズムにおいて行われる動作から帰結する中間データは、キーまたは複数のキーとは相関され得ない。
暗号アルゴリズムの秘密キーの秘密性を侵害(妨害)することを目的とするアタックは、解読アルゴリズムの秘密キーの秘密性を侵害(妨害)することを目的とするアタックと類似している。以下のセクションにおいては、解読アルゴリズムとの関係で説明される特徴は、解読アルゴリズムとも関係している。
暗号アルゴリズムは、一般に、幾つかの線形及び/または非線形動作を含む。暗号化されるべき初期のデータ項目に対して、中間データ項目が、暗号アルゴリズムの動作の各々の後に得られる。マスキングされた中間データが操作されるとき、マスキングされた中間データ項目が、各動作の後に得られる。暗号アルゴリズムはこのように保護される。
しかしながら、データ項目を“デマスキング(demasking)”することによってこれらの動作の各々の後に、マスキングされない(unmasked)中間データを回復することは、有用である。線形動作から帰結する中間データ項目をデマスキングすることは容易である。特に、ランダムなマスクmで排他的論理和によりマスキングされたデータ項目xに与えられる線形動作Lは、以下の形式で書かれ得る:
Figure 0004828526
このように、mを知れば、L(x)を得るために、
Figure 0004828526
をデマスキングすることは容易である。
非線形動作に対しては、全く状況が異なる。特に、ランダムなマスクmで排他的論理和によりマスキングされたデータ項目xに与えられる非線形動作Fに対しては、一般に、以下のように書くことが可能である:
Figure 0004828526
暗号アルゴリズムによって操作される中間データ項目をデマスキングするために、保護されるべき暗号アルゴリズムに依存して、複雑で高価であり得る一連の計算を行うことが必要である。
DES(“データ暗号基準”)アルゴリズムまたは他にはAES(“進歩した暗号基準”)アルゴリズムのような非線形動作を用いた暗号アルゴリズムが知られている。AESアルゴリズムのマスキングによる保護の幾つかの方法は、既に提案されてきている。
このようなアルゴリズムにおいては、非線形動作は置換テーブルの形態で一般には履行される。従って、データ項目xに与えられる、置換テーブルのタブ[i]に対応する非線形動作は、以下の形態で書かれ得る:
Figure 0004828526
この場合におけるマスキングによる保護は、ランダムにマスキングされたテーブルを急いで生成することが必要である。従って、ランダムなマスクm1によってマスキングされたデータ項目xに与えられる、マスキングされた置換テーブルのタブ’[i]に対応するマスキングされた非線形動作は、以下の形式で書かれ得る。
Figure 0004828526
このようにして得られたデータ項目y’をデマスキングすることができるために、1つの解決法は、マスキングされたテーブルを記憶することにある。この種の保護手順は、Louis Goubin 及びJaques Patarinによる文献‘DES及び差動パワー分析―“複製” 方法(DES and Differential Power Analysis − The “Duplication” Method)’において、編集者Cetin Kaya Koc及びChristof PaarにおけるProceedings of CHES’99、‘コンピュータサイエンスにおける講演録’の第1717巻、ページ158―172、Springer−Verlag、2000において、並びにフランス特許FR280274 1の‘Desipositif mettant en oeuvre un algorithme de chiffrage par bloc a repetition de rondes’ [ラウンドの繰返しを有するブロックワイズの暗号アルゴリズムを履行する装置]において、DES暗号アルゴリズムに対して提案されている。
しかしながら、このような解決法は、記憶余地に関して極端に高価であることが分かり、特に、マスキングされない(unmasked)置換テーブルが比較的大きいサイズのものであるときには、一層高価なものであることが分かり得る。
例えば、AESの非線形動作は、256バイトのサイズを有する置換テーブルを用いて履行され得る。メッセージの16バイトの同時暗号化は、256バイトの各々の16のマスキングされた置換テーブルの記憶を必要とする。このように履行される非線形動作をマスキングするために必要とされるメモリのサイズは結果的に4kbである。
従って、この種の保護の欠点は、それが必然的なメモリ・サイズを必要とすることである。
また、2004年3月4日に発行された、Johannes Blomer、Guarjardo Merchan、及びVolker Krumelによる文献‘Provably Secure Masking of AES’、並びに、AESアルゴリズムの非線形動作が、有限のフィールドGF(4)において実行されるということを提案している、2004年6月4日付けの、E、Oswald、Stephan Mangard及びNorbert Pramstallerの文献‘Secure and Efficient Masking of AES−A Mission Impossible’のバージョン1も知られている。
後者の論文は、中間マスキングされたデータ項目の非線形動作が、1つの有限フィールド(GF(2))からもう1つの(GF(4))への置き換えによって線形動作に変換されるという、AESアルゴリズムの動作をマスキングするための手順を提案している。
しかしながら、AESのマスキングのこのような方法は、非線形動作がGF(4)において実行され、従って、ビットは2×2で操作されるということを提案している。
一般に、マイクロプロセッサによって同時に処理されるビットの数とは実質的に非常に異なっているサイズのビットのブロックで実行される動作よりもむしろ、用いられるマイクロプロセッサによって同時に処理されるビットの数と実質的に等しいサイズのビットのブロックで実行される動作を効果的に履行することが一層容易である。
2×2のビットを操作する暗号アルゴリズムの効果的な履行は、8、16、32または64ビットのマイクロプロセッサでさえ容易ではない。
本発明は、これらの欠点を軽減するための解決策を提案することを目的としている。
本発明の第1の態様は、2よりも大きい整数であるkのビットのデータ・ブロック上で特定される少なくとも1つの非線形動作を含む決定された暗号アルゴリズムに従って、電子部品における暗号計算を実行する方法であって、
kビットの初期のデータ・ブロックから、kよりも小さい整数であるjのビットの幾つかのマスキングされた中間のデータ・ブロックを生成する段階と、
jビットの変更されたデータ・ブロックを生成する2エントリを有する置換テーブルにより、jビットのマスキングされた中間のデータ・ブロックの少なくとも1つに、非線形動作を適用する段階と、
jビットの変更されたデータ・ブロック及びjビットの前記マスキングされた中間のデータ・ブロックの少なくとも或るものを、前記特定された非線形動作を含む変換を通して、kビットの初期のデータ・ブロックに対応するkビットの結果のブロックに結合する段階と、
を含む方法を提案している。
このように、サイズjの幾つかの中間のデータ・ブロックを生成することにより、サイズjのデータ・ブロックに関するサイズkのデータ・ブロック上に特定される非線形動作を行うことが可能であり、該サイズは、サイズkのデータ・ブロックからビットで表現される。中間のデータ・ブロックを操作してしまった後、そして、特に、非線形動作を適用した後、このようにして得られたデータ・ブロックは、初期のデータ・ブロックの変換に対応するサイズkのデータ・ブロックを回復するために結合される。この変換は、特定の非線形動作を含む。また、それは、アルゴリズムの他の動作をも含む。特に、kビットのデータ・ブロックを再度得るためにこれらのブロックを結合する前に、kビットのデータ・ブロックよりもむしろ、jビットのデータ・ブロックに関するアルゴリズムの他の動作を行うことが有利であり得る。
初期のデータ・ブロックから幾つかの中間のデータ・ブロックを生成するステップは、以下のセクションで詳細にするように、幾つかのステップを含み得る。従って、長所的には、アルゴリズムによって暗号化されるべき初期のデータ・ブロックよりも小さいサイズのデータ・ブロックが操作される。それ故、暗号アルゴリズムに含まれる特定された非線形動作は、一層小さいサイズの中間のデータ・ブロックに適用され得、従って、中間のデータ・ブロックに適用される非線形動作に対応する置換テーブルは、初期のデータ・ブロックに適用されるアルゴリズムの特定された非線形動作に対応するであろう置換テーブルのサイズよりも厳密に小さいサイズのものである。
これらの提供のおかげで、特にこの非線形動作が比較的大きいサイズの置換テーブルに対応するであろう場合において、非線形動作を含む暗号アルゴリズムの暗号計算をマスキングすることにより保護することが可能である。
マスキング・ステップは、長所的には、中間のデータ・ブロックを生成することにあるステップの前に初期のデータ・ブロックに関して行われるか、または、中間のデータ・ブロックに関して行われるか、のいずれかに関して行われ得る。
本発明の実施形態において、生成する段階は、kビットのデータ・ブロックをjブロックのデータ・ブロック(b、c)に分解することから成る分解動作(T)を含み、結合する段階は、jビットのデータ・ブロック(B、C)からkビットのデータ・ブロック(a’)を構成することにある逆分解動作(T−1)を含む。
本発明の実施形態において、暗号計算は、さらに、少なくとも1つの線形動作を含み、マスキングされた線形動作は、分解動作Tの前にまたは逆分解動作T−1の後に行われる。この場合において、暗号アルゴリズムが非線形動作の前に線形動作を含むとき、分解動作Tが線形動作の後に行われる。暗号アルゴリズムが非線形動作の後に線形動作を含むとき、逆分解動作T−1が線形動作の前に行われる。
もう1つの実施形態において、暗号アルゴリズムが線形動作を含むとき、これらのマスキングされた線形動作は、分解動作Tの後に及び逆分解動作T−1の前に行われる。このように、暗号アルゴリズムがラウンドの繰返しを有するアルゴリズムであり、ラウンドの各々が少なくとも1つの線形動作及び少なくとも1つの非線形動作を含むとき、各ラウンドは、分解動作Tの後に、及び分解動作T−1の前に行われる。
また、分解動作Tを暗号アルゴリズムの開始において与え、そして逆分解動作T−1を暗号アルゴリズムの終りにおいて与えることが可能である。従って、このようなアルゴリズムがラウンドの繰返しを有する暗号アルゴリズムであるとき、アルゴリズムのすべてのラウンドのすべての動作は、初期のデータ・ブロックのサイズよりも厳密に小さいサイズのブロックを操作することにより行われる。
図2は、AESタイプのアルゴリズムに適用されるかかる実施形態を示す。このように、暗号化201されるべきサイズkのデータ・ブロックは、分解動作Tにより、サイズjの暗号化されるべき幾つかの中間のデータ・ブロック(202)に分解される。サイズkのデータ・ブロックに対して特定されるAESタイプのアルゴリズムのものと等価であるマスキング203によって保護される動作は、次に、サイズjの中間のデータ・ブロックに適用される。暗号化された中間のデータ・ブロック204が得られる。次に、逆分解動作T−1が、サイズkの暗号化されたデータ・ブロック205を得るために適用される。従って、このような実施形態は、アルゴリズムの動作の変更を必要とし、それ故、それらは中間のデータ・ブロックに適用可能である。
マスキングされた中間のデータ・ブロックを生成する段階は、サイズjのマスキングされたデータ・ブロック及びランダム・マスクを入力として取って2つのマスキングされないデータ・ブロックのマスキングされた積を提供するマスキングされた乗算アルゴリズムに従って行われるマスキングされた加算及びマスキングされた乗算を含み得る。
中間のデータ・ブロック及び変更されたデータ・ブロックを結合する段階は、サイズjのマスキングされたデータ・ブロック及びランダム・マスクを入力として取って2つのマスキングされないデータ・ブロックのマスキングされた積を提供するマスキングされた乗算アルゴリズムに従って行われるマスキングされた加算及びマスキングされた乗算を同様に含み得る。
以下のセクションにおいて詳細に説明するように、初期のデータ・ブロックが1バイトのサイズを有するとき、そして特定された非線形動作が、AESタイプのアルゴリズムにおけるように、256バイトに等しいサイズの置換テーブルによって履行され得るとき、8バイトのサイズを有する置換テーブルを用いて、中間のデータ・ブロックに非線形動作を適用することが長所的に可能である。
本発明の実施形態において、非線形動作は全単射(bijective: バイジェクティブ)であって、非ヌル要素に対して、有限フィールドにおける逆数である。好ましくは、規約により、この動作は、要素0から要素0にマッピングする。
本発明の実施形態において、サイズkの初期のデータ・ブロックの決定された数を含むメッセージを入力として取る暗号アルゴリズムは、初期データ・ブロックの各々を順次的に処理する。このように、置換テーブルが、各初期のデータ・ブロックごとに生成されて記憶され、そして次に、各データ・ブロックは次々に処理される。
本発明のもう1つの実施形態において、暗号アルゴリズムは、入力メッセージのデータ・ブロックのすべてを同時に処理する。このように、置換テーブルは、メッセージの初期のデータ・ブロックの各々に対して、同時に生成されて記憶され、次に、メッセージの前記データ・ブロックは同時に処理される。ブロックのこのタイプの同時処理は、データ・ブロックの順次処理よりも一層大きいサイズのメモリ領域を必要とする。このようなコンテクストにおいて、以下のセクションで詳細に説明するように、本発明によって提案されるように非線形動作に対応する置換テーブルを減少することが非常に有利であることが分かる。
本発明の実施形態において、初期のデータ・ブロックは、暗号アルゴリズムの開始点において生成される置換テーブルを、暗号アルゴリズムの非線形動作が行われる時間ごとに用いて処理される。このように、同じ置換テーブルが、暗号アルゴリズムにより初期のデータ・ブロックの処理を通して用いられる。
各マスキングされた非線形動作の前に置換テーブルを生成して記憶することも可能である。この実施形態においては、新しい置換テーブルが、非線形動作の各適用の前に用いられる。
このようなアルゴリズムは、各々が線形動作及び少なくとも1つの非線形動作を含む幾つかのラウンドを通常は含んでいる。このようなアルゴリズムにおける計算の実行の最も頻繁なアタックは、最初のラウンドの及び最後のラウンドの実行中の情報漏れに基づいており、その理由は、暗号化されるべきデータ・ブロック及び暗号化されたデータ・ブロックに近いデータ・ブロックを操作するのがラウンドであるからである。従って、これらのアタックからこのようなアルゴリズムを保護するために、最初のラウンドまたはラウンド達において及び/または最後のラウンドまたはラウンド達において操作されるデータ・ブロックをマスキングすることが可能である。それ故、少なくとも最初のラウンド及び少なくとも最後のラウンドに対して置換テーブルを生成して記憶することが有利であり得る。
本発明の第2の態様は、2よりも大きい整数であるkのビットのデータ・ブロック上で特定される少なくとも1つの非線形動作を含む決定された暗号アルゴリズムに従って、暗号計算を実行するための電子部品であって、
kビットの初期のデータ・ブロックから、kよりも小さい整数であるjのビットの幾つかのマスキングされたブロックを生成するための手段と、
jビットの変更されたデータ・ブロックを生成する2エントリを有する置換テーブルにより、jビットのマスキングされたブロックの少なくとも1つに、非線形動作を適用するための手段と、
jビットの変更されたブロック及びjビットの前記マスキングされたブロックの少なくとも或るものを、前記特定された非線形動作を含む変換を通して、kビットの初期のデータ・ブロックに対応するkビットの結果のブロックに結合するための手段と、
を備えた電子部品を提案している。
これらの提供のおかげで、マスキングされたデータ・ブロックを操作することにより、及び256バイトに等しいサイズのマスキングされた置換テーブルの代わりに8バイトに等しいサイズのマスキングされた置換テーブルを用いることにより、非線形動作を含むAESタイプの暗号アルゴリズムを用いた電子部品を、情報漏れ検出アタックから保護することが可能である。
それ故、暗号アルゴリズムを保護するこのような方法は、比較的小さいメモリ・サイズを必要とする。従って、それは、比較的小さいサイズのメモリ領域を呈する暗号電子部品において用いられ得る。
さらに、本発明の実施形態においては、サイズ4ビットの中間データ・ブロックが操作される。このようなサイズは、一層小さいサイズのデータ・ブロックが操作されるときよりも実行するのが一層容易である効果的な履行を許容する。
本発明の他の観点、目的及び長所はその実施形態の1つの説明を読めば明瞭となるであろう。
本発明は、また、添付図面の助けを借りて一層良好に理解されるであろう。
本発明の実施形態においては、サイズkの初期のデータ・ブロックから、kよりも厳密に(はっきりと)少ないサイズの幾つかのデータ・ブロックを生成するよう、有限フィールド(Galoisフィールド(ガロア域)(GF))の既知の数学的特性を用いている。本発明の実施形態は、16バイトからなるメッセージを入力として取る、AESタイプの暗号アルゴリズムをマスキングすることによって保護するよう説明されており、バイトの各々は、一連の線形動作及び少なくとも1つの非線形動作を各々が含むラウンド(rounds)の繰返しによって処理される。本発明は、ラウンドの繰返しがあろうと無かろうと、少なくとも1つの非線形動作を含む暗号アルゴリズムの他のタイプを包含する。
AESタイプのアルゴリズムにおいては、非線形動作は、有限フィールドGF(2)における、非ヌル要素のための逆数(multiplicative inversion)に対応する。従って、データ・ブロックから、厳密に一層小さいサイズの幾つかの中間データ・ブロックを生成するために、線形動作がフィールドGF(2)からフィールドGF((2)に置き換えられるということが提案されている。
Tsing−Fu Ling、Chih―Pin Su、Chih−Tsun Huang、及びCheng−Wen Wuによる文献‘A high−throughput low−cost AES cipher chip’、また、Vincent Rijmenによる文献‘Efficient implementation of the Rijndael S−box’、及びAtri Rudra、Pradeep K. Dubey、Charanjit S. Jutla、Vijay Kumar、Josyula R. Rao、及びPankaj rohatgiによる文献‘Efficient Rijndael Encryption Implementation with Composite Field Arithmetic’、そして次にR.W. Ward 及びT.C.A Moltenoによる文献‘Efficient hardware caluclation of inversion in GF(2)’は、AESアルゴリズムの線形動作が如何にして合成フィールドGF((2)に移送され得るかを示すものとして、並びにこのような置き換えが暗号アルゴリズムの性能を改善することを可能とするということを示すものとして知られている。
従って、従来は、AESは、16バイトからなるメッセージを入力として取る。幾つかのラウンドが、これらのバイトの各々に与えられ、各ラウンドは主秘密キーから導出されるサブキーを用いる。AESは一般に以下の動作を含む:
― 入力メッセージの16バイトの各々に与えられる、8ビットから8ビットへの置換テーブルに対応する、SubBytesとして通常参照される線形動作;
― サブキーの16バイトと入力メッセージの16バイトとの間に与えられる、AddRoundKeyとして通常参照される線形排他的論理和動作;
― 16バイトに与えられる摂動に対応する、ShiftRowsとして通常参照される線形動作;
― 16バイトに与えられる混合コラムとして通常参照される線形動作。
AESアルゴリズムのSubBytes動作は、有限フィールドGF(2)において、非ヌル要素のために、逆数に対応する非線形動作を含む。このような動作は、合成フィールドGF((2)に移送され得、これにより、サイズ4ビットのデータ・ブロックが、バイトを操作する他の動作のための逆分解動作T−1を実行する前に、操作される。
GF(2)及びフィールド多項式の表示を以下のように選択する。
Figure 0004828526
D及びEは有限フィールドGF(2)の要素である。
それ故、以下のように書くことができる。
Figure 0004828526
図1は、本発明の実施形態を示す。
以下のように書くことができる分解動作T 102を構成する:
Figure 0004828526
ここに、aはGF(2)の要素であり、(bx+c)は、GF((2)の要素であり、b及びcは、有限フィールドGF(2)の要素である。
この分解動作Tは、1つのバイトに等しいサイズのデータ・ブロックaから、4ビットに等しいサイズの中間のデータ・ブロックb及びcを生成する。
この分解動作は、8×8行列との乗算の形態で履行され得る。
この分解動作の後に、操作されたデータ・ブロックは、初期の8ビット・ブロックのサイズよりも厳密に(はっきりと)一層小さい、サイズ4ビットの中間のデータ・ブロックである。
このような分解動作Tは,最初の非線形動作に対応する置換テーブルのサイズを減少することができるような方法で操作されるデータ・ブロックのサイズを減少することが可能である。従って、それは、非線形動作を行う前に行われる。しかしながら、それは、暗号アルゴリズムの種々のステップにおいて行われ得る。このように、入力メッセージの16バイトの各々上で、この分解動作は、アルゴリズムの開始点において、または、アルゴリズムのラウンドの各々の開始点において、もしくは、他には非線形動作の各アプリケーションの前でのいずれかにおいて行われ得る。
本発明は、この分解動作が行われるアルゴリズム・ステップがある場合の実施形態をも包含する。
次に、置換テーブルを用いた線形動作が行われてしまったとき、有限フィールドGF(2)に復帰するために、逆分解動作T−1を行って、再度バイトを操作することが可能である。
本発明は、逆分解動作が行われるアルゴリズム・ステップがある場合の実施形態をも包含する。
分解動作T及び逆分解動作T−1が行われるステップに従って、GF(2)におけるアルゴリズムの他に決定された動作が、有限フィールドGF((2)に適合される。
このように、分解動作Tが非線形動作の前に行われて、次に、逆分解動作T−1が非線形動作の後に行われるならば、アルゴリズムの他の動作を有限フィールドGF((2)に適合させることは必要でない。他方、分解動作Tがアルゴリズムの開始点において行われ、逆分解動作T−1が暗号アルゴリズムの終りで行われる場合には、アルゴリズムの動作のすべては、有限フィールドGF((2)に適合される。暗号アルゴリズムの動作は、次に、有限フィールドGF((2)におけるそれらの等価物によって取って代わられる。
本発明の実施形態において、以下のセクションによって詳細にされるように、AESアルゴリズムの少なくとも最初のラウンドと最後のラウンドに対する非線形動作のときに操作される少なくとも中間のデータ・ブロックをマスキングする(103)。本発明は、また、非線形動作のときに操作される中間のブロックが、アルゴリズムのラウンドのすべてに対してマスキングされるという実施形態を包含し、もしくは、他に、これらのデータ・ブロックがGF(2)の要素であろうとまたはGF((2)の要素であろうと、アルゴリズムの実行中に操作される中間のデータ・ブロックのすべてまたは部分が、マスクイングされるという実施形態を包含する。
本発明の実施形態において、非線形動作は、非ヌル要素のためのGF(2)における逆数である。
有限フィールドGF((2)において、要素(bx+c)の反転は、以下の形態で書かれ得る:
Figure 0004828526
ここに、Δ=bE+bcD+cである。
このように、有限フィールドGF((2)に置き換えられる有限フィールドGF(2)の逆数の第1の非線形動作は、逆数の乗算、加算及び非線形動作に対応する。有限フィールドGF((2)におけるこの非線形動作は、8バイトを占める4ビット置換テーブルに4ビットを通して履行され得る。
説明したように、このように操作されたデータ・ブロックをマスキングすることを望む。加算のマスキングは良く知られている。
乗算をマスキングするために、マスキングされた乗算アルゴリズムM(x、y、z))104が導入される。以下に説明するものにおいて、要素m1、m2、m3、n、n’、n1、n2はランダム・マスクである。このようなアルゴリズムは、入力として以下のものを取る:
― GF(2)のマスキングされた要素
Figure 0004828526
― マスクm3
このようなアルゴリズムは、
Figure 0004828526
の形態におけるマスキングされた積を出力する。
以下のステップが書かれ得る:
Figure 0004828526
本発明の実施形態において、最初の中間のデータ・ブロックがマスキングされる。このようにして、以下の形態で書かれ得る最初のマスキングされた分解を得る:
Figure 0004828526
次に、以下の形態
Figure 0004828526
においてマスキングされた乗算を計算するために、マスキングされた乗算アルゴリズムを用いる。
次に、同じ方法で、ステップ105により、マスキングされたデータ・ブロックΔを得るために以下の積を計算する:
Figure 0004828526
結果的に以下の数式
Figure 0004828526
を得る。
このように、有限フィールドGF(2)において加算及び乗算により、マスキングされたデータ・ブロック
Figure 0004828526
を得、このブロックに対して、逆数の非線形動作が与えられる。
本発明の実施形態において、この非線形動作は、以下の式
Figure 0004828526
を満足する、ステップ106による、マスキングされた置換テーブルtab[x]を用いて、マスキングされたデータ・ブロック上で行われる。
従って、このマスキングされた置換テーブルは、マスキングされたデータ・ブロックの反転、すなわち、
Figure 0004828526
を得ることを可能とする。
マスキングされた乗算アルゴリズムを適用することにより、
Figure 0004828526
を計算する。
このように、マスキングされたデータ・ブロック
Figure 0004828526
を結合する(108)ことにより、Bx+Cを得る。
従って、この非線形動作を行うために、マスキングされないデータ・ブロックb、c及びΔを操作しなければならないということはなく、(bx+c)−1のマスキングされた値を得る。
次に、逆分解動作T−1109が、要素110を得るために行われる。
Figure 0004828526
本発明の実施形態において、Dは、行われるべき乗算の数を減少するように、1に等しく決定される。
従って、長所的には、非線形動作は、有限フィールドGF(2)から有限フィールドGF((2)に置き換えられ、それにおいて、非線形動作は、一層少ない要素を有するフィールドにおける等価の非線形動作の、乗算の、そして加算の、組み合わせに対応する。
従って、減少されたサイズのデータ・ブロック上にこの非線形動作と等価の動作を行うことによって非線形動作を含む暗号計算の実行中の情報漏れを検出することにより、アタックから電子部品を保護することが可能であり、それにより、対応の置換テーブルが減少されたサイズのものであるので、マスキングされたデータ・ブロック上にこれらの計算を行うことを可能とする。
本発明の実施形態による暗号アルゴリズムを保護する方法を示す図である。 本発明の実施形態によるAESタイプの暗号アルゴリズムを保護する方法を示す図である。

Claims (19)

  1. 2よりも大きい整数であるkのビットのデータ・ブロック上で特定される少なくとも1つの非線形動作を含む決定された暗号アルゴリズムに従って、電子部品における暗号計算を行うための方法であって、
    kビットの初期のデータ・ブロック(a)から、kよりも小さい整数であるjのビットの幾つかのマスキングされた中間のデータ・ブロック
    Figure 0004828526
    を生成する段階と、
    2つのマスキングされた中間データ・ブロック
    Figure 0004828526
    を乗算することにより、
    第1のマスキングされたデータ・ブロック
    Figure 0004828526
    を、第2のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m2)により乗算することにより、
    第2のマスキングされたデータ・ブロック
    Figure 0004828526
    を、第1のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m1)により乗算することにより、
    第1のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m1)を、第2のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m2)により乗算することにより、そして
    マスキングされた積
    Figure 0004828526
    を形成するために、マスク(m3)と一緒に、4つの乗算
    Figure 0004828526
    の結果をマスキングすることにより、
    2つの中間のデータ・ブロック(b、c)のマスキングされた積
    Figure 0004828526
    を計算する段階と、
    jビットの変更されたデータ・ブロック
    Figure 0004828526
    を生成する2エントリを有する置換テーブル(106)により、jビットのマスキングされた中間のデータ・ブロック
    Figure 0004828526
    の少なくとも1つに、前記特定された非線形動作に対応する非線形動作Sを適用する段階と、
    jビットの変更されたデータ・ブロック及びjビットの前記マスキングされた中間のデータ・ブロックの少なくとも或るものを、前記特定された非線形動作を含む変換を通して、kビットの初期のデータ・ブロックに対応するkビットの結果のブロック(a’)に結合する段階と、
    を含む方法。
  2. 初期のデータ・ブロックは、中間のデータ・ブロックを生成する段階の前にマスキングされる請求項1に記載の方法。
  3. 中間のデータ・ブロック(103)は、非線形動作を適用する前にマスキングされる請求項1に記載の方法。
  4. 生成する段階は、kビットのデータ・ブロックをjブロックのデータ・ブロック(b、c)に分解することから成る分解動作(T)を含み、結合する段階は、jビットのデータ・ブロック(B、C)からのkビットのデータ・ブロックをkビットのデータ・ブロック(a’)に構成することから成る逆分解動作(T−1)を含む請求項1乃至3のいずれか1項に記載の方法。
  5. 暗号計算は、さらに、少なくとも1つの線形動作を含み、前記マスキングされた線形動作は、分解動作(T)の前にまたは逆分解動作(T−1)の後に行われる請求項4に記載の方法。
  6. 暗号計算は、さらに、線形動作を含み、前記マスキングされた線形動作は、分解動作(T)の後にまたは逆分解動作(T−1)の前に行われる請求項4に記載の方法。
  7. 分解動作(T)は、暗号アルゴリズムの開始において与えられ、逆分解動作(T−1)は、暗号アルゴリズムの終りにおいて与えられる請求項4に記載の方法。
  8. マスキングされた中間のデータ・ブロックを生成する段階は、サイズjのマスキングされたデータ・ブロック及びランダム・マスクを入力として取るマスキングされた乗算アルゴリズムに従って行われるマスキングされた加算及びマスキングされた乗算を含んで、2つのマスキングされないデータ・ブロックのマスキングされた積を提供する請求項1乃至7のいずれか1項に記載の方法。
  9. 中間のデータ・ブロック及び変更されたデータ・ブロックを結合する段階は、サイズjのマスキングされたデータ・ブロック及びランダム・マスクを入力として取るマスキングされた乗算アルゴリズムに従って行われるマスキングされた加算及びマスキングされた乗算を含んで、2つのマスキングされないデータ・ブロックのマスキングされた積を提供する請求項1乃至8のいずれか1項に記載の方法。
  10. データ・ブロックは1バイトのサイズを有し、置換テーブルは8バイトのサイズを有し、そして、非線形動作は全単射(bijective: バイジェクティブ)であって、非ヌル要素に対して、有限フィールドにおける逆数である請求項1乃至9のいずれか1項に記載の方法。
  11. データ・ブロックは、データ・ブロック及びランダム・マスク間で排他的論理和を行うことによりマスキングされる請求項1乃至10のいずれか1項に記載の方法。
  12. 暗号アルゴリズムは、サイズkの初期のデータ・ブロックの決定された数を含むメッセージを入力として取り、そして、前記メッセージの初期データ・ブロックの各々に対して順次的に、置換テーブルが生成されて記憶され、そして次に、前記データ・ブロックが処理される請求項1乃至11のいずれか1項に記載の方法。
  13. 置換テーブルは、メッセージの初期のデータ・ブロックの各々に対して、同時に生成されて記憶され、次に、メッセージのデータ・ブロックは同時に処理される請求項12に記載の方法。
  14. データ・ブロックは、暗号アルゴリズムの開始点において生成される置換テーブルを、暗号アルゴリズムの動作のすべてに対して用いて暗号化される請求項12または13に記載の方法。
  15. 各マスキングされた非線形動作の前に置換テーブルが生成される請求項12または13に記載の方法。
  16. アルゴリズムは、ラウンドの決定された数を含み、少なくとも最初のラウンド及び少なくとも最後のラウンドに対して置換テーブルが生成されて記憶される請求項12または13に記載の方法。
  17. 暗号アルゴリズムは、AESである請求項1乃至16のいずれか1項に記載の方法。
  18. 2よりも大きい整数であるkのビットのデータ・ブロック上で特定される少なくとも1つの非線形動作を含む決定された暗号アルゴリズムに従って、暗号計算を行うための電子部品であって、
    kビットの初期のデータ・ブロックから、kよりも小さい整数であるjのビットの幾つかのマスキングされたブロックを生成するための手段と、
    2つのマスキングされた中間データ・ブロック
    Figure 0004828526
    を乗算することにより、
    第1のマスキングされたデータ・ブロック
    Figure 0004828526
    を、第2のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m2)により乗算することにより、
    第2のマスキングされたデータ・ブロック
    Figure 0004828526
    を、第1のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m1)により乗算することにより、
    第1のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m1)を、第2のマスキングされたデータ・ブロック
    Figure 0004828526
    のマスク(m2)により乗算することにより、そして
    マスキングされた積
    Figure 0004828526
    を形成するために、マスク(m3)と一緒に、4つの乗算
    Figure 0004828526
    の結果をマスキングすることにより、
    2つの中間のデータ・ブロック(b、c)のマスキングされた積
    Figure 0004828526
    を計算するための手段と、
    jビットの変更されたデータ・ブロックを生成する2エントリを有する置換テーブルにより、jビットのマスキングされたブロックの少なくとも1つに、前記特定された非線形動作に対応する非線形動作Sを適用するための手段と、
    jビットの変更されたブロック及びjビットの前記マスキングされたブロックの少なくとも或るものを、前記特定された非線形動作を含む変換を通して、kビットの初期のデータ・ブロックに対応するkビットの結果のブロックに結合するための手段と、
    を備えた電子部品。
  19. 暗号アルゴリズムは、AESである請求項18に記載の電子部品。
JP2007515982A 2004-06-18 2005-06-06 暗号計算を実行するための方法及び装置 Expired - Fee Related JP4828526B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0406678 2004-06-18
FR0406678A FR2871969B1 (fr) 2004-06-18 2004-06-18 Procede et dispositif d'execution d'un calcul cryptographique
PCT/FR2005/001376 WO2006008355A1 (fr) 2004-06-18 2005-06-06 Procede et dispositif d'execution d'un calcul cryptographique

Publications (2)

Publication Number Publication Date
JP2008502931A JP2008502931A (ja) 2008-01-31
JP4828526B2 true JP4828526B2 (ja) 2011-11-30

Family

ID=34947876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007515982A Expired - Fee Related JP4828526B2 (ja) 2004-06-18 2005-06-06 暗号計算を実行するための方法及び装置

Country Status (9)

Country Link
US (1) US8199909B2 (ja)
EP (1) EP1757009B1 (ja)
JP (1) JP4828526B2 (ja)
CN (1) CN101006677B (ja)
AU (1) AU2005263805B2 (ja)
CA (1) CA2570617C (ja)
FR (1) FR2871969B1 (ja)
RU (1) RU2357365C2 (ja)
WO (1) WO2006008355A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2899751B1 (fr) * 2006-04-10 2008-07-04 Oberthur Card Syst Sa Procede de traitement cryptographique de donnees, dispositif et programme associes
US7860240B2 (en) * 2007-06-29 2010-12-28 Intel Corporation Native composite-field AES encryption/decryption accelerator circuit
EP2218208B1 (fr) * 2007-12-13 2011-06-15 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes
FR2935503A1 (fr) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protection d'un algorithme de chiffrement
FR2948792B1 (fr) * 2009-07-30 2011-08-26 Oberthur Technologies Procede de traitement de donnees protege contre les attaques par faute et dispositif associe
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
JP5822757B2 (ja) * 2012-02-28 2015-11-24 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
US9143325B2 (en) * 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
CN104219045B (zh) * 2013-06-03 2018-11-09 中国科学院上海高等研究院 Rc4 流密码生成器
RU2580018C2 (ru) * 2014-05-26 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ определения маски зашифрованной области диска
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
NL2015599B1 (en) 2015-10-12 2017-05-02 Koninklijke Philips Nv A cryptographic device and an encoding device.
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3475825B1 (en) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
US11227065B2 (en) * 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
US10922494B2 (en) * 2018-12-11 2021-02-16 Mitel Networks Corporation Electronic communication system with drafting assistant and method of using same
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
CN115001728B (zh) * 2021-06-28 2024-01-23 河南科家创新科技集团有限公司 一种计算机前端处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
JP2005534973A (ja) * 2002-08-06 2005-11-17 ディスクレティックス・テクノロジーズ・リミテッド 有限体内でデータを操作する方法および装置
JP2006517036A (ja) * 2003-02-06 2006-07-13 ディスクレティックス・テクノロジーズ・リミテッド マスクされたデータを操作する装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69635651T2 (de) * 1995-09-05 2006-09-07 Mitsubishi Denki K.K. Vorrichtung und Verfahren zur Datenumwandlung
DE69721439T2 (de) * 1996-05-20 2004-03-18 Koninklijke Philips Electronics N.V. Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005534973A (ja) * 2002-08-06 2005-11-17 ディスクレティックス・テクノロジーズ・リミテッド 有限体内でデータを操作する方法および装置
JP2006517036A (ja) * 2003-02-06 2006-07-13 ディスクレティックス・テクノロジーズ・リミテッド マスクされたデータを操作する装置及び方法
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法

Also Published As

Publication number Publication date
FR2871969B1 (fr) 2006-12-01
RU2007101704A (ru) 2008-07-27
JP2008502931A (ja) 2008-01-31
CA2570617C (fr) 2015-08-04
US20080253557A1 (en) 2008-10-16
AU2005263805A1 (en) 2006-01-26
WO2006008355A1 (fr) 2006-01-26
CN101006677B (zh) 2011-09-28
EP1757009B1 (fr) 2017-05-10
CA2570617A1 (fr) 2006-01-26
EP1757009A1 (fr) 2007-02-28
FR2871969A1 (fr) 2005-12-23
RU2357365C2 (ru) 2009-05-27
US8199909B2 (en) 2012-06-12
AU2005263805B2 (en) 2009-11-19
CN101006677A (zh) 2007-07-25

Similar Documents

Publication Publication Date Title
JP4828526B2 (ja) 暗号計算を実行するための方法及び装置
JP5892887B2 (ja) サイドチャネル攻撃に対抗する方法
US8325928B2 (en) Security countermeasure for power analysis attacks
US8515057B2 (en) Method and device for executing crytographic calculation
JP5485694B2 (ja) ホワイトボックス実施のための暗号化方法
EP2195761B1 (en) Substitution table masking for cryptographic processes
US9515820B2 (en) Protection against side channels
JP5987250B2 (ja) カスタマイズされたマスキングによって保護される低複雑度の電子回路
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
JP2000066585A (ja) 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
CN106487497B (zh) 对rijndael算法的dpa保护
US11700111B2 (en) Platform neutral data encryption standard (DES) cryptographic operation
CA2504338C (en) Security countermeasures for power analysis attacks
Masoumi A highly efficient and secure hardware implementation of the advanced encryption standard
KR100574965B1 (ko) 유한체 곱셈기
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
US10341089B2 (en) High-speed AES with transformed keys
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
AU2007213585B2 (en) Protection of a cryptographic algorithm
Baihan et al. A high-order masking approach for CLEFIA implementation on FPGA and Intel
TW201312982A (zh) 旁通道攻擊的防禦方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080411

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

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: 20110816

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: 20110914

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

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4828526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees