(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2021501426
(43)【公表日】20210114
(54)【発明の名称】動的部分再構成を用いた暗号アルゴリズムのためのサイドチャネル電力耐性システム及び方法
(51)【国際特許分類】
   G06F 21/75 20130101AFI20201211BHJP
   G06F 21/60 20130101ALI20201211BHJP
【FI】
   !G06F21/75
   !G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
【全頁数】16
(21)【出願番号】2020524386
(86)(22)【出願日】20181030
(85)【翻訳文提出日】20200629
(86)【国際出願番号】US2018058208
(87)【国際公開番号】WO2019089590
(87)【国際公開日】20190509
(31)【優先権主張番号】62/578,731
(32)【優先日】20171030
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】503128320
【氏名又は名称】ユーエヌエム レインフォレスト イノベーションズ
【氏名又は名称原語表記】UNM Rainforest Innovations
【住所又は居所】アメリカ合衆国 ニューメキシコ州 87102, アルバカーキ, スイート 1100, 101 ブロードウェイ ブールバード ノースイースト, ロボ レインフォレスト ビルディング
【住所又は居所原語表記】Lobo Rainforest Building, 101 Broadway Blvd. NE, Suite 1100, Albuquerque, NM 87102 USA
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(74)【代理人】
【識別番号】100165803
【弁理士】
【氏名又は名称】金子 修平
(74)【代理人】
【識別番号】100170900
【弁理士】
【氏名又は名称】大西 渉
(72)【発明者】
【氏名】プラスケリック, ジェームス
【住所又は居所】アメリカ合衆国 87122 ニューメキシコ州 アルバカーキ, コロナド・アヴェニュー・ノースイースト 9621
(57)【要約】
差分電力解析(DPA)攻撃中に測定された電力トレースにおける相関性を低下させる仕組みとして、インプリメンテーション多様化と動的部分再構成とを活用するサイドチャネル攻撃対策。本技術は、任意の暗号アルゴリズムの基盤をなすハードウェアインプリメンテーションを、サイドチャネルベースの攻撃に対抗するように動的部分再構成(DPR)を用いて、変化させる。
【選択図】なし
【特許請求の範囲】
【請求項1】
サイドチャネル攻撃対策のための方法であって、当該方法は、動的部分再構成(DPR)を用いて機能性を保ちながら、暗号アルゴリズムの1つ以上のコンポーネント又はサブコンポーネントのインプリメンテーション特性を高頻度で変更するステップを含むサイドチャネル攻撃対策のための方法。
【請求項2】
前記暗号アルゴリズムの処理中に、時間の経過とともに再プログラム可能な1つ以上の冗長場所を追加する請求項1に記載の方法。
【請求項3】
前記1つ以上の冗長場所によって、1つ以上のコンポーネント又はサブコンポーネントが前記暗号化エンジンから接続を解除され再構成され得る請求項2に記載の方法。
【請求項4】
前記暗号化エンジンが、ストールして再構成が完了するのを待つ必要なく、最大速度で暗号化/復号し続ける請求項3に記載の方法。
【請求項5】
前記1つ以上のコンポーネント又はサブコンポーネントが、同一の機能を実行し並行して同時に動作する請求項1に記載の方法。
【請求項6】
前記1つ以上のコンポーネント又はサブコンポーネントが、SBOX、SubBytes、ShiftRows、MixColumns、AddRoundKey、レジスタ、XORゲートのグループから選択される請求項1に記載の方法。
【請求項7】
前記暗号アルゴリズムは、高度暗号化標準(AES)である請求項1に記載の方法。
【請求項8】
前記1つ以上のコンポーネント又はサブコンポーネントのインプリメンテーション特性が、対応するパス遅延を変化させ、当該パス遅延は、対応する電力トレースの挙動を変化させて差分電力解析(DPA)攻撃の実行を益々困難にさせる請求項1に記載の方法。

【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本願は、2017年10月30日出願の米国仮出願第62/578,731号の優先権を主張し、参照により本明細書に援用される。
【0002】
[発明の分野]
本発明は、概ね、現場でプログラム可能なゲートアレイ(FPGA)に関する。さらに詳細には、本発明は、サイドチャネルベースの攻撃に抵抗するために、動的部分再構成(DPR)を用いて任意の暗号アルゴリズムのコンポーネント又はサブコンポーネントのインプリメンテーション特性を変化させることに関する。
【背景技術】
【0003】
安全性と信頼性が、広範囲の既存のマイクロエレクトロニクスシステム、及び登場してきたマイクロエレクトロニクスシステムにとって非常に重要になってきており、これには、航空宇宙産業及び防衛施設、産業用制御システム(ICS)及び監視制御・データ取得(SCADA)環境、自動車及び自律走行車、データセンター、通信及び医学的健康管理デバイスに組み込まれたものが含まれる。このようなシステムの脆弱性は、インターネットにより可能になったコネクティビティ及び監督不在のフィールドデプロイメントが一般的になるにつれて高まりつつある。
【0004】
認証及び暗号化が、通信デバイス間における通信のデータ整合性及びプライバシーを保証するためによく使用される。システムの安全性は、暗号化及び復号が行われるときに鍵がチップ内に安全に保存されプライベートを存続させることに左右される。残念ながら、この前提は、もはや有効ではなく、実際に、悪意ある他者が、一般的にはサイドチャネル技術と呼ばれる侵襲的技術及び半侵襲的技術を、従来プライベートとみなされていた情報をチップから引き出すことに悪用する場合がある。
【0005】
チップから内部機密を引き出す手段として、アナログ信号を測定する幅広い種々の技術が登場してきた。サイドチャネルという用語は、この目的のために開発された技術をいい、漏れ電流、動的電力(過渡電流)及び電磁波放射を分析する方法を含む。悪意ある他者が、意図的にクロック及び電力障害を導入する故障導入技術を単独で又は組み合わせて用いると、このような技術によって、悪意ある他者が、秘密鍵及び他のプライベート情報を何時間又は何日かで盗んで、セキュリティアルゴリズム内に設計されたアルゴリズム保護を効率的に無効化できる。
【0006】
既知の方法では、特に故障利用攻撃に対して耐性を増す対策を用い、この対策は、DPRにより実行時間にチップ領域の機能ブロックの物理的位置をランダムに変更することにより行われる。既知の別の方法では、デュアルポートブロックメモリを使用して、オンチップノイズ発生、ランダムデータ処理遅延、及びS−boxスクランブル化のための包括的かつリソース効率のよい対策を用いる。さらに別の方法では、鍵を一時隔離するために並列アーキテクチャを用いる。さらに別の方法では、アイドル状態で再構成可能な処理エレメントを利用してダミー処理を実行することにより、リーク情報を隠す対策を用いる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
単純電力解析(SPA)、差分電力解析(DPA)、及び相関電力解析(CPA)に対するこのような既知の対策は、いくつかに分類可能であって、その分類には、暗号化オペレータのセキュリティ上重要なプロセスを遮蔽又はシャッフルするアルゴリズム対策、及びノイズを注入し非決定性プロセッサ及び/又はサイドチャネル耐性論理スタイルを組み込むハードウェア対策が含まれる。対策は、鍵をうまく引き出すのに必要とされるサンプル(平文)の数に基づいて評価されるのが、一般的である。
【0008】
必要とされるのは、差分電力解析(DPA)及び相関電力解析(CPA)、並びに電磁波解析(EMA)技術を、攻撃元区分として無効化するように設計された方法である。DPA及びCPAには、特定の問題があり、その理由は、1)それによって、チップのゲートレベルのスイッチング動作への高解像度による視認性があり得ること、2)半侵襲的かつ非破壊的であり、卓上試験と(広く入手可能でコストが削減される)測定装置のみで要求を満たすこと、3)時間及び処理が追加されて、回路レベルの対策が用いられたときでさえうまくいってしまうことが示されていることである。
【課題を解決するための手段】
【0009】
本発明は、サイドチャネルベースの攻撃方法に対する対策に関する。特に、FPGAのための動的部分再構成(DPR)方法は、差分電力解析(DPA)等の技術を困難にしかつ/又は無効にするものである。「SPREAD」(DPRを用いた暗号アルゴリズムのためのサイドチャネル電力耐性)と呼ばれる、本発明に係る技術は、電力供給過渡信号の分析に、多様性と不確実性とを導入する。
【0010】
本発明によれば、暗号アルゴリズムのコンポーネント又はサブコンポーネントのインプリメンテーション特性は、DPR方法を用いて(機能性を保ちながら)高頻度で変更される。DPAが、基盤となる不変回路インプリメンテーションから測定した電力過渡信号を平均化することにより、電力を導き出すことで、回路インプリメンテーションの小型コンポーネントが変化する。
【0011】
本発明を、高度暗号化標準(AES)アルゴリズムに関して説明するが、いくつか挙げてみると、データ暗号化標準規格(DES)、RSA暗号化、及び楕円曲線暗号(ECC)等のレプリケートされたコンポーネント又はサブコンポーネントを使用する任意の暗号アルゴリズムが、考えられる。コンポーネント又はサブコンポーネントには、例えば、SBOX、SubBytes、ShiftRows、MixColumns、AddRoundKey、並びにさらに詳細には暗号文及びXORゲートを保存するレジスタが含まれる。レプリケートされたコンポーネント又はサブコンポーネントとは、同一の機能を実行し、並行して同時に動作するものである。
【0012】
処理中に、すなわちその場で、時間の経過とともに再プログラム可能な1つ以上の冗長場所が追加される。本発明に係る一実施形態によれば、追加の再構成場所が、一つ、アーキテクチャに追加されて、1つ以上のコンポーネント又はサブコンポーネントが、暗号化エンジンから接続を解除され、再構成され得る。これによって、暗号化エンジンが、ストールして再構成が完了するのを待つ必要なく、引き続き、最大速度で暗号化/復号し得る。
【0013】
アーキテクチャは、「冗長」コンポーネント又はサブコンポーネントを1つのみ追加すればよく、よって、オーバーヘッド領域が少ない点で魅力的である。しかしながら、2つ以上の「冗長」コンポーネント又はサブコンポーネントが考えられる。一例として、本発明は、アーキテクチャであって、それぞれのSBOXの場所に冗長コピーを有し(オーバーヘッド領域を1 SBOXから16 SBOXまで増加させ)、1つ又は複数の動的部分再構成(DPR)処理が並行して実行されて、これによって、電力トレースにおける鍵関連情報の相関性が、さらに劇的に低下するアーキテクチャに関連し得る。
【0014】
本発明の一実施形態によれば、AESアルゴリズムのSBOXのインスタンス化の1つ以上を、暗号化/復号がDPRを用いて実行されている間に、ランダムにかつ迅速に変更可能である。詳細には、AES内においてレプリケートされるプリミティブ、特にSBOXが、複数のインプリメンテーションと合成される。暗号化/復号中に、SBOXコンポーネントが、ランダムに選択され、このインプリメンテーションの1つと動的に置き換えられる。インプリメンテーションは、FPGAブロックRAMリソース(又はセキュアプロセッサ側のメモリ)内に保存され、DPRコントローラ状態機械が、AESと協調して、周期的DPRを実行する。DPRコントローラ状態機械は、暗号プリミティブと並行して動作して、AESと同期して周期的再構成を可能にする。インプリメンテーションの多様性は、遅延特性を変化させ、電力過渡における相関性を取り除き、正規の鍵の特定を困難にする。
【0015】
差分電力解析(DPA)及び相関電力解析(CPA)、並びに電磁波解析(EMA)技術を、攻撃元区分として無効化するために、本発明は、最新のFPGAベースのシステム・オン・チップのハードウェア・プラットフォームにおいて利用可能な動的部分再構成(DPR)の機能を活用する。再構成可能なハードウェアは、益々マイクロプロセッサ環境に統合されつつあり、よって、DPRを活用する機会が、広がりつつある。本発明は、暗号アルゴリズムのコンポーネント又はサブコンポーネントのインプリメンテーション特性を、(機能性を保ちながら)暗号アルゴリズムにおいて最上位の鍵のバイト候補を論理的に推理することに活用される相関性を低下させる手段としてDPR方法を用いて、迅速に変化させることを含む。
【0016】
本発明は、異なるインスタンス化を生成するためのいくつかの実施形態に関し、ロード容量及び対応する遅延と、電力トレースの挙動とを変化させる手段として、「ワイヤ・スタブ」を固定インプリメンテーションに追加する方法を含む。インプリメンテーションの多様性はまた、例えばSBOXコンポーネントの動作記述及び/又はタイミングの制約に小さくわずかな変化を起こし、次に、多様性を自動的に追加するようにFPGAの合成ツールを使用することにより、導入可能であることも考えられる。
【0017】
若干異なる電力過渡シグネチャを生成する1セットのインスタンス化が、作り出されて、暗号化処理中に異なるインスタンス化をスワップイン及びスワップアウトする。DPA/CPA技術は、スワッピングを無視して、異なるインスタンス化から電力トレースを平均化する。電力トレースを混合させたセットは、平均化されたトレースにランダムアーチファクトを生成し、対象鍵のバイトが適切に推理され得る相関性を低下させ又は削除する。状態機械は、スワッピングプロセスを管理し、SPREADと並行して動作中の暗号化エンジンに対するストールを最小限にするように設計されている。
【0018】
DPA/CPAへの対策としてのインプリメンテーションの多様性に加えて、DPR処理自体により生成される電力シグネチャについての電力分析も実施する。悪意ある他者が、スワッピング処理が実行されると時間の経過とともにSBOX構成を追跡できなくなることが重要であり、そうでなければ、攻撃において1つの特定の構成に対応するトレースを分離可能としてもよい。DPRトレースは、2つの異なるインプリメンテーションにおいて非常に類似しており、これは、SBOXを再プログラムするのに使用される部分的なビットストリームが、大きさが同一であり、構成ビットのサブセットのみが異なることから推測される。
【0019】
さらに、構成の数は、指数的であり、ノンス駆動(ランダム)式のタイミング間隔をスワッピング処理の間に導入し、これが、合わせて実施されると、悪意ある他者によるSBOX追跡は、うまくいかなくなる。最後に、SPREADコントローラを、FPGA SoCのプログラマブルロジック(PL)部分にインプリメントすることによって、スワップ頻度を最大限に、電力漏れを最小限に、攻撃に対してそれを不可能にするように設計されたSPREADを堅固にすることができる。
【0020】
本発明とその特質並びに利点を、添付の図面に関連してさらに理解し正しく認識してもらえるだろう。
【0021】
本発明の好ましい実施形態を、本発明を限定するためではなく図示するために準備した添付の図面に関連して説明する。
【図面の簡単な説明】
【0022】
【図1】図1は、本発明の一実施形態に係る単一ユニット型の冗長設定(Redundancy Scheme)を図示する。
【図2】図2は、FPGA SoC(「フィールド・プログラマブル・ゲートアレイ・システム・オン・チップ」)アーキテクチャに適用可能なシステムのブロック図を示す。
【図3】図3は、パス遅延に有効な「ワイヤ・スタブ」の評価に使用するテスト用構造体のブロック図を示す。
【図4】図4は、図3に図示したブロック図からの、(上部から底部へ)連続した2つのスイッチボックス(switch box)及びタイミングセルのスクリーンショットの図を示す。
【図5】図5は、クロックストローブ処理が完了した後の、タイミングセル内に保存されたテストパスのパス遅延からタイミング値のグラフを示す。
【図6a】図6aは、ファンアウトが下部スイッチに追加されたワイヤ・ロード構成のスクリーンショットの図を示す。
【図6b】図6bは、ファンアウトが上部スイッチに追加されたワイヤ・ロード構成のスクリーンショットの図を示す。
【図6c】図6cは、ファンアウトが、下部スイッチと上部スイッチとに追加されたワイヤ・ロード構成のスクリーンショット図を示す。
【図7】図7は、図6a〜図6cの3つのワイヤ・ロード構成の下におけるテスト用パス遅延の差のグラフを示す。
【図8】図8は、動的部分再構成中に、2つのSBOX構成、SBOX及びSBOXについて、デジタルオシロスコープを用いて測定した電力トレースを図示する。
【図9】図9は、本発明の一実施形態に係る回路のブロック図を示す。
【図10】図10は、本発明の一実施形態に係るDPAアルゴリズムにおいて使用される構成(V)から平均化した差分電力トレースのグラフを示す。
【図11】図11は、本発明の一実施形態に係る2つのインプリメンテーション(V及びV)について、正規の鍵推定(correct key guess)のための差分電力トレースのグラフを示す。
【図12】図12は、本発明の一実施形態に係る2つのインプリメンテーション(V及びV)についてピーク領域のグラフを示す。
【図13】図13は、本発明の一実施形態に係る2つのインプリメンテーション(V及びV)と、その両方を混合させたインプリメンテーションについてのピーク領域のグラフを示す。
【発明を実施するための形態】
【0023】
本発明は、サイドチャネルベースの攻撃方法への対策に関する。FPGAのための動的部分再構成(DPR)方法は、(機能性を保ちながら)暗号アルゴリズムのコンポーネント又はサブコンポーネントのインプリメンテーション特性を高頻度で変化させることにより、差分電力解析(DPA)等の技術を困難にしかつ/又は無効にしてしまうものである。これは、コンポーネント又はサブコンポーネントに、同一の機能を実行し並行して同時に動作することをレプリケートさせることにより実行される。これによって、暗号化エンジンが、ストールして再構成が完了するのを待つ必要なく、引き続き、最大速度で暗号化/復号し得る。DPAが、基盤となる不変回路インプリメンテーションから測定した電力過渡信号を平均化することにより、電力を導き出すことで、回路インプリメンテーションの小型コンポーネントが変化する。DPRを用いた暗号アルゴリズムのためのサイドチャネル電力耐性(SPREAD)が、電力供給過渡信号の分析に多様性と不確実性とを導入する。
【0024】
処理中に、すなわちその場で、時間の経過とともに再プログラム可能な1つ以上の冗長場所が追加される。本発明の一実施形態によれば、追加の再構成場所が1つアーキテクチャに追加されて、1つ以上のコンポーネント又はサブコンポーネント(SBOX、SubBytes、ShiftRows、MixColumns、AddRoundKey、レジスタ、XORゲート)が、暗号化エンジンから接続を解除されて、再構成可能となる。
【0025】
本発明を高度暗号化標準(AES)アルゴリズムに関して説明するが、レプリケートされるコンポーネント又はサブコンポーネントを使用する任意の暗号アルゴリズム、いくつか挙げてみると、データ暗号化標準(DES)、RSA暗号、及び楕円曲線暗号(ECC)等が考えられる。暗号アルゴリズムのコンポーネント又はサブコンポーネントのインプリメンテーション特性は、DPR方法を用いて機能性を保ちながら、高頻度で変化させられる。
【0026】
考えられる一実施形態によれば、SBOX等、AES内においてレプリケートされるプリミティブが、複数のインプリメンテーションと合成される。暗号化/復号中に、SBOXコンポーネントが、ランダムに選択され、このインプリメンテーションの1つと動的に置き換えられる。インプリメンテーションは、FPGAブロックRAMリソース内に保存され、状態機械が、AESと協調して周期的なDPRを実行する。インプリメンテーションの多様性は、遅延特性を変化させ、電力過渡における相関性を取り除き、正規の鍵の特定を困難にする。
【0027】
本発明にかかるコントローラは、DPR処理を、完全作動状態の暗号化エンジン、例えば、高度暗号化標準(AES)と連携するVHDLモジュールである。本発明に係るシステム及び方法は、ザイリンクス社の内部コンフィギュレーションアクセスポート(ICAP)インターフェースを使用する自己再構成を実行する。自己再構成は、それ自体を除いて、プログラマブルロジック(PL)内の他のコンポーネントを再構成するPL内において動作する技術を言う。
【0028】
ICAPインターフェースを使用してDPRを実行するためにかかる時間は、本明細書で「pblocks」と呼ぶ、さらに狭い部分動的再構成可能な領域については約1ミリ秒である。従って、暗号化処理を停止してDPRを実行すると、暗号化又は復号処理にかなりのパフォーマンス低下が生じてしまう。この問題に対処するために、単一ユニット型の冗長設定が、暗号化エンジンとしてAESを使用する図1に図示したように、インプリメントされる。SBOX領域のそれぞれを再構成可能である。図1は、SBOXのサブセットを図示するが、16の並列のSBOXのセットが、AESの128ビットバージョンにおいて必要であることに留意すべきである。
【0029】
本発明は、並列SBOXをもう一つ別に追加する。コントローラからのDPR制御信号を、17のSBOXの並列構成に「ホール(hole)」を生成するように用い、これは、シフター及びMUXを使用して、再構成のターゲットであるSBOXの周りにワイヤ配線することにより行われる。図1は、SBOXがターゲットであるときの配線構成を示す。DPRは、システムの残りの部分が最大速度で作動し続けている間に実施可能であるので、暗号化/復号は、シフター及びMUXを再構成するように、1ストールサイクルのみ続き得る。
【0030】
FPGA SoC アーキクチャに適用可能な、提案のシステムのブロック図を図2に示す。ザイリンクス社のTrustZone(登録商標)等のSoCのプロセッサ側に存在するセキュリティの特徴は、セキュア汎用I/O(GPIO)インターフェースを用いて一部のビットストリームがBRAMにロードされることを保証するように活用し得る。一旦ロードされると、少なくとも2つの処理が、暗号化または復号の間にDPRコントローラにより実行される。
【0031】
まず、ノンス生成エンジンを起動させる(以下にさらに詳細に述べる)。ノンスを用いて、DRP処理の間のタイム・インターバルをランダム化し、BRAMにロードされている構成から選択し、暗号化エンジン内のターゲットとなる再構成可能な領域を選択する。
【0032】
第2の処理は、BRAMから選択されたビットストリームを読み込み、選択された暗号化コンポーネントの再構成のための適切な制御信号をアサートし、暗号化エンジンと同期させて必要に応じて1つ以上のストールサイクルを挿入し、ICAPコントローラを用いて転送プロトコルを実行することである。
【0033】
再構成の回数は、一方ではエネルギー消費のオーバーヘッドに、他方では任意の1つの構成の下集められ得る電力トレースの数を少ない数に抑える必要性に縛られる。FPGAにおいてDPAをAESインプリメンテーションに応用することに向けた(以下に提示する)結果に基づいて、十分な数の波形を集めることに必要とされる時間(O−スコープ平均化時間を計算に入れる)が、データ収集が最もうまくいって数時間で測定される。AES SBOXを用いて実行されるDPRには、約1ミリ秒かかり、この上限が、再構成の頻度を約1000/秒に縛りつける。従って、再構成は、1秒あたり数回から数秒あたり1回の比較的緩やかでランダムな頻度、実施され得る。SBOXを収めるのに十分広い領域に対してDPRが消費する電力は、数十マイクロワットの範囲内であるので、電池作動型デバイスは、さらに緩やかな再構成の頻度を選択し得る。
【0034】
上に提示したように、AES SBOX インプリメンテーションのセットが、FPGA BRAM リソース内に保存される。インプリメンテーションは、AES SBOXの場所及び配線特性に変更を導入することにより生成される。SBOXの(機能的ではなく)構造的な特性の変更は、パス遅延及び対応する電力トレースの情報に少しの変化をもたらす。DPA攻撃において実行された波形の平均化の成功は、不変のままの個別のゲート(及びパス全体)の遅延動作に著しく左右される。時間の経過とともにSBOXの特定のインプリメンテーションにより使用される配線及びLUTを変更していくことによって、異なるインプリメンテーションに実行された波形の平均化が、攻撃下でSBOX出力ビットにより生成された蓄積電力情報を減少させる。さらに、ターゲットとされていないSBOX出力ビットと関連付けられる電力ピークは、DPAアルゴリズムにより要求されるように、振幅がゼロ近くまで低下する点で平均化の有効性が低下することから、大きさが増える。
【0035】
他方で、異なるインプリメンテーションにより導入される電力トレースの歪みは、インプリメンテーションがAESエンジン内に現在「インストール」されていると悪意ある他者が判断することを困難又は不可能にするのに十分小さいこともまた重要である。トラッキング置き換え(tracking replacement)の困難さは、多数のAES構成(16NI、NIは異なるインプリメンテーションの数と定義する)が完全にインスタンス化され得ることにより増す。所定の電力トレースは、全16の同時実行中のSBOXからの電力トレースの重ね合わせを表しており、このタスクは、悪意ある他者にとって手に負えないものとなり得る。最も重要な脆弱性は、DPR電力トレースを用いたトラッキング置き換えの可能性であり、それを以下に説明する。
【0036】
SBOXの構造体に変更を導入するインプリメンテーション多様化技術は、いくつかの異なる方法で実施可能である。第一の実施形態は、ワイヤ・ロード(スタブ)を、「インプリメントされた」設計図に存在するワイヤに追加することを含む。FPGAベンダーは、個別の配線を、例えばザイリンクス社のビバド(Vivado:登録商標)CADツールにおいて「Implemented Design View」を用いて操作可能なインターフェースを提供する。ワイヤ・ロードを操作するこの方法は、ターゲットとなったパスの遅延に少しだけ変化を導入する。別の実施形態では、SBOXのVHDLの記述に少し些細な変更をして再合成する必要がある。この方法では、1つのインプリメンテーションから次のインプリメンテーションへパス遅延における相違が大きくなりやすい。このような方法を両方用いた遅延をここで説明する。
【0037】
シミュレーションツールを使用して、このワイヤ・ロード及び合成式多様化方法の遅延の影響を見積り可能であるが、その影響は、FPGAにおいて実行されるハードウェア試験において直接測定される。当方の試験において使用されるテスト用構造体のブロックレベルの図を、図3に示す。パス遅延の測定は、高精度で、すなわち約30psの範囲内で、デジタルクロックマネージャーの「Fine Phase Shift(高精度位相シフト)」機能(ザイリンクス社のアーキテクチャにおけるMulti−Mode−Clock−Manager又はMMCMと呼ばれる)と、クロックストロービング技術とを用いて、測定可能である。クロック・ストローブ・モジュール(Clock Strobe Module)(CSM)及びMMCMを、図3の左側に図示する。CSMは、VHDLモジュールとしてインプリメントされるものであり、制御モジュールである。CSMは、MMCMに制御信号を発信して、Clk及びClkとの間において高精度位相シフト(fine phase shift)(FPS)を調整し、FPSがいくつ適用されているか記録を取るために加算カウンタを含む。初期の位相シフトは、ゼロであり、テスト回路における全てのパスセグメントのタイミングが調節されるまで、インクリメントされる。それぞれのインクリメントは、FPSを18ps前方へ調整する。
【0038】
テスト回路は、64の「Switch box(スイッチボックス)」のシーケンスを実行し、これによって、2つの入力信号がスイッチボックスの中を一直線に通るようにするか(スイッチボックスCtrlが0にセットされる)か、又はフリップさせることができる(1にセットされる)。一対の「Timing Cell(タイミングセル)」が、図3の右側に示すように、それぞれのスイッチボックスの出力に追加される。それぞれのタイミングセルは、高精度位相シフトされたクロックClkで駆動されるフリップフロップ(FF)、XORゲート、2−to−1MUX、及び「n−ビット」レジスタ(パス遅延と表示)を含む。このタイミングセル回路は、スイッチボックスの出力のそれぞれの対においてレプリケートされる。
【0039】
全てのタイミングセルのFFは、スイッチボックス出力信号の初期値で初期化され、スイッチボックス出力信号は、立ち上がりエッジ信号のタイミングが調節されたときゼロである。次いで、CSMが、それぞれのテスト前にクロックClkに18ps前へ位相ずれを起こさせて、「launch−capture」テストのシーケンスを実行する。タイミングセルのXORゲートは、シーケンスの初めに1を生成し、これは、FF内に取り込まれたテストパス信号が初期値で残っている、すなわち、テストパスに沿って伝搬する信号が、Clkがアサートされる前にFF入力に到達するのに十分な時間を持てていなかったことによる。これによって、CSMにより生成されたデジタル高精度位相シフト(FPS)の電流値が、パス遅延レジスタに保存される。
【0040】
FPSカウントが、テストのシーケンスにおいて増加すると、テストパスの初めに伝搬する信号は、Clkがアサートされる前にFF入力に到達し始める。CSMは、これが起こると、このタイミングセル用のパス遅延レジスタへの更新を停止する。タイミングセルのパス遅延レジスタ内に保存された最終値は、FPSカウンタの値である。そのカウントは、18psをその値に掛けることにより実際の遅延に変換可能な整数の値であり、すなわち、連続したFPS値と関連付けられるステップサイズである。
【0041】
ワイヤ・ロード多様化モデルを分析する。図4は、図3のブロック図からの、(上部から底部へ)連続した2つのスイッチボックス及びタイミングセルのスクリーンショットの図を示す。スイッチボックス及びタイミングセルは、右側に図示したようにLUT内にインプリメントされる。スイッチボックスのそれぞれの対の間の2つのテストパスは、手動で配線される。配線の一方は、白色の破線で強調表示しており、第2の配線は、白色の実線でそれと隣接している。配線は、左に図示したように、ザイリンクス社のスイッチボックスのシーケンスを使用して構成される。スイッチボックスによって、入力信号が、「n」出力伝搬用配線の1本以上へ経路設定され得る。この例では、出力経路を1つのみ使用するが、任意の数の経路が考えられる。ワイヤ・ロード・インプリメンテーション多様化方法は、このスイッチボックスを用いて、一つの仕組みとしてSBOX内の既存の経路にワイヤ・ロードを追加して、パスの遅延を変更する。図3のテスト用構造体を使用して、異なるワイヤ・ロード・モデルの下遅延における変化をZynq 7020 FPGAを使用して測定する。図5のグラフは、クロックストローブ処理が完了した後、64のパス遅延レジスタから得られた2つのテストパス用のタイミング値のセットを示す。デジタルタイミング値は、約65から2050まで変動する。述べたように、FPSのそれぞれのインクリメントは、約18psを遅延全体に追加し、次第に長くなりつつあるパスセグメントの実際の遅延は、1.161nsから36.613nsまで変動する。この遅延は、「base case」、すなわち、ワイヤ・ロードが追加されていない回路構成を規定する。
【0042】
逆に、図6a、図6b、図6cは、2つのスイッチボックスの間においてのみワイヤ・スタブ・ロードを上部テストパスに追加した3つのテスト事例を示す。図6Aは、下部スイッチボックスに追加されたファンアウトを、図6Bは、上部スイッチボックスに追加されたファンアウトを示し、図6Cは、両方の位置にファンアウトを追加した構成を示す。それぞれのファンアウトロードがもたらす遅延における影響は小さい。正確に測定するために、スイッチボックスは、このワイヤ・スタブ・ロードモデルのそれぞれを用いて上部テストパス全体に沿って構成され、タイミングセルを用いてそれぞれのスイッチボックスにおける遅延差を測定する。図7は、FPSのユニットにおける差異をグラフ化している。図7に示したように、第1及び第2の想定に対するパス遅延における差異は、段階ごとに約2.8psである。これは、ステージ64において10という累積値を用いて、17.86psを掛け、64段階で割って、計算されたものである。両方のワイヤ・ロードを用いた遅延は、予想通り約2倍である。この分析は、遅延を変更するためのワイヤ・ロードの仕組みが、難読化プロセスにおいて非常に精密な制御を提供することを示している。この方法を、単独で、又は合成式多様化と呼ぶ第2の方法と組み合わせて用いることができる。
【0043】
合成式多様化モデルを分析する。合成式多様化は、FPGA(及びASIC)合成ツールが同じ動作記述から生成可能な異なるインプリメンテーションのことをいう。合成式多様化は、2つのやり方でインプリメント可能である。第1のやり方は、HDL動作記述に対して少し(些細な)変更をして、インプリメンテーションを単に再合成することである。合成ツール内で使用されるヒューリスティックアルゴリズムは、例えば、場所や経路の問題に対して最適な解決法を発見することはできない。従って、インプリメントされた設計は、一般に、(ワイヤ・ロード方法と比較すると)1つのインプリメンテーションから次へパス遅延にさらに大きな差異をもたらしてしまう。この手法の多様化は、以下で評価する。
【0044】
第2の方法は、標準的なセルライブラリの異なるバージョンを用いて合成することである。標準的なセルライブラリは、ASICフロー、例えば、CadenceRTLコンパイラにおいて用いられて、設計の動作記述を構造的なネットリストに変換する。標準的なセルライブラリのセット内において利用可能な論理セルを変更することによって、合成ツールは、異なる論理ゲートを用いて設計をインプリメントさせ、この異なる論理ゲートは、それぞれのインプリメンテーションのパス遅延(及び電力トレースの挙動)において影響が結果として起こる。この方法はまた、ASIC作成のネットリストを、動作HDLの代わりに設計の入力記述として用いることにより、FPGAフローにおいて使用可能である。
【0045】
本発明に係るDPR方法は、悪意ある他者が、AES SBOXの複数のインプリメンテーションのどれがDPR処理において使用されているかを追跡できなくなるかに大きく依存する。悪意ある他者がこれを遂行することは、いくつかの理由から困難な場合がある。第1に、SBOXをインプリメントすることに使用される部分的なビットストリームのセットは、同じ大きさであり、そうでなければ、コンフィグレーションビットのサブセットを除いて同一であること。第2に、SPREADが、HDLモジュールとしてインプリメントされ、FPGAのPL側内において全体が動作すること。
【0046】
DPR電力トレースを、AES SBOXの2つ、SBOX及びSBOXをインスタンス化して生成することにより、上述の合成型多様化方法を用いて、分析する。電力トレースは、それぞれがDPR処理においてソースとして使用されるときに、測定される。AES SBOXの部分的なビットストリームの大きさは、約58KBである。図8は、Tektronix 7254デジタルオシロスコープを使用して測定された電力トレースを示す。トリガー用パルスボックス内の領域は、DPR処理と関連付けられる時間周期に対応する。この検査によれば、Zynq 7020 SoCにおいてLinux(登録商標)下で動作するCプログラムを用いるDPRが、インプリメントされた。
【0047】
SBOXの2つのバージョンが、FPGA上の同じ領域に再構成される。電力トレースは、ノイズを減少させるために100回平均化され、ソフトウェアの「スムージング」ルーチンを用いてノイズ除去されて高周波ノイズが取り除かれる。「スムージング後」の波形には、区別される特徴が少ないことが明らかであり、このことを、平均化した(がまだノイズがある)オシロスコープの波形を通して太線として図8に示している。
【0048】
DPAの試験を、重大なセキュリティ特性を評価するために実施する。特に、SBOXを一つのみテスト中のモデルに含ませる。モデルの2つのバージョンが、合成式多様化技術を用いて生成される。
【0049】
図9は、本発明の一実施形態に係る回路のブロック図を示す。ザイリンクス社Artix−7 XC7A35T FPGAが、DPA試験用にハードウェア・プラットフォームとして使用される。デカップリングコンデンサの全てが仕組みとしてのArtix−7(「Arty」)基板から取り除かれることによって、PL側のスイッチング動作のさらに高い周波数成分が、コア電源と直列配置された20オームレジスタに渡って測定され得るためである。2つのTAP3500アクティブ・プローブが、20オームレジスタの両端に配置され、スコープは、レジスタの両端における差分を測定するように構成されている。
【0050】
1400の適用された平文のそれぞれに対する差分信号の1000個のサンプルを平均化する。これは、Artyに組み込まれた電圧調整器により生成される多大な非同期ノイズの過渡現象を平均化することを必要とする。同じ試験が、V及びVと呼ぶSBOXの2つのインプリメンテーションに実行された。
【0051】
差分電力解析プロセスは、それぞれの試験において個別に、平文について測定された1400の電力トレースに適用される。V試験から測定された電力トレースを図10に示す。波形の垂直方向の分散の大多数は、わずかな室温変化によるものである。温度に極めて敏感なArtix−7チップには、約27mAの大量のDC漏れ電流が存在する。室温の数度の変動に対する漏れにおける変化は、示したように20オームレジスタの両端で増幅して約200〜300マイクロアンペアである。この感度の場合、DPAの試験は、温度チャンバー内において最もよく実施される。垂直方向のドリフトは、DPAの方法により生成された波形の相違における相関程度を低くするもので、以下にさらに説明する。
【0052】
SBOXの上位ビットが、1400の電力トレースを、256の鍵推定(key guess)のそれぞれのために2つのグループに分割することに用いられ、約700の電力トレースのそれぞれのグループからの平均電力トレースが、計算される。V及びVについて正規の鍵推定のための差分電力トレース(difference power traces)を、図11に示す。垂直方向の点線は、相関ピークが、Vに対する約4.2nsからVに対する5.1nsまで、Vに向かって右にシフトしたことを示す。これは、SBOXの2つのインプリメンテーションのそれぞれにおいて、遅延におけるビット7への変化を反映している。
【0053】
200psのピーク値辺りの狭い領域が、0から255まで鍵推定のそれぞれについて統合され、図12にグラフにしている。3Cの正規の鍵推定に対する負のピークを強調表示している。その領域は、1のグループが0のグループから引かれるので、負であると予想され、1のグループは、ビット7から1への遷移を起こす平文を表している。1への遷移は、0のグループよりも大きい電圧降下を生じる電力レールから電流を引き出す。示したように、正規の鍵推定は、Vについては最も大きい負のピークとして4番目に位置し、Vについては1番目に位置する。上に示したように、未処理の電力トレースにおける垂直方向のドリフトは、相関性を低くする。この問題に拘わらず、正規の鍵推定と関連付けられる相関性は、なお明らかである。
【0054】
図13に図示した結果には、V及びVから電力トレースの半分が合成された「両方」と表記された分析が含まれる。電力トレースのこのような混合は、SBOXの2つのインプリメンテーションが、暗号化中にSPREADによりスワップイン、スワップアウトされる簡略化された想定を表している。示したように、鍵推定と関連付けられるグラフ底部(「両方」)におけるピークは、ここで高さが変化している。さらに重要なのは、3Cの正規の鍵推定と関連付けられるピークの高さが、最も大きい負のピークのリストで9番目に位置することである。インプリメンテーションの数が、2より大きいとき、相関性の低下は、さらに大きくなりやすい。
【0055】
このFPGAの試験は、SPREAD技術の重要な要素を評価する。遅延の分析は、ワイヤ・スタブを既存のワイヤに追加するインプリメンテーション多様化方法のために提示する。第2の合成式インプリメンテーション多様化方法が、DPAの試験を用いて評価される。結果は、電力トレースにおける相関性が低下することを実証している。
【0056】
本開示は、様々な変形及び代替形態を許容するが、本発明の特定の代表的な実施形態を一例として図面に示し、本明細書に詳細に記載している。しかしながら、開示された特定の実施形態に本開示を限定することは意図しておらず、それとは逆に、添付の特許請求の範囲に規定した本開示の範囲内に入る全ての変形、均等物、及び代替物を網羅することを意図していることを理解すべきである。

【図1】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【国際調査報告】