JP4634788B2 - Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit - Google Patents
Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit Download PDFInfo
- Publication number
- JP4634788B2 JP4634788B2 JP2004366400A JP2004366400A JP4634788B2 JP 4634788 B2 JP4634788 B2 JP 4634788B2 JP 2004366400 A JP2004366400 A JP 2004366400A JP 2004366400 A JP2004366400 A JP 2004366400A JP 4634788 B2 JP4634788 B2 JP 4634788B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- data
- data block
- processing
- dummy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、暗号演算回路と、該暗号演算回路を有する情報処理装置及びICカードに関する。 The present invention relates to a cryptographic operation circuit, an information processing apparatus and an IC card having the cryptographic operation circuit.
IC(Integrated Circuit)カードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになってきている。これは、従来の磁気カードに比べ、ICとしてCPU、ROM、RAM、EEPROMなどを持つため様々な機能が行えるようになっただけでなく、偽造が難しいためセキュリティの面でも大きく向上したことが要因である。なお、ICカードの詳細は、非特許文献1に規定されている。
IC (Integrated Circuit) cards are used not only for payment of credit cards, commuter passes, and other commercial transactions, but also in various fields as ID cards for employee cards, membership cards, insurance cards, etc. ing. This is because the IC has a CPU, ROM, RAM, EEPROM, etc. so that it can perform various functions compared to conventional magnetic cards, and it is difficult to forge. It is. Details of the IC card are defined in Non-Patent
ICカードでは、個人情報など重要な情報を格納しているため、暗号を用いてそのデータを暗号化したり、カードユーザの認証を行ったりしている。そのため通常の使用においては十分なセキュリティが保たれている。しかし、ICカードが暗号処理を行っている瞬間の消費電力波形を取得し解析すると、暗号に使われている秘密鍵が導出できるという電力解析攻撃手法と呼ばれる理論が1996年にPaul Kocherらにより発表された。この理論に係る解析方法として、大きく分けて3つの方法がある。 Since the IC card stores important information such as personal information, the data is encrypted using encryption or the card user is authenticated. Therefore, sufficient security is maintained in normal use. However, in 1996, Paul Kocher et al. Announced a theory called a power analysis attack technique in which the secret key used in cryptography can be derived by acquiring and analyzing the power consumption waveform at the moment when the IC card performs cryptographic processing. It was done. There are roughly three analysis methods according to this theory.
第1の方法は、暗号に使われる秘密鍵の各ビットにより処理時間に違いがある場合に、処理時間もしくは消費電力波形からそのビットが判明し、同様にして全ての秘密鍵が判明してしまうというものである。この詳細は、非特許文献2に記載されている。 In the first method, when there is a difference in processing time depending on each bit of the secret key used for encryption, the bit is found from the processing time or the power consumption waveform, and all the secret keys are found in the same manner. That's it. The details are described in Non-Patent Document 2.
第2の方法は、暗号に使われる秘密鍵の各ビットに依存したデータを処理している部分の消費電力波形に違いが見られる場合、そのビットが判明し、同様にして全ての秘密鍵が判明してしまうというものである。一般に、ICチップを構成しているCMOSは、0→1もしくは1→0に変化したときに電力を消費するため、上記のように消費電力波形上でも違いが多少なりとも存在している。 In the second method, when there is a difference in the power consumption waveform of the part that processes the data depending on each bit of the secret key used for encryption, the bit is found, and in the same way, all the secret keys are It turns out. In general, a CMOS constituting an IC chip consumes power when it changes from 0 → 1 or 1 → 0, and thus there is some difference in the power consumption waveform as described above.
第3の方法は、暗号処理中の消費電力波形を多数取得し、統計処理をすることで秘密鍵を導出するというものである。この方法は、第2の方法をさらに強力にしたものであり、暗号処理の一部の消費電力波形を多数取得できれば、比較的容易に攻撃できるというものである。第2と第3の方法に関する詳細は、非特許文献3に記載されている。 The third method is to obtain a large number of power consumption waveforms during cryptographic processing and derive a secret key by performing statistical processing. This method is a more powerful version of the second method. If a large number of power consumption waveforms that are part of the cryptographic process can be obtained, it can be attacked relatively easily. Details regarding the second and third methods are described in Non-Patent Document 3.
上記の3つの攻撃方法に対する対策法は、いろいろと議論され考えだされている。しかし、ソフトウェアで共通鍵暗号を実装しCPUで実行している場合や、共通鍵暗号よりも非常に処理時間のかかる公開鍵暗号をコプロセッサを利用して処理している場合は、消費電力波形にその処理の挙動が如実に表れてしまうことが多い。つまり攻撃の前提条件である消費電力波形内の暗号処理部の特定とその波形の取得が容易である場合が多い。攻撃に対する対策がなされていても、攻撃対象となる暗号処理部の消費電力波形が取得されてしまうと、様々な攻撃を受ける可能性があり、場合によっては対策が無効化され、秘密鍵の導出につながる可能性もある。 Various countermeasures against the above three attack methods have been discussed and thought out. However, if the software implements common key cryptography and is executed by the CPU, or if public key cryptography that takes much longer processing time than common key cryptography is processed using a coprocessor, the power consumption waveform In many cases, the processing behavior appears clearly. That is, it is often easy to identify the encryption processing unit in the power consumption waveform, which is a precondition for the attack, and to acquire the waveform. Even if countermeasures against attacks are taken, if the power consumption waveform of the cryptographic processing unit to be attacked is acquired, there is a possibility of various attacks. In some cases, countermeasures are invalidated and the secret key is derived. May lead to
一方、専用の暗号処理回路を用いて共通鍵暗号の処理を行った場合は、ソフトウェアで実装した場合に比べて極端に処理時間が短くなり、消費電力波形にその処理の挙動が表れにくくなる。しかしこの場合もCPUの処理とは別に暗号処理回路が動作するため、多少なりともこの回路が動作した瞬間の消費電力波形は大きくなってしまい、暗号処理部が判別できてしまうことがある。この場合、どの程度消費電力が増えるかはハードウェアの性能に依存してくる。また共通鍵暗号はある一定の処理を繰り返し決まった回数だけ行う性質があるため、消費電力波形から決まった回数分繰り返して同じような特徴を持つ部分を特定することにより、暗号処理部を特定されることがある。 On the other hand, when the common key encryption process is performed using a dedicated encryption processing circuit, the processing time is extremely shortened compared to the case where the process is implemented by software, and the behavior of the process is less likely to appear in the power consumption waveform. However, in this case as well, the cryptographic processing circuit operates separately from the processing of the CPU, so that the power consumption waveform at the moment when this circuit operates increases to some extent, and the cryptographic processing unit may be discriminated. In this case, how much power consumption increases depends on the performance of the hardware. In addition, since the common key encryption has the property of repeatedly performing a certain number of processes a predetermined number of times, the encryption processing unit can be specified by specifying a part having the same characteristics by repeating the determined number of times from the power consumption waveform. Sometimes.
このように、電力解析攻撃は非常に強力な攻撃手法であるため、攻撃に耐えうる対策手法の確立と同時に、攻撃の前提条件となる消費電力波形内の暗号処理部の特定を困難にすることが非常に重要となってくる。
本発明は、ICカードや情報処理装置の消費電力波形内の暗号処理部を特定することを困難にすることを目的とする。 An object of the present invention is to make it difficult to specify an encryption processing unit in a power consumption waveform of an IC card or an information processing apparatus.
本発明の局面に係る発明は、ICカードの消費電力波形内の暗号処理部を特定することを困難にするために、暗号処理に使用されるデータブロックの処理の間にダミーデータブロックの処理を適宜挿入した。具体的には、以下のとおりである。 In the invention according to the aspect of the present invention, in order to make it difficult to specify the encryption processing unit in the power consumption waveform of the IC card, the dummy data block processing is performed during the processing of the data block used for the encryption processing. Inserted as appropriate. Specifically, it is as follows.
本発明の局面に係る発明は、所定ビット数の第1のデータブロックと鍵情報とを所定の非線形関数Fへ作用させて得られた結果値と前記第1のデータブロックと同じビット数の第2のデータブロックとを論理演算し、前記第2のデータブロックを第1のデータブロックに置き換えるとともに、前記第1のデータブロックを前記論理演算の結果値に置き換えるステップを所定回数繰り返し実行することにより、暗号化処理を行って、該処理結果を暗号化データとして外部へ出力する暗号化処理を実行する暗号演算回路において、前記第1及び第2のデータブロックを保持する手段と、前記第1及び第2のデータブロックとビット数が同じである第1及び第2のダミーデータブロックを保持する手段と、前記第1及び前記第2のデータブロックを使った暗号化処理を所定回数実行する間に、前記第1及び前記第2のダミーデータブロックを使ったダミー暗号化処理の実行を、所定の条件に基づいて適宜挿入するような制御をする手段を具備することを特徴とする。 The invention according to the aspect of the present invention provides a result value obtained by applying a first data block having a predetermined number of bits and key information to a predetermined non-linear function F, and a first number having the same number of bits as the first data block. Performing a logical operation on the second data block, replacing the second data block with the first data block, and repeatedly executing the step of replacing the first data block with the result value of the logical operation a predetermined number of times. Means for holding the first and second data blocks in a cryptographic operation circuit that performs encryption processing and executes encryption processing for outputting the processing result to the outside as encrypted data; and Means for holding first and second dummy data blocks having the same number of bits as the second data block; and the first and second data blocks Means for appropriately inserting the execution of the dummy encryption process using the first and second dummy data blocks based on a predetermined condition while executing the predetermined encryption process a predetermined number of times. It is characterized by comprising.
これにより電力解析攻撃を行うことが困難になり、秘密鍵が外部に漏れることを抑えることができる。このように、本発明によれば、ICカードの消費電力波形から動作部分を特定するのが困難である専用ハードウェアで実装されている共通鍵暗号の処理部分を、公知であるアルゴリズムの繰り返し回数などの情報から特定することが更に困難になることより、該暗号処理回路を備えたICカードや情報処理装置などへの電力解析攻撃適用を難しくし、秘密鍵が外部に漏れることを抑えることができる。 This makes it difficult to perform a power analysis attack, and can prevent the secret key from leaking outside. As described above, according to the present invention, the processing part of the common key encryption implemented by the dedicated hardware that is difficult to specify the operation part from the power consumption waveform of the IC card is changed to the number of iterations of a known algorithm. This makes it more difficult to specify information such as information, and makes it difficult to apply a power analysis attack to an IC card or information processing device equipped with the cryptographic processing circuit and suppresses leakage of the secret key to the outside. it can.
図面を参照して本発明の実施の形態を説明する。
図1は、本発明に係る暗号演算回路を備えたICカードの概略構成を示す図である。ICカードの詳細は、前述したように、非特許文献1に規定されている。図1に示すように、カード101内にICチップ102が搭載されている。図2は、一般的なICチップの内部構成を示す図である。
Embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a diagram showing a schematic configuration of an IC card including a cryptographic operation circuit according to the present invention. The details of the IC card are defined in
図2に示すように、本発明に係るICチップ102は、CPU201と、RAM202と、ROM203と、EEPROM204と、I/Oポート205と、コプロセッサ206と、暗号処理回路207を備えている。
As shown in FIG. 2, the
上記の構成において、CPU201は、ROM203に格納されているICカードのプログラムを実行し、RAM202やEEPROM204には処理に必要なデータが格納されている。I/Oポート205は、外部機器(例えば、リーダライタ)からコマンドを受け取り、CPU201の処理結果をレスポンスとして出力する。データバス208は各装置間のデータ転送を行うバスである。コプロセッサ206はべき乗剰余演算を行うための専用装置であり、RSA暗号などの公開鍵暗号の処理に用いられる。そのためICカードによっては搭載していないものもある。暗号処理回路207は主に共通鍵暗号の処理に用いられ、共通鍵暗号処理全体を行ったり、CPU201で共通鍵暗号処理を行う場合に、その処理の一部を手助けする役割を果たしたりする。そのためICカードによっては搭載していないものもある。上記のように、コプロセッサ206や暗号処理回路207などは用途によってない場合もある。ここでは、暗号処理回路207に実装されている共通鍵暗号アルゴリズムの例としてDES(Data Encryption Standard)を用いて説明する。なお、本発明では、暗号処理回路207を搭載していることを前提条件とする。専用の暗号処理装置を備えることで、CPUやコプロセッサによって、暗号をソフトウェア処理するよりもはるかに、攻撃が困難になるからである。
In the above configuration, the
上記のように構成されたICカードにおいて、DESの処理の流れを図3のフローチャートを用いて簡単に説明する。図3は、DESの流れを示すフローチャートである。
まず入力平文64ビットに対して初期転置(IP:Initial Permutation)と呼ばれるビット転置の処理が施される(ステップ301)。次に初期転置後のデータを32ビットずつに分割し(ステップ302)、これら2つを初期値として以下の処理を繰り返す(ステップ303及びステップ304)。
L_{i}←R_{i−1}
R_{i}←L_{i−1} xor F(K_{i},R_{i−1})
上式において、←は代入を示す。
ここで、演算回数をi(1≦i≦16)、i回目の演算時の一方の分割された32ビット(右側)をR_{i}とし、他方の32ビット(左側)をL_{i}、i回目の部分鍵をK_{i}とする。この部分鍵は、64ビットの秘密鍵を元に鍵スケジューリング処理することにより演算回数分(16個)生成される。またSBOXと呼ばれる変換テーブルを用いた非線形変換や転置、部分鍵とデータの排他的論理和を含んだ処理はF関数と呼ばれ、F(K,R)で表す。
In the IC card configured as described above, the flow of DES processing will be briefly described with reference to the flowchart of FIG. FIG. 3 is a flowchart showing the flow of DES.
First, a bit transposition process called initial permutation (IP) is performed on the 64 bits of input plain text (step 301). Next, the data after the initial transposition is divided into 32 bits (step 302), and the following processing is repeated with these two as initial values (step 303 and step 304).
L_ {i} ← R_ {i−1}
R_ {i} ← L_ {i−1} xor F (K_ {i}, R_ {i−1})
In the above formula, ← indicates substitution.
Here, the number of operations is i (1 ≦ i ≦ 16), one divided 32 bits (right side) at the time of the i-th operation is R_ {i}, and the other 32 bits (left side) is L_ {i}. , The i-th partial key is K_ {i}. This partial key is generated for the number of operations (16) by performing key scheduling processing based on a 64-bit secret key. A process including nonlinear transformation or transposition using a conversion table called SBOX, and an exclusive OR of partial keys and data is called an F function, and is represented by F (K, R).
この繰り返し処理(ステップ303及びステップ304)を16回繰り返した後の結果であるL_{16}を上位32ビット、R_{16}を下位32ビットとして合成する(ステップ305)。最後にこの合成した64ビットを最終転置(FP:Final Permutation)と呼ばれる初期転置の逆変換処理を施し(ステップ306)、出力暗号文64ビットを得る。 L_ {16}, which is the result after repeating this iterative process (step 303 and step 304) 16 times, is combined as upper 32 bits, and R_ {16} is combined as lower 32 bits (step 305). Finally, the synthesized 64 bits are subjected to an inverse transformation process of initial transposition called final transposition (FP) (step 306) to obtain 64 bits of output ciphertext.
次に、DESを実装した暗号処理回路207の内部構成の概要を図4に示す。暗号処理回路207は、暗号処理部401と、乱数生成部402と、制御回路部403と、鍵生成部404と、I/F部405とを備えている。
暗号処理部401はI/F部から受け取った入力をDESを使って暗号化する。乱数生成部402はDESの処理に用いる乱数を生成する。制御回路部403は、DESの処理を制御するための情報を格納する制御情報レジスタ(詳細は後述)を有する。鍵生成部404は、制御情報レジスタの情報とDESの秘密鍵64ビットから鍵スケジューリングにより各処理中の部分鍵を作成する。I/F部405はCPU201などとデータの入出力を行う。
Next, FIG. 4 shows an outline of the internal configuration of the
The
図5を参照して、暗号処理回路207の主要部分となる暗号処理部401の内部詳細を説明する。
IP501は、予め定められた規則に基づいて初期転置の演算を行う。3入力2出力のセレクタ502は、IP501の出力上位32ビットのデータ、乱数生成部402からの入力RNDの上位32ビットのデータ、及びセレクタ509の出力32ビットの3つの入力(以下、「3入力」と称する)を入力し、制御回路部403からの信号CTLに応じて、レジスタL504もしくはレジスタL_dummy505のいずれかに3入力のいずれかを出力する。同様に、3入力2出力のセレクタ503は、IP501の出力下位32ビットのデータ、乱数生成部402からの入力RNDの下位32ビットのデータ、及び、セレクタ508の出力32ビットとF関数510の出力32ビットの(論理演算回路512による)排他的論理和後の32ビットの3入力を入力し、制御回路部403からの信号CTLに応じて、レジスタR506もしくはレジスタR_dummy507に3入力のいずれかを出力する。レジスタL504、レジスタL_dummy505、レジスタR506、レジスタR_dummy507はそれぞれ32ビット幅を有するレジスタである。2入力1出力のセレクタ508は、制御回路部403からの信号CTLに応じて、レジスタL504もしくはレジスタL_dummy505の出力32ビットのどちらかを出力する。同様に2入力1出力のセレクタ509は、制御回路部403からの信号CTLに応じて、レジスタR506もしくはレジスタR_dummy507の出力32ビットのどちらかを出力する。F関数510は、セレクタ509の出力32ビットを入力として、拡大転置処理、部分鍵との排他的論理和、SBOXによる非線形処理、転置処理の演算を行う。FP511は、予め定められた規則に基づいて初期転置の逆変換の演算を行う回路モジュールである。入力は64ビットであり、その上位32ビットはF関数510の出力とセレクタ508の出力とを排他的論理和した結果の32ビットであり、下位32ビットはセレクタ509の出力32ビットである。
With reference to FIG. 5, the internal details of the
The
上記のように構成された暗号処理回路207を用いたDESの処理の流れを図6のフローチャートを用いて説明する。なお、セレクタ制御に関しては、制御回路部403の動作のところで説明する。
The flow of DES processing using the
まず、乱数生成部402からの乱数RNDの上位32ビットをレジスタL_dummy505に、下位32ビットをレジスタR_dummy507に初期値として格納する(ステップ601)。入力平文64ビットをIP501により転置し、上位32ビットをレジスタL504に、下位32ビットをレジスタR506に初期値として格納する(ステップ602)。制御回路部403からの信号CTLのMSBが1の時は(ステップ603)、レジスタR506の出力32ビットを入力としてF関数510の処理を行い(ステップ604)、F関数510の出力32ビットとレジスタL504の出力32ビットとの排他的論理和をとる(ステップ606)。このとき制御回路部403からの信号CTLの下位ニブルが15でない場合は(ステップ608)、レジスタR506の出力32ビットをレジスタL504へ格納し、排他的論理和結果をレジスタR506へ格納する(ステップ609)。
First, the upper 32 bits of the random number RND from the random
ステップ603において、制御回路部403からの信号CTLのMSBが1ではない(例えば、0)の時は(ステップ603)、レジスタR_dummy507の出力32ビットを入力としてF関数510の処理を行い(ステップ605)、F関数510の出力32ビットとレジスタL_dummy505の出力32ビットとの排他的論理和をとる(ステップ607)。この場合、制御回路部403からの信号CTLは参照せずに、レジスタR_dummy507の出力32ビットをレジスタL_dummy505へ格納し、排他的論理和結果をレジスタR_dummy507へ格納する(ステップ610)。このように信号CTLのMSBが1か0かで処理データや格納先が異なり、MSBが1の処理をDESの処理段数16回分終了すると(ステップ608)、排他的論理和結果を上位32ビット、レジスタR506の出力を下位32ビットとして合成して、FP処理を行う。そして、FP処理後のデータをI/F部405に渡す(ステップ611)。
In
制御回路部403の処理の流れを説明する前に、暗号処理部401内のセレクタを制御する信号CTLの情報を格納する制御情報レジスタについて説明する。なお、このレジスタは制御回路部403内にあり、0から7の8ビット(1ビット目から8ビット目まで)で構成されているものとする。このレジスタのビット割り当ては以下のようになっている。
4ビット目から1ビット目までは暗号処理部401ですでに終了したDESの処理段数を表している。
5ビット目に1がセットされると、セレクタ502の入力をRND、出力をレジスタL_dummy505にし、セレクタ503の入力をRND、出力をレジスタR_dummy507にする。このように5ビット目の情報により、暗号処理回路内207のレジスタL_dummy505とR_dummy507に乱数初期値をセットする制御が行われる。
6ビット目に1がセットされると、セレクタ502の入力をIP出力、出力をレジスタL504にし、セレクタ503の入力をIP出力、出力をレジスタR506にする。このように6ビット目の情報により、暗号処理回路207内のレジスタL504とR506にIP出力後の値をセットする制御が行われる。
7ビット目に1がセットされると、セレクタ502の入力をセレクタ509の出力、セレクタ503の入力をF関数510の出力とセレクタ508の出力との排他的論理和結果にする。このように7ビット目の情報により、各レジスタに初期値がセットされた後のDES本体の処理を行う制御が行われる。
8ビット目に1がセットされると、セレクタ502の出力をレジスタL504もしくはレジスタL_dummy505にし、セレクタ503の出力をレジスタR506もしくはレジスタR_dummy507にし、セレクタ508の入力をレジスタL504もしくはレジスタL_dummy505にし、セレクタ509の入力をレジスタR506もしくはレジスタR_dummy507にする。このように8ビット目の情報により、DESの本来の処理とダミーの処理とを判別する制御が行われる。すなわち、8ビット目に1がセットされると本来の処理、0がセットされるとダミー処理を行うように制御される。
Before describing the processing flow of the
The fourth to first bits represent the number of DES processing stages that have already been completed in the
When 1 is set in the fifth bit, the input of the
When 1 is set in the sixth bit, the input of the
When 1 is set in the seventh bit, the input of the
When 1 is set in the eighth bit, the output of the
暗号処理部401内のセレクタを制御する信号CTLを生成、出力する制御回路部403の処理について、図7のフローチャートを参照して説明する。
まず、乱数生成部402から64ビットの乱数を受け取る(ステップ701)。そして、制御情報レジスタの値を確認する(ステップ702)。レジスタの値が0Hの場合(ステップ703)は、暗号処理部401に乱数がセットされていないので制御情報レジスタの値CTLの5ビット目に1をセットし、当該値を出力する(ステップ704、ステップ713)。レジスタの値が10Hの場合(ステップ705)は、暗号処理部401のIP処理が終了していないということなので制御情報レジスタの値CTLの5ビット目に0をセットし、6ビット目に1をセットし、当該値を出力する(ステップ706、ステップ713)。レジスタの値が20Hの場合(ステップ707)は、暗号処理部401でDESの繰り返し処理を行う準備ができているということなので制御情報レジスタの値CTLの6ビット目に0をセットし、7ビット目に1をセットする(ステップ708)。次に、乱数生成部402から取り込んだ64ビット乱数のパリティを計算し(ステップ709)。パリティが1のときは(ステップ710)、制御情報レジスタの値CTLの8ビット目を1にセットし、下位ニブルをインクリメントし(ステップ712)、当該値を出力する(ステップ713)。ステップ710において、パリティが0のときは、8ビット目を0にセットし、下位ニブルはインクリメントせず(ステップ711)、当該値を出力する(ステップ713)。
Processing of the
First, a 64-bit random number is received from the random number generation unit 402 (step 701). Then, the value of the control information register is confirmed (step 702). When the value of the register is 0H (step 703), since no random number is set in the
鍵生成部404は、制御情報レジスタの値CTLの下位ニブルの情報より、対応するDESの処理段の部分鍵を作成し、暗号処理部401に渡す。すなわち制御情報レジスタの下位ニブルの値が変わらない限り、鍵生成部404は、同じ部分鍵を出力することになる。
The
上記の説明では、DESの本当の処理とダミーの処理を切り分ける制御情報レジスタの8ビット目の値を64ビット乱数のパリティに基づいて決めたが、8ビット目の値の決め方は上記の実施の形態に限らない。例えば、セキュリティの強度を考慮すれば、8ビット目が1になる確率を0になる確率より低くなるような決め方が好ましい。これは、8ビット目が1の場合と0の場合の処理で消費電力波形に差がでない、もしくは観測できない場合である。この点に関しては、今回対象にしている暗号処理回路207は暗号処理専用のハードウェア回路であり、ソフトウェア実装と違い、8ビット目が1か0かで処理時間が異なることはなく、DES1段の処理をほぼ1クロックで処理してしまう。このため、1段の処理中に扱ったデータの差は消費電力の差として非常に現れにくいという点を考慮すると、上記の仮定は妥当である。さらに、乱数による処理中の中間データのマスク処理や消費電力波形にノイズをのせるような電流攪乱回路と本発明を組み合わせることによって、セキュリティ強度を上げる、すなわち電力解析攻撃をさらに困難にすることも可能である。
In the above description, the value of the 8th bit of the control information register that separates the DES real process and the dummy process is determined based on the parity of the 64-bit random number. The method of determining the value of the 8th bit is described above. It is not limited to form. For example, in consideration of security strength, it is preferable to determine such that the probability that the 8th bit becomes 1 is lower than the probability that it becomes 0. This is a case where there is no difference in the power consumption waveform between the case where the eighth bit is 1 and the case where it is 0, or it cannot be observed. In this regard, the
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。例えば、上記の実施の形態では、ICカードについて説明したが、ICカード以外に、外部からの攻撃を防ぐための暗号化回路を有するようなPDAやパーソナルコンピュータや携帯電話などの情報装置に適用可能であることはもちろんである。さらに、上記各実施形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。 The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention at the stage of implementation. For example, in the above embodiment, the IC card has been described. However, in addition to the IC card, the present invention can be applied to an information device such as a PDA, a personal computer, or a mobile phone having an encryption circuit for preventing external attacks. Of course. Further, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements.
また、例えば各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。 In addition, for example, even if some structural requirements are deleted from all the structural requirements shown in each embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effect described in the effect of the invention Can be obtained as an invention.
101…カード、102…ICチップ、201…CPU、202…RAM、203…ROM、204…EEPROM、205…I/Oポート、206…コプロセッサ、207…暗号処理回路、208…データバス、401…暗号処理部、402…乱数生成部、403…制御回路部、404…鍵生成部、405…F部、501…IP、502…セレクタ、503…セレクタ、508…セレクタ、509…セレクタ、511…FP。
DESCRIPTION OF
Claims (5)
前記第1及び第2のデータブロックを保持する手段と、
前記第1及び第2のデータブロックとビット数が同じである第1及び第2のダミーデータブロックを保持する手段と、
前記第1及び前記第2のデータブロックを使った暗号化処理を所定回数実行する間に、前記第1及び前記第2のダミーデータブロックを使ったダミー暗号化処理の実行を、所定の条件に基づいて適宜挿入するような制御をする手段を具備することを特徴とする暗号演算回路。 A logical operation is performed on a result value obtained by applying a first data block having a predetermined number of bits and key information to a predetermined non-linear function F and a second data block having the same number of bits as the first data block. The second data block is replaced with the first data block, and the step of replacing the first data block with the result value of the logical operation is repeatedly executed a predetermined number of times to perform encryption processing, In a cryptographic operation circuit that executes encryption processing for outputting processing results to the outside as encrypted data,
Means for holding the first and second data blocks;
Means for holding first and second dummy data blocks having the same number of bits as the first and second data blocks;
While the encryption process using the first and second data blocks is executed a predetermined number of times, the execution of the dummy encryption process using the first and second dummy data blocks is performed under a predetermined condition. A cryptographic operation circuit comprising means for controlling such that insertion is appropriately performed based on the above.
前記ICチップが搭載されたカードと、を備えたICカードにおいて、
前記暗号演算回路は、
前記第1及び第2のデータブロックを保持する手段と、
前記第1及び第2のデータブロックとビット数が同じである第1及び第2のダミーデータブロックを保持する手段と、
前記第1及び前記第2のデータブロックを使った暗号化処理を所定回数実行する間に、前記第1及び前記第2のダミーデータブロックを使ったダミー暗号化処理の実行を、所定の条件に基づいて適宜挿入するような制御をする手段を具備することを特徴とするICカード。 A logical operation is performed on a result value obtained by applying a first data block having a predetermined number of bits and key information to a predetermined non-linear function F and a second data block having the same number of bits as the first data block. The second data block is replaced with the first data block, and the step of replacing the first data block with the result value of the logical operation is repeatedly executed a predetermined number of times to perform encryption processing, An IC chip having a cryptographic operation circuit for executing encryption processing for outputting processing results to the outside as encrypted data;
In an IC card comprising a card on which the IC chip is mounted,
The cryptographic operation circuit is:
Means for holding the first and second data blocks;
Means for holding first and second dummy data blocks having the same number of bits as the first and second data blocks;
While the encryption process using the first and second data blocks is executed a predetermined number of times, the execution of the dummy encryption process using the first and second dummy data blocks is performed under a predetermined condition. An IC card characterized by comprising means for controlling such that it is inserted as appropriate.
前記暗号演算回路は、
前記第1及び第2のデータブロックを保持する手段と、
前記第1及び第2のデータブロックとビット数が同じである第1及び第2のダミーデータブロックを保持する手段と、
前記第1及び前記第2のデータブロックを使った暗号化処理を所定回数実行する間に、前記第1及び前記第2のダミーデータブロックを使ったダミー暗号化処理の実行を、所定の条件に基づいて適宜挿入するような制御をする手段を具備することを特徴とする情報処理装置。 A logical operation is performed on a result value obtained by applying a first data block having a predetermined number of bits and key information to a predetermined non-linear function F and a second data block having the same number of bits as the first data block. The second data block is replaced with the first data block, and the step of replacing the first data block with the result value of the logical operation is repeatedly executed a predetermined number of times to perform encryption processing, In an information processing apparatus having a cryptographic operation circuit that executes encryption processing for outputting processing results to the outside as encrypted data,
The cryptographic operation circuit is:
Means for holding the first and second data blocks;
Means for holding first and second dummy data blocks having the same number of bits as the first and second data blocks;
While the encryption process using the first and second data blocks is executed a predetermined number of times, the execution of the dummy encryption process using the first and second dummy data blocks is performed under a predetermined condition. An information processing apparatus comprising means for controlling such that insertion is appropriately performed based on the information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004366400A JP4634788B2 (en) | 2004-12-17 | 2004-12-17 | Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004366400A JP4634788B2 (en) | 2004-12-17 | 2004-12-17 | Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006174274A JP2006174274A (en) | 2006-06-29 |
JP4634788B2 true JP4634788B2 (en) | 2011-02-16 |
Family
ID=36674521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004366400A Active JP4634788B2 (en) | 2004-12-17 | 2004-12-17 | Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4634788B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4960044B2 (en) | 2006-09-01 | 2012-06-27 | 株式会社東芝 | Cryptographic processing circuit and IC card |
JP6950861B2 (en) * | 2017-03-17 | 2021-10-13 | 大日本印刷株式会社 | Electronic information storage device, IC card, calculation decision method, and calculation decision program |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000165375A (en) * | 1998-11-30 | 2000-06-16 | Hitachi Ltd | Information processor and ic card |
JP2001251294A (en) * | 2000-01-31 | 2001-09-14 | Oberthur Card Systems Sa | Method for executing encipherment protocol between two electronic entities |
JP2002528754A (en) * | 1998-10-16 | 2002-09-03 | ジェムプリュス | Countermeasures in electronic components using secret-key cryptographic algorithms |
JP2003517745A (en) * | 1998-10-16 | 2003-05-27 | ジェムプリュス | Countermeasures in electronic components using secret-key cryptographic algorithms |
JP2004101981A (en) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | Cipher computing circuit |
WO2004081769A1 (en) * | 2003-03-14 | 2004-09-23 | Axalto Sa | Process of security of a unit electronic unit with cryptoprocessor |
JP2004326335A (en) * | 2003-04-23 | 2004-11-18 | Toshiba Corp | Ic card and encryption processing system |
-
2004
- 2004-12-17 JP JP2004366400A patent/JP4634788B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002528754A (en) * | 1998-10-16 | 2002-09-03 | ジェムプリュス | Countermeasures in electronic components using secret-key cryptographic algorithms |
JP2003517745A (en) * | 1998-10-16 | 2003-05-27 | ジェムプリュス | Countermeasures in electronic components using secret-key cryptographic algorithms |
JP2000165375A (en) * | 1998-11-30 | 2000-06-16 | Hitachi Ltd | Information processor and ic card |
JP2001251294A (en) * | 2000-01-31 | 2001-09-14 | Oberthur Card Systems Sa | Method for executing encipherment protocol between two electronic entities |
JP2004101981A (en) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | Cipher computing circuit |
WO2004081769A1 (en) * | 2003-03-14 | 2004-09-23 | Axalto Sa | Process of security of a unit electronic unit with cryptoprocessor |
JP2004326335A (en) * | 2003-04-23 | 2004-11-18 | Toshiba Corp | Ic card and encryption processing system |
Also Published As
Publication number | Publication date |
---|---|
JP2006174274A (en) | 2006-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rivain et al. | Higher-order masking and shuffling for software implementations of block ciphers | |
Akkar et al. | Power analysis, what is now possible... | |
Medwed et al. | Template attacks on ECDSA | |
EP1873671B2 (en) | A method for protecting IC Cards against power analysis attacks | |
JP4317607B2 (en) | Information processing equipment, tamper resistant processing equipment | |
EP1398901B1 (en) | Feistel type encryption method and apparatus protected against DPA attacks | |
US8144865B2 (en) | Protection of the execution of a DES algorithm | |
US9961057B2 (en) | Securing a cryptographic device against implementation attacks | |
US10243728B2 (en) | Verification of the resistance of an electronic circuit to side-channel attacks | |
US10210776B2 (en) | DPA protection of a rijndael algorithm | |
US10187198B2 (en) | Protection of a rijndael algorithm | |
JP2007195132A (en) | Encryption processing apparatus | |
Meijer et al. | Ciphertext-only cryptanalysis on hardened Mifare classic cards | |
EP3089398A1 (en) | Securing a cryptographic device | |
JP5184659B2 (en) | How to securely protect an electronic cryptographic assembly with a private key | |
JP3733027B2 (en) | Countermeasure method in electronic components using secret key encryption algorithm | |
EP1646174A1 (en) | Method and apparatus for generating cryptographic sets of instructions automatically and code generation | |
JP4386766B2 (en) | Error detection in data processing equipment. | |
JP2004054128A (en) | Encrypting system | |
JP4634788B2 (en) | Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit | |
Martinasek et al. | Crucial pitfall of DPA Contest V4. 2 implementation | |
Fu et al. | Linear regression side channel attack applied on constant xor | |
US7747012B2 (en) | Process of security of an electronic unit with cryptoprocessor | |
JP2006025366A (en) | Encryption apparatus and semiconductor integrated circuit | |
JP2006054568A (en) | Encryption apparatus, decryption apparatus and method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101026 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101119 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4634788 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 3 |