JP4687775B2 - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
JP4687775B2
JP4687775B2 JP2008296411A JP2008296411A JP4687775B2 JP 4687775 B2 JP4687775 B2 JP 4687775B2 JP 2008296411 A JP2008296411 A JP 2008296411A JP 2008296411 A JP2008296411 A JP 2008296411A JP 4687775 B2 JP4687775 B2 JP 4687775B2
Authority
JP
Japan
Prior art keywords
unit
data
register
decoded
output
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.)
Expired - Fee Related
Application number
JP2008296411A
Other languages
English (en)
Other versions
JP2010124276A (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.)
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 JP2008296411A priority Critical patent/JP4687775B2/ja
Priority to EP09252412A priority patent/EP2190143A1/en
Priority to US12/621,620 priority patent/US8370642B2/en
Priority to CN2009102228897A priority patent/CN101739889B/zh
Publication of JP2010124276A publication Critical patent/JP2010124276A/ja
Application granted granted Critical
Publication of JP4687775B2 publication Critical patent/JP4687775B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Description

本発明は、暗号処理装置に関し、さらに詳細には、暗号解析処理、攻撃処理として知られる電力解析に対する耐性を向上させた暗号処理装置に関するものである。
ICカードでは、ホストコンピュータとデータのやり取りを行う時、その過程でICカードに格納されている秘密情報が漏れても問題を発生させないために、やり取りするデータには暗号化したデータを用いる。
この暗号化の方法として、現在最も多く用いられているのはDES(Data Encryption Standard)である。
DESでは、データの暗号化にはICカードの所有者とホストコンピュータが同じ鍵を所有し、データの送信側はデータをその鍵で暗号化して送信し、データの受信者は同じ鍵で復号化してメッセージを取り出す。
通信の過程で悪意の第三者が盗聴しても、鍵を有していない限りは復号化してメッセージを取り出すことは困難である。
また、暗号化・復号化の時に使う鍵は、ICカード内のEEPROM等の不揮発性メモリに格納される。
そして、暗号化・復号化時にはCPUを介さないで直接ICカード内の暗号エンジンに転送されるような制御により、ICカードの所有者やICカードの開発エンジニアすら鍵データを取り出すことが不可能な構成を採ってセキュリティを保持している。
しかし、ICカードの消費電流を測定し、それに統計処理を施して鍵を取り出すという攻撃方法(DPA:Differential Power Analysis)が P.Kocher らにより報告された。
このDPA攻撃では、異なる1000個程度の平文を用いて暗号化演算を行ってその時の消費電流波形を測定し、その消費電流を統計処理することにより鍵を取り出すことが可能となる。
DPA攻撃に対抗する方法としては、たとえば特許文献1に開示された技術が知られている。
この技術では、1ビットのデータをハミング重み(Hamming Weight)の等しい2ビットの数値に展開する。演算によるデータの遷移は、エバリュエーション相(Evaluation Phase)とプリチャージ相(Pre Charge Phase)の2相を設けてある。
そして、一旦、“0”でも“1”でもない状態に遷移してから演算後のデータに遷移する制御を行うことによって、演算値の遷移に伴う変化電流を検出できないようにしている。
具体的には、たとえばデータ“0”を “01”、データ“1”を“10”として暗号演算を実行する。そして、ラウンド(Round)演算によってデータが変化する場合、たとえば一旦“00”に遷移してから演算後のデータに遷移する。
すなわち、遷移を以下のように表わせば、演算に基づく各ビットの遷移は演算結果によらず全ての遷移で1ビットのみ変化するため、変化電流からの鍵の取り出しは困難となる。
“0”→“0”の遷移:“01”→“00”→“01”
“0”→“1”の遷移:“01”→“00”→“10”
“1”→“0”の遷移:“10”→“00”→“01”
“1”→“1”の遷移:“10”→“00”→“10”
特開2004−347975号公報
しかし、この方法では、暗号演算を行う全ての回路で2ビット分の相補動作を行う構成を採る必要があり、回路規模は少なくとも2倍になり、拡張した2ビットのうちどちらかが必ず回路動作するため、消費電流も少なくとも2倍になる。
本発明は、暗号化演算回路の回路規模の増大および動作時のリーク電流の発生を抑止でき、電流解析を困難とすることが可能な暗号処理装置を提供することにある。
本発明の観点の暗号処理装置は、演算用データを格納する第1および第2のレジスタと、上記第2のレジスタに格納されるデータに応じた演算を行う第1演算部と、上記第1のレジスタの格納値と、上記第1演算部の演算結果との論理演算を行う第2演算部と、バイナリデータを所定ビットずつデコードして当該バイナリデータのビット数より多いビット数のデコードデータに変換するデコード部と、を有し、上記第2演算部の演算結果が上記第2のレジスタに格納され、上記デコード部は、少なくとも、上記第2のレジスタの出力部から第1演算部の入力への信号配線、上記第2のレジスタの出力部から第1のレジスタの入力部への信号配線、上記第1のレジスタの出力部から第2演算部の入力部への信号配線、および上記第1演算部の出力部から上記第2演算部の入力部への信号配線を伝搬するデータが、バイナリデータを所定ビットずつデコードして当該バイナリデータのビット数より多いビット数のデコードデータに変換された状態で供給されるように形成され、回路動作時に上記信号配線の変化が上記デコード部のデコード単位で同じ信号配線数であり、1ラウンドはプリチャージ相とエバリュエーション相により形成され、上記デコード部は、プリチャージ制御信号がアクティブのプリチャージ相においては、デコードデータを全て所定のレベルにプリチャージし、上記エバリュエーション相において上記デコード処理を行い、上記第1演算部および上記第2演算部のうち、少なくとも上記第2演算部は、上記論理演算において、出力信号の中間値への遷移を発生させない
本発明によれば、信号配線に伝搬させるデータにデコード値を用い、演算部においてデコード値で演算する構成を採る。
これにより、信号配線および演算部でのリーク電流は少なくなり、DPA耐性が向上する。
本発明によれば、暗号化演算回路の回路規模の増大および動作時のリーク電流の発生を抑止でき、電流解析を困難とすることができる。
以下、本発明の実施形態を図面に関連付けて詳細について説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態(DES演算回路の第1の構成例)
2.第2の実施形態(DES演算回路の第2の構成例)
3.第3の実施形態(AES演算回路の構成例)
4.第4の実施形態(DES演算回路の第3の構成例)
本実施形態の暗号処理装置においては、データを複数ビットでデコード(Decode)したデータを演算に用いる。
デコード値のハミング(Hamming)重みは一定である。
第1の観点として、第1から第3の実施形態の暗号処理装置においては、信号配線を伝搬するデータはデコードした値とし、レジスタおよび関数演算回路の入力端でエンコード(Encode)され、バイナリ(Binary)で演算後、出力端でデコードされる構成が採用される。また、Sboxの出力は、異なるサブSboxの出力ビットとデコードされる。
第2の観点として、第4の実施形態においては、入力データ(平文、暗号文)をデコードして、暗号演算は全てデコード値で行い、演算終了後にエンコードして出力データ(暗号文、平文)とする。
第1から第3の実施形態、並びに第4の実施形態とも、1ラウンド(Round)の演算サイクルはプリチャージ相(Pre-Charge Phase:休止相)とエバリュエーション相(Evaluation Phase:稼動相)により構成される。
<1.第1の実施形態>
図1は、本発明の第1の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。
本DES演算回路100は、初期置換部[IP(Initial Permutation)部]101、第1デコード部(Dec)102、スイッチ(SW)103L,103R、第1エンコード部(Enc)104、および第2エンコード部(Enc)105を有する。
DES演算回路100は、第1レジスタとしてLレジスタ(L Reg)106、第2レジスタとしてのRレジスタ(R Reg)107、第1デコードおよびプリチャージ制御部(Dec&PC)108、および第2デコードおよびプリチャージ制御部109を有する。
DES演算回路100は、第3エンコード部110、F関数部111、第2デコード部112、EXOR演算部113、第4エンコード部114、逆置換部(IP-1)115、および暗号文出力部116を有する。
デコード部102は、初期置換部101でIP置換処理を受けた平文のバイナリデータを所定のビットずつデコードしてデコードデータに変換する。
デコード部102は、デコードデータをスイッチ103L,103Rを介して第1エンコード部104および第2エンコード部105に出力する。
本実施形態のデコード処理については、後で詳述する。
スイッチ103Lの作動接点aはデコード部102の出力に接続され、作動接点bは第2デコードおよびプリチャージ制御部109、第3エンコード部110、および第4エンコード部114に接続され、固定接点cが第1エンコード部104の入力に接続されている。
スイッチ103Rの作動接点aは第1デコード部102の出力に接続され、作動接点bはEXOR演算部113の出力、第4エンコード部114に接続され、固定接点cが第2エンコード部105の入力に接続されている。
第1エンコード部104は、第1デコード部102でデコードされたデータまたは第2デコードおよびプリチャージ制御部109でデコードされたデータをエンコードしてバイナリデータに変換してLレジスタ106に出力する。
第2エンコード部105は、第1デコード部102でデコードされたデータまたはEXOR演算部113の演算結果をエンコードしてバイナリデータに変換してRレジスタ107に出力する。
Lレジスタ106は、データの取り込み信号としてのラッチパルスに同期して第1エンコード部104でエンコードされたたとえば32ビットのデータをラッチ(格納)する。
Rレジスタ107は、データの取り込み信号としてのラッチパルスに同期して第2エンコード部105でエンコードされたたとえば32ビットのデータをラッチ(格納)する。
第1デコードおよびプリチャージ制御部108は、Lレジスタ106にラッチされたバイナリデータを所定のビットずつデコードし、プリチャージ制御信号PCとの論理演算を経てデコード値またはプリチャージ値をEXOR演算部113の一方の入力に供給する。
第2デコードおよびプリチャージ制御部109は、Rレジスタ107にラッチされたバイナリデータを所定のビットずつデコードし、プリチャージ制御信号PCとの論理演算を経てデコード値またはプリチャージ値を第3エンコード部110に出力する。
第3エンコード部110は、第2デコードおよびプリチャージ制御部109によるデコード値をエンコードしてバイナリデータに変換し、変換データをF関数部111に出力する。
F関数部111は、第3エンコード部110によるバイナリデータに対して、鍵Knを用いたF関数の演算を行う。たとえばF関数部111は、第1演算部を形成する。
図2は、F関数部111の構成例を示す図である。
図2のF関数部111は、拡張部1111、EXOR演算部1112、Sbox1113、およびP置換部1114を有する。
拡張部1111は、第3エンコード部110でバイナリデータにエンコードされたRレジスタ107のラッチデータに対する拡張処理(ビット拡張処理)を行い、拡張処理後のデータをEXOR演算部1112の一方の入力に供給する。
EXOR演算部1112は、拡張部1111の出力データとラウンド鍵(拡張ビットと同じビット数)KnとのEXOR(排他的論理和)演算を行い、演算結果をSbox1113に出力する。
Sbox1113は、EXOR演算部1112の演算結果に対して非線形変換処理を行う。
Sbox1113は、たとえば変換テーブルを適用した48ビットから32ビットへの非線形処理を実行する。
置換部1114は、Sbox1113の出力データのビット位置の入れ替え処理を行い、その結果を第2デコード部112に出力する。
第2デコード部112は、F関数部111の出力バイナリデータ(置換部1114の出力)を所定ビットずつデコードしてEXOR演算部113の他方の入力に供給する。
EXOR演算部113は、第1デコードおよびプリチャージ制御部108によりデコードされたLレジスタ106のラッチデータと第2デコード部112によりデコードされた置換部1114によるデータとのEXOR(排他的論理和)演算を行う。
たとえばEXOR演算部113は、第2演算部を形成する。
第4エンコード部114は、ラウンド演算終了後のデコードされていた演算結果をエンコードしてバイナリデータに変換し、変換データを逆置換部115に出力する。
逆置換部115では、第4エンコード部114によりエンコードしてバイナリデータに変換されたデータの逆置換変換(IP-1)を実行し、暗号文出力部116を介して暗号文として出力する。
以上の構成を有する本実施形態の暗号処理装置は、暗号化演算回路の回路規模の増大および動作時のリーク電流の発生を抑止でき、電流解析を困難とするために、データのデコード、エンコードを行う特徴的な構成を含む。
以下に、本実施形態のデコード機能およびエンコード機能をついて詳細に説明する。
まず、デコード値について説明する。
ここでは、たとえば2ビットデータをデコードする場合を例に説明する。
図3(A)〜(C)は、2ビットデータの場合の、バイナリデータとデコードデータとの関係を表にして示す図である。
本例では、デコード部において、2ビットのバイナリデータBNDTを4ビットのデータにデコードする。
図3(A)および図3(B)のデコード方法では、デコーダによる4つのデコードデータDCDTは、必ず異なる位置に“1”が立ち、残りは“0”となっている。
あるいは、図3(C)のデコード方法では、デコーダによる4つのデコードデータDCDTは、必ず異なる位置に“0”が立ち、残りは“1”となっている。
図3(A)に示すデコード方法では、次のようにデコード処理が行われる。
バイナリデータBNDTの2ビット(b1,b0)が(0,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,0,0,1)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(0,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,0,1,0)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,1,0,0)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(1,0,0,0)としてデコードされる。
図3(B)に示すデコード方法では、次のようにデコード処理が行われる。
バイナリデータBNDTの2ビット(b1,b0)が(0,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,0,0,1)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(0,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,1,0,0)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,0,1,0)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(1,0,0,0)としてデコードされる。
図3(C)に示すデコード方法では、次のようにデコード処理が行われる。
バイナリデータBNDTの2ビット(b1,b0)が(0,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(1,1,1,0)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(0,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(1,1,0,1)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,0)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(1,0,1,1)としてデコードされる。
バイナリデータBNDTの2ビット(b1,b0)が(1,1)である場合、デコードデータDCDTの4ビット(d3,d2,d1,d0)は(0,1,1,1)としてデコードされる。
2ビットデータのデコードの場合、4!=24通りあり、どの対応でも良い。すなわち、図3(A)のデコード方法だけでなく、図3(B)の方法を採用してもよく、または別の方法でも良い。すなわち、図3(C)の例のように、異なる位置に“0”が立ち、残りは“1”となる場合でも良い。
以後、図3(A)に示すデコード方法に対応するデコード部およびエンコード部について説明する。
図4は、図3(A)のデコード方法に対応するデコード部およびエンコード部の構成例を示す回路図である。
図5は、図4におけるデコード部の真理値表を示す図である。
なお、図4の回路構成は、たとえば図1における、第2デコードおよびプリチャージ制御部109と第3エンコード部110に適用することが可能である。
また、プリチャージ制御信号PCを除けば、基本的に、第1デコード部102と第1エンコード部104、第1デコード部102と第2エンコード部105に適用することも可能である。
図4のデコード部200は、3入力NORゲートNR200〜NR203、インバータIV200,IV201、デコードラインLD200〜LD203、制御ラインLCTL、および信号配線としてのデコード出力ラインLDO200〜LDO203を有する。
さらに、デコード部200は、バイナリデータBNDTのビットb0の入力端子Tb0、ビットb1の入力端子Tb1、およびプリチャージ制御信号PCの入力端子TPCを有する。
デコードラインLD200は入力端子Tb0に接続され、デコードラインLD201はインバータIV200の出力端子に接続され、インバータIV200の入力端子が入力端子Tb0に接続されている。
デコードラインLD202は入力端子Tb1に接続され、デコードラインLD203はインバータIV201の出力端子に接続され、インバータIV201の入力端子が入力端子Tb1に接続されている。
制御ラインLCTLは入力端子TPCに接続されている。
NORゲートNR200の第1入力端子がデコードラインLD200に接続され、第2入力端子が制御ラインLCTLに接続され、第3入力端子がデコードラインLD202に接続されている。NORゲートNR200の出力端子がデコード出力ラインLDO200に接続されている。
NORゲートNR201の第1入力端子がデコードラインLD201に接続され、第2入力端子が制御ラインLCTLに接続され、第3入力端子がデコードラインLD202に接続されている。NORゲートNR201の出力端子がデコード出力ラインLDO201に接続されている。
NORゲートNR202の第1入力端子がデコードラインLD200に接続され、第2入力端子が制御ラインLCTLに接続され、第3入力端子がデコードラインLD203に接続されている。NORゲートNR202の出力端子がデコード出力ラインLDO202に接続されている。
NORゲートNR203の第1入力端子がデコードラインLD201に接続され、第2入力端子が制御ラインLCTLに接続され、第3入力端子がデコードラインLD203に接続されている。NORゲートNR203の出力端子がデコード出力ラインLDO203に接続されている。
エンコード部300は、2入力ORゲートO300,O301、および4入力NORゲートNR300を有する。
ORゲートO300の第1入力端子がデコード出力ラインLDO201に接続され、第2入力端子がデコード出力ラインLDO203に接続されている。
ORゲートO301の第1入力端子がデコード出力ラインLDO202に接続され、第2入力端子がデコード出力ラインLDO203に接続されている。
NORゲートNR300の第1入力端子がデコード出力ラインLDO200に接続され、第2入力端子がデコード出力ラインLDO201接続されている。NORゲートNR300の第3入力端子がデコード出力ラインLDO202に接続され、第4入力端子がデコード出力ラインLDO203に接続されている。
デコード部200は、2ビットのバイナリデータBNDTからその反転ビットデータを生成し、入力の2ビットとその反転ビットデータの計4ビットとしたデータを、対応するNORゲートに供給して4ビットのデコードデータd0,d1,d2,d3を生成する。
エンコード部300は、基本的に4ビットのデコードデータに対して、2つの2入力NORゲートを配置することより構成される。
ビットデータのエンコードにはデコードデータd0は用いられず、ビットb0’の生成にはデコードデータd1とd3の論理和の結果を適用し、ビットb1’の生成にはデコードデータd2とd3の論理和の結果を適用する。
このような構成を有する図4の回路の基本的な動作を説明する。
図6は、図4の回路のタイミングチャートである。
プリチャージ制御信号PCは、プリチャージを制御するための信号である。
プリチャージ制御信号PCがアクティブのハイレベル(H)のとき、図5および図6に示すように、デコードされたデータd0〜d3は全てローレベル(0)となり、これがプリチャージ状態を示す。
プリチャージ制御信号PCがローレベル(L)に変化してエバリュエーション相(Evaluation Phase)に移行した時、2ビットデータに応じて選択される1本のデコード出力ラインだけがハイレベルに変化する。
そして、プリチャージ制御信号PCがハイレベルに変化してプリチャージ相に遷移する時、2ビットに応じて選択されていた1本のデコード出力ラインのデータ(信号)だけがローレベルに変化する。
これより、エバリュエーション相に遷移する時は1本のデコード出力ラインだけがハイレベルに変化し、プリチャージ相に遷移する時はその1本のデコード出力ラインだけがローレベルに変化して全てのデコード出力ラインがローレベルにプリチャージされる。
デコード出力ライン(信号配線)端でのエンコード部300は、“b1’”が“d3”と“d2”のOR、“b0’”が“d3”と“d1”のORで生成される。
なお、“’”は、論理は同じでも信号遅延によって“b1”、“b0”とはタイミングが若干異なることを示している。
そして、“PC’”は、遅延信号でのプリチャージ制御信号を示し、デコード値(b1’,b0’)=(0,0)の時、これがデータなのかプリチャージによる値なのかを区別するための信号で、関数内での相(Phase)の制御に使われる。
図7は、本第1の実施形態に係るレジスタの入出力部におけるエンコード部並びにデコードおよびプリチャージ制御部の構成例を示す図である。
図7の構成は、図1の第1エンコード部104、Lレジスタ106、第1デコードおよびプリチャージ制御部108の構成、または第2エンコード部105、Rレジスタ107、第2デコードおよびプリチャージ制御部109の構成に相当する。
ここでは、例として第1エンコード部104、Lレジスタ106、第1デコードおよびプリチャージ制御部108の構成として説明する。
図4の基本構成と同様に、第1のエンコード部104は、32個のORゲートO300〜O331が並列に配置されている。
第1エンコード部104には、第1デコード部102で2ビットずつデコードされた計64ビットのデータd0’〜d63’が供給される。
そして、第1エンコード部104でエンコードされた32ビットのバイナリデータとしてLレジスタ106に格納される。
Lレジスタ106は、格納データの各ビットQ0〜Q31とそれらの反転ビット/Q0〜/Q31(/は反転を示す)を第1デコードおよびプリチャージ制御部108に供給する。
図7の構成では、図4のデコード部200のインバータIV200,IV201に相当する構成がレジスタ側に含まれている。
第1デコードおよびプリチャージ制御部108は、反転ビットを含む4ビットごとの図4のデコード部200が配置されている。
デコード部200は、3入力NORゲートNR200〜NR263、デコードラインLD200〜LD263、制御ラインLCTL、および信号配線としてのデコード出力ラインLDO200〜LDO263を有する。
Lレジスタ106の格納値は第1デコードおよびプリチャージ制御部108でデコードされ、プリチャージ制御信号PCとの論理演算を経てデコード値またはプリチャージ値として後段のEXOR演算部113に供給される。
次に、DES演算回路で使われている演算回路であるEXOR演算部とF関数について説明する。
図8は、2ビットバイナリデータのEXOR演算の真理値表を示す図である。
図9は、2ビットデコードデータのEXOR演算の真理値表を示す図である。
図10は、図9に基づいて形成したEXOR演算部を示す回路図である。
図11は、図10の回路のタイミングチャートである。
なお、ここでは、EXOR演算部113を符号400を用いて説明する。
図10のEXOR演算部400は、デコード出力ラインLD400〜LD403、LD410〜LD413、AND−NORゲートANR400〜ANR407、および2入力NANDゲートNA400〜NA403を有する。
EXOR演算部400は、入力端子TIb0〜TIb3,TIc0〜TIc3、および出力端子TOd0〜TOd3を有する。
デコード出力ラインLD400は入力端子TIb0に接続され、デコード出力ラインLD401は入力端子TIb1に接続され、デコード出力ラインLD402は入力端子TIb2に接続され、デコード出力ラインLD403は入力端子TIb3に接続されている。
デコード出力ラインLD410は入力端子TIc0に接続され、デコード出力ラインLD411は入力端子TIc1に接続され、デコード出力ラインLD412は入力端子TIc2に接続され、デコード出力ラインLD413は入力端子TIc3に接続されている。
AND−NORゲートANR400の第1入力端子がデコード出力ラインLD400に接続され、第2入力端子がデコード出力ラインLD410に接続されている。AND−NORゲートANR400の第3入力端子がデコード出力ラインLD401に接続され、第4入力端子がデコード出力ラインLD411に接続されている。
AND−NORゲートANR401の第1入力端子がデコード出力ラインLD402に接続され、第2入力端子がデコード出力ラインLD412に接続されている。AND−NORゲートANR401の第3入力端子がデコード出力ラインLD403に接続され、第4入力端子がデコード出力ラインLD413に接続されている。
AND−NORゲートANR402の第1入力端子がデコード出力ラインLD411に接続され、第2入力端子がデコード出力ラインLD400に接続されている。AND−NORゲートANR402の第3入力端子がデコード出力ラインLD410に接続され、第4入力端子がデコード出力ラインLD401に接続されている。
AND−NORゲートANR403の第1入力端子がデコード出力ラインLD413に接続され、第2入力端子がデコード出力ラインLD402に接続されている。AND−NORゲートANR403の第3入力端子がデコード出力ラインLD412に接続され、第4入力端子がデコード出力ラインLD403に接続されている。
AND−NORゲートANR404の第1入力端子がデコード出力ラインLD412に接続され、第2入力端子がデコード出力ラインLD400に接続されている。AND−NORゲートANR404の第3入力端子がデコード出力ラインLD413に接続され、第4入力端子がデコード出力ラインLD401に接続されている。
AND−NORゲートANR405の第1入力端子がデコード出力ラインLD410に接続され、第2入力端子がデコード出力ラインLD402に接続されている。AND−NORゲートANR405の第3入力端子がデコード出力ラインLD411に接続され、第4入力端子がデコード出力ラインLD403に接続されている。
AND−NORゲートANR406の第1入力端子がデコード出力ラインLD413に接続され、第2入力端子がデコード出力ラインLD400に接続されている。AND−NORゲートANR406の第3入力端子がデコード出力ラインLD412に接続され、第4入力端子がデコード出力ラインLD401に接続されている。
AND−NORゲートANR407の第1入力端子がデコード出力ラインLD411に接続され、第2入力端子がデコード出力ラインLD402に接続されている。AND−NORゲートANR407の第3入力端子がデコード出力ラインLD410に接続され、第4入力端子がデコード出力ラインLD403に接続されている。
NANDゲートNA400の第1入力端子がNORゲートNR400の出力端子に接続され、第2入力端子がNORゲートNR401の出力端子に接続されている。
NANDゲートNA401の第1入力端子がNORゲートNR402の出力端子に接続され、第2入力端子がNORゲートNR403の出力端子に接続されている。
NANDゲートNA402の第1入力端子がNORゲートNR404の出力端子に接続され、第2入力端子がNORゲートNR405の出力端子に接続されている。
NANDゲートNA403の第1入力端子がNORゲートNR406の出力端子に接続され、第2入力端子がNORゲートNR407の出力端子に接続されている。
バイナリデータによる動作のEXOR演算において、たとえば2つのデータを両方とも一旦プリチャージデータの全てを“0”にしたあと、本来のデータに変化させる制御を行ったとしても、2つの信号変化に遅延差がある場合、次のようになる。
すなわち、EXOR演算回路の出力は“0”の状態から、一旦早く変化したデータに遷移した後、本来のEXOR演算結果に遷移し、この意図しないデータへの遷移がリーク(Leak)としてDPA攻撃の対象になる可能性がある。
しかし、デコードデータ同士で直接EXOR演算を行う図10のEXOR演算部400では、入力をAND−NORゲートANR400〜ANR407で受けている。
このため、図11に示すように、2つのデコードデータのうち、遅い方のデータがプリチャージデータの全てが“0”の間は、早く変化したデータの値にかかわらずプリチャージ状態の全て“0”を出力し続ける。
そして、遅い方のデータが変化した段階で全て“0”からEXOR結果に遷移し、DPA攻撃の対象となる“意図しないデータ”を発生させない。
本実施形態において、Rレジスタ107からのデコードデータは、F関数部111の直前において第3エンコード部110でエンコードされて、バイナリデータがF関数部111に入力される。
F関数部111において、図2に関連付けて説明したように、32ビットのバイナリデータは拡張関数で48ビットに拡張され、48ビットのラウンド鍵(Round Key)とEXOR演算後、通常はSboxに入力される。
図12は、Sboxの構成例を示す図である。
図13は、Sboxのデコード出力の例を示す図である。
図14は、Sboxのデコード出力のより具体的な例を示す図である。
図15は、全てのSboxの出力ビットのデコードされる相手を示す図である。
図12においては、サブSboxS0について示されている。
図12の構成はBDD(Binary Decision Diagram)と呼ばれる構成で、スイッチ回路11130がピラミッド状に配置されている。
各スイッチ回路11130の入力が仕様で定義されているテーブルに基づいて結線され、これを4個並べることによりサブSboxS0が構成される。
そして、図13に示されるように、サブSboxS0〜S7を8個並列に配置してSbox1113が構成され、その出力ビットはP置換部1114によるP置換により並替情報に基づいて並べ替えられる。
Sbox1113の出力はバイナリデータであり、図14に示されるように、Sbox1113のバイナリ出力はP置換部1114のP置換に基づいて並べ替えられた後、隣接するビットとデコードされ、F関数部111の出力となる。
サブSboxS0の各ビットのデコードされる相手は、図15に示すように、ビットb0はサブSboxS3のビットb2、ビットb1はサブSboxS1のビットb3、ビットb2はサブSboxS2のビットb0、ビットb3はサブSboxS6のビットb0である。
このように、サブSboxS0の各ビットのデコードされる相手は、いずれも異なるサブSboxのビットになっている。
そして、このデコードされたF関数の出力は、デコードされたLレジスタ106のデータとデコード値のままEXOR演算されて、Rレジスタ107に供給され、ラッチパルスの立ち上がりで取り込まれてRレジスタ107の値は更新される。
そして、プリチャージ相からエバリュエーション相に移行した時、各デコード単位で1本の信号線がハイレベルに遷移し、この信号変化がDPA攻撃の対象の1つになる。
攻撃(Attack)方法としては、まず複数の平文で暗号演算を実行して消費電流波形を測定する。
次に、たとえばサブSboxS0の6ビット鍵を推定して各々の平文でシミュレーションを行い、着目ノードの値または値の変化に基づいて実際の消費電流波形をグループ分けする。
最後にグループ間の平均の差分を採ってピークの有無を確認して推定鍵の妥当性を判断する。
しかし、Sboxの出力はデコードされていて、データに関わらず変化するのはデコード単位で必ず1本であるため、グループ間で差は生じない。
厳密に言えば、デコードされた信号の配線容量を全く同じにすることは困難で、この容量差によりデコード値による充放電電流に微小な差異が生じ、これが攻撃の対象となりうる。
しかし、通常のDPA攻撃のように、着目するビットが充放電電流を流す/流さないでグループ分けしてその平均値の差分を採る場合に比べてリーク電流は格段に小さく、DPA攻撃の難易度は非常に高くなっている。
DPA攻撃には、サブSboxの1ビットに着目して攻撃を行う1ビットアタックと、4ビット全てに着目して攻撃を行う4ビットアタックがある。
4ビットアタックの方が相関が強く、推定した鍵が正しい場合のピーク電流は大きくなる。
しかし、たとえば、サブSboxS0のビットb0に対して1ビットアタックを行う場合、サブSboxS0のビットb0はサブSboxS3のビットb2とデコードされているため、サブSboxS0とS3の両方を推定してDPA攻撃する必要がある。
サブSboxの鍵は6ビットであるため、通常のDPA攻撃では26=64個の鍵を推定すればその中に1個だけピーク波形が現れる。
これに対して、本実施形態の場合、12ビットの鍵を推定する必要があり、212=4,096通りの組合せの中からピークの現れる12ビット鍵を推定する必要がある。
しかも、リーク源はデコード配線の負荷容量の差異に基づく電流であり、元々のリーク電流が極めて小さく、DPA 攻撃は極めて困難となる。
サブSboxS0の4ビットに対してアタックを行う場合、各ビットは各々サブSboxS3,S1,S2,S6のビットとデコードされているため、これら4個のサブSboxの鍵も同時に推定する必要がある。そして、2(6+6*4) = 230 = 1,073,741,824 通りの組み合わせの中からピークの現れる30ビット鍵を特定する必要があり、これは実際問題として非常に困難な攻撃となる。
図15は、全てのサブSboxの出力ビットのデコードされる相手を示すが、いずれの場合も4〜5個のサブSboxの鍵を推定してアタックする必要があり、どのSboxへの攻撃も非常に困難な攻撃となる。
ここまでの説明は、2ビット単位でデコードする場合に関して述べてきたが、3ビット単位、4ビット単位、およびそれ以上のビット単位でデコードする場合にも適用可能である。
以上より、信号配線を伝搬される信号の充放電に伴うリーク電流を、DPA攻撃が不可能な充放電電流とすることにより、DPA攻撃が困難な構成が実現できる。
次に、図1の構成による全体的な動作について説明する。
DES暗号は16ラウンド(Round)の演算で形成されるが、前述したようにハードウェアで設計する場合、図1に示すように、1ラウンド分の回路が配置され、それを16回動作させる。
暗号演算を行う場合、平文はIP部101でIP置換後、第1デコード部102において2ビット単位でデコードされ、スイッチ103L,103Rを介してLレジスタ106、Rレジスタ107に供給される。
本実施形態においては、Lレジスタ106、Rレジスタ107への入力データは、第1および第2エンコード部104,105でエンコードされて、バイナリデータとしてLレジスタ106、Rレジスタ107に格納される。
そして、レジスタの格納値は第1および第2のデコードおよびプリチャージ制御部108,109でデコードされ、プリチャージ制御信号PCとの論理演算を経てデコード値またはプリチャージ値として演算回路に供給され、Lレジスタ106側のデータはEXOR演算部113に供給される。
Rレジスタ107側のデータはデコードデータのままLレジスタ106側の入力およびF関数部111の入力に供給され、F関数部111の入力段手前において第3エンコード部110でバイナリデータにエンコードされてF関数部111に入力され、バイナリでF関数の演算が行われる。
そして、F関数部111の出力は第2デコード部112でデコードされてEXOR演算部113に入力される。
EXOR演算部113の他方の入力にはLレジスタ106のデータがデコードされて供給され、デコードデータのままEXOR演算が行われ、演算結果はRレジスタ107の入力側に供給される。
F関数部111の出力はLレジスタ106の値とEXOR演算されるが、この時の両入力は共にデコード値である。
これをエンコードしてからEXOR 演算して再びデコードしてもよいし、デコードデータのまま直接EXOR演算を行っても良い。
デコードデータのまま直接EXOR演算を行うと、信号の遅延差によるDPA攻撃の対象となるリークは発生しない。
本実施形態では、前述したように、デコード値のまま直接EXOR演算を行う方法を採る。F関数部111の出力とLレジスタ106の格納値とのEXOR結果は、ラウンド16の場合はRレジスタ107の出力と共に第4エンコード部114でエンコードされた後、逆IP置換されて暗号文として出力される。
F関数部111の出力とLレジスタ106の格納値とのEXOR結果は、ラウンド16以前であればRレジスタ107の入力側に供給される。
以上説明したように、本第1の実施形態によれば、信号配線に伝搬させるデータにデコード値を用い、演算部においてデコード値で演算する構成を採ることにより 信号配線および演算部でのリーク電流を少なくし、DPA耐性を向上させることができる。
<2.第2の実施形態>
次に、本発明の第2の実施形態について説明する。
図16は、本発明の第2の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。
本第2の実施形態に係るDES演算回路100Aが第1の実施形態に係るDES演算回路100と異なる点は、次の点にある。
すなわち、DES演算回路100Aでは、第1デコード部102のデコードデータはエンコードされることなくそのままの64ビットでLレジスタ106A、Rレジスタ107Aに格納される。
Lレジスタ106A、Rレジスタ107Aの格納値の反転出力は、第1プリチャージ制御部117および第2プリチャージ制御部119で、プリチャージ制御信号PCとの論理演算を経てデコード値のまま、またはプリチャージ値として演算部に供給される。
図17は、本第2の実施形態に係るレジスタの入出力部におけるプリチャージ制御部の構成例を示す図である。
第1プリチャージ制御部117(第2プリチャージ制御部118)は、図17に示すように、Lレジスタ106A(Rレジスタ107A)の入力側にエンコード部は配置されず第1デコード部102のデコードデータd0’〜d63’がそのまま入力される。
また、Lレジスタ106A(Rレジスタ107A)の出力側には、デコードライン等のデコード機能部は配置されず、制御ラインLCTLとNORゲートNR200A〜NR263Aが配置されている。
本第2の実施形態によれば、その他の構成は第1の実施形態と同様であり、第1の実施形態と同様の効果を得ることができる。
<3.第3の実施形態>
第1および第2の実施形態においては、本発明をDESに適用した場合について述べてきた。
本第3の実施形態においては、この概念をAES(Advanced Encryption Standard)に適用した場合について説明する。
図18は、一般的なAES演算回路の構成例を示す図である。
図19は、本第3の実施形態に係るAES演算回路の構成例を示す図である。
AESは、データが128ビットであるが、鍵は128ビット、192ビット、256ビットのものが定義され、各々AES−128,AES192,AES256が仕様としてFIPSに登録されている。演算のラウンド数も鍵長によって10,12,14と異なっている。
ここでは、AES−128の場合について説明する。
図18のAES演算回路150は、サブバイト(Sub Bytes)変換部151、シフトロウ(Shift Rows)変換部152、ミックスカラム(Mix Columns)変換部153、スイッチ154、EXOR演算部155、および128ビットのレジスタ156を有する。
サブバイト変換部151は、Sub_Bytes() 関数を実行し、Sboxによる換字変換を行う。
シフトロウ変換部152は、Shift_Row() 関数を実行し、サブバイト変換部151によるバイトデータをシフトする。
ミックスカラム変換部153は、Mix_Column() 関数を実行し、GF(2)での行列演算を実行する機能を有する。
この例の場合は、レジスタ156をサブバイト変換部( Sub_Bytes() 関数)151の直前に配置しているが、別の位置でも構わない。
暗号演算時、平文はまずラウンド0の鍵とEXOR演算した後、レジスタ156に取り込まれる。
そして、レジスタ156の出力が変化することによって Sub_Bytes() 関数および Shift_Row() 関数が実行され、ラウンド9までは Mix_Column() 関数が続けて実行されて、その演算結果がラウンド鍵とEXORされる。
ラウンド10ではMix_Column() 関数がスキップされてShift_Rows() 関数後の演算結果がラウンド鍵とEXORされてレジスタ156に取り込まれる。
以上がAES演算回路150の基本的な処理である。
本実施形態に係るAES演算回路150Aは、サブバイト変換部151の入力側にエンコード部161が配置され、出力側にデコード部171が配置されている。
ミックスカラム変換部153の入力側にエンコード部162が配置され、出力側にデコード部172が配置されている。
ラウンド鍵の入力部にデコード部173が配置されている。
平文の供給部にデコード部174が配置されている。
そして、レジスタ156Aの暗号文出力部にエンコード部163が配置されている。
本実施形態に係るAES演算回路150Aにおいて、平文はデコード部174でデコードされて演算フローに入力される。
演算結果はエンコード部163でエンコードされて出力される。
演算フローの中では、Sub_Bytes() 関数と Mix_Column() 関数の入力でエンコードされてバイナリで演算が行われ、演算結果はデコード部171,172でデコードされて出力される。
ラウンド鍵もデコード部173でデコードされて演算フローに供給され、デコード値同士でEXOR演算が行われる。
レジスタ156Aは、この例の場合、デコード値がそのまま格納され、2ビットでデコードする場合、2倍の256ビットのレジスタが配置される。
なお、レジスタ値は入力でエンコードされてバイナリで格納され、その出力をデコードして演算部に供給する構成でも良い。
本第3の実施形態によれば、上述した第1および第2の実施形態と同様の効果を得ることができる。
<4.第4の実施形態>
次に、本発明の第4の実施形態について説明する。
図20は、本発明の第4の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。
本第4の実施形態に係るDES演算回路100Bが第2の実施形態の実施形態に係るDES演算回路100Aと異なる点は、以下の通りである。
第2の実施形態に係るDES演算回路100Aは、信号配線を伝搬する信号をデコード値とすることにより、DPA攻撃を困難にしている。
演算部ではその入力箇所でエンコードされてバイナリで演算が行われ、ここでのリーク電流が攻撃の対象となる可能性が残る。
本第4の実施形態に係るDES演算回路100Bでは、演算部もデコード値で動作する構成を採ることにより、演算部でのリークを減らす。
図21は、本第4の実施形態に係るDES演算回路100BのF関数部を示す図である。
図21のF関数部111Bで、基本的に図2のF関数部111と異なる点は、ラウンド鍵Knがデコードされていること、並びに、P置換を行ってからSboxによる非線形置換を行うことにある。
そして、本第4の実施形態に係るDES演算回路100Bでは、ラウンド鍵KnのF関数部111Bへの入力部にデコード部119が配置され、F関数部111BのRレジスタ107Aのデータの入力部のエンコード部は削除されている。
F関数部111Bへはデコードデータが入力され、デコードデータに対して拡張部1111Bでビット拡張が行われ、デコードデータのラウンド鍵とデコード値のままEXOR演算が行われる。
そのあと、本来はSboxで非線形変換してからP置換を行って出力とするが、第4の実施形態ではP置換部1114BでP置換してからSbox1113Bで非線形変換してF関数の出力とする。
以下に、2ビットのデコード値で演算を行う構成について具体的に説明する。
図22は、通常のバイナリ演算での拡張関数の一例を示す図である。
図23は、本第4の実施形態における拡張関数について説明するための図である。
図24は、本第4の実施形態におけるBDDのSboxのサブSboxの構成例を示す図である。
図25は、本第4の実施形態におけるBDDのサブSboxのデコード出力例を示す図である。
図23の拡張部500(1111B)は、2入力NORゲートNR500〜NR504、3入力NORゲートNR505、インバータIV500,IV501、デコードラインLD500〜LD503を有する。
NORゲートNR500の第1入力端子はビットb2,b3のデコードデータd4の供給ラインに接続され、第2入力端子がビットb2,b3のデコードデータd6の供給ラインに接続されている。
NORゲートNR500の出力端子はデコードラインLD500およびインバータIV500を介してデコードラインLD501に接続されている。
NORゲートNR501の第1入力端子はビットb8,b9のデコードデータd16の供給ラインに接続され、第2入力端子がビットb8,b9のデコードデータd17の供給ラインに接続されている。
NORゲートNR501の出力端子はデコードラインLD502およびインバータIV501を介してデコードラインLD503に接続されている。
NORゲートNR502の第1入力端子がデコードラインLD502に接続され、第2入力端子がデコードラインLD500に接続されている。
NORゲートNR503の第1入力端子がデコードラインLD503に接続され、第2入力端子がデコードラインLD500に接続されている。
NORゲートNR504の第1入力端子がデコードラインLD502に接続され、第2入力端子がデコードラインLD501に接続されている。
NORゲートNR505の第1入力端子がデコードラインLD503に接続され、第2入力端子が制御信号PC’の供給ラインに接続され、第3入力端子がデコードラインLD501に接続されている。
拡張部500では、ビットb4,b5のデコードデータd8〜d11はそのままとなる。同様に、ビットb6,b7のデコードデータd12〜d15はそのままとなる。
NORゲートNR502〜NR505の出力はビットb3,b8のデコードデータdx3,dx2,dx1,dx0となる。
通常のバイナリ演算での拡張関数は、図22に示すように、32ビットのF関数入力を4ビットずつ8個に分け、各々両側の隣接するビットを付加して6ビットに拡張して各サブSboxに入力する。
本第4の実施形態においては、入力信号は2ビット単位でデコードされている。
このため、図23に示すように、4ビット分は2個のデコード値を用い、隣接するビットに関しては、隣接するデコード値から必要なビットのみを取り出し、それをデコードすることによって発生させる。
拡張関数の出力は、2ビット単位でデコードされたラウンド鍵とEXOR演算される。EXOR演算部1112Bは図10と同じものが用いられる。
このEXOR演算部1112Bの場合、2つの入力の遅延差があっても、信号変化の遅い方に合わせて出力が変化し、先に変化したデータに基づく中間値を発生させない。
拡張関数の出力のうち、論理演算で生成したデコード値は他の2つのデコード値に比べて遅延があり、この遅延は鍵とのEXOR演算後もそのまま保持されるが、この遅延のある信号をSboxの最終段のスイッチ制御信号とすることにより遅延を緩和する。
第4の実施形態の場合、Sbox1113Bへの入力信号は、2ビットのデコードデータとなるが、この信号をエンコードしてバイナリに戻すとリーク源となる。
2ビットデコード信号のままでSbox動作を行うために、図24に示すように、4個の入力信号から1つの出力を選択するスイッチ回路11130Bが用いられる。
構成は、図12の構成に対して、3個のスイッチ回路11130を1個の4入力1出力のスイッチ回路11130Bに置き換える。
このスイッチ回路11130Bは、4入力の中から2ビットのデコード信号によって選択される1つのデータを選択して次のスイッチ回路11130Bに伝播する制御を行う。
したがって、通常のSboxへの入力信号は6ビットであるが、本第4の実施形態では、この入力信号が2ビットずつデコードされた3組の信号として供給され、Sbox1113Bは3段のスイッチ回路11130Bで構成される。
Sbox1113Bの出力はバイナリデータであり、通常はこの出力がP置換によって並べ替えられてF関数の出力となる。
本第4の実施形態の場合、このF関数の出力を2ビット単位でデコードしてLレジスタ106AとのEXOR演算部113に入力するが、デコード部までの信号配線のデータはバイナリデータであり、DPA攻撃の対象となるおそれがある。
これを解決する手段として、図25に示すように、Sbox1113Bの各ビットを生成する回路をP置換後の並べ替えに基づいて配置し、デコードするビットの生成回路同士を隣接して配置する。
これにより、Sboxの各出力からデコード部までの信号配線を最小にすることが可能となり、この信号配線でのリークを最小にすることができる。
この配置の構成を採ると、Sboxの入力信号が長くなる問題が発生するが、Sboxの入力信号はデコードデータであり、デコード単位の4本の信号は同じように長くなる。
このため、充放電電流もデータに関係なく同じように増加し、DPA耐性の低下は無視できるレベルである。
以上、DESの演算回路部分に対してデコード値で動作するような構成を示した。
同様に、AESに対しても演算回路部分をデコード値で動作する構成に変更することが可能である。
以上説明したように、本実施形態によれば、信号配線に伝搬されるデータにデコード値を用い、演算部をデコード値で演算する構成を採ることにより 信号配線および演算部でのリーク電流を少なくし、DPA耐性が向上する。
ICの動作電流は、{ICの動作電流=負荷配線の充放電による消費電流+貫通電流による消費電流+リークによる消費電流}で表わされる。
ICの動作電流の仕様は、動作電流の実測データを元に設定される。
この中の充放電電流の成分に関して、たとえば32本の信号線に着目した場合、信号変化は0〜32本の間の値を採り、その平均の16本と、その最大値の32本の充放電電流の実測から仕様は決められる。
しかし、たとえば2ビット単位でデコードした信号を用いる場合、信号の本数は64本に増加するが、変化するのは必ず4本に1本であり、変化する電流はバイナリデータに関係なく常に16本であり、負荷配線の最大充放電電流は通常構成の半分になる。
そして、磁気をコイルで受けて電力を発生させて動作するカード等では、使用できる電流に制限があり、最大動作電流で電流の仕様が決まるため、動作電流の仕様を低く設定できる。
ここで、上述の暗号処理を実行するデバイスとしてのICモジュール600の構成例を図26に関連付けて説明する。
上述の処理は、たとえばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図26に示すICモジュール600は、これら様々な機器に構成することが可能である。
図26において、CPU(Central processing Unit)601は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。
メモリ602は、CPU601が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)を含む。
また、メモリ602は、CPU601の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。
また、メモリ602は暗号処理に必要な鍵データ等の格納領域として使用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
暗号処理部603は、たとえば上述したDESアルゴリズムなど複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置である。
すなわち、暗号処理部603には、図1のDES演算回路100や図16のDES演算回路100A、図19のAES演算回路150A、図20のDES演算回路100Bが適用される。
送受信部604は、外部とのデータ通信を実行するデータ通信処理部であり、たとえばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
なお、暗号処理部603において適用される各種の制御信号、たとえば前述したスイッチの切り替え制御信号は、クロック生成回路605からのクロック信号をトリガにして動作するタイミング発生回路606において生成する。そして、生成した信号を暗号処理部603に供給することが可能である。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。
本発明の第1の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。 F関数部の構成例を示す図である。 2ビットデータの場合の、バイナリデータとデコードデータとの関係を表にして示す図である。 図3(A)のデコード方法に対応するデコード部およびエンコード部の構成例を示す回路図である。 図4におけるデコード部の真理値表を示す図である。 図4の回路のタイミングチャートである。 本第1の実施形態に係るレジスタの入出力部におけるエンコード部並びにデコードおよびプリチャージ制御部の構成例を示す図である。 2ビットバイナリデータのEXOR演算の真理値表を示す図である。 2ビットデコードデータのEXOR演算の真理値表を示す図である。 図9に基づいて形成したEXOR演算部を示す回路図である。 図10の回路のタイミングチャートである。 Sboxの構成例を示す図である。 Sboxのデコード出力の例を示す図である。 Sboxのデコード出力のより具体的な例を示す図である。 全てのSboxの出力ビットのデコードされる相手を示す図である。 本発明の第2の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。 本第2の実施形態に係るレジスタの入出力部におけるプリチャージ制御部の構成例を示す図である。 一般的なAES演算回路の構成例を示す図である。 本第3の実施形態に係るAES演算回路の構成例を示す図である。 本発明の第4の実施形態に係る暗号処理装置としてのDES演算回路の構成例を示す図である。 本第4の実施形態に係るDES演算回路100BのF関数部を示す図である。 通常のバイナリ演算での拡張関数の一例を示す図である。 本第4の実施形態における拡張関数について説明するための図である。 本第4の実施形態におけるBDDのSboxのサブSboxの構成例を示す図である。 本第4の実施形態におけるBDDのサブSboxのデコード出力例を示す図である。 本発明の構成が適用可能な暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。
符号の説明
100,100A,100B・・・DES演算回路、101・・・初期置換部[IP(Initial Permutation)]、102・・・第1デコード部、103・・・スイッチ(SW)、103L・・・Lレジスタ側スイッチ、103R・・・Rレジスタ側スイッチ、104・・・第1エンコード部、105・・・第2エンコード部、106,106A・・・Lレジスタ、107,107A・・・Rレジスタ、108・・・第1デコードおよびプリチャージ制御部、109・・・第2デコードおよびプリチャージ制御部、110・・・第3のエンコード部、111,111B・・・F関数部、112・・・第2デコード部、113・・・EXOR演算部、114・・・第4エンコード部、115・・・逆置換部(IP-1)、116・・・暗号文出力部(Crypto)、117・・・第1プリチャージ制御部、118・・・第2プリチャージ制御部、119・・・デコード部、150A・・・AES演算回路、151・・・サブバイト(Sub Bytes)変換部、152・・・シフトロウ(Shift Rows)変換部、153・・・ミックスカラム(Mix Columns)変換部、154・・・スイッチ、155・・・EXOR演算部、156A・・・レジスタ、161〜163・・・エンコード部、171〜174・・・エンコード部。

Claims (13)

  1. 演算用データを格納する第1および第2のレジスタと、
    上記第2のレジスタに格納されるデータに応じた演算を行う第1演算部と、
    上記第1のレジスタの格納値と、上記第1演算部の演算結果との論理演算を行う第2演算部と、
    バイナリデータを所定ビットずつデコードして当該バイナリデータのビット数より多いビット数のデコードデータに変換するデコード部と、を有し、
    上記第2演算部の演算結果が上記第2のレジスタに格納され、
    上記デコード部は、
    少なくとも、上記第2のレジスタの出力部から第1演算部の入力への信号配線、上記第2のレジスタの出力部から第1のレジスタの入力部への信号配線、上記第1のレジスタの出力部から第2演算部の入力部への信号配線、および上記第1演算部の出力部から上記第2演算部の入力部への信号配線を伝搬するデータが、バイナリデータを所定ビットずつデコードして当該バイナリデータのビット数より多いビット数のデコードデータに変換された状態で供給されるように形成され、
    回路動作時に上記信号配線の変化が上記デコード部のデコード単位で同じ信号配線数であり、
    1ラウンドはプリチャージ相とエバリュエーション相により形成され、
    上記デコード部は、
    プリチャージ制御信号がアクティブのプリチャージ相においては、デコードデータを全て所定のレベルにプリチャージし、
    上記エバリュエーション相において上記デコード処理を行い、
    上記第1演算部および上記第2演算部のうち、少なくとも上記第2演算部は、上記論理演算において、出力信号の中間値への遷移を発生させない
    暗号処理装置。
  2. 上記デコードデータは、
    上記各バイナリデータに対して異なる位置に論理1または0が立ち、残りの位置は論理0または1であるように変換される
    請求項1記載の暗号処理装置。
  3. 入力平文のバイナリデータをデコードして上記デコードデータに変換し、選択的に上記第1および第2のレジスタの入力部に供給可能な入力平文用デコード部を有し、
    上記入力平文用デコード部は、
    デコードデータの出力部から上記第1および第2のレジスタの入力部への信号配線を伝搬するデータが、バイナリデータを所定ビットずつデコードして当該バイナリデータのビット数より多いビット数のデコードデータに変換された状態で供給されるように形成され、
    上記第1演算部は、
    上記第2のレジスタに格納されるデータに応じた演算を行い、
    上記第2演算部は、
    上記第1のレジスタの格納値と上記第1演算部の演算結果との排他的論理演算を行い、
    上記第2演算部の演算結果が上記第2のレジスタに格納される
    請求項1または2記載の暗号処理装置。
  4. 上記第1のレジスタおよび上記第2のレジスタの入力部には、それぞれ上記デコードデータをエンコードしてバイナリデータに変換するエンコード部が配置され、
    上記第1のレジスタおよび上記第2のレジスタの出力部には、それぞれ当該レジスタに格納されたバイナリデータをデコードして上記デコードデータに変換するデコード部が配置され、
    上記第1演算部の入力部には、上記第2のレジスタの格納値の上記デコードデータをエンコードしてバイナリデータに変換するエンコード部が配置され、
    上記第1演算部の出力部には、上記演算結果をデコードして上記デコードデータに変換し、上記第2演算部に出力するデコード部が配置されている
    請求項3記載の暗号処理装置。
  5. 上記第1のレジスタおよび上記第2のレジスタの出力部における上記デコード部は、
    プリチャージ制御信号がアクティブのプリチャージ相においては、デコードデータを全て所定のレベルにプリチャージし、
    上記エバリュエーション相において上記デコード処理を行う
    請求項4記載の暗号処理装置。
  6. 上記第1演算部の入力部には、上記第2のレジスタの格納値の上記デコードデータをエンコードしてバイナリデータに変換するエンコード部が配置され、
    上記第1演算部の出力部には、上記演算結果をデコードし上記デコードデータに変換し、上記第2演算部に出力するデコード部が配置されている
    請求項3記載の暗号処理装置。
  7. 1ラウンドはプリチャージ相とエバリュエーション相により形成され、
    上記第1のレジスタおよび上記第2のレジスタの出力部における上記デコード部は、
    プリチャージ制御信号がアクティブのプリチャージ相においては、デコードデータを全て所定のレベルにプリチャージする
    請求項3または6記載の暗号処理装置。
  8. 上記第1演算部は、
    非線形変換部としてのSボックスを有し、
    上記Sボックスは、
    複数のサブSボックスにより形成され、
    上記Sボックスの出力は、
    異なる上記サブSボックスの出力ビットとデコードされる
    請求項3から7のいずれか一に記載の暗号処理装置。
  9. 上記第1演算部は、
    入力データのビットを拡張する拡張部と、
    上記拡張部の拡張データと上記デコード処理が施された鍵との排他的論理演算を行う排他的論理演算部と、を含む
    請求項3記載の暗号処理装置。
  10. 上記第1演算部は、
    上記排他的論理演算部の演算結果のビット位置の入れ替え処理を行う置換部と、
    上記置換部の出力データに対して非線形変換処理を行うSボックスと、を含む
    請求項9記載の暗号処理装置。
  11. ラウンド暗号演算終了後にデコードされていた演算結果をエンコードしてバイナリデータに変換するエンコード部を有する
    請求項1から10のいずれか一に記載の暗号処理装置。
  12. 上記デコード部のデコード値のハミング重みは同じである
    請求項1から11のいずれか一に記載の暗号処理装置。
  13. 前記暗号処理装置は、DES(Data Encryption Standard)アルゴリズムまたはAES(Advanced Encryption Standardに従った暗号処理演算を実行する
    請求項1から11のいずれか一に記載の暗号処理装置。
JP2008296411A 2008-11-20 2008-11-20 暗号処理装置 Expired - Fee Related JP4687775B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008296411A JP4687775B2 (ja) 2008-11-20 2008-11-20 暗号処理装置
EP09252412A EP2190143A1 (en) 2008-11-20 2009-10-14 Cryptographic processing apparatus with improved resistance to power analysis
US12/621,620 US8370642B2 (en) 2008-11-20 2009-11-19 Cryptographic processing apparatus
CN2009102228897A CN101739889B (zh) 2008-11-20 2009-11-20 密码处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008296411A JP4687775B2 (ja) 2008-11-20 2008-11-20 暗号処理装置

Publications (2)

Publication Number Publication Date
JP2010124276A JP2010124276A (ja) 2010-06-03
JP4687775B2 true JP4687775B2 (ja) 2011-05-25

Family

ID=41571860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008296411A Expired - Fee Related JP4687775B2 (ja) 2008-11-20 2008-11-20 暗号処理装置

Country Status (4)

Country Link
US (1) US8370642B2 (ja)
EP (1) EP2190143A1 (ja)
JP (1) JP4687775B2 (ja)
CN (1) CN101739889B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101811755B1 (ko) * 2011-07-15 2018-01-26 엘지전자 주식회사 이동 단말기
CN102970132B (zh) * 2011-08-31 2015-02-18 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
DE102011088502B3 (de) * 2011-12-14 2013-05-08 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
JP6136325B2 (ja) * 2013-02-08 2017-05-31 日本電気株式会社 暗号処理装置、暗号処理方法およびプログラム
DE102013205544A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
WO2014205398A1 (en) * 2013-06-21 2014-12-24 Cryptography Research, Inc. Energy analysis for differential power analysis resistance
US20150260768A1 (en) * 2014-03-13 2015-09-17 Kabushiki Kaisha Toshiba Detection method of algorithm in integrated circuit
TWI712915B (zh) 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
KR102446866B1 (ko) 2014-08-28 2022-09-23 삼성전자주식회사 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
US9654111B1 (en) * 2014-11-12 2017-05-16 Maxim Integrated Products, Inc. Systems and methods for protecting data using reconfigurable logic paths
WO2016167076A1 (ja) * 2015-04-16 2016-10-20 ブリルニクスインク 固体撮像装置、固体撮像装置の駆動方法、および電子機器
US10530566B2 (en) 2015-04-23 2020-01-07 Cryptography Research, Inc. Configuring a device based on a DPA countermeasure
US10255462B2 (en) * 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
CN109039608B (zh) * 2018-08-24 2023-05-09 东南大学 一种基于双S核的8-bitAES电路
CN109951268B (zh) * 2019-02-18 2020-12-22 吉林大学珠海学院 基于位置换和位变换的加密解密方法和装置
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
CN110795747A (zh) * 2019-10-18 2020-02-14 浪潮电子信息产业股份有限公司 一种数据加密存储方法、装置、设备及可读存储介质
KR20210108787A (ko) 2020-02-26 2021-09-03 삼성전자주식회사 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP2004357314A (ja) * 2004-06-30 2004-12-16 Hitachi Ltd 情報処理装置、icカード
JP2006019872A (ja) * 2004-06-30 2006-01-19 Sony Corp 暗号処理装置
JP2008099204A (ja) * 2006-10-16 2008-04-24 Toshiba Corp 論理回路
JP2008118566A (ja) * 2006-11-07 2008-05-22 Toshiba Corp 暗号処理回路及び暗号処理方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
JP3351305B2 (ja) * 1997-08-07 2002-11-25 日本電気株式会社 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
US6931127B2 (en) * 2000-05-31 2005-08-16 Hynix Semiconductor Inc. Encryption device using data encryption standard algorithm
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和系统
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US20030086564A1 (en) * 2001-09-05 2003-05-08 Kuhlman Douglas A. Method and apparatus for cipher encryption and decryption using an s-box
US7194633B2 (en) * 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
KR100423811B1 (ko) 2001-12-12 2004-03-22 한국전자통신연구원 카스미 암호화 알고리즘을 응용한 암호화 장치
US8582774B2 (en) * 2002-03-07 2013-11-12 Gemalto Sa Method for making safe an electronic cryptography assembly with a secret key
US7221756B2 (en) * 2002-03-28 2007-05-22 Lucent Technologies Inc. Constructions of variable input length cryptographic primitives for high efficiency and high security
GB0211812D0 (en) * 2002-05-23 2002-07-03 Koninkl Philips Electronics Nv S-box encryption in block cipher implementations
KR100456599B1 (ko) * 2002-11-12 2004-11-09 삼성전자주식회사 병렬 디이에스 구조를 갖는 암호 장치
JP3819872B2 (ja) * 2003-05-23 2006-09-13 株式会社東芝 論理演算装置
JP2008524901A (ja) * 2004-12-20 2008-07-10 エヌエックスピー ビー ヴィ データ処理装置及びその動作方法
DE602005002349T2 (de) * 2005-05-10 2008-01-17 Research In Motion Ltd., Waterloo Schlüsselmaskierung für kryptographische Prozesse
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
JP2007251390A (ja) 2006-03-14 2007-09-27 Sony Corp 半導体集積回路
BRPI0714242A2 (pt) * 2006-07-12 2013-01-29 Koninkl Philips Electronics Nv sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
JP4453697B2 (ja) * 2006-12-15 2010-04-21 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置
GB2453367A (en) * 2007-10-04 2009-04-08 Univ Newcastle Cryptographic processing using isomorphic mappings of Galois fields
US20110110519A1 (en) * 2008-01-09 2011-05-12 Tomoyasu Suzaki Data transmission device, data reception device, methods thereof, recording medium, and data communication system therefor
US20100329450A1 (en) * 2009-06-30 2010-12-30 Sun Microsystems, Inc. Instructions for performing data encryption standard (des) computations using general-purpose registers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP2004357314A (ja) * 2004-06-30 2004-12-16 Hitachi Ltd 情報処理装置、icカード
JP2006019872A (ja) * 2004-06-30 2006-01-19 Sony Corp 暗号処理装置
JP2008099204A (ja) * 2006-10-16 2008-04-24 Toshiba Corp 論理回路
JP2008118566A (ja) * 2006-11-07 2008-05-22 Toshiba Corp 暗号処理回路及び暗号処理方法

Also Published As

Publication number Publication date
EP2190143A8 (en) 2010-10-06
CN101739889B (zh) 2012-04-25
EP2190143A1 (en) 2010-05-26
US20100153744A1 (en) 2010-06-17
US8370642B2 (en) 2013-02-05
JP2010124276A (ja) 2010-06-03
CN101739889A (zh) 2010-06-16

Similar Documents

Publication Publication Date Title
JP4687775B2 (ja) 暗号処理装置
JP4453697B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP5458611B2 (ja) 暗号処理装置
CN100583739C (zh) 加密装置、加密方法及其存储介质
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US9325494B2 (en) Method for generating a bit vector
JP2008131108A (ja) 共通鍵暗号のための暗号化装置
CN112422272B (zh) 一种防功耗攻击的aes加密方法及电路
US20120093308A1 (en) Apparatus and method for generating random data
CN104838617A (zh) 整合安全装置及整合安全装置中使用的信号处理方法
JP4589327B2 (ja) 電子素子及びデータ処理方法
JP4935229B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP2007174024A (ja) 暗号処理装置
JP2005031471A (ja) 暗号処理装置、および暗号処理方法
JP2006054568A (ja) 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム
CN103618595B (zh) 一种抗功耗分析的密码算法代换电路
KR20170108595A (ko) 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법
KR100861841B1 (ko) 전자 소자 및 데이터 처리 방법
JP4849140B2 (ja) データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
Savitha et al. Implementation of AES algorithm to overt fake keys against counter attacks
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
Chhabra et al. Towards the enhancement of AES IP security using hardware obfuscation technique: A practical approach for secure data transmission in IoT
JP2011002790A (ja) 暗号処理装置
JP2006081059A (ja) 暗号回路および集積回路
Jithendra et al. Hardware efficient parallel substitution box for block ciphers with static and dynamic properties

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

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: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110131

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees