JP2007251390A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2007251390A
JP2007251390A JP2006069536A JP2006069536A JP2007251390A JP 2007251390 A JP2007251390 A JP 2007251390A JP 2006069536 A JP2006069536 A JP 2006069536A JP 2006069536 A JP2006069536 A JP 2006069536A JP 2007251390 A JP2007251390 A JP 2007251390A
Authority
JP
Japan
Prior art keywords
encryption
random number
circuit
data
cryptographic
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.)
Pending
Application number
JP2006069536A
Other languages
English (en)
Inventor
Hiromi Nobukata
浩美 信方
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006069536A priority Critical patent/JP2007251390A/ja
Publication of JP2007251390A publication Critical patent/JP2007251390A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

【課題】電源に関わる測定結果を利用した暗号鍵の解析行為に対してより高い安全性を有する半導体集積回路を提供する。
【解決手段】共通の電源ラインを通じて電源が供給される2つの暗号処理回路(1、2)が共通の半導体基板上に形成される。この2つの暗号処理回路(1、2)では、半導体基板の外部から入力されるデータに対して、互いに異なる暗号鍵を用いて並行に暗号化処理が実行される。そして、暗号処理回路1の処理結果のみが、入力データに対応する暗号化データとして半導体基板の外部に出力される。これにより、電源ラインを通じて半導体集積回路に供給される電流や電圧、電力の測定結果から内部の暗号処理を解析しようとしても、この測定結果には2つの暗号処理回路(1、2)の処理に関わる情報が混ざり合っており、両者の暗号処理を判別することが非常に困難になる。
【選択図】図1

Description

本発明は、暗号処理回路を有する半導体集積回路に係り、特に、電源電流等の測定結果に基づいて暗号鍵を解析する攻撃に対しての安全性を高めた半導体集積回路に関するものである。
例えばICカードでは、ホストコンピュータとデータのやり取りを行なう場合、その過程でICカードに格納されている秘密情報が漏洩することを防止するため、やり取りするデータには暗号化されたデータが用いられる。この暗号化の方法として、現在最も多く用いられているのはDES(Data Encryption Standard)である。DESを用いる場合、ICカードの所有者とホストコンピュータは共通の鍵を所有し、この鍵によって伝送データの暗号化若しくは復号化を行う。すなわち、データの送信側はデータをその鍵で暗号化して送信し、データの受信側は同じ鍵を用いて受信したデータを復号化し、送信側からのメッセージを取り出す。通信の過程で悪意の第三者が盗聴しても、鍵を有していない限りは復号化してメッセージを取り出すことが困難である。
暗号化や復号化に使う鍵は、通常、ICカード内のEEPROM等の不揮発性メモリに格納される。暗号化や復号化を行うときにはCPUを介さないで直接ICカード内の暗号エンジンに転送される様な制御により、ICカードの所有者やICカードの開発エンジニアすら鍵データを取り出すことが不可能な構成を採ってセキュリティを保持している。
ところが近年、ICカードの消費電流を測定し、それに統計処理を施して鍵を取り出すDPA(differential power analysis)と称される攻撃方法がP.Kocherらにより報告された。DPAでは、異なる1000個程度の平文を用いて攻撃対象のICに暗号化演算を行わせて、その時ICに流れる消費電流の波形を測定して統計処理することにより、IC内部の鍵を取り出す。すなわち、IC内で暗号処理に用いられている中間データのあるビットに着目し、予想した鍵に対して複数種類の平文(若しくは暗号文)を入力したとき、その注目したビットの予測値が「1」になる場合と「0」になる場合とで、消費電力の測定結果をグループ分けする。各グループの測定結果の平均値を求めて両者の差をとると、予想した鍵が正しい場合、この差分値が大きくなる。
このような攻撃手法に対抗するためには、通常と異なるDESの演算フローを実行する回路をIC内に搭載する手法が有効である。DPA攻撃は、DESのシミュレータと実際のICが同じ演算フローで動作することを前提にしているため、ICを異なる演算フローで設計すれば、仮にシミュレータが正しい鍵でDES演算を行い、着目するビットの値に基づいて測定結果をグループ分けしても、シミュレータの演算フローが実際とは異なるため、着目するビットの値は同一グループ内で同じ値とはならず、グループ間の平均電流の差分値を計算してもピークが現われない。
この構成の例として、例えば特許文献1がある。この特許では、F関数の入力部で、そのままの値(ポジ)と反転値(ネガ)を生成し、拡張関数に入力する値をどちらにするかを乱数で選択する。この構成では、Sボックスも通常のもの(ポジ)と反転データに対応したもの(ネガ)の2種類を準備し、同じ乱数値とF関数の入力の極性との排他的論理和演算によってSボックスを選択する。この特許の方式の場合、2次のDPA攻撃によって鍵の取出しは可能である。
他方、特許文献2では、初期置換(IP)されたデータと、乱数によって選択された固定値とを排他的論理和演算し、その演算結果をLレジスタとRレジスタに分ける。F関数内では、セッション鍵の他に別の乱数で選択された固定値と入力データとを排他的論理和演算した結果がSボックスに入力される。なおSボックスは、乱数により選択される固定値の個数に対応したセット数だけF関数内に準備されており、乱数によってある固定値が選択されると、これに対応するSボックスが選択される。この構成を採ると、DPAに対する耐性は格段に向上するが、高次のDPA攻撃によって鍵を取り出される可能性はある。
特開2002−311826号公報 特開2002−366029号公報
このように従来の手法では、通常の演算フローに変形を加えることでDPA攻撃に対する耐性を高めようとするものであるが、コンピュータの演算能力や測定精度の向上によっていずれはそのセキュリティを突破される可能性がある。したがって、上記のような現在のDPA対策の水準を利用して、より高いレベルのセキュリティを達成する手法が望まれる。
本発明はかかる事情に鑑みてなされたものであり、その目的は、電源に関わる測定結果を利用した暗号鍵の解析行為に対してより高い安全性を有する半導体集積回路を提供することにある。
本発明に係る半導体集積回路は、共通の半導体基板上に形成され、共通の電源ラインを通じて電源が供給され、かつ、前記半導体基板の外部から入力されるデータをそれぞれ異なる暗号鍵を用いて並行に暗号化又は復号化する複数の暗号処理回路を有しており、前記複数の暗号処理回路の何れか1つが、前記入力データの処理結果を前記半導体基板の外部に出力する。
本発明によれば、複数の暗号処理回路が共通の半導体基板上に形成されており、この複数の暗号処理回路に対して共通の電源ラインを通じて電源が供給される。前記複数の暗号処理回路では、前記半導体基板の外部から入力されるデータに対して、それぞれ異なる暗号鍵を用いて並行に暗号化処理又は復号化処理が実行される。そして、前記複数の暗号処理回路の何れか1つにおいて前記入力データの処理した結果が、前記半導体基板の外部に出力される。
そのため、前記電源ラインに供給される電流や、電力、電圧などの測定により得られる情報から、前記複数の暗号処理回路で行われる暗号処理を判別することが困難になる。
好適には、前記複数の暗号処理回路は、前記共通の電源ラインに供給される電流、電力及び電圧の少なくとも1つの測定結果に基づく暗号鍵の解析行為に対して、それぞれ異なる暗号強度を有する。
また、好適には、前記半導体基板の外部に処理結果を出力する暗号処理回路は、前記解析行為に対して、他の暗号処理回路より高い暗号強度を有する。
また、本発明に係る半導体集積回路は、第1の乱数発生回路を有しても良い。この場合、前記半導体基板の外部に処理結果を出力しない暗号処理回路は、前記第1の乱数発生回路が発生する乱数に応じた暗号鍵を用いて暗号化処理又は復号化処理を行っても良い。
本発明によれば、電源に関する測定により得られる情報ではそれらの処理を判別することができない複数の暗号処理回路においてそれぞれ異なる暗号鍵を用いて暗号化処理や復号化処理を行うことにより、攻撃者が誤った暗号鍵を取り出すように誘導して、正しい鍵を取り出すまでの労力を大幅に増大させることが可能であり、安全性を高めることができる。
図1は、本発明の実施形態に係る半導体集積回路の構成の一例を示す図である。
本実施形態に係る半導体集積回路は、例えば図1に示すように、暗号処理回路1,2と、メモリ3と、システムコントローラ4と、排他的論理和回路5,6と、乱数発生回路7と、レジスタ9〜13とを有する。
図1に示す半導体集積回路の構成要素と本発明の構成要素は次に述べる対応関係を有する。
暗号処理回路1,2は、それぞれ本発明の暗号処理回路に対応する。
乱数発生回路7は、本発明の第1の乱数発生回路に対応する。
排他的論理和回路6は、本発明の論理回路に対応する。
暗号処理回路1は、排他的論理和回路5から供給されるデータ(平文)をレジスタ12に保持される暗号鍵に基づいて暗号化し、その暗号化結果(暗号文)をレジスタ9に出力する。
暗号処理回路2は、排他的論理和回路5から供給されるデータをレジスタ13に保持される暗号鍵に基づいて暗号化する。暗号処理回路2の暗号化結果は、データバスに出力されることなく破棄される。
暗号処理回路1及び2は、共通の半導体基板上に形成されており、また半導体基板上の共通の電源ラインを通じて電源電圧VDDを供給される。
また、暗号処理回路1及び2は、システムコントローラ4の命令に従って並行に暗号処理を実行する。つまり、暗号処理回路1において暗号化処理が開始されると、暗号処理回路2においても暗号化処理が同様なタイミングで開始される。
そのため、半導体基板の外部から電源ラインに供給される電流や電圧、電力を測定しても、その測定により得られた波形が暗号処理回路1及び2のどちらに起因して生じるものかを容易に判別することができない。
このように、暗号処理回路1及び2は、電源ラインに供給される電流や電圧、電力を測定することによって半導体基板の外部から両者の挙動を判別することが困難になるように構成されている。
更に、暗号処理回路1,2は、共通の電源ラインに供給される電流や、電力、電圧の測定結果に基づく暗号鍵の解析行為に対して、それぞれ異なる暗号強度を有しており、その暗号強度は暗号処理回路1の方が暗号処理回路2に比べて高くなるように設定されている。
例えばDPA攻撃に対して、暗号処理回路1には「対策A」、暗号処理回路2には「対策B」が施されており、「対策A]の方が「対策B」に比べてより強固な耐性を有している。
メモリ3は、暗号処理回路1において用いられる暗号鍵を格納する回路であり、例えばEEPROM等の不揮発性メモリによって構成される。
レジスタ9は、暗号処理回路1から出力される暗号化処理後のデータ(暗号文)を保持し、データバスに出力する。
レジスタ10は、暗号処理回路1,2において暗号化される所定ビット長のデータ(平文を)をデータバスから取得して保持する。
レジスタ11は、暗号処理回路1,2において暗号化を開始する際に用いられる初期ベクトル(initial vector)をデータバスから取得して保持する。
レジスタ12は、暗号処理回路1において暗号化処理に用いられる暗号鍵をデータバスから取得して保持する。
レジスタ13は、排他的論理和回路6から出力されるデータを暗号処理回路2の暗号鍵として保持する。
排他的論理和回路5は、レジスタ10に保持される平文とレジスタ11に保持される初期ベクトルとの排他的論理和を演算し、その演算結果を暗号処理回路1,2に出力する。
排他的論理和回路6は、暗号処理回路1に入力される暗号鍵と乱数発生回路7において発生する乱数との排他的論理和を演算し、その演算結果をレジスタ13に出力する。
乱数発生回路7は、排他的論理和回路6に入力する乱数を発生する。
暗号処理回路2には、暗号処理回路1に入力される暗号鍵とこの乱数とを排他的論理和演算した結果が暗号鍵として入力されるため、暗号処理回路1及び2では互いに異なる暗号鍵により同一の平文(レジスタ10のデータ)に対する暗号化処理が実行される。
乱数発生回路7は、新たな乱数を任意のタイミングで発生してもよいし、あるいは、暗号処理回路1及び2が所定数の入力データの暗号化処理を実行する度に新たな乱数を発生してもよい。
システムコントローラ4は、半導体集積回路の全体的な動作を制御するための回路であり、例えばコンピュータとそのプログラム格納用のメモリを備えている。
例えば暗号化処理を実行する場合、システムコントローラ4は、データバスを介してレジスタ10に所定ビット長の平文をセットし、レジスタ11に初期ベクトルをセットするとともに、メモリ3からレジスタ12へ暗号鍵を転送する。そして、暗号処理回路1及び2に対し暗号化処理の実行を命令し、両者に並行に暗号化処理を実行させる。また、暗号処理回路1から出力される処理結果の暗号文をレジスタ9から順次に読み出し、これを例えば不図示の記憶装置に格納する。
次に、暗号処理回路1及び2に適用される暗号化方式の一例として、DES方式の暗号演算を説明する。
図2は、DES方式の64ビットの暗号演算の一例を示す図である。
まず、システムコントローラ4は、暗号化するデータを64ビットのブロックに区分し、各ブロックのデータをレジスタ10へ順次にセットする。
暗号処理回路は、レジスタ10にセットされたデータを取得し、それらに所定の置換処理(初期転置)を施す。この置換処理によってビットの入れ替えを行ったあと、64ビットのデータを32ビットづつの2つのデータL0,R0に区分する。
次に暗号処理回路は、データR0を「F関数」と称される非線形の関数によって処理し、32ビットのデータに変換する。F関数の処理には、暗号鍵に基づいて生成される48ビットの鍵データを用いる(図3)。F関数によりデータR0を処理すると、暗号処理回路は処理結果の32ビットのデータとデータL0との排他的論理和演算を行い、その演算結果をデータR1として保持する。また、データR0をそのままデータL1として保持する。
次に暗号処理回路は、上述と同様にデータR1をF関数によって処理し、その処理結果とデータL1との排他的論理和演算を行い、これをデータR2として保持する。また、データR1をそのままデータL2として保持する。
暗号処理回路は、上記のような同一構造の変換処理(ラウンド処理)を16回繰り返して、最終的にデータR16及びL16を取得する。そして、この2つのデータR16,L16を結合して得られる64ビットのデータに対して、初めに行った置換処理とは逆の置換処理(最終転置)を施し、その結果を64ビットの暗号文として出力する。
図3は、各ラウンド処理においてF関数の処理に用いられる鍵データK1〜K16の生成方法を示す図である。
暗号処理回路は、レジスタを介して取得した64ビットの暗号鍵に縮約型の転置処理を施して、56ビットのデータを抽出する。
暗号処理回路は、抽出した56ビットのデータを28ビットずつの2つのデータに分割し、その各々に所定ビット数の左巡回シフトを施して再び結合する。そして、結合した56ビットのデータに対して更に縮約型の転置処理を施して48ビットのデータを抽出し、これを先ほど説明した第1段目のラウンド処理におけるF関数用の鍵データK1とする。
次に暗号処理回路は、上記左巡回処理後の2つのデータ(各28ビット)に対してさらに所定ビット数の左巡回処理をそれぞれ行い、これらを結合して縮約型の転置処理を施し、48ビットのデータを抽出する。このデータは、第2段目のラウンド処理におけるF関数用の鍵データK2とする。
暗号処理回路は、このような左巡回処理と転置処理を繰り返すことによって、各ラウンド処理におけるF関数用の鍵データK1〜K16を生成する。
図4は、上述したDES方式の暗号化処理を行う暗号処理回路の構成の一例を示す図である。
図4に示す暗号処理回路は、置換部101と、レジスタ102と、レジスタ103と、F関数部104と、排他的論理和回路105と、逆置換部106と、スイッチSW1及びSW2とを有する。
置換部101は、暗号化処理の初めの置換処理(初期転置)を実行する。
レジスタ102は、スイッチSW1を介して入力されるデータL0,L1,…,L15を保持する。
レジスタ103は、スイッチSW2を介して入力されるデータR0,R1,…,R15を保持する。
F関数部104は、レジスタ103に保持されるデータR0,R1,…,R15に対して鍵データK1,K2,…,K16に応じたF関数処理を行う。
排他的論理和回路105は、レジスタ102に保持されるデータL0,L1,…,L15とF関数部104で処理されたデータとの排他的論理和を演算する。
逆置換部106は、暗号化処理の最後の置換処理(最終転置)を実行する。
スイッチSW1,SW2は、暗号化処理の開始時に置換部101から出力される初期転置後の64ビットから、32ビットずつのデータL0,R0をそれぞれ入力し、これをレジスタ102及び103にそれぞれ保持させる。また、16回のラウンド処理を繰り返すときには、レジスタ103に保持されるデータR0,R1,…,R14をデータL1,L2,…,L15としてレジスタ102に保持させるとともに、排他的論理和回路105から出力されるデータをデータR1,R2,…,R15としてレジスタ103に保持させる。
図5は、F関数部104の構成の一例を示す図である。
図5に示すF関数部104は、拡張部201と、排他的論理和回路202と、Sボックス回路S1〜S8と、置換部203とを有する。
拡張部201は、入力される32ビットのデータR0,R1,…,R15に対して拡大転置処理を行い、そのビット長を48ビットに拡張する。
排他的論理和回路202は、拡張部201において48ビットに拡張されたデータと、入力される鍵データK1,K2,…,K16との排他的論理和を演算する。
排他的論理和回路202から出力される48ビットのデータは6ビットずつの8つのブロックに区分される。Sボックス回路S1〜S8は、それぞれ1ブロック(6ビット)のデータを入力し、これを4ビットのデータに変換する。
Sボックス回路S1〜S8から出力される各4ビットのデータは、互いに結合されて32ビットのデータとなり、置換部203に入力される。置換部203は、入力した32ビットのデータに転置処理を施して32ビットのデータを生成し、これをF関数の処理結果として出力する。
なお、以上はDES方式の暗号演算を実行するための基本構成であり、本実施形態に係る暗号処理回路1,2においては、この基本構成に対して先に説明した「対策A」,「対策B」に対応する変更や追加が施されている。
ここで、上述したDES方式の暗号処理回路に対するDPA攻撃の方法について説明する。
第1段目のラウンド処理が実行されると、レジスタ103に格納されるデータは「R0」から「R1」へ変化する。このときレジスタ103の各ビットの変化は、図6(A)に示すように次の論理式で表すことができる。
[数1]
R1^R0=F(R0、K1)^L0^R0 … (1)
ただし、「^」は排他的論理和の演算子を示し、「F(R0、K1)」はF関数を示す。
式(1)の演算結果において、変化を生じたビットは「1」となり、変化を生じていないビットは「0」になる。
他方、図5に示すように、8つのSボックス回路S1〜S8は独立に動作する。例えばSボックス回路S1には、拡張部201から出力される48ビットのデータ(D1〜D48)のうちの6ビット(D1〜D6)と、48ビットの鍵データ(K1〜K48)のうちの6ビット(K1〜K6)との排他的論理和が入力される。そのため、6ビットの鍵データ(K1〜K6)を推定することにより、Sボックス回路S1から出力される4ビットのデータを推定することができる。
DES方式の仕様は公開されており、入力する平文に対してデータL0,R0がどのような値になるかは既知である。また、既知のデータR0に対してF関数部104の拡張部201の出力(48ビット:D1〜D48)がどのような値になるかも既知である。
したがって、例えば6ビットの鍵データ(K1〜K6)を推定すると、拡張部201の出力の6ビット(D1〜D6)が既知であるため、ボックス回路S1から出力される特定の4ビットの値が定まり、これに応じてF関数から出力される特定の4ビットの値が定まる。更に、データL0が既知であるため、データR1の特定の4ビットの値が定まる。つまり、式(1)が表すビット値の変化(R0^R1)を、特定の4ビットについて推定することが可能となる。
多数のランダムな平文について暗号化を行った場合、レジスタ103の特定ビットが変化する確率は約50%になる。
ところが、上記のように6ビットの鍵データを推定し、この推定した鍵データに対してレジスタ103の特定ビットが変化する平文をグループ「G1」、この特定ビットが変化しない平文をグループ「G2」としてグループ分けした場合、もし鍵データの推定が正しければ、グループG1とグループG2においてレジスタ103の特定ビットが変化する確率が異なったものになる。
鍵データの推定が正しい場合、グループG1では全ての平文について特定ビットの変化が発生し(確率100%)、グループG2では全ての平文について特定ビットの変化が発生しない(確率0%)。この場合、グループG1とG2の確率差は最大となる。
一方、鍵データの推定が間違っている場合は、グループG1及びG2の何れも、特定ビットの変化が約50%の確率で発生する。この場合、グループG1とG2の確率差はほぼゼロになる。
図6(B)に示すように、レジスタ103の特定ビットが変化すると、電源ラインには微小な消費電流が流れる。したがって、レジスタ103の特定ビットの変化は、電源ラインに流れる消費電流の変化として検出することが可能である。
例えば、多数の平文(例えば数千個)について暗号化を行いながら消費電流の波形を測定し、その測定結果を上述の「G1」と「G2」にグループ分けする。そして、各グループの測定結果を平均化して両者の差分を計算すると、もし6ビットの鍵データの推定が正しければ、この計算により得られる差分の波形に、上述の確率差に応じた大きなピークが発生する。推定が間違っていれば、差分波形にピークは観察されない。このようにして、鍵データの推定が正しいか否かを6ビットずつ検証することができるため、少ない試行回数で48ビットの鍵データK1の全ビットを求めることができる。
図3に示すように、F関数部104に供給される鍵データK1には、64ビットの暗号鍵から抽出した56ビットのデータのうち48ビット分のデータが含まれている。上記の方法でこの48ビット分のデータを知ることができれば、残りの8ビットのデータを総当り(256回)の試行によって容易に求めることができる。
以上が、DPA攻撃の説明である。
攻撃者は、例えば次のような手順でDPA攻撃を実行する。
1.複数の異なる平文で暗号化演算を実行し、各平文を演算した場合の消費電流の測定波形を格納しておく。
2.1次のDPA攻撃を実行し、鍵の取出しを試みる。この攻撃で鍵の取り出しに成功した場合、攻撃を終了する。
3.1次のDPA攻撃で鍵の取出しに失敗した場合、DPA対策の方式を予想し、それに基づいて2次のDPA攻撃を行なって鍵の取出しを試みる。この攻撃で鍵の取り出しに成功した場合、攻撃を終了する。
4.鍵の取り出しに失敗した場合、別のDPA対策の方式を想定し、それに基づいて2次のDPA攻撃を行なって鍵の取出しを試みる。鍵の取り出しに失敗した場合、更に別のDPA対策の方式を想定して、それに基づいて2次のDPA攻撃を行なって鍵の取出しを試みる。
5.2次のDPA攻撃で鍵が取出せないと判断した場合、3次、4次と高次のDPA攻撃を実施し、鍵の取出しを試みる。
一般に攻撃者は、上記の様な段階を踏んで鍵の取出しを試み、鍵の取出しに成功した段階で攻撃を終了する。高次のDPA攻撃になるほど解析に要する時間が長くなり、統計処理に用いる消費電流波形の数とデータ量が増大するため、通常は初めに簡単な1次のDPA攻撃によって鍵の取り出しを試みる。そして、それが不可能であると判断すると、考え得るあらゆるDPA対策を想定して2次のDPA攻撃を試み、それでもだめな場合は3次以降の高次のDPA攻撃に移行する。ある程度の段階まで試しても鍵の取り出しに成功しないときは、攻撃不可能と判断して鍵の取り出しを諦める。
一方、システムの開発者は、上記のようなDPA攻撃を想定してその対抗策をLSIやシステムへ盛り込むが、その際、特に安全性が必要な場合は、対策内容が攻撃者に知られたとしてもそれを突破することが現実的に不可能な高レベルの対策を施すことが多い。ところが、コンピュータの計算能力や測定装置の精度が年々向上するにつれて、当初不可能と思われていた解析手法が比較的短期間で現実的なレベルに移行することもあり、1つの対策だけに絞ることにはリスクが伴う。また、複数の対策を多重に施しても、それらの対策内容が攻撃者に知られてしまえば、1つずつ突破される可能性がある。
そこで図1に示す半導体集積回路では、どのようなDPA対策が施されているのかを攻撃者が容易に把握できないようにすることで、安全性の向上を図る。すなわち、実施されているDPA対策を攻撃者が見出すまでに多大な労力と時間を費やすように仕向けることで、DPA攻撃に対する実質的な耐性を高める。
図1に示す半導体集積回路の動作を説明する。
暗号化処理を開始する場合、システムコントローラ4は、データバスを介してレジスタ10に平文、レジスタ11に初期ベクトルをセットするとともに、メモリ3からレジスタ12へ暗号鍵を転送する。メモリ3から転送された暗号鍵は、乱数発生回路7の乱数と排他的論理和演算され、レジスタ13に格納される。次いでシステムコントローラ4は、暗号処理回路1及び2に暗号処理の実行を命令し、2つの回路において並行に暗号化処理が実行される。
暗号処理回路2において使用される暗号鍵は、暗号処理回路1において使用される暗号鍵と乱数発生回路7の乱数との排他的論理和であるため、乱数の値が全ビット「0」でない限り、両者の暗号鍵は異なる。図1に示す半導体集積回路では、例えば乱数発生回路7において全ビット「0」が乱数が発生することを禁止することにより、暗号処理回路1及び2の暗号鍵が必ず異なるようにしている。
また、暗号処理回路1及び2が共通の電源ラインに接続され、かつ、両者が並行に暗号化処理を実行するため、電源系の測定を通じて得られる情報(電流、電圧、電力)には、2つの暗号処理回路の情報が常に混ざり合っており、両者を判別することが困難な状態となっている。
このような図1に示す半導体集積回路に対してDPA攻撃を仕掛ける場合、どのようなDPA対策が講じられているか不明であるため、まず攻撃者は1次のDPA攻撃を仕掛ける。しかし、暗号処理回路1には「対策A」、暗号処理回路2には「対策B」が施されているため、1次のDPA攻撃では鍵の取り出しに失敗する。そのため、攻撃者は何らかのDPA対策が施されているものと認識して、更に数千個〜数万個の平文を用いて暗号演算を行ない、その時の消費電流波形を取得し、推定した2次以上のDPA攻撃を仕掛ける。
例えば2次のDPA攻撃を仕掛ける場合、想定している対策と実際に施されている対策が一致していなければ、DPA攻撃によって上述した差分波形にピークが発生せず、鍵の取り出しに失敗する。そこで攻撃者は、更に別の対策が施されていると推定し、これに対する2次のDPA攻撃を行う。
このような攻撃を繰り返していく過程で、暗号処理回路2の「対策B]に対応する攻撃が見出されると、正しい6ビットの鍵データが推定された際に差分波形にピークが発生する。攻撃者は、差分波形にピークが発生したことにより、現在正しい攻撃方法を選択していると勘違いして、同じ攻撃方法によって残りの鍵データを取り出す工程に進む。そして、全てのSボックスに対応する鍵データを取り出し、48ビットの鍵データK1の解析に成功すると、次に攻撃者は、残りの8ビットの鍵データを取り出すために総当りの試行(256回)を行う。ところが、この鍵データは暗号処理回路1で使用する暗号鍵と乱数との排他的論理和によって生成されたものであり、攻撃者が取り出そうとしている正しい暗号鍵とは異なっている。そのため、攻撃者は暗号鍵の取り出しに失敗する。
この後、攻撃者の行動として、次の4通りのパターンが予想される。
1.DPA攻撃の設定を再度チェックして、再び2次のDPA攻撃を行なう。
2.別のDPA対策を想定して攻撃の環境を構築し、2次のDPA攻撃を行なう。
3.2次より更に高次のDPA対策が施されていると想定して、高次の攻撃の環境を構築し、攻撃を行なう。
4.攻撃をあきらめる。
上記の行動パターンにおいて、もし攻撃者が「4.」を選べば、DPA対策として成功したことになる。また、暗号処理回路1の「対策A]が2次のDPA攻撃によって突破できないより高度なDPA耐性を有しているものとすると、「1.」及び「2.」を選択した場合、攻撃者は暗号処理回路2に対する2次のDPA攻撃を続行することになるため、無駄な時間を費やすだけで正しい暗号鍵に辿りつくことができない。
「3.」のみが正しい鍵で動作する暗号処理回路1への攻撃であり、ここからが本来のDPA攻撃となるが、攻撃の対象となる回路のDPA対策が高次であるほど、DPA攻撃の環境の構築と実際の攻撃に要する時間が膨大になる。ここに至るまでに経過している時間が長ければ長いほど、「3.」を試みる可能性は低くなり、DPA攻撃によって正しい暗号鍵を取り出される確率が低くなる。
以上説明したように、図1に示す半導体集積回路によれば、共通の電源ラインを通じて電源が供給される2つの暗号処理回路(1、2)が共通の半導体基板上に形成される。この2つの暗号処理回路(1、2)では、半導体基板の外部から入力されるデータに対して、互いに異なる暗号鍵を用いて並行に暗号化処理が実行される。そして、暗号処理回路1の処理結果のみが、入力データに対応する暗号化データとして半導体基板の外部に出力される。
したがって、電源ラインを通じて半導体集積回路に供給される電流や電圧、電力の測定結果から内部の暗号処理を解析しようとしても、この測定結果には2つの暗号処理回路(1、2)の処理に関わる情報が混ざり合っており、両者の暗号処理を判別することが非常に困難である。これにより、攻撃者が偽りの攻撃対象(暗号処理回路2)を選択し、正しい攻撃対象(暗号処理回路1)を見出すまでの時間を長引かせることができるため、電源に関する測定結果を利用したDPAなどの攻撃に対して安全性を向上することができる。
また、攻撃者が正しい攻撃対象を見出さなくてはならないという困難性が加わるため、単独の暗号処理回路にのみ対策を施す従来の方式に比べて安全性を高めることができる。
更に、図1に示す半導体集積回路では、電源に関する測定結果を利用したDPAなどの攻撃に対して、2つの暗号処理回路(1、2)が互いに異なる暗号強度を有している。これにより、偽りの攻撃対象(暗号処理回路2)を選択した攻撃者は、攻撃手法を別のものに変更しなくてはならなくなり、正しい攻撃手法を見出すまでの時間を長引かせることができる。
しかも、半導体基板の外部の処理結果を出力する暗号処理回路1の方が、処理結果を外部に出力しない暗号処理回路2に比べて高い暗号強度を有しているため、簡易な攻撃から高度な攻撃へ段階的にレベルを高める一般的な攻撃手順が採用されている場合、攻撃者が正しい攻撃対象(暗号処理回路1)より前に偽りの攻撃対象(暗号処理回路2)を選択する確率を高めることができる。これにより、正しい攻撃対象(暗号処理回路1)に対する攻撃が開始されるまでの時間を長引かせることができるため、DPA等の攻撃に対する安全性をより一層向上できる。
なお、図1に示す半導体集積回路では、乱数発生回路7において乱数が更新された場合に暗号処理回路2の暗号鍵も更新されるが、この更新の頻度を適切に調節することによって、攻撃者が暗号処理回路2の解析に関わる時間を長引かせることが可能である。
すなわち乱数発生回路7は、暗号鍵を解析するために暗号処理回路2に入力される平均的なデータ数に対して例えば数分の1程度の数のデータを暗号処理回路2が処理する度に、新たな乱数を発生するようにしてもよい。これにより、暗号処理回路2からの暗号鍵の取り出しを途中まで成功させて、正しい攻撃を行っていると勘違いさせることができるため、攻撃者が暗号処理回路2への無駄な攻撃を続けるように誘導することができる。
またこの場合、乱数発生回路7の乱数の更新間隔をランダムに変更してもよい。
例えば、図7に示すように、乱数発生回路7が新しい乱数を発生する度に自らも新しい乱数を発生する乱数発生回路8を半導体集積回路内に設ける。乱数発生回路7は、乱数発生回路8が発生する乱数に応じて、次に乱数を発生するまでに暗号処理回路1,2が処理すべき入力データの数を決定する。これにより、乱数発生回路7における乱数の更新間隔がランダムに変化し、これに応じて暗号処理回路2の暗号鍵が変化するため、攻撃者を混乱させることができる。
以上、本発明の一実施形態について説明したが、本発明はこの例に限定されない。
例えば、上記の実施形態では暗号処理回路1,2において暗号化処理を行う場合を例として挙げているが、本発明はこれに限定されない。例えば、これらの暗号処理回路では、入力される暗号文を暗号鍵に基づいて復号化してもよい。
また暗号処理回路の数は2つでなくともよく、3つ以上であってもよい。
暗号処理回路における暗号方式はDESに限定されるものではなく、他の種々の暗号方式が適用されていてもよい。
本発明の実施形態に係る半導体集積回路の構成の一例を示す図である。 DES方式の暗号演算の一例を示す図である。 DES方式の各ラウンド処理においてF関数の処理に用いられる鍵データを生成する方法の一例を示す図である。 DES方式の暗号化処理を行う暗号処理回路の構成の一例を示す図である。 F関数部の構成の一例を示す図である。 暗号処理回路に内蔵されるレジスタの特定ビットの値が変化することにより消費電流の変化が生じることを説明するための図である。 本発明の実施形態に係る半導体集積回路の他の構成例を示す図である。
符号の説明
1,2…暗号処理回路、3…メモリ、4…システムコントローラ、5,6…排他的論理和回路、7,8…乱数発生回路、9〜13…レジスタ

Claims (7)

  1. 共通の半導体基板上に形成され、共通の電源ラインを通じて電源が供給され、かつ、前記半導体基板の外部から入力されるデータをそれぞれ異なる暗号鍵を用いて並行に暗号化又は復号化する複数の暗号処理回路を有し、
    前記複数の暗号処理回路の何れか1つが、前記入力データの処理結果を前記半導体基板の外部に出力する、
    半導体集積回路。
  2. 前記複数の暗号処理回路は、前記共通の電源ラインに供給される電流、電力及び電圧の少なくとも1つの測定結果に基づく暗号鍵の解析行為に対して、それぞれ異なる暗号強度を有する、
    請求項1に記載の半導体集積回路。
  3. 前記半導体基板の外部に処理結果を出力する暗号処理回路は、前記解析行為に対して、他の暗号処理回路より高い暗号強度を有する、
    請求項2に記載の半導体集積回路。
  4. 第1の乱数発生回路を有し、
    前記半導体基板の外部に処理結果を出力しない暗号処理回路は、前記第1の乱数発生回路が発生する乱数に応じた暗号鍵を用いて暗号化処理又は復号化処理を行う、
    請求項1に記載の半導体集積回路。
  5. 前記半導体基板の外部に処理結果を出力する暗号化回路の暗号鍵と前記第1の乱数発生回路が発生する乱数とに所定の論理演算を行う論理回路を有し、
    前記半導体基板の外部に処理結果を出力しない暗号化回路は、前記論理回路の論理演算結果を暗号鍵として用いる、
    請求項4に記載の半導体集積回路。
  6. 前記第1の乱数発生回路は、前記複数の暗号処理回路において所定数の入力データが処理される度に新しい乱数を発生する、
    請求項4に記載の半導体集積回路。
  7. 前記第1の乱数発生回路が新しい乱数を発生する度に新しい乱数を発生する第2の乱数発生回路を有し、
    前記第1の乱数発生回路は、前記第2の乱数発生回路が発生した乱数に応じて、次に新しい乱数を発生するまでに前記複数の暗号処理回路が処理すべき入力データの数を決定する、
    請求項6に記載の半導体集積回路。
JP2006069536A 2006-03-14 2006-03-14 半導体集積回路 Pending JP2007251390A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006069536A JP2007251390A (ja) 2006-03-14 2006-03-14 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006069536A JP2007251390A (ja) 2006-03-14 2006-03-14 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2007251390A true JP2007251390A (ja) 2007-09-27

Family

ID=38595252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006069536A Pending JP2007251390A (ja) 2006-03-14 2006-03-14 半導体集積回路

Country Status (1)

Country Link
JP (1) JP2007251390A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2190143A1 (en) 2008-11-20 2010-05-26 Sony Corporation Of America Cryptographic processing apparatus with improved resistance to power analysis
CN102970132A (zh) * 2011-08-31 2013-03-13 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN105809063A (zh) * 2014-12-29 2016-07-27 联想(北京)有限公司 一种数据处理方法及安全芯片装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2190143A1 (en) 2008-11-20 2010-05-26 Sony Corporation Of America Cryptographic processing apparatus with improved resistance to power analysis
CN101739889B (zh) * 2008-11-20 2012-04-25 索尼株式会社 密码处理装置
US8370642B2 (en) 2008-11-20 2013-02-05 Sony Corporation Cryptographic processing apparatus
CN102970132A (zh) * 2011-08-31 2013-03-13 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN102970132B (zh) * 2011-08-31 2015-02-18 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN105809063A (zh) * 2014-12-29 2016-07-27 联想(北京)有限公司 一种数据处理方法及安全芯片装置
CN105809063B (zh) * 2014-12-29 2019-01-15 联想(北京)有限公司 一种数据处理方法及安全芯片装置

Similar Documents

Publication Publication Date Title
KR102628466B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
US8515057B2 (en) Method and device for executing crytographic calculation
Yao et al. Fault-assisted side-channel analysis of masked implementations
JP2011103686A (ja) 暗号化されたアクセスを使う電子的エンティティのセキュリティ化方法
CN108055120B (zh) 一种检测aes-otr算法抵御差分故障攻击的方法
GB2345229A (en) Encryption system resists differential power analysis attacks
JPWO2008010441A1 (ja) 暗号装置及びプログラムと方法
JP2007195132A (ja) 暗号処理装置
CN109766729B (zh) 一种防御硬件木马的集成电路及其加密方法
Sadkhan et al. Proposed Enhancement of A5/1 stream cipher
JP3733027B2 (ja) 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
Huang et al. Trace buffer attack: Security versus observability study in post-silicon debug
US8958556B2 (en) Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component
JP2007251390A (ja) 半導体集積回路
JP2005134478A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
Olekšák et al. Correlation power analysis of SipHash
JP2007174024A (ja) 暗号処理装置
JP2006019872A (ja) 暗号処理装置
US20220407679A1 (en) Information security protection system and information security protection method
Martinasek et al. Crucial pitfall of DPA Contest V4. 2 implementation
JP4935229B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP4195199B2 (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Biryukov et al. Differential resynchronization attacks on reduced round SNOW 3G⊕
JP2005031471A (ja) 暗号処理装置、および暗号処理方法
JP2006054568A (ja) 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム