JP2010072664A - 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 - Google Patents
物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 Download PDFInfo
- Publication number
- JP2010072664A JP2010072664A JP2009297838A JP2009297838A JP2010072664A JP 2010072664 A JP2010072664 A JP 2010072664A JP 2009297838 A JP2009297838 A JP 2009297838A JP 2009297838 A JP2009297838 A JP 2009297838A JP 2010072664 A JP2010072664 A JP 2010072664A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- partial
- function
- calculation method
- encryption calculation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000008569 process Effects 0.000 title abstract description 4
- 238000004364 calculation method Methods 0.000 claims abstract description 76
- 230000009466 transformation Effects 0.000 claims description 45
- 238000006243 chemical reaction Methods 0.000 claims description 34
- PBLQSFOIWOTFNY-UHFFFAOYSA-N 3-methylbut-2-enyl 4-methoxy-8-(3-methylbut-2-enoxy)quinoline-2-carboxylate Chemical compound C1=CC=C2C(OC)=CC(C(=O)OCC=C(C)C)=NC2=C1OCC=C(C)C PBLQSFOIWOTFNY-UHFFFAOYSA-N 0.000 claims description 5
- 238000000844 transformation Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000013478 data encryption standard Methods 0.000 description 37
- 238000012986 modification Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 description 1
- 241000545442 Radix Species 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- 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/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7266—Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】本発明は、秘密鍵を有する電子式暗号化集合を、暗号解析的な攻撃から保護する方法に関する。
【解決手段】本方法は、a)標準の暗号化計算方法を、標準の暗号化計算の結果とは別個の部分中間結果を用いて、いくつかの別個の並行処理段階に分割するステップと、b)当該別個の部分中間結果から最終値を再構成するステップとからなる。本発明は、組み込みシステムなどの電子的な集合にとって有用である。
【選択図】図2
【解決手段】本方法は、a)標準の暗号化計算方法を、標準の暗号化計算の結果とは別個の部分中間結果を用いて、いくつかの別個の並行処理段階に分割するステップと、b)当該別個の部分中間結果から最終値を再構成するステップとからなる。本発明は、組み込みシステムなどの電子的な集合にとって有用である。
【選択図】図2
Description
本発明は、秘密鍵を用いた暗号化アルゴリズムを実現するコンピュータシステムを保護する方法に関する。より正確には、その方法の目的は、計算の実行中におけるコンピュータシステムの電力消費量の検討を通じて秘密鍵上の情報を得ることを目的とした「差分電力解析(Differential Power Analysis)」又は「高次差分電力解析(High−Order Differential Power Analysis)」として知られる特定のタイプの物理的攻撃に対して脆弱でないアルゴリズムのバージョンを提供することである。
ここで考察される暗号化アルゴリズムは、出力情報を、入力情報の関数として計算する秘密鍵を用いる;これには、暗号化、復号化、署名、署名の検証、認証又は非拒絶の操作が含まれる。それらは、入力及び出力を知っている攻撃者が、秘密鍵それ自身上のいかなる情報も事実上演繹することができないような方法で構成される。
われわれは、「秘密鍵アルゴリズム」又は「対称アルゴリズム」という表現で以前から表されているクラスよりも大きいクラスに関わっている。特に本特許の応用例で説明される全てが、さらにいわゆる「公開鍵アルゴリズム」又は「非対称アルゴリズム」に適合し、当該アルゴリズムは、2つの鍵(一方は公開で、他方は個人又は非公開であり、後者は以下に説明される攻撃の目標となる鍵である)を含む。
ポール・コッヘル及びCryptographic Research社によって開発された電力解析(参照として本明細書に組み込まれる、URLアドレスhttp://www.cryptography.com/dpa/technical/index.htmlにおいてHTML文書として公開された、ポール・コッヘル、ジョシュア・ジャフィ、ベンジャミン・ジュン及びCryptographic Research社、カリフォルニア州94102、サンフランシスコ、スーツ1008、マーケットストリート870による文書「Introduction to Differential Power Analysis」を参照)として知られるタイプの攻撃は、攻撃者(アタッカー)が、例えば、マイクロコントローラの電力消費量又は回路から発せられる電磁放射等の計算の実行中に、入力及び出力データ以外の情報を、事実上取得できるという観察に基づいている。
「DPA」と略記される差分電力解析は、秘密鍵における多数の計算において電力消費量の測定を行うことにより、コンピュータシステム内に収容されるこの秘密鍵に関する情報を得ることを可能にする攻撃である。
非制限的な例として、われわれは、DES(Data Encryption Standard:データ暗号化基準)アルゴリズムの場合を考察するが、その説明は、以下の文書のいずれの中にも見出すことができる:
FIPS PUB46−2、「Data Encryption Standard」、1994年;
FIPS PUB74、「Guidline for Implementing and Using the NBS Data Encryption Standard」、1981年;
ANSI X3.92「American National Standard, Data Encryption Standard」、1981年;
ISO/IEC8731、「Banking−Approved Algorithms for Message Authentication−パート1:Data Encryption Algorithm(DEA)」、1987;
又は、以下の書籍の中に見出すことができる:
ブルース・シュナイヤー、「Applied Cryptography」第2版、ジョン・ワイリー&サン、1996年、270ページ。
FIPS PUB46−2、「Data Encryption Standard」、1994年;
FIPS PUB74、「Guidline for Implementing and Using the NBS Data Encryption Standard」、1981年;
ANSI X3.92「American National Standard, Data Encryption Standard」、1981年;
ISO/IEC8731、「Banking−Approved Algorithms for Message Authentication−パート1:Data Encryption Algorithm(DEA)」、1987;
又は、以下の書籍の中に見出すことができる:
ブルース・シュナイヤー、「Applied Cryptography」第2版、ジョン・ワイリー&サン、1996年、270ページ。
上記の文書は、参照として本明細書に組み込まれる。
DESアルゴリズムは、ラウンドとして周知の16のステップにおいて実行される(図1aを参照)。16のラウンドのそれぞれにおいて、32ビットへの変換Fが実行される。この変換Fは、6ビットから4ビットへの8つの非線形変換を用い、その各々は、「Sボックス」と呼ばれるテーブルにおいて符号化される(図1bを参照、そこにおいて、Sボックスは、S1、S2、…、SSとマーク付けされている)。
DES上でのDPA攻撃は、以下の方法によって実行される:
第1ステップ:電力消費量の測定は、第1ラウンドにおいて、1,000個のDES計算に対して行われる。これら1,000個の計算の入力値は、E[1]、…、E[1,000]とマーク付けされる。これらの計算中に測定された対応する1,000個の電力消費量曲線は、C[1]、…、C[1,000]とマーク付けされる。1,000個の消費量曲線の平均の曲線CMが、さらに計算される。
第1ステップ:電力消費量の測定は、第1ラウンドにおいて、1,000個のDES計算に対して行われる。これら1,000個の計算の入力値は、E[1]、…、E[1,000]とマーク付けされる。これらの計算中に測定された対応する1,000個の電力消費量曲線は、C[1]、…、C[1,000]とマーク付けされる。1,000個の消費量曲線の平均の曲線CMが、さらに計算される。
第2ステップ:第1ラウンド中の第1のSボックスからの出力の第1ビットが選択される。bをこのビットの値とする。bは、秘密鍵の6ビットによって決まるだけであることが容易に理解できる。攻撃者は、問題の6ビットに、ある仮説を立てる。攻撃者は、これらの6ビットおよびE[i]から、bに対して、対応する理論値を計算する。これによって、1,000個の入力E[1]、…、E[1,000]を、2つのカテゴリ(b=0となるカテゴリ、及びb=1となるカテゴリである)に分けることが可能となる。
第3ステップ:次に、第1のカテゴリすなわちb=0となるカテゴリに対応する曲線の平均CM′が計算される。CM及びCM′が著しく異なる場合には、6個の鍵ビットに保持されている値は、正しい値と見なされる。CM及びCM′に、統計的な意味で、いかなる実質的な相違も認められない、すなわち測定されたノイズに起因する典型的な相違よりも明確に大きい相違が認められない場合は、6ビットに対する別の選択を行って、第2ステップが繰り返される。
第4ステップ:第2のSボックス、第3のSボックス、…、第8のSボックスからの出力の目標ビットbを伴って、ステップ2及び3が繰り返される。この様にして秘密鍵の48ビットが最終的に得られる。
第5ステップ:徹底的探索によって、残りの8ビットを求めることが可能である。
この攻撃は、各命令の個々の電力消費量についての又はこれらの命令のそれぞれの時間的位置についてのいかなる知識をも必要としない。この攻撃は、攻撃者が、アルゴリズムの出力のいくつか及び対応する消費量曲線を知っていると仮定できる場合は、いつでも同じ方法で利用される。この攻撃は、次の基本的な仮定にだけ基づく。
基本的仮定:実際には32ビットよりも少ない、いくつかの鍵ビットを知っていれば、2つの入力及びそれぞれ2つの出力が、中間変数について同じ値になるか否かを決定することが可能になるような、アルゴリズムの計算中に現れる中間変数が存在する。
実行の通常モードは、一般に、前記の仮定の範囲内に入ってしまうので、DESのようなSボックスを用いるアルゴリズムの全ては、DPAに対して潜在的に脆弱である。
「HO−DPA」と略記される高次差分電力解析として知られる攻撃は、上に説明したDPA攻撃の一般化である。それらの攻撃は、いくつかの異なる情報源を用いることができる。電力消費量に加えて、それらの攻撃は、電磁放射及び温度等の測定結果を含むことができ、また単純な平均の概念よりもより洗練された統計的操作、及びより基本的でない(前記のビットbを一般化した)中間変数を用いることができる。それでもやはり、それらの攻撃は、DPAと全く同じ基本的仮定に基づいている。
本発明の主題となる方法の目的は、秘密鍵又は個人鍵暗号化を用いるコンピュータにおけるDPA又はHO−DPA攻撃の危険を取除くことである。
従って、本発明の別の主題は、前記の基本的仮定がもはや満たされないような、言い換えれば、中間変数が個人又は秘密鍵の容易にアクセス可能なサブシステムの電力消費量に依存せず、従ってDPA又はHO−DPAタイプの攻撃の効力を失わせるような、暗号化を用いて保護されたコンピュータシステムによって実行される暗号化計算方法の変更例である。
本発明の主題である秘密鍵を用いた標準の暗号化計算方法を実行するコンピュータシステムを保護する方法は、暗号化計算方法が、並行して実行されかつ標準の暗号化計算の結果とは別個の部分中間的結果を生成する、いくつかの別個の暗号化計算方法の部分に分割されるという点で、及び、分割することなく標準の暗号化計算によって得られる最終値が、別個の部分中間的結果から再構成されるという点で、注目に値する。「標準の暗号化計算方法」という用語は、暗号化された値、復号化された値、及び署名、署名の検証、認証、非拒絶の値を得ることを可能にする、全ての一連の又は連続した計算方法を意味することを意図したものである。このタイプの方法は、クレジットカード、ATMカード、アクセス管理カード又は類似の機能用のスマートカード等の暗号化計算機能を備える埋め込みシステムに対するDPA又はHO−DPAタイプの攻撃を防止することを可能にする。
本発明は、下記の記述および図面の考察を読めば、よりよく理解できるであろう。
ここで、本発明の主題となる秘密鍵を用いる標準の暗号化計算方法を実行するコンピュータシステムを保護する方法のより詳細な説明を、図を参照して行う。
一般的に、本発明の主題となる方法は、秘密又は個人鍵Kを用いる標準の暗号化方法については、暗号化計算方法の変更からなり、そこにおいては、前記の基本的仮定は、もはや満たされず、本発明の主題となりかつ秘密鍵について容易にアクセス可能なサブシステムの知識に依存する方法に従って計算されるいかなる中間変数ももはや存在しない。
この目的のために、及び図2に表されるような本発明の主題となる方法によれば、a)標準の暗号化計算方法は、並行して実行される幾つかの別個の計算方法の部分PPC1〜PPCkに分割され、b)分割することなく標準の暗号化計算方法により得られる値に対応する最終値vは、上記の別個の計算方法の部分PPC1〜PPCkを実行することにより得られた別個の部分結果v1〜vkから再構成される。
従って、計算方法の部分は、独立しているが、部分中間変数又は中間結果は、関連している。
この分割は、計算中に発生し、入力(又は出力)データによって決まる各中間変数vを、k個の変数v1、v2、…、vkで置き換えることによって実施される。必要に応じて、v1、v2、…、vkは、vを再構成することを可能にする。より正確に言えば、これは、v=f(v1、v2、…、vk)であるような関数fが存在することを意味する。さらに、fは、次の条件を満たすことが望ましいということに注意されたい。
(条件1)
iを、最も広い意味で、1及びkの間の添字とする。vの値を知っていても、現存する(k−1)項組(vi、…、vi−1、vi+1、…、vk)が等式f(vi、…、vk)=vを満たすように、全てのvi値の情報を演繹することは事実上不可能である。
(例1)
関数
を取る場合、条件1は、明らかに満たされる。その理由は、1とkとの間の任意の添字iに対して、検討中のviの集合は、全ての考えられる値を含み、従ってvに依存しないからである。なお、以下の文章中では、記号
は、特に断りのない限りは「○+」と記す。
iを、最も広い意味で、1及びkの間の添字とする。vの値を知っていても、現存する(k−1)項組(vi、…、vi−1、vi+1、…、vk)が等式f(vi、…、vk)=vを満たすように、全てのvi値の情報を演繹することは事実上不可能である。
(例1)
関数
(例2)
乗法群(multiplicative group)Z/nZにおける値、すなわち、nを法とする逆数を有するnを法とする整数の全ての値を有する変数vを考える場合、新たな変数v1、v2、…、vkが、さらに乗法群Z/nZにおける値を持つような、nを法とする関数f(vi、…、vk)=v1・v2・…・vkを取り上げることができる。条件1は、やはり明らかに満たされる。その理由は、1とkとの間の全ての添字iに対して、検討中のviの集合は、全ての考えられる値を含み、従ってvに依存しないからである。
乗法群(multiplicative group)Z/nZにおける値、すなわち、nを法とする逆数を有するnを法とする整数の全ての値を有する変数vを考える場合、新たな変数v1、v2、…、vkが、さらに乗法群Z/nZにおける値を持つような、nを法とする関数f(vi、…、vk)=v1・v2・…・vkを取り上げることができる。条件1は、やはり明らかに満たされる。その理由は、1とkとの間の全ての添字iに対して、検討中のviの集合は、全ての考えられる値を含み、従ってvに依存しないからである。
本発明の主題となる方法の注目すべき態様によれば、入力(又は出力)データによって決まる各中間変数vを、k個の変数v1、v2、…、vkで置き換えることによって、アルゴリズムの「変換」が実行される。新たな形態に変更されたアルゴリズムの最大限のセキュリティを保証するために、関数fに対して、次の追加的な条件が課される。
(条件2)
関数fは、vに対して行われる通常の変換の代わりに、計算中に、v1、v2、…、又はvkに対して行われる変換が、vを再計算する必要なしに、実行可能である。
関数fは、vに対して行われる通常の変換の代わりに、計算中に、v1、v2、…、又はvkに対して行われる変換が、vを再計算する必要なしに、実行可能である。
(第1の例:DES)
DESの保護に関連した第1の例を、図3aを参照して説明する。
DESの保護に関連した第1の例を、図3aを参照して説明する。
この例では、DESの特定の例が検討される。この場合、われわれは、計算中に発生し、入力又は出力データに依存する各中間変数vの2つの変数v1及びv2への分割を選択する、すなわちk=2とする。それ自身の構造において条件1を満たす、前記の例1の関数f(v1、v2)=v=v1○+v2を検討する。アルゴリズムの構造から、vに対して実行する変換は、常に次の5つのカテゴリ内に入ることを理解するのは容易である。
vのビットの順列(permutation);
vのビットの展開(expansion);
vと、同タイプの別の変数v′との排他的論理和;
vと、鍵又は副鍵だけに依存する変数cとの排他的論理和;
Sボックスによるvの非線形変換。
vのビットの順列(permutation);
vのビットの展開(expansion);
vと、同タイプの別の変数v′との排他的論理和;
vと、鍵又は副鍵だけに依存する変数cとの排他的論理和;
Sボックスによるvの非線形変換。
最初の2つのカテゴリは、変数vのビットについての線形変換に対応する。従って、これらに対しては、条件2を満たすのは、非常に容易である。通常vに対して実行される変換の代りに、v1そしてv2に対して順列又は展開を行うだけでよく、そして、変換前に「真」であった関係f(v1、v2)=vは、その後も依然として等しく「真」である。
第3の場合も同様に、v″=v○+v′の計算を、v″1=v1○+v′1及びv″2=v2○+v′2の計算で置き換えるだけでよい。関係式f(v1、v2)=v及びf(v′1、v′2)=v′は、明確にf(v″1、v″2)=v″を生み出し、条件2は、再び満たされる。
vと、鍵又は副鍵だけによって決まる変数cとの排他的論理和において、条件2は、また非常に容易に満たされる。計算v○+cを、条件2を満たす計算v1○+c又はv2○+cで置き換えるだけでよい。
最後に、この例では、6ビットの入力を取り4ビットの出力を生じるSボックスの形態で与えられる非線形変換v′=S(v)の代りに、変換(v′1、v′2)=S′(v1、v′2)が、2つの新たなSボックスを用いて実行される。この場合、それぞれのSボックスは、12ビットから4ビットに変換する。等式f(v′1、v′2)=v′を保証するために、以下を選択するだけでよい。
ここで、Aは、12ビットから4ビットへの「秘密ランダム変換(secret random transformation)」を表す。第1の(新たな)Sボックスは、(v1、v2)をA(v1、v2)と関連付ける「変換(v1、v2)→A(v1、v2)」のテーブルに対応し、第2の(新たな)Sボックスは、(v1、v2)をS(v1○+v2)○+A(v1、v2)と関連付ける「変換(v1、v2)→S(v1○+v2)○+A(v1、v2)」のテーブルに対応する。ランダム関数Aがあることによって、条件1の保証が可能となる。さらにテーブルを用いることによって、計算v1○+v2の必要性が無くなり、従って条件2を満たすことが可能となる。
コンピュータシステムがスマートカードによって構成されている場合には、変換(transformation又はconversion)テーブルは、スマートカード内のROMに記憶することができる。
こうして、DESのような標準の暗号化計算方法によって用いられる非線形変換タイプの計算ステップに対して、図3bに示されるようなk個の部分への分割を行なうことができる。変換されたn個の出力ビットが、m個の入力ビットの関数であるアドレスにおいて読み込まれる変換テーブルによって記述され、m個のビットからn個のビットへの非線形変換を用いる標準の暗号化計算方法に対しては、分割されない標準の暗号化計算方法の入力変数Eの役割をする中間変数に適用される各非線形変換が、部分中間変数v1〜vkの全てに適用されるk×m個のビットからk×n個のビットへの部分非線形変換によって置き換えられる。本発明の主題である方法の特に注目すべき態様によれば、この部分非線形変換は、変換されたn個の出力ビットv′1、v′2、…、又はv′kが、k×m個の入力ビットの関数であるアドレスにおいて読み込まれるk個の部分変換テーブルによって記述され実行される。
前記の第1の例において、及び図3bに関連して、k=2、n=4、及びm=6と指示されている。
(第1の変更例)
ROM内の記憶空間を節約するために、DESの標準的記述の8個のSボックスのそれぞれに対して標準的ランダム関数Aを用いることが全く可能であり、従って16個のSボックスの代りに記憶のための新たなSボックスを9個持つだけでよくなる。
(第1の変更例)
ROM内の記憶空間を節約するために、DESの標準的記述の8個のSボックスのそれぞれに対して標準的ランダム関数Aを用いることが全く可能であり、従って16個のSボックスの代りに記憶のための新たなSボックスを9個持つだけでよくなる。
別の第2の変更例を、図3cを参照して説明する。
(第2の変更例)
Sボックスを記憶するのに要するROMの大きさを縮小するために、次の方法を用いることがさらに可能である。(DESの例では、6ビットの入力を取り4ビットの出力を生じる)Sボックスの形態で与えられる初期実行の各非線形変換v′=S(v)の代りに、変換(v′1、v′2)=S′(v1、v2)を2つのSボックスを用いて実行することができる。この場合、それぞれのSボックスが、6ビットから4ビットに変換する。v′=S(v)の計算の初期実行は、次の2つの連続する計算によって置き換えられる:
ここで、φは、6ビットから6ビットへの「秘密全単射関数(secret bijective function)」であり、Aは、6ビットから4ビットへ秘密ランダム変換を表す。第1の(新たな)Sボックスは、v0をA(v0)に関連付ける「変換v0→A(v0)」のテーブルに対応し、第2の(新たな)Sボックスは、v0をS(φ−1(v0))○+A(v0)に関連付ける「変換v0→S(φ−1(v0))○+A(v0)」のテーブルに対応する。構造から、さらに等式f(v′1、v′2)=v′を得る。ランダム関数Aの存在によって、条件1の保証が可能となる。テーブルを用いることにより、φ−1(v0)=v1○+v2を計算する必要が無くなる。
(第2の変更例)
Sボックスを記憶するのに要するROMの大きさを縮小するために、次の方法を用いることがさらに可能である。(DESの例では、6ビットの入力を取り4ビットの出力を生じる)Sボックスの形態で与えられる初期実行の各非線形変換v′=S(v)の代りに、変換(v′1、v′2)=S′(v1、v2)を2つのSボックスを用いて実行することができる。この場合、それぞれのSボックスが、6ビットから4ビットに変換する。v′=S(v)の計算の初期実行は、次の2つの連続する計算によって置き換えられる:
図3dは、第2の変更例に従って本発明の主題である方法により変更された、DES等の標準の暗号化計算方法の枠組みの中で用いられる非線形変換タイプの対応する計算ステップを表す。n個の出力ビットが、m個の入力ビットの関数であるアドレスにおいて読み込まれる変換テーブルによって記述される、m個のビットからn個のビットへの非線形変換に対して、入力変数Eに適用されるk個の部分への分割に加えて、標準の暗号化計算方法の入力変数Eの役割を果たす中間変数に適用される各非線形変換は、部分中間変数v1〜vkの全てに適用されるk×m個のビットからk×n個のビットへの部分非線形変換によって置き換えられる。この部分非線形変換は、k個の変換テーブルによって記述され実行される。変換テーブルの入力のそれぞれは、関係式φj○f(v1、…、vk)及びj∈[l、k]に従って、秘密全単射関数φjを、部分中間変数の関数f(v1、…、vk)に適用することにより得られた値を受け取る。
本発明の主題である方法の特に注目すべき態様に従えば、上記の適用φj○f(v1、…、vk)は、対応する変換テーブル1〜kの入力に適用され、これらのm個の入力ビットの関数であるアドレスにおいて、変換v′1又はv′2又は…v′kのn個の出力ビットを読み込むことを可能にする結果として生じる値を、直接評価することによって実行される。
図3dを参照して説明された第1の例のように、第2の変更例については、k=2、m=6及びn=4と指示されている。
さらに、単純化されたバージョンにおいては、全単射関数φ1及びφkは同一である。
条件2が満たされるためには、v0=φ(v1○+v2)の計算が、v1○+v2を再計算する必要なしに行われ得るように、全単射変換φ又は全単射関数φ1〜φkを選択することがさらに必要である。関数φのための2つの選択例を、以下に述べる。
(第1の実施形態:線形全単射関数φ)
6ビットから6ビットへの秘密全単射線形関数が、φに対して選択される。このような選択の枠内で、6ビット値は、すべて、2つのエレメントを持つ有限体F2中で、6というディメンジョンを持つベクトル空間と考えられる。実際には、φを選択するということは、0又は1という係数を持つランダム可逆6×6行列式を選択することである。φをこのように選択すると、条件2が満たされていることが容易に分かる。要するに、φ(v1○+v2)を計算するには、φ(v1)を計算して、次にφ(v2)を計算して、最後にこの得られた2つの結果の「排他的論理和」を計算するだけでよい。
6ビットから6ビットへの秘密全単射線形関数が、φに対して選択される。このような選択の枠内で、6ビット値は、すべて、2つのエレメントを持つ有限体F2中で、6というディメンジョンを持つベクトル空間と考えられる。実際には、φを選択するということは、0又は1という係数を持つランダム可逆6×6行列式を選択することである。φをこのように選択すると、条件2が満たされていることが容易に分かる。要するに、φ(v1○+v2)を計算するには、φ(v1)を計算して、次にφ(v2)を計算して、最後にこの得られた2つの結果の「排他的論理和」を計算するだけでよい。
例えば、次の行列式:
は可逆である。これは、次式で定義される6ビットオーバー4ビットの線形全単射関数φに相当する。
v1=(v1.1、v1.2、v1.3、v1.4、v1.5、v1.6)であり、v2=(v2.1、v2.2、v2.3、v2.3、v2.5、v2.6)であることに注目すると、φ(v1○+v2)を計算するには、次式を連続的に計算する:
これで、得られた2つの結果の「排他的論理和」が計算される。
(第2の実施形態:二次全単射関数φ)
6ビットから6ビットへの秘密全単射二次関数が、φに対して選択される。「二次」という用語は、この場合、関数φから出力された各々の値のビットは、有限体F3の6つのエレメントで識別される6個の入力ビットの内の2ビットで与えられる次数を持つ多項式関数によって表されることを意味する。実際には、式φ(x)=t(s(x)5)で定義される関数φを選択することが可能であるが、ここで、sは(F2)6をLに対して秘密全単射線形適用したものであり、tはLを(F2)6に対して秘密全単射線形適用したものであり、Lは有限体F2の6次代数展開を示すものである。この関数φの全単射の性質は、a→a5が展開L(この逆がb→b38)に対する全単射関数であるという事実に由来する。条件2がまだ満たされているかどうかを確定するためには、次式が成立するかどうかを判断するだけでよい:
ここで、関数Ψは、Ψ(x、y)=t(s(x)4・s(y))によって定義される。
6ビットから6ビットへの秘密全単射二次関数が、φに対して選択される。「二次」という用語は、この場合、関数φから出力された各々の値のビットは、有限体F3の6つのエレメントで識別される6個の入力ビットの内の2ビットで与えられる次数を持つ多項式関数によって表されることを意味する。実際には、式φ(x)=t(s(x)5)で定義される関数φを選択することが可能であるが、ここで、sは(F2)6をLに対して秘密全単射線形適用したものであり、tはLを(F2)6に対して秘密全単射線形適用したものであり、Lは有限体F2の6次代数展開を示すものである。この関数φの全単射の性質は、a→a5が展開L(この逆がb→b38)に対する全単射関数であるという事実に由来する。条件2がまだ満たされているかどうかを確定するためには、次式が成立するかどうかを判断するだけでよい:
例えば、LがF2[X]/(X6+X+1)と同一視され、また、sとtが、それぞれF2中のLの基数(1、X、X2、X3、X4、X5)とF2における(F2)6の標準基数とに対する次の行列式とすると:
と次の6ビットから6ビットへの二次全単射関数φが得られる:
φ(v1○+v2)を計算するためには、12ビットから6ビットへの関数Ψ(x、y)=t(s(x)4・s(y))を用いるが、これは次の規則に従って12個の入力ビットの関数として6個の出力ビットを与えるものである:
(第3の変更例)
再度、Sボックスを記憶するに必要なROMサイズを減少させるためには、また、先行の変更例である変更例1と変更例2の双方の概念を同時に適用すればよい。すなわち、変更例2を、Sボックスという形態で表現される各々の非線形変換を新たに実施する際に、前記と同じ秘密全単射関数φ(6ビットから6ビットへの関数)と同じ秘密ランダム関数A(6ビットから6ビットへの関数)と共に用いる。
再度、Sボックスを記憶するに必要なROMサイズを減少させるためには、また、先行の変更例である変更例1と変更例2の双方の概念を同時に適用すればよい。すなわち、変更例2を、Sボックスという形態で表現される各々の非線形変換を新たに実施する際に、前記と同じ秘密全単射関数φ(6ビットから6ビットへの関数)と同じ秘密ランダム関数A(6ビットから6ビットへの関数)と共に用いる。
(第4の変更例)
この最後の変更例では、1つのSボックスという形態で表現された初期実施の非線形変換v′=S(v)を置換する2つのSボックスによって、変換(v′1、v′2)=S′(v1、v2)を実現する代わりに、v′1とv′2それぞれの計算を、v′1とv′2それぞれが有するビットが、v1とv2のビットで与えられる合計次数が1又は2である多項式関数によって与えられる代数関数によって実行され、次に、v′2とv′1それぞれが、テーブルによって計算される。これによって、また、ハードウエアの実行にとって必要なROMサイズを減少させることができる。
この最後の変更例では、1つのSボックスという形態で表現された初期実施の非線形変換v′=S(v)を置換する2つのSボックスによって、変換(v′1、v′2)=S′(v1、v2)を実現する代わりに、v′1とv′2それぞれの計算を、v′1とv′2それぞれが有するビットが、v1とv2のビットで与えられる合計次数が1又は2である多項式関数によって与えられる代数関数によって実行され、次に、v′2とv′1それぞれが、テーブルによって計算される。これによって、また、ハードウエアの実行にとって必要なROMサイズを減少させることができる。
したがって、図3eに示すように、DESなどの標準の暗号化計算方法によって実現される非線形変換タイプの計算ステップの場合、入力Eの役割を果たす中間変数v1〜vkのk個の部分に分割することに加えて、図3bと3dだけではなく、この標準の暗号化計算方法の場合も、当該非線形変換は、変換されたn個の出力ビットが、m個の入力ビットの関数であるアドレスのところで読み取られる変換テーブルによって記載されている、m個のビットからn個のビットへの非線形変換からなる。すなわち、本発明の手段であるこの方法によれば、分割を実行しない標準の暗号化計算方法の中間変数に適用される各非線形変換の代わりに、部分中間変数v1〜vkのすべての適用されるk×m個のビットからk×n個のビットへの部分非線形変換が用いられる。この場合、また、上記の実施形態2の変更例4を参照すると、この変換された(k−1)×n個の出力ビットは、次の関係式に従って、変数v1、v2、...、vkのk×m個の入力ビットの多項式関数として計算される:
ここで、P1とPk−1は、mビットからnビットへの多項式変換関数を示している。
次に、出力変数のn個の残余のビットv′kが、例えば、これらのn個のビットがk×m個の入力ビットの関数であるアドレスで読み取られる非線形変換テーブルを読むことによって得られる。
上記の実施形態の変更例4では、k=2、m=6、n=4が再現されている。
(第2の実施形態:トリプルDES)
トリプルDESは、秘密鍵を用いて暗号化/復号化動作を連続的に実行することからなる。
トリプルDESは、秘密鍵を用いて暗号化/復号化動作を連続的に実行することからなる。
トリプルDESアルゴリズムを説明するには、次の文書のどれかを参照すれば役に立つであろう:
ISO/IEC 8732、「Banking−Key Management(Wholesale)」、1987;
ANSI X9.17、「American National Standard、Financial Institution Key Management(Wholesale)」、1985年。
又は、次の書籍を参照されたい:
ブルース・シュナイヤー、「Applid Cryptography」、第2版、ジョン・ワイリー&サン、1996年、358ページ;
これらは、参照して本出願に組み込まれる。
ISO/IEC 8732、「Banking−Key Management(Wholesale)」、1987;
ANSI X9.17、「American National Standard、Financial Institution Key Management(Wholesale)」、1985年。
又は、次の書籍を参照されたい:
ブルース・シュナイヤー、「Applid Cryptography」、第2版、ジョン・ワイリー&サン、1996年、358ページ;
これらは、参照して本出願に組み込まれる。
この原理は、メッセージを暗号化するために、DESアルゴリズムを連続して3回用いることからなる。すなわち、最初に鍵番号1を用いて暗号化モードでDES動作を実行し、次に鍵番号2を用いて復号化モードでDES動作を実行し、最後に鍵番号1を用いて暗号化モードでもう一度DES動作を実行する。DPAタイプの攻撃は、DESの場合と同様に可能である。すなわち、最初のDES動作の第1ラウンドに付いての消費電力測定値に基づいて、鍵番号1の48ビットを発見し、次に、第2ラウンドを解析することによって、鍵番号1の残余の8ビットを発見する。鍵番号1が分かっているので、2番目のDES動作の入力が分かり、従って、同じ攻撃を適用して鍵番号2を発見することができる。
このアルゴリズムの保護は、上記の第1の実施形態で説明した単純なDESの場合に動作し得る。すなわち、同じ関数fを用いて、中間変数の「分割」、したがってアルゴリズムの同じ変換を実行する。
(第3の実施形態:RSA)
RSAは、最も有名な非対称暗号化アルゴリズムである。それは、1978年に、リベスト、シャミール及びアドルマンによって開発された。このアルゴリズムの詳細は、以下の文書を参照すれば役に立つであろう:
R.L.リベスト、A.シャミール、L.M.アドルマン、「A Method for Obtaining Digital Signatures and Public−Key Cryptosystems, Communications of the ACM,21、第2号」、120〜126ページ、1978年;
又は、次の文書を参照されたい。
ISO/IEC 9594−8/ITU−T X.509、「Information Technology−Open Systems Interconnection−The directory:Authentication Framework」;
ANSI X9.31−1、「「American National Standard、Public−Key Cryptography Using Reversible Algorithms for the Financial Services Industry」、1993年;
PKCS #1、「RSA Encryption Standard,第2版」、1998年; これは、次のアドレスで入手可能である。http://ftp.rsa.com/pub/pkcs/doc/pkcs−1v2.doc;
これらの文書又はそのHTMLページとしての公開内容は、参照して本明細書に組み込まれる。
RSAは、最も有名な非対称暗号化アルゴリズムである。それは、1978年に、リベスト、シャミール及びアドルマンによって開発された。このアルゴリズムの詳細は、以下の文書を参照すれば役に立つであろう:
R.L.リベスト、A.シャミール、L.M.アドルマン、「A Method for Obtaining Digital Signatures and Public−Key Cryptosystems, Communications of the ACM,21、第2号」、120〜126ページ、1978年;
又は、次の文書を参照されたい。
ISO/IEC 9594−8/ITU−T X.509、「Information Technology−Open Systems Interconnection−The directory:Authentication Framework」;
ANSI X9.31−1、「「American National Standard、Public−Key Cryptography Using Reversible Algorithms for the Financial Services Industry」、1993年;
PKCS #1、「RSA Encryption Standard,第2版」、1998年; これは、次のアドレスで入手可能である。http://ftp.rsa.com/pub/pkcs/doc/pkcs−1v2.doc;
これらの文書又はそのHTMLページとしての公開内容は、参照して本明細書に組み込まれる。
RSAアルゴリズムは、2つの大きい素数pとqの積である整数nと、ppcm(p−1、 q−1)と素である整数eを、e≠±1 mod ppcm(p−1、 q−1)となるように用いる。整数nとeが、公開鍵を構成する。この公開鍵の計算には、 g(x)=xe mod nで定義されるZ/nZに対して、Z/nZの関数gを用いる。秘密鍵計算は、関数g−1(y)=ydを用いるが、ここで、n又はdは、ed ≡ 1 mod ppcm(p−1、 q−1)で定義される秘密成分(秘密鍵すなわち個人鍵とも呼ばれる)である。
DPAタイプ又はHO−DPAタイプの攻撃もまた、RSAアルゴリズムの標準的実現に対する脅威となる。事実、後者は、極めてしばしば、いわゆる「二乗して乗算する」原理を用いて、xd mod nの計算を実行する。この原理とは、秘密成分dの内訳d = dm−1・2m−1 + dm−2・2m−2 + … + d1・21 + d0・20を、基数2に書き込んで、次のように計算することである。
1. z ← 1;
次に、m−1から0までの範囲のiに対して、次の計算を実行する。
2. z ← z2 mod n;
3. di=1であれば、z ← z・x mod n。
1. z ← 1;
次に、m−1から0までの範囲のiに対して、次の計算を実行する。
2. z ← z2 mod n;
3. di=1であれば、z ← z・x mod n。
この計算で、変数zが取る連続値の中で、素数は、秘密鍵dの数ビットに依存するだけであることに注意されたい。したがって、DPA攻撃を許容する基本的仮定は満たされる。これで、例えば、m−1からm−10の範囲のiに対応するアルゴリズムに付いての消費電力測定値を解析することによって、dについての10個の高位ビットを推定することが可能となる。次に、m−11からm−20の範囲のiに対応するアルゴリズムの部分に付いての消費電力測定値を用いて攻撃を継続することが可能であり、これによって、dの次の10ビットを、さらに次の10ビットをという具合に発見することができる。最終的には、秘密成分dのすべてのビットが分かる。
本発明の主題であるこの方法はまた、RSAアルゴリズムの保護にも適用される。それは、乗法群Z/nZにおける値、すなわち、計算中に発生し、また、入力データ又は出力データに依存する、自身もnを法とする逆数を有するnを法とする整数のすべてを持つ各中間変数vを、2つの変数v1とv2に分割する。k=2とし、また、関数f(v1、v2)=v=v1・v2 mod nとする。上記の説明で示したように(実施形態2「アルゴリズムの保護」を参照)、この関数fによって条件1を満たすことができる。
したがって、xを(x1、x2)と置き換え、これで、x=x1・x2 mod nとし、またzを(z1、z2)と置き換え、これで、z=z1・z2 mod nとなるようにする。実際、例えば、x1をランダムに選択して、それからx2を演繹することが可能である。ここで、「二乗して乗算する」方法の3つのステップに戻ると、次の変換が実行される。
1. ≪z ← 1≫を、≪z1 ←1、z2 ← 1≫で置き換える;
2. ≪z ← z2 mod n≫を、≪z1 ← z1 2 mod n、z2 ← z2 2 mod n≫で置き換える;
3. ≪z ← z・x mod n≫を、≪z1 ← z1・x1 mod n、z2 ← z2・x2 mod n≫で置き換える。
1. ≪z ← 1≫を、≪z1 ←1、z2 ← 1≫で置き換える;
2. ≪z ← z2 mod n≫を、≪z1 ← z1 2 mod n、z2 ← z2 2 mod n≫で置き換える;
3. ≪z ← z・x mod n≫を、≪z1 ← z1・x1 mod n、z2 ← z2・x2 mod n≫で置き換える。
関係式Z=f(z1、z2)が、計算全体にわたって「真」であることを満たすことは容易であり、これで、条件2が満たされることが分かる。
それぞれ変数z1と変数z2に対して実行される計算は、完全に独立していることに注意されたい。したがって、この2つの計算を、
連続的に、インターリーブ形式で、マルチプログラミングすれば同時並行して、又は、並行に動作する別々のプロセッサで同時に実行することが可能である。
連続的に、インターリーブ形式で、マルチプログラミングすれば同時並行して、又は、並行に動作する別々のプロセッサで同時に実行することが可能である。
Claims (20)
- 秘密鍵を用いる標準の暗号化計算方法を実現するコンピュータシステムを保護する方法であって、
a)前記標準の暗号化計算方法が、並行に実行され、前記標準の暗号化計算の結果とは別個の部分中間結果(v1〜vk)を生成する、別個の複数の暗号化計算方法の部分(PPC1〜PPCk)に分割され、
b)分割することなく前記標準の暗号化計算によって得られる最終値(v)を、前記別個の部分中間結果(v1〜vk)から再構成することを特徴とする方法。 - 前記標準の暗号化計算方法によって用いられる入力データ又は出力データに依存する中間変数又は中間結果(v)の各々が、任意の数であるk個の部分中間変数(v1〜vk)で置き換えられ、
前記中間変数(v)と部分中間変数(v1〜vk)が、関数fによってリンクされ、
v=f(v1、v2、...、vk)によって、前記中間変数(v)を再構成できることを特徴とする請求項1に記載の方法。 - 前記部分中間変数(v1〜vk)と前記中間変数(v)をリンクする関数fが、前記中間変数(v)の1つの値が分かっても、現存する(k−1)項組(v1、...、vi−1、vi+1、...、vk)が、式f(v1、...、vi、...、vk)=vを満たすように、特定の部分の値(vi)のすべてを演繹することが不可能な関数であることを特徴とする請求項2に記載の方法。
- nを法とする整数のすべてによって定義される乗法群Z/nZにおける値を有する中間変数(v)に対して、前記関数fが、nを法とする積関数f(v1、...、vk)=v1・v2・...・vk modulo nであり、前記部分中間変数(v1、...、vi、...、vk)が、前記乗法群Z/nZにおける値を有する変数であることを特徴とする請求項3に記載の方法。
- 前記関数fが、前記部分中間変数(v1、...、vi、...、vk)と前記中間変数(v)をリンクし、並行に実行される別個の暗号化計算方法の部分(PPC1〜PPCk)が、互いに独立しており、前記並行に実行される別個の暗号化計算方法の部分(PPC1〜PPCk)が、前記標準の暗号化計算方法によって用いられる入力データ又は出力データに依存する中間変数(v)を再構成することなく実行されることを特徴とする請求項3に記載の方法。
- 分割が、並行に実行される2つの別個の部分に行われることを特徴とする請求項1に記載の方法。
- 分割が、k個の部分に行われ、
変換されたn個の出力ビットが、m個の入力ビットの関数であるアドレスで読み取られる変換テーブルによって記載される、m個のビットからn個のビットへの非線形変換を用いる標準の暗号化計算方法に対して、分割することなく標準の暗号化計算方法の中間変数に適用される非線形変換の各々が、前記部分中間変数のすべてに適用されるk×m個のビットからk×n個のビットへの部分非線形変換によって置き換えられ、
前記部分非線形変換が、前記変換されたn個の出力ビットが、前記k×m個の入力ビットの関数であるアドレスで読み取られるk個の部分変換テーブルで記載されることを特徴とする請求項1に記載の方法。 - 前記k個の部分変換テーブルの内、(k−1)個の部分変換テーブルが、秘密ランダム変数を含んでいることを特徴とする請求項8に記載の方法。
- 各非線形変換テーブルを置き換えるように用いられるk個の部分変換テーブルの内、同じ(k−1)個の秘密ランダムテーブルが、毎回用いられることを特徴とする請求項8に記載の方法。
- 分割が、k個の部分に行われ、
前記変換されたn個の出力ビットが、前記m個の入力ビットの関数であるアドレスで読み取られる変換テーブルによって記載されるm個のビットからn個のビットへの非線形変換を用いる標準の暗号化計算方法に対して、分割することなく前記標準の暗号化計算方法の中間変数に適用される非線形変換が、前記部分中間変数のすべてに適用されるk×m個のビットからk×n個のビットへの部分非線形変換によって置き換えられ、
前記変換された出力ビットの内の(k−1)×n個のビットが、前記k×m個の入力ビットの多項式関数として計算され、
前記出力ビットの内の残余のn個のビットが、前記k×m個の入力ビットの関数であるアドレスで読み取られる変換テーブルを読み取ることによって得られることを特徴とする請求項1に記載の方法。 - 分割が、k個の部分に行われ、
前記変換されたn個の出力ビットが、前記m個の入力ビットの関数であるアドレスで読み取られる変換テーブルによって記載されるm個のビットからn個のビットへの非線形変換を用いる標準の暗号化計算方法に対して、分割することなく前記標準の暗号化計算方法の中間変数に適用される各非線形変換が、前記部分中間変数のすべてに適用されるk×m個のビットからk×n個のビットへの部分非線形変換によって置き換えられ、
前記部分非線形変換が、k個の変換テーブルによって記載され、
前記変換テーブルの各々が、関係式φj○f(v1、...、vk)、j∈[1、k]に従って、前記部分中間変数の関数f(v1、...、vk)に対して秘密全単射関数φ1を適用することによって得られる値を入力として受容し、
φj○f(v1、...、vk)の適用が、結果として生じる値を、直接的に評価することによって実行され、
前記結果として生じる値が、前記変換テーブルの入力に適用され、これによって、前記m個の入力ビットの関数であるアドレスで、前記変換されたn個の出力ビットを読み取ることが可能であることを特徴とする請求項2に記載の方法。 - 前記k個の部分変換テーブルの内、(k−1)個の部分変換テーブルが、秘密ランダム値を包含することを特徴とする請求項12に記載の方法。
- 各非線形変換テーブルを置き換えるように用いられるk個の部分変換テーブルの内、同じ(k−1)個の秘密ランダム変換テーブルが、毎回用いられることを特徴とする請求項12に記載の方法。
- 前記暗号化計算方法を複数の別個の暗号化計算方法の部分に分割したことに起因する様々な部分において実行される動作が、連続的に実行されることを特徴とする請求項1に記載の方法。
- 前記暗号化計算方法を複数の別個の暗号化計算方法の部分に分割したことに起因する様々な部分において実行される動作が、インタリーブ形式で実行されることを特徴とする請求項1に記載の方法。
- 前記暗号化計算方法を複数の別個の暗号化計算方法の部分に分割したことに起因する様々な部分において実行される動作が、マルチプログラミングの場合では、同時並行的に実行されることを特徴とする請求項1に記載の方法。
- 前記暗号化計算方法を複数の跋扈の暗号化計算方法の部分に分割したことに起因する様々な部分において実行される動作が、並行に動作する別々のプロセッサで同時に実行されることを特徴とする請求項1に記載の方法。
- 請求項1に記載の方法をスマートカードで利用することを特徴とする方法。
- DES、トリプルDES及びRSAアルゴリズムによってサポートされる暗号化計算方法を保護するために、請求項1に記載の方法を利用することを特徴とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9901289A FR2789535B1 (fr) | 1999-02-04 | 1999-02-04 | Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000597921A Division JP2002536911A (ja) | 1999-02-04 | 2000-02-03 | 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010072664A true JP2010072664A (ja) | 2010-04-02 |
Family
ID=35004509
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000597921A Pending JP2002536911A (ja) | 1999-02-04 | 2000-02-03 | 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 |
JP2009297838A Pending JP2010072664A (ja) | 1999-02-04 | 2009-12-28 | 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000597921A Pending JP2002536911A (ja) | 1999-02-04 | 2000-02-03 | 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6658569B1 (ja) |
EP (1) | EP1068695B1 (ja) |
JP (2) | JP2002536911A (ja) |
AT (1) | ATE464714T1 (ja) |
DE (1) | DE60044168D1 (ja) |
ES (1) | ES2344399T3 (ja) |
FR (1) | FR2789535B1 (ja) |
PT (1) | PT1068695E (ja) |
WO (1) | WO2000046953A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2792141B1 (fr) * | 1999-04-09 | 2001-06-15 | Bull Cp8 | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique |
FR2799851B1 (fr) * | 1999-10-14 | 2002-01-25 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa |
DE10000503A1 (de) * | 2000-01-08 | 2001-07-12 | Philips Corp Intellectual Pty | Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb |
EP1118924B1 (de) * | 2000-01-19 | 2016-07-20 | Infineon Technologies AG | Verfahren zum betrieb einer mikroprozessoranordnung und mikroprozessoranordnung |
FR2804524B1 (fr) * | 2000-01-31 | 2002-04-19 | Oberthur Card Systems Sas | Procede d'execution d'un protocole cryptographique entre deux entites electroniques |
JP3926532B2 (ja) * | 2000-03-16 | 2007-06-06 | 株式会社日立製作所 | 情報処理装置、情報処理方法、及びカード部材 |
JP4640663B2 (ja) * | 2000-06-30 | 2011-03-02 | ネッツエスアイ東洋株式会社 | 秘密情報生成装置及び方法 |
DE10061997A1 (de) | 2000-12-13 | 2002-07-18 | Infineon Technologies Ag | Kryptographieprozessor |
FR2818847A1 (fr) * | 2000-12-26 | 2002-06-28 | St Microelectronics Sa | Circuit logique a polarite variable |
JP4596686B2 (ja) | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
CN1640051B (zh) * | 2002-03-07 | 2011-05-18 | 艾斯奥托公司 | 使具有秘密密钥的电子密码装置安全的方法 |
EP1387519A3 (fr) * | 2002-07-09 | 2004-02-18 | Cp8 | Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs |
US8191136B2 (en) * | 2002-11-04 | 2012-05-29 | Riverbed Technology, Inc. | Connection based denial of service detection |
JP2004212828A (ja) * | 2003-01-08 | 2004-07-29 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2005056413A (ja) * | 2003-08-01 | 2005-03-03 | Stmicroelectronics Sa | 複数の同じ計算の保護 |
US20050114658A1 (en) * | 2003-11-20 | 2005-05-26 | Dye Matthew J. | Remote web site security system |
US7899190B2 (en) | 2004-04-16 | 2011-03-01 | Research In Motion Limited | Security countermeasures for power analysis attacks |
JP2005333242A (ja) * | 2004-05-18 | 2005-12-02 | Pioneer Electronic Corp | 鍵管理システム、及び再生装置 |
US7848514B2 (en) * | 2004-05-24 | 2010-12-07 | Research In Motion Limited | Table masking for resistance to power analysis attacks |
JP5026275B2 (ja) * | 2004-10-28 | 2012-09-12 | イルデト・コーポレート・ビー・ヴイ | 暗号化関数を難読化するための方法及びシステム |
US8090956B2 (en) * | 2005-03-25 | 2012-01-03 | Panasonic Corporation | Program converting device, secure processing device, computer program, and recording medium |
EP1876577A1 (en) * | 2005-04-28 | 2008-01-09 | Matsushita Electric Industrial Co., Ltd. | Program converter, encrypting device, and encrypting method |
ATE372619T1 (de) * | 2005-05-10 | 2007-09-15 | Research In Motion Ltd | Schlüsselmaskierung für kryptographische prozesse |
KR101194837B1 (ko) * | 2005-07-12 | 2012-10-25 | 삼성전자주식회사 | 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법 |
CN101300775B (zh) * | 2005-10-31 | 2012-12-19 | 松下电器产业株式会社 | 安全处理装置、安全处理方法、加密信息嵌入方法、程序、存储介质和集成电路 |
JP2007189659A (ja) * | 2005-12-15 | 2007-07-26 | Toshiba Corp | 暗号化装置、暗号化方法及び暗号化プログラム |
US7720225B2 (en) * | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
FR2941342B1 (fr) * | 2009-01-20 | 2011-05-20 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve. |
US8615078B2 (en) * | 2009-08-21 | 2013-12-24 | Electronics And Telecommunications Research Institute | Method and apparatus for processing F-function in seed encryption system |
US8619985B2 (en) | 2010-04-27 | 2013-12-31 | Research In Motion Limited | Table splitting for cryptographic processes |
CN101848081A (zh) * | 2010-06-11 | 2010-09-29 | 中国科学院软件研究所 | 一种s盒构造方法及s盒 |
JP5060606B2 (ja) | 2010-09-17 | 2012-10-31 | 株式会社東芝 | 暗号化装置 |
US9342712B2 (en) * | 2012-06-08 | 2016-05-17 | Advanced Micro Devices, Inc. | Method and system for accelerating cryptographic processing |
JP6365076B2 (ja) * | 2014-07-31 | 2018-08-01 | 大日本印刷株式会社 | データ変換装置 |
JP6617375B2 (ja) * | 2018-05-28 | 2019-12-11 | 大日本印刷株式会社 | データ変換装置 |
US10892891B2 (en) * | 2019-03-13 | 2021-01-12 | Digital 14 Llc | System, method, and computer program product for zero round trip secure communications based on two noisy secrets |
US10951415B2 (en) * | 2019-03-13 | 2021-03-16 | Digital 14 Llc | System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme |
FR3110311B1 (fr) * | 2020-05-14 | 2022-07-01 | Zama | cryptographiques d’évaluation de fonctions à valeurs réelles sur des données chiffrées |
FR3134909B1 (fr) | 2022-04-25 | 2024-06-21 | Commissariat Energie Atomique | Protection contre les attaques par canal auxiliaire a l’aide d’un masquage carre |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02259689A (ja) * | 1989-03-30 | 1990-10-22 | Matsushita Electric Ind Co Ltd | データ転置装置 |
JPH0651698A (ja) * | 1992-06-03 | 1994-02-25 | Nippon Telegr & Teleph Corp <Ntt> | データ攪拌装置およびデータ攪拌方法 |
WO1997044935A1 (en) * | 1996-05-20 | 1997-11-27 | Philips Electronics N.V. | Cryptographic method and apparatus for non-linearly merging a data block and a key |
JPH10153955A (ja) * | 1996-11-25 | 1998-06-09 | Nippon Signal Co Ltd:The | 暗号装置 |
JPH117239A (ja) * | 1997-04-23 | 1999-01-12 | Matsushita Electric Ind Co Ltd | 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体 |
JPH1124559A (ja) * | 1997-06-30 | 1999-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
JPH11282345A (ja) * | 1998-01-27 | 1999-10-15 | Nippon Telegr & Teleph Corp <Ntt> | デ―タ変換装置及びそれを実施するプログラムが記録された記録媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4993068A (en) * | 1989-11-27 | 1991-02-12 | Motorola, Inc. | Unforgeable personal identification system |
US5588059A (en) * | 1995-03-02 | 1996-12-24 | Motorola, Inc. | Computer system and method for secure remote communication sessions |
US5850443A (en) * | 1996-08-15 | 1998-12-15 | Entrust Technologies, Ltd. | Key management system for mixed-trust environments |
US5991415A (en) * | 1997-05-12 | 1999-11-23 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for protecting public key schemes from timing and fault attacks |
-
1999
- 1999-02-04 FR FR9901289A patent/FR2789535B1/fr not_active Expired - Fee Related
- 1999-06-17 US US09/334,687 patent/US6658569B1/en not_active Expired - Lifetime
-
2000
- 2000-02-03 EP EP00902703A patent/EP1068695B1/fr not_active Expired - Lifetime
- 2000-02-03 JP JP2000597921A patent/JP2002536911A/ja active Pending
- 2000-02-03 AT AT00902703T patent/ATE464714T1/de not_active IP Right Cessation
- 2000-02-03 ES ES00902703T patent/ES2344399T3/es not_active Expired - Lifetime
- 2000-02-03 WO PCT/FR2000/000258 patent/WO2000046953A1/fr active Application Filing
- 2000-02-03 DE DE60044168T patent/DE60044168D1/de not_active Expired - Lifetime
- 2000-02-03 PT PT00902703T patent/PT1068695E/pt unknown
-
2009
- 2009-12-28 JP JP2009297838A patent/JP2010072664A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02259689A (ja) * | 1989-03-30 | 1990-10-22 | Matsushita Electric Ind Co Ltd | データ転置装置 |
JPH0651698A (ja) * | 1992-06-03 | 1994-02-25 | Nippon Telegr & Teleph Corp <Ntt> | データ攪拌装置およびデータ攪拌方法 |
WO1997044935A1 (en) * | 1996-05-20 | 1997-11-27 | Philips Electronics N.V. | Cryptographic method and apparatus for non-linearly merging a data block and a key |
JPH11509940A (ja) * | 1996-05-20 | 1999-08-31 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | データブロックおよび鍵を非線形的に結合する暗号方法および装置 |
JPH10153955A (ja) * | 1996-11-25 | 1998-06-09 | Nippon Signal Co Ltd:The | 暗号装置 |
JPH117239A (ja) * | 1997-04-23 | 1999-01-12 | Matsushita Electric Ind Co Ltd | 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体 |
JPH1124559A (ja) * | 1997-06-30 | 1999-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
JPH11282345A (ja) * | 1998-01-27 | 1999-10-15 | Nippon Telegr & Teleph Corp <Ntt> | デ―タ変換装置及びそれを実施するプログラムが記録された記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
US6658569B1 (en) | 2003-12-02 |
ATE464714T1 (de) | 2010-04-15 |
PT1068695E (pt) | 2010-07-13 |
EP1068695A1 (fr) | 2001-01-17 |
EP1068695B1 (fr) | 2010-04-14 |
JP2002536911A (ja) | 2002-10-29 |
DE60044168D1 (de) | 2010-05-27 |
FR2789535B1 (fr) | 2001-09-28 |
WO2000046953A1 (fr) | 2000-08-10 |
ES2344399T3 (es) | 2010-08-26 |
FR2789535A1 (fr) | 2000-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010072664A (ja) | 物理的解析によってコンピュータシステムを攻撃から保護する秘密鍵暗号化方法 | |
KR101255393B1 (ko) | 타원 곡선 점 곱셈 | |
CN1211977C (zh) | 具有通过密钥再分进行存取保护的便携式数据存储介质 | |
Barreto et al. | Subgroup security in pairing-based cryptography | |
Barsoum et al. | Integrity verification of multiple data copies over untrusted cloud servers | |
EP3632032B1 (en) | Cryptographic device and method | |
CN107040362A (zh) | 模乘设备和方法 | |
US20060098814A1 (en) | Method for communicating securely over an insecure communication channel | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
WO2006054559A1 (ja) | 暗号処理演算装置 | |
KR20080113277A (ko) | 프로그램 난독화시스템, 프로그램 난독화장치 및 프로그램 난독화방법 | |
Kundu et al. | Higher-order masked saber | |
EP4000216B1 (en) | Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium | |
JP2003513491A (ja) | 物理的分析によるハッキングに対する母数指数化に基づく電子暗号ユニットの安全保護方法 | |
US11741242B2 (en) | Cryptographic pseudonym mapping method, computer system computer program and computer-readable medium | |
Oliveira et al. | Fast point multiplication algorithms for binary elliptic curves with and without precomputation | |
Taleb | Prospective applications of blockchain and bitcoin cryptocurrency technology | |
Coron et al. | Fast evaluation of polynomials over binary finite fields and application to side-channel countermeasures | |
Ruzai et al. | Increment of insecure RSA private exponent bound through perfect square RSA diophantine parameters cryptanalysis | |
Liu et al. | Image Encryption Technology Based on Fractional Two‐Dimensional Triangle Function Combination Discrete Chaotic Map Coupled with Menezes‐Vanstone Elliptic Curve Cryptosystem | |
KR20030075146A (ko) | 암호 체계의 비밀 키 저장 및 복원 방법과 장치 | |
Ruzai et al. | New simultaneous Diophantine attacks on generalized RSA key equations | |
Takayasu et al. | Partial key exposure attacks on CRT-RSA: general improvement for the exposed least significant bits | |
Tsoutsos et al. | Efficient detection for malicious and random errors in additive encrypted computation | |
KR101990861B1 (ko) | 논-모듈러 승산기, 논-모듈러 승산 방법 및 계산 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120703 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121127 |