JP2006019872A - Encryption processing apparatus - Google Patents

Encryption processing apparatus Download PDF

Info

Publication number
JP2006019872A
JP2006019872A JP2004193562A JP2004193562A JP2006019872A JP 2006019872 A JP2006019872 A JP 2006019872A JP 2004193562 A JP2004193562 A JP 2004193562A JP 2004193562 A JP2004193562 A JP 2004193562A JP 2006019872 A JP2006019872 A JP 2006019872A
Authority
JP
Japan
Prior art keywords
round
register
data
key
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.)
Pending
Application number
JP2004193562A
Other languages
Japanese (ja)
Inventor
Hiromi Nobukata
浩美 信方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004193562A priority Critical patent/JP2006019872A/en
Publication of JP2006019872A publication Critical patent/JP2006019872A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/08Randomization, e.g. dummy operations or using noise

Abstract

<P>PROBLEM TO BE SOLVED: To provide an encryption processing apparatus and method with high immunity against a DPA attack. <P>SOLUTION: The encryption processing apparatus for executing the encryption algorithm including repetitive processing of a plurality of stages of round functions such as the DES is configured to enter a random number to an F function part in a round transition state, and thereafter outputs intermediate data stored in a register to execute the arithmetic processing. Through the configuration above, an S box output on the basis of the random number in a round transition is produced, and current or potential variations in a register connection path are produced, which result in a current or potential variation independently of configuration bit information of a session key (round key) as secret information applied to each round, so as to realize the encryption processing apparatus with a high security level whereby it is impossible to analyze the secret information by the DPA attack. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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.

昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。   In recent years, with the development of network communication and electronic commerce, ensuring security in communication has become an important issue. 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, there is no problem even if secret information stored in the IC card leaks in the process. Is used.

暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。   There are various cryptographic processing algorithms, but broadly classified, the encryption key and the decryption key are different keys, for example, a public key cryptosystem that sets a public key and a private key, and an encryption key and a decryption key. It is classified into a common key encryption method set as a common key.

共通鍵暗号方式にも様々なアルゴリズムがあるが、その1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット,128ビットなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。   There are various algorithms in the common key cryptosystem, one of which generates a plurality of keys based on the common key, and uses the generated plurality of keys as a block unit (64 bits, 128 bits, etc.) data. There is a method for repeatedly executing the conversion process. A typical algorithm applying such a key generation method and data conversion processing is a common key block encryption method.

代表的な共通鍵ブロック暗号のアルゴリズムとしては、例えば米国標準暗号としてのDES(Data Encryption Standard)アルゴリズムがあり、様々な分野において広く用いられている。   As a typical common key block cipher algorithm, for example, there is a DES (Data Encryption Standard) algorithm as a US standard cipher, which is widely used in various fields.

ICカードとホストコンピュータ間において、DESに基づく暗号処理を施した通信を行なう場合、ICカードの所有者とホストコンピュータが同じ鍵(共通鍵)を所有し、データの送信側はデータをその鍵で暗号化して送信し、データの受信者は同じ鍵で復号化してメッセージを取り出す。通信の過程で悪意の第三者が盗聴しても、鍵を有していない限りは復号化してメッセージを取り出すのは困難である。また、暗号化・復号化の時に使う鍵は、ICカード内のEEPROM等の不揮発性メモリに格納され、暗号化・復号化時にはCPUを介さないで直接ICカード内の暗号エンジンに転送される様な制御により、ICカードの所有者やICカードの開発エンジニアすら鍵データを取り出す事が不可能な構成を採ってセキュリティを保持している。   When communication with encryption processing based on DES is performed between the IC card and the host computer, the owner of the IC card and the host computer have the same key (common key), and the data transmission side uses the key as the data transmission side. The data is encrypted and transmitted, and the data recipient decrypts it with the same key and retrieves the message. 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.

DESに代表される共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部とに分けることができる。ラウンド関数部の各ラウンドで適用するラウンド鍵(副鍵)は、1つのマスター鍵(主鍵)に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド関数部で適用される。   Common key block cipher algorithms typified by DES can be mainly divided into a round function part that performs conversion of input data and a key schedule part that generates a key to be applied in each round of the round function part. A round key (sub key) to be applied in each round of the round function part is generated by being input to the key schedule part based on one master key (primary key) and applied in each round function part.

しかし、このような共通鍵暗号処理においては、暗号解析による鍵の漏洩が問題となっている。暗号解析手法には複数の種類がある。その1つが単純電力解析(SPA:Simple Power Analysis)である。   However, in such a common key encryption process, there is a problem of key leakage due to cryptographic analysis. There are several types of cryptographic analysis methods. One of them is a simple power analysis (SPA).

スマートカードなどの耐タンパデバイスのほとんどはトランジスタで構成された論理回路からなり、ゲートに電圧が加えられたときに電流が流れ、電力が消費される。一般に回路の消費電力は、実行している演算と用いられているデータの値に関係する。   Most tamper-resistant devices such as smart cards are composed of logic circuits composed of transistors, and when voltage is applied to the gate, current flows and power is consumed. In general, the power consumption of a circuit is related to the operation being executed and the value of the data being used.

演算やデータ値に応じて電力消費量が変動することから、秘密情報を用いた演算を行っているデバイスの消費電力の変化を観察することで、秘密情報に関してハミングウェイトなどの情報を得ることが可能となり、エントロピーを小さくすることができる。消費電力の変化を直接解析に用いる方法を単純電力解析と呼ぶ。   Since power consumption varies depending on the calculation and data value, it is possible to obtain information such as the Hamming weight regarding the secret information by observing the change in the power consumption of the device performing the calculation using the secret information. It becomes possible and entropy can be made small. A method of directly using changes in power consumption for analysis is called simple power analysis.

デバイスの消費電力は、デバイスと電源または接地との間に抵抗を直列に挿入し、抵抗を流れる電流値から求めることができる。実際に共通鍵暗号の演算を行っているスマートカードに対して消費電力測定を行うと、測定波形より共通鍵暗号の各段の演算がはっきり確かめられる。さらに、消費電力波形を詳しく解析することにより鍵レジスタの交換等の情報を得ることができる。   The power consumption of the device can be obtained from a current value flowing through the resistor by inserting a resistor in series between the device and the power source or the ground. When power consumption is measured for a smart card that is actually performing a common key encryption operation, the operation of each stage of the common key encryption can be clearly confirmed from the measured waveform. Furthermore, information such as key register exchange can be obtained by analyzing the power consumption waveform in detail.

次に、電力差分解析(DPA:Differential Power Analysis)について説明する。耐タンパデバイスの消費電力は一般に演算内容と演算に用いられている秘密情報に依存する。しかしこれらの内容に依存した消費電力の変化は小さく、測定誤差やノイズなどから見分けることは一般に困難である。   Next, power difference analysis (DPA: Differential Power Analysis) will be described. The power consumption of the tamper resistant device generally depends on the calculation contents and secret information used for the calculation. However, changes in power consumption depending on these contents are small, and it is generally difficult to distinguish from measurement errors and noise.

そこでP.Kocherらは大量の測定値の平均をとって測定誤差やノイズなどの影響を小さくし、全データの平均値との差分を取ることで演算プロセスによる電力消費の影響を除いて、用いられる秘密情報による消費電力の変化のみを取り出す方法(電力差分解析)を提案した。   Therefore, P.I. Kocher et al. Take the average of a large amount of measurement values to reduce the influence of measurement errors and noise, and take the difference from the average value of all data to eliminate the influence of power consumption due to the calculation process, thereby using confidential information We proposed a method (power difference analysis) to extract only changes in power consumption due to.

P.KocherらはDESに対する適用例を示している。まず、ラウンド関数部の第1段、または第16段に入る鍵の一部のビットについて予想し、第1段、または第16段の最後にレジスタに書きこまれると予想されるデータの1ビットの値に注目して、その値に従って消費電力の観測データを分類する。次にそれぞれのグループについて測定値の平均をとり、それらの差分をとる。予想が正しい場合注目したビットが演算に用いられるとき消費電力の差分が大きくなる。予想が異なる場合目立った差分は確認されない。このような事象確認処理に基づいて、暗号処理に適用した鍵の構成ビットを順次求めるものである。   P. Kocher et al. Shows an application example for DES. First, one bit of data expected to be written to the register at the end of the first stage or the 16th stage by predicting a bit of a part of the key entering the first stage or the 16th stage of the round function part Pay attention to the value of, and classify the observation data of power consumption according to the value. Next, the average of the measured values is taken for each group, and the difference between them is taken. When the prediction is correct, the difference in power consumption becomes large when the focused bit is used for the calculation. If the forecasts are different, no noticeable difference is confirmed. Based on such an event confirmation process, the constituent bits of the key applied to the encryption process are sequentially obtained.

このP.Kocherらの提案に基づく暗号解析手法によれば、DESの第1段及び第16段のラウンド鍵を推定することが可能となる。   This P.I. According to the cryptographic analysis method based on the proposal of Kocher et al., It is possible to estimate the first and 16th round keys of the DES.

DES暗号処理は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。図1にDES暗号処理の基本構成を示す。入力データの変換を実行するラウンド関数部110と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部120とによって構成される。 The DES encryption process has a structure for converting plaintext into ciphertext by simple repetition of a conversion function. FIG. 1 shows a basic configuration of DES encryption processing. The round function unit 110 executes conversion of input data, and the key schedule unit 120 generates a key to be applied in each round of the round function unit.

ラウンド関数部110において、平文(64ビット)は、まず、初期置換部111において、置換後にL,R各32ビットに分割され、分割されたL,R32ビットが、第1段ラウンド関数部112に入力され、鍵スケジュール部120の第1段鍵生成部122から入力する鍵K(1)に基づいて変換処理がなされる。変換処理結果は、次段の第2段ラウンド関数部113に入力される。   In the round function unit 110, the plaintext (64 bits) is first divided into 32 bits each of L and R after replacement in the initial replacement unit 111, and the divided L and R 32 bits are sent to the first-stage round function unit 112. The conversion process is performed based on the key K (1) input and input from the first-stage key generation unit 122 of the key schedule unit 120. The conversion process result is input to the second-stage round function unit 113 in the next stage.

鍵スケジュール部120においては、まず、マスター鍵(主鍵)置換部(PC−1)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 key schedule unit 120, first, the master key (primary key) replacement unit (PC-1) 121 removes the 8 bits of parity of the input master key (primary key: 64 bits), and the remaining 56 bits are replaced. Input to the first round key generation unit 122. The first-stage round key generation unit 122 executes a shift process of the input bit string and discards 8-bit data, generates a 48-bit round key K (1), and uses the generated round key K (1) as a round function. To the first round function unit 112 of the unit 110. The first-stage round key generation unit 122 outputs the higher-order bit string (28 bits) and the lower-order bit string (28 bits) obtained by the shift process to the second-stage round key generation unit 123 in the lower stage.

ラウンド関数部は、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 key schedule section 120 with the output of the previous round function section as an input, and converts the conversion result into the subsequent round function. To the output. The output converted by the 16-stage round function part is input to the reverse replacement part 114, the reverse replacement process of the initial replacement part 111 is executed, and output as ciphertext.

ラウンド関数部110の各ラウンドを構成する各段のラウンド関数部の構成を図2に示す。図2に示すように、ラウンド関数部は、前段(n−1段)のラウンド関数部から2つの入力、L(n−1)、R(n−1)を入力し、鍵スケジュール部から鍵(k(n))を入力する。F関数部151において、鍵スケジュール部から入力する鍵(k(n))を用いて、前段ラウンド関数部から入力するビット列(R(n−1))の変換処理がなされ、変換結果が、前段ラウンド関数部から入力する残りのビット列(L(n−1))と排他論理和が実行されて、次段のラウンド関数部の出力R(n)が生成される。次段のラウンド関数部には、R(n−1)をL(n)としたビット列と、上述のF関数および排他論理和演算により生成されたR(n)が入力され同様の処理が繰り返される。   FIG. 2 shows the configuration of the round function unit at each stage constituting each round of the round function unit 110. As shown in FIG. 2, the round function unit receives two inputs, L (n-1) and R (n-1), from the round function unit of the previous stage (n-1 stage), and the key from the key schedule part. Enter (k (n)). In the F function unit 151, the bit string (R (n-1)) input from the previous round function unit is converted using the key (k (n)) input from the key schedule unit, and the conversion result is converted to the previous result. The remaining bit string (L (n-1)) input from the round function part and exclusive OR are executed to generate the output R (n) of the next round function part. In the next round function section, a bit string with R (n-1) as L (n) and the above F function and R (n) generated by the exclusive OR operation are input, and the same processing is repeated. It is.

F関数の構成を図3に示す。F関数は、非線形処理を実行する複数のSボックス(Sbox)を有する。ラウンド関数部の前段からの入力値R(n−1)は置換部171によって48ビットに拡大され、さらに鍵スケジュール部から入力する鍵(48ビット)と排他論理和が実行され、その出力が6ビットずつ非線形変換処理を実行する複数のSボックス181−1〜8に入力される。各Sボックスでは、例えば変換テーブルを適用した6ビットから4ビットへの非線形変換処理が実行される。   The configuration of the F function is shown in FIG. The F function includes a plurality of S boxes (Sboxes) that perform nonlinear processing. The input value R (n−1) from the previous stage of the round function part is expanded to 48 bits by the replacing part 171, and the exclusive OR is executed with the key (48 bits) input from the key schedule part, and the output is 6 It is input to a plurality of S boxes 181-1 to 18-8 for executing nonlinear conversion processing bit by bit. In each S box, for example, nonlinear conversion processing from 6 bits to 4 bits to which a conversion table is applied is executed.

Sボックス181−1〜8からの出力ビット4×8=32ビットは、置換部172に入力されて、ビット位置の入れ替え処理がなされ、F関数出力32ビットを生成して出力する。   The output bits 4 × 8 = 32 bits from the S box 181-1 to 8 are input to the replacement unit 172, the bit position is exchanged, and the F function output 32 bits are generated and output.

図1〜3を参照して説明したように複数段(16段)の変換処理によってDES暗号処理が実行される。   As described with reference to FIGS. 1 to 3, the DES encryption process is executed by a multi-stage (16-stage) conversion process.

上述した暗号処理演算の過程で様々なデータが信号線を介して伝達され、関数実行部で演算が実行される。演算器は通常MOSトランジスタで構成された回路であるが、この回路はその入力ビットが"0"であるか"1"であるかによりその演算回路で消費される電流は微妙に異なる。しかし、演算は複数ビット並列に実行されるため、特定のビットの消費電流のみに着目してその消費電流から着目したビットが"0"か"1"かについて特定することは困難である。   Various data is transmitted through the signal line in the above-described cryptographic processing calculation process, and the function execution unit executes the calculation. The arithmetic unit is usually a circuit composed of MOS transistors, but the current consumed by the arithmetic circuit differs slightly depending on whether the input bit is "0" or "1". However, since the calculation is performed in parallel with a plurality of bits, it is difficult to specify whether the focused bit is “0” or “1” by focusing only on the current consumption of a specific bit.

これに対して、DPA攻撃では、乱数で発生させた1000個程度の平文をICカードに搭載されたDESの暗号エンジンで暗号化し、その時の消費電流を統計処理する事により、ICカード内に格納されている鍵の取り出しが可能である事を示した。この攻撃は、DESの演算フロー内で鍵情報に関連したノードであればどこでも攻撃可能である。例えばSボックスは、F関数の入力値(32ビット)を48ビットに拡張後、鍵スケジュール部で生成した各ラウンド鍵と排他論理和値が入力となる。このラウンド鍵(48ビット)は、64ビットの暗号鍵のパリティを除く56ビットに対してビット並べ替えを行ない、その結果のうちの8ビット破棄したものであるため、48ビットの鍵データはそのまま残っている。従って、SボックスのDPA攻撃により48ビットの鍵データが得られれば、残り8ビットは2=256回の全数攻撃で容易に求める事ができる。以下に、Sボックスの出力ノードに対して攻撃するときの手順を示す。 On the other hand, in the DPA attack, about 1000 plaintexts generated by random numbers are encrypted by the DES encryption engine mounted on the IC card, and the current consumption at that time is statistically processed and stored in the IC card. It was shown that it is possible to take out the key that has been used. This attack can be performed at any node related to the key information in the DES calculation flow. For example, in the S box, after the input value (32 bits) of the F function is expanded to 48 bits, each round key generated by the key schedule unit and the exclusive OR value are input. This round key (48 bits) is obtained by rearranging the bits of 56 bits excluding the parity of the 64-bit encryption key and discarding 8 bits of the result, so that the 48-bit key data remains as it is. Remaining. Therefore, if 48-bit key data is obtained by the SPA DPA attack, the remaining 8 bits can be easily obtained by 2 8 = 256 exhaustive attacks. The procedure for attacking the output node of the S box is shown below.

(処理1)乱数で1000個程度の平文(M1〜M1000)を発生させ、これをICカードに入れてDESで暗号化する。その時の消費電流波形を測定して平文毎に保持する。
(処理2)DESのシミュレータで鍵を仮定して平文(M1〜M1000)を暗号化する。そして、着目ノード(例えばSボックスの1つ「S1」の最下位の出力ビット)が"0"か"1"かにより、各平文に対応する消費電力波形を分類し、各グループの平均消費電流波形を求める。
G0=Σ{着目ノードの出力ビットが"0"の消費電力波形}/m
ただし、mは、該当する平文の数
G1=Σ{着目ノードの出力ビットが"1"の消費電力波形}/n
ただし、nは、該当する平文の数
(処理3)消費電流波形の差分(G0−G1)を計算。
この差分波形に、ピークが発生した場合は、
着目ノードの推定した部分の鍵は正しいと判定し、次のSボックス(例えば「S2」)の鍵を(処理2)で求める。
ピークが発生しない場合は、
着目ノードの推定した部分の鍵は間違いと判定し、仮定した鍵(「S1」部分)を変えて(処理2)で再び統計処理を行なう。
(Process 1) About 1000 plaintexts (M1 to M1000) are generated with random numbers, which are put in an IC card and encrypted with DES. The current consumption waveform at that time is measured and held for each plaintext.
(Process 2) The DES simulator encrypts the plaintext (M1 to M1000) assuming a key. Then, the power consumption waveform corresponding to each plaintext is classified according to whether the node of interest (for example, the least significant output bit of one “S1” of the S box) is “0” or “1”, and the average current consumption of each group Find the waveform.
G0 = Σ {power consumption waveform when the output bit of the node of interest is “0”} / m
However, m is the number of corresponding plaintexts G1 = Σ {power consumption waveform with output bit of target node “1”} / n
However, n is the number of corresponding plaintexts. (Process 3) Calculate the difference (G0-G1) in the current consumption waveform.
If a peak occurs in this differential waveform,
The key of the estimated part of the node of interest is determined to be correct, and the key of the next S box (for example, “S2”) is obtained in (Process 2).
If no peak occurs,
The key of the part estimated by the node of interest is determined to be wrong, and the assumed key ("S1" part) is changed and the statistical process is performed again in (Process 2).

この手順により、各Sボックス(S1〜S8)から6ビットずつ、計48ビットの鍵を求め、残り8ビットは256回の全数検索により求める。ここで、(処理3)で、想定鍵が実際の鍵と一致した場合に、統計処理した消費電流波形の差分にピークが現われる理由について説明する。   By this procedure, a key of 48 bits in total is obtained from each S box (S1 to S8) by 6 bits, and the remaining 8 bits are obtained by exhaustive search of 256 times. Here, the reason why a peak appears in the difference of the consumption current waveform subjected to the statistical processing when the assumed key matches the actual key in (Process 3) will be described.

鍵が分かっている場合、複数の平文をその鍵で暗号化し、DESのアルゴリズム中のあるラウンドでの着目ノード(例えば「S1」の最下位出力ビット)が"0"か"1"かにより2つのグループに分類した場合、各グループで着目ノードには同じデータが出力されるため、これに起因する電流がほぼ同じタイミングで流れている。このデータ出力の電流は微量だが、着目ノードで同じ出力を出すもの同士を集めるとその個数分だけ電流値が積算される。   If the key is known, a plurality of plaintexts are encrypted with the key, and 2 depending on whether the node of interest (for example, the least significant output bit of “S1”) in a round in the DES algorithm is “0” or “1”. When classified into one group, since the same data is output to the node of interest in each group, currents resulting from this flow at almost the same timing. The current of the data output is very small, but if the nodes that produce the same output at the node of interest are collected, the current value is integrated by that number.

この分類を行なう時、S1の出力データを元に分類するため、同時に動作している他のSボックス(S2〜S8)の入力はランダムな値となり、その出力にはランダムなデータが現われ、その電流の流れるタイミングは様々である。そして、これら全ての電流の総和がSボックス動作時の消費電流となる。したがって、データ数を十分大きく(例えば1000個のデータ)取り、「S1」の最下位ビットのデータに応じて2つのグループに分類した場合、両グループには、「S1」の最下位ビット以外のビット及び「S2」〜「S8」の各ビットにはほぼ同じ数の"0"と"1"が現われている。一方、「S1」の最下位ビットの出力電流だけは、一方のグループには"0"の出力電流だけが、他方のグループには"1"の出力電流だけが現われているため、両グループの消費電流の平均の差分を採ると、「S1」の最下位ビット以外のビット及び「S2」〜「S8」の出力電流は相殺され、「S1」の最下位ビットの出力電流に起因する電流だけがピークとして現われる。   When this classification is performed, since the classification is based on the output data of S1, the inputs of the other S boxes (S2 to S8) operating at the same time are random values, and random data appears at the output. The timing of current flow varies. The sum of all these currents becomes the current consumption during the S box operation. Therefore, when the number of data is sufficiently large (for example, 1000 pieces of data) and classified into two groups according to the data of the least significant bit of “S1”, both groups have other than the least significant bit of “S1”. The same number of “0” s and “1” s appear in the bits and each bit of “S2” to “S8”. On the other hand, only the output current of the least significant bit of “S1”, only the output current of “0” appears in one group and only the output current of “1” appears in the other group. Taking the average difference in current consumption, the bits other than the least significant bit of “S1” and the output currents of “S2” to “S8” cancel each other, and only the current resulting from the output current of the least significant bit of “S1” Appears as a peak.

以上は、鍵が分かっている場合の説明であり、鍵が分かっていれば、その鍵と平文をシミュレータに入力すれば着目するノードの出力値が求まるため、着目ノードの値に応じて2つのグループに分ける事は可能であり、両グループの平均を採ってその差分を求めれば、ピーク電流波形がえられる。しかし、鍵が分かっていない場合、鍵を推定して、その鍵と平文をシミュレータに入力して着目ノード(例えば「S1」の最下位ビットの出力)のシミュレーション結果に応じて、対応する平文での実測定の電流値を分類して各グループで平均を採って両者の差分を採った時、
(a)ピーク電流が現われる→推定した鍵データの中の「S1」の入力ビットは正しい
(b)ピーク電流が現われない→推定した鍵データの中の「S1」の入力ビットは間違い
と判定できる。「S1」の入力ビットが間違いと判定された場合、別の「S1」を設定して同じ評価を行なう。
The above is an explanation when the key is known. If the key is known, the output value of the node of interest can be obtained by inputting the key and plaintext into the simulator. It can be divided into groups, and the peak current waveform can be obtained by taking the average of both groups and finding the difference. However, if the key is not known, the key is estimated, the key and plaintext are input to the simulator, and the corresponding plaintext is input according to the simulation result of the node of interest (for example, the output of the least significant bit of “S1”). When classifying the current values of actual measurements and taking the average of each group and taking the difference between the two,
(A) Peak current appears → Input bit of “S1” in the estimated key data is correct (b) Peak current does not appear → Input bit of “S1” in the estimated key data can be determined to be incorrect . If it is determined that the input bit of “S1” is wrong, another “S1” is set and the same evaluation is performed.

「S1」の入力ビットは6ビットであるため、最大2=64回繰り返せば「S1」の正しい鍵は得られる。この操作を他のSボックスについて求めていった場合、この攻撃でS−box の入力ビットに関係する48ビットの鍵は全て求める事が出来る。残り8ビットは全数検索しても2=256回の攻撃で求める事ができる。この様に、DESの攻撃は、256=7.2×1016回の攻撃を行なわなくても、2×8=512回の統計処理と2=256回の全数検索で秘密鍵を求める事が可能となる。 Since the input bits of “S1” are 6 bits, the correct key of “S1” can be obtained by repeating 2 6 = 64 times at the maximum. If this operation is requested for another S box, all 48-bit keys related to the input bits of the S-box can be obtained by this attack. The remaining 8 bits can be obtained with 2 8 = 256 attacks even if all the search is performed. In this way, the DES attack does not require 2 56 = 7.2 × 10 16 attacks, and the secret key is obtained by 2 6 × 8 = 512 statistical processing and 2 8 = 256 exhaustive searches. It becomes possible to ask.

これに対抗する手段としては、通常のDESのフローと異なるフローでDES演算を実行する回路を搭載すれば良い。DPA攻撃は、DESのシミュレータと実際のICが同じ演算フローで動作する事を前提にしているため、ICを異なる演算フローで設計すれば、仮に正しい鍵でシミュレータで演算して、着目ノードの値に基づいて実デバイスで測定した電流波形をグループ分けしても、演算フローが異なるため、実際の着目ノードの値は各グループで同じ値とならず、結果的にグループ間の平均電流の差分を取ってもピークが現われず、DPA攻撃に対して耐性を持つ。   As a means to counter this, a circuit that executes a DES operation with a flow different from a normal DES flow may be mounted. Since the DPA attack is based on the premise that the DES simulator and the actual IC operate with the same calculation flow, if the IC is designed with a different calculation flow, the simulator calculates with the correct key and the value of the node of interest Even if the current waveforms measured with the actual device are grouped based on, the calculation flow is different, so the actual value of the target node is not the same in each group, and as a result, the difference in the average current between the groups Even if it is taken, no peak appears, and it is resistant to DPA attacks.

この構成を開示した従来技術として、特許文献1がある。この特許文献1では、F関数の入力そのままの値(ポジ)と反転値(ネガ)を生成し、拡張関数に入力する値をどちらにするかを乱数で選択する。この構成では、Sボックスも通常のもの(ポジ)と反転データに対応したもの(ネガ)の2種類を準備する必要があり、回路規模の増大につながる。   There exists patent document 1 as a prior art which disclosed this structure. In Patent Document 1, a value (positive) and an inverted value (negative) as they are input to the F function are generated, and a value to be input to the extension function is selected by a random number. In this configuration, it is necessary to prepare two types of S box, that is, a normal one (positive) and one corresponding to inverted data (negative), which leads to an increase in circuit scale.

また、特許文献2では、初期置換(IP)されたデータを乱数で選択された固定値とEOR演算した値をLとRに分けて演算を行ない、F関数内ではセッション鍵の他に、別の乱数で選択された固定値との排他論理和演算した値をSボックスに入力している。なお、Sボックスは、F関数内で乱数により選択する固定値の個数に対応したセット数だけ準備し、乱数で選択された固定値に対応するSボックスが選択される。この構成をとると、DPAに対する耐性は格段に向上するが、複数セットのSボックスを準備する必要があり、通常のDESに比べて回路規模が数倍大きくなる。   Further, in Patent Document 2, the data obtained by initial replacement (IP) is calculated by dividing a fixed value selected by a random number and a value obtained by EOR into L and R, and in the F function, in addition to the session key, A value obtained by performing an exclusive OR operation with a fixed value selected with a random number is input to the S box. Note that the S boxes are prepared by the number of sets corresponding to the number of fixed values selected by random numbers in the F function, and the S boxes corresponding to the fixed values selected by random numbers are selected. With this configuration, the resistance to DPA is significantly improved, but it is necessary to prepare a plurality of sets of S boxes, and the circuit scale is several times larger than that of a normal DES.

暗号処理を実行する例えばICモジュールは、例えば駅の改札などの様々なゲート、あるいはショッピングセンターなどで盛んに利用されるようになっており、小型化および処理の迅速化の要求が厳しくなってきている。従って、処理アルゴリズムを複雑化させることなく、かつ、電力解析に対する耐性のある構成が必要とされている。
特開2002−311826号公報 特開2002−366029号公報
For example, IC modules that execute cryptographic processing are actively used in various gates such as station ticket gates, shopping centers, and the like, and demands for downsizing and speeding up of processing have become strict. Yes. Therefore, there is a need for a configuration that does not complicate the processing algorithm and is resistant to power analysis.
JP 2002-31826 A JP 2002-366029 A

本発明は、上記問題点に鑑みてなされたものであり、処理アルゴリズムを複雑化させることなく、暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動の検出等に基づく電力解析による暗号解析の困難性を高めることを可能とした暗号処理装置を提供することを目的とする。   The present invention has been made in view of the above problems, and without complicating the processing algorithm, the cryptographic analysis based on the power analysis based on the detection of power consumption fluctuations associated with the regular processing of the cryptographic processing sequence. It is an object of the present invention to provide a cryptographic processing apparatus that can increase the difficulty.

本発明の第1の側面は、
ラウンド関数の繰り返し処理を含む暗号演算処理を実行する暗号処理装置であり、
各ラウンド毎にラウンド関数対応のデータ処理を実行する関数演算部と、
前記関数演算部における各ラウンドの演算結果としての中間データを格納するデータ格納レジスタと、
乱数を格納する乱数レジスタと、
前記データ格納レジスタと前記乱数レジスタとを前記関数演算部に対して選択的に接続するスイッチ部と、
前記スイッチ部の切り替え制御を実行する制御部とを有し、
前記制御部は、
前記スイッチ部を、ラウンド遷移時において前記乱数レジスタの格納乱数を前記関数演算部に出力し、その後、前記データ格納レジスタに格納された中間データを出力するように接続切り替え制御を行なう構成であることを特徴とする暗号処理装置にある。
The first aspect of the present invention is:
A cryptographic processing device that performs cryptographic computation processing including round function iteration processing,
A function operation unit that executes data processing corresponding to the round function for each round;
A data storage register for storing intermediate data as a calculation result of each round in the function calculation unit;
A random number register for storing random numbers;
A switch unit that selectively connects the data storage register and the random number register to the function calculation unit;
A control unit that performs switching control of the switch unit,
The controller is
The switch unit is configured to perform connection switching control so that the random number stored in the random number register is output to the function calculation unit at the time of a round transition, and then the intermediate data stored in the data storage register is output. In the cryptographic processing device characterized by the above.

さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、前記スイッチ部の接続切り替え処理を各ラウンド毎に繰り返し実行し、各ラウンドの開始時点において前記乱数レジスタの格納乱数を前記関数演算部に出力し、同一ラウンドの所定時間後に前記データ格納レジスタに格納された中間データを前記関数演算部に出力する接続切り替え制御を実行する構成であり、前記データ格納レジスタには、ラウンドの終了時において、中間データに基づく前記関数演算部の演算結果としての新たな中間データが格納されるようにスイッチ制御を行なう構成であることを特徴とする。   Further, in one embodiment of the cryptographic processing apparatus of the present invention, the control unit repeatedly executes connection switching processing of the switch unit for each round, and stores the random number stored in the random number register at the start time of each round. It is configured to execute connection switching control that outputs to the calculation unit and outputs intermediate data stored in the data storage register to the function calculation unit after a predetermined time of the same round, and the data storage register has an end of round In some cases, the switch control is performed so that new intermediate data as a calculation result of the function calculation unit based on the intermediate data is stored.

さらに、本発明の暗号処理装置の一実施態様において、前記スイッチ部は、前記データ格納レジスタに接続された配線パス上に構成されていることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the switch unit is configured on a wiring path connected to the data storage register.

さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、さらに、乱数生成手段を有し、前記乱数生成手段は、各ラウンド毎に異なる乱数を生成し、各ラウンドの遷移時において、ラウンド毎に異なる乱数を前記関数演算部に出力する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the cryptographic processing apparatus further includes random number generation means, wherein the random number generation means generates a different random number for each round, and at the time of transition of each round In the above, the random number that is different for each round is output to the function calculation unit.

さらに、本発明の暗号処理装置の一実施態様において、前記関数演算部は、非線形変換部としてのSボックスを有し、前記データ格納レジスタは、前記Sボックスによる非線形変換処理を含むラウンド関数演算処理の結果データを格納する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the function calculation unit has an S box as a non-linear conversion unit, and the data storage register includes a round function calculation process including a non-linear conversion process by the S box. The result data is stored.

さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、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 detection of power consumption fluctuations associated with regular processing of cryptographic processing sequences without complicating the processing algorithm Is realized.

本発明の構成では、例えばDESなど複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置において、ラウンド関数処理を実行する、いわゆるF関数部に対してラウンド遷移時に乱数を入力し、その後、レジスタに格納された中間データを出力して演算処理を実行する構成とした。本構成により、ラウンド遷移時には乱数に基づくSボックス出力が発生し、また、レジスタ接続パスにおける電流または電位変動が発生する。従って、これらは各ラウンドにおいて適用される秘密情報としてのセッション鍵(ラウンド鍵)の構成ビット情報と無関係な電流または電位変動となり、Sボックスの出力やレジスタ接続パスの電流または電位変動に基づく電力差分解析(DPA:Differential Power Analysis)による秘密情報の解析が不可能となり、セキュリティレベルの高い暗号処理装置が実現される。   In the configuration of the present invention, a random number is input to a so-called F function unit that executes round function processing in a cryptographic processing device that executes a cryptographic algorithm including repetitive processing of a multi-stage round function, such as DES. Thereafter, the intermediate data stored in the register is output to execute the arithmetic processing. With this configuration, an S box output based on a random number is generated at the time of a round transition, and a current or potential fluctuation occurs in the register connection path. Therefore, these are current or potential fluctuations unrelated to the configuration bit information of the session key (round key) as secret information applied in each round, and the power difference based on the current or potential fluctuation of the output of the S box or the register connection path Analysis of secret information by analysis (DPA: Differential Power Analysis) becomes impossible, and a cryptographic processing apparatus with a high security level is realized.

本発明の構成によれば、スイッチ制御による乱数入力構成を加えるといった簡易な構成によって、電力差分解析(DPA)に基づく攻撃に対する耐性の高い暗号処理装置が実現される。乱数入力を各ラウンドにおいて実行することにより、Sボックスの出力やレジスタ接続パスの電流または電位変動は秘密情報(ラウンド鍵構成ビット情報)と無関係となり、DPA耐性のある暗号処理装置が実現される。   According to the configuration of the present invention, a cryptographic processing device having high resistance to an attack based on power difference analysis (DPA) is realized with a simple configuration in which a random number input configuration by switch control is added. By executing random number input in each round, the output of the S box and the current or potential fluctuation of the register connection path become independent of the secret information (round key configuration bit information), and a DPA-resistant cryptographic processor is realized.

以下、本発明の暗号処理装置の詳細について説明する。本発明は、例えば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 mixing function of a plurality of stages (16 stages). Normally, when designing an execution circuit for the DES calculation flow, a configuration is adopted in which one stirrer function portion that repeats 16 times is created and operated 16 times.

具体的なかきまぜ関数の回路構成について、図4を参照して説明する。図4は、Sボックス(Sbox)204を持つF関数部200の構成および中間データ記憶部としてのLレジスタ211、Rレジスタ212を持つ暗号処理デバイスの構成例である。   A specific circuit configuration of the stirring function will be described with reference to FIG. FIG. 4 shows a configuration example of an F function unit 200 having an S box 204 and an encryption processing device having an L register 211 and an R register 212 as intermediate data storage units.

図1〜図3を参照して説明した複数段(16段)の変換処理を実行する場合、各処理段毎に生成する中間データがLレジスタ211、Rレジスタ212に格納され、次の処理段では、Lレジスタ211、Rレジスタ212から中間データが取り出されて処理が実行される。   When executing the conversion process of a plurality of stages (16 stages) described with reference to FIGS. 1 to 3, intermediate data generated for each process stage is stored in the L register 211 and the R register 212, and the next process stage Then, the intermediate data is extracted from the L register 211 and the R register 212, and the process is executed.

スイッチ1[SW1]215、およびスイッチ2[SW2]216は、初期的には、"a"側に倒されていて、入力メッセージ231に対する初期置換部221における置換データが、Lレジスタ211、Rレジスタ212に格納され、その後、スイッチ1[SW1]215、およびスイッチ2[SW2]216は、"b"側に倒されて、16回のラウンド演算が実行される。そして、16回のラウンド演算の終了後、逆置換部222において、最後の置換を行なって暗号文232が出力される。   The switch 1 [SW1] 215 and the switch 2 [SW2] 216 are initially set to the “a” side, and the replacement data in the initial replacement unit 221 for the input message 231 is the L register 211 and the R register. The switch 1 [SW1] 215 and the switch 2 [SW2] 216 are then tilted to the “b” side, and 16 round operations are executed. Then, after 16 round operations are completed, the reverse replacement unit 222 performs the last replacement and outputs the ciphertext 232.

図4(a)は図2に示す構成に相当し、その詳細および中間データ記憶部としてのレジスタとの接続構成の詳細を示したのが図4(b)である。各ラウンドにおいて、前ラウンド段(n−1段)の処理結果、すなわち、L(n−1)、R(n−1)は、それぞれLレジスタ211、Rレジスタ212に格納され、Rレジスタ212の32ビットデータがF関数部200に入力され、置換部201において、32ビットから48ビットに拡大置換される。置換部201は、図3の置換部171に相当する。   FIG. 4A corresponds to the configuration shown in FIG. 2, and FIG. 4B shows the details and details of the connection configuration with a register as an intermediate data storage unit. In each round, the processing results of the previous round stage (n-1 stage), that is, L (n-1) and R (n-1) are stored in the L register 211 and the R register 212, respectively. The 32-bit data is input to the F function unit 200, and the replacement unit 201 performs expansion replacement from 32 bits to 48 bits. The replacement unit 201 corresponds to the replacement unit 171 in FIG.

さらに置換部201の出力に対して、鍵スケジュール部からラウンド鍵(セッション鍵ともよばれる)(k(n))202が適用されて、排他論理和(XOR)部203において排他論理和演算処理がなされ、処理結果がSボックス204に入力される。Sボックスにおいて非線形変換が実行され、Sボックス204出力が置換部205でビット入れ替え等の置換処理が実行された後、置換結果が、排他論理和(XOR)部206においてLレジスタ211の格納値と排他論理和演算処理がなされ、その結果が、Rレジスタ212の入力に現われる。Lレジスタ211の入力には、Rレジスタ212の出力が現われている。そして、Lレジスタ211,Rレジスタ212のクロック入力の立ち上がりで取り込まれる。これらの格納データがさらに次の段の処理において取り出されて同様の処理が繰り返されることになる。   Further, a round key (also called a session key) (k (n)) 202 is applied from the key schedule unit to the output of the replacement unit 201, and an exclusive OR operation process is performed in the exclusive OR (XOR) unit 203. The processing result is input to the S box 204. After the non-linear transformation is executed in the S box and the S box 204 output is subjected to a replacement process such as bit replacement in the replacement unit 205, the replacement result is converted into the stored value of the L register 211 in the exclusive OR (XOR) unit 206. An exclusive OR operation process is performed, and the result appears at the input of the R register 212. The output of the R register 212 appears at the input of the L register 211. Then, it is taken in at the rising edge of the clock input of the L register 211 and R register 212. These stored data are further extracted in the processing of the next stage, and the same processing is repeated.

図4に示すような実装では、F関数部200の出力が直接レジスタに蓄えられ、後段の処理には、レジスタからのデータ取り出しを実行して取り出したデータに基づく処理が実行される。   In the implementation as shown in FIG. 4, the output of the F function unit 200 is directly stored in the register, and in the subsequent processing, processing based on the data extracted by executing data extraction from the register is executed.

これらの処理を実行するデバイスは、トランジスタで構成された論理回路であり、前述したように、実行している演算と用いられているデータの値に関係する消費電力が発生することになる。例えば、レジスタに対する中間データの書き込みを繰り返し実行する演算を行っているデバイスの消費電力の変化を観察することで、レジスタ格納値の変化、S−box出力値の変化等の推定処理が実行され、秘密情報、具体的には、各ラウンドにおいて適用されているセッション鍵(ラウンド鍵)の解析を行うことが可能となる。   A device that performs these processes is a logic circuit composed of transistors, and as described above, power consumption related to the operation being performed and the value of the data being used is generated. For example, by observing a change in power consumption of a device that is performing an operation of repeatedly writing intermediate data to a register, an estimation process such as a change in a register storage value and a change in an S-box output value is performed. It is possible to analyze the secret information, specifically, the session key (round key) applied in each round.

具体的な秘密情報の解析処理例について、図4の回路図および図5のタイミングチャートを参照して説明する。なお、図5は、図4に示す回路を動作させた時の最初の数CLKのタイミング及び主要ノードの出力値である。   A specific example of secret information analysis processing will be described with reference to the circuit diagram of FIG. 4 and the timing chart of FIG. FIG. 5 shows the timing of the first number CLK when the circuit shown in FIG. 4 is operated and the output value of the main node.

図5に示すタイミングチャートにおいて、上段から、それぞれ
[CLK]:クロックタイミング
[DES]:DES暗号処理の実行タイミング
[S Key]:F関数部200において域用されるセッション鍵(ラウンド鍵)の推移
[L Reg]:Lレジスタ211の格納データ推移
[R Reg]:Rレジスタ212の格納データ推移
[S−box]:Sボックス(S−box)204の出力推移
を示している。
In the timing chart shown in FIG. 5, from the top, [CLK]: clock timing [DES]: execution timing of DES encryption processing [S Key]: transition of session key (round key) used in the F function unit 200 [L Reg]: Storage data transition of the L register 211 [R Reg]: Storage data transition of the R register 212 [S-box]: Output transition of the S box (S-box) 204.

図4の回路構成において、暗号化処理を実行する場合、入力された平文メッセージ231は最初の初期置換部221の置換関数(IP)によりデータの置換が行なわれ、その後、32ビットずつに分けられて、Lレジスタ211、Rレジスタ212に入力される。   In the circuit configuration of FIG. 4, when the encryption process is executed, the input plaintext message 231 is replaced with data by the replacement function (IP) of the initial initial replacement unit 221 and then divided into 32 bits. Are input to the L register 211 and the R register 212.

図5に示すタイミングチャートに示すように、クロックの立ち上りで、初期置換部221から出力されたデータは、各レジスタ211,212に取込まれる。   As shown in the timing chart shown in FIG. 5, the data output from the initial replacement unit 221 at the rising edge of the clock is taken into the registers 211 and 212.

この時、各レジスタ211,212に格納されている値は各々"L_init"から"L0"、"R_init"から"R0"に変化する。Rレジスタ212の出力値は、スイッチ1(SW1)215の切換(a→b)によってLレジスタ211の入力に接続されると共に、F関数部200にも入力される。   At this time, the values stored in the registers 211 and 212 change from “L_init” to “L0” and from “R_init” to “R0”, respectively. The output value of the R register 212 is connected to the input of the L register 211 by switching (a → b) of the switch 1 (SW1) 215 and is also input to the F function unit 200.

Lレジスタ211の出力値は、F関数部200の出力値と排他論理和(XOR)部206においてにおいて排他論理和(E−OR)演算が実行された後に、スイッチ2(SW2)216の切換(a→b)によってRレジスタ212の入力に接続される。   The output value of the L register 211 is changed from the output value of the F function unit 200 to the switch 2 (SW2) 216 after the exclusive OR (E-OR) operation is executed in the exclusive OR (XOR) unit 206 ( a → b) to the input of the R register 212.

そして、次のクロックの立ち上り(図5のRound1→Round2)で、Lレジスタ211及びRレジスタ212の値は各々"L0"及び"R0"から"L1"及び"R1"に更新される。この時、各レジスタの格納値"L1"及び"R1"と"L0"及び"R0"の関係は、ラウンド1におけるセッション鍵(ラウンド鍵)"K1"を用いて以下の式(数式1,2)で表わされる。

Figure 2006019872
Then, at the next clock rise (Round 1 → Round 2 in FIG. 5), the values of the L register 211 and the R register 212 are updated from “L0” and “R0” to “L1” and “R1”, respectively. At this time, the relationship between the stored values “L1” and “R1” of each register and “L0” and “R0” is expressed by the following formulas (formulas 1, 2) using the session key (round key) “K1” in round 1. ).
Figure 2006019872

一般的に、ラウンドn(Roundn)での関係式は、セッション鍵(ラウンド鍵)"Kn"を用いて以下の式(数式3,4)で表わされる。

Figure 2006019872
Generally, a relational expression in round n (Roundn) is expressed by the following expressions (Expressions 3 and 4) using a session key (round key) “Kn”.
Figure 2006019872

この動作が16回繰り返えされる。そして、各ラウンドnでのS−boxの出力[Sout_n]は、下式(数式5)で表される。

Figure 2006019872
This operation is repeated 16 times. The output [Sout_n] of the S-box in each round n is expressed by the following formula (Formula 5).
Figure 2006019872

この式(数式5)でEX(A)は、入力Aに対する置換部(拡張関数)201の出力を示し、S[B]は、入力Bに対するSボックス(S−box)204における非線形変換の出力を表わす。   In this equation (Equation 5), EX (A) indicates the output of the replacement unit (extended function) 201 for the input A, and S [B] is the output of the nonlinear transformation in the S box (S-box) 204 for the input B. Represents.

この構成において、電力解析(DPA)攻撃のターゲットとなるノードは、以下のノードとなる。
(1)S−boxの出力
(2)Lレジスタ及びRレジスタの出力
である。
以下、上記(1)と(2)の出力解析の詳細について説明する。
In this configuration, the nodes that are targets of the power analysis (DPA) attack are the following nodes.
(1) Output of S-box (2) Output of L register and R register
The details of the output analysis (1) and (2) will be described below.

(1)S−box204の出力の解析処理について
S−box204の出力解析を目的とした攻撃は、DESシミュレータ(simulator)で、鍵を仮定してDES演算し、その結果で着目するS−box204の出力ビットの値に応じて複数の平文で測定した消費電流波形をグループ分けし、各々のグループの平均電流の差分でピーク電流が発生するか否かで仮定した鍵の妥当性を判断する事により行なう。
(1) About the analysis processing of the output of the S-box 204 The attack for the purpose of analyzing the output of the S-box 204 is a DES simulator (simulator) that performs a DES operation assuming a key, and the result of the S-box 204 of interest By grouping the current consumption waveforms measured in multiple plaintexts according to the value of the output bit, and determining the validity of the assumed key based on whether or not the peak current is generated by the difference in the average current of each group Do.

図5は、先に述べたように、図4に示す回路を動作させた時の最初の数CLKのタイミング及び主要ノードの出力値の遷移を示している。S−box204の出力は、動作がラウンド1(Round1)に切り換わった後、拡張関数、セッション鍵とのE−OR演算及びS−boxでの非線形演算後に出力される。ラウンド1への切換前のS−box204の出力は、ラウンド演算開始前のRレジスタ212の値を"R−init"、セッション鍵の生成回路からF関数部200に出力されている値を"K_init"とした場合、下記の式(数式6)に示す値となっている。

Figure 2006019872
FIG. 5 shows the transition of the timing of the first number CLK and the output value of the main node when the circuit shown in FIG. 4 is operated as described above. The output of the S-box 204 is output after the operation is switched to Round 1 (Round 1), after the E-OR operation with the extension function and the session key, and the non-linear operation in the S-box. The output of the S-box 204 before switching to round 1 is “R-init” as the value of the R register 212 before starting the round operation, and “K_init” as the value output from the session key generation circuit to the F function unit 200. In this case, the value is shown in the following formula (Formula 6).
Figure 2006019872

なお、R_init,K_initは、DES演算開始前のRレジスタ212の数値とセッション鍵(ラウンド鍵)の生成回路の出力を示し、電源投入直後のDES演算では通常同じ数値、すなわち固定値となっている。従って、上記(数式6)式の値も、電源投入直後は固定値となっている。   R_init and K_init indicate the value of the R register 212 before the start of the DES calculation and the output of the session key (round key) generation circuit. In the DES calculation immediately after the power is turned on, they are usually the same value, that is, a fixed value. . Therefore, the value of the above (Expression 6) is also a fixed value immediately after the power is turned on.

そして、ラウンド1のCLKの立ち上りで、Rレジスタ212には"R0"が取り込まれてF関数部200に入力されるとともに、セッション鍵の生成回路からはラウンド1の鍵である"K1"がF関数部に入力される。これにより、S−box204の出力は下記の式(数式7)によって示される値に変化する。

Figure 2006019872
Then, at the rise of CLK in round 1, “R0” is taken into the R register 212 and input to the F function unit 200, and “K1”, which is the key for round 1 from the session key generation circuit, is F. Input to the function section. As a result, the output of the S-box 204 changes to a value represented by the following equation (Equation 7).
Figure 2006019872

これより、電源投入直後のDES演算でラウンド1へ切り換わった時のS−box204の出力変化及びこのS−box204の出力変化に伴なう電流は、図6に示すようになる。   As a result, the output change of the S-box 204 and the current accompanying the output change of the S-box 204 when switching to round 1 in the DES calculation immediately after the power is turned on are as shown in FIG.

図6に示すように、電流が流れるのは、下式(数式8)において"1"の立つビットと一致する。

Figure 2006019872
As shown in FIG. 6, the current flows in accordance with the bit where “1” stands in the following formula (Formula 8).
Figure 2006019872

上記式(数式8)において"1"の立つビットにおいて、S−box204の出力変化に伴なう電流が発生する。   In the bit where “1” is set in the above equation (Equation 8), a current accompanying the change in the output of the S-box 204 is generated.

次に、(2)Lレジスタ及びRレジスタの出力解析の詳細について説明する。
Lレジスタ211及びRレジスタ212の出力解析において解析可能な電流は、各レジスタの格納データに起因する電流であり、新たなデータを各レジスタに格納する時、元のデータと異なるビットの存在に起因する電流である。
Next, details of (2) output analysis of the L register and the R register will be described.
The current that can be analyzed in the output analysis of the L register 211 and the R register 212 is a current caused by the data stored in each register. When new data is stored in each register, it is caused by the presence of a bit different from the original data. Current.

DPA攻撃は(1)S−boxの出力解析と同様に鍵を仮定してシミュレーションを行ない、その結果で着目するレジスタのデータ格納の前後でのビットの変化に応じて消費電流波形をグループ分けし、両グループの消費電流の平均波形の差分でピーク電流が発生するか否かで仮定した鍵の妥当性を判断するという処理として実行される。   In the DPA attack, (1) Simulation is performed assuming the same key as in the S-box output analysis, and the current consumption waveforms are grouped according to the bit change before and after the data storage of the register of interest as a result. This is executed as a process of determining the validity of the assumed key based on whether or not the peak current is generated based on the difference between the average waveforms of the consumption currents of both groups.

DPA攻撃は、例えば図5に示すラウンド2(Round2)のクロックの立ち上り時のレジスタへのデータ格納時点で行なう。図5に示すタイミングチャートにおいて、ラウンド2(Round2)の開始時点で、Rレジスタ212の出力値は"R0"から"R1"に変化する。この時、着目するビットの値の組合せ及び電流の有無との関係は、図7に示す関係となる。   The DPA attack is performed, for example, when data is stored in the register at the rising edge of the round 2 (Round 2) clock shown in FIG. In the timing chart shown in FIG. 5, at the start of Round 2 (Round 2), the output value of the R register 212 changes from “R0” to “R1”. At this time, the relationship between the combination of bit values of interest and the presence / absence of current is the relationship shown in FIG.

この時、電流が流れるビットは、実デバイスで、下記式(数式9)において、"1"が立つビットである。

Figure 2006019872
At this time, the bit through which the current flows is a real device, and is a bit in which “1” stands in the following formula (formula 9).
Figure 2006019872

上記式で、"1"が立つビットとは、すなわち、ラウンドの前後でビットの値が置き換わる場合であるが、これは推定した鍵が正しい場合のDESシミュレータでの演算結果と一致し、なおかつR1は式(数式2)で示される様にラウンド鍵の成分"K1"を含んでいるため、DESシミュレータの演算値を基に消費電流を統計処理するとラウンド鍵"K1"の値、すなわち、秘密鍵のうちの48bitを導き出すことが可能となる。   In the above formula, the bit where “1” is set is a case where the value of the bit is replaced before and after the round, which matches the operation result in the DES simulator when the estimated key is correct, and R1. Includes the round key component “K1” as shown in the equation (Equation 2). Therefore, when the current consumption is statistically processed based on the calculated value of the DES simulator, the value of the round key “K1”, that is, the secret key Of these, 48 bits can be derived.

このような電力解析に対抗する構成としては、以下の構成が有効である。
(1)S−boxの出力解析に対する対抗手段としては、
実際のDESのS−boxの出力値の変化が、DESシミュレータでの演算値の変化と相関のない値に設定する構成とすればよい。
(2)Lレジスタ及びRレジスタの出力解析に対する対抗手段としては、
Lレジスタ及びRレジスタへのデータ格納時にレジスタの出力電流の流れるビットが、DESシミュレータで変化するビットと異なる構成とすればよい。
The following configuration is effective as a configuration that counters such power analysis.
(1) As a countermeasure against S-box output analysis,
What is necessary is just to set it as the structure which the change of the output value of S-box of an actual DES has a value uncorrelated with the change of the calculation value in a DES simulator.
(2) As a countermeasure against the output analysis of the L register and R register,
The bit through which the output current of the register flows when data is stored in the L register and R register may be different from the bit that changes in the DES simulator.

本発明は、上述の対抗手段を持つ回路構成を提案するものである。
本発明に係る暗号処理装置の持つ回路構成を図8に示し、本発明に係る暗号処理装置における暗号処理時の動作およびレジスタ格納データ、およびレジスタ入出力データ、S−box出力データのデータ推移を示すタイミングチャート図を図9に示す。
The present invention proposes a circuit configuration having the above countermeasures.
The circuit configuration of the cryptographic processing apparatus according to the present invention is shown in FIG. 8, and the operation at the time of cryptographic processing in the cryptographic processing apparatus according to the present invention and the data transition of the register input / output data and S-box output data The timing chart shown is shown in FIG.

図8は、先に説明した図4と同様のSボックス(Sbox)204を持つF関数部200の構成および中間データ記憶部としてのLレジスタ211、Rレジスタ212を持つ本発明に係る暗号処理装置を構成する回路構成を示している。F関数部200は、各ラウンド毎にラウンド関数対応のデータ処理を実行する関数演算部である。   8 shows the configuration of the F function unit 200 having the S box 204 similar to that shown in FIG. 4 and the cryptographic processing apparatus according to the present invention having the L register 211 and the R register 212 as intermediate data storage units. The circuit structure which comprises is shown. The F function unit 200 is a function calculation unit that executes data processing corresponding to a round function for each round.

図8に示す構成において、先に説明した図4の回路構成との差異は、Lレジスタ211とその出力配線であるパスL(path_L)311の間にスイッチ3(SW3)301を配置し、また、Rレジスタ212と、その出力配線であるパスR(path_R)312の間にスイッチ4(SW4)302とを挿入した点であり、本構成により、パスL(path_L)311、パスR(path_R)312以降の入力値を、L/Rレジスタの値と乱数(RN1,RN2)と切り換え可能としたものである。   In the configuration shown in FIG. 8, the difference from the circuit configuration shown in FIG. 4 is that the switch 3 (SW3) 301 is arranged between the L register 211 and the path L (path_L) 311 that is the output wiring thereof. , The switch 4 (SW4) 302 is inserted between the R register 212 and the path R (path_R) 312 which is the output wiring thereof. With this configuration, the path L (path_L) 311 and the path R (path_R) The input value after 312 can be switched between the value of the L / R register and the random number (RN1, RN2).

この2つのSW回路、スイッチ3(SW3)301とスイッチ4(SW4)302は、図示しない制御部の制御により動作する。制御部は例えばCPUであり、制御部は予め定められた制御シーケンスに従ってスイッチの切り替えを制御する。図9に示すタイミングチャートに従って、制御シーケンスについて詳細に説明する。   These two SW circuits, switch 3 (SW3) 301 and switch 4 (SW4) 302, operate under the control of a control unit (not shown). The control unit is, for example, a CPU, and the control unit controls switching of the switches according to a predetermined control sequence. The control sequence will be described in detail according to the timing chart shown in FIG.

2つのSW回路、スイッチ3(SW3)301とスイッチ4(SW4)302は、同じタイミングで動作する。図9に示すタイミングチャートにおいて、[SW]が、スイッチ3(SW3)301とスイッチ4(SW4)302の動作状態を示している。   The two SW circuits, switch 3 (SW3) 301 and switch 4 (SW4) 302 operate at the same timing. In the timing chart shown in FIG. 9, [SW] indicates the operating state of the switch 3 (SW3) 301 and the switch 4 (SW4) 302.

なお、図9に示すタイミングチャートにおいて、上段から、それぞれ
[CLK]:クロックタイミング
[DES]:DES暗号処理の実行タイミング
[S Key]:F関数部200において域用されるセッション鍵(ラウンド鍵)の推移
[SW]:スイッチ3(SW3)301とスイッチ4(SW4)302の切り替え(cとdの切り替え)推移
[L Reg]:Lレジスタ211の格納データ推移
[R Reg]:Rレジスタ212の格納データ推移
[path_L]:パスL(path_L)311のデータ推移
[path_R]:パスR(path_R)312のデータ推移
[S−box]:Sボックス(S−box)205の出力推移
を示している。
In the timing chart shown in FIG. 9, from the top, [CLK]: clock timing [DES]: execution timing of DES encryption processing [S Key]: session key (round key) used in the F function unit 200 [SW]: Transition of switch 3 (SW3) 301 and switch 4 (SW4) 302 (switching between c and d) [L Reg]: Transition of stored data in L register 211 [R Reg]: Transition of R register 212 Stored data transition [path_L]: Data transition of path L (path_L) 311 [path_R]: Data transition of path R (path_R) 312 [S-box]: Indicates output transition of S box (S-box) 205 .

図9に示すタイミングチャートから理解されるように、スイッチ3(SW3)301とスイッチ4(SW4)302は、各ラウンドの最初の一定期間は乱数側である"d"側に接続され、乱数値(RN1またはRN2)がそれぞれパスL(path_L)311、パスR(path_R)312に出力され、以後の演算が実行される。   As understood from the timing chart shown in FIG. 9, the switch 3 (SW3) 301 and the switch 4 (SW4) 302 are connected to the “d” side, which is the random number side, for the first fixed period of each round. (RN1 or RN2) are output to the path L (path_L) 311 and the path R (path_R) 312 respectively, and the subsequent calculation is executed.

各ラウンドの最初の一定期間の経過後は、スイッチ3(SW3)301とスイッチ4(SW4)302は、各レジスタ、すなわちLレジスタ211、Rレジスタ212側である"c"側に切り換えられ、Lレジスタ211、Rレジスタ212の格納値をパスL(path_L)311、パスR(path_R)312に出力し、以後の演算を実行する。スイッチ3(SW3)301とスイッチ4(SW4)302は、このスイッチ切換を、各ラウンド毎に繰り返し実行する。   After the elapse of the first fixed period of each round, the switch 3 (SW3) 301 and the switch 4 (SW4) 302 are switched to the respective registers, that is, the “c” side which is the L register 211 and the R register 212 side. The stored values of the register 211 and the R register 212 are output to a path L (path_L) 311 and a path R (path_R) 312 to perform subsequent operations. The switch 3 (SW3) 301 and the switch 4 (SW4) 302 repeatedly perform this switch switching every round.

本構成においても、Lレジスタ211、Rレジスタ212の格納値及びその出力ノードの値は従来構成の場合と変わらないが、Lレジスタ211、Rレジスタ212に対する各ラウンド開始時におけるデータ格納時には、Lレジスタ211、Rレジスタ212から、パスL(path_L)311、パスR(path_R)312への配線負荷が、スイッチ3(SW3)301とスイッチ4(SW4)302によって切り離されているため、各ラウンド開始時におけるLレジスタ211、Rレジスタ212の格納値の変化に伴なう消費電流は、Lレジスタ211、Rレジスタ212回路内の動作に起因する分だけとなり、従来構成に比べて激減し、DPA攻撃がかなり困難になる。   Also in this configuration, the stored values of the L register 211 and the R register 212 and the values of the output nodes thereof are not different from those in the conventional configuration, but when storing data at the start of each round for the L register 211 and the R register 212, the L register 211, since the wiring load from the R register 212 to the path L (path_L) 311 and the path R (path_R) 312 is disconnected by the switch 3 (SW3) 301 and the switch 4 (SW4) 302, each round starts. The current consumption associated with the change in the stored values of the L register 211 and R register 212 is only due to the operation in the L register 211 and R register 212 circuits. It becomes quite difficult.

一方、充放電電流を発生させる配線パスL(path_L)311は、各ラウンドにおけるスイッチ3(SW3)301の切り替え(cとdの切り替え)によって、乱数値を格納したレジスタであるRN1レジスタ331とLレジスタ211とに交互に接続され、また、配線パスR(path_R)312も、スイッチ4(SW4)302の切り替え(cとdの切り替え)によって、乱数値を格納したレジスタであるRN2レジスタ332とRレジスタ212とに交互に接続される。   On the other hand, the wiring path L (path_L) 311 for generating the charging / discharging current is connected to the RN1 register 331 and the L1 register 331 which are registers storing random numbers by switching the switch 3 (SW3) 301 in each round (switching between c and d). The wiring path R (path_R) 312 is also alternately connected to the register 211, and the switch 4 (SW4) 302 is switched (switching between c and d), and the RN2 register 332 and R are registers that store random numbers. Alternately connected to the register 212.

このため、例えばラウンド1(Round1)に切り換わった直後においては、F関数部200への入力は、乱数値を格納したレジスタであるRN2レジスタ332から、スイッチ4(SW4)302を介して、乱数値"RN2"が入力され、また、セッション鍵(ラウンド鍵)"K1"が入力される。   For this reason, for example, immediately after switching to Round 1 (Round 1), the input to the F function unit 200 is random from the RN2 register 332, which is a register storing random values, via the switch 4 (SW4) 302. A numerical value “RN2” is input, and a session key (round key) “K1” is input.

従って、このタイミングにおけるS−box204の出力は、図9にも示すように、下記の式(数式10)によって示される値から、式(数式11)によって示される値に遷移することになる。

Figure 2006019872
Therefore, as shown in FIG. 9, the output of the S-box 204 at this timing transitions from the value represented by the following formula (formula 10) to the value represented by the formula (formula 11).
Figure 2006019872

上記式において、EX(A)は、入力Aに対する置換部(拡張関数)201の出力を示し、S[B]は、入力Bに対するSボックス(S−box)204における非線形変換の出力を表わす。   In the above equation, EX (A) represents the output of the replacement unit (extension function) 201 for the input A, and S [B] represents the output of the nonlinear transformation in the S box (S-box) 204 for the input B.

ラウンド1(Round1)に切り換わった直後においてS−box204の出力は、上記式(数式10)によって示される値から、式(数式11)によって示される値に遷移する。ここで、上記式(数式10,11)において、
乱数[RN2]は、下記の(a)〜(d)のいずれの値とも無関係であり独立な値である。
(a)[R_init]:ラウンド1開始前のRレジスタ212の初期的な格納値、すなわち初期置換(IP)実行時の初期格納値、
(b)[K_init]:ラウンド1開始前のセッション鍵(ラウンド鍵)、
(c)[R0]:ラウンド1時点におけるRレジスタ212の格納値、
(d)[K1]:ラウンド1時点におけるセッション鍵(ラウンド鍵)、
Immediately after switching to Round 1 (Round 1), the output of the S-box 204 changes from the value represented by the above formula (Formula 10) to the value represented by the formula (Formula 11). Here, in the above formulas (Formulas 10 and 11),
The random number [RN2] is independent of any of the following values (a) to (d) and is an independent value.
(A) [R_init]: Initial stored value of R register 212 before the start of round 1, that is, initial stored value at the time of initial replacement (IP)
(B) [K_init]: Session key (round key) before the start of round 1
(C) [R0]: value stored in the R register 212 at the time of round 1;
(D) [K1]: Session key (round key) at the time of round 1

S−box204の出力が、ラウンド1の開始前後において、前述の式(数式10)に示す値から(数式11)式に示す値に変化した時の配線負荷の充放電が発生する場合は、下記式(数式12)においてビット1が立つ場合である。

Figure 2006019872
When the output of the S-box 204 changes before and after the start of round 1 and the wiring load is charged and discharged when the value shown in the equation (Equation 10) changes to the value shown in the equation (11), This is a case where bit 1 stands in the equation (Equation 12).
Figure 2006019872

上記式において、ビット1が立つ場合とは、ラウンド1の前後においてS−box204からの出力ビット値が変化する場合に相当する。   In the above formula, the case where bit 1 stands corresponds to the case where the output bit value from S-box 204 changes before and after round 1.

ラウンド1への遷移の後、所定時間経過後に、スイッチ4(SW4)302が、"d"から"c"に切り換わり、Rレジスタ212に格納された値[R0]がF関数部200に入力され、F関数部200内での演算が実行されて、S−box204の出力は、上記式(数式11)の値から、下式(数式13)の値に変化することになる。

Figure 2006019872
After a predetermined time has elapsed after the transition to round 1, the switch 4 (SW4) 302 switches from “d” to “c”, and the value [R0] stored in the R register 212 is input to the F function unit 200. Then, the calculation in the F function unit 200 is executed, and the output of the S-box 204 changes from the value of the above formula (Formula 11) to the value of the following formula (Formula 13).
Figure 2006019872

この時、S−box204の出力の変化に基づいて負荷配線の充放電が発生する場合は、下記式(数式14)においてビット1が立つ場合である。

Figure 2006019872
At this time, when charge / discharge of the load wiring occurs based on the change in the output of the S-box 204, bit 1 is set in the following equation (Equation 14).
Figure 2006019872

以上のビットの変化を、DPA攻撃行なう時のシミュレーションでの演算結果と比較する。図10に、S−box204の出力に基づくDPA攻撃を行なう場合のシミュレータにおけるグループ分けと、図8に示す本発明の暗号処理装置の回路構成におけるSボックスの出力値との対応を示す。   The above bit change is compared with the calculation result in the simulation when the DPA attack is performed. FIG. 10 shows the correspondence between the grouping in the simulator when performing the DPA attack based on the output of the S-box 204 and the output value of the S box in the circuit configuration of the cryptographic processing apparatus of the present invention shown in FIG.

図10は、鍵を仮定したときのシミュレータの算出値のうち、
(a1)ラウンド1開始前のSボックス出力値
(a2)ラウンド1開始後のSボックス出力値
(a3)ラウンド1の開始前後における電流の発生有無(1=電流発生)
(a4)グループ分け:(a3)の結果に基づいたグループ分けであり、電流発生あり=グループ1、電流発生なし=0 を示している。
FIG. 10 shows the calculated values of the simulator when the key is assumed.
(A1) S box output value before start of round 1 (a2) S box output value after start of round 1 (a3) Current generation before and after start of round 1 (1 = current generation)
(A4) Grouping: Grouping based on the result of (a3), with current generation = group 1 and no current generation = 0.

一方、実際のICの動作においては、F関数の入力の乱数[RN2]はシミュレータの算出値の4つの場合のいずれにおいても"0"と"1"を採りうるから、Sボックスの出力も前述の式(数式11)によって示される様に、0,1いずれの値も発生する可能性がある。   On the other hand, in the actual IC operation, the random number [RN2] of the input of the F function can take “0” and “1” in any of the four cases of the calculated values of the simulator. As shown by the equation (Equation 11), both 0 and 1 values may occur.

結果として、実際のSボックス(S−box)204の出力の変化は、図10に示すように、
(b1)ラウンド1開始前のSボックス出力値の変化
(b2)ラウンド1開始後のSボックス出力値の変化
は、0,1いずれの値も発生する。
As a result, the change in the output of the actual S box (S-box) 204 is as shown in FIG.
(B1) Change in the S box output value before the start of round 1 (b2) The change in the S box output value after the start of round 1 takes either 0 or 1 value.

従って、シミュレータの演算結果に基づいて消費電流波形を2つにグループ分けした場合、仮に仮定した鍵が正しい鍵で合ったとしても実際には両グループはほぼ同数の"0"と"1"を含み、両グループの差分を採ってもピークは現われない。   Therefore, when the consumption current waveform is divided into two groups based on the calculation result of the simulator, even if the assumed key matches with the correct key, both groups actually have the same number of “0” and “1”. Including the difference between the two groups, no peak appears.

次に、Rレジスタ212の負荷電流に対するDPA攻撃の場合について説明する。
ラウンド1(Round1)からラウンド2(Round2)への切り換わり時点では、スイッチ3(SW3)301とスイッチ4(SW4)302は、それぞれ乱数レジスタ(RN1レジスタ331とRN2レジスタ332)側である"d"に設定される。
Next, the case of a DPA attack on the load current of the R register 212 will be described.
At the time of switching from round 1 (Round 1) to round 2 (Round 2), the switch 3 (SW3) 301 and the switch 4 (SW4) 302 are on the random number register (RN1 register 331 and RN2 register 332) side, respectively. Set to "".

従って、パスL(path_L)311は、Lレジスタ格納値=L0から乱数値=RN1に変化し、パスR(path_R)312は、Rレジスタ格納値=R0から乱数値=RN2に変化する。この時、例えばパスR(path_R)312では、Rレジスタ格納値=R0から乱数値=RN2への変化に伴い、下記式(数式15)において、ビット1が立つ場合に充放電が起こる。

Figure 2006019872
Accordingly, the path L (path_L) 311 changes from the L register stored value = L0 to the random value = RN1, and the path R (path_R) 312 changes from the R register stored value = R0 to the random value = RN2. At this time, for example, in the path R (path_R) 312, charging / discharging occurs when bit 1 is set in the following equation (Equation 15) in accordance with the change from the R register stored value = R0 to the random value = RN2.
Figure 2006019872

しかし、この式(数式15)からも理解されるように、上記式(数式15)は、乱数値=RN2に依存しており、乱数[RN2]は0,1いずれの値も均等に発生する可能性があり、推定ビット値として[0]または[1]を設定したシミュレーションを行なってもピーク検出による情報解析は不可能となる。   However, as can be understood from this equation (Equation 15), the above equation (Equation 15) depends on the random value = RN2, and the random number [RN2] is generated equally in both 0 and 1. There is a possibility, and even if a simulation is performed with [0] or [1] set as the estimated bit value, information analysis by peak detection becomes impossible.

図11は、Rレジスタ212の負荷電流に対するDPA攻撃を行なう場合のシミュレータにおけるグループ分けと、図8に示す本発明の暗号処理装置の回路構成におけるRレジスタ212の負荷電流との対応を示す。   FIG. 11 shows the correspondence between the grouping in the simulator when performing a DPA attack against the load current of the R register 212 and the load current of the R register 212 in the circuit configuration of the cryptographic processing apparatus of the present invention shown in FIG.

図11において、シミュレータの算出値は、
(a1)ラウンド2開始前のパスR(path_R)312のデータ値
(a2)ラウンド2開始後のパスR(path_R)312のデータ値
(a3)ラウンド2の開始前後における充放電の発生有無(1=充放電発生)
(a4)グループ分け:充放電発生あり=グループ1、充放電発生なし=0
を示している。
In FIG. 11, the calculated value of the simulator is
(A1) Data value of path R (path_R) 312 before the start of round 2 (a2) Data value of path R (path_R) 312 after the start of round 2 (a3) Presence / absence of occurrence of charge / discharge before and after the start of round 2 (1 = Charge / discharge occurrence)
(A4) Grouping: Charging / discharging occurs = Group 1, Charging / discharging does not occur = 0
Is shown.

しかし、実際のラウンド1からラウンド2への遷移時には、スイッチ4(SW4)302は、RN2レジスタ332側である"d"に設定され、このときのRN2レジスタ332からの出力は0,1いずれの値も発生する可能性がある。   However, at the actual transition from round 1 to round 2, the switch 4 (SW4) 302 is set to “d” on the RN2 register 332 side, and the output from the RN2 register 332 at this time is either 0 or 1 Values can also occur.

結果として、ラウンド2の開始前後における実際のパスR(path_R)312の充放電の発生有無は前述の式(数式15)において、ビット1がたつ場合であり、図11(b1)、すなわち、
(b1)ラウンド2の開始前後における充放電の発生有無(1=充放電発生)
に示すように、0,1いずれの値も発生する。
As a result, whether or not the actual charging / discharging of the path R (path_R) 312 occurs before and after the start of round 2 is the case where bit 1 is present in the above equation (Equation 15), and FIG. 11 (b1), that is,
(B1) Presence / absence of charge / discharge before and after the start of round 2 (1 = charge / discharge occurrence)
As shown in the figure, both 0 and 1 values are generated.

従って、シミュレータの演算結果に基づいてパスR(path_R)312の充放電の発生有無について、2つにグループ分けした場合、仮に仮定した鍵が正しい鍵であったとしても実際には両グループはほぼ同数の"0"と"1"を含み、両グループの差分を採ってもピークは現われることがなく、パスR(path_R)312の充放電の発生有無に基づく解析は不可能となる。   Therefore, when the charging / discharging occurrence of the path R (path_R) 312 is divided into two groups based on the calculation result of the simulator, even if the assumed key is the correct key, both groups are actually almost Even if the same number of “0” and “1” is included and the difference between the two groups is taken, no peak appears, and analysis based on whether or not the path R (path_R) 312 is charged or discharged becomes impossible.

この状況は、パスL(path_L)311においても同様であり、パスL(path_L)311の充放電の発生有無状態に基づく情報解析は不可能である。   This situation is the same for the path L (path_L) 311, and information analysis based on whether the path L (path_L) 311 is charged or discharged is impossible.

ラウンド2への遷移後、予め設定された時間が経過すると、スイッチ3(SW3)301とスイッチ4(SW4)302は、それぞれ乱数レジスタ(RN1レジスタ331とRN2レジスタ332)側である"d"から"c"に切り換わり、Rレジスタ212に格納された値[R_0]がF関数部200に入力され、F関数部200内での演算が実行される。   When a preset time elapses after the transition to round 2, the switch 3 (SW3) 301 and the switch 4 (SW4) 302 are changed from “d” on the random number register (RN1 register 331 and RN2 register 332) side, respectively. Switching to “c”, the value [R — 0] stored in the R register 212 is input to the F function unit 200, and the calculation in the F function unit 200 is executed.

この時、パスL(path_L)311と、パスR(path_R)312は、各々、RN1→L1,RN2→R1に変化することになる。   At this time, the path L (path_L) 311 and the path R (path_R) 312 change from RN1 to L1 and RN2 to R1, respectively.

この中で、"R1"は、前述した式(数式2)から理解されるように、秘密情報であるセッション鍵(ラウンド鍵)"K1"の要素を含むデータであるが、パスR(path_R)312を介した電流値の変化を発生させる場合は、下式(数式16)において、[1]のたつ場合となる。

Figure 2006019872
In this, “R1” is data including the element of the session key (round key) “K1”, which is secret information, as understood from the above formula (Formula 2), but the path R (path_R). When the change in the current value via 312 is generated, the case of [1] in the following equation (Equation 16) is obtained.
Figure 2006019872

上記式において、ビット1が立つ場合とは、ラウンド2期間中において、ラウンド2遷移後、予め定められた時間経過後にスイッチ4(SW4)302が"d"から"c"へ切り換わり、その前後において、パスR(path_R)312を介した電流値の変化が発生した場合に相当する。この変化を観察する場合、上記式(数式16)から理解されるように、パスR(path_R)312を介した電流値の変化は、入力乱数[RN2]に依存する値となり、入力乱数[RN2]は0,1いずれの値も均等に発生する可能性があり、結果として、パスR(path_R)312を介した電流値の変化の発生確率も均等となり、推定ビット値として[0]または[1]を設定したシミュレーションを行なってもピーク検出による情報解析、すなわちDPA解析は不可能となる。   In the above equation, when bit 1 is set, the switch 4 (SW4) 302 switches from “d” to “c” after a predetermined time elapses after the transition of round 2 during the round 2 period. 2 corresponds to the case where a change in the current value via the path R (path_R) 312 occurs. When observing this change, as understood from the above formula (Formula 16), the change in the current value via the path R (path_R) 312 becomes a value depending on the input random number [RN2], and the input random number [RN2 ] May occur equally in both 0 and 1 values. As a result, the occurrence probability of a change in the current value via the path R (path_R) 312 is also equal, and [0] or [ Even if the simulation with 1] is performed, information analysis by peak detection, that is, DPA analysis is impossible.

なお、上述した実施例の説明において、乱数RN1,RN2は、それぞれ各ラウンド毎に発生させ、各ラウンド毎に異なる乱数を適用することが好ましい。すなわち、乱数生成手段を有し、乱数生成手段が各ラウンド毎に異なる乱数を生成して、各ラウンドの遷移時に、ラウンド毎に異なる乱数をF関数部に出力する構成とすることで、さらにDPA耐性の向上した暗号処理装置が実現される。   In the above description of the embodiment, it is preferable that the random numbers RN1 and RN2 are generated for each round and different random numbers are applied for each round. That is, it has a random number generation means, the random number generation means generates a different random number for each round, and outputs a different random number for each round to the F function unit at the transition of each round. A cryptographic processing apparatus with improved durability is realized.

具体的な例としては、例えば各ラウンド毎に1ビットの乱数値を発生させ、その値が"1"の場合には前のラウンドで用いた乱数を1ビットずらしてそのラウンドの乱数として適用するなどの構成としてもよい。この構成により、DPA耐性がさらに向上した暗号処理装置が実現される。   As a specific example, for example, a 1-bit random number value is generated for each round, and when the value is “1”, the random number used in the previous round is shifted by 1 bit and applied as a random number for that round. It is good also as a structure of these. With this configuration, an encryption processing apparatus with further improved DPA tolerance is realized.

最後に、上述の暗号処理を実行するデバイスとしてのICモジュール600の構成例を図12を参照して説明する。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図12に示すICモジュール600は、これら様々な機器に構成することが可能である。   Finally, a configuration example of the IC module 600 as a device that executes the above-described encryption processing will be described with reference to FIG. The above-described processing can be executed by, for example, various information processing apparatuses such as a PC, an IC card, a reader / writer, and the IC module 600 shown in FIG. 12 can be configured in these various devices.

図12に示す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. 12 executes encryption processing start and end, data transmission / reception control, data transfer control between components, and switch switching control described above, and other various programs. Processor. The memory 602 is a ROM (Read-Only-Memory) that stores programs executed by the CPU 601 or fixed data as calculation parameters, a program executed in the processing of the CPU 601, and a parameter storage area that changes as appropriate in the program processing, It consists of RAM (Random Access Memory) used as a work area. The memory 602 can be used as a storage area for key data and the like necessary for encryption processing. The data storage area is preferably configured as a memory having a tamper-resistant structure.

暗号処理部603は、例えば上述したDESアルゴリズムなど複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理部である。   The cryptographic processing unit 603 is a cryptographic processing unit that executes a cryptographic algorithm including a repetition process of a plurality of round functions such as the DES algorithm described above.

乱数発生器604は、前述の各ラウンドの遷移時にF関数部に入力すべき乱数の発生処理などを実行する。   The random number generator 604 executes processing for generating random numbers to be input to the F function unit at the time of transition of each round described above.

送受信部605は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。   The transmission / reception unit 605 is a data communication processing unit that performs data communication with the outside. For example, the data transmission / reception unit 605 performs data communication with an IC module such as a reader / writer, and outputs ciphertext generated in the IC module or an external reader. Data input from devices such as writers is executed.

なお、暗号処理部603において適用される各種の制御信号、例えば前述したスイッチの切り替え制御信号は、クロック606からのクロック信号をトリガにして動作するタイミング発生回路607において生成し、暗号処理部603に供給することが可能である。   Note that various control signals applied in the encryption processing unit 603, for example, the switch switching control signal described above, are generated in the timing generation circuit 607 that operates with the clock signal from the clock 606 as a trigger, and is sent to the encryption processing unit 603. It is possible to supply.

以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。   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.

なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。   The series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and executed.

なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   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 as required by the processing capability of the apparatus that executes the processes. 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.

本発明の構成では、例えばDESなど複数段のラウンド関数の繰り返し処理を含む暗号アルゴリズムを実行する暗号処理装置において、ラウンド関数処理を実行する、いわゆるF関数部に対してラウンド遷移時に乱数を入力し、その後、レジスタに格納された中間データを出力して演算処理を実行する構成とした。本構成により、ラウンド遷移時には乱数に基づくSボックス出力が発生し、また、レジスタ接続パスにおける電流または電位変動が発生する。従って、これらは各ラウンドにおいて適用される秘密情報としてのセッション鍵(ラウンド鍵)の構成ビット情報と無関係な電流または電位変動となり、Sボックスの出力やレジスタ接続パスの電流または電位変動に基づく電力差分解析(DPA:Differential Power Analysis)による秘密情報の解析が不可能となり、セキュリティレベルの高い暗号処理装置が実現される。   In the configuration of the present invention, a random number is input to a so-called F function unit that executes round function processing in a cryptographic processing device that executes a cryptographic algorithm including repetitive processing of a multi-stage round function, such as DES. Thereafter, the intermediate data stored in the register is output to execute the arithmetic processing. With this configuration, an S box output based on a random number is generated at the time of a round transition, and a current or potential fluctuation occurs in the register connection path. Therefore, these are current or potential fluctuations unrelated to the configuration bit information of the session key (round key) as secret information applied in each round, and the power difference based on the current or potential fluctuation of the output of the S box or the register connection path Analysis of secret information by analysis (DPA: Differential Power Analysis) becomes impossible, and a cryptographic processing apparatus with a high security level is realized.

本発明の構成によれば、スイッチ制御による乱数入力構成を加えるといった簡易な構成によって、電力差分解析(DPA)に基づく攻撃に対する耐性の高い暗号処理装置が実現される。乱数入力を各ラウンドにおいて実行することにより、Sボックスの出力やレジスタ接続パスの電流または電位変動は秘密情報(ラウンド鍵構成ビット情報)と無関係となり、DPA耐性のある暗号処理装置が実現される。   According to the configuration of the present invention, a cryptographic processing device having high resistance to an attack based on power difference analysis (DPA) is realized with a simple configuration in which a random number input configuration by switch control is added. By executing random number input in each round, the output of the S box and the current or potential fluctuation of the register connection path become independent of the secret information (round key configuration bit information), and a DPA-resistant cryptographic processor is realized.

DES暗号処理の基本構成を示す図である。It is a figure which shows the basic composition of a DES encryption process. ラウンド関数部の各ラウンドを構成する変換部の構成を示す図である。It is a figure which shows the structure of the conversion part which comprises each round of a round function part. F関数の構成を示す図である。It is a figure which shows the structure of F function. レジスタを持つ具体的なF関数部の回路構成を示す図である。It is a figure which shows the circuit structure of the concrete F function part which has a register. 図4に示す回路を動作させた時の最初の数CLKのタイミング及び主要ノードの出力値を説明するタイミングチャートを示す図である。FIG. 6 is a timing chart for explaining the timing of the first number CLK when the circuit shown in FIG. 4 is operated and output values of main nodes. 電源投入直後のDES演算でラウンド1へ切り換わった時のS−box204の出力変化及びこのS−box204の出力変化に伴なう電流値を示す図である。It is a figure which shows the electric current value accompanying the output change of S-box 204 when switching to round 1 by the DES calculation immediately after power-on, and the output change of this S-box 204. Rレジスタ212の出力値の"R0"から"R1"への変化に伴うパス上の電流の有無との関係について説明する図である。It is a figure explaining the relationship with the presence or absence of the electric current on the path | pass accompanying the change of the output value of R register | resistor 212 from "R0" to "R1". 本発明に係る暗号処理装置の持つ回路構成を説明する図である。It is a figure explaining the circuit structure which the encryption processing apparatus which concerns on this invention has. 本発明に係る暗号処理装置におけるレジスタ入出力データ、S−box出力データのデータ推移を示すタイミングチャートを示す図である。It is a figure which shows the timing chart which shows the data transition of the register input / output data in the encryption processing apparatus which concerns on this invention, and S-box output data. S−boxの出力に基づくDPA攻撃を行なう場合のシミュレータにおけるグループ分けと、図8に示す本発明の暗号処理装置の回路構成におけるSボックスの出力値との対応を示す図である。It is a figure which shows a response | compatibility with the grouping in the simulator in the case of performing the DPA attack based on the output of S-box, and the output value of S box in the circuit structure of the encryption processing apparatus of this invention shown in FIG. Rレジスタの負荷電流に対するDPA攻撃を行なう場合のシミュレータにおけるグループ分けと、図8に示す本発明の暗号処理装置の回路構成におけるRレジスタ212の負荷電流との対応を示す図である。FIG. 9 is a diagram illustrating a correspondence between grouping in a simulator when performing a DPA attack on a load current of an R register and a load current of an R register 212 in the circuit configuration of the cryptographic processing device of the present invention illustrated in FIG. 8. 本発明の構成が適用可能な暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。It is a figure which shows the structural example of IC module as a cryptographic processing execution device which can apply the structure of this invention.

符号の説明Explanation of symbols

110 ラウンド関数部
111 初期置換部
112,113 変換部
114 逆置換部
120 鍵スケジュール部
121 選択置換部
122,123 鍵生成部
151 F関数部
171,172 置換部
181 Sボックス
200 F関数部
201 置換部
202 セッション鍵(ラウンド鍵)
203 排他論理和部
204 Sボックス(S−box)
205 置換部
206 排他論理和部
211 Lレジスタ
212 Rレジスタ
215,216 スイッチ
221 初期置換部
222 逆置換部
231 メッセージ
232 暗号文
301,302 スイッチ
311 配線パスL
312 配線パスR
331 乱数(RN1)レジスタ
332 乱数(RN2)レジスタ
600 ICモジュール
601 CPU(Central processing Unit)
602 メモリ
603 暗号処理部
604 乱数発生器
605 送受信部
606 クロック
607 タイミング発生回路
DESCRIPTION OF SYMBOLS 110 Round function part 111 Initial replacement part 112,113 Conversion part 114 Reverse replacement part 120 Key schedule part 121 Selection replacement part 122,123 Key generation part 151 F function part 171,172 Replacement part 181 S box 200 F function part 201 Replacement part 202 Session key (round key)
203 Exclusive OR part 204 S box (S-box)
205 Replacement Unit 206 Exclusive OR Unit 211 L Register 212 R Register 215, 216 Switch 221 Initial Replacement Unit 222 Reverse Replacement Unit 231 Message 232 Ciphertext 301, 302 Switch 311 Wiring Path L
312 Wiring path R
331 Random number (RN1) register 332 Random number (RN2) register 600 IC module 601 CPU (Central processing Unit)
602 Memory 603 Encryption processing unit 604 Random number generator 605 Transmission / reception unit 606 Clock 607 Timing generation circuit

Claims (6)

ラウンド関数の繰り返し処理を含む暗号演算処理を実行する暗号処理装置であり、
各ラウンド毎にラウンド関数対応のデータ処理を実行する関数演算部と、
前記関数演算部における各ラウンドの演算結果としての中間データを格納するデータ格納レジスタと、
乱数を格納する乱数レジスタと、
前記データ格納レジスタと前記乱数レジスタとを前記関数演算部に対して選択的に接続するスイッチ部と、
前記スイッチ部の切り替え制御を実行する制御部とを有し、
前記制御部は、
前記スイッチ部を、ラウンド遷移時において前記乱数レジスタの格納乱数を前記関数演算部に出力し、その後、前記データ格納レジスタに格納された中間データを出力するように接続切り替え制御を行なう構成であることを特徴とする暗号処理装置。
A cryptographic processing device that performs cryptographic computation processing including round function iteration processing,
A function operation unit that executes data processing corresponding to the round function for each round;
A data storage register for storing intermediate data as a calculation result of each round in the function calculation unit;
A random number register for storing random numbers;
A switch unit that selectively connects the data storage register and the random number register to the function calculation unit;
A control unit that performs switching control of the switch unit,
The controller is
The switch unit is configured to perform connection switching control so that the random number stored in the random number register is output to the function calculation unit at the time of a round transition, and then the intermediate data stored in the data storage register is output. A cryptographic processing device characterized by
前記制御部は、
前記スイッチ部の接続切り替え処理を各ラウンド毎に繰り返し実行し、各ラウンドの開始時点において前記乱数レジスタの格納乱数を前記関数演算部に出力し、同一ラウンドの所定時間後に前記データ格納レジスタに格納された中間データを前記関数演算部に出力する接続切り替え制御を実行する構成であり、前記データ格納レジスタには、ラウンドの終了時において、中間データに基づく前記関数演算部の演算結果としての新たな中間データが格納されるようにスイッチ制御を行なう構成であることを特徴とする請求項1に記載の暗号処理装置。
The controller is
The connection switching process of the switch unit is repeatedly executed for each round, and the random number stored in the random number register is output to the function calculation unit at the start of each round, and stored in the data storage register after a predetermined time of the same round. The intermediate storage data is output to the function calculation unit, and the connection switching control is executed. At the end of the round, the data storage register includes a new intermediate as a calculation result of the function calculation unit based on the intermediate data. The cryptographic processing apparatus according to claim 1, wherein the encryption control apparatus is configured to perform switch control so that data is stored.
前記スイッチ部は、前記データ格納レジスタに接続された配線パス上に構成されていることを特徴とする請求項1に記載の暗号処理装置。   The cryptographic processing apparatus according to claim 1, wherein the switch unit is configured on a wiring path connected to the data storage register. 前記暗号処理装置は、さらに、乱数生成手段を有し、
前記乱数生成手段は、各ラウンド毎に異なる乱数を生成し、各ラウンドの遷移時において、ラウンド毎に異なる乱数を前記関数演算部に出力する構成であることを特徴とする請求項1に記載の暗号処理装置。
The cryptographic processing apparatus further includes random number generation means,
2. The configuration according to claim 1, wherein the random number generation unit is configured to generate a different random number for each round and to output a different random number for each round to the function calculation unit at the time of transition of each round. Cryptographic processing device.
前記関数演算部は、非線形変換部としてのSボックスを有し、
前記データ格納レジスタは、前記Sボックスによる非線形変換処理を含むラウンド関数演算処理の結果データを格納する構成であることを特徴とする請求項1に記載の暗号処理装置。
The function calculation unit has an S box as a nonlinear conversion unit,
2. The cryptographic processing apparatus according to claim 1, wherein the data storage register is configured to store result data of a round function calculation 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.
JP2004193562A 2004-06-30 2004-06-30 Encryption processing apparatus Pending JP2006019872A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004193562A JP2006019872A (en) 2004-06-30 2004-06-30 Encryption processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004193562A JP2006019872A (en) 2004-06-30 2004-06-30 Encryption processing apparatus

Publications (1)

Publication Number Publication Date
JP2006019872A true JP2006019872A (en) 2006-01-19

Family

ID=35793737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004193562A Pending JP2006019872A (en) 2004-06-30 2004-06-30 Encryption processing apparatus

Country Status (1)

Country Link
JP (1) JP2006019872A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737171B1 (en) 2006-05-04 2007-07-10 경북대학교 산학협력단 A low memory masking method for aria to resist against differential power attack
JP2007266879A (en) * 2006-03-28 2007-10-11 Mitsubishi Electric Corp Data converter, data conversion method, and data conversion program
JP2008061118A (en) * 2006-09-01 2008-03-13 Toshiba Corp Encryption processing circuit and ic card
JP2009223503A (en) * 2008-03-14 2009-10-01 Toshiba Corp Portable electronic device and ic card
JP2010501895A (en) * 2006-08-24 2010-01-21 エルエスアイ コーポレーション Dual mode AES implementation supporting single and multiple AES operations
JP2010124276A (en) * 2008-11-20 2010-06-03 Sony Corp Cryptographic processing apparatus
US20110022852A1 (en) * 2008-03-25 2011-01-27 Mitsubishi Electric Corporation Cryptographic computation apparatus, cryptographic computation program, and storage medium
CN107979457A (en) * 2016-10-25 2018-05-01 航天信息股份有限公司 A kind of processing system, the method and device of side channel signal
CN111339577A (en) * 2020-02-12 2020-06-26 南京师范大学 Construction method of S box with excellent DPA resistance
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007266879A (en) * 2006-03-28 2007-10-11 Mitsubishi Electric Corp Data converter, data conversion method, and data conversion program
KR100737171B1 (en) 2006-05-04 2007-07-10 경북대학교 산학협력단 A low memory masking method for aria to resist against differential power attack
JP2010501895A (en) * 2006-08-24 2010-01-21 エルエスアイ コーポレーション Dual mode AES implementation supporting single and multiple AES operations
US8457306B2 (en) 2006-09-01 2013-06-04 Kabushiki Kaisha Toshiba Cryptographic module and IC card
JP2008061118A (en) * 2006-09-01 2008-03-13 Toshiba Corp Encryption processing circuit and ic card
JP2009223503A (en) * 2008-03-14 2009-10-01 Toshiba Corp Portable electronic device and ic card
US20110022852A1 (en) * 2008-03-25 2011-01-27 Mitsubishi Electric Corporation Cryptographic computation apparatus, cryptographic computation program, and storage medium
JP4687775B2 (en) * 2008-11-20 2011-05-25 ソニー株式会社 Cryptographic processing device
US8370642B2 (en) 2008-11-20 2013-02-05 Sony Corporation Cryptographic processing apparatus
JP2010124276A (en) * 2008-11-20 2010-06-03 Sony Corp Cryptographic processing apparatus
CN107979457A (en) * 2016-10-25 2018-05-01 航天信息股份有限公司 A kind of processing system, the method and device of side channel signal
CN107979457B (en) * 2016-10-25 2020-11-17 航天信息股份有限公司 System, method and device for processing side channel signal
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
CN111339577A (en) * 2020-02-12 2020-06-26 南京师范大学 Construction method of S box with excellent DPA resistance

Similar Documents

Publication Publication Date Title
Standaert Introduction to side-channel attacks
Hell et al. Grain: a stream cipher for constrained environments
Kocher et al. Introduction to differential power analysis
US7659837B2 (en) Operation processing apparatus, operation processing control method, and computer program
KR101680918B1 (en) Cryptography circuit protected against observation attacks, in particular of a high order
EP1496641A2 (en) Cryptographic processing apparatus, cryptographic processing method and computer program
CN100356342C (en) Information processing unit
Yao et al. Fault-assisted side-channel analysis of masked implementations
JP2007195132A (en) Encryption processing apparatus
US20150365228A1 (en) Differential power analysis countermeasures
Gay et al. Hardware-oriented algebraic fault attack framework with multiple fault injection support
JP2006019872A (en) Encryption processing apparatus
Regazzoni et al. Can knowledge regarding the presence of countermeasures against fault attacks simplify power attacks on cryptographic devices?
Wang et al. New methods of template attack based on fault sensitivity analysis
De et al. Path-balanced logic design to realize block ciphers resistant to power and timing attacks
JP2005134478A (en) Encryption processing device, encryption processing method, and computer program
JP2010056730A (en) Encryption processor and integrated circuit
Alioto et al. Differential power analysis attacks to precharged buses: a general analysis for symmetric-key cryptographic algorithms
JP2007174024A (en) Encryption processing apparatus
JP2005031471A (en) Encryption processing device and encryption processing method
JP2006054568A (en) Encryption apparatus, decryption apparatus and method, and computer program
JP4435593B2 (en) Tamper resistant information processing equipment
JP2005045752A (en) Cipher processor, and cipher processing method
JP2006025366A (en) Encryption apparatus and semiconductor integrated circuit
Strobel et al. Side channel analysis attacks on stream ciphers