JP5483838B2 - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP5483838B2
JP5483838B2 JP2008178084A JP2008178084A JP5483838B2 JP 5483838 B2 JP5483838 B2 JP 5483838B2 JP 2008178084 A JP2008178084 A JP 2008178084A JP 2008178084 A JP2008178084 A JP 2008178084A JP 5483838 B2 JP5483838 B2 JP 5483838B2
Authority
JP
Japan
Prior art keywords
encryption
decryption
encryption key
key
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008178084A
Other languages
Japanese (ja)
Other versions
JP2010021637A (en
Inventor
雄一郎 成吉
稔 佐伯
大輔 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008178084A priority Critical patent/JP5483838B2/en
Publication of JP2010021637A publication Critical patent/JP2010021637A/en
Application granted granted Critical
Publication of JP5483838B2 publication Critical patent/JP5483838B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号演算への故障攻撃対策としての暗号演算の検算の信頼性を向上させるデータ処理技術に関し、例えばAES(Advanced Encryption Standard)又はDES(Data Encryption Standard)等に準拠した暗号コプロセッサに適用して有効な技術に関する。   The present invention relates to a data processing technique for improving the reliability of verification of cryptographic operations as a countermeasure against a failure attack on cryptographic operations. For example, the present invention relates to a cryptographic coprocessor conforming to AES (Advanced Encryption Standard) or DES (Data Encryption Standard). It is related to effective technology.

ICカード用マイコンは金融、交通、健保等を目的としたカードに実装され、電子マネーや個人情報を格納しているため、情報の漏洩や改ざんなどの攻撃をハードとソフトの組合せで防ぐ必要がある。ICカード用マイコンへの攻撃の一つとして故障解析が挙げられる。特に、局所的にパルスレーザを照射させることによる攻撃が近年健在化されている。例えば、FDTC(Fault Diagnosis and Tolerance in Cryptography)などの学会において、暗号演算に対するレーザ攻撃に関する発表がおこなわれている。ICカード用マイコンなどに搭載している暗号コプロセッサにおいて、誤動作により暗号演算結果が期待値と異なる値をチップ外部に出力すると、その誤暗号文が元で使用している鍵を抽出される可能性がある。これを回避する方法としては、再度同じ計算をする検査方法がある。例えば暗号化演算を複数回行い、複数回の演算結果が一致したときその結果を返すようにする。別の方法として、逆算を行う検算方法がある。例えば、暗号化演算の場合は復号演算を更に行い、復号演算の場合は暗号化演算を更に行い、逆算結果が一致したときその結果を返すようにする。そのような検算を行う方法は時間がかかるものの、パリティなどの冗長回路の導入することなく誤動作の検出が可能になる。尚、故障利用解析に対する対策について記載された文献として下記の非特許文献1がある。   The IC card microcomputer is mounted on a card for financial, transportation, health insurance, etc., and stores electronic money and personal information. Therefore, it is necessary to prevent attacks such as information leakage and tampering with a combination of hardware and software. is there. Failure analysis is one of the attacks on IC card microcomputers. In particular, an attack by locally irradiating a pulse laser has been alive recently. For example, in academic societies such as FDTC (Fault Diagnosis and Tolerance in Cryptography), presentations on laser attacks against cryptographic operations have been made. If a cryptographic coprocessor installed in an IC card microcomputer or the like outputs a value whose cryptographic operation result differs from the expected value due to a malfunction, the key used by the erroneous ciphertext can be extracted. There is sex. As a method for avoiding this, there is an inspection method for performing the same calculation again. For example, the encryption operation is performed a plurality of times, and the result is returned when a plurality of operation results match. As another method, there is a verification method that performs back calculation. For example, the decryption operation is further performed in the case of the encryption operation, the encryption operation is further performed in the case of the decryption operation, and the result is returned when the reverse operation results match. Although a method for performing such a check takes time, a malfunction can be detected without introducing redundant circuits such as parity. The following Non-Patent Document 1 is a document describing measures against failure utilization analysis.

神永 正博 渡邊 高志「情報セキュリティの理論と技術―暗号理論からICカードの耐タンパー技術まで」森北出版株式会社、2005年10月15日発行、第198−205頁。Masahiro Kaminaga Takashi Watanabe "Information Security Theory and Technology-From Cryptography to IC Card Tamper-Resistance Technology" Morikita Publishing Co., Ltd., published October 15, 2005, pp. 198-205.

暗号演算への故障攻撃の対策として上述のような二度以上の計算の実施か逆算が推奨されるが、本発明者の検討によれば以下の問題点のあることが明らかにされた。   As a countermeasure against a failure attack on cryptographic operations, it is recommended to carry out the above calculation twice or reversely, but according to the study of the present inventors, it has been clarified that there are the following problems.

〔1〕二度以上の計算をしても、その計算において同じデータを使用する場合、その値を攻撃することで、検算を無効化させることができる。例えば、AESの拡大鍵において、暗号化時に計算したものを検算でも同じ値を使用するシステムにすると、暗号化演算時に故障攻撃を受けた場合にはその影響を検出することができない。例えば図3に例示されるように拡大鍵レジスタへ一回攻撃を受けてその値が変化されると、同じ演算を何回繰り返しても同じ結果しか得られず、故障攻撃に対処することが出来ない。   [1] Even if the calculation is performed twice or more, when the same data is used in the calculation, the verification can be invalidated by attacking the value. For example, if an AES extended key is a system that uses the same value for verification even if it is calculated at the time of encryption, the effect cannot be detected if a failure attack occurs during the encryption operation. For example, as illustrated in FIG. 3, when the value is changed by receiving an attack on the extended key register once, the same result can be obtained no matter how many times the same operation is repeated, and a failure attack can be dealt with. Absent.

〔2〕レーザなど故障をおこす装置の性能が非常に高い場合(出力エネルギーが高い、集光能力が高い、出力間隔が短いなど)には、拡大鍵を自律的に複数回更新しながら符号化又は復号演算を行うようにしても、複数回計算の各回の演算において同一タイミングで同一計算をしている場合、図4に例示されるように毎回、同じ故障注入を与え、同じ誤った値を生成させることで検算が無効化される可能性がある。   [2] When the performance of a device that causes a failure, such as a laser, is very high (high output energy, high light collection capability, short output interval, etc.) Or, even if the decoding operation is performed, if the same calculation is performed at the same timing in each calculation of a plurality of times, the same fault injection is given every time as illustrated in FIG. It may be invalidated by generating.

〔3〕ブロック暗号であるDESやAES等にはOFB(Output Feedback)モード、CTR(Counter)モード、CFB(Cipher Feedback )モードなど、復号時においても共通鍵暗号そのものの演算は”暗号化”で演算する暗号利用モードがある。この場合、暗号化/復号演算で検算しても共通鍵暗号そのものの演算は”暗号化”であるため、同じ動作をすることになり、図4と同様の脆弱性が存在する。ECB(Electronic Codebook)モードならびにOFBモードでの暗号可/復号演算のデータフローをそれぞれ図5、図6に示す。平文P0〜P2、暗号文C0〜C2、鍵K、初期値IVにおいて、OFBモードの復号演算では共通鍵暗号演算部(図6の太枠部)は復号演算Dではなく、初期値IVを入力、鍵をKとした暗号化演算Eを実施しているため、図5の場合での検算と比較して脆弱である。   [3] For block ciphers such as DES and AES, OFB (Output Feedback) mode, CTR (Counter) mode, CFB (Cipher Feedback) mode, etc. There is a cryptographic usage mode to calculate. In this case, even if the verification is performed by the encryption / decryption operation, the operation of the common key encryption itself is “encryption”, so that the same operation is performed, and the same vulnerability as in FIG. 4 exists. FIG. 5 and FIG. 6 show the data flow of encryption enabling / decrypting operation in ECB (Electronic Codebook) mode and OFB mode, respectively. In plaintext P0 to P2, ciphertext C0 to C2, key K, and initial value IV, the common key cipher operation unit (thick frame portion in FIG. 6) inputs not the decryption operation D but the initial value IV in the OFB mode decryption operation. Since the encryption operation E with the key K is performed, it is weaker than the verification in the case of FIG.

本発明の目的は、暗号演算への故障攻撃に対して強固な検算対策を講ずることができるデータ処理装置を提供することにある。   An object of the present invention is to provide a data processing apparatus capable of taking a strong counter measure against a failure attack on a cryptographic operation.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

すなわち、逆算を行って検算を行う場合に、逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵に一致するかの検証を追加する。これにより、逆算結果の検証では検出不可能な故障攻撃の検出が可能になる。   In other words, when performing a reverse calculation and verifying, a verification is added as to whether the encryption key finally used in the reverse calculation matches the encryption key used initially in the initial calculation. As a result, it becomes possible to detect a failure attack that cannot be detected by verification of the result of back calculation.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、暗号演算への故障攻撃に対して強固な検算対策を講ずることができる。   That is, it is possible to take a strong check measure against a failure attack on the cryptographic operation.

1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of a typical embodiment of the invention disclosed in the present application will be described. Reference numerals in the drawings referred to in parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕本発明に係るデータ処理装置は、暗号鍵を用いて平文の暗号化と暗号文の復号を行うプロセッサ(7,7A,7B)を備える。前記プロセッサは、前記暗号化又は復号を当初の演算として行ったとき、当該当初の演算の逆算を行い、この逆算において最終的に用いた暗号鍵を外部からアクセス可能に保持する記憶回路(24)を有する。これにより、前記当初の演算で最初に用いた暗号鍵がデータ処理装置内で管理されているとき、その管理主体は、記憶回路が保有する前記逆算において最終的に用いた暗号鍵をアクセスする事によって、双方が一致するか否かによって、単なる逆算では検出不可能な故障攻撃の検出が可能になる。   [1] A data processing apparatus according to the present invention includes processors (7, 7A, 7B) that perform encryption of plaintext and decryption of ciphertext using an encryption key. When the processor performs the encryption or decryption as an initial operation, the processor performs a reverse operation of the initial operation, and a storage circuit (24) that holds the encryption key finally used in the reverse operation so as to be accessible from the outside Have As a result, when the encryption key first used in the initial calculation is managed in the data processing apparatus, the management entity can access the encryption key finally used in the back calculation held by the storage circuit. Therefore, it becomes possible to detect a failure attack that cannot be detected by simple reverse calculation, depending on whether or not both coincide.

〔2〕本発明に係る別のデータ処理装置は、暗号鍵を用いて平文の暗号化と暗号文の復号を行うプロセッサを備えたデータ処理装置において、前記プロセッサは、前記暗号化又は復号を当初の演算として行ったとき、当該当初の演算の逆算を行い、この逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵に一致すか否かを検証する。プロセッサそれ自体で故障攻撃の検出が可能になる。   [2] Another data processing device according to the present invention is a data processing device including a processor that encrypts plaintext and decrypts a ciphertext using an encryption key. The processor initially performs the encryption or decryption. When this operation is performed, a reverse calculation of the initial calculation is performed, and it is verified whether or not the encryption key finally used in the reverse calculation matches the encryption key used initially in the initial calculation. The processor itself can detect fault attacks.

〔3〕本発明に係る更に別のデータ処理装置は、プロセッサを備え、前記プロセッサは、その外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵(K0〜K10)を用いた演算を順次複数回繰り返して暗号化を行い、また、外部から入力した暗号鍵に基づいて順次更新した暗号鍵(K10〜K0)を用いた演算を順次複数回繰り返して復号を行い、暗号化の演算又は復号の演算に用いた最新の前記更新した暗号鍵を外部からアクセス可能に保持する記憶回路(24)を有する。ECBモードに代表される暗号化復号において、単なる逆算では検出不可能な故障攻撃の検出が可能になる。   [3] Still another data processing apparatus according to the present invention includes a processor, which uses a cryptographic key (K0 to K10) sequentially updated based on an initial value of the cryptographic key input from the outside. Encryption is repeated a plurality of times sequentially, and the operation using the encryption key (K10 to K0) sequentially updated based on the encryption key input from the outside is sequentially repeated a plurality of times to perform the decryption. Alternatively, a storage circuit (24) is provided which holds the latest updated encryption key used for the decryption operation so as to be accessible from the outside. In encryption / decryption represented by the ECB mode, it becomes possible to detect a failure attack that cannot be detected by simple reverse calculation.

〔4〕項3のデータ処理装置において、前記プロセッサを制御する中央処理装置(3)を更に有し、前記記憶回路は前記中央処理措置のアドレス空間に配置される。プロセッサが記憶回路から暗号鍵をリードして、期待値と比較することによって故障攻撃の検出が可能になる。   [4] The data processing device according to item 3, further comprising a central processing unit (3) for controlling the processor, wherein the storage circuit is arranged in an address space of the central processing unit. The processor reads the encryption key from the storage circuit and compares it with the expected value, so that a failure attack can be detected.

〔5〕項4のデータ処理装置において、前記記憶回路は、前記暗号鍵の初期値が中央処理装置によって書き込まれる領域であって、その後、暗号鍵の初期値に基づいて順次更新した最新の暗号鍵によって書き換えられる領域である。   [5] In the data processing device according to item 4, the storage circuit is an area in which the initial value of the encryption key is written by the central processing unit, and thereafter the latest encryption sequentially updated based on the initial value of the encryption key. This area is rewritten by the key.

〔6〕項3のデータ処理装置において、前記プロセッサは平文の暗号化に際して、その暗号化の結果に対し、当該暗号化の最後の暗号化演算で用いた暗号鍵(K10)を初期値とする復号を逆演算として行い、当該復号の最後に用いた暗号鍵(K0)を前記記憶回路に書き込む。   [6] In the data processing device according to item 3, when the processor encrypts plaintext, the initial value of the encryption key (K10) used in the last encryption operation of the encryption is obtained for the encryption result. Decryption is performed as an inverse operation, and the encryption key (K0) used at the end of the decryption is written into the storage circuit.

〔7〕項3のデータ処理装置において、前記プロセッサは暗号文の復号に際して、前記暗号鍵の初期値を暗号化の場合と同様に繰り返し更新して暗号化の最後に用いる暗号鍵(K10)を生成し、生成した当該暗号鍵を初期値に用いた復号演算を順次複数回繰り返して復号を行い、復号の最後に用いた暗号鍵(K0)を前記記憶回路に書き込む。   [7] In the data processing device according to item 3, when the ciphertext is decrypted, the processor repeatedly updates the initial value of the encryption key in the same manner as in the case of encryption, and uses the encryption key (K10) used at the end of encryption. The decryption operation using the generated encryption key as an initial value is sequentially repeated a plurality of times to perform decryption, and the encryption key (K0) used at the end of the decryption is written into the storage circuit.

〔8〕項6又は7のデータ処理装置において、前記プロセッサは前記記憶回路に書き込まれた前記復号の最後に用いた暗号鍵と、前記暗号化の最初に用いた暗号鍵とが一致するか否かを判別する比較器(26)を更に有する。プロセッサそれ自体で故障攻撃の検出が可能になる。   [8] In the data processing device according to item 6 or 7, the processor determines whether the encryption key used at the end of the decryption written in the storage circuit matches the encryption key used at the beginning of the encryption. It further has a comparator (26) for determining whether or not. The processor itself can detect fault attacks.

〔9〕項8のデータ処理装置において、前記比較器による不一致の判別結果は例外処理を要求する信号であり、前記例外処理が要求される中央処理装置を更に有する。   [9] In the data processing apparatus according to item 8, the discriminant determination result by the comparator is a signal requesting exception processing, and further includes a central processing unit that requires the exception processing.

〔10〕項9のデータ処理装置において、前記例外処理は前記中央処理装置のリセット例外処理である。   [10] In the data processing device according to item 9, the exception processing is reset exception processing of the central processing unit.

〔11〕本発明に係る更に別のデータ処理装置はプロセッサ(7C)を有し、前記プロセッサは、その外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位暗号化を複数単位分だけ直列的に実行して暗号化を行い、また、外部から入力した暗号鍵に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位復号を複数単位分だけ直列的に実行して復号を行う。前記単位暗号化は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた暗号化演算を順次複数回繰り返す暗号化処理(E)とその暗号化処理による処理結果を用いる暗号化論理演算とから成る。前記単位復号は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた前記暗号化演算を順次複数回繰り返す暗号化処理(E)とその暗号化処理による処理結果を用いる復号論理演算とから成る。前記プロセッサは、前記暗号化において前ブロックの単位暗号化の暗号化処理の結果を受ける次ブロックの単位暗号化の暗号化処理(図9のE)に並行して、前記前ブロックの単位暗号化の暗号化処理の結果を用いて単位暗号化の暗号化処理の逆演算として復号処理(図9のD)を行い、前記逆演算に用いた最新の前記更新した暗号鍵を外部からアクセス可能に保持する記憶回路(24)を有する。これにより、OFBモードに代表される動作モードによる暗号化において、単なる逆算では検出不可能な故障攻撃の検出が可能になる。   [11] Still another data processing apparatus according to the present invention includes a processor (7C), and the processor sequentially performs operations using the encryption keys sequentially updated based on the initial value of the encryption key input from the outside. Perform unit encryption that is repeated multiple times in series for multiple units to perform encryption, and unit decryption that repeats operations using an encryption key that is sequentially updated based on an encryption key input from the outside Decodes by executing serially for multiple units. The unit encryption uses an encryption process (E) in which an encryption operation using an encryption key sequentially updated based on an initial value of an encryption key input from the outside is sequentially repeated a plurality of times and a processing result of the encryption process is used. It consists of cryptographic logic operations. The unit decryption uses an encryption process (E) in which the encryption operation using the encryption key sequentially updated based on the initial value of the encryption key input from the outside is sequentially repeated a plurality of times and a processing result of the encryption process. And decoding logic operation. The processor performs the unit encryption of the previous block in parallel with the unit encryption encryption process (E in FIG. 9) of the next block that receives the result of the encryption process of the unit encryption of the previous block in the encryption. The decryption process (D in FIG. 9) is performed as the inverse operation of the encryption process of the unit encryption using the result of the encryption process, and the latest updated encryption key used for the inverse operation can be accessed from the outside. A memory circuit (24) for holding is included. This makes it possible to detect a failure attack that cannot be detected by simple reverse calculation in encryption in an operation mode represented by the OFB mode.

〔12〕項11のデータ処理装置において、前記プロセッサは、前記復号において前ブロックの単位復号の暗号化処理の結果を受ける次ブロックの単位復号の暗号化処理に並行して、前記前ブロックの単位復号の暗号化処理の結果を用いて単位暗号化の暗号化処理の逆演算として復号処理を行い、前記記憶回路は、前記逆演算に用いた最新の前記更新した暗号鍵を外部からアクセス可能に保持する。OFBモードに代表される動作モードによる復号において、単なる逆算では検出不可能な故障攻撃の検出が可能になる。   [12] In the data processing device according to item 11, the processor is configured to execute the unit of the previous block in parallel with the unit decryption encryption process of the next block that receives the result of the unit decryption process of the previous block in the decryption. Using the result of the decryption encryption process, the decryption process is performed as the inverse operation of the unit encryption encryption process, and the storage circuit can access the latest updated encryption key used for the inverse operation from the outside. Hold. In decoding in an operation mode typified by the OFB mode, it becomes possible to detect a failure attack that cannot be detected by simple reverse calculation.

〔13〕項12のデータ処理装置において、前記プロセッサを制御する中央処理装置(3)を更に有し、前記記憶回路は前記中央処理措置のアドレス空間に配置される。   [13] The data processing device according to item 12, further comprising a central processing unit (3) for controlling the processor, wherein the storage circuit is arranged in an address space of the central processing unit.

〔14〕項13のデータ処理装置において、前記記憶回路は、前記暗号鍵の初期値が中央処理装置によって書き込まれる領域であって、その後、暗号鍵の初期値に基づいて順次更新した最新の暗号鍵によって書き換えられる領域である。   [14] In the data processing device according to item 13, the storage circuit is an area in which the initial value of the encryption key is written by the central processing unit, and thereafter the latest encryption sequentially updated based on the initial value of the encryption key. This area is rewritten by the key.

〔15〕項12のデータ処理装置において、前記暗号化論理演算及び前記復号論理演算は排他的論理和演算である。   [15] In the data processing device according to item 12, the encryption logical operation and the decryption logical operation are exclusive OR operations.

〔16〕項12のデータ処理装置において、前記プロセッサは前記記憶回路に書き込まれた前記復号の最後に用いた暗号鍵と、前記暗号化の最初に用いた暗号鍵とが一致するか否かを判別する比較器を更に有する。   [16] In the data processing device according to item 12, the processor determines whether the encryption key used at the end of the decryption written in the storage circuit matches the encryption key used at the beginning of the encryption. It further has a comparator for discriminating.

〔17〕項16のデータ処理装置において、前記比較器による不一致の判別結果は例外処理を要求する信号であり、前記例外処理が要求される中央処理装置を更に有する。   [17] In the data processing apparatus according to item 16, the discrepancy determination result by the comparator is a signal requesting exception processing, and further includes a central processing unit that requires the exception processing.

〔18〕項17のデータ処理装置において、前記例外処理は前記中央処理装置のリセット例外処理である。   [18] In the data processing device according to item 17, the exception processing is reset exception processing of the central processing unit.

〔19〕項3又は12のデータ処理装置において、前記プロセッサはAESに準拠する。   [19] In the data processing device according to item 3 or 12, the processor conforms to AES.

〔20〕項3又は12のデータ処理装置において、データ処理装置は半導体基板に形成されたICカード用のマイクロコンピュータである。   [20] In the data processing apparatus according to item 3 or 12, the data processing apparatus is a microcomputer for an IC card formed on a semiconductor substrate.

〔21〕項3又は項11のデータ処理装置において、前記プロセッサは、暗号アルゴリズムの暗号化機能のみを用いる暗号利用モードにおいて、復号処理による検算を処理する機能を備える。   [21] In the data processing device according to [3] or [11], the processor has a function of processing verification by decryption processing in an encryption usage mode that uses only an encryption function of an encryption algorithm.

2.実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
2. Details of Embodiments Embodiments will be further described in detail. DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiments for carrying out the invention, and the repetitive description thereof will be omitted.

《ICカード用マイコン》
図2には本発明の一例に係るICカード用マイコンのブロックダイヤグラムが例示される。ICカード用マイコン1は、非接触又は接触インタフェースを行うための通信モジュール2、ICカード用マイコン1の全体的な制御を行う中央処理装置(CPU)3、ICカード用マイコンの割込みやリセット等の例外処理制御及び動作モードの制御等を行うシステムコントロールロジック4、CPU3の動作プログラムやデータテーブル等を保有する不揮発性メモリ5、CPU3のワーク領域等に用いられるRAM6、DEA又はAES等に準拠する共通鍵暗号プロセッサ7、べき乗剰余乗算や楕円暗号演算等を行う公開鍵暗号プロセッサ8、及びICカード用マイコン1の動作基準クロックとされるクロック信号CKを生成するクロック生成回路9等を有する。10は内部バスである。不揮発性メモリ5にはマスクROM、EEPROM、又はフラッシュメモリ等を採用すればよい。このICカード用マイコン1は、例えば単結晶シリコン等の1個の半導体基板にCMOS等の集積回路製造技術によって構成される。
<Microcontroller for IC card>
FIG. 2 illustrates a block diagram of an IC card microcomputer according to an example of the present invention. The IC card microcomputer 1 includes a communication module 2 for performing non-contact or contact interface, a central processing unit (CPU) 3 that performs overall control of the IC card microcomputer 1, interrupts and resets of the IC card microcomputer, etc. System control logic 4 that performs exception processing control and operation mode control, non-volatile memory 5 that holds an operation program and data table of the CPU 3, a RAM 6 that is used for a work area of the CPU 3, a common that conforms to DEA or AES, etc. A key encryption processor 7, a public key encryption processor 8 that performs exponentiation and multiplication, an elliptic encryption operation, and the like, and a clock generation circuit 9 that generates a clock signal CK that serves as an operation reference clock for the IC card microcomputer 1. Reference numeral 10 denotes an internal bus. The nonvolatile memory 5 may be a mask ROM, EEPROM, flash memory, or the like. The IC card microcomputer 1 is configured by an integrated circuit manufacturing technology such as CMOS on a single semiconductor substrate such as single crystal silicon.

図1には共通鍵暗号プロセッサ7の一例としてAESコプロセッサの実装例が示される。AESコプロセッサについては、“NIST (National Institute of Standards and Technology), ADVANCED ENCRYPTION STANDARD (AES), Federal Information Processing Standard Publications (FIPS PUBS) 197, 2001”の第1文献に詳細が記載される。ここでは本発明の特徴点に関連する構成についてその詳細を説明する。   FIG. 1 shows an implementation example of an AES coprocessor as an example of the common key cryptographic processor 7. Details of the AES coprocessor are described in the first document of “NIST (National Institute of Standards and Technology), ADVANCED ENCRYPTION STANDARD (AES), Federal Information Processing Standard Publications (FIPS PUBS) 197, 2001”. Here, the detail regarding the structure relevant to the feature point of this invention is demonstrated.

共通鍵暗号プロセッサ7(単に暗号プロセッサ7とも記す)7は、AESのサブバイト(SubByte)などを計算するAES演算部20、初期値レジスタ21、平文/暗号文レジスタ22、制御レジスタ23、鍵レジスタ24、比較用鍵レジスタ25、及び比較器26を有する。暗号演算における暗号利用モードについては“NIST, Recommendation for Block Cipher Modes of Operation, NIST Special Publication 800-38A, 2001”の第2文献に記載がある。暗号利用モードは例えば図5に概略が示されたECBモード、図6に概略が示されたOFBモードがある。   A common key cryptographic processor 7 (also simply referred to as a cryptographic processor 7) includes an AES arithmetic unit 20 that calculates AES subbytes, an initial value register 21, a plaintext / ciphertext register 22, a control register 23, and a key register. 24, a comparison key register 25, and a comparator 26. The cipher usage mode in the cryptographic operation is described in the second document “NIST, Recommendation for Block Cipher Modes of Operation, NIST Special Publication 800-38A, 2001”. The cipher usage mode includes, for example, an ECB mode schematically shown in FIG. 5 and an OFB mode schematically shown in FIG.

《ECBモードにおける故障攻撃対策》
図1では暗号モードとして例えば図5のECBモードを用いる。図5の標記から明らかなように、ECBモードにおいてEで示される暗号化演算とDで示される復号演算とはその処理内容が相違される。図7にはECBモードにおいける暗号化と復号の演算手法が例示される。ここでは、図5の一つのEで示される暗号化演算は図7のEncに示されるSe0〜Se10の複数ステップの繰り返しによって実現される。与えられた鍵Kは、ステップSe0〜Se10の各ステップにおいて順次K0〜K10に自律的に更新演算されて用いられる。K0=Kであり、K1〜K10を拡大鍵と称する。Se0〜Se10のサフィックス1〜10をラウンド数と称する。すなわちラウンドiのステップはSeiとなる。ステップSe0〜Se10の各ラウンドで符号化演算が行われ、PがM1に符号化され、M1がM2に符号化され、M2がM3に符号化され、最後にM10がCに符号化される事によって、平文Pが暗号文Cに暗号化される。図5の一つのDで示される復号演算は図7のDecに示されるSd0〜Sd10の複数ステップの繰り返しによって実現される。ステップSd0〜Sd10の各ステップにおいて鍵はK10〜K0に順次自律的に更新演算されて用いられる。復号においてもステップSd0〜Sd10のサフィックスをラウンド数と称する。ステップSd0〜Sd10の各ラウンドで復号演算が行われ、CがM10に復号され、M10がM9に復号され、M9がM8に復号され、最後にM1がPに復号される事によって、暗号文Cが平文Pに復号される。各ラウンドの暗号化、復号演算には例えば第1文献及び第2文献に記載の具体的な処理を適用すればよく、ここではその詳細な説明は省略する。
《Countermeasure against failure attack in ECB mode》
In FIG. 1, for example, the ECB mode of FIG. 5 is used as the encryption mode. As is clear from the notation of FIG. 5, the encryption operation indicated by E and the decryption operation indicated by D are different in the processing contents in the ECB mode. FIG. 7 exemplifies calculation methods for encryption and decryption in the ECB mode. Here, the encryption operation indicated by one E in FIG. 5 is realized by repeating a plurality of steps of Se0 to Se10 indicated by Enc in FIG. The given key K is used after being autonomously updated to K0 to K10 sequentially in each step of Steps Se0 to Se10. K0 = K, and K1 to K10 are referred to as extended keys. The suffixes 1 to 10 of Se0 to Se10 are referred to as round numbers. That is, the step of round i is Sei. An encoding operation is performed in each round of steps Se0 to Se10, P is encoded to M1, M1 is encoded to M2, M2 is encoded to M3, and finally M10 is encoded to C. As a result, the plaintext P is encrypted into the ciphertext C. The decoding operation indicated by one D in FIG. 5 is realized by repeating a plurality of steps Sd0 to Sd10 indicated by Dec in FIG. In each step of steps Sd0 to Sd10, the keys are updated and used autonomously in order from K10 to K0. Also in decoding, the suffix of steps Sd0 to Sd10 is referred to as the number of rounds. A decryption operation is performed in each round of steps Sd0 to Sd10, C is decrypted to M10, M10 is decrypted to M9, M9 is decrypted to M8, and finally M1 is decrypted to P. Is decrypted into plaintext P. For example, specific processing described in the first document and the second document may be applied to the encryption and decryption operations in each round, and detailed description thereof is omitted here.

このとき、暗号化に際して、演算された暗号文Cを復号する逆演算を行って平文Pが得られるかを検証する。併せて、上記逆演算において最終的にステップSd10で用いた拡大鍵K0が符号化の最初のステップSe0で用いた鍵Kに一致するかの検証を行う。この検算は以下の意義を有する。例えばパルスレーザ照射などによる故障解析攻撃を受けて暗号化演算途中で拡大鍵の改ざん例えばK3がK3’に変化されたとすると、その影響は後続の拡大鍵に順次伝播し、ステップSe10では、拡大鍵K10’によって暗号文C’が生成される。拡大鍵K10’と暗号文C’を用いた復号逆演算が行われたとき、ステップSd10では平文Pが得られるが、最終的な拡大鍵はK0’となり当初のKと不一致になる。暗号化において鍵が変化されると、それと同じ鍵を用いれば復号逆演算で得られる平文は暗号化対象の平文に一致する。したがって暗号文の逆演算だけでは検出できない異状を拡大鍵(ステップSe0の鍵とステップSd10の鍵)の比較によって検出することが可能になる。これは、拡大鍵の符号化演算と復号演算の夫々が直前の拡大鍵の値を参照して行われるので、符号化演算の最初と、復号逆演算の最後との間で鍵の値が相違することによる。図10は暗号化に際しての暗号化演算のタイミングチャートを例示し、図11は暗号化に際して行われる復号逆演算のタイミングチャートを例示する。   At this time, it is verified whether the plaintext P can be obtained by performing an inverse operation to decrypt the calculated ciphertext C at the time of encryption. At the same time, it is verified whether or not the expanded key K0 used in step Sd10 finally matches the key K used in the first step Se0 of the encoding in the reverse operation. This check has the following significance. For example, if an extended key is tampered with, for example, K3 is changed to K3 ′ in the middle of an encryption operation due to a failure analysis attack due to pulse laser irradiation or the like, the influence is sequentially propagated to the subsequent extended key. A ciphertext C ′ is generated by K10 ′. When the decryption inverse operation using the expanded key K10 'and the ciphertext C' is performed, the plaintext P is obtained in step Sd10, but the final expanded key becomes K0 'and does not match the original K. When the key is changed in encryption, the plaintext obtained by the reverse decryption operation matches the plaintext to be encrypted if the same key is used. Therefore, it is possible to detect abnormalities that cannot be detected only by the reverse operation of the ciphertext by comparing the expanded key (the key at step Se0 and the key at step Sd10). This is because the encoding operation and the decoding operation of the extended key are performed by referring to the value of the immediately preceding extended key, so that the key value is different between the beginning of the encoding operation and the end of the reverse decoding operation. By doing. FIG. 10 illustrates a timing chart of the encryption operation at the time of encryption, and FIG. 11 illustrates a timing chart of the decryption reverse operation performed at the time of encryption.

復号においては、鍵の初期値Kから、復号の最初に用いる拡大鍵K10を生成する拡大鍵演算だけを先ず予備的に行い、それによって得られた拡大鍵K10を用いて図7のDecで示される復号演算が行われる。この復号演算においても、最終的にステップSd10で用いた拡大鍵K0が最初の鍵Kに一致するかの検証を行うことによって、予備的な拡大鍵演算ステップで故障解析攻撃を受けることにより途中で拡大鍵の改ざんが行われたか否かを検出する。この鍵の照合で復号時に故障解析攻撃を受けて拡大鍵が改ざんされたか否かを検出する事ができるので、復号においては、鍵の復号結果を暗号化する逆演算を行う必要はない。図12は復号に際してのタイミングチャートを例示し、図13は復号における予備的な拡大鍵演算処理で故障解析攻撃による拡大鍵の改ざんを受けたときの動作タイミングチャートを例示する。図13において、誤った平文を出力させ、かつ例外処理信号をアクティブにさせないためには、最後の拡大鍵演算終了段階でK0になるよう再度故障をいれることが必要になる。しかしながら、128ビット全ビットをそろえるのは困難である。再度の故障注入が一番容易そうな2回目のK8’算出時への攻撃も、一回目の算出がラウンド7からの計算に対し、2回目の計算はラウンド9からの算出になり、異なる回路動作に対して故障を注入させてK8に戻すような故障解析攻撃を行うことは実質的に困難である。すなわち、本発明による故障解析攻撃対策は強固であると考えられる。   In the decryption, only the expanded key calculation for generating the expanded key K10 used at the beginning of the decryption from the initial value K of the key is first performed in a preliminary manner, and the expanded key K10 obtained thereby is used to indicate Dec. The decoding operation is performed. Also in this decryption calculation, by verifying whether or not the extended key K0 used in step Sd10 finally matches the first key K, a failure analysis attack occurs in the preliminary extended key calculation step. It detects whether or not the expanded key has been tampered with. Since it is possible to detect whether or not the extended key has been falsified due to a failure analysis attack at the time of decryption by this key verification, it is not necessary to perform an inverse operation to encrypt the decryption result of the key in decryption. FIG. 12 illustrates a timing chart at the time of decryption, and FIG. 13 illustrates an operation timing chart when the expanded key is falsified by a failure analysis attack in the preliminary expanded key calculation process in the decryption. In FIG. 13, in order to output an erroneous plaintext and not activate the exception processing signal, it is necessary to make a fault again so that it becomes K0 at the end of the final extended key calculation. However, it is difficult to align all 128 bits. As for the attack when calculating the second K8 'that seems to be the easiest to inject again, the first calculation is calculated from round 7, the second calculation is calculated from round 9, and different circuits. It is practically difficult to perform a failure analysis attack in which a failure is injected into the operation and returned to K8. That is, the failure analysis attack countermeasure according to the present invention is considered to be strong.

図1に戻ってAESコプロセッサ7の具体的な構成について説明を加える。図1において前記レジスタ21〜24はCPU3によってアクセス可能にされるレジスタであり、鍵レジスタ24には鍵Kが初期設定され、平文/暗号文レジスタ22には暗号化すべき平文又は復号すべき暗号文がCPU3によりセットされ、また、AES演算部20で演算された暗号文又は平文がセットされる。制御レジスタ23には暗号化又は復号の演算開始指示ビット、ECBモード、CBC(Cipher Block Chaining)モードなどの暗号利用モードを選択する暗号利用モードビットなどから構成される。これらのビットはCPU3からバス10介してリード/ライトが出来、CPU命令により各モードの設定や、演算をしているかどうかを確認できる。初期値レジスタ21はCBCモードなどにおいてでてくる初期値などを格納するレジスタである。平文/暗号文レジスタ22や初期値レジスタ21はAESコプロセッサ7による演算終了後に更新される。   Returning to FIG. 1, a specific configuration of the AES coprocessor 7 will be described. In FIG. 1, the registers 21 to 24 are registers that can be accessed by the CPU 3, the key K is initially set in the key register 24, and the plaintext / ciphertext register 22 is plaintext to be encrypted or ciphertext to be decrypted. Is set by the CPU 3, and ciphertext or plaintext calculated by the AES calculation unit 20 is set. The control register 23 includes an encryption or decryption calculation start instruction bit, an encryption use mode bit for selecting an encryption use mode such as an ECB mode and a CBC (Cipher Block Chaining) mode. These bits can be read / written from the CPU 3 via the bus 10, and it is possible to confirm whether each mode is set or an operation is performed by a CPU command. The initial value register 21 is a register for storing an initial value that appears in the CBC mode or the like. The plaintext / ciphertext register 22 and the initial value register 21 are updated after the calculation by the AES coprocessor 7 is completed.

AES演算部20は、インタフェース回路(I/F)30、中間値レジスタ31、AES演算回路32、制御回路33、拡大鍵計算回路34、及び拡大鍵レジスタ35を有する。制御回路33は制御レジスタの各ビットの情報をもとに、AESコプロセッサ7内部のデータ移動の制御やAES演算回路32の演算種別の選択、現在演算しているラウンド数の管理などの演算制御を行う。また、制御回路33は演算終了時には制御レジスタ23のステータスビットを変化させる制御なども行う。中間値レジスタ31は各ラウンドの途中の暗号/復号結果を保管する。拡大鍵計算器34は各ラウンドの拡大鍵の計算を順次行う。拡大鍵レジスタ35は算出された拡大鍵を順次保管し、次の拡大鍵演算のために拡大鍵を拡大鍵計算器34に渡す。最初の鍵Kは鍵レジスタ24から拡大鍵レジスタ35に転送され、拡大鍵レジスタ35と鍵レジスタ24との間では相互に鍵の入れ替えが行われる。すなわち、例えば、拡大鍵計算器34で計算されて拡大鍵レジスタ35に与えられた拡大鍵が鍵レジスタ24に転送され、その前に鍵レジスタ24が保有する拡大鍵が拡大鍵レジスタ35に転送される。比較用鍵レジスタ25は最初の鍵Kを保管する。インタフェース回路30は暗号利用モードによりデータ入力種類を選択したり、必要に応じてEOR(排他的論理輪)演算を実施する。ASE演算回路32は拡大鍵レジスタ35及び中間値レジスタ31の値を用いて、各ラウンドの暗号化、復号演算を行う。その演算には例えば第1文献及び第2文献に記載の具体的な処理を適用すればよく、ここではその詳細な説明は省略する。比較器26は鍵レジスタ24の値と比較用鍵レジスタ25の値が所用の比較タイミングにおいて一致するかを確認するために用いられる。例えば所定タイミングとは、暗号化処理では図11に例示されるように復号逆演算にて最後のK0の値が確定するタイミング、復号処理では図12に例示されるように予備的演算に後の復号演算の最後のK0の値が確定するタイミングである。不一致の場合は例外処理信号により、リセット状態に遷移するなどの、故障対策がシステムコントロールロジック4に搭載されている。   The AES calculation unit 20 includes an interface circuit (I / F) 30, an intermediate value register 31, an AES calculation circuit 32, a control circuit 33, an extended key calculation circuit 34, and an extended key register 35. Based on the information of each bit of the control register, the control circuit 33 controls the data movement in the AES coprocessor 7, selects the calculation type of the AES calculation circuit 32, and manages the number of rounds currently calculated. I do. The control circuit 33 also performs control to change the status bit of the control register 23 at the end of the calculation. The intermediate value register 31 stores the encryption / decryption result in the middle of each round. The extended key calculator 34 sequentially calculates the extended key for each round. The extended key register 35 sequentially stores the calculated extended keys, and passes the extended key to the extended key calculator 34 for the next extended key calculation. The first key K is transferred from the key register 24 to the extended key register 35, and keys are exchanged between the extended key register 35 and the key register 24. That is, for example, the extended key calculated by the extended key calculator 34 and given to the extended key register 35 is transferred to the key register 24, and the extended key held by the key register 24 is transferred to the extended key register 35 before that. The The comparison key register 25 stores the first key K. The interface circuit 30 selects the data input type according to the encryption usage mode, and performs an EOR (exclusive logic ring) operation as necessary. The ASE operation circuit 32 performs encryption and decryption operations for each round using the values of the extended key register 35 and the intermediate value register 31. For example, specific processing described in the first document and the second document may be applied to the calculation, and detailed description thereof is omitted here. The comparator 26 is used to confirm whether the value of the key register 24 and the value of the comparison key register 25 match at a desired comparison timing. For example, the predetermined timing is the timing at which the last K0 value is determined by the decryption inverse operation as illustrated in FIG. 11 in the encryption process, and the preliminary process as illustrated in FIG. 12 in the decryption process. This is the timing at which the last K0 value of the decoding operation is determined. In the case of mismatch, a countermeasure against failure such as transition to a reset state by an exception processing signal is mounted in the system control logic 4.

図14には図1の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号演算のフローチャートが例示される。E0〜E10の処理は図7のステップSe0〜Se10の処理に対応され、その演算処理アルゴリズムは夫々等しくされる。図15には図14の処理の後の復号逆演算のフローチャートが例示される。ステップSTP1の判定結果が不一致であれば、故障解析攻撃を受けて暗号化演算途中で拡大鍵の改ざんが行われていることが明らかとなり、例外処理に移行される。図17には上記暗号化処理において暗号化対象にされた平文と暗号化された暗号文の復号逆演算によって得られた平文との一致を検算する処理も行うようにしたときのフローチャートが例示される。   FIG. 14 illustrates a flowchart of cryptographic operations in the circuit of FIG. 1 when the key length is 128 bits and the cryptographic usage mode is the ECB mode. The processing of E0 to E10 corresponds to the processing of steps Se0 to Se10 in FIG. 7, and the arithmetic processing algorithms are equalized. FIG. 15 illustrates a flowchart of the inverse decoding operation after the processing of FIG. If the determination result of step STP1 does not match, it becomes clear that the extended key has been tampered with during the encryption operation following a failure analysis attack, and the process proceeds to exception processing. FIG. 17 illustrates a flowchart when the process of checking the coincidence between the plaintext to be encrypted in the encryption process and the plaintext obtained by the decryption reverse operation of the encrypted ciphertext is performed. The

図16には図1の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における復号演算のフローチャートが例示される。D0〜D10の処理は図7のステップSd0〜Sd10の処理に対応され、その演算処理アルゴリズムは夫々等しくされる。図18には上記復号処理において復号された平文の暗号化逆演算を行い、当初の暗号文と暗号化逆演算された暗号文との一致を検算する処理も行うようにしたときのフローチャートが例示される。   FIG. 16 illustrates a flowchart of the decryption operation in the case of the circuit of FIG. 1 when the key length is 128 bits and the encryption usage mode is the ECB mode. The processing of D0 to D10 corresponds to the processing of steps Sd0 to Sd10 in FIG. 7, and the arithmetic processing algorithms are made equal. FIG. 18 illustrates a flowchart when the reverse encryption operation of the plaintext decrypted in the decryption process is performed and the process of checking the match between the original ciphertext and the encrypted reverse ciphertext is also performed. Is done.

上記各タイミングチャートにおいて、AES_CSビットは制御レジスタのビットで、AESの暗号化の開始/終了の制御、ならびに暗号化終了時にAESコプロがAES_CSビットを変化させることで暗号化の演算状況を知らせるステータスビットとされる。   In each of the above timing charts, the AES_CS bit is a control register bit that controls the start / end of AES encryption, and a status bit that informs the encryption operation status when AES Copro changes the AES_CS bit at the end of encryption. It is said.

上記AESコプロセッサによれば、暗号文から復号演算を実施する際、もしくは平文から暗号化計算後の復号逆演算を実施する際、暗号鍵から計算して求めてストアした拡大鍵に対して、故障攻撃されていないか確認するため、拡大鍵の逆算を実施し、その結果と保管されている拡大鍵もしくは暗号鍵と比較し、不一致の場合は例外処理信号により、リセット状態に遷移するなどの故障対策を講ずることができる。   According to the AES coprocessor, when performing a decryption operation from ciphertext, or when performing a decryption inverse operation after encryption calculation from plaintext, with respect to the expanded key calculated and stored from the encryption key, In order to check if there is a failure attack, the back-up of the extended key is performed, and the result is compared with the stored extended key or encryption key. Trouble countermeasures can be taken.

図19には図1のAESコプロセッサ7の第1の変形例が示される。図19のAESコプロセッサ7Aは比較用鍵レジスタ25及び比較器26が廃止されたAES演算部20Aを有し、AES演算部20Aはそれに応ずる制御回路33Aを備える。この構成においては、復号化演算の開始時に鍵レジスタ24と拡大鍵レジスタ35に復号化演算で使用する最初の鍵を書き込んで復号化演算を実施する。拡大鍵レジスタ35は拡大鍵計算器34とのやりとりの結果、最終的に生成された暗号鍵が格納される。鍵レジスタ24と拡大鍵レジスタ35との間の拡大鍵の順次入れ替え制御は図1と同じである。この例においては、復号演算で最後に得られる拡大鍵を鍵レジスタ24からCPUがリードしてその正規性を判定する事によって故障攻撃の有無を検証する。そのほかの構成は図1と同じであるからその詳細な説明は省略する。   FIG. 19 shows a first modification of the AES coprocessor 7 of FIG. The AES coprocessor 7A shown in FIG. 19 has an AES operation unit 20A in which the comparison key register 25 and the comparator 26 are eliminated, and the AES operation unit 20A includes a control circuit 33A corresponding thereto. In this configuration, the decryption operation is performed by writing the first key used in the decryption operation to the key register 24 and the extended key register 35 at the start of the decryption operation. The expanded key register 35 stores an encryption key that is finally generated as a result of the exchange with the expanded key calculator 34. The sequential key replacement control between the key register 24 and the extended key register 35 is the same as in FIG. In this example, the CPU reads the expanded key finally obtained by the decryption operation from the key register 24 and determines its normality to verify the presence or absence of a failure attack. Since the other structure is the same as that of FIG. 1, detailed description thereof is omitted.

図19の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号化演算を実施したときのフローチャートが図20に例示され、そのときのタイミングチャートが図22に例示される。   In the circuit of FIG. 19, a flowchart when encryption operation is performed when the key length is 128 bits and the encryption use mode is the ECB mode is illustrated in FIG. 20, and the timing chart at that time is illustrated in FIG. 22.

図19の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における復号化演算を実施したときのフローチャートが図21に例示され、そのときのタイミングチャートが図23に例示される。復号化演算の際、最終ラウンドの鍵K10が生成されていない場合、図16のように生成後演算を実施する。   In the circuit of FIG. 19, a flowchart when the decryption operation is performed when the key length is 128 bits and the encryption use mode is the ECB mode is illustrated in FIG. 21, and the timing chart at that time is illustrated in FIG. 23. If the final round key K10 is not generated during the decryption operation, the post-generation operation is performed as shown in FIG.

AES演算回路32で復号演算終了後、拡大鍵レジスタ35の値と鍵レジスタ24の値を入れ替え、生成された暗号鍵をCPU3が鍵レジスタ24にアクセスすることでリードできるようにすることにより、演算中に故障注入されていないかを比較器なしで評価することができる。   After the decryption operation is completed in the AES operation circuit 32, the value of the extended key register 35 and the value of the key register 24 are exchanged, and the generated encryption key can be read by the CPU 3 accessing the key register 24. It can be evaluated without a comparator whether there is a fault injection in it.

尚、図19において、暗号化演算処理の最後に得られる拡大鍵を鍵レジスタ24からCPUがリードしてその正規性を判定する事によって、暗号化演算処理での故障攻撃の有無を検証も可能である。その前提としてCPU3は鍵KのほかにK10をAESコプロセッサ7Aの外部で管理している。   In FIG. 19, the CPU reads the extended key obtained at the end of the encryption operation process from the key register 24 and determines its normality, thereby verifying the presence of a failure attack in the encryption operation process. It is. As a premise, the CPU 3 manages K10 in addition to the key K outside the AES coprocessor 7A.

図24には図1のAESコプロセッサ7の第2の変形例が示される。図24のAESコプロセッサ7Bは比較用鍵レジスタ25に代えて拡大鍵保管レジスタ40を有し、拡大鍵保管レジスタ40の値も比較対象とする比較器41を備え、AES演算部20Bはそれに応ずる制御回路33Bを有する。この構成においては、CPU3は鍵Kの生成時、暗号鍵K以外の拡大鍵K1〜K10も生成して拡大鍵保管レジスタ40に予めセットするように配送できるシステムを構築し、セキュア演算中は鍵から生成した拡大鍵を常に比較することで、故障注入を検出できるようにしたものである。そのほかの構成は図1と同じであるからその詳細な説明は省略する。図24の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号演算のフローチャートが図25に例示され、復号演算のフローチャートが図26に例示される。図25のステップSTO10において拡大鍵保管レジスタのラウンドiの拡大鍵と拡大鍵レジスタの値が一致するか否かが判定される。図26ではステップSTO20において拡大鍵保管レジスタのラウンドiの拡大鍵と拡大鍵レジスタの値が一致するか否かが判定される。ラウンド変数iが0のときは拡大鍵保管レジスタ40の代わりに鍵レジスタ24の値を用いる。   FIG. 24 shows a second modification of the AES coprocessor 7 of FIG. The AES coprocessor 7B of FIG. 24 has an expanded key storage register 40 instead of the comparison key register 25, and includes a comparator 41 whose value is also compared, and the AES operation unit 20B responds accordingly. A control circuit 33B is included. In this configuration, when the key K is generated, the CPU 3 constructs a system capable of generating extended keys K1 to K10 other than the encryption key K and delivering them so as to be set in advance in the extended key storage register 40. It is possible to detect fault injection by always comparing the expanded keys generated from. Since the other structure is the same as that of FIG. 1, detailed description thereof is omitted. In the circuit of FIG. 24, the flowchart of the cryptographic operation when the key length is 128 bits and the encryption usage mode is the ECB mode is illustrated in FIG. 25, and the flowchart of the decryption operation is illustrated in FIG. In step STO10 of FIG. 25, it is determined whether or not the expanded key of round i of the expanded key storage register matches the value of the expanded key register. In FIG. 26, in step STO20, it is determined whether or not the expanded key of round i of the expanded key storage register matches the value of the expanded key register. When the round variable i is 0, the value of the key register 24 is used instead of the extended key storage register 40.

尚、図24において、故障対策非考慮時は、比較器41による検出を止め、拡大鍵を拡大鍵保管レジスタ40からロードして用いることも可能である。また、拡大鍵保管レジスタ40に保管する拡大鍵を最終ラウンドのみなどの一部とし、検算は保管した拡大鍵のみとし、拡大鍵計算結果をAESの演算回路の入力にすることも可能である。   In FIG. 24, when failure countermeasures are not taken into account, detection by the comparator 41 can be stopped and an extended key can be loaded from the extended key storage register 40 and used. It is also possible to set the expanded key stored in the expanded key storage register 40 as a part of only the final round, etc., and perform the verification only on the stored expanded key, and input the expanded key calculation result to the AES arithmetic circuit.

図19及び図24の変形例に代表されるように、計算で求めた拡大鍵(暗号鍵含む)とストアされた拡大鍵との比較のタイミングは、毎ラウンド、計算の最後のみなど様々な方法が考えられる。最初の暗号化演算の際は必ずしも拡大鍵が計算されているわけではないが、既に拡大鍵が計算されレジスタにストアされている場合では、上記復号化演算と同様の検証が可能である。   As represented by the modification examples in FIGS. 19 and 24, the timing of comparison between the extended key (including the encryption key) obtained by calculation and the stored extended key is various methods such as every round, only at the end of the calculation. Can be considered. In the first encryption operation, the expanded key is not necessarily calculated, but when the expanded key is already calculated and stored in the register, verification similar to the above-described decryption operation is possible.

《OFBモードにおける故障攻撃対策》
OFBモードにおける暗号化復号処理では図6に示されるように、暗号化も復号もEで示される“暗号処理”のアルゴリズムを共通に用いる。図8にはこの点が更に詳細に示される、Encの符号化もDecの復号も、入力IVに対して鍵Kを用いた暗号化処理(E)を共通に行い、暗号化ではその暗号化処理(E)結果Rに対して平文P0との排他的論理和を採って暗号文C0を生成し、復号ではその暗号化処理(E)結果Rに対して暗号文C0との排他的論理和を採って平文P0を生成する。したがって暗号化に際して復号の逆演算を単純に行っても暗号化処理(E)が共通化されるので故障攻撃に対する検出の実効性は低い。暗号化処理(E)は例えば今までで説明したECBモードにおけるEの暗号化処理と同じである。
<< Measures against failure attacks in OFB mode >>
In the encryption / decryption process in the OFB mode, as shown in FIG. 6, the encryption / decryption algorithm “E” is commonly used for both encryption and decryption. FIG. 8 shows this point in more detail. Both the Enc encoding and the Dec decoding are performed by performing the encryption process (E) using the key K for the input IV in common. A ciphertext C0 is generated by taking an exclusive OR with the plaintext P0 for the processing (E) result R, and an exclusive OR with the ciphertext C0 for the encryption processing (E) result R in the decryption To generate plaintext P0. Therefore, even if the reverse operation of decryption is simply performed at the time of encryption, the encryption process (E) is shared, so the effectiveness of detection against a failure attack is low. The encryption process (E) is the same as the encryption process of E in the ECB mode described so far, for example.

図9にはOFBモードの暗号化における検算処理を概念的に示している。値Iiに対して演算処理(E)を行ってその結果Ijに対して平文Piとの排他的論理輪を採って暗号文Ciを生成し、Ij対して同じく演算処理(E)を行ってその結果Ikに対して平文Pjとの排他的論理輪を採って暗号文Cjを生成するという処理を順次行うとき、Ijに対する暗号化処理(E)に並行して、Ijに逆演算すなわち復号処理(D)を行う。復号処理(D)は今までで説明したECBモードにおけるDの復号処理と同じである。例えばIjに対する暗号化処理(E)において鍵はK0〜K10に自律的に演算処理されたとすると、Ijに逆演算すなわち復号処理(D)では、K10〜K0の鍵を自律的な演算処理によって生成する。したがって、この一連の暗号化処理(E)と逆演算復号処理(D)は図1で説明した検算処理と実質的に同じになり、それと同様に、故障攻撃の有無の検証が可能になる。このように、暗号化処理(E)とその前の暗号化処理(E)の逆演算である復号処理(D)を並列化すると、その処理は例えば図27に例示されるように、処理P1に並行して逆演算処理R1を行い、処理P2に並行して逆演算処理R2を行う。   FIG. 9 conceptually shows a verification process in the OFB mode encryption. An arithmetic process (E) is performed on the value Ii, and as a result, an exclusive logical ring with the plaintext Pi is taken for the result Ij to generate a ciphertext Ci, and the same arithmetic process (E) is performed on Ij. When the process of sequentially generating the ciphertext Cj by taking the exclusive logical ring with the plaintext Pj for the result Ik is performed in parallel with the encryption process (E) for Ij, the reverse operation to Ij, that is, the decryption process ( D) is performed. The decoding process (D) is the same as the D decoding process in the ECB mode described so far. For example, assuming that the key is autonomously processed to K0 to K10 in the encryption process (E) for Ij, the key of K10 to K0 is generated by the autonomous calculation process in the reverse operation to Ij, that is, the decryption process (D). To do. Therefore, the series of encryption processing (E) and inverse operation decryption processing (D) are substantially the same as the verification processing described with reference to FIG. 1, and similarly, it is possible to verify the presence or absence of a failure attack. As described above, when the encryption process (E) and the decryption process (D) that is the inverse operation of the previous encryption process (E) are parallelized, the process is performed as shown in FIG. In parallel with this, the reverse operation process R1 is performed, and in parallel with the process P2, the reverse operation process R2 is performed.

図28には図27に示されるようにOFBモードにおける自動逆算機能を有するAESコプロセッサ7Cが例示される。図1とはAES演算部20Cの構成が相違され、暗号化と逆算を並列的に行うために、2個の中間値レジスタ31a,31bと2個の拡大鍵レジスタ35a,35bを有し、更に比較用レジスタ50、2個の比較器51,52を備え、それらを制御する制御回路33Cが設けられる点が相違される。図28の構成では、平文/暗号文と拡大鍵の両方の逆算結果について検証し、夫々の結果についてAESコプロセッサ7Cの外部に例外処理信号として出力する。EORは排他的論理和回路である。   FIG. 28 illustrates an AES coprocessor 7C having an automatic reverse calculation function in the OFB mode as shown in FIG. The configuration of the AES calculation unit 20C is different from that of FIG. 1, and two intermediate value registers 31a and 31b and two extended key registers 35a and 35b are provided to perform encryption and reverse calculation in parallel. The difference is that a comparison register 50, two comparators 51 and 52 are provided, and a control circuit 33C for controlling them is provided. In the configuration of FIG. 28, the reverse calculation results of both plaintext / ciphertext and the extended key are verified, and each result is output as an exception processing signal to the outside of the AES coprocessor 7C. EOR is an exclusive OR circuit.

図29及び図30には図28の回路において鍵長が128ビット、暗号利用モードがOFBモードの場合における暗号化演算を実施したときのフローチャートが例示される。復号時のフローチャートは特に図示はしないが、図29、図30において平文P0のかわりに暗号文C0が、暗号文C0のかわりに平文P0が入る。   29 and 30 illustrate a flowchart when the encryption operation is performed in the circuit of FIG. 28 when the key length is 128 bits and the encryption usage mode is the OFB mode. The flowchart at the time of decryption is not particularly shown, but in FIGS. 29 and 30, the ciphertext C0 is inserted instead of the plaintext P0, and the plaintext P0 is inserted instead of the ciphertext C0.

図31には暗号演算の第1回目の動作のタイミングチャートが示され図27の処理P0の暗号化処理(E)に対応される。図32には暗号演算の第2回目の動作のタイミングチャートが例示され図27の処理P1の暗号化処理(E)とR1の逆演算復号処理に対応される。各タイミングチャートは各レジスタ以外に制御レジスタ内にあるコントロール/ステータス信号であるAES_CSビットと、過去暗号演算の実施の有無(すなわち検算の有無)を示す検算ビットの状態が示される。   FIG. 31 shows a timing chart of the first operation of the cryptographic operation, which corresponds to the encryption process (E) of the process P0 in FIG. FIG. 32 illustrates a timing chart of the second operation of the cryptographic operation, which corresponds to the encryption process (E) of process P1 and the reverse operation decryption process of R1 in FIG. Each timing chart shows the AES_CS bit, which is a control / status signal in the control register, in addition to the registers, and the status of the verification bit indicating whether or not past cryptographic computation has been performed (that is, whether or not verification has been performed).

図31に従えば、バス10経由でAES_CSビットに”1”をライトすると、AES演算部20Cが動作を開始する。鍵設定直後の演算につき、逆算の対象となる暗号文、拡大鍵の結果がでていないため、中間値レジスタ2(31b)、比較用レジスタ(50)、ならびに拡大鍵レジスタ2(35b)は不定となっている。暗号演算につき拡大鍵が逐次生成されて拡大鍵レジスタ1(35a)の値が更新されていくとともに、各ラウンドでの演算結果が中間値レジスタ1(31a)に更新されて格納される。最終ラウンド終了後、中間値レジスタ1(31a)に初期値IVの暗号化の結果であるI1が格納される。逆算をするため拡大鍵レジスタ2(35b)に最終ラウンドの拡大鍵K10、比較用レジスタ(50)に初期値IVが書き込まれる。その後、初期値レジスタ(21)にI1を、鍵レジスタ(24)の値K0を拡大鍵レジスタ1(35a)に、I1と平文P0の値からC0を計算し、平文/暗号文レジスタにそれぞれ書き込み、制御レジスタ(23)内の検算ビットにフラグを立てる。   According to FIG. 31, when “1” is written to the AES_CS bit via the bus 10, the AES operation unit 20C starts its operation. Since the result of the ciphertext and the expanded key that are the targets of the reverse calculation is not obtained for the operation immediately after the key setting, the intermediate value register 2 (31b), the comparison register (50), and the expanded key register 2 (35b) are undefined. It has become. The expanded key is sequentially generated for each cryptographic operation and the value of the expanded key register 1 (35a) is updated, and the operation result in each round is updated and stored in the intermediate value register 1 (31a). After the end of the final round, I1 that is the result of encryption of the initial value IV is stored in the intermediate value register 1 (31a). In order to perform the reverse calculation, the expanded key K10 of the last round is written in the expanded key register 2 (35b), and the initial value IV is written in the comparison register (50). After that, I1 is calculated in the initial value register (21), the value K0 of the key register (24) is calculated in the extended key register 1 (35a), and C0 is calculated from the values of I1 and plaintext P0, and written to the plaintext / ciphertext register. Then, a flag is set for the verification bit in the control register (23).

図32に従えば、図31の演算終了後、ユーザは平文/暗号文レジスタからC0入手しP1を書き込む。バス1経由でAES_CSビットに”1“をライトすると、AES演算部20Cが動作を開始する。2回目はP1の暗号演算とC0の逆演算である復号演算が平行して処理される。この処理はパイプライン処理とされる。AES演算回路32と拡大鍵計算器34を暗号化処理と逆演算復号処理に共用しているからである。パイプライン処理により、それぞれのラウンドの拡大鍵が逐次生成されて両拡大鍵レジスタ35a,35bの値を更新していくとともに、各ラウンドでの暗号/復号演算結果が両中間値レジスタ31a,31bに格納される。最終ラウンド終了後、中間値レジスタ1(31a)にI1の暗号化の結果であるI2が、中間値レジスタ2(31b)にI1の復号化の結果であるIVが格納される。ここで、最初の暗号演算ならびに逆算中に攻撃されていないか比較用レジスタ(50)と中間値レジスタ2(31b)との値を比較器1(51)で較し、異常があれば例外処理信号1によりAESプロセッサ7Cの外部に知らせる。同様に拡大鍵演算における攻撃がないか、鍵レジスタ(24)と拡大鍵レジスタ2(35b)との値を比較器2(52)で比較し、異常があれば例外処理信号2によりAESプロセッサ7Cの外部に知らせる。例えばシステムコントロールロジック4が例外処理信号1,2を受け取ることによってICカード用マイコンをリセット状態などに遷移させることによって外部との情報を遮断し、或いは割り込みを発生させて本AESの暗号化結果が有効でないことを知らせる、ことなどが考えられる。   According to FIG. 32, after the calculation of FIG. 31, the user obtains C0 from the plaintext / ciphertext register and writes P1. When “1” is written to the AES_CS bit via the bus 1, the AES operation unit 20C starts operation. The second time, the encryption operation of P1 and the decryption operation that is the inverse operation of C0 are processed in parallel. This process is a pipeline process. This is because the AES arithmetic circuit 32 and the extended key calculator 34 are shared for the encryption process and the inverse operation decryption process. Through pipeline processing, the extended keys for each round are sequentially generated to update the values of both extended key registers 35a and 35b, and the encryption / decryption operation results in each round are stored in both intermediate value registers 31a and 31b. Stored. After the final round, I2 which is the result of encryption of I1 is stored in the intermediate value register 1 (31a), and IV which is the result of decryption of I1 is stored in the intermediate value register 2 (31b). Here, the comparator 1 (51) compares the values of the comparison register (50) and the intermediate value register 2 (31b) to determine whether they are attacked during the first cryptographic operation or reverse calculation. Signal 1 informs the outside of the AES processor 7C. Similarly, the comparator 2 (52) compares the values of the key register (24) and the extended key register 2 (35b) for whether there is an attack in the expanded key operation. Notify outside. For example, when the system control logic 4 receives the exception processing signals 1 and 2, the IC card microcomputer is changed to a reset state or the like to shut off information from the outside or generate an interrupt, and the encrypted result of the AES is obtained. It is possible to notify that it is not valid.

検証後、次の演算/逆算を実施のため、拡大鍵レジスタに最終ラウンドの拡大鍵K10、比較用レジスタ50に初期値I1が書き込まれる。その後、初期値レジスタ21にI2を、鍵レジスタ24の値K0を拡大鍵レジスタ1(35a)に、I2と平文P1の値からC1を計算し、平文/暗号文レジスタ22にそれぞれ書き込む。   After the verification, in order to perform the next operation / back-calculation, the expanded key K10 of the final round is written in the expanded key register, and the initial value I1 is written in the comparison register 50. Thereafter, I2 is calculated in the initial value register 21, the value K0 of the key register 24 is calculated in the extended key register 1 (35a), and C1 is calculated from the values of I2 and plaintext P1 and written in the plaintext / ciphertext register 22, respectively.

以後の暗号演算文C2=EOR(AES(I2), P2)…においても同様の処理が実施される。最後の暗号文Cn=EOR(In, Pn)のについては、暗号対象となる平文はないもののAES演算を追加で1回実施することで逆算による検証が可能であり、また、逆算だけ実行するモードを専用に設けることもできる。   The same processing is performed for the subsequent ciphertext C2 = EOR (AES (I2), P2). For the last ciphertext Cn = EOR (In, Pn), although there is no plaintext to be encrypted, it is possible to verify by back-calculation by performing an AES operation once more, and a mode that only performs back-calculation Can also be provided exclusively.

上記において、平文/暗号文レジスタ22に平文P0, P1…のかわりに暗号文C0、C1…を書き込むことで、OFBモードでの復号演算においても、暗号化処理(E)とその逆演算復号処理(D)によって同様の検算を行うことができる。   In the above, by writing the ciphertexts C0, C1,... In the plaintext / ciphertext register 22 instead of the plaintexts P0, P1,..., The encryption process (E) and its inverse operation decryption process also in the decryption operation in the OFB mode The same check can be performed by (D).

図28の例はハードウェアで暗号/復号同時演算まで実施する回路構成としたが、単に初期値レジスタを入力として復号演算を実施できるハードウェアを追加することで、図27のR1,R2などの逆演算をサポートすることも可能である。CFBモード、OFBモード、CRTモードとも初期値をAESコプロセッサの入力としているが、復号演算のときもAESコプロセッサは暗号化処理を行うから、それらの動作モードにおける故障攻撃対策においては、暗号化と復号の双方ともに、入力値の暗号化演算に並行して当該入力値への復号演算を行うことが特徴となる。また、図28において比較回路52を廃止し、CPU3が鍵レジスタ24をリードアクセスして鍵の正規性を判定するようにしてもよい。   The example of FIG. 28 has a circuit configuration that implements up to simultaneous encryption / decryption operations by hardware. However, by adding hardware that can perform decryption operations simply by inputting an initial value register, R1, R2, etc. in FIG. It is also possible to support inverse operations. In CFB mode, OFB mode, and CRT mode, the initial value is input to the AES coprocessor, but since the AES coprocessor performs encryption processing even during decryption, encryption is used as a countermeasure against failure attacks in those operation modes. Both the decryption and decryption are characterized in that the decryption operation is performed on the input value in parallel with the encryption operation of the input value. 28, the comparison circuit 52 may be eliminated, and the CPU 3 may read-access the key register 24 to determine the normality of the key.

以上説明した本発明の実施携帯によれば以下の作用効果を得る。   According to the embodiment of the present invention described above, the following operational effects are obtained.

(1)逆算を行って検算を行う場合に、逆算結果だけでなく、逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵に一致すかの検証を行う。これにより、例えば図4のような鍵スケジュールで攻撃されていないか確認すること可能である。   (1) When performing verification by performing reverse calculation, verification is performed not only on the result of reverse calculation, but also on whether the encryption key finally used in the reverse calculation matches the encryption key initially used in the initial calculation. As a result, it is possible to confirm whether or not an attack is made with a key schedule as shown in FIG.

(2)拡大鍵をオンザフライ(On the fly)で毎回生成していくとき、復号演算時には最終ラウンドの拡大鍵を元に暗号鍵を計算することになるので、生成された暗号鍵と保管された暗号鍵を比較することにすることで、図4のような誤った拡大鍵が使用されていないかが検出可能となる。暗号化時には暗号鍵は生成されないが、検算として逆算を実施することで拡大鍵の検算も取り入れることができる。暗号化時に鍵スケジュールを故障解析攻撃して誤暗号文を生成できたとしても、逆算による検算の際に検出できなくするためには暗号鍵から復号鍵を計算するときと、復号演算時において復号鍵から暗号鍵を計算するときの故障解析攻撃が必要となり、1回の暗号演算で2回の攻撃が必要となる。2回の攻撃タイミングや攻撃場所が違うことによる故障注入の難易度が上がるため、故障解析攻撃に対して検算による検出性能を向上させることができる。   (2) When the expanded key is generated on the fly every time, the encryption key is calculated based on the expanded key of the final round at the time of decryption operation, so it is stored with the generated encryption key By comparing the encryption keys, it is possible to detect whether or not an erroneous extended key as shown in FIG. 4 is used. An encryption key is not generated at the time of encryption, but verification of an extended key can be incorporated by performing reverse calculation as verification. Even if it is possible to generate a wrong ciphertext by performing a failure analysis attack on the key schedule at the time of encryption, in order to make it impossible to detect at the time of verification by back calculation, decryption is performed when calculating the decryption key from the encryption key and at the time of decryption operation. A failure analysis attack when calculating an encryption key from a key is required, and two attacks are required in one cryptographic operation. Since the difficulty level of the fault injection due to the difference in the timing and location of the two attacks is increased, it is possible to improve the detection performance by the check against the fault analysis attack.

(3)暗号利用モードがOFBモードなどの場合においても図6のようにAES演算回路で暗号化と復号演算を単に実施するのではなく、暗号化と復号の双方ともに、入力値の暗号化演算(E)に並行して当該入力値への復号演算(D)を行うから、図4のように2回故障を注入しても同じ誤りをおこすことが困難になり、故障解析攻撃に対して検算による検出性能を向上させることができる。   (3) Even when the encryption usage mode is the OFB mode or the like, the encryption and decryption operations are not simply performed by the AES arithmetic circuit as shown in FIG. Since the decoding operation (D) is performed on the input value in parallel with (E), it becomes difficult to make the same error even if a fault is injected twice as shown in FIG. Detection performance by verification can be improved.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.

例えば、本発明に係るデータ処理装置はICカード用マイコンに限定されず、RFIDチップ、汎用マイクロコンピュータ等であってもよい。更に、本発明に係るデータ処理装置は1チップの半導体集積回路に限定されない。また、データ処理装置は公開暗号プロセッサを搭載しなくてもよい。本発明において暗号化復号を行うプロセッサはDESやAESに準拠する処理を行なうコプロセッサに限定されず、適宜変更可能である。   For example, the data processing apparatus according to the present invention is not limited to an IC card microcomputer, and may be an RFID chip, a general-purpose microcomputer, or the like. Furthermore, the data processing apparatus according to the present invention is not limited to a one-chip semiconductor integrated circuit. Further, the data processing apparatus may not be equipped with a public cryptographic processor. In the present invention, the processor that performs encryption / decryption is not limited to a coprocessor that performs processing conforming to DES or AES, and can be changed as appropriate.

図1は共通鍵暗号プロセッサの一例としてAESコプロセッサの実装例を示すブロックダイヤグラムである。FIG. 1 is a block diagram showing an implementation example of an AES coprocessor as an example of a common key cryptographic processor. 図2は本発明の一例に係るICカード用マイコンのブロックダイヤグラムである。FIG. 2 is a block diagram of an IC card microcomputer according to an example of the present invention. 図3は拡大鍵レジスタへ一回攻撃を受けてその値が変化される場合に同じ演算を何回繰り返しても同じ結果しか得られず故障攻撃に対処することが出来ない場合を例示する説明図である。FIG. 3 is an explanatory diagram illustrating a case where a failure attack cannot be dealt with because only the same result can be obtained no matter how many times the same operation is repeated when the value is changed by receiving a single attack on the extended key register. It is. 図4は複数回計算の各回の演算において同一タイミングで同一計算をしている場合に毎回同じ故障注入を与えて同じ誤った値を生成させることで故障攻撃に対する検算が無効化される可能性のあることを示す説明図である。FIG. 4 shows the possibility of invalidating the verification for a fault attack by giving the same fault injection every time and generating the same wrong value when the same calculation is performed at the same timing in each calculation of a plurality of calculations. It is explanatory drawing which shows that there exists. 図5は暗号利用モードとしてECBモードを示す説明図である。FIG. 5 is an explanatory diagram showing an ECB mode as an encryption usage mode. 図6は暗号利用モードとしてOFBモードを示す説明図である。FIG. 6 is an explanatory diagram showing the OFB mode as the encryption usage mode. 図7はECBモードにおいける暗号化と復号の演算手法を例示する説明図である。FIG. 7 is an explanatory view exemplifying calculation methods for encryption and decryption in the ECB mode. 図8はOFBモードにおいて暗号化も復号もEで示される“暗号処理”のアルゴリズムを共通に用いる点を詳細に示した説明図である。FIG. 8 is an explanatory diagram showing in detail that the “encryption processing” algorithm indicated by E is commonly used for both encryption and decryption in the OFB mode. 図9にはOFBモードの暗号化における検算処理を概念的に例示する説明図である。FIG. 9 is an explanatory diagram conceptually illustrating a verification process in the OFB mode encryption. 図10はECBモードで暗号化に際して行われる暗号化演算のタイミングチャートである。FIG. 10 is a timing chart of the encryption operation performed when encrypting in the ECB mode. 図11はECBモードで暗号化に際して行われる復号逆演算のタイミングチャートである。FIG. 11 is a timing chart of the reverse decryption operation performed when encrypting in the ECB mode. 図12はECBモードで復号に際しての動作タイミングチャートである。FIG. 12 is an operation timing chart for decoding in the ECB mode. 図13はECBモードの復号における予備的な拡大鍵演算処理で故障解析攻撃による拡大鍵の改ざんを受けたときの動作タイミングチャートである。FIG. 13 is an operation timing chart when the extended key is altered by a failure analysis attack in the preliminary extended key calculation process in the ECB mode decryption. 図14は図1の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号演算のフローチャートである。FIG. 14 is a flowchart of cryptographic operations in the circuit of FIG. 1 when the key length is 128 bits and the cryptographic usage mode is the ECB mode. 図15には図14の処理の後の復号逆演算のフローチャートである。FIG. 15 is a flowchart of the inverse decoding operation after the processing of FIG. 図16には図1の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における復号演算のフローチャートである。FIG. 16 is a flowchart of the decryption operation when the key length is 128 bits and the encryption usage mode is the ECB mode in the circuit of FIG. 図17は暗号化処理において暗号化対象にされた平文と暗号化された暗号文の復号逆演算によって得られた平文との一致を検算する処理も行うようにしたときのフローチャートである。FIG. 17 is a flowchart when the process of checking the coincidence between the plaintext to be encrypted and the plaintext obtained by the decryption inverse operation of the encrypted ciphertext in the encryption process is also performed. 図18は復号処理において復号された平文の暗号化逆演算を行い、当初の暗号文と暗号化逆演算された暗号文との一致を検算する処理も行うようにしたときのフローチャートである。FIG. 18 is a flowchart when the reverse encryption operation of the plaintext decrypted in the decryption process is performed, and the process of checking the match between the original ciphertext and the encrypted reverse ciphertext is also performed. 図19は図1のAESコプロセッサの第1の変形例を示すブロックダイヤグラムである。FIG. 19 is a block diagram showing a first modification of the AES coprocessor of FIG. 図20は図19の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号化演算を実施したときのフローチャートである。FIG. 20 is a flowchart when the encryption operation is performed in the circuit of FIG. 19 when the key length is 128 bits and the encryption usage mode is the ECB mode. 図21は図19の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における復号化演算を実施したときのフローチャートである。FIG. 21 is a flowchart when the decryption operation is performed in the circuit of FIG. 19 when the key length is 128 bits and the encryption usage mode is the ECB mode. 図22は図20に対応されるタイミングチャートである。FIG. 22 is a timing chart corresponding to FIG. 図23は図21に対応されるタイミングチャートである。FIG. 23 is a timing chart corresponding to FIG. 図24は図1のAESコプロセッサ7の第2の変形例を示すブロックダイヤグラムである。FIG. 24 is a block diagram showing a second modification of the AES coprocessor 7 of FIG. 図25は図24の回路において、鍵長が128ビット、暗号利用モードがECBモードの場合における暗号演算のフローチャートである。FIG. 25 is a flowchart of the cryptographic operation in the circuit of FIG. 24 when the key length is 128 bits and the encryption usage mode is the ECB mode. 図26は図25の復号演算のフローチャートである。FIG. 26 is a flowchart of the decoding operation of FIG. 図27は暗号化処理(E)とその前の暗号化処理(E)の逆演算である復号処理(D)を並列化したとき処理P1に並行して逆演算処理R1を行い、処理P2に並行して逆演算処理R2を行う様子を例示する説明図である。In FIG. 27, when the encryption process (E) and the decryption process (D) that is the inverse operation of the preceding encryption process (E) are parallelized, the inverse operation process R1 is performed in parallel with the process P1, and the process P2 is performed. It is explanatory drawing which illustrates a mode that reverse operation process R2 is performed in parallel. 図28は図27に示されるようにOFBモードにおける自動逆算機能を有するAESコプロセッサ7Cを例示するブロックダイヤグラムである。FIG. 28 is a block diagram illustrating an AES coprocessor 7C having an automatic reverse calculation function in the OFB mode as shown in FIG. 図29は図28の回路において鍵長が128ビット、暗号利用モードがOFBモードの場合における暗号化演算を実施したときのフローチャートである。FIG. 29 is a flowchart when an encryption operation is performed in the circuit of FIG. 28 when the key length is 128 bits and the encryption usage mode is the OFB mode. 図30は図29に続くフローチャートである。FIG. 30 is a flowchart following FIG. 図31は暗号演算の第1回目の動作のタイミングチャートであって図27の処理P0の暗号化処理(E)に対応されるタイミングチャートである。FIG. 31 is a timing chart of the first operation of the cryptographic operation and is a timing chart corresponding to the encryption process (E) of the process P0 of FIG. 図32には暗号演算の第2回目の動作のタイミングチャートであって図27の処理P1の暗号化処理(E)とR1の逆演算復号処理に対応されるタイミングチャートである。FIG. 32 is a timing chart of the second operation of the cryptographic operation, corresponding to the encryption process (E) of process P1 and the reverse operation decryption process of R1 in FIG.

符号の説明Explanation of symbols

1 ICカード用マイコン
2 通信モジュール
3 中央処理装置(CPU)
4 システムコントロールロジック
5 不揮発性メモリ
6 RAM
7,7A,7B,7C 共通鍵暗号プロセッサ
8 公開鍵暗号プロセッサ
9 クロック生成回路
10 内部バス
20,20A,20B,20C AES演算部
21 初期値レジスタ
22 平文/暗号文レジスタ
23 制御レジスタ
24 鍵レジスタ
25 比較用鍵レジスタ
26,41,51,52 比較器
30 インタフェース回路(I/F)
31,31a,31b 中間値レジスタ
32 AES演算回路
33,33A,33B,33C 制御回路
34 拡大鍵計算回路
35,35a,35b 拡大鍵レジスタ
40 拡大鍵保管レジスタ
50 比較用レジスタ
1 Microcontroller for IC card 2 Communication module 3 Central processing unit (CPU)
4 System control logic 5 Non-volatile memory 6 RAM
7, 7A, 7B, 7C Common Key Cryptographic Processor 8 Public Key Cryptographic Processor 9 Clock Generation Circuit 10 Internal Bus 20, 20A, 20B, 20C AES Operation Unit 21 Initial Value Register 22 Plain Text / Cipher Text Register 23 Control Register 24 Key Register 25 Comparison key register 26, 41, 51, 52 Comparator 30 Interface circuit (I / F)
31, 31a, 31b Intermediate value register 32 AES arithmetic circuit 33, 33A, 33B, 33C Control circuit 34 Extended key calculation circuit 35, 35a, 35b Extended key register 40 Extended key storage register 50 Comparison register

Claims (21)

暗号鍵を用いて平文の暗号化と暗号文の復号を行うプロセッサを備えたデータ処理装置であって、
前記プロセッサは、前記平文を対象として前記暗号化を当初の演算として行ったとき、前記暗号化の結果に対する復号を当該当初の演算の逆算として行い、又は、前記暗号文を対象として前記復号を当初の演算として行ったとき、前記復号の結果に対する暗号化を当該当初の演算の逆算として行い、この逆算において最終的に用いた暗号鍵を保持する記憶回路を有し、
前記データ処理装置は、前記逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵と一致するか否かを検証するために、前記記憶回路をアクセス可能に構成される、データ処理装置。
A data processing apparatus including a processor that encrypts plaintext and decrypts ciphertext using an encryption key,
When the encryption is performed on the plaintext as an initial operation, the processor performs decryption on the encryption result as a reverse operation of the original operation, or the decryption on the ciphertext is initially performed. When performing as the operation of, the encryption for the result of the decryption is performed as a reverse operation of the initial operation, and has a storage circuit that holds the encryption key finally used in the reverse operation,
The data processing device is configured to be accessible to the storage circuit in order to verify whether or not the encryption key finally used in the reverse calculation matches the encryption key used initially in the initial calculation. Data processing device.
暗号鍵を用いて平文の暗号化と暗号文の復号を行うプロセッサを備えたデータ処理装置であって、
前記プロセッサは、前記平文を対象として前記暗号化を当初の演算として行ったとき、前記暗号化の結果に対する復号を当該当初の演算の逆算として行い、又は、前記暗号文を対象として前記復号を当初の演算として行ったとき、前記復号の結果に対する暗号化を当該当初の演算の逆算として行い、この逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵に一致するか否かを検証する、データ処理装置。
A data processing apparatus including a processor that encrypts plaintext and decrypts ciphertext using an encryption key,
When the encryption is performed on the plaintext as an initial operation, the processor performs decryption on the encryption result as a reverse operation of the original operation, or the decryption on the ciphertext is initially performed. Is performed as a reverse operation of the initial operation, and the encryption key finally used in the reverse operation matches the encryption key initially used in the initial operation. A data processing device that verifies
プロセッサを備えたデータ処理装置であって、
前記プロセッサは、前記プロセッサの外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた暗号化演算を前記暗号化演算の結果に対して順次複数回繰り返して、前記プロセッサの外部から入力した平文に対する暗号化を行い、又は、前記プロセッサの外部から入力した暗号鍵に基づいて順次更新した暗号鍵を用いた復号演算を前記復号演算の結果に対して順次複数回繰り返して、前記プロセッサの外部から入力した暗号文に対する復号を行い、前記暗号化演算又は前記復号演算に用いた最新の前記更新した暗号鍵を保持する記憶回路を有し、
前記データ処理装置は、前記平文を対象として前記暗号化を当初の演算として行ったとき、前記暗号化の結果に対する復号を当該当初の演算の逆算として行い、又は、前記暗号文を対象として前記復号を当初の演算として行ったとき、前記復号の結果に対する暗号化を当該当初の演算の逆算として行い、前記逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵と一致するか否かを検証するために、前記記憶回路をアクセス可能に構成される、データ処理装置。
A data processing apparatus comprising a processor,
The processor repeats the encryption operation using the encryption key sequentially updated based on the initial value of the encryption key input from the outside of the processor a plurality of times sequentially with respect to the result of the encryption operation, The plaintext input from the encryption is performed, or the decryption operation using the encryption key sequentially updated based on the encryption key input from the outside of the processor is sequentially repeated a plurality of times for the result of the decryption operation, A decryption is performed on the ciphertext input from the outside of the processor, and the storage circuit that holds the latest updated encryption key used for the encryption operation or the decryption operation,
When the data processing apparatus performs the encryption as an initial operation on the plaintext , the data processing device performs a decryption on the encryption result as a reverse operation of the original operation, or the decryption on the ciphertext Is performed as an initial operation, encryption for the result of the decryption is performed as a reverse operation of the original operation , and the encryption key finally used in the reverse operation matches the encryption key initially used in the initial operation In order to verify whether or not, the data processing device is configured to be accessible to the storage circuit.
前記プロセッサを制御する中央処理装置を更に有し、前記記憶回路は前記中央処理装置のアドレス空間に配置される、請求項3記載のデータ処理装置。   The data processing apparatus according to claim 3, further comprising a central processing unit that controls the processor, wherein the storage circuit is arranged in an address space of the central processing unit. 前記記憶回路は、前記暗号鍵の初期値が中央処理装置によって書き込まれる領域であって、その後、暗号鍵の初期値に基づいて順次更新した最新の暗号鍵によって書き換えられる領域である、請求項4記載のデータ処理装置。   5. The storage circuit is an area in which an initial value of the encryption key is written by a central processing unit, and thereafter is an area that is rewritten with the latest encryption key that is sequentially updated based on the initial value of the encryption key. The data processing apparatus described. 前記プロセッサは平文の暗号化に際して、その暗号化の結果に対し、当該暗号化の最後の暗号化演算で用いた暗号鍵を初期値とする復号を逆演算として行い、当該復号の最後に用いた暗号鍵を前記記憶回路に書き込む、請求項3記載のデータ処理装置。   When encrypting plaintext, the processor performs an inverse operation on the encryption result used as the initial value of the encryption key used in the last encryption operation of the encryption, and used at the end of the decryption. The data processing apparatus according to claim 3, wherein an encryption key is written in the storage circuit. 前記プロセッサは暗号文の復号に際して、前記暗号鍵の初期値を暗号化の場合と同様に繰り返し更新して暗号化の最後に用いる暗号鍵を生成し、生成した当該暗号鍵を初期値に用いた復号演算を順次複数回繰り返して復号を行い、復号の最後に用いた暗号鍵を前記記憶回路に書き込む、請求項3記載のデータ処理装置。   When decrypting the ciphertext, the processor repeatedly updates the initial value of the encryption key in the same manner as in the case of encryption, generates an encryption key used at the end of encryption, and uses the generated encryption key as an initial value. 4. The data processing device according to claim 3, wherein the decryption operation is sequentially repeated a plurality of times to perform decryption, and the encryption key used at the end of decryption is written to the storage circuit. 前記記憶回路に書き込まれた前記復号の最後に用いた暗号鍵と、前記暗号化の最初に用いた暗号鍵とが一致するか否かを判別する比較器を更に有する、請求項6又は7記載のデータ処理装置。   The comparator further comprising: a comparator for determining whether or not the encryption key used at the end of the decryption written in the storage circuit matches the encryption key used at the beginning of the encryption. Data processing equipment. 前記比較器による不一致の判別結果は例外処理を要求する信号であり、
前記例外処理が要求される中央処理装置を更に有する、請求項8記載のデータ処理装置。
The discrimination result of the mismatch by the comparator is a signal requesting an exception process,
The data processing apparatus according to claim 8, further comprising a central processing unit that requires the exception processing.
前記例外処理は前記中央処理装置のリセット例外処理である、請求項9記載のデータ処理装置。   The data processing apparatus according to claim 9, wherein the exception process is a reset exception process of the central processing unit. プロセッサを備えたデータ処理装置であって、
前記プロセッサは、その外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位暗号化を複数単位分だけ直列的に実行して暗号化を行い、また、外部から入力した暗号鍵に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位復号を複数単位分だけ直列的に実行して復号を行い、
前記単位暗号化は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた暗号化演算を順次複数回繰り返す暗号化処理とその暗号化処理による処理結果を用いる暗号化論理演算とから成り、
前記単位復号は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた前記暗号化演算を順次複数回繰り返す暗号化処理とその暗号化処理による処理結果を用いる復号論理演算とから成り、
前記プロセッサは、前記暗号化において前ブロックの単位暗号化の暗号化処理の結果を受ける次ブロックの単位暗号化の暗号化処理に並行して、前記前ブロックの単位暗号化の暗号化処理の結果を用いて単位暗号化の暗号化処理の逆演算として復号処理を行い、前記逆演算に用いた最新の前記更新した暗号鍵を保持する記憶回路を有し、
前記データ処理装置は、前記逆演算において最終的に用いた暗号鍵が前記暗号化で最初に用いた暗号鍵と一致するか否かを検証するために、前記記憶回路をアクセス可能に構成される、データ処理装置。
A data processing apparatus comprising a processor,
The processor performs serial encryption for a plurality of units by repeating unit encryption using a cryptographic key that is sequentially updated based on an initial value of the cryptographic key input from the outside, and performs encryption in series. In addition, the unit decryption is performed by serially performing unit decryption for a plurality of units in order to repeat the operation using the encryption key sequentially updated based on the encryption key input from the outside, and performing decryption.
The unit encryption is an encryption logic that uses an encryption process that sequentially repeats an encryption operation using an encryption key that is sequentially updated based on an initial value of an encryption key that is input from the outside, and a processing result of the encryption process. Consisting of operations,
The unit decryption includes an encryption process that sequentially repeats the encryption operation using an encryption key that is sequentially updated based on an initial value of an encryption key that is input from the outside, and a decryption logic operation that uses a processing result of the encryption process And
In parallel with the encryption processing of the unit encryption of the next block, the processor receives the result of the encryption processing of the unit encryption of the previous block in the encryption, and the result of the encryption processing of the unit encryption of the previous block A decryption process as an inverse operation of the encryption process of unit encryption, and a storage circuit that holds the latest updated encryption key used in the inverse operation,
Wherein the data processing apparatus, since the final encryption key used in the inverse operation to verify whether the match the encryption key used for the first in the encrypted configured the storage circuit accessibly , Data processing equipment.
前記プロセッサは、前記復号において前ブロックの単位復号の暗号化処理の結果を受ける次ブロックの単位復号の暗号化処理に並行して、前記前ブロックの単位復号の暗号化処理の結果を用いて単位暗号化の暗号化処理の逆演算として復号処理を行い、
前記記憶回路は、前記逆演算に用いた最新の前記更新した暗号鍵を保持する、請求項11記載のデータ処理装置。
The processor uses the result of the unit decryption process of the previous block in parallel with the unit decryption process of the next block that receives the result of the unit decryption process of the previous block in the decryption. Perform decryption processing as the inverse operation of encryption processing of encryption,
The data processing apparatus according to claim 11, wherein the storage circuit holds the latest updated encryption key used for the inverse operation.
前記プロセッサを制御する中央処理装置を更に有し、前記記憶回路は前記中央処理装置のアドレス空間に配置される、請求項12記載のデータ処理装置。   The data processing device according to claim 12, further comprising a central processing unit that controls the processor, wherein the storage circuit is arranged in an address space of the central processing unit. 前記記憶回路は、前記暗号鍵の初期値が中央処理装置によって書き込まれる領域であって、その後、暗号鍵の初期値に基づいて順次更新した最新の暗号鍵によって書き換えられる領域である、請求項13記載のデータ処理装置。   14. The storage circuit is an area in which an initial value of the encryption key is written by a central processing unit, and thereafter is an area that is rewritten with the latest encryption key that is sequentially updated based on the initial value of the encryption key. The data processing apparatus described. 前記暗号化論理演算及び前記復号論理演算は排他的論理和演算である、請求項12記載のデータ処理装置。   The data processing apparatus according to claim 12, wherein the encryption logical operation and the decryption logical operation are exclusive OR operations. 前記記憶回路に書き込まれた前記復号の最後に用いた暗号鍵と、前記暗号化の最初に用いた暗号鍵とが一致するか否かを判別する比較器を更に有する、請求項12記載のデータ処理装置。   13. The data according to claim 12, further comprising a comparator for determining whether or not the encryption key used at the end of the decryption written in the storage circuit matches the encryption key used at the beginning of the encryption. Processing equipment. 前記比較器による不一致の判別結果は例外処理を要求する信号であり、
前記例外処理が要求される中央処理装置を更に有する、請求項16記載のデータ処理装置。
The discrimination result of the mismatch by the comparator is a signal requesting an exception process,
The data processing apparatus according to claim 16, further comprising a central processing unit for which the exception processing is required.
前記例外処理は前記中央処理装置のリセット例外処理である、請求項17記載のデータ処理装置。   The data processing apparatus according to claim 17, wherein the exception process is a reset exception process of the central processing unit. 前記プロセッサはAESに準拠する、請求項3又は12記載のデータ処理装置。   The data processor according to claim 3 or 12, wherein the processor conforms to AES. データ処理装置は半導体基板に形成されたICカード用のマイクロコンピュータである、請求項3又は12記載のデータ処理装置。   The data processing apparatus according to claim 3 or 12, wherein the data processing apparatus is a microcomputer for an IC card formed on a semiconductor substrate. 前記プロセッサは、暗号アルゴリズムの暗号化機能のみを用いる暗号利用モードにおいて、復号処理による検算を処理する機能を備える請求項3又は11記載のデータ処理装置。   The data processor according to claim 3 or 11, wherein the processor has a function of processing verification by decryption processing in an encryption usage mode that uses only an encryption function of an encryption algorithm.
JP2008178084A 2008-07-08 2008-07-08 Data processing device Expired - Fee Related JP5483838B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008178084A JP5483838B2 (en) 2008-07-08 2008-07-08 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008178084A JP5483838B2 (en) 2008-07-08 2008-07-08 Data processing device

Publications (2)

Publication Number Publication Date
JP2010021637A JP2010021637A (en) 2010-01-28
JP5483838B2 true JP5483838B2 (en) 2014-05-07

Family

ID=41706136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008178084A Expired - Fee Related JP5483838B2 (en) 2008-07-08 2008-07-08 Data processing device

Country Status (1)

Country Link
JP (1) JP5483838B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7063628B2 (en) * 2018-01-11 2022-05-09 Necプラットフォームズ株式会社 Cryptographic devices, encryption methods and programs
US11055409B2 (en) * 2019-01-06 2021-07-06 Nuvoton Technology Corporation Protected system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154976A (en) * 1996-11-22 1998-06-09 Toshiba Corp Tamper-free system
FR2829331B1 (en) * 2001-09-04 2004-09-10 St Microelectronics Sa METHOD FOR SECURING A SECRET QUANTITY
FR2838262B1 (en) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa METHOD FOR SECURING ELECTRONICS WITH ENCRYPTED ACCESS

Also Published As

Publication number Publication date
JP2010021637A (en) 2010-01-28

Similar Documents

Publication Publication Date Title
CN101256613B (en) Secure processor system without need for manufacturer and user to know encryption information of each other
CN102737202B (en) The instruction encryption/decryption device utilizing iterative cryptographic/decruption key to upgrade and method
KR100837270B1 (en) Smart card and data security method thereof
TWI822783B (en) System on chip and memory system including security processor with improved memory use efficiency and method of operating system on chip
US9703945B2 (en) Secured computing system with asynchronous authentication
TWI434565B (en) Key protection mechanism
KR101546204B1 (en) Host device, semiconductor memory device, and authentication method
US7454017B2 (en) Information processing unit
EP2831800B1 (en) Method for protecting data
US20160171249A1 (en) Decryption Systems And Related Methods For On-The-Fly Decryption Within Integrated Circuits
CN106295257A (en) A kind of authentication method being reinforced software and device
US9842214B2 (en) System and method to secure on-board bus transactions
US9251098B2 (en) Apparatus and method for accessing an encrypted memory portion
TW201723804A (en) Secure modular exponentiation processors, methods, systems, and instructions
US8311212B2 (en) Method of processing data protected against attacks by generating errors and associated device
US10862682B2 (en) Nonce generation for encryption and decryption
JP5483838B2 (en) Data processing device
KR101656092B1 (en) Secured computing system with asynchronous authentication
US20150249467A1 (en) Storage device, controller, and data writing method
US20210319143A1 (en) Memory bus link authentication and encryption mechanisms for hardware-based replay protection
JP2005045760A (en) Cipher processing method and device thereof
US11442738B2 (en) Method for executing a machine code of a secure function
CN113343215A (en) Embedded software authorization and authentication method and electronic equipment
US9213864B2 (en) Data processing apparatus and validity verification method
US20240069917A1 (en) Method for executing a machine code by means of a computer

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140218

R150 Certificate of patent or registration of utility model

Ref document number: 5483838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees