JP5794638B2 - サイドチャネル評価装置及びサイドチャネル評価方法 - Google Patents

サイドチャネル評価装置及びサイドチャネル評価方法 Download PDF

Info

Publication number
JP5794638B2
JP5794638B2 JP2012144040A JP2012144040A JP5794638B2 JP 5794638 B2 JP5794638 B2 JP 5794638B2 JP 2012144040 A JP2012144040 A JP 2012144040A JP 2012144040 A JP2012144040 A JP 2012144040A JP 5794638 B2 JP5794638 B2 JP 5794638B2
Authority
JP
Japan
Prior art keywords
selection function
side channel
evaluation
encryption
channel information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012144040A
Other languages
English (en)
Other versions
JP2014006484A (ja
Inventor
耕平 岸本
耕平 岸本
河村 大輔
大輔 河村
明暁 岩下
明暁 岩下
水野 善之
善之 水野
和邦 古原
和邦 古原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Tokai Rika Co Ltd
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Tokai Rika Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST, Tokai Rika Co Ltd filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2012144040A priority Critical patent/JP5794638B2/ja
Publication of JP2014006484A publication Critical patent/JP2014006484A/ja
Application granted granted Critical
Publication of JP5794638B2 publication Critical patent/JP5794638B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、集積回路のサイドチャネル攻撃に対する耐性を評価するサイドチャネル評価装置及びサイドチャネル評価方法に関する。
従来、暗号処理機能を搭載したLSI(Large Scale Integration)等の集積回路において、暗号回路が動作する際に発生するサイドチャネル情報を解析し、秘密情報(例えば暗号鍵等)を不正に盗み出すサイドチャネル攻撃が周知である。このような背景から、暗号処理機能を有する組み込み機器で利用するLSIには、サイドチャネル攻撃に対して充分な耐性を持つことが求められている。
サイドチャネル攻撃に対する耐性評価としては、例えば特許文献1に示すようなサイドチャネル評価装置を用いた方式が存在する。このサイドチャネル評価装置では、例えば平文、暗号文、暗号鍵等を入力として暗号化の中間データのハミング重みやハミング距離等を出力する選択関数に着目し、特定の選択関数に対して、暗号鍵を解読する解析を行う。そして、この選択関数出力とサイドチャネル情報との間に相関があるか否かを解析し、サイドチャネル攻撃に対する脆弱性を確認する。
国際公開2009/099089号公報
ところで、特許文献1は、暗号鍵の候補ごとに相関を計算し、最大の相関を示す暗号鍵候補を、不正解読される可能性のある疑わしい鍵として出力する。よって、特許文献1は、特定の選択関数に対し、複数の暗号鍵を代入してサイドチャネル攻撃に対する脆弱性を確認しなくてはならないので、複数の暗号鍵を確認する分、評価時間が相対的に長くなってしまう問題があった。
本発明の目的は、暗号装置の不正解読に対する耐性評価にかかる時間を短時間化することができるサイドチャネル評価装置及びサイドチャネル評価方法を提供することにある。
前記問題点を解決するために、本発明では、暗号装置の不正解読に対する耐性を評価するサイドチャネル評価装置において、前記暗号装置から漏洩するサイドチャネル情報を入力するサイドチャネル情報入力部と、前記暗号装置で取り扱う暗号データを入力する暗号データ入力部と、前記暗号装置に書き込まれた真の暗号鍵を入力する暗号鍵入力部と、前記サイドチャネル情報の計算に用いる選択関数に必要な部分鍵を、前記真の暗号鍵から計算する部分鍵計算部と、複数の前記選択関数が登録された選択関数データベースを参照することにより、前記評価に必要な選択関数を選択し、当該選択関数により計算上のサイドチャネル情報を求める選択関数制御部と、前記サイドチャネル情報入力部で入力した前記サイドチャネル情報と、前記選択関数により求めた選択関数出力との相関を計算する相関計算部と、前記相関計算部が求めた相関係数と閾値とを比較し、その比較結果を出力する比較出力部とを備えたことを要旨とする。
本発明の構成によれば、選択関数制御部は、選択関数データベースを参照して、評価を行う選択関数を選択する。部分鍵計算部は、選択された選択関数に応じた部分鍵を選択関数に入力する。選択関数は、暗号データ入力部で入力した暗号データと部分鍵とを入力とし、計算結果として選択関数出力を相関計算部に出力する。相関計算部は、入力した選択関数出力と、サイドチャネル情報入力部で入力したサイドチャネル情報との相関を計算する。比較出力部は、相関関数とその閾値とを比較し、相関関数が閾値以上のとき、この相関関数を暗号鍵が不正解読される可能性のある関数として出力する。以上の評価を、選択関数データベース内の各選択関数において実施する。
また、本構成の場合、安全性の評価を行う作業者は暗号装置の暗号鍵を知っているものと仮定し、暗号装置に書き込まれた真の暗号鍵をサイドチャネル評価装置に入力する。そして、この真の暗号鍵から部分鍵を計算して、耐性評価の安全性を確認する。このため、評価時に入力対象となる暗号鍵が1つで済むので、安全性の評価に際しては、使用しなければならない暗号鍵が1パターンで固定される。よって、暗号鍵を複数推測して評価を行う作業をとらずに済むので、その分、評価にかかる時間を短縮することが可能となる。
本発明では、評価を行う前記選択関数を選択可能とすることにより、前記評価のレベルを設定変更することが可能な評価レベル設定部を備え、前記選択関数制御部は、前記データベースから前記評価のレベルに応じた特定の選択関数のみを選択することを要旨とする。この構成によれば、暗号装置の不正解読に対する耐性評価のレベルを自由に替えることが可能となる。よって、例えば評価対象となる暗号装置によっては不要となる選択関数を除外するなど、状況に応じて、その都度必要とするレベルで耐性評価を行うことが可能となる。
本発明では、前記評価のレベルは、前記選択関数に入力する部分鍵サイズであることを要旨とする。この構成によれば、評価を行う選択関数を絞り込んだので、耐性評価にかかる時間の短時間化に効果が高くなる。
本発明では、前記評価のレベルは、前記選択関数の種類であることを要旨とする。この構成によれば、評価を行う選択関数を絞り込んだので、耐性評価にかかる時間の短時間化に効果が高くなる。
本発明では、暗号装置の不正解読に対する耐性を評価するサイドチャネル評価方法において、前記暗号装置から漏洩するサイドチャネル情報を入力するサイドチャネル情報入力ステップと、前記暗号装置で取り扱う暗号データを入力する暗号データ入力ステップと、前記暗号装置に書き込まれた真の暗号鍵を入力する暗号鍵入力ステップと、前記サイドチャネル情報を計算する選択関数に必要な部分鍵を、前記真の暗号鍵から計算する部分鍵計算ステップと、複数の前記選択関数が登録された選択関数データベースを参照することにより、前記評価に必要な選択関数を選択し、当該選択関数により計算上のサイドチャネル情報を求める選択関数制御ステップと、前記サイドチャネル情報入力ステップで入力した前記サイドチャネル情報と、前記選択関数により求めた選択関数出力との相関を計算する相関計算ステップと、前記相関計算ステップで求めた相関係数と閾値とを比較し、その比較結果を出力する比較出力ステップとを備えたことを要旨とする。
本発明によれば、暗号装置の不正解読に対する耐性評価にかかる時間を短時間化することができる。
一実施形態のAES−128の中間値記号の定義を示す説明図。 ループ型構造の暗号装置の概要図。 サイドチャネル評価装置の構成図。 SubBytes変換の概要を示すモデル図。 別のGF(256)上で逆元演算を行うSubBytes変換の概要を示すモデル図。 AES−128における選択関数の種類と数を示す表。 サイドチャネル攻撃に対する耐性評価時に実行されるフローチャート。
以下、本発明のサイドチャネル評価装置及びサイドチャネル評価方法を、解析手法としてCPA(Correlation Power Analysis:相関電力解析)に具体化した一実施形態を図1〜図7に従って説明する。CPAは、暗号機能が動作する際の内部データ値に依存して消費電力値が変動する脆弱性(依存関係)を抽出する解析手法である。
[AES(Advanced Encryption Standard)の概要]
図1に示すように、暗号アルゴリズムの一種としてAESがある。AESは、ブロックサイズが128ビット、暗号鍵サイズが128/196/256ビットの3種類から選択可能である。本例では、暗号鍵サイズが128ビットのもののみを対象とし、以降、AES−128と記す。
AES−128は、SubBytes(バイト毎の非線形変換)と、ShiftRows(バイト単位の入れ替え)と、MixColumns(4バイト単位の線形変換)と、AddRoundKey(ラウンド鍵との排他的論理和)との4種類の変換で構成されるラウンド関数による変換を、10ラウンド繰り返すことで、平文を暗号文に変換する。但し、1ラウンド目のラウンド関数変換前にもAddRoundKeyが行われ、10ラウンド目のラウンド関数ではMixColumns変換を行わない。AddRoundKeyで用いるラウンド鍵は128ビットの秘密鍵から計算される値であり、この計算を行う関数は一般的に鍵スケジューラと呼ばれている。
本例のCPAの場合、暗号化の途中で生成される中間値、つまりラウンド関数内部の変換処理入出力データに着目して解析を行う。この各中間値データは、図1に示すように定義される。例えば、平文バイトをP[j]として、j=0をMSB側バイトとし、j=15をLSB側バイトとする。同様に暗号文をC[j]とし、iラウンド目のラウンド関数への入力をRi[j]とする。ここで、ラウンド数iはi=1〜10とする。このiラウンド目のラウンド関数内で行われるSubBytes変換出力バイトをSi[j]とする。ShiftRows変換出力は、SubBytes変換出力のバイト順序が入れ替わるのみで値は変わらない。Si[j]と同様に、MixColumns変換出力バイトをMi[j]とする。但し、10ラウンド目ではMixColumnsが行われないため、M10[j]は存在しない。また、暗号化初期に行われるAddRoundKeyで用いる16バイトの鍵(秘密鍵と等価)をK[0]〜K[15]とし、1ラウンド目のAddRoundKeyで用いるラウンド鍵をK[16]〜K[31]とし、同様にiラウンド目のラウンド鍵のjバイト目をK[16・i+j]とする。
[CPAの概要]
一般的な論理回路の場合、LSIにおけるレジスタの遷移ハミング距離と消費電力との間には、線形相関があることが多い。遷移ハミング距離は、レジスタの値がある値に切り替わる際に、レジスタがビット反転した数に相当する。CPAは、推測した遷移ハミング距離と消費電力との間のピアソン相関計数の大きさで、推測の正しさを判断する解析手法である。
図2にCPAの解析例を示す。同図に示すように、ループ型構造で実装されたAES−128の最終段において、レジスタは中間データR10[j]から暗号文C[j]に遷移する。このR10[j]の最上位バイトR10[0]は、暗号文バイトC[0]とラウンド鍵バイトK[160]とを用いて、次式(1)により計算可能である。なお、式(1)中の「S−1」は逆SubBytes変換を表し、「円中に+の記号」はXOR処理を表し、「2:1」はセレクタの2入力1出力を表す。
従って、例えば暗号文が入手可能であると仮定すると、K[160]の値(秘密鍵の値)を推測することで、レジスタ1バイト分の遷移ハミング距離の推測値が計算できる。このハミング距離の計算を行う関数は、一般的に選択関数と呼ばれている。K[160]の推測値をパラメータ「k」で表したとき、本例における選択関数の出力Hは次式(2)で表される。なお、式(2)中のHD(A,B)はAとBとの間のハミング距離を計算する関数とし、HW(A)はハミング重みを計算する関数とする。
ここで、N回の暗号処理時の暗号文と消費電力とを測定したとき、n番目のサンプルにおける暗号文バイトC[0]を式(2)に入力した際に得られる出力をHk,nとする。同様に、n番目のサンプルにおける消費電力値をWとする。このとき、次式(3)で計算されるピアソン相関係数ρが最大値となる推測値「k」が、K[160]の真の値である可能性が高い。
式(3)の消費電力Wは、レジスタの値が遷移する際の消費電力値としている。従って、解析対象とする電力消費が発生する時刻が既知であることを仮定している。しかし、レジスタの値が遷移する時刻の特定が困難な場合には、時間波形Wt,nで解析を行うことで、計算量の増加と引き換えに、この条件を緩和することができる。この場合、評価値であるピアソン相関係数ρは、次式(4)により計算される。
[選択関数の説明]
前述のCPAの例では、ループ型構造に起因した選択関数を用いて説明した。このように、例えばLSI設計者が自ら設計したLSIを評価する場合など、予めLSIの実装情報を知っていれば、この実装情報を用いることで適切な選択関数を選ぶことができる。従って、実装情報が入手可能な条件下では、解析が成立する可能性のある選択関数のみをピックアップして評価すればよい。
一方、実装情報がない場合には、適切な選択関数を選ぶことができないので、安全性を評価するためには、全ての選択関数で解析が成立しないことを確認しなくてはならない。この選択関数の種類をhとし、このhに推測部分鍵kを入力したときのnサンプル目の出力をHh,k,nとする。部分鍵kは、選択関数ごとに鍵値が異なり、評価対象となる選択関数に応じてバイト数も異なる。このとき、式(5)で計算されるρ(h,k)や、式(6)で導出されるρ(h,k,t)は、全てのhにおいて評価する必要がある。即ち、実装情報がない場合には、評価に必要な計算量が多量になることが分かる。
[サイドチャネル評価装置の構成]
本例の場合、評価処理時の計算量削減として、真の部分鍵kを「既知の値」と仮定して、式(5)や式(6)のパラメータ「k」を固定値化した条件下で評価を実施する。この条件下での評価関数は、次式(7),(8)となる。これら式からも分かるように、パラメータ「k」をなくした分、式(5),(6)と比較して、計算量を削減できることが分かる。
図3に、サイドチャネル評価装置1の構成を示す。LSI等の暗号装置2には、暗号装置2が入出力する各種データを測定する測定部3が接続されている。測定部3は、暗号装置2が入出力する暗号データDenを取得するとともに、暗号装置2から漏洩するサイドチャネル情報Dscを測定する。暗号データDenには、例えば平文、暗号文等がある。また、サイドチャネル情報Dscには、例えば消費電力、漏洩電磁波、音、温度等がある。測定部3は、取得した暗号データDen及びサイドチャネル情報Dscをサイドチャネル評価装置1に出力する。
サイドチャネル評価装置1には、測定部3からサイドチャネル情報Dscを入力するサイドチャネル情報入力部4と、測定部3から暗号データDenを入力する暗号データ入力部5と、暗号装置2から真の暗号鍵Ktrを入力する暗号鍵入力部6とが設けられている。本例の場合、安全性評価を行う作業者は評価対象の暗号鍵を知っていると仮定しているので、暗号装置2に書き込まれた真の暗号鍵Ktrの値を暗号鍵入力部6に入力することが可能である。
サイドチャネル評価装置1には、使用する選択関数を選択する選択関数制御部7と、各選択関数に必要な部分鍵kを計算する部分鍵計算部8と、評価時に使用する選択関数が複数格納された選択関数データベース9とが設けられている。選択関数制御部7は、選択関数データベース9を参照して、その時々に必要とする選択関数を選び出す。部分鍵計算部8は、真の暗号鍵Ktrを基に部分鍵kを計算し、評価中の選択関数に必要な部分鍵kを適宜出力する。選択関数データベース9には、評価時に必要とされる選択関数が全て登録されている。
選択関数制御部7により選ばれた選択関数は、暗号データDen及び部分鍵kを入力とし、暗号化の中間データのハミング重みやハミング距離を計算して出力する。選択関数の計算は、選択関数が指定される度に実行される。
サイドチャネル評価装置1には、サイドチャネル情報Dsc及び選択関数出力Hとの相関を計算する相関計算部10と、相関計算部10が計算した相関係数(相関値)ρと閾値ρkとを比較する比較部11と、相関係数ρが閾値ρk以上となる選択関数を出力する出力部12とが設けられている。相関計算部10は、サイドチャネル情報入力部4からサイドチャネル情報Dscを入力し、これと選択関数出力とを比較することにより相関係数ρを計算する。相関係数ρが閾値ρk以上の場合、この相関係数ρが出力された選択関数は秘密情報の解析に利用される可能性があるので、この選択関数を出力部12により出力して作業者に通知する。なお、比較部11及び出力部12が比較出力部に相当する。
サイドチャネル評価装置1には、脆弱性評価の評価レベルを作業者が自由に切り替え設定可能とする評価レベル設定部13が設けられている。評価レベル設定部13により評価レベルが「高い側」に設定されると、選択関数データベース9から選択関数が多く選択されて、評価が実行される。一方、評価レベル設定部13により評価レベルが「低い側」に設定されると、選択関数データベース9から選び出される選択関数が少なく設定されて、評価が簡素化される。
[選択関数の種類の考察]
ここでは、想定されるAES−128の選択関数について考察する。
(I)レジスタの遷移ハミング距離モデルに基づく選択関数
本節では、[CPAの概要]の節で挙げた例での選択関数と同様に、レジスタの遷移ハミング距離と消費電力との間に線形相関があると仮定する消費電力モデルを用いた選択関数を検討する。このモデルでは、レジスタの遷移前後のデータ2値により、消費電力を推定する。[CPAの概要]の節で挙げた例の場合、R10[0]とC[0]がこの2値に相当する。
このモデルに基づく選択関数は、レジスタにどのような値が保持されるかによって決定される。即ち、保持され得る中間値全てを考えることで、全ての選択関数を抽出できる。AES−128は、バイト単位で演算を行うため、レジスタに保持される値もバイト単位で検討することが妥当である。本節では、図1で定義した暗号化中間値バイトRi[j],Si[j],Mi[j]及び平文バイトP[j]、暗号バイトC[j]のいずれかがレジスタに保持されるものと仮定する。
(I−1)平文・暗号文バイトを含む選択関数
平文バイトP[j]や暗号文バイトC[j]のバイト間のハミング距離を出力する選択関数では、式(3)のパラメータ「k」の要素がないため、暗号鍵解析には使えない。しかし、これらのバイトと暗号化中間値バイトRi[j],Si[j],Mi[j]とのハミング距離は、[CPAの概要]の節で挙げた例のように解析に用いることができる。
(I−2)平文・暗号文バイトを含まない選択関数
暗号化中間値バイトRi[j],Si[j],Mi[j]のうち、2値のハミング距離を出力する選択関数も解析に用いることができる。
(I−3)レジスタのゼロクリアを考慮した選択関数
レジスタ遷移前後のデータは必ずしも暗号化データとは限らず、例えばマイクロコンピュータ等では遷移毎にゼロクリアが行われる場合が考えられる。この場合のレジスタの遷移ハミング距離は、暗号データ1値のハミング重みと一致する。なお、この場合、データのハミング重みとも分類可能だが、本項ではこの場合もレジスタの遷移ハミング距離モデルと分類する。
(I−4)異なる暗号処理のハミング距離選択関数
レジスタ値が遷移する際、その前後の値は必ずしも同一の暗号処理時のものとは限らない。例えば、レジスタの値が平文Aを暗号化する際の中間値データから、平文Bを暗号化する際の中間値データに遷移する場合も考えられる。このような平文Aと平文Bとの関係は、実装方法に依存して様々な場合が存在し、例えば「連続して暗号化を行う2つの平文データ」である場合等が挙げられる。
この場合の選択関数として、異なる種類の中間値データの間のハミング距離(例えば、平文Aから計算したS1[5]と、平文Bから計算したS1[9]との間のハミング距離等)を出力とする選択関数が存在する。(I−2)のように同一の平文から計算する場合のS1[5]とS1[9]とのハミング距離は1通りである。しかし、異なる平文を考慮する場合、平文Aから計算したS1[5]と平文Bから計算したS1[9]とに加え、平文Aから計算したS1[9]と平文Bから計算したS1[5]とのハミング距離を出力とする選択関数も存在する。
また、同じ種類の中間値データ(例えば、平文Aから計算したS1[5]と平文Bから計算したS1[5]とは異なる値である)のハミング距離を出力とする選択関数も、解析が成立する可能性がある。
(II)非線形回路の遷移確率の偏りを利用した選択関数
Iで挙げた選択関数の他に、非線形回路の出力遷移確率の偏りを利用した選択関数も存在する。例えば、非線形回路である2入力AND回路にランダムな値を順次入力したとき、出力が遷移する確率は平均3/8である。ここで、この出力値のある時刻の値が「1」である場合に限定すると、前後の時刻と出力値とが異なる確率、つまり出力遷移確率は3/4となる。また、「0」である場合には、出力遷移確率は1/4となる。従って、出力値で消費電力を分類した場合に、その平均値の間に差分が生じる。この偏りは、ある時刻の入力1ビットで分類した場合にも生じ、同様な平均消費電力差分を生じる。
AES−128のデータ変換仕様において、非線形回路が用いられる可能性があるのはSubBytes変換のみである。このSubBytes変換はバイト単位での全単射変換であり、図4に示すようにガロア体GF(256)上の逆元変換とaffine変換とで構成される。affine変換は線形変換であるため、逆元変換部のみが非線形変換を行う。従って、この逆元変換の入出力ビット値は非線形回路の入出力に接続されている可能性が高く、これらビットを出力とする選択関数では、解析が成立する可能性があると考えられる。
このGF(256)上の逆元変換は、図5に示すように線形写像δ(及び逆写像δ−1)を用いて別のGF(256)上の逆元変換とすることができる。このとき、特定のGF(256)は小規模な回路で逆元変換を構成できることが知られており、この性質を利用したSubBytes変換回路が知られている。従って、逆元変換の入出力ビットは、実装方法に依存して変化する。
特定のGF(256)への線形写像は複数種類存在し、さらに前述のような回路規模削減が可能なGF(256)は数多く存在する。従って、SubBytes回路の実装時には、これらのGF(256)上で逆元演算回路を構成する可能性を考慮すべきである。しかし、解析時に全ての線形写像を考慮する場合、線形写像の数だけ選択関数が増加することになってしまう。そこで、本節では、逆元変換回路の入出力ビット値を選択関数とするとき、そのビット位置までは考慮する必要が無いことに着目し、選択関数の総数を検討した。
任意の線形写像で変換した各ビットは、1バイトの線形マスク値をΓとしてΓ≠0の255値でマスクした値の奇数パリティビット255値のいずれかと必ず一致する。例えば、式(11)の左側のδで写像したときの逆元変換への入力のMSBは、Γ=A0(HEX)でマスクしたときのパリティと一致し、同様にLSBはΓ=43(HEX)のときと同値である。このように、真の逆元変換回路への入力8ビットは、必ずこの255種の選択関数出力に含まれる。さらに、逆元変換回路内部において線形変換が行われる実装の場合、この線形変換も考慮できる。
同様に、逆元変換の出力をSubBytes出力バイトから計算する場合には、affine変換において行われるベクトル加算の逆変換、つまり63(HEX)との排他的論理和を行った上で、同様に線形マスク値でマスクしたときのパリティを計算する。これらの選択関数は次式(9)〜(11)で表される。
(III)ZV−DPA(Zero Value DPA)を解析手法とする選択関数
SubBytes変換への入力バイトが「00(HEX)」の場合とそれ以外とを分類する解析Zero Value DPAが周知である。逆元変換への入力バイトが「00(HEX)」である場合、「00(HEX)」は、どのGF(256)上においても逆元が「00(HEX)」であり、内部論理回路の入出力ビットも全て「0」となることから、特異な電力消費挙動となる。Zero Value DPAの選択関数は、逆元変換を行うGF(256)に依存せず、次式(12)で表される。
図6に、(I)〜(III)で抽出した選択関数の種類を示す。これら全ての選択関数について、式(7)や式(8)の評価式で計算した際に、相関を生じる選択関数が存在しないLSIは電力解析攻撃に対して充分な耐性があると言える。本例の場合、(I)〜(III)で抽出した選択関数が選択関数データベース9に登録されている。なお、これら全ての選択関数が選択関数データベース9に登録される必要はなく、所定のものが適宜選択されて登録されてもよく、或いは前述以外の種類の選択関数が登録されてもよい。
次に、本例のサイドチャネル評価装置1の動作を、図7のフローチャートを用いて説明する。
ステップ101において、サイドチャネル情報入力部4は、測定部3が測定した実測のサイドチャネル情報Dscを、測定部3から入力する(サイドチャネル情報入力ステップ)。
ステップ102において、暗号データ入力部5は、測定部3が測定した暗号データDenを、測定部3から入力する(暗号データ入力ステップ)。
ステップ103において、暗号鍵入力部6は、暗号装置2に書き込まれた真の暗号鍵Ktrを、暗号装置2から入力する(暗号鍵入力ステップ)。即ち、サイドチャネル攻撃に対する安全性評価を行う作業者は暗号装置2の暗号鍵を知っていると仮定しているので、この暗号鍵を暗号装置2からサイドチャネル評価装置1に入力する。暗号鍵入力部6は、取得した真の暗号鍵Ktrを部分鍵計算部8に出力する。
ステップ104において、部分鍵計算部8は、暗号鍵入力部6から入力した真の暗号鍵Ktrを基に、各選択関数に必要な部分鍵kを計算する(部分鍵計算ステップ)。部分鍵計算部8は、選択関数データベース9を参照することにより、選択関数データベース9内にある選択関数を把握し、これら選択関数に必要な部分鍵kをまとめて計算しておく。部分鍵kのビット数、つまり部分鍵kのサイズは、各選択関数に応じて異なる。
ステップ105において、選択関数制御部7は、選択関数データベース9を参照することにより、評価を行う選択関数を選択する(選択関数制御ステップ)。なお、選択関数の評価の順番や、どの選択関数を選び出すのかは、評価レベル設定部13で選択されたレベルに応じて決まる。この評価レベルには、各選択関数に応じて異なる部分鍵kのサイズや、[選択関数の種類の考察]の節で挙げた選択関数の種類が用いられる。また、選択関数制御部7は、選択した選択関数に必要な部分鍵kを、部分鍵計算部8から抽出して選択関数に入力する。
ステップ106において、選択関数制御部7は、暗号データ入力部5で入力した暗号データDenと、選択関数制御部7により指定された部分鍵kとを用い、選び出した選択関数(計算方法)で計算を実行する(選択関数制御ステップ)。この計算結果である選択関数出力Hは、相関計算部10に入力される。
ステップ107において、相関計算部10は、サイドチャネル情報入力部4で入力したサイドチャネル情報と、選択関数の計算結果である選択関数出力Hとの間の相関を計算する(相関計算ステップ)。相関計算部10は、計算した相関係数ρを比較部11に出力する。
ステップ108において、比較部11は、相関計算部10から取得した相関係数ρと閾値ρkとを比較する(比較出力ステップ)。このとき、相関係数ρが閾値ρk以上であるならば、この相関係数ρを導き出した選択関数は、秘密情報の解析に利用される可能性がある。よって、比較部11は、相関係数ρが閾値ρk以上となると、この相関係数ρを計算した選択関数を出力部12に通知する。
ステップ109において、出力部12は、比較部11から通知を受けた選択関数をディスプレイに表示するなどして、秘密情報の解析に利用される可能性のある選択関数をユーザに通知する(比較出力ステップ)。これにより、作業者は、秘密情報の解析に利用されるおそれのある選択関数が何であるのかが分かる。
ステップ110において、選択関数制御部7は、選択関数データベース9内の全ての選択関数で評価が終了したか否かを判断する。このとき、未評価の選択関数が存在すれば、ステップ105に戻って他の選択関数の評価を同様に行い、全ての選択関数の評価が終了していれば、処理を終了する。
本実施形態の構成によれば、以下に記載の効果を得ることができる。
(1)サイドチャネル情報Dscに対する暗号装置2の脆弱性評価を行うにあたり、安全性評価を行う作業者は暗号装置2の真の暗号鍵Ktrを知っているものと仮定し、この真の暗号鍵Ktrから部分鍵kを計算して、暗号装置2のサイドチャネル攻撃に対する耐性を評価する。このため、評価時に入力対象となる暗号鍵が1つで済むので、安全性評価の作業時、使用しなければならない暗号鍵が1パターンで固定される。よって、暗号鍵を複数推測して評価を行う作業をとらずに済むので、その分、安全性評価にかかる時間を短縮することができる。
(2)サイドチャネル評価装置1に評価レベル設定部13を設けたので、耐性評価のレベルを自由に切り替えることができる。よって、例えば評価対象とする暗号装置2によっては不要となる選択関数を除外するなど、状況に応じて、その都度必要とするレベルで耐性評価を行うことができる。
(3)耐性の評価レベルを部分鍵kのサイズで設定可能とした場合、評価を行う選択関数の有効無効を、部分鍵kのサイズにより切り替えることができる。また、耐性の評価レベルを選択関数の種類により設定可能とした場合、評価を行う選択関数の有効無効を、選択関数の種類により切り替えることができる。このように、評価レベルを設定する際にも、種々の方式で設定することができるようになる。
(4)選択関数は、種類によって必要となる部分鍵のサイズが異なる関数である。本例の場合、このような選択関数を評価する場合であっても、耐性評価を短時間で行うことができる。
なお、実施形態はこれまでに述べた構成に限らず、以下の態様に変更してもよい。
・部分鍵計算部8は、必要とする部分鍵kを一度に計算することに限らず、例えば評価を行う選択関数が選択される度に、都度計算を実施する形式をとってもよい。
・サイドチャネル情報Dscは、暗号装置2から漏洩する情報であれば、種々のものが採用可能である。
・暗号データDenは、選択関数の入力となり得るデータであれば、種々のものが採用可能である。
・真の暗号鍵Ktrのビット数は、他の値に適宜変更してもよい。
・暗号の種類は、AESに代えて、DES(Data Encryption Standard)等の他の暗号方式を採用してもよい。
・選択関数は、実測したサイドチャネル情報Dscとの相関を求めることができる出力を出せるものであれば、種々の関数が採用可能である。
・安全性評価のレベル設定は、例えば使用する選択関数を作業者自らが1つひとつ適宜選択する方式でもよい。また、評価レベルを高〜低レベルの間で多段階(複数の選択関数群)に設定可能とし、選択されたレベル毎に、使用される選択関数が設定されてもよい。
・サイドチャネル評価装置1は、測定部3を一体に組み込んだ装置でもよい。
・選択関数データベース9に書き込まれる選択関数は、適宜変更することが可能である。
・AESは、暗号鍵サイズが196ビットや256ビットのものを採用してもよい。
・解析手法は、MIA(Mutual Information Analysis:相互情報量解析)や、EMA(ElectroMannetic Analysis:電磁波解析)等を採用することも可能である。
次に、上記実施形態及び別例から把握できる技術的思想について、それらの効果とともに以下に追記する。
(イ)暗号装置の不正解読に対する耐性を評価するサイドチャネル評価プログラムにおいて、前記暗号装置から漏洩するサイドチャネル情報を入力させるサイドチャネル情報入力ステップと、前記暗号装置で取り扱う暗号データを入力させる暗号データ入力ステップと、前記暗号装置に書き込まれた真の暗号鍵を入力させる暗号鍵入力ステップと、前記サイドチャネル情報を計算する選択関数に必要な部分鍵を、前記真の暗号鍵から計算する部分鍵計算ステップと、複数の前記選択関数が登録された選択関数データベースを参照することにより、前記評価に必要な選択関数を選択し、当該選択関数により計算上のサイドチャネル情報を求める選択関数制御ステップと、前記サイドチャネル情報入力部で入力した前記サイドチャネル情報と、前記選択関数により求めた選択関数出力との相関を計算する相関計算ステップと、前記相関計算部が求めた相関係数と閾値とを比較し、その比較結果を出力する比較出力ステップとをコンピュータに実行させることを特徴とするサイドチャネル評価プログラム。
1…サイドチャネル評価装置、2…暗号装置、4…サイドチャネル情報入力部、5…暗号データ入力部、6…暗号鍵入力部、7…選択関数制御部、8…部分鍵計算部、9…選択関数データベース、10…相関計算部、11…比較出力部を構成する比較部、12…比較出力部を構成する出力部、13…評価レベル設定部、Dsc…サイドチャネル情報、Den…暗号データ、k…部分鍵、Ktr…真の暗号鍵、H…選択関数出力、ρ…ピアソン相関係数、ρk…閾値。

Claims (5)

  1. 暗号装置の不正解読に対する耐性を評価するサイドチャネル評価装置において、
    前記暗号装置から漏洩するサイドチャネル情報を入力するサイドチャネル情報入力部と、
    前記暗号装置で取り扱う暗号データを入力する暗号データ入力部と、
    前記暗号装置に書き込まれた真の暗号鍵を入力する暗号鍵入力部と、
    前記サイドチャネル情報の計算に用いる選択関数に必要な部分鍵を、前記真の暗号鍵から計算する部分鍵計算部と、
    複数の前記選択関数が登録された選択関数データベースを参照することにより、前記評価に必要な選択関数を選択し、当該選択関数により計算上のサイドチャネル情報を求める選択関数制御部と、
    前記サイドチャネル情報入力部で入力した前記サイドチャネル情報と、前記選択関数により求めた選択関数出力との相関を計算する相関計算部と、
    前記相関計算部が求めた相関係数と閾値とを比較し、その比較結果を出力する比較出力部と
    を備えたことを特徴とするサイドチャネル評価装置。
  2. 評価を行う前記選択関数を選択可能とすることにより、前記評価のレベルを設定変更することが可能な評価レベル設定部を備え、
    前記選択関数制御部は、前記データベースから前記評価のレベルに応じた特定の選択関数のみを選択する
    ことを特徴とする請求項1に記載のサイドチャネル評価装置。
  3. 前記評価のレベルは、前記選択関数に入力する部分鍵サイズである
    ことを特徴とする請求項2に記載のサイドチャネル評価装置。
  4. 前記評価のレベルは、前記選択関数の種類である
    ことを特徴とする請求項2に記載のサイドチャネル評価装置。
  5. 暗号装置の不正解読に対する耐性を評価するサイドチャネル評価方法において、
    前記暗号装置から漏洩するサイドチャネル情報を入力するサイドチャネル情報入力ステップと、
    前記暗号装置で取り扱う暗号データを入力する暗号データ入力ステップと、
    前記暗号装置に書き込まれた真の暗号鍵を入力する暗号鍵入力ステップと、
    前記サイドチャネル情報を計算する選択関数に必要な部分鍵を、前記真の暗号鍵から計算する部分鍵計算ステップと、
    複数の前記選択関数が登録された選択関数データベースを参照することにより、前記評価に必要な選択関数を選択し、当該選択関数により計算上のサイドチャネル情報を求める選択関数制御ステップと、
    前記サイドチャネル情報入力ステップで入力した前記サイドチャネル情報と、前記選択関数により求めた選択関数出力との相関を計算する相関計算ステップと、
    前記相関計算ステップで求めた相関係数と閾値とを比較し、その比較結果を出力する比較出力ステップと
    を備えたことを特徴とするサイドチャネル評価方法。
JP2012144040A 2012-06-27 2012-06-27 サイドチャネル評価装置及びサイドチャネル評価方法 Active JP5794638B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012144040A JP5794638B2 (ja) 2012-06-27 2012-06-27 サイドチャネル評価装置及びサイドチャネル評価方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012144040A JP5794638B2 (ja) 2012-06-27 2012-06-27 サイドチャネル評価装置及びサイドチャネル評価方法

Publications (2)

Publication Number Publication Date
JP2014006484A JP2014006484A (ja) 2014-01-16
JP5794638B2 true JP5794638B2 (ja) 2015-10-14

Family

ID=50104226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012144040A Active JP5794638B2 (ja) 2012-06-27 2012-06-27 サイドチャネル評価装置及びサイドチャネル評価方法

Country Status (1)

Country Link
JP (1) JP5794638B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110460425B (zh) * 2019-09-24 2023-05-09 北京银联金卡科技有限公司 一种面向侧信道密码能量泄漏信号的攻击方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246808A1 (en) * 2007-12-05 2010-09-30 Nec Corporation Side channel attack tolerance evaluation apparatus, method and program
JP5397625B2 (ja) * 2007-12-11 2014-01-22 日本電気株式会社 サイドチャネル攻撃耐性評価装置、その方法及びそのプログラム
JP2010135881A (ja) * 2008-12-02 2010-06-17 Nec Corp サイドチャネル攻撃耐性評価装置、サイドチャネル攻撃耐性評価方法、サイドチャネル攻撃耐性評価プログラム
JP5733215B2 (ja) * 2009-12-10 2015-06-10 日本電気株式会社 サイドチャネル攻撃耐性評価装置、サイドチャネル攻撃耐性評価方法及びそのプログラム
JP2012080344A (ja) * 2010-10-01 2012-04-19 Nec Corp サイドチャネル攻撃耐性評価装置、サイドチャネル攻撃耐性評価方法およびプログラム

Also Published As

Publication number Publication date
JP2014006484A (ja) 2014-01-16

Similar Documents

Publication Publication Date Title
Standaert Introduction to side-channel attacks
US9497021B2 (en) Device for generating a message authentication code for authenticating a message
JP5711681B2 (ja) 暗号処理装置
CN106664204B (zh) 差分功率分析对策
Ayoup et al. Efficient selective image encryption
JP5268609B2 (ja) 暗号処理装置及び演算方法
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
JP2008131108A (ja) 共通鍵暗号のための暗号化装置
JP2008295108A (ja) 安全化暗号化方法及び装置
CN109417466A (zh) 机密密钥估算方法与装置
WO2016083864A1 (en) Methods for recovering secret data of a cryptographic device and for evaluating the security of such a device
KR20180110550A (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
Roy et al. From theory to practice of private circuit: A cautionary note
US11269993B2 (en) Encryption device, encryption method, decryption device, and decryption method
JP5979750B2 (ja) サイドチャネル評価装置及びサイドチャネル評価方法
Zhao et al. Efficient Hamming weight-based side-channel cube attacks on PRESENT
WO2016063512A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体
Rajput et al. A novel image encryption and authentication scheme using chaotic maps
JP5794638B2 (ja) サイドチャネル評価装置及びサイドチャネル評価方法
CN111602367B (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法
JP2006054568A (ja) 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム
Kim et al. New Type of Collision Attack on First‐Order Masked AESs
Alioto et al. A general model of DPA attacks to precharged busses in symmetric-key cryptographic algorithms
Diehl et al. Fixing the CLOC with Fine-grain Leakage Analysis
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150806

R150 Certificate of patent or registration of utility model

Ref document number: 5794638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250