JP5483838B2 - Data processing device - Google Patents
Data processing device Download PDFInfo
- 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
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
暗号演算への故障攻撃の対策として上述のような二度以上の計算の実施か逆算が推奨されるが、本発明者の検討によれば以下の問題点のあることが明らかにされた。 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
〔9〕項8のデータ処理装置において、前記比較器による不一致の判別結果は例外処理を要求する信号であり、前記例外処理が要求される中央処理装置を更に有する。
[9] In the data processing apparatus according to
〔10〕項9のデータ処理装置において、前記例外処理は前記中央処理装置のリセット例外処理である。
[10] In the data processing device according to
〔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
〔13〕項12のデータ処理装置において、前記プロセッサを制御する中央処理装置(3)を更に有し、前記記憶回路は前記中央処理措置のアドレス空間に配置される。
[13] The data processing device according to
〔14〕項13のデータ処理装置において、前記記憶回路は、前記暗号鍵の初期値が中央処理装置によって書き込まれる領域であって、その後、暗号鍵の初期値に基づいて順次更新した最新の暗号鍵によって書き換えられる領域である。
[14] In the data processing device according to
〔15〕項12のデータ処理装置において、前記暗号化論理演算及び前記復号論理演算は排他的論理和演算である。
[15] In the data processing device according to
〔16〕項12のデータ処理装置において、前記プロセッサは前記記憶回路に書き込まれた前記復号の最後に用いた暗号鍵と、前記暗号化の最初に用いた暗号鍵とが一致するか否かを判別する比較器を更に有する。
[16] In the data processing device according to
〔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
〔20〕項3又は12のデータ処理装置において、データ処理装置は半導体基板に形成されたICカード用のマイクロコンピュータである。
[20] In the data processing apparatus according to
〔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
図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
共通鍵暗号プロセッサ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
《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
このとき、暗号化に際して、演算された暗号文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
図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演算部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
図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
図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
尚、図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
図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
尚、図24において、故障対策非考慮時は、比較器41による検出を止め、拡大鍵を拡大鍵保管レジスタ40からロードして用いることも可能である。また、拡大鍵保管レジスタ40に保管する拡大鍵を最終ラウンドのみなどの一部とし、検算は保管した拡大鍵のみとし、拡大鍵計算結果をAESの演算回路の入力にすることも可能である。
In FIG. 24, when failure countermeasures are not taken into account, detection by the
図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
図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
図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
検証後、次の演算/逆算を実施のため、拡大鍵レジスタに最終ラウンドの拡大鍵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
以後の暗号演算文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 /
図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
以上説明した本発明の実施携帯によれば以下の作用効果を得る。 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 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
4
7, 7A, 7B, 7C Common
31, 31a, 31b Intermediate value register 32
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.
前記例外処理が要求される中央処理装置を更に有する、請求項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.
前記プロセッサは、その外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位暗号化を複数単位分だけ直列的に実行して暗号化を行い、また、外部から入力した暗号鍵に基づいて順次更新した暗号鍵を用いた演算を順次複数回繰り返す単位復号を複数単位分だけ直列的に実行して復号を行い、
前記単位暗号化は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた暗号化演算を順次複数回繰り返す暗号化処理とその暗号化処理による処理結果を用いる暗号化論理演算とから成り、
前記単位復号は、外部から入力した暗号鍵の初期値に基づいて順次更新した暗号鍵を用いた前記暗号化演算を順次複数回繰り返す暗号化処理とその暗号化処理による処理結果を用いる復号論理演算とから成り、
前記プロセッサは、前記暗号化において前ブロックの単位暗号化の暗号化処理の結果を受ける次ブロックの単位暗号化の暗号化処理に並行して、前記前ブロックの単位暗号化の暗号化処理の結果を用いて単位暗号化の暗号化処理の逆演算として復号処理を行い、前記逆演算に用いた最新の前記更新した暗号鍵を保持する記憶回路を有し、
前記データ処理装置は、前記逆演算において最終的に用いた暗号鍵が前記暗号化で最初に用いた暗号鍵と一致するか否かを検証するために、前記記憶回路をアクセス可能に構成される、データ処理装置。 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.
前記例外処理が要求される中央処理装置を更に有する、請求項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.
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)
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)
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 |
-
2008
- 2008-07-08 JP JP2008178084A patent/JP5483838B2/en not_active Expired - Fee Related
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 |