説明

高次の観測攻撃から保護される暗号回路

【課題】マスキングベースの実装に対する高次の観測攻撃から暗号回路を保護する。
【解決手段】暗号回路はマスクmによりマスクされる変数xを提供する少なくとも1つのレジスタR(22)を含み、マスクされる変数は第1の換字ボックスS(1)により周期的に暗号化される。回路はまた、各周期においてマスクmと、mの変換とを提供するレジスタマスクM(23)を含む。マスクmは、第2の換字ボックスS’(21)により暗号化される前のmtから抽出され、前記ボックスS’(21)の出力において得られる新しいマスクm’は、マスクレジスタM(23)に格納される前にマスクm’に変換される。転換は、レジスタRおよびMの活動モデルに従うあらゆる高次の攻撃の低減または無効を可能とする全単射または合成法則を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、観測攻撃から保護される暗号回路に関する。特にマスキングに基づく実装に対する高次の観測攻撃から暗号回路を保護するために適用される。
【背景技術】
【0002】
暗号の目的は、特に、
−暗号化および双対演算すなわち復号化という手段による情報の項目の機密性か、
−または署名および検証の演算による、署名の演算および署名の検証による、情報の項目の認証性のみ、を保護することである。
【0003】
暗号では、システムの安全化につながることが実証されている数学的なプロシージャを使用する。
例えば、公開されている最新の知識において、可能な限りすべての鍵を試すことに相当する総当たり攻撃よりも極めて速い攻撃のいかなるプロシージャも存在しないことが証明されている場合に、暗号化は安全であると想定される。
【0004】
概して、暗号化プロシージャには、システムのセキュリティのために必要とされる複雑な計算を伴う。
この複雑性はコンピュータにいかなる特定の問題も生じさせることはないが、一般に低コストの「8ビット」マイクロプロセッサで動く、高い計算力を有しないデバイスの場合には大きな障害となる。結果的には、
−適切な使用への障害、典型的な例は、請求書の署名に数分かかる銀行のカード、
−サービスの否認、典型的な例は、配信された情報のスループットが追従できない従量料金制のテレビデコーダ、などのいくつかの種類がある。
【0005】
システムの価格を増加させることなくこの問題を緩和するために、使用されるデバイスの中心ユニットを支援するためのシステムを暗号専用のコプロセッサの形態で付加することが通例である。
【0006】
しかしながら、中心ユニットによって、または専門のコプロセッサによって実装されるにしてもいずれにせよ、暗号アルゴリズムは現在では電子的なタイプの物理的デバイスによって実装される。
これらの物理的デバイスは電気の基本法則に固有の特性に関して、避けることのできない不完全性を呈する。
【0007】
したがって、数学的な観点から安全な暗号システムは、アルゴリズムを実装する物理的システムの固有の不完全性を利用することにより攻撃されうる。したがって、
−計算の時間はデータの値、特に速度を最適化したソフトウェアシステムに依存し、これが特に非特許文献1に記載されている「タイミング攻撃」タイプの攻撃を誘発させている。
これらの攻撃は、特定の場合において、実行時間の簡単な測定値に基づき秘密鍵全体を取り出すことを可能とする。
−瞬間消費もまたデータに依存する。これが、以下のものなどの一連の攻撃を誘発する。
−特に、非特許文献2に記載されているSPA(Simple Power Analysis)攻撃。この攻撃は暗号演算時に測定されるその消費電力の測定値に基づき中心ユニットにより実行される演算を識別しようと試みるものである。
−特に、非特許文献3に記載されているDPA(Differential Power Analysis)攻撃。この攻撃は、鍵の限定された部分について行われた想定を有効または無効にするために、ランダムメッセージに対して、および一定の鍵を用いた暗号演算時に実施される、消費電力の多数の測定値に対する統計的演算を使用する。
−導体内を流れるあらゆる電流は電磁界を生成し、その測定値が、消費電力に関する攻撃とその原理が同一であるEMA(ElectroMagnetic Attack)タイプの攻撃を誘発しうる。
−特定の攻撃では、システムの秘密を取り出すため、誤った結果を利用するようシステムの動作を故意に乱す。これらの攻撃は障害注入攻撃という用語で知られている。
【0008】
暗号アルゴリズムを実装し、かつ、デバイスのメモリに保持されている秘密に関する情報を漏洩しやすい物理的デバイスのあらゆる不完全性は隠しチャネルと呼ばれる。
【0009】
これらの隠しチャネルへの攻撃に対しては、特に、
−この例では秘密とは無関係の漏えいを一定にすることを伴う秘匿と、
−漏えいをランダムにし、予測不能に、したがって利用不可能とすることを伴う、マスキング、に基づく保護が提案されている。
【0010】
これらの2つの技法により情報の取得を狙った攻撃の困難さを増すことが可能となるが、それらはそれでもなお実装欠陥から利益を得ようとする攻撃に対しては依然脆弱である。潜在的なまたは実証された脆弱性の例は数多く存在する。例えば、
−差分論理(WDDLなどの)に基づく秘匿は、計算フェーズと評価フェーズとのうちの1つまたはもう1つと、プリチャージフェーズとの間の累積した組み合わせのずれの差に対する攻撃に脆弱となる場合がある。
−マスキングはHO−DPAと呼ばれる高次の攻撃に敏感な場合がある。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】P.Kocherらによる文献、Timing Attack on Implementation of Diffie−Hellman,RSA,DSS and other systems,In Proceedings of CRYPTO’96,volume 1109 of LNCS,pages104−113,Springer−Verlag,1996
【非特許文献2】Thomas S. Messergesらによる文献、Investigations of Power Analysis Attacks on Smartcards,In USENIX−Smartcard’99,pages 151−162,May 10−11,1999,Chicago USA
【非特許文献3】S.Guilleyらによる文献、Differential Power Analysis Model and some Results, In Proceedings of WCC/CARDIS,pages 127−142,Aug 2004,Toulouse,France
【非特許文献4】J.Blomerらによる文献、Provably Secure Masking of AES,In LNCS,editor,Proceedings of SAC’04,volume 3357,pages 69−83,Springer,August 2004,Waterloo,Canada
【非特許文献5】M.Akkarらによる文献、A generic protection against High−oder differential Power Analysis,In LNCS,editor,Proceedings of FSE’03,volume 2887 of LNCS,Springer,2003,Berlin
【非特許文献6】J.Lvらによる文献、Enhanced DES implementation secure against differential power analysis in smart−cards,In Information Security and Privacy,10th Australasian Conference,volume 3574 of LNCS,pages 195−206,Brisbane,July 2005,Springer Verlag
【非特許文献7】F−X.Standaertらによる文献、FPGA Implementations of the DES and Triple−DES Masked Against Power Analysis Attack,In Proceedings of FPL 2006,August 2006,Madrid
【非特許文献8】E.Peetersらによる文献、Improved Higher−Order Side−Channel Attacks with FPGA Experiments, In CHES, volume 3659 of LNCS, pages 309−323, Springer−Verlag, 2005
【非特許文献9】G.Piretらによる文献、Security Analysis of Higher−Order Boolean Masking Schemes for Block Ciphers,IET Information Security,2(1):1−11,2008
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、特に高次の観測攻撃に対して効果的な保護を可能にすることである。
【課題を解決するための手段】
【0013】
この目的のため、本発明の対象はマスク変数mによりマスクされる変数xを提供する少なくとも1つのレジスタRを含む暗号回路であって、前記マスクされる変数は、第1の換字ボックスSによって周期的な方式で暗号化され、前記回路は、各周期において変形関数で変換されるマスクmに等しい変換マスクmtを送達するマスクレジスタMを含み、このマスクmは第2の換字ボックスS’により暗号化され、このボックスS’からの出力で得られる新しいマスクm’は変数をマスクするために使用されることを特徴とする。
【0014】
新しい変換マスクm’tは、例えば、第2の換字ボックスS’からの出力において逆変形が施された後にマスクレジスタMに導入される。
【0015】
第1の可能な実装の態様において、変形は、変換マスクmtがレジスタMに格納され、換字ボックスに適用されるマスクmがB(mt)に等しく、かつ、レジスタに格納される新しい数値がB−1(m’)であり、m’は第2の換字ボックスS’(21)からの出力であるような全単射Bであってもよい。
【0016】
全単射Bは、例えば、マスクmのHamming重量が全単射B(m)下におけるその画像のHamming重量と常に同一であるとは限らない。
【0017】
第2の可能な実装の態様では、マスクmの変形は、m=m1θm2となるように、2つのサブマスクm1とm2とに分解することによって実施されてもよく、ここで、θは群合成法則であり、第1のサブマスクm1は第1のマスクレジスタM1に格納され、および第2のサブマスクm2は第2のマスクレジスタM2に格納され、レジスタM1に格納される新しい数値はm’1=m’θ−1m’2であり、かつ、格納される新しい数値はm’2であり、m’は第2の換字ボックスS’からの出力時のマスクの数値である。
【0018】
合成法則は、例えば、XOR「排他的論理和」演算、加算演算、乗算演算、または*が乗算であり、+が加算である、s=a*b+(a+b)/2タイプの他の演算である。
【0019】
その合成は、例えば、非ゼロである、1つの周期から別の周期への2つの連続するサブマスクm2間のHamming距離Δm2を有する。
【0020】
サブマスクm1、m2は偶数のビットを有し、群合成法則(α)は、例えば、
−2ビットの群毎に、Δm2=1、
−m2MSB=1ならば、

または、m2MSB=0ならば、m=m1、を満たすサブマスクm1、m2に基づきマスクmを得ることを可能とし、m2MSB、m2LSBはそれぞれサブマスクm2の高次および低次のビットである。
【0021】
回路は、例えば、ランダム数値発生器を含み、前記発生器は第2のサブマスクm’2の数値を送達する。
【0022】
第1のマスクレジスタM1から生じるこのサブマスクm1は、周期の最後で第2のマスクレジスタM2に保存され、第1のレジスタM1はその部分において新しい完全なマスクm’=m’1θm’2を再構築するために新しいマスクm’1を受容してもよい。
【0023】
暗号化用アルゴリズムは、データx、mのパスが左と右の2つの部分に分割される、DESタイプのものであり、前記回路は、例えば、左のマスクレジスタMLと右のマスクレジスタMRに加えて、第3のマスクレジスタMを含み、レジスタMRは右のサブマスクmr1を含み、およびレジスタMLは左のサブマスクml2を含み、レジスタMはサブマスクml1に等しいサブマスクmr2を含み、右のマスクmrおよび左のマスクmlの実効値は、
−mr=mrlθmr2
−ml=ml1θml2
である。
【0024】
第2の換字ボックスS’は、例えば、第1の換字ボックスSと同一の2つのボックスと、2つのXORゲートとを含み、2つのボックスの出力は、その出力が新しいマスクm’を送達するXORゲートに接続され、マスクされる変数

は、ボックスおよびその別の入力がマスクmを受容する別のXORゲートに入り、このゲートの出力が別のボックスに入る。
【0025】
ROMメモリが、例えば、XORゲートの論理およびボックスの換字を実行する。
【0026】
本発明の他の特性および利点が、添付の図面に関連して以下に提供される記載の支援で明らかになる。
【図面の簡単な説明】
【0027】
【図1a】換字ボックスのマスキングの原理の図である。
【図1b】換字ボックスのマスキングの原理の図である。
【図2】換字ボックスのレベルにおけるマスキングの図である。
【図3】レジスタの変数xの2つの連続するワード間のHamming距離の様々な数値の、レジスタの出力における活動の分布の例を示す図である。
【図4】本発明による回路内におけるマスクのパスの可能な変形の第1の態様の図である。
【図5】前の態様に対応する活動分布を示す図である。
【図6】本発明による回路内におけるマスクのパスの第2の可能な実施形態の図である。
【図7】前の態様に対応する活動分布を示す図である。
【図8】乱数生成器を使用せずにマスクを分解した変形の例である。
【図9】DESアルゴリズムを使用する場合の、本発明によるマスキングを例示的に実現する図である。
【図10】本発明による回路内において使用される群合成法則を例示的に実現する図である。
【図11a】本発明による回路内において使用される第2の換字ボックスの例示的な実施形態の図である。
【図11b】本発明による回路内において使用される第2の換字ボックスの例示的な実施形態の図である。
【図11c】本発明による回路内において使用される第2の換字ボックスの例示的な実施形態の図である。
【発明を実施するための形態】
【0028】
図1aおよび1bは、定数マスクmを用いた、一般に「S−box」と呼ばれる換字ボックス1のマスキングの原理を示す。S−boxはメッセージに非線形関数を適用し、その目的は特にS−boxからの出力時にメッセージをエントロピー化するためである。
【0029】
図1aにおいて、データxはS−box1への入力時に暗号鍵kと組み合わされる。 この例において、データと鍵とは、xorとも呼ばれ、

で表される「排他的論理和」論理演算により組み合わされる。
図1aの場合、例えば、nビットでコード化されるメッセージ

は、したがって、S−boxの入力となる。
それに対応して出力メッセージは

である。
【0030】
図1bは、定数マスクmを用いたS−boxのマスキングを示す。マスキングの技法は秘密に敏感に依存する内部変数をマスクmによって判読不能にすることによる。 図1aおよび1bの例においては、xがそのような変数である。mは攻撃者から予測されないと仮定すると、漏えいしたものはxへの直接攻撃の枠組み内では利用不可能である。
変数xはもはやそのようには存在せずに、信号(m、xm)の対を通じて再構築されてもよく、ここでxm=xθmはマスクされる変数であり、かつ、θは特に論理的または数学的な群演算子であってもよい。
図1bの例において、マスキングはxor関数、すなわち

を使用する。
【0031】
このタイプのマスキングは特に線形の演算が2進数フィールドで実施されるDES(Data Encryption Standard)およびAES(Advanced Encryption Standard)アルゴリズムの保護に適する。マスクは一般にビット、ワード、暗号関数のベクトルである内部変数に適用されてもよい。ワードのレベルでのマスキングによってソフトウェア実装とハードウェア実装との両方に適用させることができる。マスクされる変数が適用される関数

が群法則の関数として線形、すなわち

である場合、マスキングの実現は容易である。
【0032】

の値は

およびmに基づき再構築されてもよい。

はしたがって変数xから出る情報の漏えいを回避するためにアルゴリズムのまさに最後で抽出される。
mがxと相関関係にないxθmの計算では、秘密の直接漏えいはない。
【0033】
関数

が非線形の場合、

は、

に基づき数学的に再生成できないため、マスキングメカニズムはより複雑になる。
対称暗号化アルゴリズムでは、非線形の部分は換字ボックスすなわちS−box、したがって例えば図1aおよび1bのS−box1に相当する。一般的なソフトウェア技術ではS−boxの非線形関数を生成するROMメモリが使用されており、Smで表されるこの関数は、

であり、Sはマスキング前のS−boxの関数である。
【0034】
したがって、メモリのサイズはSの2nからSmの22nに及ぶ。nはマスクのビット数である。図1aおよび1bはこの変化を示す。
【0035】
これを実現したものを、暗号化アルゴリズムの繰り返しがクロックサイクルで実施されるハードウェア実装に用いるのは安全ではない。この場合、レジスタのレベルにおける転送がデータを自動的にデマスクする。実際、演算子

を例として考えると、転送は以下の関係で説明される。

【0036】
この関係の項

はS−box Smへの入力時の初期値であり、項

はS−boxからの出力時の最終値であり、これら2つの項間の演算子

は遷移を示す。上の関係は事実、遷移の結果

はマスクmと無関係であることを示す。
【0037】
特に、非特許文献4に示されるように、マスキングにより付与される有効性は、内部変数xのみを考慮する1次攻撃に対して立証されうる。マスキング回路から出る情報の漏えいは、しかしながら、2次攻撃、または実際にはさらに高次のものにさらされる。
【0038】
2次攻撃では2つの変数x1およびx2が考慮される。例えば、x1とx2が同じマスクでマスクされる場合、2次攻撃では

という事実が利用される。
【0039】
特に、非特許文献5に示されるように、高次の攻撃に打ち勝つための実装が研究されている。この文献では定数マスクが使用されている。
しかしながら、顕著な有効性を得るためには複雑性を大幅に増す必要がある。
例として、このプロシージャで高次の攻撃に対する耐性を持つためには、非特許文献6に示されるように、DESアルゴリズムは各S−boxに少なくとも3つの異なるマスクと6つの追加のS−boxを必要とすることが実証されている。
【0040】
別の公知のプロシージャでは、新しいマスクmが各繰り返しにおいて計算される。 このプロシージャについては、特に非特許文献7に記載されている。レジスタRのマスクされる変数

は各ラウンドにおいてレジスタMから生じる新しいマスクmと関連づけられる。したがってラウンドの最後において、変数



に変換され、そこで新しいマスクm’が、関数S’を用いる新しいS−の支援で、mおよび

の関数として計算される。このプロシージャにより複雑性の良好な妥協案がもたらされる。
その理由はそれが各既存のS−box Sに1つの新しいS−box S’のみを関連づけるためである。
【0041】
この実装は、しかしながら、特に非特許文献8に示されるように依然2次攻撃を受けやすい。
【0042】
図2はS−box SおよびS’の実装を示す。Rで表されるレジスタ22が、例えば、マスクされる変数

を提供し、それは例えばXORゲート24によって鍵kと組み合わされ、S−box1への入力時に、関数Sを用いて、レジスタ22、Rの入力にループ状に戻る変数

を出力として送達する。並列して、Mで表されるレジスタ23はS−box21に入るマスクmを提供し、関数S’により、後者のもう1つの入力はS−box1の入力と共通する。S−box21、S’の出力は新しいマスクm’を送達し、レジスタMの入力にループ状に戻る。
この新しいマスクはレジスタRによって送達される変数xをマスクするために使用される。残りの記載全体を通して、マスクレジスタ23およびS−box21、S’を含むマスクループ20により生成されるマスクは変数xをマスクするために使用される。
【0043】
レジスタRおよびMへのループバックはそれぞれクロック数で行われる。簡略化の理由のため、図2の描写ではDESアルゴリズム特有の拡張関数および置換関数は無視される。
【0044】
Peetersらにより記載されたHO−DPA攻撃はレジスタから生じる変数

およびmに関係する。この原理は変数xの様々な数値について、レジスタの出力における活動の分布を研究することにある。CMOSロジックでは、Aで表される活動のモデルはDHで表される2つの連続するワード間のHamming距離であってもよい。特に、

であり、
PHはHamming重量に、およびΔxは変数xの2つの連続するワードxi、xi−1間のHamming距離に一致する。
【0045】
xとmが単一ビットを有する場合、活動は2に該当する。Δx=0ならば、PH(Δm)である。
【0046】
Δx=1ならば、活動は

に該当し、かつ、常に1に等しい。
【0047】
したがって、各Δxの消費の分布の知識は、消費分布を観測することによって、およびそれらを変数xに含まれる鍵kに関する想定について予測した活動と比較することによって、HO−DPA攻撃を構築することを可能とする。
【0048】
xおよびmが4ビットでコード化される場合、Hamming重量PHは5つの数値0、1、2、3、4をとることができる。したがって、活動

は9つの数値0、1、2、3、4、5、6、7、8をとることができる。
【0049】
図3は可能なΔxの様々な数値における4ビットのマスクの活動Aの分布を示す。Δxはこの場合、24の数値、0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15をとる。
図3には、したがってΔxの数値の組の5つの異なる分布、31、32、33、34、35を示す。各分布31では、Δxの数値が9つの数値、0、1、2、3、4、5、6、7および8をとることができる活動の関数として分布するまたは割り当てられる。
これらの分布間にかなりの差があることは明らかであり、これらの差はHO−DPA攻撃により利用される可能性がある。
【0050】
様々なマスキングの解決策の有効性を比較するため、分布31、32、33、34、35の比較に、公知の検定、Χ2検定より生じたメトリック量を使用することが可能であり、以下の関係により定義される。

ここで、
−Cは分布のクラス数を示し、例えばC=9は4ビットでコード化されるマスクを用いた活動分布である。C−1はΧ2法の自由度を示す。
−Nは標本の合計数である。
−Piは観測されたクラスiの要素を有する確率であり、Piはまた

に等しい。Niはクラスiの観測された要素の数である。
−Pirefはクラスiの要素を有する参照確率であり、Pirefはまた

に等しい。Nirefはクラスiの予想される要素の数である。
【0051】
参照分布はマスクが4ビットでコード化された場合にΔxの全数値で得られる16分布の平均値であると考えられる。この場合におけるΧ2の数値は全分布の等質性を判定することを可能とする。
参照として、Χ2は4ビットのマスクを用いた分布では21.89に等しい。この数値はHO−DPA攻撃で利用されやすい分布31、32、33、34、35間の識別を避けるために可能な限り小さくなければならない。
明示されない限り、このΧ2の数値はHO−DPA攻撃に対して防御するために可能な限り小さくなければならない。
【0052】
本発明は、高次のものを含め、そのような観測攻撃に対して同一のマスクの活動の様々な分布間の相違または差を減らすことによって防御することを可能とする。例として、4ビットでコード化されるマスクが以下で考慮される。
【0053】
特に、例えば図2を参照すると、本発明はマスクmを含むレジスタMの活動を、マスクされる変数

を含むレジスタRの活動と独立にする。変数xがこれら2つのレジスタ22、23に特有の消費の分布に影響を与えないとすれば、Peetersらによる文献に記載されているようなHO−DPA攻撃を成功裏に行うことはもはや不可能である。
平衡は、マスクされる変数のパスに触れることなく、マスクのパスの構成を変形することによって攻撃されうる。
提案された変形は、マスクを変換することにより空間において、またはマスクの発展を変化させることにより時間において行われる。有利には、本発明はマスクの変換に関する。
本発明によればいくつかのマスクの変形が可能である。
【0054】
図4はマスクの第1の変形可能性、全単射による変形を示す。
この場合、Bで表される全単射変換41が、マスクレジスタ23と、レジスタMと、S−box21との間に関数S’を用いて挿入される。
B−1で表される逆全単射変換42はS−boxの出力において適用される。したがって、S−box S’により送達されるマスクm’はレジスタMに格納される前に全単射変換B−1を経る。全単射は変数

とB(m)との間の活動の相関を変更するために、mとその画像B(m)との間のHamming距離が必ずしもゼロであるとは限らない。全単射Bの実装は既定のテーブルを通じて行うことができる。
【0055】
S−box S’からの出力時のマスクm’は実際マスクされる変数により使用される。図4はマスクのパスを示す。
【0056】
図5は図4により示されるような全単射によるマスクの変換後に得られる、図3の場合のように4ビットで、したがって0から8まで変化することができる同様の活動数値でコード化されるマスクの16数値のΔxの16の分布51を示す。
これらの分布51は図3の分布との対比においてわずかな相互差を示す。活動の分布はよりずっと等質であり、これはこの全単射変換で、図3の分布に該当する21.89という数値と比較して、平均値1.85が得られるΧ2検定によって確認されている。
【0057】
図6は本発明による別の変形可能性を示す。それは分解によるマスクの変形を伴う。この場合、マスクmは、
m=m1θm2
となるように、2つのサブマスクm1とm2とに分解される。
θは前述の演算子θのような群内部の合成法則を実現する。θは群演算子であり、それは逆演算子θ−1を容認する。
【0058】
前の図のレジスタMは、したがって2つのレジスタ231、232と交換できる。 1つのレジスタM1は数値m1を含み、および1つのレジスタM2は数値m2を含む。これらのレジスタの出力は合成法則θを実現する回路61に接続される。
特に図2および4に示される前のパスのように、この演算子61からの出力時、マスクmはS−box S’、21により新しいマスクm’に変換される前に演算m=m1θm2により再構成される。
【0059】
逆演算θ−1はS−box S’21の出力に配置される演算子62により実施される。この演算子はm’1=m’θ−1m’2になるようにマスクm’をm’1とm’2とに分離することを可能とする。マスクm’2は図6に示されるような乱数生成器RNGにより生成されてもよい。
暗号化アルゴリズムの各繰り返しにおいて、m2を含むレジスタM2は乱数生成器71で作り出された新しい数値m’2をとる。m1を含むレジスタM1は新しい数値m’1=m’θ−1m’2をとり、この数値は、S−box21により提供される入力データm’および乱数生成器71により提供される入力データm’2に基づき群演算θ−1を実施する演算子62により送達される。
【0060】
マスクされる変数

を含むレジスタRならびに2つのレジスタM1およびM2のレベルにおける活動Aはしたがって、

になる。
【0061】
この活動モデルを考慮すると、Χ2検定は様々な法則θに適用され、その結果は例として以下の表で示される。
【0062】
【表1】

【0063】
この表は平衡分布を得るために加算+および乗算*のような簡単な演算子が使用されてもよいことを示し、得られる結果はそれぞれ0.31と0.36であり、それによって分布間を識別するために取得される極めて大きい数の消費トレースに対する攻撃を阻止する。全単射Bによる変換は1.85という結果を得ることを可能とする。
【0064】
有利には、続いて記載される法則αはゼロΧ2、つまり考えられる活動モデルという点において完全に同一の分布を有することを可能とし、したがって高次の攻撃に耐性がある。
【0065】
図7は4ビット変数を用いたおよび法則αを考慮した16の可能な分布70を示す。
【0066】
XOR論理演算子で得られる分布ではΧ2の数値を十分に減少できない。その理由は、それらがHamming重量Δxの等価の関数、

として2つの大きな分布のクラスを発生させるためである。Δxが偶数ならば、活動は常に偶数の数値を有するが、Δxが奇数ならば、活動は常に偶数の数値を有する。
【0067】
図8は前の解決策と類似しているが、計算を初期設定すること以外には乱数生成器を使用せずに結果を得る例示的な実装を示す。各周期において乱数生成器の使用に関するオーバーヘッドを避けるために、2つのサブマスクのうち1つは前の例で生成された確率変数を置き換えることができる。
例えば、レジスタM1、231から生じるサブマスクを使用することが可能である。レジスタM1から生じるこのサブマスクはレジスタM2、232に保存され、周期の最後に、レジスタM1は完全なマスクを再構築するために新しいマスクm’1をその部分で受容する。
したがって、各周期において生成される新しいマスクはm’=m’1θm1であり、次の周期において生成される新しいマスクはm’’=m’’1θm’1等々である。
【0068】
図9はDESアルゴリズムのマスキングの例を示す。この図では、可読性の目的のため拡張関数および置換関数は無視されている。
【0069】
DESアルゴリズムについては、あらゆるFeistel方式のようにデータパスは2つの部分、左と右とに分割される。
特に、前の例のマスクされる変数レジスタ22は2つのレジスタ、左のレジスタ221と右のレジスタ222とに分割される。
【0070】
マスキング部分については、1つが右のレジスタMRおよびもう1つが左のレジスタMLである2つのマスクレジスタ91、92に加えて、2つのマスクを左と右とに分解するために、Mで表される第3のレジスタ93が付加される。
DESアルゴリズムの実装では図7および8に関して前に示された解決策が、各周期において乱数生成器を使用せずに、しかし3つの連鎖したレジスタを使用することにより利用される。
レジスタMRはサブマスクmr1を含み、レジスタMLはサブマスクml2を含む。レジスタMはサブマスクml1に等しいサブマスクmr2を含む。右のmrおよび左のmlマスクの実効値はそれぞれレジスタMRおよびMLに含まれ、以下の関係によって得られる。
−mr=mr1θmr2
−ml=ml1θml2
【0071】
群関係θを実行する演算子611、612が上の2つの演算を実施するためにレジスタMR、M、MLの出力に配置される。右のマスクmrはS−box S’、21により新しい右のマスクm’rに変換され、後に暗号化されるS−box21のもう1つの入力はマスクされる変数

であり、右のレジスタR222から来る。新しい右のマスクm’rはマスクmlと組み合わされて演算θ−1を実行する演算子62への入力時に

を行う。後者は

をm’r2と組み合わせる。図8の例に類似する方式において、演算子62への入力時のサブマスクm’r2は乱数生成器によって提供されないが、レジスタMRにより送達されるサブマスクmrlに等しい。各レジスタ221、222、91、92、93は初期数値94、95、96、97を受容する。
【0072】
以下の表に、後3つのカラムにおいてはマスクレジスタ91、92、93で、および前の2つのカラムにおいてはマスクされる変数レジスタ221、222で同程度によく使用されるマスクが3つの連続するラウンドについて示される。
【0073】
【表2】

【0074】
この表はマスクレジスタで使用されるマスクとマスクされる変数レジスタで使用されるものとは異なり、したがって特にHO−DPAタイプの攻撃の回避を可能とすることを示す。
【0075】
関数αの実装により平衡分布を有することが可能となり、したがって、Χ20.1が図10で示される。
【0076】
この法則はΔm2が決してゼロにならないという事実に依存する。実際、mの変分、Δm=Δm2=0ならば、Δm1は0にも等しいことを群法則θは示唆している。
この場合、前の式(4)により得られる活動はΔxがゼロの場合にのみゼロとなりうる。ゼロ活動を得るためのΔxの他の数値が存在しないため、これは活動がΔxの全数値において決して完全に平衡しないことを示す。
一方、Δm2の数値が非ゼロならば、活動分布の完全な平衡を満たすこと、およびしたがってΧ2=0を得ることを可能とする法則が存在しうる。
マスキングの不可能性の証明に関しては、特に非特許文献9で想定されるように、本発明は2つのマスクm1とm2との間に接続関係を提供し、これは非特許文献9では考慮されていない。
【0077】
例として2ビットの連続パケット毎のサブマスクを考慮すると、したがってよくあるように偶数のビットを有するこのマスクは、αと呼ばれる以下の法則によりΔxの数値が何であっても平衡分布を得ることを可能とする。
m2MSBで表される、サブマスクm2の高次のビットおよびm2LSBで表される低次のビットで形成される2ビットの群は、法則αによるマスクの生成に以下の方式で条件を設ける。
−2ビットの群毎、Δm2=1
−m2MSB=1ならば、

または、m2MSB=0ならば、m=m1
【0078】
この法則αはインボリュート形式であり、S−box21への入力時に演算子61により実装される。
【0079】
図10は、S−box21の出力に位置して、2つのマスクビットの群のために関数m’1=m’α−1m’2を実装する、演算子62の可能とされる例示的な実装100をさらに示す。
【0080】
回路100では乱数生成器101を使用してサブマスクm2を生成する。この発生器101によって生成される確率変数は、m’2MSBおよびm’2LSBを入力として受容する符号器102において、条件Δm’2=1を確実にするためにGrayコード化される(または交番2進コード)レジスタM2において増分または減分のどちらかを選択する。
S−box21により生成されるマスクm’から開始され、演算子62はその高次のビットm’1MSBが

に等しいサブマスクm’1を送達する。
m’MSBは、符号器102への入力時に生成される確率変数に従って数値0または1をとるm’およびm’2MSBの高次のビットである。
低次のビットm’lLSBはm’2MSBの数値がそれぞれ0または1に等しい場合、m’MSBまたは

に等しい。
【0081】
図11a、11bおよび11cには新しいマスクm’を生成する換字ボックスS’、21を生成するための可能な改良物が示される。
ボックスS’はいくつかの頑強性および複雑性のレベルによりXORゲートとROMメモリとを混合して生成してもよい。
【0082】
図11aには、非マスク化情報xおよび新しいマスクm’を再構築するために2つのボックスS、1および2つのXORゲート110、111を使用する第1の解決策が示される。したがって、第1のゲート111を介して

が得られ、第2のゲート112は

を用いて新しいマスクm’をボックスS’からの出力として送達する。
【0083】
図11bにより示される第2の解決策では、XORゲートの論理および図11aの配列のボックスSの換字を実行するためにROMメモリ113を使用する。メモリはしたがって2つのワード、mおよび

を受容する。
【0084】
図11cでは、ランダムレジスタ71無しの空間的な分解に適用されうる第3の解決策が示される。この解決策では3ワード、

と、m1と、m2とを受容するROMメモリ114が使用される。
このメモリは論理と、図11bの解決策のメモリ113によって実行される関数115と、関数115への入力時にマスクmを再構築するための群法則θと、例えばこの関数115からの出力時の逆群法則θ−1(inverse group law)とを一体化する。

【特許請求の範囲】
【請求項1】
マスク変数mによりマスクされる変数xを提供する少なくとも1つのレジスタR(22)を含む、暗号回路であって、前記マスクされる変数は第1の換字ボックスS(1)によって周期的な方式で暗号化され、前記回路は、各周期において、変形関数(41、61)により変換される前記マスクmに等しい変換されるマスクmtを送達するマスクレジスタM(23)を含み、このマスクmは第2の換字ボックスS’(21)により暗号化され、前記新しいマスクm’は前記変数をマスクするために使用されるこのボックスS’(21)からの出力時に得られることを特徴とする、暗号回路。
【請求項2】
前記新しい変換マスクm’tは、前記第2の換字ボックスS’(21)からの出力時に前記変形関数(41,61)とは逆の変形(42,62)が施された後に前記マスクレジスタMに導入されることを特徴とする、請求項1に記載の回路。
【請求項3】
前記変形は、前記変換マスクmtが前記レジスタMに格納され、前記換字ボックスに適用される前記マスクmはB(mt)に等しく、かつ、前記レジスタに格納される前記新しい数値はBー1(m’)であり、m’は前記第2の換字ボックスS’(21)からの前記出力であるような全単射(41)Bであることを特徴とする、請求項1または2に記載の回路。
【請求項4】
前記全単射Bは、前記マスクmの前記Hamming重量が前記全単射B(m)下におけるその画像の前記Hamming重量と常に同一とは限らないことを特徴とする、請求項1〜3のいずれか1項に記載の回路。
【請求項5】
前記マスクmの前記変形は、m=m1θm2になるように、2つのサブマスクm1とm2とに分解することにより実施され、ここでθは群合成法則であり、前記第1のサブマスクm1は第1のマスクレジスタM1(231)に格納され、かつ、前記第2のサブマスクm2は第2のマスクレジスタM2(232)に格納され、前記レジスタM1に格納される前記新しい数値はm’1=m’θ−1m’2であり、かつ、格納される前記新しい数値はm’2であり、m’は、前記第2の換字ボックスS’(21)からの出力時の前記マスクの前記数値であることを特徴とする、請求項1〜2のいずれか1項に記載の回路。
【請求項6】
前記合成法則はXOR「排他的論理和」演算であることを特徴とする、請求項1〜2および5のいずれか1項に記載の回路。
【請求項7】
前記合成法則は加算演算であることを特徴とする、請求項1、2および5のいずれか1項に記載の回路。
【請求項8】
前記合成法則は乗算演算であることを特徴とする、請求項1、2および5のいずれか1項に記載の回路。
【請求項9】
前記合成法則は、*が乗算および+が加算である、s=a*b+(a+b)/2タイプの演算であることを特徴とする、請求項1、2および5のいずれか1項に記載の回路。
【請求項10】
前記合成法則は、非ゼロの、2つの連続するサブマスクm2間の1つの周期から別の周期までのHamming距離Δm2を有することを特徴とする、請求項1、2および5のいずれか1項に記載の回路。
【請求項11】
前記サブマスクm1、m2は偶数のビットを有し、前記群合成法則(α)は、
‐2ビットの群毎に、Δm2=1、
‐m2MSB=1ならば、

またはm2MSB=0ならば、m=m1、
を満たす前記サブマスクm1、m2に基づき前記マスクmを得ることを可能とし、
m2MSB、m2LSBはそれぞれ前記サブマスクm2の高次および低次のビットである、
ことを特徴とする、請求項10に記載の回路。
【請求項12】
ランダム数値発生器(71)を含み、前記発生器は前記第2のサブマスクm’2の前記数値を送達することを特徴とする、請求項3および4を除く先行請求項のいずれか1項に記載の回路。
【請求項13】
前記第1のマスクレジスタM1から生じるこのサブマスクm1は前記周期の最後に前記第2のマスクレジスタM2に保存され、前記第1のレジスタM1は前記新しい完全なマスクm’=m’1θm’2を再構築するためにその部分のために前記新しいマスクm’1を受容することを特徴とする、請求項3および4を除く先行請求項のいずれか1項に記載の回路。
【請求項14】
前記暗号化用アルゴリズムはDESタイプのものであり、前記データx、mのパスは2つの部分、左(91、221)と右(92、222)とに分割され、前記回路は、前記左のマスクレジスタML(91)と前記右のマスクレジスタMR(92)に加えて、第3のマスクレジスタM(93)を含み、前記レジスタMRは前記右のサブマスクmr1を含み、および前記レジスタMLは前記左のサブマスクml2を含み、前記レジスタMは前記サブマスクml1に等しい前記サブマスクmr2を含み、前記右のマスクmrおよび前記左のマスクmlの実効値は、
mr=mrlθmr2
ml=ml1θml2
であることを特徴とする、請求項3および4を除く先行請求項のいずれか1項に記載の回路。
【請求項15】
前記第2の換字ボックスS’(21)は前記第1の換字ボックスS(1)と同一の2つのボックスと、2つのXORゲート(111、112)とを含み、前記2つのボックス(1)の前記出力はその出力が前記新しいマスクm’を送達するXORゲート(112)に接続され、前記マスクされる変数

はボックス(1)に入り、かつ、その他の入力が前記マスクmを受容するもう1つのXORゲート(111)にて、このゲート(111)の前記出力は前記もう1つのボックス(1)に入ることを特徴とする、請求項1〜14のいずれか1項に記載の回路。
【請求項16】
ROMメモリ(113)は前記XORゲート(111、112)の論理および前記ボックス(1)の換字を実行することを特徴とする、請求項15に記載の回路。

【図1a】
image rotate

【図1b】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11a】
image rotate

【図11b】
image rotate

【図11c】
image rotate


【公表番号】特表2012−516068(P2012−516068A)
【公表日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2011−545759(P2011−545759)
【出願日】平成22年1月18日(2010.1.18)
【国際出願番号】PCT/EP2010/050546
【国際公開番号】WO2010/084106
【国際公開日】平成22年7月29日(2010.7.29)
【出願人】(510229496)インスティテュート テレコム−テレコム パリ テック (8)
【Fターム(参考)】