JP2016009114A - データ処理装置及び復号処理方法 - Google Patents
データ処理装置及び復号処理方法 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 OR CALCULATING; 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
【解決手段】Y=XdmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XdmodN及びT=X2^nmodNを演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う。上記べき乗剰余演算はRSAの復号処理を、中国人剰余定理を用いて行う場合のべき乗剰余演算に適用する。
【選択図】図1
Description
RSAとは、公開鍵をe、nとし、秘密鍵をfとし、平文をZとし、暗号文をXとすると、次の計算式
X=ZemodM、
で暗号化する。また、次の式
Z=XfmodM、
で復号する。
1=e×fmod{(p−1)(q−1)}、
M=p×q、
が成り立つ。
上記復号の処理に中国人剰余定理を用いる場合には次の計算式
Dp=fmod(p−1)、
Dq=fmod(q−1)、
Xp=XDpmodp、
Xq=XDqmodq、
w=(Xp−Xq)×q−1modp、
Z=w×q+Xq、
によって平文Zを得ることができる。
フォルトアタックとは暗号処理実行中に、電源やクロックへのノイズ注入及び回路へのレーザ照射により、故障状態を引き起こした時に出力される値を正しい値と比較して鍵などの秘密情報を暴き出す攻撃手法である。
中国人剰余定理に対するフォルトアタックでは、以下に示すように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が攻撃者に暴かれてしまうことになる。
消費電力のような物理情報を解析して秘密鍵fを不正に暴く攻撃手法への対策として例えば特許文献1に記載された技術がある。また、電力消費の解析や故障注入による攻撃に対する対策として特許文献2に記載された技術がある。しかしながら、何れも中国人剰余定理による復号アルゴリズムに着目したフォルトアタックへの対策は考慮されていない。本発明者は以下の対策について検討した。
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
データ処理装置(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において、エラーとする処理はC1の値以外の値を返す処理である。
項1において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
項1において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいてY=XdmodNで表されるべき乗剰余演算の演算制御と演算を行うべき乗剰余演算回路である。
復号処理方法は、中国人剰余定理を用いて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において、エラーとする処理はC1の値以外の値を返す処理である。
データ処理装置(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において、エラーとする処理はC1の値以外の値を返す処理である。
項7において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
項7において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいて前記第1処理乃至第4処理の演算制御と演算を行うべき乗剰余演算回路である。
復号処理方法は、データ処理装置に秘密鍵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において、エラーとする処理はC1の値以外の値を返す処理である。
データ処理装置(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において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
項13において、前記演算器(2)は、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
項13において、前記演算器は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路であり、コマンドレジスタ(20)、パラメータレジスタ(22,23)、制御回路(21)及び演算回路(24)を有する。前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれる。前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有する。前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる。
復号処理方法は、データ処理装置に秘密鍵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において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
実施の形態について更に詳述する。
図1にはICカード、車載マイコンシステム、IOTなどに代表されるセキュリティ機能搭載製品及びセキュリティ機能搭載システムに適用されるデータ処理装置1が例示される。このデータ処理装置は、公開鍵暗号の一つであるRSAの中国人剰余定理に対するフォルトアタックに対抗するためのべき乗剰余演算を実行可能にする演算器2を備える。図1には演算器2においてそのようなべき乗剰余演算の機能が論理記述によって例示される。
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を得ることができる。
C1=XdmodN、
T=X2^nmodN、
を演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を意味するものである。以下この処理について具体的に説明する。
図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が一時的に保持される。
図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は中央処理装置のほかにキャッシュメモリ、アドレス変換バッファ、浮動小数点演算ユニットなど、その他の回路ユニットを供えてよいことは言うまでもない。
2 演算器
3 プロセッサ
4 ワークメモリ
5 プログラムメモリ
13 プロセッサ
15 プログラムメモリ
16 外部インタフェース回路
17 アクセラレータ
20 コマンドレジスタ
22,23 パラメータレジスタ
24 演算回路
Claims (18)
- 中国人剰余定理を用いてRSAの復号処理を行う演算器を有し、
前記演算器は、Y=XdmodNで表されるべき乗剰余演算において、
dの2の補数をd’とし、nをdのビット数として、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し(2^nは2nを意味する)、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、データ処理装置。 - 請求項1において、エラーとする処理はC1の値以外の値を返す処理である、データ処理装置。
- 請求項1において、前記演算器は、ワークメモリと、前記ワークメモリを用いてプログラム処理を行うプロセッサと、前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。
- 請求項1において、前記演算器は、プログラム処理を行うプロセッサから発行された所定の演算コマンドに基づいてY=XdmodNで表されるべき乗剰余演算の演算制御と演算を行うべき乗剰余演算回路である、データ処理装置。
- 中国人剰余定理を用いてRSAの復号をデータ処理によって行う復号処理方法であって、
前記データ処理は2回のべき乗剰余演算を含み、
Y=XdmodNで表される夫々のべき乗剰余演算において、
dの2の補数をd’とし、nをdのビット数とし、
C0=Xd’modN、
C1=XdmodN、及び
T=X2^nmodNを演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、復号処理方法。 - 請求項5において、エラーとする処理はC1の値以外の値を返す処理である、復号処理方法。
- 秘密鍵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を演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含むデータ処理装置。 - 請求項7において、エラーとする処理はC1の値以外の値を返す処理である、データ処理装置。
- 請求項7において、前記演算器は、ワークメモリと、前記ワークメモリを用いてプログラム処理を行うプロセッサと、前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。
- 請求項7において、前記演算器は、プログラム処理を行うプロセッサから発行された所定の演算コマンドに基づいて前記第1処理乃至第4処理の演算制御と演算を行うべき乗剰余演算回路である、データ処理装置。
- データ処理装置に秘密鍵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を演算し、
C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含む復号処理方法。 - 請求項11において、エラーとする処理はC1の値以外の値を返す処理である、復号処理方法。
- 秘密鍵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を初期設定する処理、
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とし、不一致であればエラーとする処理、を含むデータ処理装置。 - 請求項13において、エラーとする処理はC1レジスタの値以外の値を返す処理である、データ処理装置。
- 請求項13において、前記演算器は、
前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリと、
前記ワークメモリを用いてプログラム処理を行うプロセッサと、
前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。 - 請求項13において、前記演算器は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路であり、コマンドレジスタ、パラメータレジスタ、制御回路及び演算回路を有し、
前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれ、
前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有し、
前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる、データ処理装置。 - データ処理装置に秘密鍵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を初期設定する処理、
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とし、不一致であればエラーとする処理、を含む復号処理方法。 - 請求項17において、エラーとする処理はC1レジスタの値以外の値を返す処理である、復号処理方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014130199A JP6262085B2 (ja) | 2014-06-25 | 2014-06-25 | データ処理装置及び復号処理方法 |
| 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 (ja) | 2014-06-25 | 2014-06-25 | データ処理装置及び復号処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016009114A true JP2016009114A (ja) | 2016-01-18 |
| JP6262085B2 JP6262085B2 (ja) | 2018-01-17 |
Family
ID=54931699
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014130199A Active JP6262085B2 (ja) | 2014-06-25 | 2014-06-25 | データ処理装置及び復号処理方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9571267B2 (ja) |
| JP (1) | JP6262085B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6262085B2 (ja) * | 2014-06-25 | 2018-01-17 | ルネサスエレクトロニクス株式会社 | データ処理装置及び復号処理方法 |
| JP2017187963A (ja) * | 2016-04-07 | 2017-10-12 | ルネサスエレクトロニクス株式会社 | 電子機器およびシステム |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH118616A (ja) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | 故障利用攻撃対応icカード |
| JP2000509521A (ja) * | 1997-02-07 | 2000-07-25 | テルコーディア テクノロジーズ インコーポレイテッド | 暗号システムのセキュリティを検証するために過渡的な障害を使用する方法 |
| JP2002229445A (ja) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | べき乗剰余演算器 |
| JP2003502905A (ja) * | 1999-06-11 | 2003-01-21 | ジェネラル・インストルメント・コーポレーション | 暗号演算に対するパワーアタックおよびタイミングアタックへの対策 |
| WO2008114310A1 (ja) * | 2007-03-16 | 2008-09-25 | Fujitsu Limited | Fault攻撃対策機能を備えた組み込み装置 |
| US20090034717A1 (en) * | 2007-08-03 | 2009-02-05 | Oberthur Technologies | Method of processing data protected against attacks by generating errors and associated device |
| JP2009532973A (ja) * | 2006-04-06 | 2009-09-10 | エヌエックスピー ビー ヴィ | 安全な復号方法 |
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 (ja) * | 2002-01-15 | 2008-05-14 | 富士通株式会社 | 暗号演算装置及び方法並びにプログラム |
| KR100574945B1 (ko) * | 2003-08-08 | 2006-04-28 | 삼성전자주식회사 | 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법 |
| 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 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
| 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 (ja) | 2012-10-15 | 2014-05-08 | Renesas Electronics Corp | 半導体装置および暗号処理方法 |
| JP6262085B2 (ja) * | 2014-06-25 | 2018-01-17 | ルネサスエレクトロニクス株式会社 | データ処理装置及び復号処理方法 |
-
2014
- 2014-06-25 JP JP2014130199A patent/JP6262085B2/ja 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 (ja) * | 1997-02-07 | 2000-07-25 | テルコーディア テクノロジーズ インコーポレイテッド | 暗号システムのセキュリティを検証するために過渡的な障害を使用する方法 |
| JPH118616A (ja) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | 故障利用攻撃対応icカード |
| JP2003502905A (ja) * | 1999-06-11 | 2003-01-21 | ジェネラル・インストルメント・コーポレーション | 暗号演算に対するパワーアタックおよびタイミングアタックへの対策 |
| JP2002229445A (ja) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | べき乗剰余演算器 |
| JP2009532973A (ja) * | 2006-04-06 | 2009-09-10 | エヌエックスピー ビー ヴィ | 安全な復号方法 |
| WO2008114310A1 (ja) * | 2007-03-16 | 2008-09-25 | Fujitsu Limited | Fault攻撃対策機能を備えた組み込み装置 |
| 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 |
|---|---|
| JP6262085B2 (ja) | 2018-01-17 |
| US20150381347A1 (en) | 2015-12-31 |
| US9571267B2 (en) | 2017-02-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Nara et al. | Scan-based attack against elliptic curve cryptosystems | |
| US9596080B2 (en) | Method of generating prime numbers proven suitable for chip cards | |
| CN102638341B (zh) | 用于计算标量乘法的结果的设备和方法 | |
| JP6366595B2 (ja) | 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム | |
| US9418246B2 (en) | Decryption systems and related methods for on-the-fly decryption within integrated circuits | |
| US20180026782A1 (en) | Modular exponentiation with transparent side channel attack countermeasures | |
| CN107004084B (zh) | 用于加密操作的乘法掩码 | |
| EP2332040B1 (en) | Countermeasure securing exponentiation based cryptography | |
| US10354063B2 (en) | Protection of a modular calculation | |
| CN107924444B (zh) | 安全的模幂运算处理器、方法、系统和指令 | |
| US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
| JP2019515353A (ja) | 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策 | |
| WO2021004454A1 (zh) | 运算方法、装置及设备 | |
| 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 | |
| TWI512610B (zh) | 利用模數的特殊形式之模組約化 | |
| US20240187206A1 (en) | Method and system for protecting cryptographic operations against side-channel attacks | |
| JP4909403B2 (ja) | 安全にデータを求める方法 | |
| JP6262085B2 (ja) | データ処理装置及び復号処理方法 | |
| CN103246494A (zh) | 一种抵抗能量分析和错误攻击的安全模幂计算方法 | |
| CN101268654A (zh) | 用于对消息可靠加密或者解密的方法 | |
| Feix et al. | Defeating with fault injection a combined attack resistant exponentiation | |
| US12169570B2 (en) | Data processing device and method for processing secret data | |
| US20080021941A1 (en) | Detection of a disturbance in a calculation performed by an integrated circuit | |
| JP2009505148A (ja) | 暗号化演算における反転操作を行うための回路配置及び方法 |
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 |