説明

プログラマブル論理回路の設定ファイルの解読を保護する方法およびそれを実施する論理回路

本発明の主題はプログラマブル論理回路(100、200)を保護する方法であり、プログラマブル論理回路(100、200)のプログラマブル資源の構成に使用されるデータファイルは、暗号化された(112)後に不揮発性メモリ(107、207)に格納され、回路(103、203)内蔵の暗号解読モジュールはプログラマブル論理回路(100、200)に格納された秘密鍵(102、202)を使用することにより設定用データファイルを解読する役目を担い、暗号解読モジュールは、少なくとも1つの対抗技術を実施することにより暗号解読動作中に鍵を取得することを目標とする攻撃に対し保護されることを特徴とする。
本発明の別の主題は、特許請求範囲の請求項1〜4のいずれか一項に記載の方法を使用することにより暗号解読動作中の覗き見および/または故障利用攻撃に対し保護されるFPGAタイプのプログラマブル論理回路である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FPGAタイプのプログラマブル論理回路の設定ファイルの解読を保護する方法およびそれを実施する回路に関する。
【背景技術】
【0002】
本発明は、特には電子機器分野とプログラマブル論理回路のセキュリティ分野とに適用する。
【0003】
電子部品市場の経済モデルは10年以上にわたって価値の転換を経験してきた。したがって例えばVHDLまたはVerilog言語を使用して生成されるハードウェアの高水準記述は最も戦略的な部分であり、したがって偽造に対しそれを保護する必要がある。
【0004】
また、いくつかの回路は秘密の手段を組み込む。これは、衛星放送テレビ等のコンテンツ流通市場分野、あるいは機密のアルゴリズムとプロトコルを有する軍事の場合である。
【0005】
したがって、著作権侵害に対する戦いに関する理由のため、回路のリバースエンジニアリングを不可能にまたは少なくとも困難にする必要がある。ASIC回路等のカスタム設計製品では、リバースエンジニアリングは特性寸法の減少(現在はナノメートル程度)とともにますます困難になっている。しかしながら、高戦略価値を有する機密部品、または機密データの格納/処理は、例えば以下の「場当たり的」方法により依然として保護されている。
−直接顕微鏡観測を防ぐ金属層による遮蔽、
−資源の視覚的識別を複雑にする論理の配置、
−すべての特定された資源を解釈することができるためには光暗号解読手段を必要とするデータバスのスクランブル。
【0006】
逆に、例えばFPGA等の再構成可能部品では、保護対象の情報は設定ファイルの形式(通常、「ビットストリーム」と呼ばれる)で利用入手可能である。いくつかのFPGAファミリーでは、この設定ファイルは、はんだ付けされしたがって完全に読み出し可能であるので容易に抽出できる不揮発性メモリ(例えば、PROM)に格納される。このメモリはFPGA製品設計者の価値連鎖(value chain)上にないので、そのコストはできるだけ低いことが必須である。結局、これらの部品は通常、セキュリティ保護を有しない。他のFPGAファミリーでは、設定ファイルはアクセスを複雑にするFPGA行列内に直接保存される。
【0007】
しかしながら、例えばシフトレジスタを使用することにより、このファイルに書き込みそして時にはこのファイルを読み取る手段がある。FPGAはそれらの設定ファイルを発見することを目的とした攻撃に特に弱いので、大製造業者は回路内に取り込まれる対抗解決策を提供する。
【0008】
今日の実装では、例えば3DES、AESアルゴリズム等の対称法により設定ファイルを暗号化することによりその読み取りを困難にしている。さらに、暗号解読は通常、プログラマブル論理回路のチップに対し実行されるので上記メモリとプログラマブル論理回路間の通信も保護される。
【0009】
暗号解読論理動作自体は、その物理的実装への攻撃に対し保護されない。したがって、賢い攻撃は暗号鍵を発見し設定ファイルに含まれたデータにアクセスできるかもしれない。
【0010】
この暗号鍵を発見するために、2つのファミリーの攻撃、すなわち、覗き見攻撃(observation attacks)と外乱または故障利用攻撃(disturbance or fault−injection attacks)を実施することができる。
【0011】
第1のファミリーの攻撃(すなわち、覗き見攻撃)は、暗号を扱う回路の瞬間的電力消費が処理対象のデータに特に依存するという事実を利用する。いくつかのタイプの覗き見攻撃が知られている。SPA(単純電力解析:Simple Power Analysis)は、暗号化動作中に測定されたその電力消費の測定値に基づき中央ユニットにより実行される動作を識別しようとする。差動電力解析DPA(Differential Power Analysis)は、多数の電力消費測定値に関する統計演算を利用する。統計演算は暗号化動作中に無作為のメッセージに対し、鍵の限定された部分に関しなされた仮定を有効または無効にする定数鍵により行われる。「テンプレート」タイプ攻撃は、第1段階では、鍵の限定された部分の値により索引を付けられた消費モデルを構築するために、攻撃されている装置と同一の装置を使用し(この装置が秘密を含まないことは別にして)、第2段階では、測定された電力消費量が最も近いモデルとしたがってこのサブ鍵の値とを決定するために、攻撃されている装置のいくつかの電力消費量の測定値を使用する。また、導体中に流れるいかなる電流も、その測定(特には、DPAによる)が電力消費に依存した攻撃に原理的に同一の攻撃を引き起こす可能性がある電磁界を生成する。
【0012】
第2のファミリーの攻撃(すなわち、外乱または故障利用攻撃)は、例えば温度または電圧変動、電源への強い擬似信号により、あるいは電磁界、レーザー発射等により、システム内に外乱を導入する。発生した故障は、攻撃されている回路のノードの値を変える。故障は、シリコンに対する攻撃に依存して単一かもしれないしあるいは複数かもしれない、また恒久的かもしれないしあるいは過渡的かもしれない。過渡的故障利用(transient fault injections)の柔軟性は、複数の試験を行うことにより、より強力な攻撃を引き起こし、成功の機会を増す。単一故障による攻撃は攻撃手順を簡単にする。故障ベースの攻撃は、エラーの無い暗号化出力と故障を有する出力との差動解析に基づく。
【0013】
プログラマブル部品の設定ファイルのセキュリティモデルは失敗する。すなわち、上記ファイルを含む不揮発性メモリに対する物理的攻撃は暗号により反撃されるが、プログラマブル部品上の暗号解読回路は保護されず、物理的攻撃を受ける可能性がある。したがって、例えば、構成クロック(configuration clock)に関するトリガを使用して瞬間的磁気特性を測定することにより、設定ファイルのデータブロックの暗号を分離できる可能性がある。この解析により、暗号鍵としたがって暗号解読された設定ファイルとを再組み立てできる。
【発明の概要】
【発明が解決しようとする課題】
【0014】
本発明の1つの目的は特に上記欠点を克服することである。
【課題を解決するための手段】
【0015】
この目的を達成するために、本発明の主題はプログラマブル論理回路を保護する方法である。上記回路のプログラマブル資源の構成に使用されるデータファイルは暗号化された後、不揮発性メモリに格納され、上記回路内蔵の暗号解読モジュールは回路内に格納された秘密鍵を使用することによりファイルを解読する役目を担う。暗号解読モジュールは、差動論理による保護、マスキングによる保護、および故障検出による保護を含む少なくとも1つの対抗技術を実施することにより、暗号解読動作中に鍵を取得しようとする隠れチャネル攻撃または故障ベースの攻撃に対し保護される。
【0016】
プログラマブル論理回路は例えばFPGAタイプのものである。
【0017】
暗号解読モジュールは、例えばプログラマブル論理回路内蔵の専用論理回路であってよいが、そうでなければプログラマブル論理回路の構成可能資源をプログラムすることによりインスタンス化されてもよい。
【0018】
本発明の別の主題はFPGAタイプのプログラマブル論理回路である。本プログラマブル論理回路は、回路内に格納された秘密鍵を使用することにより上記回路のプログラマブル資源の設定ファイルを解読する役目を担う回路内蔵の少なくとも1つの暗号解読モジュールを含み、暗号解読モジュールは、添付特許請求範囲の請求項1乃至4のいずれか一項に記載の方法を使用することにより、暗号解読動作中の覗き見攻撃および/または故障利用攻撃に対し保護されることを特徴とする。
【0019】
他の特徴および本発明の利点は、添付図面に照らし、例示的かつ非制限例として記載される以下の明細書から明らかになるであろう。
【図面の簡単な説明】
【0020】
【図1】FPGAタイプのプログラマブル論理回路を構成するための例示的手順を示す。
【図2】本発明によるFPGAタイプのプログラマブル論理回路を初期化するための例示的手順と暗号解読回路が保護されるやり方とを示す。
【発明を実施するための形態】
【0021】
図1には、FPGAタイプのプログラマブル論理回路を構成するための例示的手順を示す。この例では、FPGA100はプログラマブル資源領域101からなる。プログラムされると、設計者のターゲットアプリケーションに必要な機能を生成するためにこの領域を使用することができる。プログラマブル資源領域は特に、構成可能論理ブロックとこれらのブロック間の相互接続資源とからなる。プログラマブル資源領域はまた、入出力ブロック(IOB)と通常呼ばれるものも含む。これらのブロックはプログラミングにより相互接続される。IOBはFPGAの入出力ポート118の用途を規定することができる。FPGA100は、特に設定ファイルを格納するために使用されるRAM揮発性メモリ104を含む。構成設定論理モジュール105は、設定ファイル内の揮発性メモリ104に含まれるプログラムに従って論理ブロックとIOBとを接続するために使用される。FPGA100は、設定ファイルを解読するために使用することができる暗号解読モジュール103と、暗号解読に必要な鍵を含む不揮発性メモリ102の領域とを含む。不揮発性メモリ107(例えばPROMタイプの)は、暗号化された設定ファイルを格納するために使用される。したがってシステムの電源が落とされたときにも、構成情報はメモリに保持され、いかなる攻撃者に対しても保護される。
【0022】
システムの設計中、FPGA回路はターゲットアプリケーションに基づいて1つまたは複数の機能を生成するようにプログラムされる。このため、設計者は、例えばコンピュータ支援設計ソフトウェア(CAO)を含むコンピュータ108を使用する。設計者は、VHDL言語などの高水準ハードウェア記述言語を使用して1つまたは複数の機能110をプログラムする。対応プログラムおよびデータ111は、コンピュータのメモリに格納された設定ファイルとなる。設計者は、上記構成データを保護するように暗号鍵K109を定義する選択肢を有する。この鍵はパラメーター113として入力される。設定ファイルに含まれる構成データ111は、鍵K113を使用することにより、例えばAESまたは3DESなどの暗号化アルゴリズム112を使用することにより暗号化される。このとき、暗号化された設定ファイルは不揮発性メモリ107内に置かれる(116)。別の方法は、暗号化された設定ファイルを入力ポート114を介しFPGA内蔵の揮発性メモリ104に直接置く(117)ことであり、例えばシステム試験目的のためにそのようにする。構成設定されるプログラマブル資源領域101については、FPGAにより設定ファイルを解読する必要がある。このため、鍵Kは部品内に格納され(102)、設計段階中にFPGAのポート106を介し送られる(115)。
【0023】
図2には、本発明による、FPGAタイプのプログラマブル論理回路を初期化するための例示的手順と暗号解読回路が保護されるやり方とを示す。前述のように、暗号化された設定ファイルは通常、FPGA200の外付け不揮発性メモリ207に格納される。システムの電源を入れると、暗号化された設定ファイルはダウンロードされ(208)、例えば入力ポート213を介しFPGA内蔵の暗号解読モジュール203に入力として提供される。鍵K202はファイルを解読するモジュール203により使用され(209)、このファイルは内蔵の揮発性メモリ205に送られる(210)。次に、設定ファイルはプログラマブル資源領域201を構成設定する(211)構成設定論理モジュール206により使用される(212)。
【0024】
上記初期化手順はシステムの電源が入れられるたびに系統的にトリガされる。その目的がFPGA202内に格納された鍵Kを特定して設定ファイルを解読することである攻撃者は、システムの初期化中に暗号解読モジュール203の動作を調べることを選択するかもしれない。この初期化は、例えばROM207とFPGA200間の通信プロトコルにより使用される同期クロックを利用することにより攻撃者により監視される。暗号解読モジュールは覗き見または外乱利用により攻撃される(204)。
【0025】
これらの攻撃204から保護されるように、暗号解読モジュール203は様々な対策法を実施してよい。
【0026】
例えば、暗号解読モジュールは差動論理を使用することにより特にDPAタイプの覗き見攻撃に対し保護される。最もありふれた差動論理の中でも、次のものが特に挙げられる。
−K.Tiri,I.Verbauwhede,”A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation”,date,‘04,pages 246−251,February 2004,Parisに詳述されるWDDL(Wave Dynamic Differential Logic)。この場合、暗号解読モジュールは、モジュールの電力消費量を実質的に一定にするように相補形論理により働く2つの2重ロジックアレイで構成される。
−S.Guilley,P.Hoogvorst,Y.Mathieu,R.Pacalet,J.Provost”,CMOS structures suitable for secured Hardware” date,04,pages 1414−1415,February 2004,Parisに記載のSECLIB(Secured Library)、
−K.Tiri,M.Akmal and I.Verbauwhede,”A dynamic and Differential CMOS Logic with Signal Independant Power Consumption to Withstand Differential Power Analysis on Smart Cards”,ESSCIRC,pages 403−406,September 2002 に記載のSABL、
−F.Regazzoni et al.,”A Simulation−Based Methodology for Evaluating DPA−Resistance of Cryptographic Functional Units with Application to CMOS and MCML Technologies”,SAMOS IC,July 2007に記載のMCML、
−M.W.Allam and M.I.Elmasry,”Dynamic Current Mode Logic (DyMCL),a new low−power/high−performance logic family”,10.1109/CICC.2000.852699,pages 421−424,2000に記載のDyMCL、
−M.Burcci,L.Giancane,R.Luzzi and A.Trifiletti,”Three−phase dual−rail pre−charge logic”,CHESS,volume 4249 of LNCS,pages 232−241,Springer 2006に記載のTDPL。
【0027】
隠れチャネルへの攻撃に対し保護する別のやり方は変数上にマスクを利用することである。このマスクは乱数値を有しており、論理ゲート等の機能レベルにおいて利用することができる。
【0028】
差動論理またはマスキングに基づく対抗技術は特に、Mangard Stefan,Oswald Elisabeth and Popp Thomas,”Power Analysis Attacks : Revealing the Secrets of Smart Cards”,Springer,2007に記載されている。
【0029】
故障利用型外乱攻撃(fault−injection type disturbance attacks)に対し保護されるために、暗号解読回路は例えば以下に記載された故障検出技術を利用することにより保護されてもよい。
−Y.Kim,R.Karri and K.Wu,”Concurrent Error Detection Schemes for Fault Based Side−Channel Cryptanalysis of Symmetric Block Ciphers”,IEEE Transactions on Computer−Aided Design,21(12),pages 1509−1517,December 2002、
−M.Karpovsky,K.Kulikowski and A.Taubin,”Robust Protection against Fault−Injection Attacks on Smart Cards Implementing the Advanced Encryption Standard”,IEEE Transactions on Computer−Aided Design,21(2),May 2004、
−G.Bertoni,L.Breveglieri,I.Koren,P.Maistri,and V.Piuri,”Error Analysis and Detection Procedures for a Hardware Implementation of the Advanced Encryption Standard”,IEEE Transactions on Computer−Aided Design,52(4),April 2003。
【0030】
1つまたは複数の上記技術を使用することにより、暗号解読モジュールの保護は強化され、これにより既存のFPGAで見られる欠陥を補償する。したがってプログラマブル論理回路の保護メカニズムのセキュリティ仕様は、物理的覗き見または故障利用攻撃に対処するように組み込み暗号プロセッサを確実にすることにより補完される。

【特許請求の範囲】
【請求項1】
プログラマブル論理回路(100、200)を保護する方法であって、
前記プログラマブル論理回路(100、200)のプログラマブル資源の構成に使用されるデータファイルは、暗号化された(112)後に不揮発性メモリ(107、207)に格納され、
回路(103、203)内蔵の暗号解読モジュールは、前記プログラマブル論理回路(100、200)内に格納された秘密鍵(102、202)を使用することにより前記ファイルを解読する役目を担い、
前記暗号解読モジュールは、差動論理による保護、マスキングによる保護、および故障検出による保護を含む少なくとも1つの対抗技術を実施することにより、暗号解読動作中に前記鍵を取得しようとする隠れチャネル攻撃または故障ベースの攻撃に対し保護されることを特徴とする方法。
【請求項2】
前記プログラマブル論理回路(100、200)はFPGAタイプのものであることを特徴とする請求項1に記載の方法。
【請求項3】
前記暗号解読モジュール(103、203)は前記プログラマブル論理回路(100、200)内蔵の専用論理回路であることを特徴とする請求項1または2に記載の方法。
【請求項4】
前記暗号解読モジュール(103、203)は前記プログラマブル論理回路(100、200)の構成可能資源をプログラムすることによりインスタンス化されることを特徴とする請求項1または2に記載の方法。
【請求項5】
FPGAタイプのプログラマブル論理回路(100、200)であって、
前記プログラマブル論理回路(100、200)は、前記回路内に格納された秘密鍵(102、202)を使用することにより前記回路のプログラマブル資源の設定ファイルを解読する役目を担う前記回路(103、203)内蔵の少なくとも1つの暗号解読モジュールを含み、
前記暗号解読モジュールは、請求項1〜4のいずれか一項に記載の方法を使用することにより、前記暗号解読動作中の覗き見攻撃および/または故障利用攻撃に対し保護されることを特徴とするプログラマブル論理回路(100、200)。

【図1】
image rotate

【図2】
image rotate


【公表番号】特表2012−505442(P2012−505442A)
【公表日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2011−522469(P2011−522469)
【出願日】平成21年7月30日(2009.7.30)
【国際出願番号】PCT/EP2009/059891
【国際公開番号】WO2010/018072
【国際公開日】平成22年2月18日(2010.2.18)
【出願人】(510229496)インスティテュート テレコム−テレコム パリ テック (8)
【Fターム(参考)】