(57)【要約】  本発明は、メッセージ（ｍ）に適用されることになる暗号アルゴリズムのブロック暗号の符号化されたテーブルベース（ＴＣａｂｉ，ｊ）の実装に加えられる２次以上のＤＣＡ攻撃に対抗する方法であって：メッセージ（ｍ）に適用されることになる暗号アルゴリズムブロック暗号を一連のルックアップテーブル（Ｔａｂｉ，ｊ）へ翻訳するステップと、秘密可逆符号化を適用して、一連のルックアップテーブル（ＴＣｉ，ｊ）を得るステップと、少なくとも２つの異なるメッセージ導出関数（Ｆ１、Ｆ２）に基づく、テーブルネットワークの入力に対する少なくとも２つのマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）の割当ての計算を含む、メッセージに依存するマスキング値を計算するステップと、計算されたメッセージに依存するマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）を使用して、テーブル（ＴＣｉ，ｊ）を再ランダム化するステップと、ランダム化されたテーブル（ＴＣｉ，ｊ）のネットワークに基づいて、メッセージ（ｍ）に適用されることになるラウンドを計算するステップとを含む、方法に関する。
2019530352.tif 000002
【特許請求の範囲】
【請求項１】
メッセージ（ｍ）に適用されることになる暗号アルゴリズムのブロック暗号の符号化されたテーブルベース（ＴＣｉ，ｊ）の実装に加えられる２次以上のＤＣＡ攻撃に対抗する方法であって、
−  メッセージ（ｍ）に適用されることになる暗号アルゴリズムブロック暗号を一連のルックアップテーブル（Ｔａｂｉ，ｊ）へ翻訳するステップと、
−  秘密可逆符号化を適用して、一連のルックアップテーブル（ＴＣｉ，ｊ）を得るステップと、
−  少なくとも２つの異なるメッセージ導出関数（Ｆ１、Ｆ２）に基づく、テーブルネットワークの入力に対する少なくとも２つのマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）の割当ての計算を含む、メッセージに依存するマスキング値を計算するステップと、
−  計算されたメッセージに依存するマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）を使用して、テーブル（ＴＣｉ，ｊ）を再ランダム化するステップと、
−  ランダム化されたテーブル（ＴＣｉ，ｊ）のネットワークに基づいて、メッセージ（ｍ）に適用されることになるラウンドを計算するステップとを含む、方法。
【請求項２】
テーブル（ＴＣｉ，ｊ）ネットワークの入力に対する少なくとも２つのマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）の割当ての計算が、難読化技術を使用して符号で難読化された少なくとも２つの秘密定数値（ｅｍａｓｋ１、ｅｍａｓｋ２）に更に基づく、請求項１に記載の方法。
【請求項３】
少なくとも２つのマスキング値（ｍｍａｓｋ１、ｍｍａｓｋ２）の割当てが次の通り、
−  ｈ１＝Ｆ１（ｍ）（またはｈ１＝Ｆ１（Ｍ））
−  ｈ２＝Ｆ２（ｍ）（またはｈ２＝Ｆ２（Ｍ））
−  
【数１】
2019530352.tif 000033
−  
【数２】
2019530352.tif 000034
で得られ、ここでｎが関係する暗号アルゴリズムブロック暗号に依存する整数である、請求項２に記載の方法。
【請求項４】
暗号アルゴリズムブロック暗号がＤＥＳアルゴリズムの一部であり、ｎ＝９６である、請求項３に記載の方法。
【請求項５】
暗号アルゴリズムブロック暗号がＡＥＳアルゴリズムの一部であり、ｎ＝１２８である、請求項３に記載の方法。
【請求項６】
全てのマスキング値を導出するためにランダム秘密関数（Ｇ）が更に使用され、前記ランダム秘密関数がいくつかの層のテーブルに適用される、請求項２から５のいずれか一項に記載の方法。
【請求項７】
ランダム秘密関数（Ｇ）が連続した層のテーブルに累積的に適用される、請求項６に記載の方法。
【請求項８】
ランダム秘密関数（Ｇ）の累積的適用が次の通り、
第１層のテーブル（Ｔ）に関しては、全てのｘについて、
【数３】
2019530352.tif 000035
および、全てのｘについて、
【数４】
2019530352.tif 000036
の計算であり、ｉが層におけるテーブルのインデックスである、請求項７に記載の方法。
【請求項９】
ランダム秘密関数（Ｇ）の累積的適用が次の通り、
第１層のテーブルに関しては、全てのｘについて、
【数５】
2019530352.tif 000037
および、全てのｘについて、
【数６】
2019530352.tif 000038
の計算であり、ｉが層におけるテーブルのインデックスである、請求項７に記載の方法。
【請求項１０】
ランダム秘密関数（Ｇ）の累積的適用が次の通り、
全てのｘについて、
【数７】
2019530352.tif 000039
および、全てのｘについて、
【数８】
2019530352.tif 000040
の計算であり、ｉが第２層の層におけるテーブルのインデックスである、請求項８または９に記載の方法。
【請求項１１】
ランダム秘密関数（Ｇ）の累積的適用が次の通り、
その他の層ｊに関しては、全てのｘについて、
【数９】
2019530352.tif 000041
および、全てのｘについて、
【数１０】
2019530352.tif 000042
の計算であり、ｉが層におけるテーブルのインデックスである、請求項１０に記載の方法。
【請求項１２】
メッセージ（ｍ）が、最初にマスキング値の第１の割当て（ｍｍａｓｋ１）と結合され
【数１１】
2019530352.tif 000043
、次いでその結果がマスキング値（ｍｍａｓｋ２）の次の割当てと結合される
【数１２】
2019530352.tif 000044
、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
メッセージに依存するマスキング値を計算するステップが、難読化技術を使用して符号で難読化されたｔ個の秘密定数値（ｅｍａｓｋ１、…、ｅｍａｓｋｔ）、およびｐ個の導出関数（Ｆ１、…、Ｆｐ）に基づく、テーブルネットワークの入力に対するｔ個の値ｍｍａｓｋ１、ｍｍａｓｋ２、…、ｍｍａｓｋｔの計算を含む、請求項２に記載の方法。
【請求項１４】
第１ステップが、第１層のテーブル（ＴＣ１，ｉ）を、入力で第１のマスキング値（ｍｍａｓｋ１）の割当ておよび出力でこの第１のマスキング値の割当てのランダム秘密関数（Ｇ）（Ｇ（ｍｍａｓｋ１））を使用してランダム化し、第２ステップが、前ステップのテーブル（ＴＣ１，ｉ）を、入力で第２のマスキング値（ｍｍａｓｋ２）の割当ておよび出力でこの第２のマスキング値の割当てのランダム秘密関数（Ｇ）（Ｇ（ｍｍａｓｋ２））を使用して再ランダム化し、第ｔステップが、前ステップのテーブル（ＴＣ１，ｉ）を、入力で第ｔのマスキング値（ｍｍａｓｋｔ）の割当ておよび出力でこの第ｔのマスキング値の割当てのランダム秘密関数（Ｇ）（Ｇ（ｍｍａｓｋｔ））を使用して再ランダム化し、
第ｔ＋１ステップが、次いで第２層のテーブル（ＴＣ２，ｉ）を、入力でマスキング値の割当てのランダム秘密関数（Ｇ）Ｇ（ｍｍａｓｋ１）、…、Ｇ（ｍｍａｓｋｔ）およびテーブルの出力でマスキング値の割当ての繰り返し適用されるランダム秘密関数（Ｇ）Ｇ（Ｇ（ｍｍａｓｋ１））、…、Ｇ（Ｇ（ｍｍａｓｋｔ））を使用してランダム化し、第２層に対する第２ｔステップまで同様に続き、そして、引続き、一般的に、各（ｊ−１）＊ｔ＋１ステップが、第ｊ層のテーブル（ＴＣｊ，ｉ）を、入力でマスキング値の割当てに繰り返し適用されるランダム秘密関数Ｇ（ｊ−１）（ｍｍａｓｋ１）、…、Ｇ（ｊ−１）（ｍｍａｓｋ）および出力でマスキング値の割当てに更に繰り返し適用されるランダム秘密関数Ｇ（ｊ）（ｍｍａｓｋ１）、…、Ｇ（ｊ）（ｍｍａｓｋ）を使用することによってランダム化し、第ｊ層に対するｊ＊ｔステップまで同様に続く、請求項１３に記載の方法。
【請求項１５】
請求項１から１４のいずれか一項の方法を実装する計算資源を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック暗号の符号化されたテーブルベースの実装に加えられる２次以上のＤＣＡ攻撃に対抗する方法に関する。より詳細には、本発明は、「ホワイトボックス」という用語で知られている、ＤＥＳおよびＡＥＳのような、暗号化ブロック暗号のソフトウェア実装に関する。
【０００２】
本発明は、前記方法を実装する装置にも関する。
【背景技術】
【０００３】
ホワイトボックス実装の背後の着想は、攻撃者が秘密鍵についての情報を抽出するのが困難になるように、この秘密鍵を暗号演算の実装に埋め込むことである。
【０００４】
ホワイトボックス暗号法の学術研究は、Ｃｈｏｗ、Ｅｉｓｅｎ、Ｊｏｈｎｓｏｎおよびｖａｎ  Ｏｏｒｓｃｈｏｔの独創的な著作物で２００２年に開始された。彼らは、鍵抽出に抵抗する暗号実装を創出するのに役立つように使用できるいくつかの一般的な技術を提示した。彼らは、それらの技術を応用して、ブロック暗号ＡＥＳおよびＤＥＳの実装例を生成した。今のところ、全ての学術的ホワイトボックス技術は、暗号解析技術を使用して、理論的には解読された。
【０００５】
しかしながら、市場では、ホワイトボックス暗号法に基づく商用の解決策は、利用可能である。
【０００６】
差分計算解析（ＤＣＡ）は、ホワイトボックス実装のセキュリティを評価するために最近導入された攻撃である。それは、差分電力解析（ＤＰＡ）攻撃のソフトウェア相当物である。ＤＰＡについてなされることと同様に、攻撃者は、暗号実装の実行中にソフトウェアトレースを収集しなければならない。
【０００７】
ＤＣＡ論文の著者らが、アクセスされているメモリアドレスについての情報を含むソフトウェア実行トレースを生成するプラグインを開発している。これらのトレースを使用して、著者らは、商用化されていないものを含め、標準化暗号法を実装する、全ての公衆が利用可能なホワイトボックスプログラムから、ＤＣＡがどのようにして秘密鍵を抽出することができるかを示した。この攻撃は、ルックアップテーブル使用についての知識も、著しいリバースエンジニアリング労力も必要としない。
【０００８】
１次ＤＰＡを妨害する、通常提唱される方法は、ＤＣＡ攻撃に対抗するために適用できるランダムマスキングである。スマートカードコンテキストとホワイトボックスコンテキストとの間の重要な差は、スマートカードが信頼できるエントロピー源を通常提供するのに対して、ホワイトボックス環境ではそれは当てはまらないということである。そこで、ランダムマスキング対抗策は、ホワイトボックス環境に適応されなければならない。その上、しかしながら、攻撃者が計算当たり２回以上消費電力を相関させる方法を知っている場合、マスキングが破られる可能性があることが知られている。
【０００９】
これは、２次またはより一般的に高次電力解析として知られている。これらの高次のＤＰＡ攻撃は、実際に仕掛けるのがより複雑であると知られている。ＤＰＡ攻撃について明らかにされていることと同様に、攻撃者が実行当たり２回以上計算値を相関させようとするときに、高次ＤＣＡ攻撃が考慮されることができる。高次攻撃は、サイドチャネル解析のための場合よりソフトウェアセキュリティのコンテキストで仕掛けるのが非常に容易なようである。
【００１０】
ＤＣＡ攻撃は最近のものであり、今のところ、１次のＤＣＡでホワイトボックス実装を攻撃するのに十分である。１次のＤＣＡ攻撃を防止するために、例えばＥＰ２４０６９１６に提案されているような可変符号化を使用することが、例えば可能である。同技術的問題を解決すると明らかに知られている代替方法はない。
【００１１】
また、今のところ、ＤＣＡ攻撃は２次ＤＣＡ以上には一般化されていない。これが、おそらく、高次ＤＣＡ攻撃が今のところ文献で検討されない理由である。新規であることは、ＤＣＡ攻撃の一般化に対する対抗策を提案することである。
【００１２】
いずれにせよ、そのような２次攻撃が待ち受けており、したがって対抗策が望まれる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】欧州特許出願公開第２４０６９１６号明細書
【非特許文献】
【００１４】
【非特許文献１】「Ａ  Ｗｈｉｔｅ−Ｂｏｘ  ＤＥＳ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｆｏｒ  ＤＲＭ  Ａｐｐｌｉｃａｔｉｏｎｓ」、Ｃｈｏｗら、２００２年１０月１５日、Ｐｒｅ−ｐｒｏｃｅｅｄｉｎｇｓ  ｆｏｒ  ＡＣＭ  ＤＲＭ−２００２  ｗｏｒｋｓｈｏｐ
【非特許文献２】Ｊ．Ｍｅｎｅｚｅｓ、Ｐ．Ｃ．ｖａｎ  ＯｏｒｓｃｈｏｔおよびＳ．Ａ．Ｖａｎｓｔｏｎｅ、Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ、２５０−２５９頁、ＣＲＣ  Ｐｒｅｓｓ、２００１（訂正第５刷）
【発明の概要】
【課題を解決するための手段】
【００１５】
本発明は、２次以上の直接的なＤＣＡに対して抵抗することができるブロック暗号のソフトウェア実装を提供することを目指す。
【００１６】
本発明は、例えばＣｈｏｗらによって提案されたような、暗号ＤＥＳ／ＡＥＳの符号化されたテーブルベースの実装に基づいている。
【００１７】
そのような実装は、符号化されたＳボックスを調査することによっても、いかなる有用な情報も抽出することが可能でないことを意味するローカルセキュリティを提供するために使用される。これは、攻撃が非ローカルでなければならないことを意味する。しかしながら、Ｃｈｏｗらによって提案されたＤＥＳ／ＡＥＳの符号化されたテーブルベースの実装は、何次のＤＣＡにも抵抗しない。
【００１８】
本発明は、したがって、上述した悪意のあるＤＣＡ攻撃を回避する、または少なくともより困難にすることを目指す。
【００１９】
より一般的に、本発明は、２次またはより高次ｔのＤＣＡに抵抗する、および攻撃者が実行中に関連値の多くても１つ、またはより多数のｐ−１個を固定することができる複合攻撃（ｃｏｍｂｉｎｅｄ  ａｔｔａｃｋ）に対して抵抗するために、符号化されたテーブルベースの実装に適用される対抗策である。
【００２０】
本発明は、最も広義に、メッセージに適用されることになる暗号アルゴリズムのブロック暗号の符号化されたテーブルベースの実装に加えられる２次以上のＤＣＡ攻撃に対抗する方法であって：
−  メッセージに適用されることになる暗号アルゴリズムブロック暗号を一連のルックアップテーブルへ翻訳するステップと、
−  秘密可逆符号化を適用して、一連のルックアップテーブルを得るステップと、
−  少なくとも２つの異なるメッセージ導出関数Ｆ１およびＦ２に基づく、テーブルネットワークの入力に対する、ｍｍａｓｋ１およびｍｍａｓｋ２で表される少なくとも２つのマスキング値の割当ての計算を含む、メッセージに依存する（ｍｅｓｓａｇｅ−ｄｅｐｅｎｄｅｎｔ）マスキング値を計算するステップと、
−  計算されたメッセージに依存するマスキング値を使用して、テーブルを再ランダム化するステップと、
−  ランダム化されたテーブルのネットワークに基づいて、メッセージに適用されることになるラウンドを計算するステップとを含む、方法として定義される。
【００２１】
この解決策は、攻撃者が複合攻撃で少なくとも２つの値またはより多数の値を修正することを必要とするものである。１つの追加特性は、攻撃者が実行中に１つの関連値またはｐ−１個の関連値を定数に設定することに成功した場合、ランダム化法が作用し続けるということである。
【００２２】
したがって、本発明による方法は、悪意のある攻撃の危険性を低減させることを許容する。少なくとも、攻撃は、悪意のある攻撃者にとって実施するのがより複雑である。
【００２３】
好適な実施形態によれば、テーブルネットワークの入力に対する、ｍｍａｓｋ１およびｍｍａｓｋ２で表される少なくとも２つのマスキング値の割当ての計算は、難読化技術を使用して符号で難読化された少なくとも２つの秘密定数値ｅｍａｓｋ１およびｅｍａｓｋ２に更に基づく。
【００２４】
これは、攻撃者が入力メッセージｍに適用される導出関数の仕様を推測またはリバースした場合に、攻撃者がマスキング値ｍｍａｓｋ１およびｍｍａｓｋ２の値を計算することができるのを防止することを可能にする。実際、ｍｍａｓｋ１およびｍｍａｓｋ２を計算することができるためには、難読化された値ｅｍａｓｋ１およびｅｍａｓｋ２の知識が必要とされる。
【００２５】
特定の実装において、少なくとも２つのマスキング値の割当ては次の通り：
−  ｈ１＝Ｆ１（ｍ）（またはｈ１＝Ｆ１（Ｍ））
−  ｈ２＝Ｆ２（ｍ）（またはｈ２＝Ｆ２（Ｍ））
−  
【数１】
2019530352.tif 000003
−  
【数２】
2019530352.tif 000004
で得られ、ｎは関係する暗号アルゴリズムブロック暗号に依存する整数である。
【００２６】
この実装は、攻撃者がｈ１およびｈ２の計算またはｈ１およびｈ２の切捨て工程中に１つの値を定数値に固定しようと試みると仮定すると、その場合は２つの値ｍｍａｓｋ１およびｍｍａｓｋ２のどちらも一定ではなくなり、ならびに攻撃者がｍｍａｓｋ１およびｍｍａｓｋ２の計算の終了時に１つの値を固定しようと試みると仮定すると、その場合は２つの値の１つは定数ではなくなることを保証することを可能にする。この実装は、攻撃者が１つの値だけを修正する間に、ｍｍａｓｋ１およびｍｍａｓｋ２を定数値に設定するであろう欠陥の単一点を使用する可能性を防止する。
【００２７】
第１の応用によれば、暗号アルゴリズムブロック暗号はＤＥＳアルゴリズムの一部であり、ｎ＝９６である。
【００２８】
これは、ＤＥＳアルゴリズムへの本発明の応用に対応する。メッセージｍは、長さ６４ビットのブロック暗号ＤＥＳへの入力メッセージである。関数Ｆ１は、例えば、入力ブロックメッセージｍにまたはＤＥＳの初期転置ＩＰ後のブロックメッセージに適用されることができ、そしてＭ＝ＩＰ（ｍ）は長さ６４ビットを有する。Ｆ１およびＦ２の出力長さは１９２ビット以上であり、そしてｅｍａｓｋ１、ｅｍａｓｋ２、ｍｍａｓｋ１およびｍｍａｓｋ２の長さは９６ビットである。
【００２９】
別の応用によれば、暗号アルゴリズムブロック暗号はＡＥＳアルゴリズムの一部であり、ｎ＝１２８である。
【００３０】
これは、ＡＥＳアルゴリズムへの本発明の応用に対応する。メッセージｍは、長さ１２８ビットのブロック暗号ＡＥＳへの入力メッセージである。Ｆ１およびＦ２の出力長さは２５６ビット以上であり、そしてｅｍａｓｋ１、ｅｍａｓｋ２、ｍｍａｓｋ１およびｍｍａｓｋ２の長さは１２８ビットである。
【００３１】
本発明の有利な特徴によれば、全てのマスキング値を導出するためにランダム秘密関数が更に使用され、前記ランダム秘密関数はいくつかの層のテーブルに累積的に適用される。
【００３２】
この特徴により、一方でｍｍａｓｋ１からおよび他方でｍｍａｓｋ２から、テーブルの入出力値をマスクするために、実装において異なる層のテーブルを通して使用されることになるマスキング値の２つのシーケンスを、決定論的な方法で導出することが可能である。攻撃者が中間マスキング値からマスキング値を導出するのを防止するために、導出関数の仕様は可能な限り秘密に保たれなければならない。
【００３３】
より更に有利には、ランダム秘密関数は連続した層のテーブルに累積的に適用される。
【００３４】
ランダム秘密関数を連続した層のテーブルに累積的に適用することによって、マスキング値が実装においてあらゆる層のテーブルごとに変更されるので、サイドチャネル解析の複雑さを増加させる。利点は、ランダム秘密関数が、同じマスキング値の多重使用による情報漏えいの危険性を低減させるということである。
【００３５】
特定の実装によれば、ランダム秘密関数の累積的適用は次の通り：
第１層のテーブルに関しては、第１層におけるテーブルｉのマスクの値であるｍｍａｓｋ１，Ｉによる、全てのｘについての：
【数３】
2019530352.tif 000005
および、全てのｘについての、
【数４】
2019530352.tif 000006
の計算であり、ｉは第１層のテーブルのインデックスである。
【００３６】
入力へのマスキングの値（すなわち
【数５】
2019530352.tif 000007
）が決して明示的に計算されず、および出力へのマスキングの値（すなわち
【数６】
2019530352.tif 000008
も決して明示的に計算されない一方、テーブルが入力への値
【数７】
2019530352.tif 000009
で、および出力への値
【数８】
2019530352.tif 000010
で実際にランダム化されるので、第１層へのそのような適用はセキュリティ利点を提供する。そのため、攻撃者は、２つの値だけを観察することによっては、マスキング値およびそのマスクを相関させることができない。マスキング値が同じ層におけるテーブルごとに異なることも留意される。
【００３７】
更なる実装によれば、ランダム秘密関数の累積的適用は次の通り、
全てのｘについて、
【数９】
2019530352.tif 000011
および、全てのｘについて、
【数１０】
2019530352.tif 000012
の計算であり、ｉは第２層のテーブルのインデックスである。
【００３８】
第２層へのそのような適用により、本方法は、第１層に対してと同じ利点を更に提示し、加えて、新たなマスキング値の導出は、攻撃者が第１および第２層間の中間値の内部衝突を検出することができるのを防止する。
【００３９】
一般的原理では、ランダム秘密関数の累積的適用は次の通り、
その他の層ｊに関しては、全てのｘについて、
【数１１】
2019530352.tif 000013
および、全てのｘについて、
【数１２】
2019530352.tif 000014
の計算であり、ｉは層ｊにおけるテーブルのインデックスである。
【００４０】
この実装は、各層でサイドチャネル解析の複雑さを増加させることを可能にする。
【００４１】
有利な特徴によれば、メッセージは、最初にマスキング値の第１の割当てと結合され、次いでその結果がマスキング値の次の割当てと結合される。
【００４２】
この特徴は、それがマスキング値を明示的に計算することなくマスクされたメッセージを計算することを可能にするので、有利である。実際、マスキング値の割当てだけがプログラムの実行中に処理される。
【００４３】
有利には、一般化された方法では、メッセージに依存するマスキング値を計算するステップは、難読化技術を使用して符号で難読化されたｔ個の秘密定数値、およびｐ個の導出関数Ｆ１、…、Ｆｐに基づく、テーブルネットワークの入力に対するｔ個の値ｍｍａｓｋ１、ｍｍａｓｋ２、…、ｍｍａｓｋｔの計算を含む。
【００４４】
そのような一般化された実施形態はｔ次のＤＣＡに対するセキュリティを提供する。メッセージを使用するランダム化は、実行中に攻撃者による関連値のｐ−１回の固定まで保たれなければならない。これは、攻撃者が複合攻撃を仕掛けるために実行中に少なくともｐ回の値の関連する修正を必要とするであろうことを意味する。
【００４５】
本発明の一般化された応用によれば、第１ステップは、第１層のテーブルを、入力でマスキング値ｍｍａｓｋ１および出力でＧ（ｍｍａｓｋ１）を使用してランダム化し、第２ステップは、前ステップのテーブルを、入力でマスキング値ｍｍａｓｋ２および出力でＧ（ｍｍａｓｋ２）を使用して再ランダム化し、…、第ｔステップは、前ステップのテーブルを、入力でマスキング値ｍｍａｓｋｔおよび出力でＧ（ｍｍａｓｋｔ）を使用して再ランダム化し、
第ｔ＋１ステップは、次いで第２層のテーブルを、入力でマスキング値Ｇ（ｍｍａｓｋ１）、…、Ｇ（ｍｍａｓｋ）およびテーブルの出力でマスキング値Ｇ（Ｇ（ｍｍａｓｋ１））、…、Ｇ（Ｇ（ｍｍａｓｋ））を使用してランダム化し、第２層に対する第２ｔステップまで同様に続き、そして、引続き、一般的に、各（ｊ−１）＊ｔ＋１ステップが、第ｊ層のテーブルを、入力でマスキング値Ｇ（ｊ−１）（ｍｍａｓｋ１）、…、Ｇ（ｊ−１）（ｍｍａｓｋ）および出力でＧ（ｊ）（ｍｍａｓｋ１）、…、Ｇ（ｊ）（ｍｍａｓｋ）を使用することによってランダム化し、第ｊ層に対するｊ＊ｔステップまで同様に続く。
【００４６】
そのような実装は、攻撃者が相関させることができるとみなされる値の予想最大数であるｔ、および攻撃者が実行トレース当たり修正することができるとみなされる値の予想最大数である値ｐに依存する、実装されたアルゴリズムの高次の保護を与える。
【００４７】
本発明は、本発明の方法を実装する計算資源を有する装置にも関する。
【００４８】
前記および関連した目的の達成のため、１つまたは複数の実施形態が、以下完全に説明され、および特に請求項で指摘される特徴を備える。
【００４９】
以下の説明および添付図面が一定の例証的な態様を詳細に説明し、および実施形態の原則が利用されることができる様々な方法のほんの数例を示す。他の利点および新規な特徴は、図面と併せて考慮されると、以下の詳細な説明から明らかになるであろうし、開示した実施形態は、全てのそのような態様およびそれらの等価物を含むと意図される。
【図面の簡単な説明】
【００５０】
【図１】ＤＥＳアルゴリズムの典型的な実装の概略フローチャートである。
【図２】符号化のないテーブルの部分ネットワークとして表される、図１のＤＥＳアルゴリズムの有利な実装の概要図である。
【図３】図３は、メッセージに適用されることになるＤＥＳアルゴリズムのブロック暗号の、符号化されたテーブルベースの実装に至る、Ｃｈｏｗらの提案によって修正された図１のＤＥＳアルゴリズムの有利な実装の概要図である。
【図４】本発明の方法のフローチャートである。
【発明を実施するための形態】
【００５１】
本発明のより完全な理解のために、本発明は、ここで添付図面を参照しつつ詳細に説明されることになる。詳細な説明は、本発明の好適な実施形態と考えられるものを例示および説明することになる。形態または細部の様々な変更および改変が本発明の趣旨から逸脱することなく直ちになされ得ることがもちろん理解されるべきである。したがって、本発明が、本明細書に図示および説明される厳密な形態および細部にも、本明細書に開示され以下に特許請求される本発明の全体以外の何ものにも限定されなくてもよいことが意図される。同じ要素は、異なる図面において同じ参照符号で示されている。明確にするため、本発明の理解にとって有用である要素およびステップだけが図面に図示されており、および説明されることになる。
【００５２】
「Ａ  Ｗｈｉｔｅ−Ｂｏｘ  ＤＥＳ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｆｏｒ  ＤＲＭ  Ａｐｐｌｉｃａｔｉｏｎｓ」、Ｃｈｏｗら、２００２年１０月１５日、Ｐｒｅ−ｐｒｏｃｅｅｄｉｎｇｓ  ｆｏｒ  ＡＣＭ  ＤＲＭ−２００２  ｗｏｒｋｓｈｏｐに開示されるＣｈｏｗ実装によるＤＥＳアルゴリズム実装に関する例証的な例が以下に与えられる。
【００５３】
ＤＥＳアルゴリズムは、各々同じ８つのＤＥＳ  Ｓボックス（ＤＳＢ）Ｓ１…Ｓ８、ならびに初期および最終ＡＴ、初期および最終転置間に挟まれる同じＡＴを利用する１６ラウンドで実行される。各ＤＢＳは、例えばＪ．Ｍｅｎｅｚｅｓ、Ｐ．Ｃ．ｖａｎ  ＯｏｒｓｃｈｏｔおよびＳ．Ａ．Ｖａｎｓｔｏｎｅ、Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ、２５０−２５９頁、ＣＲＣ  Ｐｒｅｓｓ、２００１（訂正第５刷）に開示される４６Εのインスタンスである。
【００５４】
図１は、ＫｒがＣｈｏｗらによるラウンドｒのラウンドサブキーである２つの代表的なＤＥＳラウンドの展開を概略的に図示する。図１に図示されるように、バイパス左側データパスＬｒ−１、Ｌｒ、Ｌｒ＋１を持つファイステルネットワークが、ラウンド構造で実装される。図の他の部分はアクティブな右側データパスを表す。
【００５５】
図２は、上記引用した文書で提案されるように符号化される実装を概略的に図示する。各ラウンドは、ここで２つの層：第１層は、ｘｏｒ加算にラウンドキーを埋め込む１２個のＴボックスによって構成されて、非線形ＤＥＳ  Ｓボックスが続き、第２層は、図２にｒ−１Ｍ２によって表されており、ＤＥＳ仕様に対応しおよびテーブルのネットワークを使用して実装される状態の転置である、によって表される。この第２層において、左右の側が単一の９６ビット表現に結合され、そしてＰボックス、ｘｏｒ、サイドフリップおよびＥボックスを包含するために単一のｒＭ２変換が使用される。
【００５６】
６４ビットから内部９６ビット形式への入力の初期拡大をするために更に初期行列Ｍ１が使用され、そして出力の最終縮約のために行列Ｍ３が使用される。
【００５７】
したがって、ＤＥＳアルゴリズムのラウンドを実装するために一組の行列が使用される。
【００５８】
ｒＫＳｉとして識別される新たなＳボックスが生成され、ここでＫは暗号鍵であり、ｒはラウンド番号であり、そしてｉは対応するＤＳＢ（ＤＥＳ  Ｓボックス）番号であり、任意の所与の入力に対して、ＤＥＳ鍵がＫであったなら、図１に図示されるＳｉがラウンドｒで生成するであろう結果と同じものを、ｒＫＳｉが生ずるだろうが、元のＤＳＢの入力のｘｏｒは除去されている。それは、鍵Ｋをアルゴリズムから消滅させることを可能にする。
【００５９】
得られた実装は統計攻撃に弱い。それらに対抗するために、損失性Ｓボックスは全単射関数と置き換えられる。
【００６０】
図２に例示されるように、分岐パス（ｓｐｌｉｔ  ｐａｔｈ）符号化が、Ｓボックス番号ｉ＝１…８に対して、ラウンドｒ＝１…１６に対して、固定鍵Ｋに対して、全ての８ｅについて、
【数１３】
2019530352.tif 000015
の計算を通じて行われ、式中、全ての８ｅについてＲ（８ｅ）＝＜８ｅ１；８ｅ６；８ｅ７；８ｅ８＞と定義する。
【００６１】
したがって変換されると、各ｒＫＴｉは、次のｒＭ２に８ビット：Ｓボックス出力の４ビット、右側から２ビット、および左からであるように選ばれることができる２ビット、を送る。これは、８つのＴボックスが左から１６ビットおよび右から１６ビットを送るだけになることを意味する。これは、ｒＫＴｉのバイパス容量が３２ビットも少ないことを意味する。
【００６２】
したがって、各ラウンドに対して更に４つのＳボックスが追加され、これらの追加のＳボックスが、後続の処理のためにバイパスされたビットにアクセスすることをより容易にする。
【００６３】
図２は、Ｃｈｏｗによって得られる、ＡＴの非線形化およびＳボックスの符号化の直前のＤＥＳ実装の全体のデータフロー構造を図示する。
【００６４】
したがって非線形化および符号化前に、各Ｍｉは行列として表現可能である。これは、例えば、全実装がネットワーク化された８×４および８×８（ｒＫＴｉ）Ｓボックスから成ることを意味する。
【００６５】
したがって、テーブル層が「Ｐ２，１  １ＫＴｉボックス  Ｐ２，２」に対応し、次のレベルが「Ｂ１，３」での「ｂ１，２＾｛−１｝」の次のパケットに対応し、次いで次のレベルが「ｂ１，３＾｛−１｝，２ＫＴｉボックス，ｂ１，４」型である等。
【００６６】
Ｃｈｏｗらに開示される実装により、ＤＥＳまたはＡＥＳなどのいかなる暗号アルゴリズムのブロック暗号も一連のルックアップテーブルに変換される。特に、標準Ｓボックスは鍵特定Ｓボックスと置き換えられる。これらの鍵特定Ｓボックスは、次にローカルセキュリティを提供するようになされる。したがって、そのような実装は、ローカルセキュリティのための秘密可逆符号化の適用によって、上記引用したＣｈｏｗらの文書に開示されるように完成される。この実装は、混乱を増すための拡散および非線形符号化を増加させるための混合全単射を含む。図２は、ａｔの非線形化およびＳボックス文字の符号化の直前の、提案されたＤＥＳ実装の全体のＣｈｏｗデータフロー構造を図示する。結果的な構造は、各行列Ｍｉおよび各ｒＫＴｉが、以下に一般的にＴａｂｉ，ｊと表される対応するテーブルと置き換えられること以外は非線形化および符号化の後と全く同じに見えるであろう。
【００６７】
したがって、そのような演算後に、テーブルＴａｂｉ，ｊのネットワークが構築され、ここでインデックスｉは層ｊの第ｉのテーブルを示す。Ｔボックスのラウンドの第１層に関して、図１および２に表されるように、ｉは１−１２の間であり、そしてｊ＝ｒである。行列Ｍに対応する次の層に関して、より多くのテーブルが一般に使用され、そして前図に提示されるいくつかのラウンドｒが異なる層で重なって処理されて、Ｃｈｏｗの実装に特定のインデックスｊに至る。これは全て先行技術で開示されている。この段階で、入力ｍで、テーブルＴａｂｉ，ｊのネットワークは、ＤＥＳ［Ｋ］（ｍ）の値を計算する。しかしながら、計算の中間値は保護されておらず、中間値および入力メッセージの知識から鍵Ｋを再計算することが容易である。
【００６８】
ＤＥＳアルゴリズムは、したがって、ローカルセキュリティを提供するブロック暗号の符号化されたテーブルベースの実装である行列変換に埋め込まれる。テーブルＴａｂｉ，ｊのネットワークは、テーブルが入力および／または出力秘密符号化ｂｉ，ｊを使用して保護されているネットワークのテーブルＴＣｉ，ｊに変換される。先行技術で知られているこの符号化ステップは図３に概略的に図示される。
【００６９】
本発明は、ＤＣＡ攻撃に更に対抗するために、図３に図示されるような実装に適用する。本発明は、アルゴリズムの各層のテーブルＴＣｉ，ｊで後続のマスクｍｍａｓｋｉ、Ｇ（ｍｍａｓｋｉ）…Ｇ＾３２（ｍｍａｓｋｉ）を導入するオリジナルなマスキング方式を提案する。
【００７０】
本発明は、２次ＤＣＡに対して抵抗するために、メッセージに依存するマスキング値およびテーブルの（再）ランダム化を計算すること、ならびにランダム化されたテーブルのネットワークに基づいてラウンドを計算して、Ｃｈｏｗらを使用して実装されるＤＥＳまたはＡＥＳ実装を保護することを提案する。
【００７１】
図４に図示されるように、第１のステップＳ１で、テーブルネットワークの入力に対して、ｍｍａｓｋ１およびｍｍａｓｋ２で表される２つのマスキング値の割当てが計算される。入力は、ＤＥＳの場合９６ビット値、ＡＥＳの場合１２８ビット値である。これらの２つのマスキング値の割当ては、少なくとも、２つの異なるメッセージ導出関数Ｆ１およびＦ２に基づく。それらの導出関数は、例えば、ハッシュ関数に基づく１つの導出関数およびＣＲＣ計算に基づく１つの導出関数である。
【００７２】
好適な実施形態において、計算は、特別な（ａｄ−ｈｏｃ）難読化技術を使用して符号で難読化された２つの値ｅｍａｓｋ１およびｅｍａｓｋ２に更に基づく。
【００７３】
操作値のサイズはブロック暗号の選択に依存する：ＤＥＳのＣｈｏｗらの実装の場合９６ビット、ＡＥＳの場合１２８ビット。本発明の原理は両方の場合で同じである。
【００７４】
例えば、好適な実施形態によれば：
−  ｈ１＝Ｆ１（ｍ）（またはｈ１＝Ｆ１（Ｍ））
−  ｈ２＝Ｆ２（ｍ）（またはｈ２＝Ｆ２（Ｍ））
−  
【数１４】
2019530352.tif 000016
−  
【数１５】
2019530352.tif 000017
式中、ｍはＤＥＳに対する９６ビットメッセージであり、そしてＭはＤＥＳに対する６４ビットメッセージである。ＤＥＳの場合、サイズは、メッセージｍが元の入力Ｍであるか、Ｃｈｏｗらの実装で初期変換後のメッセージｍであるかに依存する。ＡＥＳの場合、メッセージＭ＝ｍで、それは１２８ビットメッセージである。
【００７５】
実際には、メッセージからマスクを導出するために擬似乱数発生器が使用される。発生器は、メッセージとそのマスクとの間に悪用可能な代数的関係が存在しないようなものである。スマートカードコンテキストでは、マスクがいずれにしろランダムであり、メッセージとマスキング値との間の独立に関して問題はないことがここで留意される。
【００７６】
一旦初期値ｍｍａｓｋ１およびｍｍａｓｋ２が、秘密の難読化された値、テーブルのネットワークへの入力メッセージｍ、ならびに導出関数Ｆ１およびＦ２を使用して導出されると、全てのマスキング値を導出するためにステップＳ２でランダム秘密関数Ｇが使用される。一例として、Ｇはテーブルを使用して実装される。
【００７７】
２次解析に対する抵抗を目標とするために、ここでテーブルが２つのステップでランダム化される。
【００７８】
より詳細には、第１層のテーブルに関して、ステップＳ３で：
全てのｘについて、
【数１６】
2019530352.tif 000018
を、およびステップＳ４で：
全てのｘについて、
【数１７】
2019530352.tif 000019
を計算する。
【００７９】
第２層に関して、ステップＳ５で、Ｇ（Ｇ（ｍｍａｓｋ１））およびＧ（Ｇ（ｍｍａｓｋ２））を、ならびにステップＳ６で：
全てのｘについて、
【数１８】
2019530352.tif 000020
を、ならびに、ステップＳ７で：
全てのｘについて、
【数１９】
2019530352.tif 000021
を計算する。
【００８０】
その他の層に関しても同様に続く。ｘはテーブルサイズに依存する。８ビットサイズのテーブルの場合、入出力で、ｘは１組の値［０，１］＾８を示す。ｘはテーブルの入力サイズに対応する。計算は、層にテーブルがあるのと同じ回数だけ行われることになり、この数はテーブルの種類に依存する。テーブルは入力サイズおよび出力サイズを有する。一例としてＴボックステーブルの場合、入力サイズは８ビットであり、そして出力サイズは８ビットである。次の層Ｍ２，１に関して、ＸＯＲテーブルが必要とされる。したがって、ＸＯＲテーブルの入力サイズは２＊４ビットであり、そして出力サイズは４ビットである。ＡＥＳアルゴリズムは他のサイズのテーブルを必要とする。
【００８１】
より一般的に、層ｊに関して、ステップＳ３ｊ−１で、Ｇ（ｊ−１）（ｍｍａｓｋ１））およびＧ（ｊ−１）（ｍｍａｓｋ２））を、ならびにステップＳ３ｊで：
全てのｘについて、
【数２０】
2019530352.tif 000022
を、ならびに、ステップＳ３ｊ＋１では：
全てのｘについて、
【数２１】
2019530352.tif 000023
を計算する。
【００８２】
一旦全てのテーブルが再ランダム化されると、ランダム化されたテーブルのネットワークに基づいてラウンドを計算する最終ステップが行われる。
【００８３】
本発明により、入力メッセージＭはテーブルのネットワークに対する入力メッセージｍに変換され、そしてメッセージｍはｍｍａｓｋ１およびｍｍａｓｋ２を使用してランダム化される。
【００８４】
結果的に、ランダム化されたテーブルのネットワークへの入力は、
【数２２】
2019530352.tif 000024
である。このステップで、
【数２３】
2019530352.tif 000025
の計算を回避することが重要である。１つの可能性は、例えば、最初に
【数２４】
2019530352.tif 000026
を、次に
【数２５】
2019530352.tif 000027
を計算することである。
【００８５】
提案した実装は、テーブルの入力および出力に対してマスキング値
【数２６】
2019530352.tif 000028
もその他のマスキング値
【数２７】
2019530352.tif 000029
も操作しない。それは、２次ＤＣＡに対して保護することを可能にする。
【００８６】
テーブルのネットワークに応じて、いくつかの入力を再結合する必要があるとき、層間の再調節ステップを追加することが必要である。実際、テーブルの出力のマスキング値が必ずしも次の層の入力のマスキング値に対応するわけではない。したがって、マスキング値を適切なマスキング値と再調節する追加ステップを追加することが必要である。この演算は攻撃を更に困難にする。
【００８７】
次数ｔおよび耐性ｔへの本発明の一般化が以下になされる。
【００８８】
２つの値ｍｍａｓｋ１およびｍｍａｓｋ２を管理する代わりに、ｔ個の値ｍｍａｓｋ１、ｍｍａｓｋ２、…、ｍｍａｓｋｔが管理される。２つの関数を使用してマスキング値の割当てを導出する代わりに、ｐ個の関数ｈ１、…、ｈｐが使用される。したがって追加特性が目標とされる、すなわち攻撃者が実行中に多くともｐ−１個の関連値を定数に設定することに成功した場合、全ての構成要素ｍｍａｓｋ１、…、ｍｍａｓｋｔが、それにもかかわらず、変化することになる。例えば、ＤＥＳアルゴリズムの場合：
−  ｈ１＝Ｆ１（ｍ）
−  ｈ２＝Ｆ２（ｍ）
−  …
−  ｈｐ＝Ｆｐ（ｍ）
−  
【数２８】
2019530352.tif 000030
−  
【数２９】
2019530352.tif 000031
−  …
−  
【数３０】
2019530352.tif 000032
式中、関数ｈ１、…、ｈｐは、入力として、ＤＥＳの場合６４ビット入力メッセージまたは９６ビット入力メッセージ、ＡＥＳの場合１２８ビット入力メッセージをとる。それは、ＤＥＳの場合９６ｔ、ＡＥＳの場合１２８ｔの長さの出力メッセージを提供する。
【００８９】
一旦初期マスキング値ｍｍａｓｋ１、…、ｍｍａｓｋｔが、秘密の難読化された値、テーブルのネットワークへの入力メッセージｍ、ならびに導出関数Ｆ１、…、Ｆｔを使用して導出されると、全てのマスキング値を導出するためにランダム秘密関数Ｇが使用される。一例として、Ｇはテーブルを使用して実装される。
【００９０】
ｔ次解析に対する抵抗を目標とするために、ここでネットワークの全てのテーブルがｔ個のステップでランダム化される。
【００９１】
最初に、第１層のテーブルが、入力でマスキング値ｍｍａｓｋ１および出力でＧ（ｍｍａｓｋ１）を使用してランダム化される。次いで、前ステップのテーブルが、入力でマスキング値ｍｍａｓｋ２および出力でＧ（ｍｍａｓｋ２）を使用して再ランダム化される。連続した同様のランダム化が行われる。したがって第１層に対する第ｔステップで、前ステップのテーブルが、入力でマスキング値ｍｍａｓｋｔおよび出力でＧ（ｍｍａｓｋｔ）を使用して再ランダム化される。
【００９２】
次に、第２層のテーブルが、入力でマスキング値Ｇ（ｍｍａｓｋ１）、…、Ｇ（ｍｍａｓｋ）およびテーブルの出力でマスキング値Ｇ（Ｇ（ｍｍａｓｋ１））、…、Ｇ（Ｇ（ｍｍａｓｋ））を使用してランダム化される。
【００９３】
より一般的に、第ｊ層のテーブルが、入力でマスキング値Ｇ（ｊ−１）（ｍｍａｓｋ１）、…、Ｇ（ｊ−１）（ｍｍａｓｋ）および出力でＧ（ｊ）（ｍｍａｓｋ１）、…、Ｇ（ｊ）（ｍｍａｓｋ）を使用することによってランダム化される。
【００９４】
一旦全てのテーブルが（再）ランダム化されると、ランダム化されたテーブルのネットワークに基づいてラウンドを計算する最終ステップが行われる。
【００９５】
上記の詳細な説明において、本発明が実践されることができる特定の実施形態を、例証として、図示する添付図面が参照される。これらの実施形態は、当業者が本発明を実践することを可能にするのに十分に詳細に説明される。上記の詳細な説明は、したがって、限定的にとられるものではなく、本発明の範囲は、添付の請求項がその権利を与えられている全範囲の均等物とともに適切に解釈される請求項によってのみ定められる。
【図１】
2019530352.tif 000045
【図２】
2019530352.tif 000046
【図３】
2019530352.tif 000047
【図４】
2019530352.tif 000048
【国際調査報告】
2019530352.tif 000049
2019530352.tif 000050
2019530352.tif 000051