JP4765609B2 - Cryptographic processing device - Google Patents
Cryptographic processing device Download PDFInfo
- Publication number
- JP4765609B2 JP4765609B2 JP2005365871A JP2005365871A JP4765609B2 JP 4765609 B2 JP4765609 B2 JP 4765609B2 JP 2005365871 A JP2005365871 A JP 2005365871A JP 2005365871 A JP2005365871 A JP 2005365871A JP 4765609 B2 JP4765609 B2 JP 4765609B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- round
- master
- cryptographic processing
- slave
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Description
本発明は、暗号処理装置に関する。さらに詳細には、暗号解析処理、攻撃処理として知られる電力解析に対する耐性を向上させた暗号処理装置に関する。 The present invention relates to a cryptographic processing apparatus. More specifically, the present invention relates to a cryptographic processing apparatus having improved resistance to power analysis known as cryptographic analysis processing and attack processing.
昨今、ICカード、ネットワーク通信、電子商取引などの発展に伴い、ICカードを利用したデータ送受信やネットワークを介した通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。 In recent years, with the development of IC cards, network communication, electronic commerce, and the like, ensuring data transmission and reception using IC cards and communication via networks have become important issues. One method of ensuring security is encryption technology, and currently, communication using various encryption methods is actually performed.
例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。 For example, an encryption processing module is embedded in a small device such as an IC card, and data is transmitted / received between the IC card and a reader / writer as a data reading / writing device, and authentication processing or encryption / decryption of transmitted / received data is performed. The system to do is put into practical use.
ICカードでは、例えばリーダライタやホストコンピュータとデータのやり取りを行なう時、その過程でICカードに格納されている秘密情報が漏れても問題を発生させないために、送受信データは暗号化される。 In an IC card, for example, when data is exchanged with a reader / writer or a host computer, transmission / reception data is encrypted so that no problem occurs even if secret information stored in the IC card leaks in the process.
この暗号化方法として多く用いられている方式の1つとしてDES(Data Encryption Standard)がある。DESは、代表的な共通鍵暗号方式のアルゴリズムであり、例えばデータ送受信者としてのICカードとホストコンピュータが同じ鍵を所有し、データの送信側はデータをその鍵で暗号化して送信し、データの受信者は同じ鍵で復号化してメッセージを取り出す。 One of the methods often used as this encryption method is DES (Data Encryption Standard). DES is a typical common key encryption algorithm. For example, an IC card as a data sender and a host computer have the same key, and the data transmission side encrypts the data with the key and transmits the data. Recipients decrypt the message with the same key and retrieve the message.
通信の過程で悪意の第三者が盗聴しても、鍵を有していない限り復号化してメッセージを取り出すのは困難である。また、暗号化・復号化の時に使う鍵は、ICカード内のEEPROM等の不揮発性メモリに格納され、暗号化・復号化時にはCPUを介さないで直接ICカード内の暗号エンジンに転送される様な制御により、ICカードの所有者やICカードの開発エンジニアすら鍵データを取り出す事が不可能な構成を採ってセキュリティを保持している。 Even if a malicious third party eavesdrops in the course of communication, it is difficult to decrypt and extract a message unless it has a key. In addition, the key used for encryption / decryption is stored in a non-volatile memory such as EEPROM in the IC card, and is directly transferred to the encryption engine in the IC card without going through the CPU during encryption / decryption. Under such control, security is maintained by adopting a configuration in which even key card owners and IC card development engineers cannot extract key data.
しかし、このような共通鍵暗号処理においては、暗号解析による鍵の漏洩が問題となっている。代表的な鍵解析手法として、電力差分解析(DPA:Differential Power Analysis)がある。暗号処理回路を内蔵したデバイスの消費電流は一般に演算内容と演算に用いられている秘密情報に依存して変動する。しかしこれらの内容に依存した消費電流の変化は小さく、測定誤差やノイズなどから見分けることは一般に困難と考えられていた。 However, in such a common key encryption process, there is a problem of key leakage due to cryptographic analysis. As a typical key analysis method, there is a power difference analysis (DPA: Differential Power Analysis). The current consumption of a device incorporating a cryptographic processing circuit generally varies depending on the calculation contents and secret information used for the calculation. However, changes in current consumption depending on these contents are small, and it was generally considered difficult to distinguish from measurement errors and noise.
しかし、P.Kocherらは大量の消費電流波形を取得して、鍵を推定してそれらを統計処理する事により鍵情報を取り出す方法を提案した。これがDPA(電力差分解析)と呼ばれる手法である。 However, P.I. Kocher et al. Proposed a method of extracting key information by acquiring a large amount of current consumption waveforms, estimating keys, and statistically processing them. This is a technique called DPA (power difference analysis).
このDPA攻撃では、異なる1000個程度の平文パターンを用いて暗号化演算を行なって各パターンにおける消費電流波形を測定する。そして、推定した仮の鍵を設定し、DES暗号処理部を構成する非線形変換部としてのSボックスの出力値に基づいてその消費電流波形を統計処理することにより実際に適用されている鍵を解析するものである。 In this DPA attack, an encryption operation is performed using about 1000 different plaintext patterns, and the current consumption waveform in each pattern is measured. Then, the estimated temporary key is set, and the actual applied key is analyzed by statistically processing the current consumption waveform based on the output value of the S box as the non-linear conversion unit constituting the DES encryption processing unit. To do.
ただし、DES暗号処理部を構成する非線形変換部としてのSボックスをハードウェア論理回路の構成とした場合、Sボックスの出力値の変動を直接計測することは困難となる。この場合、Sボックスからの出力値を格納するレジスタに対するデータ格納時の変化ビットの情報を消費電流波形から推測して統計処理を行い鍵の解析を行なう。 However, when the S box as the nonlinear conversion unit constituting the DES encryption processing unit is configured as a hardware logic circuit, it is difficult to directly measure the fluctuation of the output value of the S box. In this case, the change bit information at the time of data storage for the register for storing the output value from the S box is estimated from the consumption current waveform and statistical processing is performed to analyze the key.
一般的なDES演算回路の構成例について図を参照して説明する。DES暗号処理は、F関数と呼ばれる変換関数などを適用した単純な演算の繰り返しにより、平文を暗号文に変換する構造を持つ。図1にDES暗号処理の基本構成を示す。DES暗号処理構成は、入力データの変換を実行するラウンド関数部110と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部120とによって構成される。
A configuration example of a general DES arithmetic circuit will be described with reference to the drawings. The DES encryption process has a structure for converting plaintext into ciphertext by repeating simple operations to which a conversion function called an F function is applied. FIG. 1 shows a basic configuration of DES encryption processing. The DES encryption processing configuration includes a
ラウンド関数部110において、平文(64ビット)は、まず、初期置換部111において、置換後にL,R各32ビットに分割され、分割されたL,R32ビットが、第1段ラウンド関数部112に入力され、鍵スケジュール部120の第1段鍵生成部122から入力する鍵K(1)に基づいて変換処理がなされる。変換処理結果は、次段の第2段ラウンド関数部113に入力される。
In the
鍵スケジュール部120においては、まず、マスタ鍵(秘密鍵)置換部121により入力マスタ鍵(秘密鍵:64ビット)のパリティ8ビットが取り除かれ、残り56ビットの入れ替え処理が実行されて第1段ラウンド鍵生成部122に入力される。第1段ラウンド鍵生成部122では、入力ビット列のシフト処理および8ビットのデータ破棄等が実行され、48ビットのラウンド鍵K(1)を生成し、生成したラウンド鍵K(1)をラウンド関数部110の第1段ラウンド関数部112に出力する。第1段ラウンド鍵生成部122では、シフト処理による上位ビット列(28ビット)と下位ビット列(28ビット)とを下段の第2段ラウンド鍵生成部123に出力する。
In the
ラウンド関数部は、16段のラウンド関数部を有し、それぞれ前段のラウンド関数部の出力を入力として鍵スケジュール部120から入力する鍵を適用した変換処理を実行し、変換結果を後段のラウンド関数部に出力する。16段のラウンド関数部で変換された出力が逆置換部114に入力され、初期置換部111の逆置換処理が実行されて、暗号文として出力される。
The round function section has 16 round function sections, each of which executes the conversion process using the key input from the
16段のラウンド関数部は、ハードウェア的には1つ設定し、この1つのラウンド関数部を繰り返し使用する構成とするのが一般的である。すなわち、上段の出力をレジスタに格納し、レジスタ格納値を次段のラウンド関数部の入力として利用する構成である。ラウンド関数部の構成例を図2に示す。 In general, one 16-round function unit is set in terms of hardware, and this single round function unit is used repeatedly. In other words, the output of the upper stage is stored in a register, and the value stored in the register is used as the input of the round function section of the next stage. A configuration example of the round function section is shown in FIG.
図2に示すラウンド関数部150の構成中、スイッチ(SW1)は、DES演算開始時には"a"側に接続されている。DES演算が開始されると、平文を初期置換部[IP(Initial Permutation)]141において置換後、2つの32bitデータL0,R0に分けられ、制御クロックに基づく制御タイミングとしてのラッチパルス(Latch Pulse)の立ち上がりでL/Rレジスタ151,152へ取り込まれると同時にSW1を"b"側に切り替える。
In the configuration of the
このデータ取り込みによってL/Rレジスタ151,152の出力がL0,R0に設定され、その後、これらのレジスタ格納値に基づいて、F関数部153と排他論理和演算(XOR)部154を適用したラウンド(Round)演算が実行され、その結果が再度、スイッチ(SW1)を介してL/Rレジスタ151,152に入力される。
By this data capture, the outputs of the L /
さらに、次のクロックサイクルのラッチパルスの立ち上がりでL/Rレジスタ151,152へ取り込まれ、その出力が更新されることにより次のラウンドの演算が開始される。この動作を16クロックサイクル繰り返した後、演算結果を逆置換部(IP−1)142へ出力して逆置換変換を実行し、暗号文として出力する。
Further, the next round operation is started by taking in the L /
F関数部153の詳細構成を図3に示す。F関数は、非線形処理を実行する複数のSボックス(Sbox)を有する。ラウンド関数部の前段からの入力値、すなわち、R(n−1)は拡張部171によって48ビットに拡大され、さらに鍵スケジュール部から入力する鍵(48ビット)と排他論理和が実行され、その出力が6ビットずつ非線形変換処理を実行する複数のSボックス181−1〜8に入力される。各Sボックスでは、例えば変換テーブルを適用した6ビットから4ビットへの非線形変換処理が実行される。
A detailed configuration of the
Sボックス181−1〜8からの出力ビット4×8=32ビットは、置換部172に入力されて、ビット位置の入れ替え処理がなされ、F関数出力32ビットを生成して出力する。
The
図2に示すラウンド関数部150のL/Rレジスタ151,152では、各ラウンド毎にデータの書き換えが行われることになる。ラウンド関数部150のL/Rレジスタ151,152には、それぞれ32ビットデータが格納される。すなわち、32ビットのレジスタを2つ用いてデータ保持が行なわれる。
In the L /
一般的にレジスタが変化する時の消費電流は大きい。このレジスタに対するデータ書き換え時の消費電流波形を取得すると、取得電流にはレジスタのデータ更新時の変化ビットと相関のある電流成分が含まれることになる。例えば最初のラウンド演算(Round1)を実行した後の演算結果[Round1]は、以下のように示すことができる。
[Round1]
[Round 1]
上記式において、
L0:ラウンド1開始前のレジスタL151の格納値
R0:ラウンド1開始前のレジスタR152の格納値
L1:ラウンド1終了後のレジスタL151の格納値
R1:ラウンド1終了後のレジスタR152の格納値
K1:ラウンド1に適用されるラウンド鍵
F(R0,K1):図2に示すF関数部153の関数であり、入力値R0とラウンド鍵K1に基づく関数
である。
In the above formula,
L 0 : Stored value of register L151 before the start of round 1 R 0 : Stored value of register R152 before the start of round 1 L 1 : Stored value of register L151 after the end of round 1 R 1 : Stored value of register R152 after the end of
すなわち、ラウンド1終了後のレジスタL151の格納値であるL1は、ラウンド1開始前のレジスタR152の格納値R0となり、ラウンド1終了後のレジスタR152の格納値であるR1は、入力値R0とラウンド鍵K1に基づくF関数部153での処理結果と、ラウンド1開始前のレジスタL151の格納値L0との排他論理和演算(XOR)結果となる。
That, L 1 is a value stored in the first round after the end of the register L151 is R 1 is a stored value R 0, and the
ラウンド1の処理前のL/Rレジスタ151,152のデータは各々"L0","R0"であるため、次のクロックサイクルでのデータ格納時の変化ビットは、ラウンド1の処理後のL/Rレジスタ151,152のデータ"L1","R1"との排他論理和演算(XOR)を行なうことによって求められる。すなわち、下式よって示される。
上記式(式3)、(式4)が、ラウンド1の処理結果の格納時におけるL/Rレジスタ151,152の変化ビットを示す式となる。
The above expressions (Expression 3) and (Expression 4) are expressions indicating change bits of the L / R registers 151 and 152 when the processing result of
DPA攻撃では、1000個程度の平文を適用してDES演算を実行してその消費電流波形を取得し、上記(式3)において、ラウンド鍵"K1"のうち8個のSボックス各々に対応する6bitずつの鍵を仮定して、それに基づいて消費電流波形を統計処理する。この処理によって、推定した鍵が正しい場合にピーク電流が観察される。この処理を8個のSボックス全てに対して行なうと48bitの鍵を求める事ができ、残り8bitは28=256回の全数攻撃で求める事ができる。 In the DPA attack, about 1000 plaintexts are applied to execute a DES operation to obtain the current consumption waveform, and in the above (Equation 3), each of the eight S boxes of the round key “K 1 ” is supported. A 6-bit key is assumed, and the consumption current waveform is statistically processed based on the key. With this process, a peak current is observed when the estimated key is correct. If this process is performed for all 8 S boxes, a 48-bit key can be obtained, and the remaining 8 bits can be obtained by 2 8 = 256 exhaustive attacks.
この統計処理による鍵解析処理の概要について説明する。まず、着目したSボックスの構成要素(S1〜S8)各々に対応する6bit鍵を推定してシミュレーションを行なって、その出力の着目ノードの値が"0"か"1"かに応じて対応する平文の消費電流波形をグループ分けし、各グループの消費電流波形の平均電流の差分を取って、ピーク波形の発生の有無で推定した6bit鍵の妥当性を判断する。さらに、各グループの消費電流の平均を取得し、DES演算回路に入力されるクロック信号でタイミングを合わせて消費電流波形の加算を行なう。 An outline of the key analysis process based on this statistical process will be described. First, a 6-bit key corresponding to each component (S1 to S8) of the noticed S box is estimated and a simulation is performed, and the value of the noticed node of the output corresponds to “0” or “1”. The plain current consumption waveform is divided into groups, the difference between the average currents of the consumption current waveforms of each group is taken, and the validity of the 6-bit key estimated based on the occurrence of the peak waveform is determined. Furthermore, the average of the consumption current of each group is acquired, and the consumption current waveform is added at the same timing with the clock signal input to the DES arithmetic circuit.
推定した6bit鍵が正しい場合、一方のグループでのみ着目しているノードの変化に伴う微小電流が流れ、これが積算され、2つのグループの差分を取れば、積算された微小電流がピーク波形となって現れる。 If the estimated 6-bit key is correct, a minute current accompanying the change in the node of interest only in one group flows, and this is integrated. If the difference between the two groups is taken, the accumulated minute current becomes a peak waveform. Appear.
このようなピーク電流の発生を防止するためには、実際にDES演算回路でラウンド演算を行なうクロック信号を、DES演算回路に入力されるクロック信号と非同期にしてしまう方法が有効である。このような設定とすれば、着目している微小電流が同じタイミングで積算されないため、ピーク電流は発生しない。具体的には、DES演算回路に供給されるクロックより高い周波数の発振器を搭載して、そのクロックでDES演算回路に供給されるクロックをリタイミングしたクロックでDES演算を実行することによりピーク電流の発生を防止することが可能となる。 In order to prevent the occurrence of such a peak current, it is effective to make the clock signal that actually performs the round operation in the DES operation circuit asynchronous with the clock signal input to the DES operation circuit. With such a setting, since the minute current of interest is not integrated at the same timing, no peak current is generated. Specifically, an oscillator having a frequency higher than that of the clock supplied to the DES arithmetic circuit is mounted, and the DES arithmetic is executed with a clock obtained by retiming the clock supplied to the DES arithmetic circuit with the clock. Occurrence can be prevented.
しかし、DES演算のラウンド演算が実行されるとき、ラウンド演算開始直後に演算回路の動作に伴なう大きな電流が流れるがその後流れなくなる。これをラウンド演算毎に繰り返す。従って、平文毎に消費電流波形の微分解析を行なって、消費電流波形の立ち上がりの急峻なタイミングで加算処理を行なえば、着目している微小電流をほぼ同じタイミングで積算することが可能となり、統計処理が可能となってしまう可能性がある。 However, when the round operation of the DES operation is executed, a large current accompanying the operation of the arithmetic circuit flows immediately after the start of the round operation, but does not flow thereafter. This is repeated for each round operation. Therefore, if the differential analysis of the current consumption waveform is performed for each plaintext and the addition process is performed at the steep timing of the rise of the current consumption waveform, the minute current of interest can be accumulated at almost the same timing. Processing may be possible.
上述したクロック信号の制御に加えて、例えば、乱数で制御されるノイズ電流を重畳する事によって消費電流波形の微分解析を困難にする対策についても提案されている。しかし、このような対策が施されていたとしても、局所的な領域での変化を取得可能なDEMA(Differential Electro Magnetic Analysis)攻撃を施せば、乱数で制御されるノイズ電流成分の影響を受けない信号の取得が可能となり、結果として鍵の取得は可能となってしまう。 In addition to the above-described control of the clock signal, for example, a countermeasure that makes it difficult to perform differential analysis of the consumption current waveform by superimposing a noise current controlled by a random number has been proposed. However, even if such countermeasures are taken, if a DEMA (Differential Electro Magnetic Analysis) attack that can acquire changes in a local region is applied, it is not affected by noise current components controlled by random numbers. The signal can be acquired, and as a result, the key can be acquired.
演算結果の格納を、DES演算器に供給されるクロックと相関のないクロックでビット毎に行なえば、格納電流の発生タイミングもずれるため統計処理は困難になる。例えば、DES演算を構成する16段のラウンド演算中のラウンド1に適用するラウンド鍵"K1"のSボックスの構成要素"S1"の4ビットの演算結果がランダムなタイミングでレジスタに格納される場合、各ビットの格納に伴なう電流もランダムなタイミングで発生し、正しい推定鍵に基づく統計処理が行なわれても、着目したビットでの微小な格納電流は積算されない。このため、DPA攻撃は失敗する。
If the calculation result is stored bit by bit with a clock that has no correlation with the clock supplied to the DES calculator, the generation timing of the storage current is shifted and statistical processing becomes difficult. For example, when a 4-bit operation result of the component “S1” of the S box of the round key “K1” applied to
この方法は、演算時間の要求が厳しくない場合に有効な方法である。しかし、この場合、"S1"の4ビットの演算結果で最初に格納されたビットによってレジスタの値が変化すると、ラウンド関数ではその変化した値に基づく演算が実行されるため、最初に格納するビットと最後に格納するビットの時間差がラウンド関数での演算時間より長いと、最後に格納するビットの値は変化して誤った値が格納されてしまい、正常なDES演算が行なわれなくなるという問題がある。 This method is effective when the calculation time requirement is not strict. However, in this case, if the register value changes according to the first stored bit in the 4-bit operation result of “S1”, the round function executes the operation based on the changed value, so the first stored bit If the time difference between the last stored bit is longer than the operation time of the round function, the last stored bit value is changed and an incorrect value is stored, so that a normal DES operation cannot be performed. is there.
本発明は、上記問題点に鑑みてなされたものであり、処理アルゴリズムを複雑化させることなく、また処理回路を非常に大きくすることなく暗号処理シーケンスの持つ規則的な処理に伴う消費電流波形の統計処理に基づく電力解析による暗号解析の困難性を高めることを可能とした暗号処理装置を提供することを目的とする。 The present invention has been made in view of the above-described problems, and does not complicate the processing algorithm, and does not make the processing circuit very large, so that the current consumption waveform associated with the regular processing of the cryptographic processing sequence can be reduced. An object of the present invention is to provide a cryptographic processing device that can increase the difficulty of cryptographic analysis by power analysis based on statistical processing.
具体的には、本発明は、DES暗号処理において実行される16段のラウンド演算の結果を格納するレジスタに対するデータ格納タイミングの制御により、DPA攻撃に対する耐性を高めた暗号処理装置を提供するものであり、演算結果のレジスタ格納タイミングをビット毎にランダムに制御する事によってDPA攻撃のための統計処理を困難にし、なおかつ、正しい演算結果を出力することを可能とした暗号処理装置を提供することを目的とする。この目的を実現するために、例えば、
レジスタのマスタとスレーブを別のクロックで制御する、
Sボックスの個々の構成要素"S1"〜"S8"各々の4ビット出力のレジスタへの格納を複数の異なるタイミングのクロックで行なう、
このような処理によって、DPA攻撃に対する耐性を高めた暗号処理装置を提供する。
Specifically, the present invention provides a cryptographic processing apparatus that has improved resistance to DPA attacks by controlling data storage timing for a register that stores the result of a 16-stage round operation executed in DES cryptographic processing. There is provided a cryptographic processing device that makes it difficult to perform statistical processing for DPA attacks by randomly controlling the register storage timing of operation results for each bit, and that can output correct operation results. Objective. To achieve this goal, for example,
Control register master and slave with different clocks,
Each of the individual components “S1” to “S8” of the S box is stored in a 4-bit output register with a plurality of different timing clocks.
By such processing, an encryption processing apparatus having improved resistance to DPA attacks is provided.
本発明の第1の側面は、
複数回のラウンド演算の繰り返し処理を含む暗号処理演算を実行する暗号処理装置であり、
ラウンド演算を実行するラウンド演算部と、
各ラウンドのラウンド演算結果を格納するレジスタと、
前記レジスタに対するデータ格納タイミングの制御を行なうクロック信号を生成し、前記レジスタに出力するクロック信号生成部とを有し、
前記クロック信号生成部は、
異なるタイミングを持つ複数の異なるクロック信号を生成し、該生成した複数の異なるクロック信号を、前記レジスタを構成する複数のビットデータ格納レジスタ回路に選択的に入力する構成を有することを特徴とする暗号処理装置にある。
The first aspect of the present invention is:
A cryptographic processing device that performs cryptographic processing computation including repetition processing of multiple round computations,
A round calculation unit for performing round calculation;
A register for storing the round operation result of each round;
A clock signal generating section for generating a clock signal for controlling data storage timing for the register, and outputting to the register;
The clock signal generator is
A cryptography having a configuration in which a plurality of different clock signals having different timings are generated, and the generated plurality of different clock signals are selectively input to a plurality of bit data storage register circuits constituting the register. In the processing unit.
さらに、本発明の暗号処理装置の一実施態様において、前記レジスタは、マスタとスレーブの2つのラッチを有する構成であり、前記クロック信号生成部は、前記レジスタのマスタとスレーブの制御用クロックの組として、
(CLK1−1,CLK2−1)〜(CLK1−n,CLK2−n)
のn個のクロックの組を生成し、前記レジスタを構成する複数のビットデータ格納レジスタ回路のマスタおよびスレーブの制御用クロックとして選択的に入力する構成であることを特徴とする。
Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the register is configured to have two latches, a master and a slave, and the clock signal generation unit is a set of control clocks for the master and slave of the register. As
(CLK1-1, CLK2-1) to (CLK1-n, CLK2-n)
The n clock sets are generated and selectively input as master and slave control clocks for a plurality of bit data storage register circuits constituting the register.
さらに、本発明の暗号処理装置の一実施態様において、前記クロック信号生成部は、前記レジスタのマスタとスレーブの制御用クロックの組として、前記マスタから前記スレーブに対するデータ入力タイミングが前記マスタにおけるデータ保持開始タイミングより遅延させる設定としたクロックの組を生成し前記レジスタのマスタおよびスレーブに入力する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the clock signal generation unit is configured to hold a data input timing from the master to the slave as a set of control clocks for the master and slave of the register. A clock set set to be delayed from the start timing is generated and input to the master and slave of the register.
さらに、本発明の暗号処理装置の一実施態様において、前記クロック信号生成部は、前記レジスタのマスタとスレーブの制御用クロックの組として、前記ラウンド演算部に含まれるSボックスの非線形変換部としての構成要素(S1〜S8)各々の出力4ビットに対応する4種類のクロックの組を生成して、前記レジスタを構成する複数のビットデータ格納レジスタ回路のマスタおよびスレーブに入力する構成であることを特徴とする。
Further, in one embodiment of the cryptographic processing device of the present invention, the clock signal generation unit is a set of control clocks for the master and slave of the register, as a non-linear conversion unit for the S box included in the round operation unit. It is configured to generate a set of four types of clocks corresponding to the
さらに、本発明の暗号処理装置の一実施態様において、前記クロック信号生成部は、暗号処理装置において適用するシステムクロック、および発振回路の出力に基づいて、複数の異なるタイミングのクロック信号を生成する構成を有することを特徴とする。 Furthermore, in one embodiment of the cryptographic processing device of the present invention, the clock signal generation unit generates a plurality of clock signals having different timings based on a system clock applied in the cryptographic processing device and an output of the oscillation circuit. It is characterized by having.
さらに、本発明の暗号処理装置の一実施態様において、前記ラウンド演算部は、非線形変換部としてのSボックスを有し、前記レジスタは、前記Sボックスによる非線形変換処理を含むラウンド演算処理の結果データを格納する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the round operation unit has an S box as a non-linear conversion unit, and the register has result data of round operation processing including non-linear conversion processing by the S box. It is the structure which stores.
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、DES(Data Encryption Standard)アルゴリズムに従った暗号処理演算を実行する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the cryptographic processing apparatus is configured to execute cryptographic processing calculation in accordance with a DES (Data Encryption Standard) algorithm.
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。 Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
本発明の構成によれば、処理アルゴリズムを複雑化させることなく、暗号処理シーケンスの持つ規則的な処理に伴う消費電流波形の統計処理に基づく電力解析による暗号解析の困難性を高めた暗号処理装置が実現される。 According to the configuration of the present invention, a cryptographic processing device that increases the difficulty of cryptographic analysis by power analysis based on statistical processing of current consumption waveforms accompanying regular processing of cryptographic processing sequences without complicating the processing algorithm Is realized.
本発明の構成では、例えばDESなど複数段のラウンド演算の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置において、ラウンド演算の結果を格納するレジスタに対するデータ格納タイミングの制御を行なうクロック信号を、レジスタを構成するマスタとスレーブで別なクロック(CLK1,CLK2)とし、さらに、例えば発振器の出力でリタイミングして複数のタイミングを持つ複数のクロック信号の組(CLK1−1,CLK1−2)〜(CLK2−n,CLK2−n)を生成してジスタ構成回路としてのマスタおよびスレーブに選択的に供給して、異なるタイミングでのビットデータ取り込みを実現した。本構成により、消費電流の統計処理によるDPA攻撃に対する耐性の高い暗号処理装置が実現される。 In the configuration of the present invention, for example, in a cryptographic processing apparatus that executes a cryptographic algorithm including a repetition process of a plurality of round operations such as DES, a clock signal for controlling the data storage timing for a register that stores the result of the round operation is The master and slaves constituting the clock are different clocks (CLK1, CLK2), and further, for example, a plurality of clock signal groups (CLK1-1, CLK1-2) to (timed) by retiming with the output of the oscillator. CLK2-n, CLK2-n) are generated and selectively supplied to a master and a slave as a register configuration circuit, thereby realizing bit data capture at different timings. With this configuration, it is possible to realize a cryptographic processing apparatus that is highly resistant to DPA attacks by statistical processing of current consumption.
以下、本発明の暗号処理装置の詳細について説明する。本発明は、例えばDES(Data Encryption Standard)アルゴリズムに代表される複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置であり、暗号処理回路規模の増大を抑えつつ、電力差分解析(DPA)耐性を持った回路構成を提供することを目的としてなされたものである。 Details of the cryptographic processing apparatus of the present invention will be described below. The present invention is a cryptographic processing apparatus that executes a cryptographic algorithm including a repetition process of a multi-stage round function typified by, for example, a DES (Data Encryption Standard) algorithm. The object is to provide a circuit configuration having (DPA) tolerance.
先に、図1〜3を参照して説明したように、DESの演算処理を実行する回路は、複数段(16段)のラウンド関数を繰り返し実行させる回路を含む。通常、DESの演算フローの実行回路を設計する際には、16段のラウンド関数を実行する関数実行回路を1個作り、それを16回、繰り返し動作させる構成とする。 As described above with reference to FIGS. 1 to 3, the circuit that executes the DES arithmetic processing includes a circuit that repeatedly executes a multi-stage (16-stage) round function. Normally, when designing an execution circuit for a DES calculation flow, one function execution circuit that executes a 16-stage round function is formed and repeatedly operated 16 times.
従来の一般的なラウンド関数部は、図2を参照して説明した構成を有し、前述したように、DES暗号処理において実行される16段のラウンド演算の演算結果は2つの32ビットレジスタ(図2に示すLレジスタ151,Rレジスタ152)に格納される。各レジスタは、32ビットを構成する1ビットデータを保持する回路、具体的には、例えばラッチ回路によって構成されるD型フリップフロップを有し、32個のD型フリップフロップに32ビットを保持する構成とされている。 The conventional general round function unit has the configuration described with reference to FIG. 2, and as described above, the calculation result of the 16-stage round operation executed in the DES encryption process is two 32-bit registers ( They are stored in the L register 151 and the R register 152) shown in FIG. Each register has a circuit that holds 1-bit data constituting 32 bits, specifically, a D-type flip-flop constituted by, for example, a latch circuit, and holds 32 bits in 32 D-type flip-flops. It is configured.
従来のレジスタに適用されている一般的な1ビットデータ保持用D型フリップフロップからなるレジスタ回路構成を図4に示す。図4(a)に示す回路は、従来のレジスタに適用されている一般的な1ビットデータ保持用のマスタスレーブ型D型フリップフロップからなるレジスタ回路構成であり、ラッチ1(マスタ)とラッチ2(スレーブ)を有する。
FIG. 4 shows a register circuit configuration including a general 1-bit data holding D-type flip-flop applied to a conventional register. The circuit shown in FIG. 4A has a register circuit configuration including a general master-slave D-type flip-flop for holding 1-bit data, which is applied to a conventional register, and includes a latch 1 (master) and a
図4(b)が図4(a)に示すレジスタ回路に入力するクロック信号を生成するクロック信号生成回路、図4(c)が図4(a)に示すレジスタ回路に対応する回路記号(D型フリップフロップ)を示している。図4(a)に示すレジスタ回路の動作タイミング図を図5に示す。 4B is a clock signal generation circuit that generates a clock signal to be input to the register circuit shown in FIG. 4A, and FIG. 4C is a circuit symbol (D) corresponding to the register circuit shown in FIG. Type flip-flop). FIG. 5 shows an operation timing chart of the register circuit shown in FIG.
図4、図5を参照して、図4(a)に示すレジスタ回路の動作を説明する。入力クロック"CLK_in"がLowの期間、クロック信号"ck"がLow,"xck"がHighとなっているため、図4(a)に示すレジスタ回路中のトランスファーゲート"TRN1","TRN4"がON、"TRN2","TRN3"がOFFとされる。このとき、レジスタ入力値"D_in"の値がラッチ1に入力されると共にラッチ2には直前に取り込まれた値が保持されて出力されている。これは、図5に示す時刻t1までの状態である。
The operation of the register circuit shown in FIG. 4A will be described with reference to FIGS. Since the clock signal “ck” is Low and “xck” is High while the input clock “CLK_in” is Low, the transfer gates “TRN1” and “TRN4” in the register circuit shown in FIG. ON, “TRN2” and “TRN3” are turned OFF. At this time, the value of the register input value “D_in” is input to the
この状態で、図5に示す時刻t1において、入力クロック"CLK_in"がHighに切り替わった瞬間、"ck"がHigh,"xck"がLowに変化するため、トランスファーゲート"TRN1","TRN4"がOFFし、"TRN2","TRN3"がONするため、入力値"D_in"の値がラッチ1に保持されると共に、このラッチ1に保持された値は、ラッチ2をスルーして"Q"及び"/Q"に出力される。この時、"D_in"の値がラッチ2に保持されていた値と異なる場合、ラッチ2及びその先の負荷ノードをドライブする時に電流が流れる。すなわち、レジスタに対するデータ書き換え(1→0)または(0→1)が発生するとき電流が流れ、これがDPA攻撃で統計処理される微小電流となる。
In this state, at the time t1 shown in FIG. 5, at the moment when the input clock “CLK_in” is switched to High, “ck” is changed to High and “xck” is changed to Low, so that the transfer gates “TRN1” and “TRN4” are changed. Since it is turned OFF and "TRN2" and "TRN3" are turned ON, the value of the input value "D_in" is held in the
次に、本発明に従ったレジスタ回路構成および動作について、図6、図7を参照して説明する。本発明の暗号処理装置では、ラウンド演算の結果データのレジスタ取り込みにおいて、取り込みビットのレジスタ格納タイミングを一律とせず、タイミングを分散させて格納する処理を実行する。先に図2を参照して説明したようにDES暗号処理においては、16ラウンドのラウンド演算が繰り返し実行され、各ラウンドの演算結果データが、各ラウンドごとに32ビットずつ図2に示すLレジスタ151、Rレジスタ152に格納される。本発明の暗号処理装置では、このラウンド演算の結果データのレジスタ格納処理において、32ビットを同一タイミングで格納するのではなく、ばらばらのタイミングで格納する。例えば、4つの異なるタイミングを設定し、8ビットずつ4種類のタイミングで格納する。このタイミング制御によりレジスタに対するデータ格納時のビット変更に伴う発生電流を拡散し、DPA攻撃に対する耐性を高める。
Next, a register circuit configuration and operation according to the present invention will be described with reference to FIGS. In the cryptographic processing apparatus according to the present invention, when registering the result data of the round operation, the register storage timing of the fetch bits is not uniform, but the processing of storing the timings in a distributed manner is executed. As described above with reference to FIG. 2, in the DES encryption process, 16 round operations are repeatedly executed, and the operation result data of each round is 32 bits for each round, as shown in FIG. , And stored in the
図6(a)に示す回路は、上述した処理を実行する本発明に従ったレジスタ回路構成であり、図4(a)示したと同様の1ビットデータの格納を実行するレジスタ回路である。前述したように、DES暗号処理において実行される16段のラウンド演算の演算結果は2つの32ビットレジスタ(図2に示すLレジスタ151,Rレジスタ152)に格納される。各レジスタは、32ビットデータを保持する回路を有し、図6(a)に示す回路を32個、備えた構成となる。 The circuit shown in FIG. 6A has a register circuit configuration according to the present invention that executes the above-described processing, and is a register circuit that executes storage of 1-bit data similar to that shown in FIG. As described above, the calculation result of the 16-stage round operation executed in the DES encryption process is stored in two 32-bit registers (L register 151 and R register 152 shown in FIG. 2). Each register has a circuit for holding 32-bit data and has 32 circuits shown in FIG.
図6(a)に示すレジスタ回路は、先に図4(a)を参照して説明した回路構成と同様、マスタスレーブ型D型フリップフロップを基本構成としており、ラッチ1(マスタ)とラッチ2(スレーブ)を有する構成であるが、入力するクロック信号をマスタとスレーブで異なる設定としている。 The register circuit shown in FIG. 6A has a master-slave D-type flip-flop as a basic configuration, similar to the circuit configuration described above with reference to FIG. 4A, and includes latch 1 (master) and latch 2 (Slave), but the input clock signal is set differently for the master and slave.
図6(b)が図4(a)に示すレジスタ回路に入力するクロック信号を生成するクロック信号生成回路、図6(c)が図6(a),(b)に示すレジスタ回路に対応する回路記号を示している。図6(a)に示すレジスタ回路の動作タイミング図を図7に示す。 6B corresponds to the clock signal generation circuit that generates the clock signal to be input to the register circuit shown in FIG. 4A, and FIG. 6C corresponds to the register circuit shown in FIGS. 6A and 6B. Circuit symbols are shown. FIG. 7 shows an operation timing chart of the register circuit shown in FIG.
図6、図7を参照して、図6(a)に示すレジスタ回路の動作を説明する。上述したように、図6(a)に示すレジスタ回路は、図4を参照して説明した構成と異なり、2系統のクロック"CLK1_in","CLK2_in"を用いている。 The operation of the register circuit shown in FIG. 6A will be described with reference to FIGS. As described above, the register circuit shown in FIG. 6A uses two clocks “CLK1_in” and “CLK2_in” unlike the configuration described with reference to FIG.
クロック"CLK1_in"は、マスタ(ラッチ1)に入力され、クロック"CLK2_in"は、スレーブ(ラッチ2)に対して入力され、各ラッチ回路(ラッチ1,ラッチ2)は、それぞれのクロックによって回路制御がなされる。
The clock “CLK1_in” is input to the master (latch 1), the clock “CLK2_in” is input to the slave (latch 2), and the respective latch circuits (
2つのクロック"CLK1_in","CLK2_in"のタイミングは、図7に示すように、"CLK1_in",が先に立ち上がり、その後、所定時間遅延して"CLK2_in"が立ち上がる。立下りは、図7に示す例では、同じタイミングとしているが、同じタイミングである必要はない。 As shown in FIG. 7, the timing of the two clocks “CLK1_in” and “CLK2_in” rises first, followed by a predetermined time, and then “CLK2_in” rises. In the example shown in FIG. 7, the falling is the same timing, but it is not necessary to have the same timing.
本実施例でのクロック設定条件は、マスタ(ラッチ1)に入力するクロック"CLK1_in"の立ち上がりより、スレーブ(ラッチ2)に入力する"CLK2_in"の立ち上がりが遅いか同じタイミングであり、かつ、"CLK1_in"の立下りより"CLK2_in"の立下りが早いか同じタイミングであることである。すなわち、本発明の暗号処理装置におけるクロック信号生成部は、レジスタのマスタとスレーブの制御用クロックの組として、マスタからスレーブに対するデータ入力タイミングが前記マスタにおけるデータ保持開始タイミングより遅延させる設定としたクロックの組を生成しレジスタのマスタおよびスレーブに入力する。 The clock setting condition in this embodiment is that the rising edge of “CLK2_in” input to the slave (latch 2) is later than or the same timing as the rising edge of the clock “CLK1_in” input to the master (latch 1), and “ This means that the falling edge of “CLK2_in” is earlier than or the same as the falling edge of CLK1_in ”. That is, the clock signal generation unit in the cryptographic processing device of the present invention is a clock that is set so that the data input timing from the master to the slave is delayed from the data holding start timing in the master as a set of control clocks for the master and slave of the register. Are generated and input to the master and slave of the register.
入力クロック"CLK1_in""CLK2_in"が共にLowの期間、例えば、図7に示すt0〜t1、t3〜t4などでは、"ck1","ck2"がLow,"xck1","xck2"がHighとなるため、図6(a)に示すトランスファーゲート"TRN1","TRN4"がON、"TRN2","TRN3"がOFFとなり、入力値"D_in"の値がラッチ1に入力されると共にラッチ2には直前に取り込まれた値が保持されて出力されている状態に設定される。
In a period when both of the input clocks “CLK1_in” and “CLK2_in” are Low, for example, t0 to t1, t3 to t4, etc. shown in FIG. Therefore, the transfer gates “TRN1” and “TRN4” shown in FIG. 6A are turned on, “TRN2” and “TRN3” are turned off, and the value of the input value “D_in” is input to the
例えば、図7に示す時刻t4の前の時間がこの状態に相当し、入力値"D_in"の値[D1]がラッチ1に入力され、ラッチ1の入力値は[D1]になり、ラッチ2には直前に取り込まれた値[/D0]が保持されて出力されている状態[Q=D0]に設定される。
For example, the time before time t4 shown in FIG. 7 corresponds to this state, the value [D1] of the input value “D_in” is input to the
この状態で、入力クロック"CLK1_in"がHighに切り替わった瞬間、"ck1"がHigh,"xck1"がLowに変化するため、トランスファーゲート"TRN1"がOFF、"TRN2"がONし、入力値"D_in"の値がラッチ1に保持される。
In this state, at the moment when the input clock “CLK1_in” switches to High, “ck1” changes to High and “xck1” changes to Low, so that the transfer gate “TRN1” is turned OFF, “TRN2” is turned ON, and the input value “ The value of D_in "is held in the
例えば、図7に示す時刻t4がこの状態に相当し、入力値"D_in"の値[D1]がラッチ1に保持値として設定される。入力クロック"CLK1_in"がHighとされている期間(t4〜t6)において、ラッチ1の保持値は固定される。
For example, the time t4 shown in FIG. 7 corresponds to this state, and the value [D1] of the input value “D_in” is set in the
次に、入力クロック"CLK2_in"がHighに切り替わった瞬間、"ck2"がHigh,"xck2"がLowに変化するため、トランスファーゲート"TRN4"がOFF、"TRN3"がONし、ラッチ1に保持されている"D_in"の値がラッチ2に供給されてラッチ2の値が"D_in"に変化し、"Q","/Q"及びその負荷に出力される。
Next, at the moment when the input clock “CLK2_in” switches to High, “ck2” changes to High and “xck2” changes to Low, so that the transfer gate “TRN4” is turned OFF and “TRN3” is turned ON and held in the
例えば、図7に示す時刻t5がこの状態に相当し、ラッチ1に保持されている"D_in"の値[D1]がラッチ2に供給されてラッチ2の値が"D_in"に変化し、この保持値が、"Q","/Q"及びその負荷に出力される(Q=D1、/Q=/D1)。
For example, the time t5 shown in FIG. 7 corresponds to this state, the value [D1] of “D_in” held in the
この時、入力値"D_in"の値がラッチ2に保持されていた値と異なる場合、すなわち、格納ビット値が(0→1)または(1→0)となるときに、DPA攻撃で統計処理される微小電流が発生し、また、このタイミングでF関数の演算が開始される。
At this time, when the value of the input value “D_in” is different from the value held in the
次に、図8および図9を参照して、本発明のマスタスレーブ型フリップフロップ構成を持つレジスタ回路のマスタおよびスレーブのラッチに入力する2つの異なるタイミングパルスからなるクロック信号"CLK1","CLK2"の発生回路の構成例について説明する。図8はクロック信号生成回路であり、図9は、図8に示すクロック信号生成回路に対応するタイミングチャートを示している。 Next, referring to FIG. 8 and FIG. 9, clock signals “CLK1” and “CLK2 comprising two different timing pulses input to the master and slave latches of the register circuit having the master-slave type flip-flop configuration of the present invention. An example of the configuration of the generation circuit will be described. FIG. 8 shows a clock signal generation circuit, and FIG. 9 shows a timing chart corresponding to the clock signal generation circuit shown in FIG.
この例では、DES暗号処理装置に供給されるシステムクロック"SYS_CLK"に対して、DES内部のクロックの周波数は半分程度になっている。この回路に供給される他の発振信号"OSC"は、図9に示すように内部発振回路から供給される"SYS_CLK"と非同期で、周波数が数倍のクロック信号である。 In this example, the frequency of the clock in the DES is about half that of the system clock “SYS_CLK” supplied to the DES cryptographic processing apparatus. The other oscillation signal “OSC” supplied to this circuit is a clock signal which is asynchronous with “SYS_CLK” supplied from the internal oscillation circuit and has a frequency several times as shown in FIG.
この発振信号"OSC"によって、"SYS_CLK"は、第1D型フリップフロップ(DFF1)でタイミングの変更処理がなされ、リタイミングされたクロック信号"CLK"を出力する。図9に示すクロック(CLK)である。 With this oscillation signal “OSC”, “SYS_CLK” is subjected to timing change processing by the first D-type flip-flop (DFF1), and outputs a retimed clock signal “CLK”. This is the clock (CLK) shown in FIG.
さらに、分周回路としての第2D型フリップフロップ(DFF2)において、2分周された信号が生成される。この分周回路(DFF2)の"/Q"出力が図9に示す
"CLK1"となり、分周回路の"Q"出力(図9に示すDFF2:Q)とリタイミングしたクロック信号"CLK"のNOR信号が図9に示す"CLK2"となる。
Further, a signal divided by two is generated in a second D-type flip-flop (DFF2) as a frequency dividing circuit. The "/ Q" output of this frequency divider (DFF2) is shown in FIG.
“NO” of the clock signal “CLK” re-timed with the “Q” output (DFF2: Q shown in FIG. 9) of the frequency divider circuit becomes “CLK2” shown in FIG.
図9に示すように、これらの2つのクロック信号(CLK1,CLK2)は、先に図7を参照して説明した本実施例でのクロック設定条件を満足するクロック信号となる。すなわち、クロック"CLK1"の立ち上がりより、"CLK2"の立ち上がりが遅いか同じタイミングであり、かつ、"CLK1"の立下りより"CLK2"の立下りが早いか同じタイミングである2つのクロック信号となる。これらの2つのクロック信号が、図6(a)に示すレジスタ回路のマスタラッチおよびスレーブラッチにそれぞれ入力されるクロック信号とされる。 As shown in FIG. 9, these two clock signals (CLK1, CLK2) are clock signals that satisfy the clock setting conditions in the present embodiment described above with reference to FIG. That is, two clock signals whose rising edge of “CLK2” is later than or the same timing as the rising edge of clock “CLK1” and whose falling edge of “CLK2” is earlier or the same timing than the falling edge of “CLK1” Become. These two clock signals are clock signals input to the master latch and slave latch of the register circuit shown in FIG.
本発明の暗号処理装置では、前述したようにラウンド演算の結果データのレジスタ格納処理において、32ビットを同一タイミングで格納するのではなく、ばらばらのタイミングで格納する。例えば、4つの異なるタイミングを設定し、8ビットずつ4種類のタイミングで格納する。以下、具体的な実施例として、DES演算回路のF関数内のSボックスの各構成要素("S1"〜"S8")の出力の4ビットを全て異なるタイミングでレジスタに取り込む処理を行なう構成例について説明する。このタイミング制御によりレジスタに対するデータ格納時のビット変更に伴う発生電流を拡散し、DPA攻撃に対する耐性を高める。 In the cryptographic processing apparatus of the present invention, as described above, in the register storing process of the round operation result data, 32 bits are not stored at the same timing, but are stored at different timings. For example, four different timings are set, and 8 bits are stored at four timings. Hereinafter, as a specific embodiment, a configuration example in which processing is performed for fetching all four bits of the output of each component (“S1” to “S8”) of the S box in the F function of the DES arithmetic circuit into the register at different timings. Will be described. By this timing control, the current generated by the bit change at the time of storing data in the register is diffused, and the resistance against the DPA attack is enhanced.
DES演算回路のF関数内のSボックスの各構成要素("S1"〜"S8")の出力の4ビットを全て異なるタイミングでレジスタに取り込む処理を行なうための構成について、以下説明する。図10に示す様に、4つの異なる周波数の発振回路からの信号"OSC1"〜"OSC4"を4つの同じ回路に供給することにより、異なるタイミングのクロック信号の組み合わせを生成する。すなわち、
(a)CLK1−1,CLK1−2
(b)CLK2−1,CLK2−2
(c)CLK3−1,CLK3−2
(d)CLK4−1,CLK4−2
これら4つの異なるクロック信号の組み合わせを生成し、これらの4つのクロック信号の組(a)〜(d)をSボックスの各構成要素("S1"〜"S8")の出力の4ビットを格納するレジスタ回路、すなわち図6(a),(b)に示すマスタスレーブ型のフリップフロップ構成を持つレジスタ回路に供給する設定とする。例えば、図11に示す(a)〜(d)のクロック信号のように、異なる立ち上がり、立ち下がりタイミングを持つクロック信号の組み合わせを生成する。
A configuration for performing processing for fetching all four bits of the output of each component (“S1” to “S8”) of the S box in the F function of the DES arithmetic circuit into the register at different timings will be described below. As shown in FIG. 10, combinations of clock signals with different timings are generated by supplying signals “OSC1” to “OSC4” from four different frequency oscillation circuits to the same four circuits. That is,
(A) CLK1-1, CLK1-2
(B) CLK2-1 and CLK2-2
(C) CLK3-1, CLK3-2
(D) CLK4-1, CLK4-2
A combination of these four different clock signals is generated and the four bits (a) to (d) of these four clock signals are stored in the 4 bits of the output of each component of the S box ("S1" to "S8"). It is set to supply to the register circuit to be operated, that is, the register circuit having the master-slave type flip-flop configuration shown in FIGS. For example, combinations of clock signals having different rising and falling timings are generated as in the clock signals (a) to (d) shown in FIG.
先に、図2、図3を参照して説明したように、図2に示すDES演算回路内のF関数153では、Sボックスによる非線形置換が行なわれた後、置換回路(図3に示す置換部172)によってテーブルに基づく置換が実行され、これをF関数出力とし、さらに、その後、図2を参照して説明したように、このF関数出力と、Lレジスタ151との排他論理和演算(XOR)が排他論理和演算部154において実行され、この演算結果が、Rレジスタ152に格納される。
As previously described with reference to FIGS. 2 and 3, in the
図3に示す置換部172におけるテーブルに基づく置換処理に適用されるテーブルとしては、図12に示すテーブルが適用される。図12に示すテーブルは、各4ビットを出力するS1〜S8の出力32ビットのビット列順番の入れ替えを行なうテーブルである。例えば、SボックスのS1の第1ビットは、F関数出力32ビット中の第9番目のビットに設定され、SボックスのS1の第2ビットは、F関数出力32ビット中の第17番目のビットに設定され、SボックスのS2の第1ビットは、F関数出力32ビット中の第13番目のビットに設定される。Sボックス出力32ビットの位置がこのテーブルによって入れ替えられた後、Lレジスタ151との排他論理和演算(XOR)が排他論理和演算部154において実行され、この演算結果が、Rレジスタ152に格納される。
As the table applied to the replacement process based on the table in the
本発明の構成では、Rレジスタに対する32ビットデータを4つに区分して、それぞれの格納タイミングを上述した4つの異なるクロック信号の組みによって制御する。この組み合わせの設定は様々な組み合わせが適用できるが、その一例を以下に説明する。例えば図12に示すテーブルのSボックス出力はS1〜S8の各4ビットの出力であり、
(a)S1〜S8の第1ビット
(b)S1〜S8の第2ビット
(c)S1〜S8の第3ビット
(d)S1〜S8の第4ビット
この4種類に区分し、これらを、先に、図10、図11を参照して説明した4つのクロック信号の組(a)〜(d)に対応させて、これらの排他論理和演算結果のRレジスタに対する格納および出力タイミングの制御に適用する。
In the configuration of the present invention, the 32-bit data for the R register is divided into four, and each storage timing is controlled by the combination of the four different clock signals described above. Various combinations can be applied for the setting of this combination, and an example will be described below. For example, the S box output of the table shown in FIG. 12 is an output of 4 bits each of S1 to S8,
(A) 1st bit of S1-S8 (b) 2nd bit of S1-S8 (c) 3rd bit of S1-S8 (d) 4th bit of S1-S8 First, in correspondence with the four clock signal sets (a) to (d) described with reference to FIGS. 10 and 11, these exclusive OR operation results are stored in the R register and output timing is controlled. Apply.
この4つのタイミング区分を設定する場合の、適用するクロック信号と、Rレジスタに対する入力ビット位置の対応テーブルを図13に示す。図13に示すテーブルは、
(a)CLK1−1,CLK1−2
を、Rレジスタに格納する9,13,24,26,8,4,32,5番目のビット取り込みタイミングに適用し、
(b)CLK2−1,CLK2−2
を、Rレジスタに格納する17,28,16,20,14,29,12,27番目のビット格納タイミングに適用し、
(c)CLK3−1,CLK3−2
を、Rレジスタに格納する23,2,30,10,25,11,22,15番目のビット格納タイミングに適用し、
(d)CLK4−1,CLK4−2
を、Rレジスタに格納する31,18,6,1,3,19,7,21番目のビット格納タイミングに適用することを示している。
FIG. 13 shows a correspondence table of clock signals to be applied and input bit positions for the R register when these four timing sections are set. The table shown in FIG.
(A) CLK1-1, CLK1-2
Is applied to the 9th, 13th, 24th, 26th, 8th, 4th, 32nd and 5th bit fetch timings stored in the R register,
(B) CLK2-1 and CLK2-2
Is applied to the 17, 28, 16, 20, 14, 29, 12, 27th bit storage timing stored in the R register,
(C) CLK3-1, CLK3-2
Is applied to the 23, 2, 30, 10, 25, 11, 22, and 15th bit storage timings stored in the R register,
(D) CLK4-1, CLK4-2
Is applied to the 31st, 18th, 6th, 1st, 3rd, 19th, 7th and 21st bit storage timings stored in the R register.
これは、すなわち、図12に示すSボックス出力のS1〜S8の
第1番目のビットである8ビットの格納タイミングを(a)CLK1−1,CLK1−2とし、
第2番目のビットである8ビットの格納タイミングを(b)CLK2−1,CLK2−2とし、
第3番目のビットである8ビットの格納タイミングを(c)CLK3−1,CLK3−2とし、
第4番目のビットである8ビットの格納タイミングを(d)CLK4−1,CLK4−2とする設定である。
That is, the storage timing of 8 bits, which is the first bit of S1 to S8 of the S box output shown in FIG. 12, is (a) CLK1-1, CLK1-2,
The storage timing of the 8th bit which is the second bit is (b) CLK2-1 and CLK2-2,
The storage timing of 8 bits as the third bit is (c) CLK3-1, CLK3-2,
The storage timing of the fourth bit, which is 8 bits, is set to (d) CLK4-1 and CLK4-2.
このような4種類のクロックタイミングでのRレジスタ格納処理を実行する処理回路構成例を図14に示す。図14で、(a)は、F関数部出力と、Lレジスタ格納データとの排他論理和(XOR)演算を示している。すなわち、図2の回路構成におけるF関数部153の出力と、Lレジスタ151の出力との排他論理和演算部154での演算処理を示している。例えば、図14に示す(a)XOR演算の左端の演算は、F関数部内のF関数の出力中の第1ビットと、Lレジスタの第1ビットの排他論理和演算である。F関数からの出力は、先に説明した図12に示すテーブルによって順番が入れ替えられており、Sボックス出力の第1ビットは、図12に示すテーブルから理解されるようにS4の第4ビットである。
FIG. 14 shows a processing circuit configuration example for executing the R register storing process at such four kinds of clock timings. 14A shows an exclusive OR (XOR) operation between the output of the F function unit and the L register stored data. That is, the calculation processing in the exclusive OR
図14(b)は、前述した4種類のクロック信号の組の第1のクロック信号、すなわち図6(a)を参照して説明したマスタラッチに入力される4種類のクロック信号を示している。図14(c)は、Rレジスタを示しており、先に図6(a)を参照して説明したマスタスレーブ型のフリップフロップを32個並べた構成であり、32ビットデータを格納可能な32ビットレジスタである。 FIG. 14B shows the first clock signal of the set of four types of clock signals described above, that is, the four types of clock signals input to the master latch described with reference to FIG. FIG. 14C shows an R register, which has a configuration in which 32 master-slave flip-flops described above with reference to FIG. 6A are arranged, and can store 32-bit data. It is a bit register.
図14(a)において算出された排他論理和演算結果の各々が、図6、図7を参照して説明した入力値[D_in]になり、この入力値が、32ビットレジスタに取り込まれる。レジスタは、先に図6を参照して説明したようにマスタスレーブ型のフリップフロップ構成であり、図7を参照して説明したように、マスタ側におけるデータ格納、保持タイミングがクロック1によって制御され、スレーブ側におけるデータ格納、保持タイミングがクロック2によって制御される。
Each exclusive OR operation result calculated in FIG. 14A becomes the input value [D_in] described with reference to FIGS. 6 and 7, and this input value is taken into the 32-bit register. The register has a master-slave type flip-flop configuration as described with reference to FIG. 6, and the data storage and holding timing on the master side is controlled by the
まず、図14(a)に示す排他論理和演算結果に相当する入力値[D_in]は、図14(b)に示すCLK1−1〜CLK4−1の4種類の異なるタイミングが適用され、図13を参照して説明したように、8ビットずつの組に分離されて4種類の異なるタイミングでRレジスタに格納される。 First, four different timings CLK1-1 to CLK4-1 shown in FIG. 14B are applied to the input value [D_in] corresponding to the exclusive OR operation result shown in FIG. As described with reference to FIG. 5, the data is separated into 8-bit sets and stored in the R register at four different timings.
すなわち、CLK1−1の規定する制御タイミングに従って、第9,13,24,26,8,4,32,5番目のビットが格納され、CLK2−1の規定する制御タイミングに従って、第17,28,16,20,14,29,12,27番目のビットが格納され、CLK3−1の規定する制御タイミングに従って、第23,2,30,10,25,11,22,15番目のビットが格納され、CLK4−1の規定する制御タイミングに従って、第31,18,6,1,3,19,7,21番目のビットが格納される。 That is, the ninth, thirteenth, twenty-fourth, twenty-sixth, eighth, fourth, thirty-second, and fifth bits are stored according to the control timing defined by CLK1-1, and the seventeenth, twenty-eighth, twenty-eighth, according to the control timing defined by CLK2-1. The 16th, 20th, 14th, 29th, 12th and 27th bits are stored, and the 23rd, 2nd, 30th, 10th, 25th, 11th, 22nd and 15th bits are stored according to the control timing specified by CLK3-1. In accordance with the control timing specified by CLK4-1, the 31st, 18th, 6th, 1st, 3rd, 19th, 7th and 21st bits are stored.
なお、この取り込みタイミングは、図7に示す時刻t1,t4などのCLK1の立ち上がりタイミングに相当する。このとき、CLK1−2〜CLK4−2は変化していないので、レジスタの各スレーブ(ラッチ2)のラッチの値およびその出力は変化しない。従って、この間にラウンド演算の結果は変化しない。その後、CLK1−2〜CLK4−2の立ち上がりで、Rレジスタの対応するビットでマスタ(ラッチ1)の値がスレーブ(ラッチ2)へ取り込まれ、負荷の出力が変化する。 This capture timing corresponds to the rising timing of CLK1 such as times t1 and t4 shown in FIG. At this time, since CLK1-2 to CLK4-2 are not changed, the latch value of each slave (latch 2) of the register and its output do not change. Accordingly, the result of the round operation does not change during this period. Thereafter, at the rising edge of CLK1-2 to CLK4-2, the value of the master (latch 1) is taken into the slave (latch 2) by the corresponding bit of the R register, and the output of the load changes.
すなわち、スレーブラッチの値の変化も、図14(d)に示すCLK1−2〜CLK4−2の4種類の異なるタイミングが適用されて異なるタイミングで発生する。 That is, the change in the value of the slave latch also occurs at different timings by applying four different timings CLK1-2 to CLK4-2 shown in FIG.
そして、これに伴って、スレーブラッチのビットデータの変更が発生すると、ビット変化に対応する電流が流れる。この時、Sボックスの各構成要素("S1"〜"S8")の出力ビットは、CLK1−2〜CLK4−2の立ち上がりで各々1ビットずつ変化する。そして、変化の順番も先に図10を参照して説明した"OSC1"〜"OSC4"でのリタイミングによって決まるため、一定ではない。このため、入力クロックと非同期でしかもSボックスの各構成要素で1ビットずつ任意の順番で変化するため、着目したSボックスの構成要素の特定のビットの変化電流のタイミングを揃えることは困難であり、Rレジスタに対するビット取り込み時の電流解析に基づくDPA攻撃は困難となる。これらのタイミング制御によりレジスタに対するデータ格納時のビット変更に伴う発生電流を拡散し、DPA攻撃に対する耐性が高められる。Rレジスタのスレーブの出力が更新されると、更新した値で次のラウンドのF関数の演算が実行される。 Accordingly, when the bit data of the slave latch is changed, a current corresponding to the bit change flows. At this time, the output bits of the components of the S box ("S1" to "S8") change by 1 bit each at the rising edge of CLK1-2 to CLK4-2. The order of change is not constant because it is determined by the retiming in “OSC1” to “OSC4” described above with reference to FIG. For this reason, since each bit of each S box component changes asynchronously with the input clock in an arbitrary order, it is difficult to align the timing of the change currents of specific bits of the S box component of interest. The DPA attack based on the current analysis at the time of bit fetching to the R register becomes difficult. With these timing controls, the current generated due to the bit change when data is stored in the register is diffused, and the resistance to the DPA attack is enhanced. When the output of the slave of the R register is updated, the calculation of the F function of the next round is executed with the updated value.
なお、Lレジスタに対するデータ取り込みに際しても、同様の処理を適用する。図2に示す回路構成から理解されるように、Lレジスタは、前段のラウンド演算においてRレジスタに格納された値(32ビットデータ)がそのまま格納される。 Note that the same processing is applied when data is taken into the L register. As understood from the circuit configuration shown in FIG. 2, the L register stores the value (32-bit data) stored in the R register in the previous round operation as it is.
これらの32ビットデータの取り込みタイミングも、Rレジスタに対する取り込みタイミングと同様の制御が実行される。図15に、Lレジスタに対するデータ格納タイミング区分を設定する場合の、適用するクロック信号と、Lレジスタに対する入力ビット位置の対応テーブルを示す。図15に示すテーブルは、先に説明した図13に示すテーブルと同様の構成であり、
(a)CLK1−1,CLK1−2
を、Lレジスタに格納する9,13,24,26,8,4,32,5番目のビット取り込みタイミングに適用し、
(b)CLK2−1,CLK2−2
を、Lレジスタに格納する17,28,16,20,14,29,12,27番目のビット取り込みタイミングに適用し、
(c)CLK3−1,CLK3−2
を、Lレジスタに格納する23,2,30,10,25,11,22,15番目のビット取り込みタイミングに適用し、
(d)CLK4−1,CLK4−2
を、Lレジスタに格納する31,18,6,1,3,19,7,21番目のビット取り込みタイミングに適用することを示している。
The same control as the fetch timing for the R register is executed for the fetch timing of these 32-bit data. FIG. 15 shows a correspondence table of clock signals to be applied and input bit positions for the L register when setting the data storage timing division for the L register. The table shown in FIG. 15 has the same configuration as the table shown in FIG.
(A) CLK1-1, CLK1-2
Is applied to the 9th, 13th, 24th, 26th, 8th, 4th, 32nd and 5th bit fetch timings stored in the L register,
(B) CLK2-1 and CLK2-2
Is applied to the 17, 28, 16, 20, 14, 29, 12, 27th bit fetch timing stored in the L register,
(C) CLK3-1, CLK3-2
Is applied to the 23rd, 2nd, 30th, 10th, 25th, 11th, 22nd, and 15th bit fetch timings stored in the L register,
(D) CLK4-1, CLK4-2
Is applied to the 31st, 18th, 6th, 1st, 3rd, 19th, 7th and 21st bit fetch timings stored in the L register.
このような4種類のクロックタイミングでのLレジスタ取り込み処理を実行する処理回路構成例を図16に示す。(a)は、Rレジスタからの出力32ビットデータ、(b)はLレジスタのマスタラッチに入力される4種類の制御クロックCLK1−1〜CLK1−4、(c)はLレジスタ、(d)は、Lレジスタのスレーブラッチに入力される4種類の制御クロックCLK2−1〜CLK2−4、(e)はレジスタの出力ビットを示している。 FIG. 16 shows a processing circuit configuration example for executing the L register fetching process at such four types of clock timings. (A) is 32-bit data output from the R register, (b) is four types of control clocks CLK1-1 to CLK1-4 input to the master latch of the L register, (c) is the L register, and (d) is , Four types of control clocks CLK2-1 to CLK2-4, (e), which are input to the slave latch of the L register, indicate output bits of the register.
このLレジスタに対するデータ格納処理も、Rレジスタに対するデータ格納処理と同様、異なる複数のクロックタイミングでばらばらに実行されることになり、レジスタに対するデータ格納時のビット変更に伴う発生電流が拡散され、DPA攻撃に対する耐性が高められる。 Similarly to the data storage process for the R register, the data storage process for the L register is executed at different clock timings, and the generated current accompanying the bit change when data is stored in the register is diffused. Increases resistance to attacks.
以上、説明した様に、本発明の暗号処理装置構成では、ラウンド演算結果を格納するレジスタに入力するクロックをマスタとスレーブで別なクロック(CLK1,CLK2)として設定し、さらに、これらのクロックを、システムクロックを発振器の出力クロックでリタイミングして複数のタイミングを持つ複数のクロック信号の組、すなわち、例えば、
(a)CLK1−1,CLK1−2
(b)CLK2−1,CLK2−2
(c)CLK3−1,CLK3−2
(d)CLK4−1,CLK4−2
を生成して、これらをレジスタ構成回路としてのラッチに選択的に供給して、異なるタイミングでのビットデータ取り込みを実現している。この構成は、上述したように、簡単なロジックを加えることで実現可能で、これにより、DPA攻撃を事実上不可能とする構成が実現できる。
As described above, in the cryptographic processing device configuration of the present invention, the clock input to the register storing the round operation result is set as different clocks (CLK1, CLK2) for the master and the slave, and these clocks are further set. A set of multiple clock signals having multiple timings by retiming the system clock with the output clock of the oscillator, for example,
(A) CLK1-1, CLK1-2
(B) CLK2-1 and CLK2-2
(C) CLK3-1, CLK3-2
(D) CLK4-1, CLK4-2
Are generated and selectively supplied to a latch as a register configuration circuit to implement bit data capture at different timings. As described above, this configuration can be realized by adding simple logic, thereby realizing a configuration in which the DPA attack is virtually impossible.
なお、暗号処理装置に乱数発生用の発振回路を備えている構成の場合、その発振回路の出力を、先に図10を参照して説明したOSC信号として適用することも可能であり、このような設定とすれば、ほとんど回路規模の増大なく、DPA攻撃を不可能とする構成が実現できる。 In the case where the cryptographic processing apparatus includes an oscillation circuit for generating random numbers, the output of the oscillation circuit can be applied as the OSC signal described above with reference to FIG. With this setting, it is possible to realize a configuration that makes DPA attack impossible with almost no increase in circuit scale.
最後に、上述の暗号処理を実行するデバイスとしてのICモジュール600の構成例を図6を参照して説明する。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図6に示すICモジュール600は、これら様々な機器に構成することが可能である。
Finally, a configuration example of the
図6に示すCPU(Central processing Unit)601は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、さらに上述した各スイッチの切り替え制御、その他の各種プログラムを実行するプロセッサである。メモリ602は、CPU601が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU601の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ602は暗号処理に必要な鍵データ等の格納領域として使用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
A CPU (Central processing Unit) 601 shown in FIG. 6 performs encryption processing start and end, data transmission / reception control, data transfer control between each component, switching control of each switch described above, and other various programs. The processor to execute. The
暗号処理部603は、例えば上述したDESアルゴリズムなど複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理部である。発振回路604は、先に図9、図10を参照して説明した複数の異なる周波数の信号を生成する発振回路である。なお、乱数発生器に含まれる発振回路を適用してもよい。
The
送受信部605は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
The transmission /
クロック信号生成部607は、暗号処理部603におけるレジスタ格納処理において適用する複数のクロック信号を生成し、暗号処理部603内のラウンド演算結果格納レジスタに供給する。
The clock
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。 The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。 Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
本発明の構成によれば、処理アルゴリズムを複雑化させることなく、暗号処理シーケンスの持つ規則的な処理に伴う消費電流変動の検出等に基づく電力解析による暗号解析の困難性を高めた暗号処理装置が実現される。 According to the configuration of the present invention, a cryptographic processing device that increases the difficulty of cryptographic analysis by power analysis based on detection of fluctuations in current consumption associated with regular processing of cryptographic processing sequences without complicating the processing algorithm Is realized.
本発明の構成では、例えばDESなど複数段のラウンド演算の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置において、ラウンド演算の結果を格納するレジスタに対するデータ格納タイミングの制御を行なうクロック信号を、レジスタを構成するマスタとスレーブで別なクロック(CLK1,CLK2)とし、さらに、例えば発振器の出力でリタイミングして複数のタイミングを持つ複数のクロック信号の組(CLK1−1,CLK1−2)〜(CLK2−n,CLK2−n)を生成してレジスタ構成回路としてのマスタおよびスレーブに選択的に供給して、異なるタイミングでのビットデータ取り込みを実現した。本構成により、消費電流の統計処理によるDPA攻撃に対する耐性の高い暗号処理装置が実現される。 In the configuration of the present invention, for example, in a cryptographic processing apparatus that executes a cryptographic algorithm including a repetition process of a plurality of round operations such as DES, a clock signal for controlling the data storage timing for a register that stores the result of the round operation is The master and slaves constituting the clock are different clocks (CLK1, CLK2), and further, for example, a plurality of clock signal groups (CLK1-1, CLK1-2) to (timed) by retiming with the output of the oscillator. CLK2-n, CLK2-n) are generated and selectively supplied to a master and a slave as a register configuration circuit, thereby realizing bit data capture at different timings. With this configuration, it is possible to realize a cryptographic processing apparatus that is highly resistant to DPA attacks by statistical processing of current consumption.
110 ラウンド関数部
111 初期置換部
112,113 変換部
114 逆置換部
120 鍵スケジュール部
121 マスタ鍵(秘密鍵)置換部
122,123 鍵生成部
141 初期置換部
142 逆置換部
150 ラウンド関数部
151 Lレジスタ
152 Rレジスタ
153 F関数部
154 排他論理和演算(XOR)部
171 拡張部
172 置換部
181 Sボックス
600 ICモジュール
601 CPU(Central processing Unit)
602 メモリ
603 暗号処理部
604 発振回路
605 送受信部
606 クロック
607 クロック信号生成部
DESCRIPTION OF
602
Claims (7)
ラウンド演算を実行するラウンド演算部と、
各ラウンドのラウンド演算結果を格納するレジスタと、
前記レジスタに対するデータ格納タイミングの制御を行なうクロック信号を生成し、前記レジスタに出力するクロック信号生成部とを有し、
前記クロック信号生成部は、
異なるタイミングを持つ複数の異なるクロック信号を生成し、該生成した複数の異なるクロック信号を、前記レジスタを構成する複数のビットデータ格納レジスタ回路に選択的に入力する構成を有することを特徴とする暗号処理装置。 A cryptographic processing device that performs cryptographic processing computation including repetition processing of multiple round computations,
A round calculation unit for performing round calculation;
A register for storing the round operation result of each round;
A clock signal generating section for generating a clock signal for controlling data storage timing for the register, and outputting to the register;
The clock signal generator is
A cryptography having a configuration in which a plurality of different clock signals having different timings are generated, and the generated plurality of different clock signals are selectively input to a plurality of bit data storage register circuits constituting the register. Processing equipment.
マスタとスレーブの2つのラッチを有する構成であり、
前記クロック信号生成部は、
前記レジスタのマスタとスレーブの制御用クロックの組として、
(CLK1−1,CLK2−1)〜(CLK1−n,CLK2−n)
のn個のクロックの組を生成し、前記レジスタを構成する複数のビットデータ格納レジスタ回路のマスタおよびスレーブの制御用クロックとして選択的に入力する構成であることを特徴とする請求項1に記載の暗号処理装置。 The register is
A configuration having two latches, a master and a slave,
The clock signal generator is
As a set of control clocks for the master and slave of the register,
(CLK1-1, CLK2-1) to (CLK1-n, CLK2-n)
2. The configuration according to claim 1, wherein a set of n clocks is generated and selectively input as control clocks for a master and a slave of a plurality of bit data storage register circuits constituting the register. Cryptographic processing equipment.
前記レジスタのマスタとスレーブの制御用クロックの組として、
前記マスタから前記スレーブに対するデータ入力タイミングが前記マスタにおけるデータ保持開始タイミングより遅延させる設定としたクロックの組を生成し前記レジスタのマスタおよびスレーブに入力する構成であることを特徴とする請求項2に記載の暗号処理装置。 The clock signal generator is
As a set of control clocks for the master and slave of the register,
3. The configuration according to claim 2, wherein a set of clocks set so that a data input timing from the master to the slave is delayed from a data holding start timing in the master is generated and input to the master and slave of the register. The cryptographic processing device described.
前記レジスタのマスタとスレーブの制御用クロックの組として、
前記ラウンド演算部に含まれるSボックスの非線形変換部としての構成要素(S1〜S8)各々の出力4ビットに対応する4種類のクロックの組を生成して、前記レジスタを構成する複数のビットデータ格納レジスタ回路のマスタおよびスレーブに入力する構成であることを特徴とする請求項2に記載の暗号処理装置。 The clock signal generator is
As a set of control clocks for the master and slave of the register,
A plurality of bit data constituting the register by generating a set of four types of clocks corresponding to the output 4 bits of each of the components (S1 to S8) as the nonlinear conversion unit of the S box included in the round operation unit 3. The encryption processing apparatus according to claim 2, wherein the encryption processing apparatus is configured to input to a master and a slave of a storage register circuit.
暗号処理装置において適用するシステムクロック、および発振回路の出力に基づいて、複数の異なるタイミングのクロック信号を生成する構成を有することを特徴とする請求項1に記載の暗号処理装置。 The clock signal generator is
2. The cryptographic processing apparatus according to claim 1, wherein the cryptographic processing apparatus is configured to generate a plurality of clock signals having different timings based on a system clock applied in the cryptographic processing apparatus and an output of the oscillation circuit.
前記レジスタは、前記Sボックスによる非線形変換処理を含むラウンド演算処理の結果データを格納する構成であることを特徴とする請求項1に記載の暗号処理装置。 The round calculation unit has an S box as a nonlinear conversion unit,
The cryptographic processing apparatus according to claim 1, wherein the register is configured to store result data of a round operation process including a non-linear conversion process by the S box.
DES(Data Encryption Standard)アルゴリズムに従った暗号処理演算を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。 The cryptographic processing device includes:
The cryptographic processing apparatus according to claim 1, wherein the cryptographic processing apparatus is configured to execute a cryptographic processing operation in accordance with a DES (Data Encryption Standard) algorithm.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005365871A JP4765609B2 (en) | 2005-12-20 | 2005-12-20 | Cryptographic processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005365871A JP4765609B2 (en) | 2005-12-20 | 2005-12-20 | Cryptographic processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007174025A JP2007174025A (en) | 2007-07-05 |
| JP4765609B2 true JP4765609B2 (en) | 2011-09-07 |
Family
ID=38300040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005365871A Expired - Fee Related JP4765609B2 (en) | 2005-12-20 | 2005-12-20 | Cryptographic processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4765609B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2479871A (en) * | 2010-04-26 | 2011-11-02 | David Coyne | System for preventing side channel attacks on a synchronous logic device. |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003337750A (en) * | 2002-05-22 | 2003-11-28 | Hitachi Ltd | Semiconductor device with internal analysis prevention function |
| JP2005045752A (en) * | 2003-07-07 | 2005-02-17 | Sony Corp | Cryptographic processing apparatus and cryptographic processing method |
| JP4594665B2 (en) * | 2004-07-09 | 2010-12-08 | 三菱電機株式会社 | Tamper resistant circuit evaluation apparatus, tamper resistant circuit evaluation method, signal generation circuit, signal generation method, tamper resistance evaluation apparatus, and tamper resistance evaluation method |
-
2005
- 2005-12-20 JP JP2005365871A patent/JP4765609B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2007174025A (en) | 2007-07-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7797361B2 (en) | System and method for generating random numbers using parity feedback | |
| EP1873671B1 (en) | A method for protecting IC Cards against power analysis attacks | |
| Drutarovsky et al. | A robust chaos-based true random number generator embedded in reconfigurable switched-capacitor hardware | |
| JP4453697B2 (en) | Arithmetic processing device, arithmetic processing control method, and computer program | |
| CN112422272B (en) | AES encryption method and circuit for preventing power consumption attack | |
| EP1496641A2 (en) | Cryptographic processing apparatus, cryptographic processing method and computer program | |
| CN102271038B (en) | method for generating a bit vector | |
| JP3696209B2 (en) | Seed generation circuit, random number generation circuit, semiconductor integrated circuit, IC card and information terminal device | |
| CN109614790B (en) | Lightweight authentication equipment and authentication method based on feedback loop PUF | |
| JP4180094B2 (en) | Program conversion apparatus, cryptographic processing apparatus, and cryptographic processing method | |
| JP4960044B2 (en) | Cryptographic processing circuit and IC card | |
| JP2007195132A (en) | Cryptographic processing device | |
| Huang et al. | Trace buffer attack on the AES cipher | |
| JP5171420B2 (en) | Pseudo random number generator | |
| JP2005134478A (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
| JP4765609B2 (en) | Cryptographic processing device | |
| JP2006019872A (en) | Cryptographic processing device | |
| JP2005045752A (en) | Cryptographic processing apparatus and cryptographic processing method | |
| JP2006054568A (en) | ENCRYPTION DEVICE, DECRYPTION DEVICE, METHOD, AND COMPUTER PROGRAM | |
| JP2005031471A (en) | Cryptographic processing apparatus and cryptographic processing method | |
| JP2010245753A (en) | Cryptographic circuit device | |
| JP2007174024A (en) | Cryptographic processing device | |
| Biryukov et al. | Differential resynchronization attacks on reduced round SNOW 3G⊕ | |
| JP2007323019A (en) | Cryptographic processing device | |
| Savitha et al. | Implementation of AES algorithm to overt fake keys against counter attacks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081212 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110513 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110517 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110530 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140624 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |