JP7155173B2 - 外部監視攻撃からモジュラーインバージョン演算を保護すること - Google Patents

外部監視攻撃からモジュラーインバージョン演算を保護すること Download PDF

Info

Publication number
JP7155173B2
JP7155173B2 JP2019571240A JP2019571240A JP7155173B2 JP 7155173 B2 JP7155173 B2 JP 7155173B2 JP 2019571240 A JP2019571240 A JP 2019571240A JP 2019571240 A JP2019571240 A JP 2019571240A JP 7155173 B2 JP7155173 B2 JP 7155173B2
Authority
JP
Japan
Prior art keywords
value
integer
product
represented
multiplier
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.)
Active
Application number
JP2019571240A
Other languages
English (en)
Other versions
JP2021500760A (ja
JPWO2019079048A5 (ja
Inventor
ハンバーグ,マイケル
タンストール,マイケル
Original Assignee
クリプトグラフィ リサーチ, インコーポレイテッド
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 クリプトグラフィ リサーチ, インコーポレイテッド filed Critical クリプトグラフィ リサーチ, インコーポレイテッド
Publication of JP2021500760A publication Critical patent/JP2021500760A/ja
Publication of JPWO2019079048A5 publication Critical patent/JPWO2019079048A5/ja
Application granted granted Critical
Publication of JP7155173B2 publication Critical patent/JP7155173B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

[0001] 本開示は、概してコンピュータシステムに関し、より具体的には暗号データ処理システム及び方法に関する。
[0002] コンピュータの出現以来、暗号鍵及び/又は他の極秘データを保護するための多様なシステム及び方法だけではなく、概念的に荒削りのブルートフォース式のパスワードクラッキングから複雑な外部監視攻撃に及ぶ、保護されたデータに対する不正アクセスを獲得するためのシステム及び方法も絶えず進化を遂げている。
[0003] 本開示は、制限としてではなく例として示され、図と関連して考慮されるとき、以下の発明を実施するための形態を参照してより完全に理解され得る。
[0004]本開示の1つ以上の態様に従って、公共通信回線を介して安全なメッセージを交換するために2つの通信相手により実行される例の一連の演算を概略で示す図である。 [0005]本開示の1つ以上の態様に従って、外部監視攻撃に抵抗性を示す方法でモジュラーインバージョン演算(modular inversion operations)を実行するための例の方法200の流れ図を示す図である。 [0006]本開示の1つ以上の態様に従って、外部監視攻撃に抵抗性を示す方法でモジュラーインバージョン演算を実行するための別の例の方法300の流れ図を示す図である。 [0007]本明細書に説明される暗号データ処理演算を実行するために利用され得るコンピューティングシステム300の図表示を示す図である。
[0008] 本明細書に説明されるのは、外部監視攻撃からモジュラーインバージョン演算を保護するためのシステム及び方法である。
[0009] 「暗号データ処理演算」は、本明細書では、秘密のパラメータ(例えば、秘密鍵を使用する暗号化演算/暗号解読演算)を含んだデータ処理演算を指すものとする。「暗号データ処理装置」は、本明細書では、暗号データ処理演算を実行するために構成又は利用されるデータ処理装置(例えば、汎用プロセッサ又は専門プロセッサ、システムオンチップ、暗号ハードウェアアクセラレータ等)を指すものとする。
[0010] 「ブロック暗号」は、本明細書では、対応する暗号文を作成する、及び/又は暗号文のブロックを作成して対応する平文を作成するために、特定のサイズの平文のブロックを処理する暗号方法を指すものとする。「外部監視攻撃」は、本明細書では、標的暗号データ処理装置の物理的な実装及び/又は動作の特定の態様から1つ以上の保護情報項目を導出することによって、保護情報に対する不正アクセスを獲得する方法を指すものとする。サイドチャネル攻撃は、例えば特定のデータ処理演算の経過時間、特定の回路による電力消費、特定の回路を通って流れる電流、標的暗号データ処理装置の特定の回路により発せられる熱又は電磁放射線等の標的暗号データ処理装置の動作と関連付けられた1つ以上の物理パラメータの値を測定することに基づく外部監視攻撃である。
[0011] 多様なサイドチャネル攻撃は、標的暗号システムの中に記憶されている、及び/又は標的暗号システムにより処理されている特定の保護情報(例えば、入力された平文を暗号文に変換するために活用される暗号鍵)に対する不正アクセスを得るように設計される場合がある。例示的な例では、攻撃者は、標的データ処理装置の特定の内部状態に基づく順次的なデータ操作演算の相互作用を不当に利用する場合がある。攻撃者は、順次的なデータ操作演算の1つ以上の変化するデータ入力に対応して、標的暗号データ処理装置の特定の回路による電力消費を測定するために単純電力解析方法(SPA)又は電力差分解析(DPA)方法を適用し、このようにしてデータ操作演算のオペランドとして働く1つ以上の保護データ項目(例えば、暗号鍵)を決定する場合がある。
[0012] 本開示は、秘密の値(例えば、暗号鍵)を計算するために活用され得る2つのマスクキングをかけたシェアを生成することによって、外部監視攻撃から、例えばモジュラーインバージョン演算等の暗号データ処理演算を保護するためのシステム及び方法を導入する。本明細書で以下に説明される多様な例示的な例では、モジュラーインバージョン演算を実行する方法は、リベストシャミアエーデルマン(RSA)暗号データ処理演算を実装するために活用されてよい。しかしながら、本明細書に説明されるシステム及び方法は、多様な他のデータ処理方法に適用可能であってよい。
[0013] RSA暗号法は、
任意の整数mに対して
[0014](m=m(mod n)
となるように、3つの大きな正の整数e、d、及びnを活用し、
[0015] 上式では、mod nは、nの値によるオペランドのユークリッド除法の余りを生じさせるモジュロ演算を示す(例えば、nを法とするaは、nによるaのユークリッド除法の余りである)。したがって、e、n、又はmの既知の値からもdの値を導出することは実際には実現可能ではないであろうと仮定すると、(本明細書で以下に説明される例で正の整数として解釈されるビットシーケンスにより表される)平文mは、公開指数eにより表される受取人の公開鍵を使用し、暗号化されて、暗号文を生じさせてよい。
[0016] c=m(mod n)
[0017] 暗号文は、次いで
[0018] m=(m (mod n)=c(mod n)
を計算するために、秘密指数dにより表される受取人の秘密鍵を使用することによって平文mを復元し得る受取人に送信されてよい。
[0019] 例示的な例では、第1の通信相手は、公開鍵及び対応する秘密鍵を含む1対の暗号鍵を生成してよい。鍵を生成することは、モデュラスnの値を2つのランダムな大きい素数の積として計算することを含んでよい。
[0020] n=pq
[0021] 第1の通信相手は次いで、本明細書ではφ(n)として示される、モデュラスのオイラーのファイ関数の値を計算してよい。オイラーのファイ関数は、最大公分母gcd(n、k)=1の1≦k≦nの範囲内で整数kの数を生じさせる。オイラーのファイ関数の基本特性に基づいて、φ(n)=φ(p)φ(q)=(p-1)(q-1)である。
[0022] 第1の通信相手は、次いで1<e<φ(n)及びgcd(e、φ(n))=lとなる(つまり、e及びφ(n)が互いに素である)ように整数値eを選んでよい。eの値は、次いで公開されてよい、又はそれ以外の場合、第1の通信相手の公開鍵として第2の通信相手に伝達されてよい。
[0023] 第2の通信相手は、第1の相手の公開鍵eを使用し、平文mを暗号化して、暗号文cを作成してよい。
[0024] c=m(mod n)
[0025] 第2の通信相手は、次いで第1の通信相手に暗号文を送信してよい。受信された暗号文を解読するために、第1の通信相手は、公開鍵eのモジュラー乗法インバージョン(modular multiplicative inversion)として秘密指数dを計算してよい。
[0026] d=e-1 mod φ(n)
[0027] 上式では、e-1はeのモジュラー乗法インバージョンであり、これによりee―1=1(mod φ(n))となる。
[0028] 第1の通信相手は、次いで秘密指数dを使用し、受信された暗号文cを解読することによって平文mを復元してよい。
[0029] m=c
[0030] 特に、モジュラーインバージョンe―1 mod φ(n)を計算する多様な共通の方法は、例えば多様な条件付き演算を含む拡張ユークリッドGCD又はバイナリGCDアルゴリズムにより最大公分母(GCD)を決定することを伴い、したがって外部監視攻撃に弱い場合がある。
[0031] 本開示は、例えばモジュラーインバージョン演算等の暗号データ処理演算を実行する多様な共通の方法のこの欠陥及び他の既知の欠陥を克服する。したがって、本明細書に説明されるシステム及び方法は、外部監視攻撃に対して抵抗性を示す方法での暗号データ処理演算の実行を可能にすることによって汎用コンピューティングデバイス又は専門コンピューティングデバイスの機能性に対する改善に相当する。
[0032] 本明細書に説明されるシステム及び方法は、ハードウェア(例えば、汎用処理装置及び/又は専門処理装置、及び/又は他の装置、及び関連付けられた回路)、ソフトウェア(例えば、処理装置により実行可能な命令)、又はその組み合わせにより実装されてよい。方法及びシステムの多様な態様は、制限としてよりむしろ例として本明細書に説明される。
[0033] RSA暗号データ処理演算の上述された例からの注釈を利用し、目標は、公開指数eのモジュラー乗法インバージョンとして秘密指数dを計算することである。
[0034] d=e―1 mod φ(n)
[0035] 外部監視攻撃からの保護は、以下の通りに公開指数eから導出され得る2つの互いに素であるマスキングをかけたシェアe及びeを計算することにより達成されてよい。
[0036] e=er mod φ(n)
[0037] e=es mod φ(n)
[0038] 上式では、r及びsは、φ(n)のビット長に類似したそれぞれのビット長を有するランダムな整数である(つまり、r及びsのそれぞれのビット長は、φ(n)のビット長とはわずかに所定のビット数、異なる場合がある)。
[0039] 次いで、2つの整数a及びbが(例えば、拡張ユークリッドGCDアルゴリズムにより)計算されてよく、これにより
[0040] ae+be=1
となる。
[0041] e及びeが1よりも大きい公約数を有する場合、次いで係るa及びbは存在しない。その場合、アルゴリズムは、e及びeに新しい値を用いて再開する。
[0042] mod φ(n)により最後の方程式の両方の部分をとると、
[0043] ae mod φ(n)+be mod φ(n)=1 mod φ(n)
が生じるであろう。
[0044] e及びeをその定義で置換すると、最後の方程式は、
[0045] aer+bes=1 mod φ(n)
として書き換えられてよい。
[0046] 次いで、自明な算術変換を適用すると、
[0047] aer+bes=e(ar+bs)=1 mod φ(n)
が生じるであろう。
[0048] 最後に、両側をeの乗法逆元で乗算すると、
[0049] ar+bs=e―1 mod φ(n)=d
が生じるであろう。
[0050] したがって、秘密指数dは、加法シェアar+bsの総和として計算されてよく、このようにして外部監視攻撃から暗号データ処理演算を保護する。
[0051] 代替実施形態では、e及びeは以下のとおりに決定されてよく、
[0052] e=er
[0053] e=es+φ(n)
[0054] 上式では、r及びsは0<er<φ(n)、0<es<φ(n)になるように選ばれたランダムな整数であり、導出の残りは上記と同じである。
[0055] 図1は、本開示の1つ以上の態様に従って、公共通信回線を介して安全なメッセージを交換するために2つの通信相手110、120により実行される例の一連の演算を概略で示す。図1により概略で示されるように、第1の通信相手110は、公開鍵130及び対応する秘密鍵140を含む1対の暗号鍵を生成してよい。鍵を生成することは、2つのランダムな大きい素数の積としてモデュラスnの値を計算することを伴ってよい。
[0056] n=pq
[0057] 第1の通信相手は、次いで整数値eを選んでよく、これにより1<e<φ(n)及びgcd(e、φ(n))=1となる(つまり、e及びφ(n)は互いに素である)。eの値は、次いで公開されてよい、又はそれ以外の場合第1の通信相手110の公開鍵130として第2の通信相手120に伝達されてよい。
[0058] 第2の通信相手120は、第1の相手の公開鍵130を使用し、平文150を暗号化して、暗号文160を作成してよい。
[0059] c=m(mod φ(n))
[0060] 第2の通信相手120は、次いで暗号文160を第1の通信相手110に送信してよい。特定の実施態様では、平文150を暗号化する前に、第2の通信相手120は、平文150を所与のサイズの複数のブロックに分割し、図2により概略で示されるように、最後の不完全なブロックを所定のビットパターンでパディングしてよい。第1の通信相手110は、次いで解読されたブロックを連結させることによって平文150を再構築してよい。
[0061] 受信された暗号文160を解読するために、第1の通信相手110は、秘密鍵140を計算してよく、これは、一実施形態では以下の通りの公開指数eから導出されてよい2つの互いの素であるマスキングをかけたシェアe及びeを計算することを伴う場合があり、
[0062] e=er mod φ(n)
[0063] e=es mod φ(n)
[0064] 上式では、r及びsは、φ(n)のビット長に類似したそれぞれのビット長を有するランダムな整数である(つまり、r及びsのそれぞれのビット長は、φ(n)のビット長とはわずかに所定のビット数、異なる場合がある)。
[0065] 代替実施形態では、e及びeは、以下の通りに決定されてよく、
[0066] e=er
[0067] e=es+φ(n)
[0068] 上式では、r及びsは、0<er<φ(n)及び0<es<φ(n)となるように選ばれたランダムな整数である。
[0069] 次いで、2つの整数a及びbは、(例えば、拡張GCDアルゴリズムにより)計算されてよく、これにより
[0070] ae+be=1
となる。
[0071] e及びeが1よりも大きい公約数を有する場合、次いで係るa及びbは存在しない。その場合、アルゴリズムは、e及びeに新しい値を用いて再開する。
[0072] 最後に、秘密鍵140は、加法シェアの総和として計算されてよい。
[0073] d=ar+bs
[0074] 第1の通信相手110は、次いで秘密鍵140を使用し、受信された暗号文160を解読することによって平文150を復元してよい。
[0075] m=c mod φ(n)
[0076] 図2は、本開示の1つ以上の態様に従って、外部監視攻撃に抵抗性を示す方法でモジュラーインバージョン演算を実行するための例の方法200の流れ図を示す。方法200及び/又はその個々の関数、ルーチン、サブルーチン、又は演算のそれぞれは、例えば、汎用コンピューティングシステム及び/又は専門コンピューティングシステムによって表される1つ以上の暗号データ処理装置によって実行されてよい。方法200の2つ以上の関数、ルーチン、サブルーチン、又は演算は、並行して又は上述された順序とは異なる場合がある順序で実行されてよい。特定の実施態様では、方法200は、単一の処理スレッドによって実行されてよい。代わりに、方法200は、各スレッドが方法の1つ以上の個々の関数、ルーチン、サブルーチン、又は演算を実行する2つ以上の処理スレッドによって実行されてよい。例示的な例では、方法200を実装する処理スレッドは、(例えば、セマフォ、クリティカルセクション、及び/又は他のスレッド同期機構を使用し)同期されてよい。代わりに、方法200を実装する処理スレッドは、互いに関して非同期で実行されてよい。例示的な例では、方法200は、図4のコンピューティングシステム400によって実行されてよい。
[0077] 図2を参照すると、ブロック210で、方法を実装する暗号データ処理装置は、公開暗号鍵e及び第1のランダムな整数値rの積の、モデュラス値nによる整数除算の余りとして第1のマスキングをかけた値eを決定してよい。
[0078] e=er mod φ(n)
[0079] 例示的な例では、モデュラス値は、本明細書で上記により詳細に説明されるように、本明細書ではφ(n)として示される、所与のモデュラスのオイラーのファイ関数の値により表されてよい。別の例示的な例では、モデュラス値は、本明細書ではkφ(n)として示される、小さい整数k及び所与のモデュラスのオイラーのファイ関数の値の積により表されてよい。
[0080] ブロック220で、暗号データ処理装置は、モデュラス値φ(n)と、公開暗号鍵e及び第2のランダムな整数sの積の、モデュラス値nによる整数除算の余りとの総和として第2のマスキングをかけた値eを決定してよい。
[0081] e=es mod φ(n)
[0082] ブロック230で、暗号データ処理装置は、第1の整数乗数及び第1のマスキングをかけた値の積と、第2の整数乗数及び第2のマスキングをかけた値の積との総和が、所定の整数定数(例えば、1)に等しくなるように、第1の整数乗数a及び第2の整数乗数bを決定してよい。
[0083] ae+be=1
[0084] ブロック240で、暗号データ処理装置は、第1の整数乗数及び第1のランダムな整数値の積と、第2の整数乗数及び第2のランダムな整数値の積との総和を計算することによって、公開暗号鍵の乗法モジュラーインバージョンにより表される秘密暗号鍵を決定してよい。
[0085] d=ar+bs
[0086] ブロック250で、暗号データ処理装置は、暗号データ処理演算を実行するために秘密暗号鍵を活用してよい。例示的な例では、暗号データ処理装置は、秘密暗号鍵dを活用して、受信された暗号文cを解読してよい。
[0087] m=c mod n
[0088] 図3は、本開示の1つ以上の態様に従って、外部監視攻撃に抵抗性を示す方法でモジュラーインバージョン演算を実行するための別の例の方法300の流れ図を示す。方法300及びその個々の関数、ルーチン、サブルーチン、又は演算のそれぞれは、例えば汎用コンピューティングシステム及び/又は専門コンピューティングシステムにより表される1つ以上の暗号データ処理装置により実行されてよい。方法300の2つ以上の関数、ルーチン、サブルーチン、又は演算は、並行して又は上述された順序とは異なる場合がある順序で実行されてよい。特定の実施態様では、方法300は、単一の処理スレッドによって実行されてよい。代わりに、方法300は、各スレッドが方法の1つ以上の個々の関数、ルーチン、サブルーチン、又は演算を実行する2つ以上の処理スレッドによって実行されてよい。例示的な例では、方法300を実装する処理スレッドは、(例えば、セマフォ、クリティカルセクション、及び/又は他のスレッド同期機構を使用し)同期されてよい。代わりに、方法300を実装する処理スレッドは、互いに関して非同期で実行されてよい。例示的な例では、方法300は、図4のコンピューティングシステム400によって実行されてよい。
[0089] 図3を参照すると、ブロック310で、方法を実装する暗号データ処理装置は、公開暗号鍵e及び第1のランダムな整数値rの積として第1のマスキングをかけた値eを決定してよい。
[0090] e=er
[0091] ブロック320で、暗号データ処理装置は、モデュラス値φ(n)と、公開暗号鍵e及び第2のランダムな整数sの積との総和として第2のマスキングをかけた値eを決定してよい。
[0092] e=es+φ(n)
[0093] 例示的な例では、モデュラス値は、本明細書でより詳細に上述されるように、本明細書ではφ(n)として示される、所与のモデュラスのオイラーのファイ関数の値により表されてよい。別の例示的な例では、モデュラス値は、kφ(n)として本明細書に示される、小さい整数k及び所与のモデュラスのオイラーのファイ関数の値の積によって表されてよい。
[0094] ブロック330で、暗号データ処理装置は、第1の整数乗数及び第1のマスキングをかけた値の積と、第2の整数乗数及び第2のマスキングをかけた値の積との総和が、所定の整数定数(例えば、1)に等しくなるように、第1の整数乗数a及び第2の整数乗数bを決定してよい。
[0095] ae+be=1
[0096] ブロック340で、暗号データ処理装置は、第1の整数乗数及び第1のランダムな整数値の積と、第2の整数乗数及び第2のランダムな整数値の積との総和を計算することによって、公開暗号鍵の乗法モジュラーインバージョンにより表される秘密暗号鍵を決定してよい。
[0097] d=ar+bs
[0098] ブロック350で、暗号データ処理装置は、暗号データ処理演算を実行するために秘密暗号鍵を活用してよい。例示的な例では、暗号データ処理装置は、秘密暗号鍵dを活用して、受信された暗号文cを解読してよい。
[0099] m=c mod n
[0100] 図4は、本明細書に説明される暗号データ処理演算を実行するために利用され得るコンピューティングシステム400の図表示を示す図である。コンピューティングシステム400は、LAN、イントラネット、エクストラネット、及び/又はインターネット内の他のコンピューティングデバイスに接続してよい。コンピューティングデバイスは、クライアント‐サーバネットワーク環境でサーバマシンとして動作してよい。コンピューティングデバイスは、パーソナルコンピュータ(PC)、セットトップボックス(STB)、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又はマシンにより講じられる処置を指定する命令(順次的又は別の方法で)の集合を実行できる任意の該マシンにより提供されてよい。さらに、単一のコンピューティングデバイスしか示されていないが、用語「コンピューティングデバイス」は、本明細書に説明される方法を実行するために命令の集合(又は複数の集合)を個別に又は共同で実行するコンピューティングデバイスの任意の集合体を含むとも解釈されるものとする。
[0101] 例のコンピューティングシステム400は、多様な例示的な例では、1つ以上の処理コアを含む汎用プロセッサ又は専門プロセッサであってよい、処理装置402を含んでよい。例のコンピューティングシステム400は、バス430を介して互いと通信してよい、メインメモリ404(例えば、シンクロナスダイナミックランダムアクセスメモリ(DRAM)、読取り専用メモリ(ROM))、スタティックメモリ406(例えば、フラッシュメモリ及びデータストレージデバイス418)をさらに含んでよい。
[0102] 例のコンピューティングシステム400は、ネットワーク420と通信してよいネットワークインタフェースデバイス408をさらに含んでよい。また、例のコンピューティングシステム400は、ビデオディスプレイユニット410(例えば、液晶ディスプレイ(LCD)又は陰極線管(CRT))、英数字入力装置412(例えば、キーボード)、カーソル制御装置442(例えば、マウス)、及び音響信号発生装置416(例えば、スピーカ)を含んでもよい。一実施形態では、ビデオディスプレイユニット410、英数字入力装置412、及びカーソル制御装置442は、単一の構成要素又はデバイス(例えば、LCDタッチスクリーン)の中に結合されてよい。
[0103] データストレージデバイス418は、例えば、外部監視攻撃に対して抵抗性を示す方法でモジュラーインバージョン演算を実行する方法200等の本明細書に説明される方法又は機能の任意の1つ以上を実装する命令の1つ以上の集合が記憶されてよい、コンピュータ可読記憶媒体428を含んでよい。また、命令は、例のコンピューティングシステム400によるその実行中に、メインメモリ440の中に及び/又は処理装置402の中に完全に又は少なくとも部分的に常駐してもよい。したがって、メインメモリ404及び処理装置402は、コンピュータ可読媒体を構成してもよい、又は含んでもよい。命令はさらに、ネットワークインタフェースデバイス408を介してネットワーク420上で送信又は受信されてよい。
[0104] コンピュータ可読記憶媒体428は単一の媒体であるために例示的な例に示されるが、用語「コンピュータ可読記憶媒体」は、命令の1つ以上の集合を記憶する単一の媒体又は複数の媒体(例えば、集中型又は分散型のデータベース及び/又は関連付けられたキャッシュ及びサーバ)を含むとして解釈されるべきである。また、用語「コンピュータ可読記憶媒体」は、マシンによる実行のために命令の集合を記憶する、符号化する、又は搬送することができ、マシンに本明細書に説明される方法を実行させる任意の媒体を含むとして解釈されるものとする。したがって、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学媒体、及び磁気媒体を含むが、これに限定されるものではないと解釈されるものとする。
[0105] 特に明記しない限り、例えば「更新する」、「識別する」、「決定する」、「送信する」、「割り当てる」等の用語は、コンピューティングデバイスのレジスタ及びメモリの中の物理的な(電子的な)量として表されるデータを操作し、コンピューティングデバイスメモリ若しくはレジスタの中の物理的な量として同様に表される他のデータに変換するコンピューティングデバイスによって、又は他の係る情報記憶装置、情報伝送装置、若しくは情報表示装置によって実行又は実装されるアクション及びプロセスを指す。また、本明細書で使用される用語「第1の」、「第2の」、「第3の」、「第4の」等は、異なる要素を区別するためのラベルとして意味され、必ずしもその数字表示に応じた順序の意味を有さない場合がある。
[0106] また、本明細書に説明される例は、本明細書に説明される方法を実行するための装置にも関する。この装置は、必要とされる目的のために特別に構築される場合もあれば、装置はコンピューティングデバイスに記憶されたコンピュータプログラムによって選択的にプログラムされた汎用コンピューティングデバイスを含む場合もある。係るコンピュータプログラムは、コンピュータ可読非一過性記憶媒体に記憶されてよい。
[0107] 本明細書に説明される方法及び例示的な例は、本質的に任意の特定のコンピュータ又は他の装置に関係していない。多様な汎用システムが、本明細書に説明される教示に従って使用される場合もあれば、必要とされる方法ステップを実行するためにより専門化された装置を構築することが便利であると判明する場合もある。さまざまなこれらのシステムのための必要とされる構造は、上記説明に説明される通りに現れる。
[0108] 上記の説明は、制限的ではなく例示的となることを意図する。本開示は、特定の例示的な例に関して説明されてきたが、本開示が説明された例に限定されないことが認識される。本開示の範囲は、特許請求の範囲が権限がある同等物の完全な範囲とともに、続く特許請求の範囲に関して決定されるべきである。

Claims (16)

  1. 暗号データ処理演算を実行する方法であって、
    暗号データ処理装置により、公開暗号鍵及び第1のランダムな整数値の積の、モデュラス値による整数除算の余りにより表される、第1のマスキングをかけた値を決定することと、
    前記暗号データ処理装置により、前記モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値の積の、前記モデュラス値による整数除算の余りとの総和により表される、第2のマスキングをかけた値を決定することと、
    前記暗号データ処理装置により、第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定することと、
    前記暗号データ処理装置により、前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定することと
    を含む、方法。
  2. 暗号データ処理演算を実行する方法であって、
    暗号データ処理装置により、公開暗号鍵及び第1のランダムな整数値の積により表される、第1のマスキングをかけた値を決定することと、
    前記暗号データ処理装置により、モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値との整数値の積との総和により表される、第2のマスキングをかけた値を決定することと、
    前記暗号データ処理装置により、第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定することと、
    前記暗号データ処理装置により、前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定することと
    を含む、方法。
  3. 前記モデュラス値が、2つのランダムな素数の積のオイラーのファイ関数の値により表される、請求項1又は2に記載の方法。
  4. 前記公開暗号鍵が、前記モデュラス値と互いに素である整数値により表される、請求項1又は2に記載の方法。
  5. 前記暗号データ処理装置により、暗号データ処理演算を実行するために前記公開暗号鍵及び前記秘密暗号鍵を活用すること
    をさらに含む、請求項1又は2に記載の方法。
  6. 前記暗号データ処理装置により、前記公開暗号鍵で暗号化された暗号文を解読するために前記秘密暗号鍵を活用すること
    をさらに含む、請求項1又は2に記載の方法。
  7. 暗号データ処理演算を実行するための装置であって、
    メモリと、
    前記メモリに結合されたプロセッサであって、
    公開暗号鍵及び第1のランダムな整数値の積の、モデュラス値による整数除算の余りにより表される、第1のマスキングをかけた値を決定し、
    前記モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値の積の、前記モデュラス値による整数除算の余りとの総和により表される、第2のマスキングをかけた値を決定し、
    第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定し、
    前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定し、
    暗号データ処理演算を実行するために前記公開暗号鍵及び前記秘密暗号鍵を活用する
    ための前記プロセッサと
    を備える、装置。
  8. 暗号データ処理演算を実行するための装置であって、
    メモリと、
    前記メモリに結合されたプロセッサであって、
    公開暗号鍵及び第1のランダムな整数値の積により表される、第1のマスキングをかけた値を決定し、
    モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値との整数値の積との総和により表される、第2のマスキングをかけた値を決定し、
    第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定し、
    前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定し、
    暗号データ処理演算を実行するために前記公開暗号鍵及び前記秘密暗号鍵を活用する
    ための前記プロセッサと
    を備える、装置。
  9. 前記モデュラス値が、2つのランダムな素数の積のオイラーのファイ関数の値により表される、請求項7又は8に記載の装置
  10. 前記公開暗号鍵が、前記モデュラス値と互いに素である整数値により表される、請求項7又は8に記載の装置
  11. コンピューティングデバイスによる実行時に、前記コンピューティングデバイスに、
    開暗号鍵及び第1のランダムな整数値の積の、モデュラス値による整数除算の余りにより表される、第1のマスキングをかけた値を決定させ、
    前記モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値の積の、前記モデュラス値による整数除算の余りとの総和により表される、第2のマスキングをかけた値を決定させ、
    第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定させ、
    前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定させる
    実行可能な命令を備えるコンピュータ可読非一過性記憶媒体。
  12. コンピューティングデバイスによる実行時に、前記コンピューティングデバイスに、
    公開暗号鍵及び第1のランダムな整数値の積により表される、第1のマスキングをかけた値を決定させ、
    モデュラス値と、前記公開暗号鍵及び第2のランダムな整数値との整数値の積との総和により表される、第2のマスキングをかけた値を決定させ、
    第1の整数乗数及び前記第1のマスキングをかけた値の積と、第2の整数乗数及び前記第2のマスキングをかけた値の積との総和が所定の整数定数に等しくなるように、前記第1の整数乗数及び前記第2の整数乗数を決定させ、
    前記第1の整数乗数及び前記第1のランダムな整数値の積と、前記第2の整数乗数及び前記第2のランダムな整数値の積との総和を計算することによって、前記公開暗号鍵のモジュラー乗法インバージョンにより表される秘密暗号鍵を決定させる
    実行可能な命令を備えるコンピュータ可読非一過性記憶媒体。
  13. 前記モデュラス値が、2つのランダムな素数の積のオイラーのファイ関数の値により表される、請求項11又は12に記載のコンピュータ可読非一過性記憶媒体。
  14. 前記モデュラス値が、2つのランダムな素数の積のオイラーのファイ関数の値により表される、請求項11又は12に記載のコンピュータ可読非一過性記憶媒体。
  15. 前記公開暗号鍵が、前記モデュラス値と互いに素である整数値により表される、請求項11又は12に記載のコンピュータ可読非一過性記憶媒体。
  16. 前記命令は、前記コンピューティングデバイスに、さらに、暗号データ処理演算を実行するために前記公開暗号鍵及び前記秘密暗号鍵を活用させる請求項11又は12に記載のコンピュータ可読非一過性記憶媒体。
JP2019571240A 2017-10-18 2018-10-08 外部監視攻撃からモジュラーインバージョン演算を保護すること Active JP7155173B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762574016P 2017-10-18 2017-10-18
US62/574,016 2017-10-18
PCT/US2018/054805 WO2019079048A1 (en) 2017-10-18 2018-10-08 PROTECTION OF A MODULAR INVERSION OPERATION AGAINST EXTERNAL SURVEILLANCE ATTACKS

Publications (3)

Publication Number Publication Date
JP2021500760A JP2021500760A (ja) 2021-01-07
JPWO2019079048A5 JPWO2019079048A5 (ja) 2022-09-12
JP7155173B2 true JP7155173B2 (ja) 2022-10-18

Family

ID=66174585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019571240A Active JP7155173B2 (ja) 2017-10-18 2018-10-08 外部監視攻撃からモジュラーインバージョン演算を保護すること

Country Status (4)

Country Link
US (1) US11418334B2 (ja)
EP (1) EP3698262B1 (ja)
JP (1) JP7155173B2 (ja)
WO (1) WO2019079048A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
DE102018113475A1 (de) * 2018-06-06 2019-12-12 Infineon Technologies Ag Rechenwerk zum rechnen mit maskierten daten
EP3809271B1 (en) * 2018-08-15 2022-06-22 Huawei Technologies Co., Ltd. Secure data transfer apparatus, system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304800A (ja) 2003-03-28 2004-10-28 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止
WO2005041474A1 (ja) 2003-10-28 2005-05-06 The Foundation For The Promotion Of Industrial Science 認証システム及び遠隔分散保存システム
US20050152539A1 (en) 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
JP2009267839A (ja) 2008-04-25 2009-11-12 Ntt Data Corp 暗号処理装置、暗号処理方法及びコンピュータプログラム
JP2016090884A (ja) 2014-11-07 2016-05-23 国立大学法人電気通信大学 暗号化制御システムおよび暗号化制御方法、並びにプログラム
JP2017526981A (ja) 2014-09-10 2017-09-14 ジエマルト・エス・アー 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154541A (en) * 1997-01-14 2000-11-28 Zhang; Jinglong F Method and apparatus for a robust high-speed cryptosystem
JP3233605B2 (ja) * 1997-12-26 2001-11-26 株式会社高度移動通信セキュリティ技術研究所 鍵更新方法
US6823070B1 (en) * 2000-03-28 2004-11-23 Freescale Semiconductor, Inc. Method for key escrow in a communication system and apparatus therefor
FR2819663B1 (fr) * 2001-01-18 2003-04-11 Gemplus Card Int Dispositif et procede d'execution d'un algorithme cryptographique
US7088821B2 (en) * 2001-05-03 2006-08-08 Cheman Shaik Absolute public key cryptographic system and method surviving private-key compromise with other advantages
EP1449045A2 (en) * 2001-11-14 2004-08-25 International Business Machines Corporation Device and method with reduced information leakage
US8065332B2 (en) * 2005-05-19 2011-11-22 Ntt Docomo, Inc. Method and apparatus for communication efficient private information retrieval and oblivious transfer
EP1840732A1 (en) 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
US8139763B2 (en) 2007-10-10 2012-03-20 Spansion Llc Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
FR2977953A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
EP2738973A1 (en) 2012-11-30 2014-06-04 Gemalto SA System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
EP2939360A1 (en) * 2012-12-28 2015-11-04 Koninklijke KPN N.V. Secure watermarking of content
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
CN110710154B (zh) * 2017-05-26 2024-04-19 微芯片技术股份有限公司 用于使设备操作模糊化的系统、方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304800A (ja) 2003-03-28 2004-10-28 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止
WO2005041474A1 (ja) 2003-10-28 2005-05-06 The Foundation For The Promotion Of Industrial Science 認証システム及び遠隔分散保存システム
US20050152539A1 (en) 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
JP2009267839A (ja) 2008-04-25 2009-11-12 Ntt Data Corp 暗号処理装置、暗号処理方法及びコンピュータプログラム
JP2017526981A (ja) 2014-09-10 2017-09-14 ジエマルト・エス・アー 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法
JP2016090884A (ja) 2014-11-07 2016-05-23 国立大学法人電気通信大学 暗号化制御システムおよび暗号化制御方法、並びにプログラム

Also Published As

Publication number Publication date
EP3698262A1 (en) 2020-08-26
US20210028934A1 (en) 2021-01-28
EP3698262A4 (en) 2021-06-30
WO2019079048A1 (en) 2019-04-25
JP2021500760A (ja) 2021-01-07
EP3698262B1 (en) 2023-08-02
US11418334B2 (en) 2022-08-16

Similar Documents

Publication Publication Date Title
Kaur et al. The recent trends in cyber security: A review
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
Thangavel et al. An enhanced and secured RSA key generation scheme (ESRKGS)
Abroshan A hybrid encryption solution to improve cloud computing security using symmetric and asymmetric cryptography algorithms
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
Moon et al. IoT application protection against power analysis attack
JP2006340347A (ja) データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム
TWI686722B (zh) 用於加密操作之指數分拆技術
US20210152331A1 (en) Protecting polynomial hash functions from external monitoring attacks
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
Shim et al. A high-speed public-key signature scheme for 8-b IoT-constrained devices
Hussein et al. Proposed Parallel Algorithms to Encryption Image Based on Hybrid Enhancement RC5 and RSA
Smart Physical side‐channel attacks on cryptographic systems
CN110495134B (zh) 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统
WO2022132186A1 (en) Randomization methods in isogeny-based cryptosystems
Zhang et al. An Improved Public Key Cryptographic Algorithm Based on Chebyshev Polynomials and RSA
CN104125061A (zh) 使用rsa加密算法的电子部件中的防攻击方法
US20240187230A1 (en) A low overhead method and architecture for side-channel attack resistance in elliptic curve arithmetic
Ma et al. Applications and developments of the lattice attack in side channel attacks
Somsuk The new Weakness of RSA and The Algorithm to Solve this Problem
Hassan et al. Securing Digital Signature Algorithm against Side Channel Attacks
Jinasena et al. Access Control of Medical Images using Elliptic Curve Cryptography through Effective Multi-Key Management in a Mobile Multicasting Environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220527

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20220823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221005

R150 Certificate of patent or registration of utility model

Ref document number: 7155173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150