[go: up one dir, main page]

JP2016009114A - データ処理装置及び復号処理方法 - Google Patents

データ処理装置及び復号処理方法 Download PDF

Info

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
Application number
JP2014130199A
Other languages
English (en)
Other versions
JP6262085B2 (ja
Inventor
福島 和彦
Kazuhiko Fukushima
和彦 福島
清武郎 長野
Seimuro Nagano
清武郎 長野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2014130199A priority Critical patent/JP6262085B2/ja
Priority to US14/734,206 priority patent/US9571267B2/en
Publication of JP2016009114A publication Critical patent/JP2016009114A/ja
Application granted granted Critical
Publication of JP6262085B2 publication Critical patent/JP6262085B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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

【課題】任意の公開鍵eに対して、べき乗剰余1回分の時間でフォルトアタック対策の検算を行う。
【解決手段】Y=XmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XmodN及びT=XmodNを演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う。上記べき乗剰余演算はRSAの復号処理を、中国人剰余定理を用いて行う場合のべき乗剰余演算に適用する。
【選択図】図1

Description

本発明は、公開鍵暗号の一つであるRSA(Rivest Shamir Adleman)の中国人剰余定理(CRT:Chinese remainder theorem)に対するフォルトアタック(FA:Fault Attack)対策に関し、例えば、ICカード、車載マイコンシステム、IOT(Internet of Things)などに代表されるセキュリティ機能搭載製品及びセキュリティ機能搭載システムに適用して有効な技術に関する。
RSAでは復号処理を高速に行うため中国人剰余定理が用いられている。一方、RSA等の暗号アルゴリズム実行中に鍵など秘密情報を暴き出す様々な攻撃手法が提案されている。その中で強力なものとして、フォルトアタックがある。この方法は計算実行中に何らかの方法で誤りを発生させ、この時の計算結果と正しく動作した時の計算結果から鍵情報を特定するものである。
<RSA>
RSAとは、公開鍵をe、nとし、秘密鍵をfとし、平文をZとし、暗号文をXとすると、次の計算式
X=ZmodM、
で暗号化する。また、次の式
Z=XmodM、
で復号する。
ここで秘密の素数をp,qとすると、次の関係
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の対策は、XpとXqの計算をそれぞれ2回実施し、2回とも同じ値になることが確認できたらZの値を出力する。すなわち、検算をして結果が合わなければ攻撃を受けたとみなし、Zの値を出力しない。この方法では、XpとXqに係るべき乗剰余演算を4回行う必要がある。
第2の対策は、中国人剰余定理を用いて計算した結果Zを再度暗号化(X=ZmodM)し、入力Xと同じ値になることを確認できたらZを出力し、そうでなければZを出力しない。e=65537がよく使われるので、この場合は再度の暗号化の計算時間は長くなく、その計算時間が実用に耐えないことはない。
特開2014−81426号公報 特開2010−277085号公報
本発明者はフォルトアタック対策の上記第1の対策及び第2の対策について検討した。第1の対策では、XpとXqに係るべき乗剰余演算を4回行う必要があり、無視し得ない程に計算時間が増大してしまう。第2の対策は暗号強度を高くするために任意値のeを使用しようとする場合にeの値が大きくなると、計算処理時間が長くなり過ぎて実用に耐えないことが想定される。
上記並びにその他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、Y=XmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XmodN及びT=XmodNを演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う。上記べき乗剰余演算はRSAの復号処理を、中国人剰余定理を用いて行う場合のべき乗剰余演算に適用する。本明細書中において上記「X」におけるべき乗数「」は「2」を意味する。即ち、本明細書では便宜上記号^をべき乗記号として用いることがある。
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。
図1は公開鍵暗号の一つであるRSAの中国人剰余定理に対するフォルトアタックに対抗するためのべき乗剰余演算を実行可能にする演算器2を備えたデータ処理装置における当該べき乗剰余演算の機能を論理記述によって例示した説明図である。 図2は図1の論理記述に対する具体的な演算処理を例示するフローチャートである。 図3は2進数標記でd=10111001、n=8の場合について図2のステップS2乃至S9の処理例を示す説明図である。 図4はデータ処理装置の具体例としてプロセッサのプログラム処理で演算器の機能を実現する構成を示すブロック図である。 図5はデータ処理装置の別の具体例として専用ハードウェアで演算器の機能を実現する構成を示すブロック図である。 図6は国人剰余定理の処理においてXp又はXqを求めるべき乗剰余演算の実行時に故障状態を引き起こすフォルトアタックについて例示する説明図である。 図7は通常のバイナリ法によるべき乗剰余演算の論理記述を例示する説明図である。 図8は図7の論理記述を実現するための演算処理フローを例示するフローチャートである。 図9は2進数標記でd=10111001、n=8を一例とする場合について図7のべき乗剰余演算の論理記述の処理例を示す説明図である。
1.実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<フォルトアタックに対抗するべき乗剰余演算可能なデータ処理装置>
データ処理装置(1)は中国人剰余定理を用いてRSAの復号処理を行う演算器(2)を有する。前記演算器は、Y=XmodNで表されるべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数として、C0=Xd’modN、C1=XmodN及びT=X^modNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理を行う。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔2〕<フォルトアタック検出時のエラー応答>
項1において、エラーとする処理はC1の値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
〔3〕<プロセッサのプログラム処理で演算器の機能を実現>
項1において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
これによれば、演算器の機能実現に柔軟性を持たせることができる。
〔4〕<専用ハードウェアで演算器の機能を実現>
項1において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいてY=XmodNで表されるべき乗剰余演算の演算制御と演算を行うべき乗剰余演算回路である。
これによれば、演算器による復号処理の更なる高速化に資することができる。
〔5〕<フォルトアタックに対抗するべき乗剰余演算方法>
復号処理方法は、中国人剰余定理を用いてRSAの復号をデータ処理によって行う方法であって、前記データ処理は2回のべき乗剰余演算を含。Y=XmodNで表される夫々のべき乗剰余演算において、dの2の補数をd’とし、nをdのビット数とし、C0=Xd’modN、C1=XmodN及びT=X^modNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理を行う。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔6〕<フォルトアタック検出時のエラー応答>
項5において、エラーとする処理はC1の値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
〔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=XmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XmodN及びT=X^modNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔8〕<フォルトアタック検出時のエラー応答>
項7において、エラーとする処理はC1の値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
〔9〕<プロセッサのプログラム処理で演算器の機能を実現>
項7において、前記演算器は、ワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
これによれば、演算器の機能実現に柔軟性を持たせることができる。
〔10〕<専用ハードウェアで演算器の機能を実現>
項7において、前記演算器は、プログラム処理を行うプロセッサ(13)から発行された所定の演算コマンドに基づいて前記第1処理乃至第4処理の演算制御と演算を行うべき乗剰余演算回路である。
これによれば、演算器による復号処理の更なる高速化に資することができる。
〔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=XmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、C1=XmodN及びT=X^modNを演算し(S2〜S9)、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し(S10,S11)、一致であればC1の値をYとし(S12)、不一致であればエラーとする(S13)処理、を含む。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔12〕<フォルトアタック検出時のエラー応答>
項11において、エラーとする処理はC1の値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
〔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=XmodNと表したとき、この式を実現する処理は、
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)処理、を含む。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔14〕<フォルトアタック検出時のエラー応答>
項13において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
〔15〕<プロセッサのプログラム処理で演算器の機能を実現>
項13において、前記演算器(2)は、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリ(4)と、前記ワークメモリを用いてプログラム処理を行うプロセッサ(3)と、前記プロセッサの動作プログラムを格納するプログラムメモリ(5)とを含む。
これによれば、演算器の機能実現に柔軟性を持たせることができる。
〔16〕<専用ハードウェアで演算器の機能を実現>
項13において、前記演算器は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路であり、コマンドレジスタ(20)、パラメータレジスタ(22,23)、制御回路(21)及び演算回路(24)を有する。前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれる。前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有する。前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる。
これによれば、演算器による復号処理の更なる高速化に資することができる。
〔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=XmodNと表したとき、この式を実現する処理は、
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)処理、を含む。
これによれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
〔18〕<フォルトアタック検出時のエラー応答>
項17において、エラーとする処理はC1レジスタの値以外の値を返す処理である。
これによれば、中国人剰余定理による復号アルゴリズムに着目したフォルトアタック自体が無効化されることはもとより、不正アクセス者がそのことを認知できなくなる。
2.実施の形態の詳細
実施の形態について更に詳述する。
<中国人剰余定理を用いてRSAの復号処理を行う演算器>
図1にはICカード、車載マイコンシステム、IOTなどに代表されるセキュリティ機能搭載製品及びセキュリティ機能搭載システムに適用されるデータ処理装置1が例示される。このデータ処理装置は、公開鍵暗号の一つであるRSAの中国人剰余定理に対するフォルトアタックに対抗するためのべき乗剰余演算を実行可能にする演算器2を備える。図1には演算器2においてそのようなべき乗剰余演算の機能が論理記述によって例示される。
ここで、RSA、中国人剰余定理については前述した通りであり、以下の説明はそれを前提とする。データ処理装置1は前述したRSA及び中国人剰余定理を適用した所定のアルゴリズムに従って、暗号文Xを復号して平分Zを得る演算処理を行う。平文Zを暗号化して暗号文Xを得る演算処理がサポートされていても良いことは言うまでもない。
公開鍵をe、nとし、秘密鍵をfとし、平文をZとし、暗号文をXとするとき、RSAにおける復号の演算処理は、次の演算式
Z=XmodM
によって実現される。ここで秘密の素数を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を得ることができる。
図1の演算器2に示された論理記述は、上記第1処理又は第2処理に対して誤り注入によるフォルトアタックが行われたとき当該第1処理又は第2処理の演算結果を返さないようにするためのものである。図1の論理記述は、上記第1処理と第2処理の双方のべき乗剰余演算式を便宜的にY=XmodNとして図示してある。即ち、第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の下位側からのビット番号を意味する。
図1の演算器2に示された論理記述は、上記第1処理と第2処理の双方のべき乗剰余演算式をY=XmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、C0=Xd’modN、
C1=XmodN、
T=X^modN、
を演算し、C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を意味するものである。以下この処理について具体的に説明する。
<Y=XmodNの演算処理方法>
図2には図1の論理記述に対する具体的な演算処理フローが例示される。Y=XmodNの演算処理を行うために、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が一時的に保持される。
先ず、Nレジスタに値Nがセットされ、Tレジスタに暗号文Xが初期設定され、kレジスタに初期値0がセットされ、dレジスタに値dがセットされる(S1)。
次いで、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)。
ステップ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の処理を行う。
ステップS5の次に、値dの各ビットの論理値判別が最上位ビットまで完了したか(k<n−1)を判別し(S9)、最上位ビットの達するまで上記処理S2乃至S8を繰返す。
上記ステップS2乃至S8はべき乗剰余演算に対するバイナリ法による処理の変形として位置付けることが可能である。通常のバイナリ法では図7の論理記述及び図8の演算処理フローに例示されるように、dの各ビットの値が1の場合は中間値CとTの双方を更新し、0の場合はTの値だけを更新し、最後にCに残った値が演算結果のYとなる。2進数標記でd=10111001、n=8を一例とすると、図9にはk=0〜7の各ビットの値d[k]に応ずる中間値Cに係るべき乗、Tに係るべき乗が図示されており、例えばk=4のとき(d[k]=1)、中間値Cに係るべき乗はX+X16=X25になる。
通常のバイナリ法に対して図2のステップS2乃至S9の処理は、dの各ビットの値が1の場合は中間値C1とTの双方を更新し、0の場合は中間値C0とTの双方を更新する。前者はべき指数dに対するべき乗剰余演算C1=XmodNに対応され、後者はdの2の補数d’に対するべき乗剰余演算C0=Xd’modNに対応される。特に、dのビットが最初に値1になる当該ビットに係る補数d’のビットは値1になるので、当該ビットが最初に値1になったときは、ステップS4に示されるようにC1だけでなくC0にもレジスタTの値がセットされるようになっている。
S2乃至S9の処理例として図9と同じく2進数標記でd=10111001、n=8の場合について図3に示す。図3でも便宜上C0,C1,Tの夫々についてべき乗だけを図示しており、Tに係るべき乗値はkが一つ進む毎にX倍される。C0に係るべき乗値は、d[k]=1のときには直前値、d[k]=0のときには直前のC0に係るべき乗値と直前のTに係るべき乗値との積になる。C1に係るべき乗値は、d[k]=0のときには直前値、d[k]=1のときには直前のC1に係るべき乗値と直前のTに係るべき乗値との積になる。dとd’は補数関係になっているから、k毎にC0に係るべき乗値とC1に係るべき乗値との積はTに係るべき乗値に等しくなる。
dの全てのビットを順次参照しながらステップS2乃至S9の処理を完了したとき、C0レジスタの値とC1レジスタの値との積に対してNを法とする剰余でC0レジスタを書き換え(S10),C0レジスタの値がTレジスタの値に一致するか否かを判別する(S11)。Y=XmodNで表されるべき乗剰余演算の処理中にレーザ照射などによって積極的に誤りが注入されていなければ、ステップS11の判別においてC0レジスタの値はTレジスタの値に一致される。図3の例に従えば、X71×X185=X256になる。
ステップS11の判別が一致であればY=C1を演算結果として出力する(S12)。不一致の場合にはエラー処理を行う(S13)。
このように、dの下位ビットから順番に演算し、初めてdのビットが1になるとき、レジスタC0とC1にTと同じ値を書き込み、dの各ビットが0の場合はレジスタ値C0とTを更新し、1の場合はレジスタ値C1とTを更新する。d’をdの2の補数とすると計算終了時にはC0=Xd’modN、C1=XmodN、T=X^modNとなり、C0×C1modN=X(d+d’)modN=X^modN=Tであるから、TとC0×C1modNが同じ値になればC1を計算結果Yとして出力し、そうでなければ攻撃を受けたとみなしエラー処理を行う。エラー処理としてはYを出力しないこと、或いはC1以外の任意の値を出力する処理とする。
この演算処理方法によれば、RSAの復号処理に適用する中国人剰余定理の処理においてべき乗剰余演算のタイミングで誤りが注入されたか否かを、暗号化に任意の公開鍵eが用いられている場合にも、検算だけのためのべき乗剰余演算や検算だけのための暗号化演算を追加することなく、復号のための本来のべき乗剰余演算を通じて検出することができる。したがって、注入された故障に応ずるべき乗剰余演算の誤った結果をそのまま用いた復号を阻むことができ、そのための演算処理時間の短縮に寄与することができる。換言すれば、任意の公開鍵eに対して、べき乗剰余1回分の時間でフォルトアタック対策の検算を行うことができ、フォルトアタックによる秘密鍵の不正な暴露を防止するための演算処理時間の短縮を実現する。
<データ処理装置の具体例>
図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は中央処理装置のほかにキャッシュメモリ、アドレス変換バッファ、浮動小数点演算ユニットなど、その他の回路ユニットを供えてよいことは言うまでもない。
データ処理装置1はCMOS集積回路製造技術などによって1個の半導体基板に単体LSIとして構成することが可能である。或いは、複数個の半導体チップから成るマルチチップの半導体集積回路モジュール、又は回路基板に複数個の半導体デバイスを実装してシステム構成することも可能である。また、演算器2も複数個の半導体デバイスによってマルチチップで構成することも可能である。
プロセッサ3のプログラム処理で演算器2の機能を実現することにより、演算器2の機能実現に柔軟性を持たせることができる。
図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は中央処理装置のほかにキャッシュメモリ、アドレス変換バッファ、浮動小数点演算ユニットなど、その他の回路ユニットを供えてよいことは言うまでもない。
図5のデータ処理装置1はCMOS集積回路製造技術などによって1個の半導体基板に単体LSIとして構成することが可能である。べき乗剰余演算回路を構成する演算器2は一つのアクセラレータとみなすことも可能である。図5のデータ処理装置1は、複数個の半導体チップから成るマルチチップの半導体集積回路モジュール、又は回路基板に複数個の半導体デバイスを実装してシステム構成することも可能である。また、演算器2も複数個の半導体デバイスによってマルチチップで構成することも可能である。
これによれば、専用ハードウェア化された演算器2を用いることによって復号処理の更なる高速化に資することができる。
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、dのビットの論理値を判定しながらべき乗剰余演算を行うバイナリ手法として右バイナリ法に基づいてこれを発展させる手法に限定されず、左バイナリ法に基づいてこれを発展させる手法にも応用することが可能であることは言うまでもない。
また、図2の処理フローは一例であり、その細部において適宜変形可能であることは言うまでもない。
1 データ処理装置
2 演算器
3 プロセッサ
4 ワークメモリ
5 プログラムメモリ
13 プロセッサ
15 プログラムメモリ
16 外部インタフェース回路
17 アクセラレータ
20 コマンドレジスタ
22,23 パラメータレジスタ
24 演算回路

Claims (18)

  1. 中国人剰余定理を用いてRSAの復号処理を行う演算器を有し、
    前記演算器は、Y=XmodNで表されるべき乗剰余演算において、
    dの2の補数をd’とし、nをdのビット数として、
    C0=Xd’modN、
    C1=XmodN、及び
    T=XmodNを演算し(は2を意味する)、
    C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、データ処理装置。
  2. 請求項1において、エラーとする処理はC1の値以外の値を返す処理である、データ処理装置。
  3. 請求項1において、前記演算器は、ワークメモリと、前記ワークメモリを用いてプログラム処理を行うプロセッサと、前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。
  4. 請求項1において、前記演算器は、プログラム処理を行うプロセッサから発行された所定の演算コマンドに基づいてY=XmodNで表されるべき乗剰余演算の演算制御と演算を行うべき乗剰余演算回路である、データ処理装置。
  5. 中国人剰余定理を用いてRSAの復号をデータ処理によって行う復号処理方法であって、
    前記データ処理は2回のべき乗剰余演算を含み、
    Y=XmodNで表される夫々のべき乗剰余演算において、
    dの2の補数をd’とし、nをdのビット数とし、
    C0=Xd’modN、
    C1=XmodN、及び
    T=XmodNを演算し、
    C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理を行う、復号処理方法。
  6. 請求項5において、エラーとする処理はC1の値以外の値を返す処理である、復号処理方法。
  7. 秘密鍵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=XmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、
    C0=Xd’modN、
    C1=XmodN、及び
    T=XmodNを演算し、
    C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含むデータ処理装置。
  8. 請求項7において、エラーとする処理はC1の値以外の値を返す処理である、データ処理装置。
  9. 請求項7において、前記演算器は、ワークメモリと、前記ワークメモリを用いてプログラム処理を行うプロセッサと、前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。
  10. 請求項7において、前記演算器は、プログラム処理を行うプロセッサから発行された所定の演算コマンドに基づいて前記第1処理乃至第4処理の演算制御と演算を行うべき乗剰余演算回路である、データ処理装置。
  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=XmodNと表したとき、この式を実現する処理は、dの2の補数をd’とし、nをdのビット数とするとき、
    C0=Xd’modN、
    C1=XmodN、及び
    T=XmodNを演算し、
    C0の値とC1の値との積に対してNを法とする剰余がTの値に一致するか否かを判別し、一致であればC1の値をYとし、不一致であればエラーとする処理、を含む復号処理方法。
  12. 請求項11において、エラーとする処理はC1の値以外の値を返す処理である、復号処理方法。
  13. 秘密鍵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=XmodNと表したとき、この式を実現する処理は、
    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とし、不一致であればエラーとする処理、を含むデータ処理装置。
  14. 請求項13において、エラーとする処理はC1レジスタの値以外の値を返す処理である、データ処理装置。
  15. 請求項13において、前記演算器は、
    前記Tレジスタ、前記C0レジスタ及び前記C1レジスタとして利用可能にされると共に前記値dの格納領域にされるワークメモリと、
    前記ワークメモリを用いてプログラム処理を行うプロセッサと、
    前記プロセッサの動作プログラムを格納するプログラムメモリとを含む、データ処理装置。
  16. 請求項13において、前記演算器は、所定の演算コマンドに基づいて演算を行うべき乗剰余演算回路であり、コマンドレジスタ、パラメータレジスタ、制御回路及び演算回路を有し、
    前記コマンドレジスタはプログラム処理装置から前記所定の演算コマンドが書き込まれ、
    前記パラメータレジスタは前記Tレジスタ、前記C0レジスタ及び前記C1レジスタに割り当てられると共に、前記値dの設定領域を有し、
    前記制御回路は前記コマンドレジスタに書き込まれた所定の演算コマンド及び前記パラメータレジスタに設定された値dを参照することにより、前記Tレジスタ、前記C0レジスタ及び前記C1レジスタを用いて前記演算回路に前記第1処理乃至第4処理の演算を実行させる、データ処理装置。
  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=XmodNと表したとき、この式を実現する処理は、
    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とし、不一致であればエラーとする処理、を含む復号処理方法。
  18. 請求項17において、エラーとする処理はC1レジスタの値以外の値を返す処理である、復号処理方法。
JP2014130199A 2014-06-25 2014-06-25 データ処理装置及び復号処理方法 Active JP6262085B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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