JP2016009114A - Data processing apparatus and decryption processing method - Google Patents
Data processing apparatus and decryption processing method Download PDFInfo
- Publication number
- JP2016009114A JP2016009114A JP2014130199A JP2014130199A JP2016009114A JP 2016009114 A JP2016009114 A JP 2016009114A JP 2014130199 A JP2014130199 A JP 2014130199A JP 2014130199 A JP2014130199 A JP 2014130199A JP 2016009114 A JP2016009114 A JP 2016009114A
- Authority
- JP
- Japan
- Prior art keywords
- value
- register
- remainder
- arithmetic
- mod
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
本発明は、公開鍵暗号の一つであるRSA(Rivest Shamir Adleman)の中国人剰余定理(CRT:Chinese remainder theorem)に対するフォルトアタック(FA:Fault Attack)対策に関し、例えば、ICカード、車載マイコンシステム、IOT(Internet of Things)などに代表されるセキュリティ機能搭載製品及びセキュリティ機能搭載システムに適用して有効な技術に関する。 The present invention relates to a measure against a fault attack (FA) against the Chinese remainder theorem (CRT) of RSA (Rivest Shamir Adleman), which is one of public key cryptosystems. The present invention relates to a technology effective when applied to a security function-equipped product and a security function-equipped system represented by IOT (Internet of Things).
RSAでは復号処理を高速に行うため中国人剰余定理が用いられている。一方、RSA等の暗号アルゴリズム実行中に鍵など秘密情報を暴き出す様々な攻撃手法が提案されている。その中で強力なものとして、フォルトアタックがある。この方法は計算実行中に何らかの方法で誤りを発生させ、この時の計算結果と正しく動作した時の計算結果から鍵情報を特定するものである。 In RSA, the Chinese remainder theorem is used to perform the decryption process at high speed. On the other hand, various attack methods for revealing secret information such as a key while executing an encryption algorithm such as RSA have been proposed. A powerful attack is a fault attack. In this method, an error is generated in some way during execution of the calculation, and the key information is specified from the calculation result at this time and the calculation result when the operation is performed correctly.
<RSA>
RSAとは、公開鍵をe、nとし、秘密鍵をfとし、平文をZとし、暗号文をXとすると、次の計算式
X=ZemodM、
で暗号化する。また、次の式
Z=XfmodM、
で復号する。
<RSA>
RSA means that the public key is e, n, the secret key is f, the plaintext is Z, and the ciphertext is X, the following formula X = Z e modM,
Encrypt with Also, the following equation Z = X f modM,
Decrypt with.
ここで秘密の素数をp,qとすると、次の関係
1=e×fmod{(p−1)(q−1)}、
M=p×q、
が成り立つ。
Here, if the secret prime numbers are p and q, the following
M = p × q,
Holds.
<中国人剰余定理>
上記復号の処理に中国人剰余定理を用いる場合には次の計算式
Dp=fmod(p−1)、
Dq=fmod(q−1)、
Xp=XDpmodp、
Xq=XDqmodq、
w=(Xp−Xq)×q−1modp、
Z=w×q+Xq、
によって平文Zを得ることができる。
<Chinese surplus theorem>
When the Chinese remainder theorem is used for the decoding process, the following calculation formula Dp = fmod (p−1),
Dq = fmod (q−1),
Xp = X Dp modp,
Xq = X Dq modq,
w = (Xp−Xq) × q −1 modp,
Z = w × q + Xq,
The plaintext Z can be obtained by
<フォルトアタック>
フォルトアタックとは暗号処理実行中に、電源やクロックへのノイズ注入及び回路へのレーザ照射により、故障状態を引き起こした時に出力される値を正しい値と比較して鍵などの秘密情報を暴き出す攻撃手法である。
<Fault Attack>
Fault attack is the encryption of noise and power to the power supply and clock, and laser irradiation to the circuit, and the secret value such as the key is revealed by comparing the output value when the failure state occurs with the correct value. It is an attack technique.
<中国人剰余定理に対するフォルトアタック>
中国人剰余定理に対するフォルトアタックでは、以下に示すようにXp又はXqを求めるべき乗剰余演算の実行時に故障状態を引き起こす。例えば図6に例示するようにXpを求めるべき乗剰余演算の実行タイミングに合わせて故障状態を引き起こす。故障状態を引き起こして誤りを生じた演算結果Z’と正しい演算結果Zから次の計算式
Z−Z’=(w−w’)×q、
q=gcd{pq、(w−w’)×q}=gcd(M,Z−Z’)、
で示すようにして、既知値のMと出力値の差Z−Z’との最大公約数としてqが求められる。qからp及びfを求めることができるので、秘密鍵fが攻撃者に暴かれてしまうことになる。
<Fault attack against the Chinese remainder theorem>
In the fault attack for the Chinese remainder theorem, as shown below, a fault condition is caused at the time of execution of a modular multiplication operation for obtaining Xp or Xq. For example, as illustrated in FIG. 6, the failure state is caused in accordance with the execution timing of the remainder calculation for which Xp is to be obtained. From the calculation result Z ′ that causes an error due to the failure state and the correct calculation result Z, the following calculation formula ZZ ′ = (w−w ′) × q,
q = gcd {pq, (w−w ′) × q} = gcd (M, Z−Z ′),
Q is obtained as the greatest common divisor between the known value M and the output value difference ZZ ′. Since p and f can be obtained from q, the secret key f is revealed to the attacker.
<フォルトアタック対策>
消費電力のような物理情報を解析して秘密鍵fを不正に暴く攻撃手法への対策として例えば特許文献1に記載された技術がある。また、電力消費の解析や故障注入による攻撃に対する対策として特許文献2に記載された技術がある。しかしながら、何れも中国人剰余定理による復号アルゴリズムに着目したフォルトアタックへの対策は考慮されていない。本発明者は以下の対策について検討した。
<Fault attack countermeasures>
For example, there is a technique described in
第1の対策は、XpとXqの計算をそれぞれ2回実施し、2回とも同じ値になることが確認できたらZの値を出力する。すなわち、検算をして結果が合わなければ攻撃を受けたとみなし、Zの値を出力しない。この方法では、XpとXqに係るべき乗剰余演算を4回行う必要がある。 As a first countermeasure, Xp and Xq are calculated twice, and if it is confirmed that the same value is obtained twice, the value of Z is output. That is, if the result does not match after the verification, it is considered that the attack has been received, and the value of Z is not output. In this method, it is necessary to perform the power-residue calculation relating to Xp and Xq four times.
第2の対策は、中国人剰余定理を用いて計算した結果Zを再度暗号化(X=ZemodM)し、入力Xと同じ値になることを確認できたらZを出力し、そうでなければZを出力しない。e=65537がよく使われるので、この場合は再度の暗号化の計算時間は長くなく、その計算時間が実用に耐えないことはない。 The second measure is to re-encrypt the result Z calculated using the Chinese remainder theorem (X = Z e modM) and output Z if it can be confirmed that the value is the same as the input X. Z is not output. Since e = 65537 is often used, in this case, the calculation time for re-encryption is not long, and the calculation time is not practical.
本発明者はフォルトアタック対策の上記第1の対策及び第2の対策について検討した。第1の対策では、XpとXqに係るべき乗剰余演算を4回行う必要があり、無視し得ない程に計算時間が増大してしまう。第2の対策は暗号強度を高くするために任意値のeを使用しようとする場合にeの値が大きくなると、計算処理時間が長くなり過ぎて実用に耐えないことが想定される。 The inventor examined the first countermeasure and the second countermeasure for the countermeasure against the fault attack. In the first countermeasure, the power-residue calculation relating to Xp and Xq needs to be performed four times, and the calculation time increases to a degree that cannot be ignored. As a second countermeasure, when an arbitrary value e is used to increase the encryption strength, if the value of e increases, it is assumed that the calculation processing time becomes too long to be practically used.
上記並びにその他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。 The above and other problems and novel features will become apparent from the description of the specification and the accompanying drawings.
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。 An outline of representative ones of the embodiments disclosed in the present application will be briefly described as follows.
すなわち、Y=XdmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う。上記べき乗剰余演算はRSAの復号処理を、中国人剰余定理を用いて行う場合のべき乗剰余演算に適用する。本明細書中において上記「X2^n」におけるべき乗数「2^n」は「2n」を意味する。即ち、本明細書では便宜上記号^をべき乗記号として用いることがある。
That is, in the modular exponentiation operation represented by Y = X d mod N, when d's two's complement is d 'and n is the number of bits of d, C0 = X d' mod N, C1 = X d mod N and T = X 2 ^ n mod N is calculated, and it is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。 The effects obtained by the representative ones of the embodiments disclosed in the present application will be briefly described as follows.
すなわち、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。 That is, whether or not an error has been injected at the power-residue calculation timing in the Chinese remainder theorem process applied to the RSA decryption process, even when an arbitrary public key e is used for encryption, Therefore, it is possible to detect through the original power-residue operation for decryption without adding a power-residue operation for encryption or an encryption operation only for verification.
1.実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of an embodiment disclosed in the present application will be described. Reference numerals in the drawings referred to with parentheses in the outline description of the embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.
〔1〕<フォルトアタックに対抗するべき乗剰余演算可能なデータ処理装置>
データ処理装置(1)は中国人剰余定理を用いてRSAの復号処理を行う演算器(2)を有する。前記演算器は、Y=XdmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数として、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理を行う。
[1] <Data processing device capable of calculating remainder to counter a fault attack>
The data processing device (1) has a computing unit (2) that performs RSA decoding using the Chinese remainder theorem. In the modular exponentiation operation to be expressed by Y = X d mod N, the arithmetic unit sets C ′ = X d ′ mod N,
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔2〕<フォルトアタック検出時のエラー応答>
項1において、エラーとする処理はC1の値以外の値を返す処理である。
[2] <Error response when a fault attack is detected>
In
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
〔3〕<プロセッサのプログラム処理で演算器の機能を実現>
項1において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
[3] <Function of the arithmetic unit is realized by processor program processing>
In
これによれば、演算器の機能実現に柔軟性を持たせることができる。 According to this, it is possible to provide flexibility in realizing the function of the arithmetic unit.
〔4〕<専用ハードウェアで演算器の機能を実現>
項1において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいてY=XdmodNで表されるべき乗剰余演算の演算制御と演算を行うべき乗剰余演算回路である。
[4] <Achievement of calculator functions with dedicated hardware>
In
これによれば、演算器による復号処理の更なる高速化に資することができる。 According to this, it can contribute to the further speed-up of the decoding process by an arithmetic unit.
〔5〕<フォルトアタックに対抗するべき乗剰余演算方法>
復号処理方法は、中国人剰余定理を用いてRSAの復号をデータ処理によって行う方法であって、前記データ処理は2回のべき乗剰余演算を含。Y=XdmodNで表される夫々のべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とし、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理を行う。
[5] <Remainder calculation method to counter a fault attack>
The decoding processing method is a method of performing RSA decoding by data processing using the Chinese remainder theorem, and the data processing includes two exponentiation remainder operations. In each power-residue operation represented by Y = X d mod N, d's two's complement is d ', n is the number of bits of d, C0 = X d' mod N, C1 = X d mod N, and T = X 2 ^ n modN is calculated (S2 to S9), and it is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1 (S10, S11). If they match, the value of C1 is set to Y (S12), and if they do not match, an error is set (S13).
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔6〕<フォルトアタック検出時のエラー応答>
項5において、エラーとする処理はC1の値以外の値を返す処理である。
[6] <Error response when a fault attack is detected>
In
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
〔7〕<フォルトアタックに対抗するべき乗剰余演算可能なデータ処理装置>
データ処理装置(1)は、秘密鍵f、p及びqを用いてRSA暗号による暗号文Xを平文Zに復号する演算器(2)を有する。前記演算器による演算処理は、fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、w×q+Xpによって平文Zを求める第4処理とを含む。前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
[7] <Data processing apparatus capable of calculating remainder to counter a fault attack>
The data processing device (1) has a computing unit (2) that decrypts the ciphertext X by RSA encryption into plaintext Z using the secret keys f, p, and q. The arithmetic processing by the computing unit includes a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1, and Xq = X Dq using a remainder Dq obtained by dividing f by q−1. a second process of obtaining a mod q, and a third process by using the inverse element q -1 q-modulo value and p Xp-Xq, seek w = (Xp-Xq) × q -1 modp, 4th process which calculates | requires plaintext Z by wxq + Xp. When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is d ′ as the 2's complement of d, and n is the number of bits of d. C0 = X d ′ mod N ,
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔8〕<フォルトアタック検出時のエラー応答>
項7において、エラーとする処理はC1の値以外の値を返す処理である。
[8] <Error response when a fault attack is detected>
In
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
〔9〕<プロセッサのプログラム処理で演算器の機能を実現>
項7において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
[9] <Achievement unit functions realized by processor program processing>
In
これによれば、演算器の機能実現に柔軟性を持たせることができる。 According to this, it is possible to provide flexibility in realizing the function of the arithmetic unit.
〔10〕<専用ハードウェアで演算器の機能を実現>
項7において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいて前記第1処理乃至第4処理の演算制御と演算を行うべき乗剰余演算回路である。
[10] <Achievement of calculator functions with dedicated hardware>
In
これによれば、演算器による復号処理の更なる高速化に資することができる。 According to this, it can contribute to the further speed-up of the decoding process by an arithmetic unit.
〔11〕<フォルトアタックに対抗するべき乗剰余演算方法>
復号処理方法は、データ処理装置に秘密鍵f、p及びqと共にRSA暗号による暗号文Xを与えて平文Zに復号する方法であって、fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、w×q+Xpによって平文Zを求める第4処理とを含む。前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
[11] <Remainder calculation method to counter a fault attack>
The decryption method is a method of decrypting plaintext Z by giving ciphertext X by RSA encryption together with secret keys f, p and q to the data processing device, and using the remainder Dp obtained by dividing f by p−1, Xp = X Dp modp first process, fq divided by q-1 is used as a second process to calculate Xq = X Dq modq, and the inverse of q modulo Xp-Xq and p using the original q -1, and a third process of obtaining a w = (Xp-Xq) × q -1 modp, and a fourth process of obtaining a plaintext Z by w × q + Xp. When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is d ′ as the 2's complement of d, and n is the number of bits of d. C0 = X d ′ mod N ,
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔12〕<フォルトアタック検出時のエラー応答>
項11において、エラーとする処理はC1の値以外の値を返す処理である。
[12] <Error response when a fault attack is detected>
In
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
〔13〕<フォルトアタックに対抗するべき乗剰余演算可能なデータ処理装置>
データ処理装置(1)は、秘密鍵f、p及びqを用いてRSA暗号による暗号文Xを平文Zに復号する演算器(2)を有する。前記演算器による演算処理は、fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、w×q+Xpによって平文Zを求める第4処理とを含む。前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、
TレジスタにXを初期設定する処理(S1)、
dのビットを順番に参照し、参照する度にTレジスタの値の二乗に対してNを法とする剰余でTレジスタを書き換える処理(S5)、
参照したdのビットが初めて1になるまでの間は、dのビットの参照の都度、Tレジスタの値でC0レジスタとC1レジスタを書き換える処理(S4)、
参照したdのビットが一旦1になってからは、dのビットの1を参照する度にC1レジスタの値とTレジスタの値の積に対してNを法とする剰余でC1レジスタを書き換え(S8)、dのビットの0を参照する度にC0レジスタの値とTレジスタの値の積に対してNを法とする剰余でC0レジスタを書き換える処理(S7)、及び
dの全てのビットを参照したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余がTレジスタの値に一致するか否かを判別し(S10,S11)、一致であればC1レジスタの値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
[13] <Data processing apparatus capable of calculating remainder to counter a fault attack>
The data processing device (1) has a computing unit (2) that decrypts the ciphertext X by RSA encryption into plaintext Z using the secret keys f, p, and q. The arithmetic processing by the computing unit includes a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1, and Xq = X Dq using a remainder Dq obtained by dividing f by q−1. a second process of obtaining a mod q, and a third process by using the inverse element q -1 q-modulo value and p Xp-Xq, seek w = (Xp-Xq) × q -1 modp, 4th process which calculates | requires plaintext Z by wxq + Xp. When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is as follows:
Processing to initially set X in the T register (S1);
A process of rewriting the T register with a remainder modulo N with respect to the square of the value of the T register each time the bits of d are referred to (S5),
Until the bit of d referred to becomes 1 for the first time, the process of rewriting the C0 register and the C1 register with the value of the T register every time the bit of d is referred (S4),
Once the referenced d bit is set to 1, the C1 register is rewritten with a remainder modulo N for the product of the value of the C1 register and the value of the T register each
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔14〕<フォルトアタック検出時のエラー応答>
項13において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
[14] <Error response when a fault attack is detected>
In
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
〔15〕<プロセッサのプログラム処理で演算器の機能を実現>
項13において、前記演算器(2)は、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
[15] <Actual unit functions are realized by processor program processing>
In
これによれば、演算器の機能実現に柔軟性を持たせることができる。 According to this, it is possible to provide flexibility in realizing the function of the arithmetic unit.
〔16〕<専用ハードウェアで演算器の機能を実現>
項13において、前記演算器は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路であり、コマンドレジスタ(20)、パラメータレジスタ(22,23)、制御回路(21)及び演算回路(24)を有する。前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれる。前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有する。前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる。
[16] <Achievement of calculator functions with dedicated hardware>
In
これによれば、演算器による復号処理の更なる高速化に資することができる。 According to this, it can contribute to the further speed-up of the decoding process by an arithmetic unit.
〔17〕<フォルトアタックに対抗するべき乗剰余演算方法>
復号処理方法は、データ処理装置に秘密鍵f、p及びqと共にRSA暗号による暗号文Xを与えて平文Zに復号する方法であって、fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、w×q+Xpによって平文Zを求める第4処理とを含む。前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、
TレジスタにXを初期設定する処理(S1)、
dのビットを順番に参照し、参照する度にTレジスタの値の二乗に対してNを法とする剰余でTレジスタを書き換える処理(S5)、
参照したdのビットが初めて1になるまでの間は、dのビットの参照の都度、Tレジスタの値でC0レジスタとC1レジスタを書き換える処理(S4)、
参照したdのビットが一旦1になってからは、dのビットの1を参照する度にC1レジスタの値とTレジスタの値の積に対してNを法とする剰余でC1レジスタを書き換え(S8)、dのビットの0を参照する度にC0レジスタの値とTレジスタの値の積に対してNを法とする剰余でC0レジスタを書き換える(S7)処理、及び
dの全てのビットを参照したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余がTレジスタの値に一致するか否かを判別し(S10,S11)、一致であればC1レジスタの値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
[17] <Remainder calculation method to counter a fault attack>
The decryption method is a method of decrypting plaintext Z by giving ciphertext X by RSA encryption together with secret keys f, p and q to the data processing device, and using the remainder Dp obtained by dividing f by p−1, Xp = X Dp modp first process, fq divided by q-1 is used as a second process to calculate Xq = X Dq modq, and the inverse of q modulo Xp-Xq and p using the original q -1, and a third process of obtaining a w = (Xp-Xq) × q -1 modp, and a fourth process of obtaining a plaintext Z by w × q + Xp. When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is as follows:
Processing to initially set X in the T register (S1);
A process of rewriting the T register with a remainder modulo N with respect to the square of the value of the T register each time the bits of d are referred to (S5),
Until the bit of d referred to becomes 1 for the first time, the process of rewriting the C0 register and the C1 register with the value of the T register every time the bit of d is referred (S4),
Once the referenced d bit is set to 1, the C1 register is rewritten with a remainder modulo N for the product of the value of the C1 register and the value of the T register each
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this, whether or not an error is injected at the timing of exponentiation operation in the process of the Chinese remainder theorem applied to the decryption process of RSA, even when an arbitrary public key e is used for encryption Thus, it is possible to detect through a power residue operation for decryption without adding a power residue operation only for verification or an encryption operation for only verification. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, the calculation processing time for preventing unauthorized disclosure of the secret key due to the fault attack is reduced.
〔18〕<フォルトアタック検出時のエラー応答>
項17において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
[18] <Error response when a fault attack is detected>
In item 17, the error processing is processing that returns a value other than the value of the C1 register.
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。 According to this, not only the fault attack itself focusing on the decryption algorithm based on the Chinese remainder theorem is invalidated but also the unauthorized access person cannot recognize it.
2.実施の形態の詳細
実施の形態について更に詳述する。
2. Details of Embodiments Embodiments will be further described in detail.
<中国人剰余定理を用いてRSAの復号処理を行う演算器>
図1にはICカード、車載マイコンシステム、IOTなどに代表されるセキュリティ機能搭載製品及びセキュリティ機能搭載システムに適用されるデータ処理装置1が例示される。このデータ処理装置は、公開鍵暗号の一つであるRSAの中国人剰余定理に対するフォルトアタックに対抗するためのべき乗剰余演算を実行可能にする演算器2を備える。図1には演算器2においてそのようなべき乗剰余演算の機能が論理記述によって例示される。
<Operational Unit that Performs RSA Decoding Processing Using Chinese Remainder Theorem>
FIG. 1 illustrates a security function-installed product represented by an IC card, an in-vehicle microcomputer system, an IOT, and the like and a
ここで、RSA、中国人剰余定理については前述した通りであり、以下の説明はそれを前提とする。データ処理装置1は前述したRSA及び中国人剰余定理を適用した所定のアルゴリズムに従って、暗号文Xを復号して平分Zを得る演算処理を行う。平文Zを暗号化して暗号文Xを得る演算処理がサポートされていても良いことは言うまでもない。
Here, RSA and the Chinese remainder theorem are as described above, and the following explanation is based on them. The
公開鍵をe、nとし、秘密鍵をfとし、平文をZとし、暗号文をXとするとき、RSAにおける復号の演算処理は、次の演算式
Z=XfmodM
によって実現される。ここで秘密の素数をp,qとすると、次の関係
1=e×fmod{(p−1)(q−1)}、
M=p×q、
が成り立つ。この関係を考慮して、上記復号の演算処理に中国人剰余定理を用いると、次の計算式
Dp=fmod(p−1)、
Dq=fmod(q−1)、
Xp=XDpmodp…第1処理、
Xq=XDqmodq…第2処理、
w=(Xp−Xq)×q−1modp…第3処理、
Z=w×q+Xq…第4処理、
によって平文Zを得ることができる。
When the public key is e, n, the secret key is f, the plaintext is Z, and the ciphertext is X, the decryption operation processing in RSA is the following arithmetic expression Z = X f modM
It is realized by. Here, if the secret prime numbers are p and q, the following
M = p × q,
Holds. In consideration of this relationship, when the Chinese remainder theorem is used for the calculation processing of the decoding, the following calculation formula Dp = fmod (p−1),
Dq = fmod (q−1),
Xp = X Dp modp ... 1st process,
Xq = X Dq modq ... 2nd process,
w = (Xp−Xq) × q −1 modp ... the third process,
Z = w × q + Xq ... 4th process,
The plaintext Z can be obtained by
図1の演算器2に示された論理記述は、上記第1処理又は第2処理に対して誤り注入によるフォルトアタックが行われたとき当該第1処理又は第2処理の演算結果を返さないようにするためのものである。図1の論理記述は、上記第1処理と第2処理の双方のべき乗剰余演算式を便宜的にY=XdmodNとして図示してある。即ち、第1処理Xp=XDpmodpの場合にはXp=Y、Dp=d、p=Nとされる。第2処理Xq=XDqmodqの場合にはXp=Y,Dq=d,q=Nとされる。図1において記号*は乗算を意味する。k=0〜n−1はnビット長を有するdの下位側からのビット番号を意味する。
The logical description shown in the
図1の演算器2に示された論理記述は、上記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、
C1=XdmodN、
T=X2^nmodN、
を演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を意味するものである。以下この処理について具体的に説明する。
The logical description shown in the
C1 = X d mod N,
T = X 2 ^ n mod N ,
To determine whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1, and if it matches, the value of C1 is set to Y. If there is an error, it means processing to be an error. This process will be specifically described below.
<Y=XdmodNの演算処理方法>
図2には図1の論理記述に対する具体的な演算処理フローが例示される。Y=XdmodNの演算処理を行うために、Tレジスタ、C0レジスタ、C1レジスタ、kレジスタ、dレジスタが用意される。図2の標記上、Tレジスタ、C0レジスタ、C1レジスタ、kレジスタ、dレジスタを単に記号←と共にT,C0,C1,k,dとして簡略的に図示してある。kレジスタは、dレジスタにセットされた値dの下位側からのビット番号0〜n−1の値と採る。Tレジスタ、C0レジスタ、C1レジスタには中間値T,C0,C1が一時的に保持される。
<Calculation method of Y = X d mod N>
FIG. 2 illustrates a specific operation processing flow for the logical description of FIG. In order to perform a calculation process of Y = X d modN, a T register, a C0 register, a C1 register, a k register, and a d register are prepared. 2, the T register, the C0 register, the C1 register, the k register, and the d register are simply illustrated as T, C0, C1, k, and d together with the symbol ←. The k register takes the values of
先ず、Nレジスタに値Nがセットされ、Tレジスタに暗号文Xが初期設定され、kレジスタに初期値0がセットされ、dレジスタに値dがセットされる(S1)。
First, the value N is set in the N register, the ciphertext X is initialized in the T register, the
次いで、kレジスタにセットされたビット番号の値d[k]=1が既に発生したか否かの判別が行われ(S2)、既に一度も発生指定なければ今回d[k]=0か否か(S3)、即ち今回初めてd[k]=1が発生したか(S2=No,S3=No)、或いは今回までに未だd[k]=1が発生していないか(S2=No,S3=Yes)、の判別が行われる。未だd[k]=1が発生していなくても、また、初めてd[k]=1が発生した場合にもレジスタTをT*TmodNの演算結果で書き換えると共に、レジスタkの値をk+1に更新する(S5)。初めてd[k]=1が発生した場合にはレジスタC0にそのときのTの値を初期設定し、レジスタC1にそのときのTの値を初期設定する(S4)。 Next, it is determined whether or not the bit number value d [k] = 1 set in the k register has already occurred (S2). (S3), that is, whether d [k] = 1 has occurred for the first time this time (S2 = No, S3 = No), or whether d [k] = 1 has not yet occurred (S2 = No, S3 = Yes) is determined. Even if d [k] = 1 has not yet occurred, and when d [k] = 1 occurs for the first time, the register T is rewritten with the operation result of T * TmodN, and the value of the register k is set to k + 1. Update (S5). When d [k] = 1 occurs for the first time, the value of T at that time is initialized in the register C0, and the value of T at that time is initialized in the register C1 (S4).
ステップS2においてkレジスタにセットされたビット番号の値d[k]=1が既に発生した後の場合には(S2=Yes)、今回d[k]=0であれば(S6=Yes)、レジスタC0をC0*TmodNの演算結果で書き換え(S7)、今回d[k]=1であれば(S6=No)、レジスタC1をC1*TmodNの演算結果で書き換え(S8)。ステップS7,S8の次にステップS5の処理を行う。 If the bit number value d [k] = 1 set in the k register in step S2 has already occurred (S2 = Yes), if d [k] = 0 this time (S6 = Yes), The register C0 is rewritten with the calculation result of C0 * TmodN (S7). If d [k] = 1 is present (S6 = No), the register C1 is rewritten with the calculation result of C1 * TmodN (S8). Following step S7 and S8, the process of step S5 is performed.
ステップS5の次に、値dの各ビットの論理値判別が最上位ビットまで完了したか(k<n−1)を判別し(S9)、最上位ビットの達するまで上記処理S2乃至S8を繰返す。 After step S5, it is determined whether or not the logical value determination of each bit of the value d has been completed up to the most significant bit (k <n-1) (S9), and the above processes S2 to S8 are repeated until the most significant bit is reached. .
上記ステップS2乃至S8はべき乗剰余演算に対するバイナリ法による処理の変形として位置付けることが可能である。通常のバイナリ法では図7の論理記述及び図8の演算処理フローに例示されるように、dの各ビットの値が1の場合は中間値CとTの双方を更新し、0の場合はTの値だけを更新し、最後にCに残った値が演算結果のYとなる。2進数標記でd=101110012、n=8を一例とすると、図9にはk=0〜7の各ビットの値d[k]に応ずる中間値Cに係るべき乗、Tに係るべき乗が図示されており、例えばk=4のとき(d[k]=1)、中間値Cに係るべき乗はX9+X16=X25になる。 Steps S2 to S8 can be positioned as a modification of the binary method for the power-residue calculation. In the normal binary method, as illustrated in the logical description of FIG. 7 and the operation processing flow of FIG. 8, when the value of each bit of d is 1, both intermediate values C and T are updated, and in the case of 0, Only the value of T is updated, and the last remaining value in C becomes Y of the calculation result. As an example, in binary notation, d = 10111001 2 and n = 8, FIG. 9 shows powers related to intermediate value C and powers related to T corresponding to the value d [k] of each bit of k = 0 to 7. For example, when k = 4 (d [k] = 1), the power related to the intermediate value C is X 9 + X 16 = X 25 .
通常のバイナリ法に対して図2のステップS2乃至S9の処理は、dの各ビットの値が1の場合は中間値C1とTの双方を更新し、0の場合は中間値C0とTの双方を更新する。前者はべき指数dに対するべき乗剰余演算C1=XdmodNに対応され、後者はdの2の補数d’に対するべき乗剰余演算C0=Xd’modNに対応される。特に、dのビットが最初に値1になる当該ビットに係る補数d’のビットは値1になるので、当該ビットが最初に値1になったときは、ステップS4に示されるようにC1だけでなくC0にもレジスタTの値がセットされるようになっている。
The processing of steps S2 to S9 in FIG. 2 for the normal binary method updates both the intermediate values C1 and T when the value of each bit of d is 1, and updates the intermediate values C0 and T when 0. Update both. The former corresponds to the power-residue operation C1 = X d modN for the power exponent d, and the latter corresponds to the power-residue operation C0 = X d ′ modN for the two's complement d ′ of d . In particular, since the bit of the complement d ′ related to the bit whose value d is first set to the
S2乃至S9の処理例として図9と同じく2進数標記でd=101110012、n=8の場合について図3に示す。図3でも便宜上C0,C1,Tの夫々についてべき乗だけを図示しており、Tに係るべき乗値はkが一つ進む毎にX2倍される。C0に係るべき乗値は、d[k]=1のときには直前値、d[k]=0のときには直前のC0に係るべき乗値と直前のTに係るべき乗値との積になる。C1に係るべき乗値は、d[k]=0のときには直前値、d[k]=1のときには直前のC1に係るべき乗値と直前のTに係るべき乗値との積になる。dとd’は補数関係になっているから、k毎にC0に係るべき乗値とC1に係るべき乗値との積はTに係るべき乗値に等しくなる。 As an example of the processing of S2 to S9, FIG. 3 shows the case where d = 1011001 2 and n = 8 in binary notation as in FIG. Figure 3 also convenience C0, C1, and illustrates a power only for each T, then exponential value of the T is k is X 2 times every advancing one. The power value related to C0 is the product of the previous value when d [k] = 1, and the product of the power value related to C0 immediately before and the power value related to T when d [k] = 0. The power value related to C1 is the product of the previous value when d [k] = 0, and the product of the power value related to C1 just before and the power value related to T when d [k] = 1. Since d and d ′ are in a complement relationship, the product of the power value related to C0 and the power value related to C1 is equal to the power value related to T for each k.
dの全てのビットを順次参照しながらステップS2乃至S9の処理を完了したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余でC0レジスタを書き換え(S10),C0レジスタの値がTレジスタの値に一致するか否かを判別する(S11)。Y=XdmodNで表されるべき乗剰余演算の処理中にレーザ照射などによって積極的に誤りが注入されていなければ、ステップS11の判別においてC0レジスタの値はTレジスタの値に一致される。図3の例に従えば、X71×X185=X256になる。 When the processing of steps S2 to S9 is completed while sequentially referring to all bits of d, the C0 register is rewritten with a remainder modulo N for the product of the value of the C0 register and the value of the C1 register (S10). , C0 register value is matched with T register value (S11). If no error is positively injected by laser irradiation or the like during the power-residue calculation process represented by Y = X d mod N, the value of the C0 register matches the value of the T register in the determination of step S11. According to the example of FIG. 3, X 71 × X 185 = X 256 .
ステップS11の判別が一致であればY=C1を演算結果として出力する(S12)。不一致の場合にはエラー処理を行う(S13)。 If the determination in step S11 is coincident, Y = C1 is output as the calculation result (S12). If they do not match, error processing is performed (S13).
このように、dの下位ビットから順番に演算し、初めてdのビットが1になるとき、レジスタC0とC1にTと同じ値を書き込み、dの各ビットが0の場合はレジスタ値C0とTを更新し、1の場合はレジスタ値C1とTを更新する。d’をdの2の補数とすると計算終了時にはC0=Xd’modN、C1=XdmodN、T=X2^nmodNとなり、C0×C1modN=X(d+d’)modN=X2^nmodN=Tであるから、TとC0×C1modNが同じ値になればC1を計算結果Yとして出力し、そうでなければ攻撃を受けたとみなしエラー処理を行う。エラー処理としてはYを出力しないこと、或いはC1以外の任意の値を出力する処理とする。
In this way, when the d bits become 1 for the first time, the same value as T is written to the registers C0 and C1, and when each bit of d is 0, the register values C0 and T In the case of 1, the register values C1 and T are updated. Assuming that d ′ is the 2's complement of d, C0 = X d ′ mod N ,
この演算処理方法によれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、任意の公開鍵eに対して、べき乗剰余1回分の時間でフォルトアタック対策の検算を行うことができ、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。 According to this arithmetic processing method, an arbitrary public key e is used for encryption as to whether or not an error has been injected at the power-residue arithmetic timing in the process of the Chinese remainder theorem applied to the RSA decryption process. Even in this case, the detection can be performed through the original exponentiation remainder operation for decryption without adding the exponentiation remainder operation only for the verification or the encryption operation for the verification only. Therefore, it is possible to prevent the decoding using the incorrect result of the modular multiplication that should respond to the injected fault as it is, and it is possible to contribute to the shortening of the arithmetic processing time. In other words, for any public key e, it is possible to perform a countermeasure against a fault attack in a time equivalent to one exponentiation residue, and to shorten the calculation processing time to prevent unauthorized disclosure of the secret key due to the fault attack Is realized.
<データ処理装置の具体例>
図4にはデータ処理装置1の具体例が示される。図4に示されるデータ処理装置1はプロセッサのプログラム処理で演算器2の機能を実現する構成とされる。演算器2は、例えばワークメモリ4と、前記ワークメモリ4を用いてプログラム処理を行うプロセッサ3と、前記プロセッサ3の動作プログラムを格納するプログラムメモリ5とを含む。プロセッサ3は少なくとも中央処理装置を供え、プログラムメモリ5から順次フェッチした命令を解読して、中国人剰余定理を用いてRSAの上述した復号処理の演算シーケンスの制御と演算処理を実行する。このとき、ワークメモリ4はTレジスタ、C0レジスタ、C1レジスタ、Nレジスタ及びdレジスタの記憶領域、並びにその他ワーク領域とされ、プロセッサ3がアクセスして利用する。データ処理装置1はその他に、外部インタフェース回路6やアクセラレータ7などを供える。プロセッサ3は中央処理装置のほかにキャッシュメモリ、アドレス変換バッファ、浮動小数点演算ユニットなど、その他の回路ユニットを供えてよいことは言うまでもない。
<Specific examples of data processing apparatus>
FIG. 4 shows a specific example of the
データ処理装置1はCMOS集積回路製造技術などによって1個の半導体基板に単体LSIとして構成することが可能である。或いは、複数個の半導体チップから成るマルチチップの半導体集積回路モジュール、又は回路基板に複数個の半導体デバイスを実装してシステム構成することも可能である。また、演算器2も複数個の半導体デバイスによってマルチチップで構成することも可能である。
The
プロセッサ3のプログラム処理で演算器2の機能を実現することにより、演算器2の機能実現に柔軟性を持たせることができる。
By realizing the function of the
図5にはデータ処理装置1の別の具体例が示される。図5に示されるデータ処理装置1は、専用ハードウェアで演算器2の機能を実現する構成とされる。演算器2は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路を構成する。べき乗剰余演算回路を構成する演算器2は、コマンドレジスタ20、パラメータレジスタ22,23、制御回路21及び演算回路24を有する。コマンドレジスタ20はプログラム処理装置としてのプロセッサ13から所定の演算コマンドが書き込まれる。プロセッサ13はプログラムメモリ15に格納されているプログラムをフェッチして実行する。前記パラメータレジスタ23にはTレジスタ、C0レジスタ、C1レジスタ、Nレジスタに割り当てられる。パラメータレジスタ22は値dの設定領域とされる。演算回路24は算術論理演算回路や乗算回路等を有する。制御回路21は前記コマンドレジスタ20に書き込まれた所定の演算コマンド及び前記パラメータレジスタ22に設定された値dを参照することにより、Tレジスタ、C0レジスタ、C1レジスタ、Nレジスタを用いて、中国人剰余定理を用いてRSAの上述した復号処理の演算処理を演算回路24に実行させる。データ処理装置1はその他に、外部インタフェース回路16やアクセラレータ17などを供える。プロセッサ3は中央処理装置のほかにキャッシュメモリ、アドレス変換バッファ、浮動小数点演算ユニットなど、その他の回路ユニットを供えてよいことは言うまでもない。
FIG. 5 shows another specific example of the
図5のデータ処理装置1はCMOS集積回路製造技術などによって1個の半導体基板に単体LSIとして構成することが可能である。べき乗剰余演算回路を構成する演算器2は一つのアクセラレータとみなすことも可能である。図5のデータ処理装置1は、複数個の半導体チップから成るマルチチップの半導体集積回路モジュール、又は回路基板に複数個の半導体デバイスを実装してシステム構成することも可能である。また、演算器2も複数個の半導体デバイスによってマルチチップで構成することも可能である。
The
これによれば、専用ハードウェア化された演算器2を用いることによって復号処理の更なる高速化に資することができる。
According to this, it is possible to contribute to further speeding up of the decoding process by using the
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。 It goes without saying that the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention.
例えば、dのビットの論理値を判定しながらべき乗剰余演算を行うバイナリ手法として右バイナリ法に基づいてこれを発展させる手法に限定されず、左バイナリ法に基づいてこれを発展させる手法にも応用することが可能であることは言うまでもない。 For example, it is not limited to the method of developing this based on the right binary method as a binary method for performing the power-residue operation while determining the logical value of the bit of d, but also applied to the method of developing this based on the left binary method It goes without saying that it is possible.
また、図2の処理フローは一例であり、その細部において適宜変形可能であることは言うまでもない。 Moreover, the processing flow of FIG. 2 is an example, and it cannot be overemphasized that it can change suitably in the detail.
1 データ処理装置
2 演算器
3 プロセッサ
4 ワークメモリ
5 プログラムメモリ
13 プロセッサ
15 プログラムメモリ
16 外部インタフェース回路
17 アクセラレータ
20 コマンドレジスタ
22,23 パラメータレジスタ
24 演算回路
DESCRIPTION OF
Claims (18)
前記演算器は、Y=XdmodNで表されるべき乗剰余演算において、
dの2の補数をd’とし、nをdのビット数として、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し(2^nは2nを意味する)、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、データ処理装置。 It has a computing unit that performs RSA decoding using the Chinese remainder theorem,
The arithmetic unit is a modular multiplication operation that should be expressed as Y = X d modN.
Let d 'be the two's complement of d, and let n be the number of bits of d.
C0 = X d ′ mod N,
C1 = X d mod N , and T = X 2 ^ n mod N ( 2 ^ n means 2 n ),
It is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1, and if they match, the value of C1 is set to Y, and if they do not match, an error is indicated. A data processing apparatus that performs processing.
前記データ処理は2回のべき乗剰余演算を含み、
Y=XdmodNで表される夫々のべき乗剰余演算において、
dの2の補数をd’とし、nをdのビット数とし、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、復号処理方法。 A decoding processing method for performing RSA decoding by data processing using the Chinese remainder theorem,
The data processing includes two power-residue operations,
In each power-residue calculation represented by Y = X d mod N,
d's complement of d is d ', n is the number of bits of d,
C0 = X d ′ mod N,
C1 = X d mod N and T = X 2 ^ n mod N ,
It is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1, and if they match, the value of C1 is set to Y, and if they do not match, an error is indicated. A decoding processing method for performing the processing.
前記演算器による演算処理は、
fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、
fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、
Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、
w×q+Xpによって平文Zを求める第4処理とを含み、
前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含むデータ処理装置。 An arithmetic unit that decrypts the ciphertext X by the RSA cipher into plaintext Z using the secret keys f, p, and q;
The arithmetic processing by the arithmetic unit is as follows:
a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1;
a second process for obtaining Xq = X Dq modq using a remainder Dq obtained by dividing f by q−1;
A third process for calculating w = (Xp−Xq) × q −1 modp using the value of Xp−Xq and the inverse q −1 of q modulo p;
a fourth process for obtaining plaintext Z by w × q + Xp,
When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is d ′ as the 2's complement of d, and n is the number of bits of d. And when
C0 = X d ′ mod N,
C1 = X d mod N and T = X 2 ^ n mod N ,
It is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1, and if they match, the value of C1 is set to Y, and if they do not match, an error is indicated. A data processing device including processing to perform.
fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、
fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、
Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、
w×q+Xpによって平文Zを求める第4処理とを含み、
前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含む復号処理方法。 A decryption method for decrypting plaintext Z by giving ciphertext X by RSA cipher together with secret keys f, p and q to a data processing device,
a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1;
a second process for obtaining Xq = X Dq modq using a remainder Dq obtained by dividing f by q−1;
A third process for calculating w = (Xp−Xq) × q −1 modp using the value of Xp−Xq and the inverse q −1 of q modulo p;
a fourth process for obtaining plaintext Z by w × q + Xp,
When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is d ′ as the 2's complement of d, and n is the number of bits of d. And when
C0 = X d ′ mod N,
C1 = X d mod N and T = X 2 ^ n mod N ,
It is determined whether or not the remainder modulo N matches the value of T with respect to the product of the value of C0 and the value of C1, and if they match, the value of C1 is set to Y, and if they do not match, an error is indicated. A decoding processing method.
前記演算器による演算処理は、
fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、
fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、
Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、
w×q+Xpによって平文Zを求める第4処理とを含み、
前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、
TレジスタにXを初期設定する処理、
dのビットを順番に参照し、参照する度にTレジスタの値の二乗に対してNを法とする剰余でTレジスタを書き換える処理、
参照したdのビットが初めて1になるまでの間は、dのビットの参照の都度、Tレジスタの値でC0レジスタとC1レジスタを書き換える処理、
参照したdのビットが一旦1になってからは、dのビットの1を参照する度にC1レジスタの値とTレジスタの値の積に対してNを法とする剰余でC1レジスタを書き換え、dのビットの0を参照する度にC0レジスタの値とTレジスタの値の積に対してNを法とする剰余でC0レジスタを書き換える処理、及び
dの全てのビットを参照したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余がTレジスタの値に一致するか否かを判別し、一致であればC1レジスタの値をYとし、不一致であればエラーとする処理、を含むデータ処理装置。 An arithmetic unit that decrypts the ciphertext X by the RSA cipher into plaintext Z using the secret keys f, p, and q;
The arithmetic processing by the arithmetic unit is as follows:
a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1;
a second process for obtaining Xq = X Dq modq using a remainder Dq obtained by dividing f by q−1;
A third process for calculating w = (Xp−Xq) × q −1 modp using the value of Xp−Xq and the inverse q −1 of q modulo p;
a fourth process for obtaining plaintext Z by w × q + Xp,
When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is as follows:
Processing to initialize X in the T register;
a process of sequentially referring to the bits of d and rewriting the T register with a remainder modulo N with respect to the square of the value of the T register each time it is referred to;
Until the bit of d referred to becomes 1 for the first time, each time the bit of d is referenced, the process of rewriting the C0 register and the C1 register with the value of the T register,
Once the referenced d bit is set to 1, the C1 register is rewritten with a remainder modulo N for the product of the value of the C1 register and the value of the T register each time 1 of the d bit is referenced. A process of rewriting the C0 register with a remainder modulo N for the product of the value of the C0 register and the value of the T register each time 0 of the bit of d is referenced, and when all bits of d are referenced, the C0 register It is determined whether or not the remainder modulo N for the product of the value of C1 and the value of the C1 register matches the value of the T register. A data processing apparatus including processing to be an error.
前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリと、
前記ワークメモリを用いてプログラム処理を行うプロセッサと、
前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。 In Claim 13, the computing unit is:
A work memory that is made available as the T register, the C0 register, and the C1 register and is used as a storage area for the value d;
A processor that performs program processing using the work memory;
A data processing apparatus including a program memory for storing an operation program of the processor.
前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれ、
前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有し、
前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる、データ処理装置。 The arithmetic unit according to claim 13, wherein the arithmetic unit is a modular arithmetic circuit to perform an operation based on a predetermined operation command, and includes a command register, a parameter register, a control circuit, and an arithmetic circuit.
The command register is written with the predetermined operation command from the program processing device,
The parameter register is assigned to the T register, the C0 register, and the C1 register, and has a setting area for the value d,
The control circuit refers to a predetermined operation command written in the command register and a value d set in the parameter register, and uses the T register, the C0 register, and the C1 register to transmit the operation circuit to the operation circuit. A data processing apparatus that executes calculations of a first process to a fourth process.
fをp−1で割った余りDpを用いてXp=XDpmodpを求める第1処理と、
fをq−1で割った余りDqを用いてXq=XDqmodqを求める第2処理と、
Xp−Xqの値とpを法とするqの逆元q−1とを用いて、w=(Xp−Xq)×q−1modpを求める第3処理と、
w×q+Xpによって平文Zを求める第4処理とを含み、
前記第1処理と第2処理の双方のべき乗剰余演算式をY=XdmodNと表したとき、この式を実現する処理は、
TレジスタにXを初期設定する処理、
dのビットを順番に参照し、参照する度にTレジスタの値の二乗に対してNを法とする剰余でTレジスタを書き換える処理、
参照したdのビットが初めて1になるまでの間は、dのビットの参照の都度、Tレジスタの値でC0レジスタとC1レジスタを書き換える処理、
参照したdのビットが一旦1になってからは、dのビットの1を参照する度にC1レジスタの値とTレジスタの値の積に対してNを法とする剰余でC1レジスタを書き換え、dのビットの0を参照する度にC0レジスタの値とTレジスタの値の積に対してNを法とする剰余でC0レジスタを書き換える処理、及び
dの全てのビットを参照したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余がTレジスタの値に一致するか否かを判別し、一致であればC1レジスタの値をYとし、不一致であればエラーとする処理、を含む復号処理方法。 A decryption method for decrypting plaintext Z by giving ciphertext X by RSA cipher together with secret keys f, p and q to a data processing device,
a first process for obtaining Xp = X Dp modp using a remainder Dp obtained by dividing f by p−1;
a second process for obtaining Xq = X Dq modq using a remainder Dq obtained by dividing f by q−1;
A third process for calculating w = (Xp−Xq) × q −1 modp using the value of Xp−Xq and the inverse q −1 of q modulo p;
a fourth process for obtaining plaintext Z by w × q + Xp,
When the power-residue arithmetic expression of both the first process and the second process is expressed as Y = X d mod N, the process for realizing this expression is as follows:
Processing to initialize X in the T register;
a process of sequentially referring to the bits of d and rewriting the T register with a remainder modulo N with respect to the square of the value of the T register each time it is referred to;
Until the bit of d referred to becomes 1 for the first time, each time the bit of d is referenced, the process of rewriting the C0 register and the C1 register with the value of the T register,
Once the referenced d bit is set to 1, the C1 register is rewritten with a remainder modulo N for the product of the value of the C1 register and the value of the T register each time 1 of the d bit is referenced. A process of rewriting the C0 register with a remainder modulo N for the product of the value of the C0 register and the value of the T register each time 0 of the bit of d is referenced, and when all bits of d are referenced, the C0 register It is determined whether or not the remainder modulo N for the product of the value of C1 and the value of the C1 register matches the value of the T register. A decryption processing method including processing to be an error.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014130199A JP6262085B2 (en) | 2014-06-25 | 2014-06-25 | Data processing apparatus and decryption processing method |
US14/734,206 US9571267B2 (en) | 2014-06-25 | 2015-06-09 | Data processor and decryption method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014130199A JP6262085B2 (en) | 2014-06-25 | 2014-06-25 | Data processing apparatus and decryption processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016009114A true JP2016009114A (en) | 2016-01-18 |
JP6262085B2 JP6262085B2 (en) | 2018-01-17 |
Family
ID=54931699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014130199A Active JP6262085B2 (en) | 2014-06-25 | 2014-06-25 | Data processing apparatus and decryption processing method |
Country Status (2)
Country | Link |
---|---|
US (1) | US9571267B2 (en) |
JP (1) | JP6262085B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6262085B2 (en) * | 2014-06-25 | 2018-01-17 | ルネサスエレクトロニクス株式会社 | Data processing apparatus and decryption processing method |
JP2017187963A (en) * | 2016-04-07 | 2017-10-12 | ルネサスエレクトロニクス株式会社 | Electronic apparatus and system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH118616A (en) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | Ic card having provision against attack taking advantage of failure |
JP2000509521A (en) * | 1997-02-07 | 2000-07-25 | テルコーディア テクノロジーズ インコーポレイテッド | How to use transient failures to verify the security of a cryptographic system |
JP2002229445A (en) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | Modulator exponent device |
JP2003502905A (en) * | 1999-06-11 | 2003-01-21 | ジェネラル・インストルメント・コーポレーション | Countermeasures against power and timing attacks for cryptographic operations |
WO2008114310A1 (en) * | 2007-03-16 | 2008-09-25 | Fujitsu Limited | Incorporating device having fault attack countermeasure function |
US20090034717A1 (en) * | 2007-08-03 | 2009-02-05 | Oberthur Technologies | Method of processing data protected against attacks by generating errors and associated device |
JP2009532973A (en) * | 2006-04-06 | 2009-09-10 | エヌエックスピー ビー ヴィ | Secure decryption method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020039420A1 (en) * | 2000-06-12 | 2002-04-04 | Hovav Shacham | Method and apparatus for batched network security protection server performance |
JP4086503B2 (en) * | 2002-01-15 | 2008-05-14 | 富士通株式会社 | Cryptographic operation apparatus and method, and program |
KR100574945B1 (en) * | 2003-08-08 | 2006-04-28 | 삼성전자주식회사 | Encryption Method Using Overlap Method and Variable Clock Method |
US20050157872A1 (en) * | 2003-11-12 | 2005-07-21 | Takatoshi Ono | RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus |
US8005209B2 (en) * | 2005-01-06 | 2011-08-23 | Polytechnic University | Invariance based concurrent error detection for the advanced encryption standard |
FR2946207A1 (en) | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | PROTECTION OF FIRST NUMBER GENERATION FOR RSA ALGORITHM |
US9390055B2 (en) * | 2012-07-17 | 2016-07-12 | Coho Data, Inc. | Systems, methods and devices for integrating end-host and network resources in distributed memory |
JP2014081426A (en) | 2012-10-15 | 2014-05-08 | Renesas Electronics Corp | Semiconductor device and encryption processing method |
JP6262085B2 (en) * | 2014-06-25 | 2018-01-17 | ルネサスエレクトロニクス株式会社 | Data processing apparatus and decryption processing method |
-
2014
- 2014-06-25 JP JP2014130199A patent/JP6262085B2/en active Active
-
2015
- 2015-06-09 US US14/734,206 patent/US9571267B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000509521A (en) * | 1997-02-07 | 2000-07-25 | テルコーディア テクノロジーズ インコーポレイテッド | How to use transient failures to verify the security of a cryptographic system |
JPH118616A (en) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | Ic card having provision against attack taking advantage of failure |
JP2003502905A (en) * | 1999-06-11 | 2003-01-21 | ジェネラル・インストルメント・コーポレーション | Countermeasures against power and timing attacks for cryptographic operations |
JP2002229445A (en) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | Modulator exponent device |
JP2009532973A (en) * | 2006-04-06 | 2009-09-10 | エヌエックスピー ビー ヴィ | Secure decryption method |
WO2008114310A1 (en) * | 2007-03-16 | 2008-09-25 | Fujitsu Limited | Incorporating device having fault attack countermeasure function |
US20090034717A1 (en) * | 2007-08-03 | 2009-02-05 | Oberthur Technologies | Method of processing data protected against attacks by generating errors and associated device |
Also Published As
Publication number | Publication date |
---|---|
US9571267B2 (en) | 2017-02-14 |
JP6262085B2 (en) | 2018-01-17 |
US20150381347A1 (en) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nara et al. | Scan-based attack against elliptic curve cryptosystems | |
CN102638341B (en) | For calculating equipment and the method for the result of scalar multiplication | |
US9596080B2 (en) | Method of generating prime numbers proven suitable for chip cards | |
Lawson | Side-channel attacks on cryptographic software | |
US9418246B2 (en) | Decryption systems and related methods for on-the-fly decryption within integrated circuits | |
JP4909403B2 (en) | How to request data safely | |
EP2332040B1 (en) | Countermeasure securing exponentiation based cryptography | |
US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
WO2021004454A1 (en) | Operation method, apparatus and device | |
US20180060566A1 (en) | Protection of a modular calculation | |
JP2019515353A (en) | Countermeasures against Safe-Error Fault Injection Attack on Cryptographic Power-up Algorithm | |
TWI512610B (en) | Modular reduction using a special form of the modulus | |
US11444760B2 (en) | System, method, and apparatus for obfuscating device operations | |
US20210226789A1 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
CN111385092B (en) | Encryption device using information blinding and encryption processing method thereof | |
US20080021941A1 (en) | Detection of a disturbance in a calculation performed by an integrated circuit | |
JP6262085B2 (en) | Data processing apparatus and decryption processing method | |
JP2009505148A (en) | Circuit arrangement and method for performing inversion operation in encryption operation | |
CN103246494A (en) | Safety modular exponentiation method for resisting energy analysis and fault attack | |
Feix et al. | Defeating with fault injection a combined attack resistant exponentiation | |
US20240187206A1 (en) | Method and system for protecting cryptographic operations against side-channel attacks | |
US12169570B2 (en) | Data processing device and method for processing secret data | |
JP5179933B2 (en) | Data processing device | |
JP2014145958A (en) | Semiconductor device | |
US20240193300A1 (en) | Data processing device and method for processing secret data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161118 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20170330 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170815 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171006 |
|
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: 20171205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6262085 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |