説明

その暗号変換により特に情報漏洩観測攻撃から保護される暗号回路

本発明は特に情報漏洩の観測に基づく攻撃から保護される暗号回路に関する。暗号回路(21)には暗号アルゴリズムを実行するための関数鍵kが含まれる。それには関数および秘密鍵kをマスキングすることによって保護するためのまたはアルゴリズムの秘密実装を保護するための回路に特有の第2の固有の鍵kが含まれる。


【発明の詳細な説明】
【技術分野】
【0001】
本発明はそれらの暗号化により特に情報漏洩観測攻撃から保護される暗号回路に関する。
【背景技術】
【0002】
公共の媒体上を伝達させる必要があるデータへのあらゆる悪意ある強要から守るために、ますます多くの通信および情報処理システムに暗号方法が用いられている。特に、暗号化によってデータの機密性が保証され、暗号ダイジェストによってそれらの正真性が保証され、電子署名によってそれらの認証が保証される。これらそれぞれの場合において、データの送信を担う側とこれらのデータの受信を担う側との間に共通の秘密が機能するが、これら2つの側が同一である場合もある。これらのセキュリティメカニズムに敵意のある、つまりメッセージの内容を不正に突きとめること、取引の内容を改ざんすること、非人格化すること、またはやり取りの出所を否定することを望む攻撃者にとって、最大の目的は認証された受信者側に類似する勢力から、罰せられることなく利益を得るように共通の秘密を取り出すことである。
【0003】
暗号アルゴリズムに対する直接攻撃はこれまでも可能であったが、今もなお可能な場合がある。それでもなお論理的欠陥の継続的な減少が見られている。特にますます多くの暗号アルゴリズムが国際審査基準を通過した後に標準化されている。これは1990年代末のAES(Advanced Encrypton Standard)対称暗号の場合で顕著である。同様の筋書きが次世代のSHAセキュアハッシュアルゴリズム3で現在繰り広げられている。
【0004】
しかしながら、通信および情報処理のための手段のローミング能力が増すとともに、新しい攻撃が考えられるようになっている。実行速度の点から、それを構成する電子回路、例えばDPA攻撃によるエネルギー消費量の点から、またはその放射挙動、例えばEMA攻撃による磁気放射の点からシステムの時間的挙動を観測することにより大量の情報が漏洩しうる。サイドチャネルへのこれらの攻撃に対しては、特に、
この例では秘密とは無関係に漏えいを一定にすることを伴う秘匿と、
漏えいをランダムにすることを伴う、つまり予測不能でありしたがって利用不可能とするマスキングと、を基にする保護が提案されている。
【0005】
これらの2つの技法は情報の取得を狙った攻撃の困難さを増すことを可能とするが、それらはそれでもなお実装欠陥から利益を得るであろう攻撃に対しては依然脆弱である。DPA攻撃の例は、P.Kocherらによる文献,Differential Power Analysis, In proceedings of CRYPT’99, volume 1666 of LNCS, pages 338−397, Springer−Verlag, 1999に記載されている。EMA攻撃の例はK.Gandolfiらによる文献、Electromagnetic Analysis−Concrete Results, In CHES, volume 2162 of LNCS, pages 251−261, Springer−Verlag, 2001に記載されている。
【0006】
起こりうるまたは立証された脆弱性の例は数多く存在する。
以下が特に挙げられる。
差分論理(WDDLなどの)に基づく秘匿は計算フェーズと評価フェーズとプリチャージフェーズとのうちの1つまたは別の間の累積した組み合わせのずれの差への攻撃に対して脆弱となる場合がある。
マスキングはHO−DPAと呼ばれる高階攻撃に敏感な場合がある。
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の目的は特にこれらの、特にDPAまたはEMAタイプの攻撃に対抗することである。この目的のため、本発明の対象は暗号アルゴリズムを実行するための関数鍵kを含む暗号回路であって、前記回路はkとは別の前記回路のそれぞれの例に特有の、回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kを含むことを特徴とする。
【0008】
この第2の鍵は専用の記憶装置に保存することができるかまたは構成要素に特有となりうるかのどちらかである。
【0009】
関数鍵kは例えばXOR演算によって2つの鍵を組み合わせることにより第2の鍵kによってマスクされ、入力変数xはマスク鍵
【数1】

によって暗号化されている。
【0010】
第2の鍵kは例えば秘密実装によって鍵kを保護する役割を果たす。
【0011】
第2の鍵kは例えば特に鍵kでマスキングすることにより保護される2つの秘密関数の囲い込みによってカスタマイズされる標準暗号アルゴリズムからなる秘密アルゴリズムを保護する役割を果たす。
【0012】
第2の鍵kは例えばPUF(Physically Unclonable Function)またはPOK(Physically Obfuscated Key)タイプの関数により生成される。
【0013】
第2の鍵kはまた回路の作製後にセキュアな筐体内で固有の乱数を用いたカスタム化によってプログラムされうる。
【0014】
第2の鍵kにより導入されるマスキングはHO−DPA高階攻撃に対して保護されてもよい。
【0015】
回路に固有の実装鍵としての役割を果たす第2の鍵kの知識により、例えば保護管理プロシージャを、前記管理を担う特権ユーザが使用することが可能となる。
【0016】
これはFPGAタイプのプログラマブル回路で実現されてもよい。
【0017】
第2の鍵kはFPGAのプログラミングファイルを介してカスタマイズされてもよい。
【0018】
有利には、回路はソフトウェアの実装により実現されてもよい。
【0019】
それは例えば前記FPGA回路のプログラミングファイル(25)を暗号化し、これにより外部記憶の機密性およびFPGAへの鍵kの移転の機密性を付与するための第3の鍵kを含む。
【0020】
第2の鍵kの基数は例えば関数鍵kの基数に等しい。これはkへの隠しチャネル攻撃をkへの暗号解読攻撃よりも困難にするためである。
【0021】
第3の鍵kの基数の基数は関数鍵kの基数よりも大きいかまたは等しい。
【0022】
この暗号化アルゴリズムはDESアルゴリズムである。
【0023】
本発明の他の特性および利点は添付の図面に関連して記載される以下に続く説明の支援を得ることにより明らかとなる。
【図面の簡単な説明】
【0024】
【図1】DESアルゴリズムの鍵のマスキングによる保護を含む典型的な回路の図である。
【図2】マスキングがない同じ回路の図である。
【図3】マスキングによる実装を保護するようにアルゴリズムに付加される事前符号化の例の図である。
【図4】本発明による回路を実現する原理の図である。
【発明を実施するための形態】
【0025】
図1に本発明が適用されうるマスキングのモードを呈示する。特に図1には、特にS.Guilleらによる文献、A fast Pipelined MultiMode DES Architecture Operating in IP Representation, Integration, The VLSI Journal, 40(4) pages 479−489, July 2007, DOIに概要が示されるアーキテクチャに従い実装されるDES(Data Encryption Standard)アルゴリズムのマスキングの図が例として呈示される。図1の回路は例えばFPGA(Field Programmable Gate Array)タイプのプログラマブル論理回路で実現される。このアルゴリズムでは、データパスは2つの部分、左と右とに分割される。
【0026】
対比のために、図2はマスキングによる保護を保証するためのハードウェアオーバーヘッドを強調する同様の回路を示し、このオーバーヘッドを生じさせる回路は破線により示されている。
【0027】
したがって左のデータレジスタ3と右のデータレジスタ4との間に入力メッセージ1が割り当てられる。左のマスクレジスタ5と右のマスクレジスタ6との間にマスク2が割り当てられる。左右のデータレジスタに保存される前に、メッセージのデータは左でXORゲート7および右でXORゲート8という手段によりマスクデータと組み合わされることによってマスクされる。暗号鍵9、kはまたFeistel関数10によりマスクmによってマスクされる。右のレジスタ6のマスクされるデータと右のレジスタ2の半分のマスクは、そこで右のマスクされるデータが第1の換字ボックス9により暗号化され、かつ、そこで右の半分のマスクが第2の換字ボックス16により暗号化されるFeistel関数の入力を形成する。左のデータレジスタ5と左のマスクレジスタ1のデータはXORゲート11、12という手段によりFeistel関数の出力においてそれぞれ右のデータと新しいマスクとに組み合わされ、その後右のレジスタにループ状に戻り、左右のデータはその後暗号化されたメッセージを出力15するようにXORゲート13、14により再び組み合わされる。図1のタイプの回路ではデータレジスタ5、6のみが漏洩すると想定される。
【0028】
本発明による回路は漏洩を続けるがそれを暗号化の状態にするため理解できない。したがって例えばDPAまたはEMAタイプの攻撃を実行する攻撃者には以下の変数のみがわかる。
【数2】

つまり秘密鍵Kそれ自体がマスクMにより暗号化される。鍵Kのこの保護モードは、XORとも呼ばれかつ
【数3】

により表される「排他的論理和」演算を用いるVernam暗号という名で公知であり、VernamコードはXOR演算を用いて暗号化することができるコードである。本発明による暗号回路はしたがって情報漏洩のVernam暗号化により隠しチャネルへの攻撃から保護される。
【0029】
暗号化アルゴリズムが完全にカスタマイズされる用途分野が存在する。例えば秘密暗号に依存するGSMの公共または私用の範囲または有料テレビがそのようなケースである。この選択を正当化するために通常述べられる主張には、回路と相関関係となる漏えい関数が未知であるためサイドチャネルへの攻撃、いわゆるSCA(Side−Channel Attacks)は不可能ということがある。K.Tiriらの文献、Side−Channel Leakage Tolerant Architectures, In ITNG’06−Proceedings of the Third International Conference on Information Technology, New Generation, pages 204−209, Washington DC, USA, 2006 IEEE Computer Societyでは、アルゴリズムの実装および機能性を、ハードウェアの量の点でオーバーヘッド有りまたは無しで一度にかつ同時に変更することを提案している。前の2つのプロシージャの欠点は、暗号化が関数的に秘密であることである。これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容認されうる。しかし暗号化システムの設計および配布を監視することが困難であるほとんどの場合、この筋書きは非常に不確実である。いったん秘密の機能性が回復すると、DPAタイプの攻撃は再度容易に可能となる。さらに例えばFIPS−140などの特定の証明方式では、暗号標準をカスタマイズせずに使用することが要求される。これにより特にK.Tiriらによる文献で支持されるSCAに耐性のある全プロシージャは禁止とされる。
【0030】
本発明によれば、特にこの暗号化の公知の関数の仕様に完全に準拠する一方で暗号化を実施するためには、保護される暗号回路専用のマスクを使用してマスキングによる保護が実施される。本発明による回路には、回路専用のマスクMが単に一定であり、かつ、回路の使用者または設計者にとって未知であるマスキングアーキテクチャが含まれる。
【0031】
図1によるマスキングパスは、実際、上述の式(1)に従い1次DPA攻撃つまりデータレジスタ5、6のみが漏洩すると想定される攻撃の枠組み内で暗号鍵のVernam暗号化を実施することが実証されうる。さらにマスキング周囲のいかなるバリアントもまた本発明を実施するために使用することができ、事実、実装は機能性を保持する一方でリファレンス実装とは異なるように表されることで十分である。マスキングの場合、リファレンス実装はゼロマスク(全ゼロ)を有するものと一致するが、マスクが非ゼロになるとすぐに、実装はしかしながら機能性を変更することなく変化する。ここで、実装に可変性を導入するように表現を変えることもまた可能である。例えばA New DPA Countermeasure Based on Permutation Tables. In SCN, volume 5229 of Lecture Notes in Computer Science, pages 278−292. Springerにおいて、Jean−Sebastian CORONはAESの基本演算部分を2つの全単射、4ビット→4ビットを導入して変更することを提案しているが、そのような方式でそれらを組み立てることにより実際は従来のAESの計算が得られる。この表現の変化もまた秘密実装のきっかけとなりうるが、その情報漏えいはしかしながらこの文献では研究されない。
【0032】
したがって漏えいモデルが未知であるため1次相関攻撃は不可能とされる。さらに、いわゆる「テンプレート」攻撃などの、測定値のセットまたはカタログの構造に依存する攻撃は各実装が特有であり、汎用のカタログを構築することが不可能であるため実行不可能とされる。
【0033】
有利には、本発明において実装の多様性は暗号鍵の数に匹敵するまたは実際同等である。特に「第2の原像」タイプの攻撃はしたがって不可能である。活動中の回路と同じマスクを有する、鍵がプログラム可能な回路を偶然に見つける確率は、正しい鍵を偶然に推測する、つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際、同等である。
【0034】
図1の例では、マスキングを実装するために付加されたハードウェアは左1と右2のマスクレジスタおよびマスクをデータと組み合わせるXORゲート12、13、14ならびに右のマスクレジスタの出力を処理するFeistel関数の換字回路16で形成される。
【0035】
ASICまたはFPGAをベースにした実現の枠組み内では、他のタイプの暗号プリミティブのマスキングはソースコード上で直接動作する適切なCADツールの支援で自動化されてもよい。
【0036】
保護プロシージャは一般にサイドチャネルを介して漏洩するかもしれない秘密を含むあらゆる実装に適用できることを記すことは興味深い。直接の例は暗号鍵の保護であるが、署名鍵は同様の方式で等しく十分に保護される。さらに暗号アルゴリズムのパラメータを保護する代わりに、それが秘密の場合、アルゴリズムそれ自体を保護することもまた可能である。これは通信が2地点間で暗号化されるため(サテライトタワードデコーダ(satellite toward decoder))、共同利用できない暗号が実装されうる有料テレビなどの分野で起こる。したがってその中の1または2以上の要素(換字表または拡散関数などの)を変更する一方で標準化アルゴリズムを使用することは普通である。この方式で、そのセキュリティを弱体化するリスクを冒すことなくアルゴリズムのカスタム化が達成される。
【0037】
図3は別の進行方式を示す。この例では、標準アルゴリズムAはそのままで再利用されるが、実行される関数がもはやAではなく、合成
【数4】

になるように、それは外部符号(EEinおよびEEout)で囲い込まれる。この原理の説明がC. Clavierによる論文、Secret External Encodings Do Not Prevent Transient Fault Analysis, in CHES’07, volume 4727 of Lecture Notes in Computer Science, pages 181−194の序章にある。図3の左の部分30、31、32はマスキング技法によって数値EE(X)の漏洩をどう防ぐことができるかを示す。関数EE30は2つのレジスタ31、32により囲い込まれ、そこで第1のレジスタ31はデータ
【数5】

を受信する。並列に配置された
【数6】

として画定される関数EE’33はデマスキングが依然として可能であることを保証する。したがって図3の右の部分に示されるハードウェア33、34、35の付加によって、アルゴリズムへの入力Xが何であるとしてもいずれのレジスタもEE(x)を含まない。この方式で、秘密の外部符号EEについての任意の情報項目をバックトラックすることが不可能となる。以下では、しかしながら、普遍性を失うことなく、暗号鍵の漏えいに対する保護の典型的な場合に重点が置かれる。
【0038】
FPGAタイプというソリューションによって各回路が大規模な配置時でさえもそれ独自のコンフィギュレーションを有することが有利に可能となる。特にFPGAのソリューションでは、それをカスタマイズするために数値を変更するために、特に構成要素専用のマスクなどのシステム全体をリコンパイルする必要はない。これは、Kerckhoffsの原理に背いておらず、それぞれの実装は実際に秘密であるが独特であることを示唆している。実装を妥協することでセットアップすべてを妥協することは認められない。
【0039】
特定のFPGA回路の機能性の懐古的な設計は、それが恒久的な可読メモリ内に配置されるファイル内のソフトウェアに関してプログラムされるという事実によって可能とされうる。そのような懐古的な設計を避けるため「ビットストリーム」と呼ばれる、このファイルの暗号化を可能にするFPGAタイプを使用することが可能である。したがって保護はそれ自体が暗号手段により秘密にされる。コード難読化は機械語から高レベル仕様へのバックトラッキングを対象とした演算を複雑化するための追加の受けである。
【0040】
図4は本発明による典型的な回路を概略的におよび簡略化した様式で示す。FPGAタイプであるこの回路21には3つの鍵がある。関数鍵kが回路21の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の内部で入力変数xを暗号化された変数y=DES(x,k)に変換するDESアルゴリズム23である。
【0041】
非機能の鍵kが関数鍵kをマスクする役割を果たす。関数鍵のマスクMを形成するのはこの鍵kであり、XOR演算子がこれら2つの鍵を組み合わせて
【数7】

にする。鍵kはしたがってDES実装の関数鍵kを磁気放射または特に瞬間消費の観測による情報漏洩24から保護する役割を果たす。
【0042】
別の非機能の鍵kは「ビットストリーム」ファイル25の秘密要素、つまり少なくともkまたは実際kを保護する役割を果たす。
【0043】
この手法では鍵は以下のような方式でサイズが決められることが好ましい。
|k|=|k| (2)
および |k|≧|k| (3)
|k|、|k|、|k|はそれぞれkの、kの、およびkの基数を表す。
【0044】
本発明によれば、暗号アルゴリズム23の実装は暗号化された変数yが変数の暗号鍵kを保護する鍵kと関数的に独立するようにされ、セットアップの情報漏洩は
【数8】

ほども多様である(2の|k|乗)。
【0045】
DESアルゴリズムの場合、y=DES(x,k,k)であり、yはkと関数的に独立である。
【0046】
【数9】

とkが使用者または設計者にとってを含め完全に未知であることを知った上でkを推測する必要があるため、1次攻撃は単により困難とされるだけでなく不可能とされることに留意されたい。これにより本発明は高度の信頼を提供し、
【数10】

よりも少ない計算力を有するいかなる敵対者に対しても安全が立証される。これは|k|=|k|の場合のDESアルゴリズムそれ自体のセキュリティレベルに等しい。
【0047】
PUF(Physically Unclonable Functions)またはPOK(Physically Obfuscated Key)タイプの関数(すなわち実装固有の物理的鍵)、または回路21に固有の秘密を、外部から供給される鍵の代わりにPKIと呼ばれる公開鍵基盤または信頼をカスタマイズするための他のあらゆるメカニズムによって生成させることが可能な他のあらゆるシステムを使用することが可能である。
【0048】
第2の鍵kはなお回路の作製後にセキュアな筐体内で単一の乱数を用いてプログラムされうる。
【0049】
「Shallow Attack」の名でも知られる組み合わせ論理回路への攻撃またはHO−DPA攻撃に対する対抗措置をさらに使用する定数マスクを用いたマスキングメカニズムを使用することもまた可能である。
【0050】
S.Mangardらによる文献、Successfully Attacking Masked AES Hardware Implementations, In LNCS, editor, Proceedings of CHES’05, volume 3659 of LNCS, pages 157−171, Springer, September 2005, Edinburgh, Scotlandに特に呈示されているような、秘密マスクにほとんど依存しない「グリッチ」とも呼ばれる非機能の遷移の存在を利用したアルゴリズムのマスキングへの攻撃は、それを知らずに回路のシミュレーションを実行することが不可能であるため、秘密実装には当てはまらないことに留意されたい。事実、この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回路ではASICで生成されたマスクの設計またはFPGAの「ビットストリーム」ファイルを知っている、またはマスクが選択されるサンプルを所持するであろう熟知しうる攻撃者を除いては実行不可能である。この可能性を防止するため、前に記載されたPUF関数が特に使用できる。
【0051】
特定の独自のアルゴリズム、特に2つの秘密符号間でカプセル化された標準アルゴリズムは、C.Clavierによる文献、Secret External Encodings Do Not Prevent Transient Fault Analysis, In CHES, volume 4727 of Lecture Notes in Computer Science, pages 181−194, Springer, 2007で特に示されるように摂動攻撃に耐性がない。このクラスの攻撃では攻撃者はレジスタの値を例えば0x00などの既知の値に固定できることが必要とされる。本発明による実装鍵kにより保護される回路では、データレジスタとマスクレジスタとが互いに素である場合、攻撃者はそこで簡単な欠陥を発生させるよりもはるかに困難な複数の欠陥を達成する必要があるため、これは事実上非常に困難である。
【0052】
実装鍵kを有する本発明による保護のタイプでは、例えばRTLレベルでは符号化の点において、または物理的レベルではカプセル化の点において欠陥を検知するための通常の保護などの他の保護と有利に併用することができる。これにより受動的な攻撃および能動的な攻撃の両方に対して高度の保護を達成することを可能とする。

【特許請求の範囲】
【請求項1】
暗号アルゴリズムを実行するための関数鍵kを含む暗号回路(21)であって、前記回路はkとは別のおよび前記回路のそれぞれの例に専用の、前記回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kを含むことを特徴とする回路。
【請求項2】
前記関数鍵kはXOR演算によって前記2つの鍵を組み合わせることにより前記第2の鍵kによってマスクされ、入力変数xはマスク鍵
【数1】

によって暗号化されることを特徴とする請求項1に記載の回路。
【請求項3】
前記第2の鍵kは秘密実装によって前記鍵を保護する役割を果たすことを特徴とする請求項1に記載の回路。
【請求項4】
前記第2の鍵kは秘密アルゴリズムを保護する役割を果たすことを特徴とする請求項1に記載の回路。
【請求項5】
前記秘密アルゴリズムは前記鍵kでのマスキングにより保護される2つの秘密関数(30、31)を囲い込みすることによりカスタマイズされる標準暗号アルゴリズムを含むことを特徴とする請求項4に記載の回路。
【請求項6】
前記第2の鍵kはPUF(Physically Unclonable Function)またはPOK(Physically Obfuscated Key)タイプの関数により生成されることを特徴とする、請求項1〜5のいずれか1項に記載の回路。
【請求項7】
前記第2の鍵kは前記回路の作製後にセキュアな筐体内の固有の乱数でのカスタム化によってプログラムされることを特徴とする、請求項1〜5のいずれか1項に記載の回路。
【請求項8】
前記第2の鍵kによって導入されるマスキングはHO‐DPA高階攻撃から保護されることを特徴とする、請求項1〜7のいずれか1項に記載の回路。
【請求項9】
回路に固有の実装鍵としての役割を果たす前記第2の鍵kの知識は、保護管理プロシージャの、前記管理を担う特権ユーザによる使用を可能にすることを特徴とする、請求項1〜8のいずれか1項に記載の回路。
【請求項10】
FPGAタイプのプログラマブル回路において実現されることを特徴とする、請求項1〜9のいずれか1項に記載の回路。
【請求項11】
前記第2の鍵kはFPGAのプログラミングファイルを介してカスタマイズされてもよいことを特徴とする、請求項1〜10のいずれか1項に記載の回路。
【請求項12】
ソフトウェアの実装によって実現されることを特徴とする、請求項1〜9のいずれか1項に記載の回路。
【請求項13】
前記FPGA回路の前記プログラミングファイル(25)を暗号化するための第3の鍵kを含み、これが外部記憶の機密性および前記FPGAへの前記鍵kの移転の機密性を付与することを特徴とする、請求項10または11に記載の回路。
【請求項14】
前記第2の鍵kの基数は前記関数鍵kの基数に等しいことを特徴とする、請求項1〜13のいずれか1項に記載の回路。
【請求項15】
第3の鍵kの基数は前記関数鍵kの前記基数よりも大きいかまたは等しいことを特徴とする、請求項13または14に記載の回路。
【請求項16】
前記暗号化アルゴリズムはDESアルゴリズムであることを特徴とする、請求項1〜15のいずれか1項に記載の回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2012−516094(P2012−516094A)
【公表日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2011−546771(P2011−546771)
【出願日】平成22年1月18日(2010.1.18)
【国際出願番号】PCT/EP2010/050547
【国際公開番号】WO2010/084107
【国際公開日】平成22年7月29日(2010.7.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(510229496)インスティテュート テレコム−テレコム パリ テック (8)
【Fターム(参考)】