(57)【要約】  本発明は特に情報漏洩の観測に基づく攻撃から保護される暗号回路に関する。暗号回路（２１）には暗号アルゴリズムを実行するための関数鍵ｋｃが含まれる。それには関数および秘密鍵ｋｃをマスキングすることによって保護するためのまたはアルゴリズムの秘密実装を保護するための回路に特有の第２の固有の鍵ｋｉが含まれる。
2012516094.tif 000002
【特許請求の範囲】
【請求項１】
暗号アルゴリズムを実行するための関数鍵ｋｃを含む暗号回路（２１）であって、前記回路はｋｃとは別のおよび前記回路のそれぞれの例に専用の、前記回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第２の鍵ｋｉを含むことを特徴とする回路。
【請求項２】
前記関数鍵ｋｃはＸＯＲ演算によって前記２つの鍵を組み合わせることにより前記第２の鍵ｋｉによってマスクされ、入力変数ｘはマスク鍵
【数１】
2012516094.tif 000013
によって暗号化されることを特徴とする請求項１に記載の回路。
【請求項３】
前記第２の鍵ｋｉは秘密実装によって前記鍵を保護する役割を果たすことを特徴とする請求項１に記載の回路。
【請求項４】
前記第２の鍵ｋｉは秘密アルゴリズムを保護する役割を果たすことを特徴とする請求項１に記載の回路。
【請求項５】
前記秘密アルゴリズムは前記鍵ｋｉでのマスキングにより保護される２つの秘密関数（３０、３１）を囲い込みすることによりカスタマイズされる標準暗号アルゴリズムを含むことを特徴とする請求項４に記載の回路。
【請求項６】
前記第２の鍵ｋｉはＰＵＦ（Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）またはＰＯＫ（Ｐｈｙｓｉｃａｌｌｙ  Ｏｂｆｕｓｃａｔｅｄ  Ｋｅｙ）タイプの関数により生成されることを特徴とする、請求項１〜５のいずれか１項に記載の回路。
【請求項７】
前記第２の鍵ｋｉは前記回路の作製後にセキュアな筐体内の固有の乱数でのカスタム化によってプログラムされることを特徴とする、請求項１〜５のいずれか１項に記載の回路。
【請求項８】
前記第２の鍵ｋｉによって導入されるマスキングはＨＯ‐ＤＰＡ高階攻撃から保護されることを特徴とする、請求項１〜７のいずれか１項に記載の回路。
【請求項９】
回路に固有の実装鍵としての役割を果たす前記第２の鍵ｋｉの知識は、保護管理プロシージャの、前記管理を担う特権ユーザによる使用を可能にすることを特徴とする、請求項１〜８のいずれか１項に記載の回路。
【請求項１０】
ＦＰＧＡタイプのプログラマブル回路において実現されることを特徴とする、請求項１〜９のいずれか１項に記載の回路。
【請求項１１】
前記第２の鍵ｋｉはＦＰＧＡのプログラミングファイルを介してカスタマイズされてもよいことを特徴とする、請求項１〜１０のいずれか１項に記載の回路。
【請求項１２】
ソフトウェアの実装によって実現されることを特徴とする、請求項１〜９のいずれか１項に記載の回路。
【請求項１３】
前記ＦＰＧＡ回路の前記プログラミングファイル（２５）を暗号化するための第３の鍵ｋｂを含み、これが外部記憶の機密性および前記ＦＰＧＡへの前記鍵ｋｉの移転の機密性を付与することを特徴とする、請求項１０または１１に記載の回路。
【請求項１４】
前記第２の鍵ｋｉの基数は前記関数鍵ｋｃの基数に等しいことを特徴とする、請求項１〜１３のいずれか１項に記載の回路。
【請求項１５】
第３の鍵ｋｂの基数は前記関数鍵ｋｃの前記基数よりも大きいかまたは等しいことを特徴とする、請求項１３または１４に記載の回路。
【請求項１６】
前記暗号化アルゴリズムはＤＥＳアルゴリズムであることを特徴とする、請求項１〜１５のいずれか１項に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はそれらの暗号化により特に情報漏洩観測攻撃から保護される暗号回路に関する。
【背景技術】
【０００２】
公共の媒体上を伝達させる必要があるデータへのあらゆる悪意ある強要から守るために、ますます多くの通信および情報処理システムに暗号方法が用いられている。特に、暗号化によってデータの機密性が保証され、暗号ダイジェストによってそれらの正真性が保証され、電子署名によってそれらの認証が保証される。これらそれぞれの場合において、データの送信を担う側とこれらのデータの受信を担う側との間に共通の秘密が機能するが、これら２つの側が同一である場合もある。これらのセキュリティメカニズムに敵意のある、つまりメッセージの内容を不正に突きとめること、取引の内容を改ざんすること、非人格化すること、またはやり取りの出所を否定することを望む攻撃者にとって、最大の目的は認証された受信者側に類似する勢力から、罰せられることなく利益を得るように共通の秘密を取り出すことである。
【０００３】
暗号アルゴリズムに対する直接攻撃はこれまでも可能であったが、今もなお可能な場合がある。それでもなお論理的欠陥の継続的な減少が見られている。特にますます多くの暗号アルゴリズムが国際審査基準を通過した後に標準化されている。これは１９９０年代末のＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｏｎ  Ｓｔａｎｄａｒｄ）対称暗号の場合で顕著である。同様の筋書きが次世代のＳＨＡセキュアハッシュアルゴリズム３で現在繰り広げられている。
【０００４】
しかしながら、通信および情報処理のための手段のローミング能力が増すとともに、新しい攻撃が考えられるようになっている。実行速度の点から、それを構成する電子回路、例えばＤＰＡ攻撃によるエネルギー消費量の点から、またはその放射挙動、例えばＥＭＡ攻撃による磁気放射の点からシステムの時間的挙動を観測することにより大量の情報が漏洩しうる。サイドチャネルへのこれらの攻撃に対しては、特に、
この例では秘密とは無関係に漏えいを一定にすることを伴う秘匿と、
漏えいをランダムにすることを伴う、つまり予測不能でありしたがって利用不可能とするマスキングと、を基にする保護が提案されている。
【０００５】
これらの２つの技法は情報の取得を狙った攻撃の困難さを増すことを可能とするが、それらはそれでもなお実装欠陥から利益を得るであろう攻撃に対しては依然脆弱である。ＤＰＡ攻撃の例は、Ｐ．Ｋｏｃｈｅｒらによる文献，Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ，  Ｉｎ  ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＣＲＹＰＴ’９９，  ｖｏｌｕｍｅ  １６６６  ｏｆ  ＬＮＣＳ，  ｐａｇｅｓ  ３３８−３９７，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９９に記載されている。ＥＭＡ攻撃の例はＫ．Ｇａｎｄｏｌｆｉらによる文献、Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ａｎａｌｙｓｉｓ−Ｃｏｎｃｒｅｔｅ  Ｒｅｓｕｌｔｓ，  Ｉｎ  ＣＨＥＳ，  ｖｏｌｕｍｅ  ２１６２  ｏｆ  ＬＮＣＳ，  ｐａｇｅｓ  ２５１−２６１，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  ２００１に記載されている。
【０００６】
起こりうるまたは立証された脆弱性の例は数多く存在する。
以下が特に挙げられる。
差分論理（ＷＤＤＬなどの）に基づく秘匿は計算フェーズと評価フェーズとプリチャージフェーズとのうちの１つまたは別の間の累積した組み合わせのずれの差への攻撃に対して脆弱となる場合がある。
マスキングはＨＯ−ＤＰＡと呼ばれる高階攻撃に敏感な場合がある。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の目的は特にこれらの、特にＤＰＡまたはＥＭＡタイプの攻撃に対抗することである。この目的のため、本発明の対象は暗号アルゴリズムを実行するための関数鍵ｋｃを含む暗号回路であって、前記回路はｋｃとは別の前記回路のそれぞれの例に特有の、回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第２の鍵ｋｉを含むことを特徴とする。
【０００８】
この第２の鍵は専用の記憶装置に保存することができるかまたは構成要素に特有となりうるかのどちらかである。
【０００９】
関数鍵ｋｃは例えばＸＯＲ演算によって２つの鍵を組み合わせることにより第２の鍵ｋｉによってマスクされ、入力変数ｘはマスク鍵
【数１】
2012516094.tif 000003
によって暗号化されている。
【００１０】
第２の鍵ｋｉは例えば秘密実装によって鍵ｋｃを保護する役割を果たす。
【００１１】
第２の鍵ｋｉは例えば特に鍵ｋｉでマスキングすることにより保護される２つの秘密関数の囲い込みによってカスタマイズされる標準暗号アルゴリズムからなる秘密アルゴリズムを保護する役割を果たす。
【００１２】
第２の鍵ｋｉは例えばＰＵＦ（Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）またはＰＯＫ（Ｐｈｙｓｉｃａｌｌｙ  Ｏｂｆｕｓｃａｔｅｄ  Ｋｅｙ）タイプの関数により生成される。
【００１３】
第２の鍵ｋｉはまた回路の作製後にセキュアな筐体内で固有の乱数を用いたカスタム化によってプログラムされうる。
【００１４】
第２の鍵ｋｉにより導入されるマスキングはＨＯ−ＤＰＡ高階攻撃に対して保護されてもよい。
【００１５】
回路に固有の実装鍵としての役割を果たす第２の鍵ｋｉの知識により、例えば保護管理プロシージャを、前記管理を担う特権ユーザが使用することが可能となる。
【００１６】
これはＦＰＧＡタイプのプログラマブル回路で実現されてもよい。
【００１７】
第２の鍵ｋｉはＦＰＧＡのプログラミングファイルを介してカスタマイズされてもよい。
【００１８】
有利には、回路はソフトウェアの実装により実現されてもよい。
【００１９】
それは例えば前記ＦＰＧＡ回路のプログラミングファイル（２５）を暗号化し、これにより外部記憶の機密性およびＦＰＧＡへの鍵ｋｉの移転の機密性を付与するための第３の鍵ｋｂを含む。
【００２０】
第２の鍵ｋｉの基数は例えば関数鍵ｋｃの基数に等しい。これはｋｉへの隠しチャネル攻撃をｋｃへの暗号解読攻撃よりも困難にするためである。
【００２１】
第３の鍵ｋｂの基数の基数は関数鍵ｋｃの基数よりも大きいかまたは等しい。
【００２２】
この暗号化アルゴリズムはＤＥＳアルゴリズムである。
【００２３】
本発明の他の特性および利点は添付の図面に関連して記載される以下に続く説明の支援を得ることにより明らかとなる。
【図面の簡単な説明】
【００２４】
【図１】ＤＥＳアルゴリズムの鍵のマスキングによる保護を含む典型的な回路の図である。
【図２】マスキングがない同じ回路の図である。
【図３】マスキングによる実装を保護するようにアルゴリズムに付加される事前符号化の例の図である。
【図４】本発明による回路を実現する原理の図である。
【発明を実施するための形態】
【００２５】
図１に本発明が適用されうるマスキングのモードを呈示する。特に図１には、特にＳ．Ｇｕｉｌｌｅらによる文献、Ａ  ｆａｓｔ  Ｐｉｐｅｌｉｎｅｄ  ＭｕｌｔｉＭｏｄｅ  ＤＥＳ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｏｐｅｒａｔｉｎｇ  ｉｎ  ＩＰ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ，  Ｉｎｔｅｇｒａｔｉｏｎ，  Ｔｈｅ  ＶＬＳＩ  Ｊｏｕｒｎａｌ，  ４０（４）  ｐａｇｅｓ  ４７９−４８９，  Ｊｕｌｙ  ２００７，  ＤＯＩに概要が示されるアーキテクチャに従い実装されるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）アルゴリズムのマスキングの図が例として呈示される。図１の回路は例えばＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）タイプのプログラマブル論理回路で実現される。このアルゴリズムでは、データパスは２つの部分、左と右とに分割される。
【００２６】
対比のために、図２はマスキングによる保護を保証するためのハードウェアオーバーヘッドを強調する同様の回路を示し、このオーバーヘッドを生じさせる回路は破線により示されている。
【００２７】
したがって左のデータレジスタ３と右のデータレジスタ４との間に入力メッセージ１が割り当てられる。左のマスクレジスタ５と右のマスクレジスタ６との間にマスク２が割り当てられる。左右のデータレジスタに保存される前に、メッセージのデータは左でＸＯＲゲート７および右でＸＯＲゲート８という手段によりマスクデータと組み合わされることによってマスクされる。暗号鍵９、ｋはまたＦｅｉｓｔｅｌ関数１０によりマスクｍによってマスクされる。右のレジスタ６のマスクされるデータと右のレジスタ２の半分のマスクは、そこで右のマスクされるデータが第１の換字ボックス９により暗号化され、かつ、そこで右の半分のマスクが第２の換字ボックス１６により暗号化されるＦｅｉｓｔｅｌ関数の入力を形成する。左のデータレジスタ５と左のマスクレジスタ１のデータはＸＯＲゲート１１、１２という手段によりＦｅｉｓｔｅｌ関数の出力においてそれぞれ右のデータと新しいマスクとに組み合わされ、その後右のレジスタにループ状に戻り、左右のデータはその後暗号化されたメッセージを出力１５するようにＸＯＲゲート１３、１４により再び組み合わされる。図１のタイプの回路ではデータレジスタ５、６のみが漏洩すると想定される。
【００２８】
本発明による回路は漏洩を続けるがそれを暗号化の状態にするため理解できない。したがって例えばＤＰＡまたはＥＭＡタイプの攻撃を実行する攻撃者には以下の変数のみがわかる。
【数２】
2012516094.tif 000004
つまり秘密鍵Ｋそれ自体がマスクＭにより暗号化される。鍵Ｋのこの保護モードは、ＸＯＲとも呼ばれかつ
【数３】
2012516094.tif 000005
により表される「排他的論理和」演算を用いるＶｅｒｎａｍ暗号という名で公知であり、ＶｅｒｎａｍコードはＸＯＲ演算を用いて暗号化することができるコードである。本発明による暗号回路はしたがって情報漏洩のＶｅｒｎａｍ暗号化により隠しチャネルへの攻撃から保護される。
【００２９】
暗号化アルゴリズムが完全にカスタマイズされる用途分野が存在する。例えば秘密暗号に依存するＧＳＭの公共または私用の範囲または有料テレビがそのようなケースである。この選択を正当化するために通常述べられる主張には、回路と相関関係となる漏えい関数が未知であるためサイドチャネルへの攻撃、いわゆるＳＣＡ（Ｓｉｄｅ−Ｃｈａｎｎｅｌ  Ａｔｔａｃｋｓ）は不可能ということがある。Ｋ．Ｔｉｒｉらの文献、Ｓｉｄｅ−Ｃｈａｎｎｅｌ  Ｌｅａｋａｇｅ  Ｔｏｌｅｒａｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ，  Ｉｎ  ＩＴＮＧ’０６−Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｔｈｉｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ，  Ｎｅｗ  Ｇｅｎｅｒａｔｉｏｎ，  ｐａｇｅｓ  ２０４−２０９，  Ｗａｓｈｉｎｇｔｏｎ  ＤＣ，  ＵＳＡ，  ２００６  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙでは、アルゴリズムの実装および機能性を、ハードウェアの量の点でオーバーヘッド有りまたは無しで一度にかつ同時に変更することを提案している。前の２つのプロシージャの欠点は、暗号化が関数的に秘密であることである。これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容認されうる。しかし暗号化システムの設計および配布を監視することが困難であるほとんどの場合、この筋書きは非常に不確実である。いったん秘密の機能性が回復すると、ＤＰＡタイプの攻撃は再度容易に可能となる。さらに例えばＦＩＰＳ−１４０などの特定の証明方式では、暗号標準をカスタマイズせずに使用することが要求される。これにより特にＫ．Ｔｉｒｉらによる文献で支持されるＳＣＡに耐性のある全プロシージャは禁止とされる。
【００３０】
本発明によれば、特にこの暗号化の公知の関数の仕様に完全に準拠する一方で暗号化を実施するためには、保護される暗号回路専用のマスクを使用してマスキングによる保護が実施される。本発明による回路には、回路専用のマスクＭが単に一定であり、かつ、回路の使用者または設計者にとって未知であるマスキングアーキテクチャが含まれる。
【００３１】
図１によるマスキングパスは、実際、上述の式（１）に従い１次ＤＰＡ攻撃つまりデータレジスタ５、６のみが漏洩すると想定される攻撃の枠組み内で暗号鍵のＶｅｒｎａｍ暗号化を実施することが実証されうる。さらにマスキング周囲のいかなるバリアントもまた本発明を実施するために使用することができ、事実、実装は機能性を保持する一方でリファレンス実装とは異なるように表されることで十分である。マスキングの場合、リファレンス実装はゼロマスク（全ゼロ）を有するものと一致するが、マスクが非ゼロになるとすぐに、実装はしかしながら機能性を変更することなく変化する。ここで、実装に可変性を導入するように表現を変えることもまた可能である。例えばＡ  Ｎｅｗ  ＤＰＡ  Ｃｏｕｎｔｅｒｍｅａｓｕｒｅ  Ｂａｓｅｄ  ｏｎ  Ｐｅｒｍｕｔａｔｉｏｎ  Ｔａｂｌｅｓ．  Ｉｎ  ＳＣＮ，  ｖｏｌｕｍｅ  ５２２９  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｓ  ２７８−２９２．  Ｓｐｒｉｎｇｅｒにおいて、Ｊｅａｎ−Ｓｅｂａｓｔｉａｎ  ＣＯＲＯＮはＡＥＳの基本演算部分を２つの全単射、４ビット→４ビットを導入して変更することを提案しているが、そのような方式でそれらを組み立てることにより実際は従来のＡＥＳの計算が得られる。この表現の変化もまた秘密実装のきっかけとなりうるが、その情報漏えいはしかしながらこの文献では研究されない。
【００３２】
したがって漏えいモデルが未知であるため１次相関攻撃は不可能とされる。さらに、いわゆる「テンプレート」攻撃などの、測定値のセットまたはカタログの構造に依存する攻撃は各実装が特有であり、汎用のカタログを構築することが不可能であるため実行不可能とされる。
【００３３】
有利には、本発明において実装の多様性は暗号鍵の数に匹敵するまたは実際同等である。特に「第２の原像」タイプの攻撃はしたがって不可能である。活動中の回路と同じマスクを有する、鍵がプログラム可能な回路を偶然に見つける確率は、正しい鍵を偶然に推測する、つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際、同等である。
【００３４】
図１の例では、マスキングを実装するために付加されたハードウェアは左１と右２のマスクレジスタおよびマスクをデータと組み合わせるＸＯＲゲート１２、１３、１４ならびに右のマスクレジスタの出力を処理するＦｅｉｓｔｅｌ関数の換字回路１６で形成される。
【００３５】
ＡＳＩＣまたはＦＰＧＡをベースにした実現の枠組み内では、他のタイプの暗号プリミティブのマスキングはソースコード上で直接動作する適切なＣＡＤツールの支援で自動化されてもよい。
【００３６】
保護プロシージャは一般にサイドチャネルを介して漏洩するかもしれない秘密を含むあらゆる実装に適用できることを記すことは興味深い。直接の例は暗号鍵の保護であるが、署名鍵は同様の方式で等しく十分に保護される。さらに暗号アルゴリズムのパラメータを保護する代わりに、それが秘密の場合、アルゴリズムそれ自体を保護することもまた可能である。これは通信が２地点間で暗号化されるため（サテライトタワードデコーダ（ｓａｔｅｌｌｉｔｅ  ｔｏｗａｒｄ  ｄｅｃｏｄｅｒ））、共同利用できない暗号が実装されうる有料テレビなどの分野で起こる。したがってその中の１または２以上の要素（換字表または拡散関数などの）を変更する一方で標準化アルゴリズムを使用することは普通である。この方式で、そのセキュリティを弱体化するリスクを冒すことなくアルゴリズムのカスタム化が達成される。
【００３７】
図３は別の進行方式を示す。この例では、標準アルゴリズムＡはそのままで再利用されるが、実行される関数がもはやＡではなく、合成
【数４】
2012516094.tif 000006
になるように、それは外部符号（ＥＥｉｎおよびＥＥｏｕｔ）で囲い込まれる。この原理の説明がＣ．  Ｃｌａｖｉｅｒによる論文、Ｓｅｃｒｅｔ  Ｅｘｔｅｒｎａｌ  Ｅｎｃｏｄｉｎｇｓ  Ｄｏ  Ｎｏｔ  Ｐｒｅｖｅｎｔ  Ｔｒａｎｓｉｅｎｔ  Ｆａｕｌｔ  Ａｎａｌｙｓｉｓ，  ｉｎ  ＣＨＥＳ’０７，  ｖｏｌｕｍｅ  ４７２７  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｓ  １８１−１９４の序章にある。図３の左の部分３０、３１、３２はマスキング技法によって数値ＥＥ（Ｘ）の漏洩をどう防ぐことができるかを示す。関数ＥＥ３０は２つのレジスタ３１、３２により囲い込まれ、そこで第１のレジスタ３１はデータ
【数５】
2012516094.tif 000007
を受信する。並列に配置された
【数６】
2012516094.tif 000008
として画定される関数ＥＥ’３３はデマスキングが依然として可能であることを保証する。したがって図３の右の部分に示されるハードウェア３３、３４、３５の付加によって、アルゴリズムへの入力Ｘが何であるとしてもいずれのレジスタもＥＥ（ｘ）を含まない。この方式で、秘密の外部符号ＥＥについての任意の情報項目をバックトラックすることが不可能となる。以下では、しかしながら、普遍性を失うことなく、暗号鍵の漏えいに対する保護の典型的な場合に重点が置かれる。
【００３８】
ＦＰＧＡタイプというソリューションによって各回路が大規模な配置時でさえもそれ独自のコンフィギュレーションを有することが有利に可能となる。特にＦＰＧＡのソリューションでは、それをカスタマイズするために数値を変更するために、特に構成要素専用のマスクなどのシステム全体をリコンパイルする必要はない。これは、Ｋｅｒｃｋｈｏｆｆｓの原理に背いておらず、それぞれの実装は実際に秘密であるが独特であることを示唆している。実装を妥協することでセットアップすべてを妥協することは認められない。
【００３９】
特定のＦＰＧＡ回路の機能性の懐古的な設計は、それが恒久的な可読メモリ内に配置されるファイル内のソフトウェアに関してプログラムされるという事実によって可能とされうる。そのような懐古的な設計を避けるため「ビットストリーム」と呼ばれる、このファイルの暗号化を可能にするＦＰＧＡタイプを使用することが可能である。したがって保護はそれ自体が暗号手段により秘密にされる。コード難読化は機械語から高レベル仕様へのバックトラッキングを対象とした演算を複雑化するための追加の受けである。
【００４０】
図４は本発明による典型的な回路を概略的におよび簡略化した様式で示す。ＦＰＧＡタイプであるこの回路２１には３つの鍵がある。関数鍵ｋｃが回路２１の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ２２の内部で入力変数ｘを暗号化された変数ｙ＝ＤＥＳ（ｘ，ｋｃ）に変換するＤＥＳアルゴリズム２３である。
【００４１】
非機能の鍵ｋｉが関数鍵ｋｃをマスクする役割を果たす。関数鍵のマスクＭを形成するのはこの鍵ｋｉであり、ＸＯＲ演算子がこれら２つの鍵を組み合わせて
【数７】
2012516094.tif 000009
にする。鍵ｋｉはしたがってＤＥＳ実装の関数鍵ｋｃを磁気放射または特に瞬間消費の観測による情報漏洩２４から保護する役割を果たす。
【００４２】
別の非機能の鍵ｋｂは「ビットストリーム」ファイル２５の秘密要素、つまり少なくともｋｉまたは実際ｋｃを保護する役割を果たす。
【００４３】
この手法では鍵は以下のような方式でサイズが決められることが好ましい。
｜ｋｉ｜＝｜ｋｃ｜      （２）
および    ｜ｋｂ｜≧｜ｋｃ｜      （３）
｜ｋｉ｜、｜ｋｂ｜、｜ｋｃ｜はそれぞれｋｉの、ｋｂの、およびｋｃの基数を表す。
【００４４】
本発明によれば、暗号アルゴリズム２３の実装は暗号化された変数ｙが変数の暗号鍵ｋｃを保護する鍵ｋｉと関数的に独立するようにされ、セットアップの情報漏洩は
【数８】
2012516094.tif 000010
ほども多様である（２の｜ｋｉ｜乗）。
【００４５】
ＤＥＳアルゴリズムの場合、ｙ＝ＤＥＳ（ｘ，ｋｃ，ｋｉ）であり、ｙはｋｉと関数的に独立である。
【００４６】
【数９】
2012516094.tif 000011
とｋｉが使用者または設計者にとってを含め完全に未知であることを知った上でｋｃを推測する必要があるため、１次攻撃は単により困難とされるだけでなく不可能とされることに留意されたい。これにより本発明は高度の信頼を提供し、
【数１０】
2012516094.tif 000012
よりも少ない計算力を有するいかなる敵対者に対しても安全が立証される。これは｜ｋｉ｜＝｜ｋｃ｜の場合のＤＥＳアルゴリズムそれ自体のセキュリティレベルに等しい。
【００４７】
ＰＵＦ（Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎｓ）またはＰＯＫ（Ｐｈｙｓｉｃａｌｌｙ  Ｏｂｆｕｓｃａｔｅｄ  Ｋｅｙ）タイプの関数（すなわち実装固有の物理的鍵）、または回路２１に固有の秘密を、外部から供給される鍵の代わりにＰＫＩと呼ばれる公開鍵基盤または信頼をカスタマイズするための他のあらゆるメカニズムによって生成させることが可能な他のあらゆるシステムを使用することが可能である。
【００４８】
第２の鍵ｋｉはなお回路の作製後にセキュアな筐体内で単一の乱数を用いてプログラムされうる。
【００４９】
「Ｓｈａｌｌｏｗ  Ａｔｔａｃｋ」の名でも知られる組み合わせ論理回路への攻撃またはＨＯ−ＤＰＡ攻撃に対する対抗措置をさらに使用する定数マスクを用いたマスキングメカニズムを使用することもまた可能である。
【００５０】
Ｓ．Ｍａｎｇａｒｄらによる文献、Ｓｕｃｃｅｓｓｆｕｌｌｙ  Ａｔｔａｃｋｉｎｇ  Ｍａｓｋｅｄ  ＡＥＳ  Ｈａｒｄｗａｒｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎｓ，  Ｉｎ  ＬＮＣＳ，  ｅｄｉｔｏｒ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＣＨＥＳ’０５，  ｖｏｌｕｍｅ  ３６５９  ｏｆ  ＬＮＣＳ，  ｐａｇｅｓ  １５７−１７１，  Ｓｐｒｉｎｇｅｒ，  Ｓｅｐｔｅｍｂｅｒ  ２００５，  Ｅｄｉｎｂｕｒｇｈ，  Ｓｃｏｔｌａｎｄに特に呈示されているような、秘密マスクにほとんど依存しない「グリッチ」とも呼ばれる非機能の遷移の存在を利用したアルゴリズムのマスキングへの攻撃は、それを知らずに回路のシミュレーションを実行することが不可能であるため、秘密実装には当てはまらないことに留意されたい。事実、この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回路ではＡＳＩＣで生成されたマスクの設計またはＦＰＧＡの「ビットストリーム」ファイルを知っている、またはマスクが選択されるサンプルを所持するであろう熟知しうる攻撃者を除いては実行不可能である。この可能性を防止するため、前に記載されたＰＵＦ関数が特に使用できる。
【００５１】
特定の独自のアルゴリズム、特に２つの秘密符号間でカプセル化された標準アルゴリズムは、Ｃ．Ｃｌａｖｉｅｒによる文献、Ｓｅｃｒｅｔ  Ｅｘｔｅｒｎａｌ  Ｅｎｃｏｄｉｎｇｓ  Ｄｏ  Ｎｏｔ  Ｐｒｅｖｅｎｔ  Ｔｒａｎｓｉｅｎｔ  Ｆａｕｌｔ  Ａｎａｌｙｓｉｓ，  Ｉｎ  ＣＨＥＳ，  ｖｏｌｕｍｅ  ４７２７  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｓ  １８１−１９４，  Ｓｐｒｉｎｇｅｒ，  ２００７で特に示されるように摂動攻撃に耐性がない。このクラスの攻撃では攻撃者はレジスタの値を例えば０ｘ００などの既知の値に固定できることが必要とされる。本発明による実装鍵ｋｉにより保護される回路では、データレジスタとマスクレジスタとが互いに素である場合、攻撃者はそこで簡単な欠陥を発生させるよりもはるかに困難な複数の欠陥を達成する必要があるため、これは事実上非常に困難である。
【００５２】
実装鍵ｋｉを有する本発明による保護のタイプでは、例えばＲＴＬレベルでは符号化の点において、または物理的レベルではカプセル化の点において欠陥を検知するための通常の保護などの他の保護と有利に併用することができる。これにより受動的な攻撃および能動的な攻撃の両方に対して高度の保護を達成することを可能とする。
【図１】
2012516094.tif 000014
【図２】
2012516094.tif 000015
【図３】
2012516094.tif 000016
【図４】
2012516094.tif 000017
【国際調査報告】
2012516094.tif 000018
2012516094.tif 000019
2012516094.tif 000020
2012516094.tif 000021
2012516094.tif 000022
2012516094.tif 000023