JPWO2007046402A1 - 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 - Google Patents
情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 Download PDFInfo
- Publication number
- JPWO2007046402A1 JPWO2007046402A1 JP2007540998A JP2007540998A JPWO2007046402A1 JP WO2007046402 A1 JPWO2007046402 A1 JP WO2007046402A1 JP 2007540998 A JP2007540998 A JP 2007540998A JP 2007540998 A JP2007540998 A JP 2007540998A JP WO2007046402 A1 JPWO2007046402 A1 JP WO2007046402A1
- Authority
- JP
- Japan
- Prior art keywords
- value
- montgomery
- unit
- integer
- multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 164
- 238000004590 computer program Methods 0.000 title claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 167
- 230000009466 transformation Effects 0.000 claims description 110
- 238000004364 calculation method Methods 0.000 claims description 86
- 238000003860 storage Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 41
- 238000000605 extraction Methods 0.000 claims description 38
- 230000003252 repetitive effect Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 description 40
- 238000004458 analytical method Methods 0.000 description 24
- 238000012986 modification Methods 0.000 description 22
- 230000004048 modification Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000010354 integration Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 239000000470 constituent Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 239000011111 cardboard Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
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/728—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 using Montgomery reduction
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- 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
-
- 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/7261—Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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]
-
- 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/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
しかしながら、暗号技術により何かを守ろうとすると、暗号化を打ち破ってそれを入手しようとする者が現れる。例えば、秘密鍵の値により、暗号処理時の計算時間や消費電力などが異なることを利用して、秘密鍵を求めるサイドチャネル攻撃が問題となっている(例えば、非特許文献1)。
その第1の方法では、秘密鍵の当該ビットが「0」のときには、「1」と乗算する(例えば、非特許文献2)。「1」と乗算しても結果は変わらないため、実質的に乗算を実施していないのと同じである。その上、秘密鍵のビット値に依存せずに乗算が行われるので、乗算の有無により、秘密鍵を求めることはできない。
現実の脅威「サイドチャネル解析」(1)、日経エレクトロニクス2005.7.18号 "RSA暗号の電力解析法による攻撃とその対策"(Power Analysis and Countermeasure of RSA Cryptosystem)、電子情報通信学会論文誌A Vol.J88−A、 No.5 2005 P.L.Montgomery, "Modular Multiplication without Trial Division," Mathematics of Computation,Vol.44,No.170,pp.519-521 (1985)
また、第2の方法については、乗算のときを狙って、例えば、電源電圧にスパイクノイズを与える等の、故意にエラーを生じさせるエラー攻撃により、秘密鍵が解析される可能性がある。詳細には、乗算の際にエラーを起こし、その影響が出力に表れないと、結果を使っていない、つまり対応する秘密鍵のビットが「0」であったと解析できる。反対に、エラーの影響が出力に表れると、秘密鍵の対応するビットが「1」であったと解析できる。この解析は、エラー攻撃に対する通常の対策である検算機能を入れていたとしても、可能である。
ここで、前記情報セキュリティ装置は、RSA方式に基づいてRSA暗号文を復号するRSA復号装置、又はRSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名装置であり、さらに、前記入力値としてRSA暗号文を取得し、又は前記入力値として署名対象のメッセージを取得する取得手段と、秘密鍵として前記整数を記憶している記憶手段と、前記RSA暗号文から復号して得られる復号文として、又は前記メッセージに対する署名データとして、算出された前記べき乗値を出力する出力手段とを含むとしてもよい。
ここで、前記情報セキュリティ装置は、入力値を取得する取得手段と、整数を記憶している記憶手段と、演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、前記記憶手段から前記整数の上位桁から1個の桁の値を抽出する抽出手段と、前記演算値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記演算値変数に上書きする二乗手段と、取得した桁の値が0であるか否かを判断する前記判断手段と、取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段とを備えるとしてもよい。
ここで、前記情報セキュリティ装置は、さらに、値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いるとしてもよい。
この構成によると、モンゴメリ変換手段により値1に対するモンゴメリ変換値を算出し、乗算手段は、算出されたモンゴメリ変換値を用いるので、値1に対するモンゴメリ変換値の算出を複数回行うことなく、演算回数を削減することができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、「1」についてのハミング重みの偏りをさらに避けることができる。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
ここで、前記情報セキュリティ装置は、さらに、前記法設定手段は、さらに、前記法としての値の乱数倍の法を設定し、前記モンゴメリ変換手段は、法設定手段によりさらに設定された前記法において、値2のk乗値を算出するとしてもよい。
ここで、前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
ここで、前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更するとしてもよい。
ここで、前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、繰返しの途中のプロセスにおけるSPAの結果を、繰返しの別のプロセスにおいて使用することを困難とすることができる。
この構成によると、外部からの指示の前におけるSPAの結果を、外部からの指示の後において使用することを困難とすることができる。
ここで、前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
ここで、前記情報セキュリティ装置は、さらに、前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行うとしてもよい。
この構成によると、取得した桁の値が0以外であると判断される場合においても、SPAに対抗して、不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、入力値についてのハミング重みの偏りをさらに避けることができる。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
10 ネットワーク
100 ICカード
101 公開鍵復号部
102 入出力部
111 第1モンゴメリ変換部
112 第2モンゴメリ変換部
113 秘密鍵格納部
114 制御部
115 二乗算部
116 乗算部
117 法設定部
118 整数設定部
119 設定制御部
120 モンゴメリ逆変換部
200 DVDプレーヤ
201 モニタ
202 スピーカ
211 通信部
212 入出力部
213 復号部
214 復号部
215 再生部
216 ドライブ部
300 DVD
400 サーバ装置
1.コンテンツ再生システム1の構成
コンテンツ再生システム1は、図1に示すように、ICカード100、DVDプレーヤ200及びサーバ装置400から構成されている。DVDプレーヤ200及びサーバ装置400は、ネットワーク10を介して相互に接続されている。
C=Le mod p
なお、RSAの公開鍵の生成については、周知であるので、説明を省略する。
DVDプレーヤ200は、図2に示すように、通信部211、入出力部212、復号部213、復号部214、再生部215及びドライブ部216から構成されており、モニタ201及びスピーカ202がDVDプレーヤ200に接続されている。
ICカード100は、公開鍵復号部101及び入出力部102から構成されている。ICカード100の入出力部102は、DVDプレーヤ200から暗号化ライセンス鍵Cを受け取り、公開鍵復号部101は、入力データとして受け取った暗号化ライセンス鍵Cを、後述するようにして復号して、出力データとして復号ライセンス鍵を生成し、入出力部102は、生成した復号ライセンス鍵をDVDプレーヤ200へ出力する。
2.公開鍵復号部101の構成
公開鍵復号部101は、図3に示すように、記憶部121、第1モンゴメリ変換部111、第2モンゴメリ変換部112、秘密鍵格納部113、制御部114、二乗算部115、乗算部116、法設定部117、整数設定部118、設定制御部119及びモンゴメリ逆変換部120から構成されている。
(1) 法設定部117、整数設定部118及び設定制御部119
法設定部117は、設定制御部119の制御により、モンゴメリ変換、2乗算、乗算で用いる法pを設定する。法設定部117は、設定した法pを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
ここで設定された整数kと法pとは、以降の、モンゴメリ変換、二乗算、乗算及びモンゴメリ逆変換で用いられる。
記憶部121は、入出力部102から入力データCを受け取り、受け取った入力データCを記憶する。
第1モンゴメリ変換部111は、記憶部121から入力データCを読み出し、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、入力データC、法p及び整数kを用いて、次式により、Cのモンゴメリ変換値Bを算出する。
次に、第1モンゴメリ変換部111は、算出したモンゴメリ変換値Bを制御部114へ出力する。
また、第2モンゴメリ変換部112は、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、法p及び整数kを用いて、次式により、「1」のモンゴメリ変換値Aを算出する。
次に、第2モンゴメリ変換部112は、算出したモンゴメリ変換値Aを制御部114へ出力する。
なお、以降ではモンゴメリ変換をMon_{k,p}(X)と表記する。
Mon_{k,p}(X) = X×2k mod p (式1)
なお、変換関数の{k,p}は、モンゴメリ変換値が、整数k、法pに依存することを示す。この表記を用いると、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bは、Mon_{k,p}(C)であり、第2モンゴメリ変換部112により出力されるモンゴメリ変換値Aは、Mon_{k,p}(1)である。
秘密鍵格納部113は、公開鍵暗号の秘密鍵Sを格納している。秘密鍵Sは、安全性確保のため少なくとも2048ビット以上は必要とされている。
(4)抽出部122、制御部114、二乗算部115及び乗算部116
抽出部122は、制御部114の指示により、秘密鍵格納部113に格納されている秘密鍵Sの各ビットの上位から1ビットずつ抽出し、抽出したビットの値を制御部114へ出力する。
制御部114は、上記繰り返し制御とともに、秘密鍵の当該ビットが「1」のときには、第1モンゴメリ変換部111の出力値を選択し、「0」のときには第2モンゴメリ変換部112の出力値を選択する。
ここでのモンゴメリ領域の乗算は、モンゴメリ領域に変換された2個の入力値、例えば、Mon_{k,p}(X)とMon_{k,p}(Y)の積に対して、モンゴメリリダクション処理を行い、モンゴメリ領域の乗算結果Mon_{k,p}(Z)=Mon_{k,p}(X×Y)を求めるものである。2乗算は、上記XとYが同じ場合に相当する。
なお、仮に法のビット数が2048ビットである場合、二乗算部115と乗算部116を、2048ビットの乗算器で実装するのは実装規模が巨大となり現実的でない。そのため、例えば32ビット程度の乗算器を繰り返して用いる多倍長演算方法で実現するのが、一般的である。
モンゴメリ逆変換部120は、モンゴメリ領域での2乗算と乗算との繰り返しの最終結果に、モンゴメリ逆変換を施して、出力データMを求める。以降ではモンゴメリ逆変換を
Mon_{k,p}-1( )と表記する。
Mon_{k,p}-1(X)=X×(2k )-1 mod p (式2)
なお、モンゴメリ変換とモンゴメリ逆変換について、式3が成り立つ。
モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。
3.公開鍵復号部101の動作
公開鍵復号部101による高速べき乗剰余演算の動作について、図4に示すフローチャートを用いて説明する。
制御部114は、第2モンゴメリ変換部112によるモンゴメリ変換値Aを選択し、演算結果の値を格納する演算値領域に設けられた変数としての演算結果Wに、初期値として選択したモンゴメリ変換値Aを書き込む。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS103)。
秘密鍵Sの最上位のビットから最下位のビットまで、前記抽出が完了したら(ステップS104でYES)、制御部114は、モンゴメリ逆変換部120に対して演算結果Wのモンゴメリ逆変換をするように制御し、モンゴメリ逆変換部120は、演算結果Wに対して、モンゴメリ逆変換を施して、出力データMを生成する。
次に、モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。ここで、M=CS mod pである(ステップS109)。こうして、公開鍵復号部101による高速べき乗剰余演算が終了する。
抽出が完了していない場合(ステップS104でNO)、制御部114は、二乗算部115に対して演算結果Wをモンゴメリ領域で2乗するように制御し、二乗算部115は、演算結果Wをモンゴメリ領域で2乗し、その2乗値を演算結果Wに上書きする。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS106)、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bを選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第1モンゴメリ変換部111により出力されるモンゴメリ変換値B=Mon_{k,p}(C)とを乗算し、得られた値を演算結果Wへ上書きする。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、制御部114は、第2モンゴメリ変換部112の出力値を選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第2モンゴメリ変換部112の出力値であるA=Mon_{k,p}(1)とを乗算し、得られた値を演算結果Wへ上書きする。
3.実施の形態の効果
まず、図4に示すフローチャートから明らかなように、秘密鍵Sの当該ビットが「1」であるか又は「0」であるかにかかわらず、必ずモンゴメリの乗算部116は動作する。そのため、乗算の有無で解析を行う攻撃であるSPAは困難である。
なお、その変更タイミングは頻繁であるほど、さらに、その整数kの取りうるバラエティが多いほど、ダミー乗算を区別することは困難であり安全性が向上する。しかし、kをむやみに大きくとると1回の2乗算や乗算の処理時間が一般には増加するため、どの程度のバラエティをもったkの大きさにするのか、あるいは変更のタイミングをどう設定するのかは、アプリケーションに必要とされる速度と安全性に依存して決定する。図3における設定制御部119がこれらの制御をする。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)公開鍵復号部101による上記とは別の高速べき乗剰余演算の動作について、図5に示すフローチャートを用いて説明する。
次に、第2モンゴメリ変換部112は、モンゴメリ変換値yを算出する。
yは、演算結果の値を格納するための演算値領域に設けられる変数である。
なお、ここでは、「Mon_{k,p}(1)」を更に簡略に「M(1)」と表現している(ステップS202)。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS203)。
抽出が完了していない場合(ステップS204でNO)、二乗算部115は、次式による二乗算を行う。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS206)、乗算部116は、次式による乗算を行う。
y={y×M(C)}×R-1 mod r×p (ステップS207)。
次に、制御部114は、制御をステップS203へ移す。
y={y×M(1)}×R-1 mod r×p (ステップS208)。
次に、制御部114は、制御をステップS103へ移す。
この変形例では、公開鍵復号部101は、モンゴメリ逆変換部120を含んでない。
また、複数の入力データに対して同じkを用いてもよい。次の複数の入力データに対して、別の同じ整数を用いてもよい。
第1及び第2モンゴメリ変換部において用いられる法についても、上記と同様に、入力データごとにランダムに変更してもよいし、複数の入力データに対して同じ法を用いてもよいし、次の複数の入力データに対して、別の同じ整数を用いてもよいし、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよいし、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
2k mod (r×p)を出力する。
このことにより、第1モンゴメリ変換部111あるいは第2モンゴメリ変換部112のいずれを使用しているのかを区別することがよりいっそう困難となり安全性が向上する。
このように、第1モンゴメリ変換部111の法と、第2モンゴメリ変換部112の法とに対して独立して設定されるとしてもよい。
なお、モンゴメリ逆変換部120の法は、pのままである。
(c)上記(a)(b)において、第1モンゴメリ変換部111においてpの乱数倍の法(第1の法)が用いられ、第2モンゴメリ変換部112においてpの別の乱数倍の法(第2の法)が用いられる場合、つまり、第1の法と第2の法とが異なる場合には、二乗算部115と乗算部116とにおいて用いられる法は、第1の法と第2の法の公倍数とし、モンゴメリ逆変換部120において用いられる法は、pのままとすればよい。
例えば、2ビットごとの処理であれば、二乗算部115では2回の2乗算を行い、制御部114では、秘密鍵の2ビットに対応して4種類のモンゴメリ変換部からの出力値を選択し、選択した出力値を乗算部116で乗算する。
ここで、2ビットが「00」のとき、対応するモンゴメリ変換部は、「1」のモンゴメリ変換値を出力し、2ビットが「01」のとき、対応するモンゴメリ変換部は、「C」のモンゴメリ変換値を出力する。また、2ビットが「10」のとき、対応するモンゴメリ変換部は、「C2 」のモンゴメリ変換値を出力し、2ビットが「11」のとき、対応するモンゴメリ変換部は、「C3 」のモンゴメリ変換値を出力する。
また、本実施の形態では、秘密鍵を上位から処理するアルゴリズムを用いているが、下位から処理するものであってもよい。この場合には、入力データに対応したモンゴメリ変換値を繰り返し2乗し、秘密鍵の対応するビットが1のときには、前記2乗演算値を乗算し、0のときには、本実施の形態と同様に、整数kと法pから求められる値を用いたダミー乗算を行う。
図4に示すステップS103に代えて、ステップS103aにおいて、制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最下位から1ビットずつ抽出を試みる。
抽出が完了していない場合(ステップS104aでNO)、図4に示すステップS105に代えて、ステップS105aにおいて、制御部114は、二乗算部115に対して入力データCをモンゴメリ領域で2乗するように制御し、二乗算部115は、入力データCをモンゴメリ領域で2乗し、その2乗値を入力データCに上書きする。
(6)本実施の形態では、RSA暗号の復号処理で説明したが、次に示すように、RSA署名の署名生成に適用してもよい。
RSAの鍵生成を行う。RSAの鍵生成は、RSA暗号の場合と同じであるので詳細を省略する。
署名生成装置は、次式により、文書mに対して、署名データsを生成する。
s=h(m)d mod p
ここで、h( )は、一方向性ハッシュ関数である。
本発明は、前記署名生成装置において、上記の実施の形態と同様にして適用される。前記署名生成装置は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の確実な処理を行う情報セキュリティ装置である。
h(m)=se mod p
また、本発明は、RSA暗号の暗号処理において、公開鍵を秘匿するようなアプリケーションの場合に、適用することができる。
さらに、楕円曲線暗号や超楕円曲線暗号における、秘密鍵を用いた処理におけるSPA対策としても用いることができる。
(a)実施の形態及び変形例は、秘密のメッセージ伝送において適用される。
本実施の形態において、秘密のメッセージ伝送の一例として、ライセンス鍵を秘密に伝送する場合について説明した。
上述したように、ICカード100は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の安全な処理を行う情報セキュリティ装置である。ここで、「安全」とは、メッセージが送信者及び受信者以外の第三者に知られないように秘密にすることをいう。
上記の例において、コンテンツを暗号化及び復号するためのコンテンツ鍵を、実施の形態に示す秘密通信の対象としてもよい。この場合、コンテンツ鍵は、実施の形態に示す方法と同様にして、暗号化され、また復号される。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、ICカードは、電子マネーを記憶しており、利用者が、商品を購入する際に、ICカードは、商品の購入額に相当する電子マネーを暗号化して送信し、また、内部に記憶している電子マネーから送信した分を減じる。商店に設置されるレジスタ装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを再生し、記憶する。
ここで、「確実」とは、例えば、メッセージが自称どおりの人物によって送られたこと、またメッセージが改竄されなかったことである。また、例えば、データへのアクセス権を持つこと、施設へのアクセス権(入室権)を持つこと、又は自分が主張どおりの人物であることである。
鍵交換の典型的な方法として、DH(ディフィーヘルマン)鍵交換という方法がある。ここでは、鍵を交換しあうそれぞれが、秘密のべき数を任意に生成し、これを用いてべき乗演算を行う。
(d)実施の形態及び変形例は、零知識証明において適用される。零知識証明とは、例えば、ある人が、数論的あるいは組合せ論的問題を解くことに成功したことを、解が何であるかのわずかの情報さえ与えることなく、他人にこのことを納得させることを言う。
(8)本発明は、入力データと秘密鍵を使って、定められた法における乗算を繰り返してべき乗剰余計算を行う情報セキュリティ装置である。前記情報セキュリティ装置は、前記入力データに対応したモンゴメリ変換値を求める第1のモンゴメリ変換部と、1のモンゴメリ変換値を求める第2のモンゴメリ変換部と、秘密鍵のビットが0ならば、前記第2のモンゴメリ変換部の出力を選択し、そうでなければ前記第1のモンゴメリ変換部の出力を選択する制御部と、これまで計算した結果と前記制御部で選択した値を用いて乗算を行う乗算部を備えており、前記法をpとし、pの有効ビット数より大きな整数をkとするとき、前記第2のモンゴメリ変換部は、前記pを法として、前記kをべきとする2のべき乗値を出力する。この情報セキュリティ装置によると、第2のモンゴメリ変換部の出力(モンゴメリ領域での1)は、整数kと法pに依存して決定される。そのため、ハミング重みに偏りはなく、電力変化を用いて、乗算の入力として第1のモンゴメリ変換部の出力を用いたのか、第2のモンゴメリ変換部の出力を用いたのかを区別することは困難である。
ここで、前記第2のモンゴメリ変換部は、前記pの乱数倍を法として、前記kをべきとする2のべき乗値を出力すると構成してもよい。この構成によると、ランダムに選択される法の値に依存して、第2のモンゴメリ変換部の出力が変わる。そのため、複数入力データにわたり、電力変化の相関を計算する攻撃に対して安全性が向上する。
ここで、前記pの乱数倍を新たに法とする法変更部を備え、設定した法を用いて前記第1のモンゴメリ変換部、第2のモンゴメリ変換部および前記乗算部にて所定の計算が処理されると構成してもよい。この構成によると法変更部で変更される法に依存して、第1のモンゴメリ変換部、第2のモンゴメリ変換部のみならず、乗算部で用いる法も変換されるため、よりいっそう電力変化と秘密鍵の相関が小さくなり安全性が向上する。
(9)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。つまり、前記マイクロプロセッサは、前記コンピュータプログラムに含まれる各命令を1個ずつ読み出し、読み出した命令を解読し、解読結果に従って動作する。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
(11)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(13)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明を構成する各装置は、秘密のメッセージ伝送や認証を必要とするあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
その第1の方法では、秘密鍵の当該ビットが「0」のときには、「1」と乗算する(例えば、非特許文献2)。「1」と乗算しても結果は変わらないため、実質的に乗算を実施していないのと同じである。その上、秘密鍵のビット値に依存せずに乗算が行われるので、乗算の有無により、秘密鍵を求めることはできない。
現実の脅威「サイドチャネル解析」(1)、日経エレクトロニクス2005.7.18号 "RSA暗号の電力解析法による攻撃とその対策"(Power Analysis and Countermeasure of RSACryptosystem)、電子情報通信学会論文誌A Vol.J88−A、 No.5 2005 P.L.Montgomery, "Modular Multiplicationwithout Trial Division," Mathematics ofComputation,Vol.44,No.170,pp.519-521 (1985)
ここで、前記情報セキュリティ装置は、さらに、値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いるとしてもよい。
この構成によると、モンゴメリ変換手段により値1に対するモンゴメリ変換値を算出し、乗算手段は、算出されたモンゴメリ変換値を用いるので、値1に対するモンゴメリ変換値の算出を複数回行うことなく、演算回数を削減することができる。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、「1」についてのハミング重みの偏りをさらに避けることができる。
この構成によると、確実にモンゴメリ変換値を算出することができる。
この構成によると、「1」についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
ここで、前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更するとしてもよい。
ここで、前記法設定手段は、入力値を取得する毎に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
ここで、前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更するとしてもよい。
ここで、前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
ここで、前記整数設定手段は、外部からの指示により、前記整数kの値をランダムに変更するとしてもよい。
ここで、前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
ここで、前記情報セキュリティ装置は、さらに、前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行うとしてもよい。
この構成によると、取得した桁の値が0以外であると判断される場合においても、SPAに対抗して、不正な解析を困難にすることができる。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、入力値についてのハミング重みの偏りをさらに避けることができる。
この構成によると、確実にモンゴメリ変換値を算出することができる。
この構成によると、入力値についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
1.コンテンツ再生システム1の構成
コンテンツ再生システム1は、図1に示すように、ICカード100、DVDプレーヤ200及びサーバ装置400から構成されている。DVDプレーヤ200及びサーバ装置400は、ネットワーク10を介して相互に接続されている。
なお、RSAの公開鍵の生成については、周知であるので、説明を省略する。
次に、サーバ装置400は、生成した暗号化ライセンス鍵Cを、DVDプレーヤ200の要求により、ネットワーク10を介して、DVDプレーヤ200へ送信する。
2.公開鍵復号部101の構成
公開鍵復号部101は、図3に示すように、記憶部121、第1モンゴメリ変換部111、第2モンゴメリ変換部112、秘密鍵格納部113、制御部114、二乗算部115、乗算部116、法設定部117、整数設定部118、設定制御部119及びモンゴメリ逆変換部120から構成されている。
法設定部117は、設定制御部119の制御により、モンゴメリ変換、2乗算、乗算で用いる法pを設定する。法設定部117は、設定した法pを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
(2)記憶部121、第1モンゴメリ変換部111及び第2モンゴメリ変換部112
記憶部121は、入出力部102から入力データCを受け取り、受け取った入力データCを記憶する。
次に、第1モンゴメリ変換部111は、算出したモンゴメリ変換値Bを制御部114へ出力する。
次に、第2モンゴメリ変換部112は、算出したモンゴメリ変換値Aを制御部114へ出力する。
Mon_{k,p}(X) = X×2k mod p (式1)
なお、変換関数の{k,p}は、モンゴメリ変換値が、整数k、法pに依存することを示す。この表記を用いると、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bは、Mon_{k,p}(C)であり、第2モンゴメリ変換部112により出力されるモンゴメリ変換値Aは、Mon_{k,p}(1)である。
秘密鍵格納部113は、公開鍵暗号の秘密鍵Sを格納している。秘密鍵Sは、安全性確保のため少なくとも2048ビット以上は必要とされている。
抽出部122は、制御部114の指示により、秘密鍵格納部113に格納されている秘密鍵Sの各ビットの上位から1ビットずつ抽出し、抽出したビットの値を制御部114へ出力する。
ここでのモンゴメリ領域の乗算は、モンゴメリ領域に変換された2個の入力値、例えば、Mon_{k,p}(X)とMon_{k,p}(Y)の積に対して、モンゴメリリダクション処理を行い、モンゴメリ領域の乗算結果Mon_{k,p}(Z)=Mon_{k,p}(X×Y)を求めるものである。2乗算は、上記XとYが同じ場合に相当する。
モンゴメリ逆変換部120は、モンゴメリ領域での2乗算と乗算との繰り返しの最終結果に、モンゴメリ逆変換を施して、出力データMを求める。以降ではモンゴメリ逆変換を
Mon_{k,p}-1( )と表記する。
なお、モンゴメリ変換とモンゴメリ逆変換について、式3が成り立つ。
Mon_{k,p}-1(Mon_{k,p}(X))=X (式3)
モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。
公開鍵復号部101による高速べき乗剰余演算の動作について、図4に示すフローチャートを用いて説明する。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS103)。
次に、モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。ここで、M=CS mod pである(ステップS109)。こうして、公開鍵復号部101による高速べき乗剰余演算が終了する。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS106)、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bを選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第1モンゴメリ変換部111により出力されるモンゴメリ変換値B=Mon_{k,p}(C)とを乗算し、得られた値を演算結果Wへ上書きする。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、制御部114は、第2モンゴメリ変換部112の出力値を選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第2モンゴメリ変換部112の出力値であるA=Mon_{k,p}(1)とを乗算し、得られた値を演算結果Wへ上書きする。
3.実施の形態の効果
まず、図4に示すフローチャートから明らかなように、秘密鍵Sの当該ビットが「1」であるか又は「0」であるかにかかわらず、必ずモンゴメリの乗算部116は動作する。そのため、乗算の有無で解析を行う攻撃であるSPAは困難である。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
法設定部117は、法pを定める。ここで、法pは、例えば、512ビットの秘密の素数である。また、法設定部117は、pより大きい任意の2のべき乗値Rを定める。例えば、乱数kを生成し、R=2kとする。例えば、R=2512 である。また、法設定部117は、乱数rを生成する(ステップS201)。
y=M(1)=R mod p =R − p
yは、演算結果の値を格納するための演算値領域に設けられる変数である。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS203)。
y={y×y}×R-1 mod r×p (ステップS205)。
次に、制御部114は、制御をステップS203へ移す。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、乗算部116は、次式による乗算を行う。
次に、制御部114は、制御をステップS103へ移す。
この変形例では、公開鍵復号部101は、モンゴメリ逆変換部120を含んでない。
また、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよい。また、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
2k mod (r×p)を出力する。
このとき、第2モンゴメリ変換部112の法は、pのままでよいし、また、別の乱数倍であってもよい。
なお、モンゴメリ逆変換部120の法は、pのままである。
例えば、2ビットごとの処理であれば、二乗算部115では2回の2乗算を行い、制御部114では、秘密鍵の2ビットに対応して4種類のモンゴメリ変換部からの出力値を選択し、選択した出力値を乗算部116で乗算する。
また、本実施の形態では、秘密鍵を上位から処理するアルゴリズムを用いているが、下位から処理するものであってもよい。この場合には、入力データに対応したモンゴメリ変換値を繰り返し2乗し、秘密鍵の対応するビットが1のときには、前記2乗演算値を乗算し、0のときには、本実施の形態と同様に、整数kと法pから求められる値を用いたダミー乗算を行う。
図4に示すステップS103に代えて、ステップS103aにおいて、制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最下位から1ビットずつ抽出を試みる。
(6)本実施の形態では、RSA暗号の復号処理で説明したが、次に示すように、RSA署名の署名生成に適用してもよい。
ここで、秘密鍵をdとし、公開鍵をe、pとする。
s=h(m)d mod p
ここで、h( )は、一方向性ハッシュ関数である。
h(m)=se mod p
また、本発明は、RSA暗号の暗号処理において、公開鍵を秘匿するようなアプリケーションの場合に、適用することができる。
(7)上記の実施の形態及び変形例は、次に示すような場合において適用される。
本実施の形態において、秘密のメッセージ伝送の一例として、ライセンス鍵を秘密に伝送する場合について説明した。
次に示すような金銭の決済システムに適用することもできる。
(d)実施の形態及び変形例は、零知識証明において適用される。零知識証明とは、例えば、ある人が、数論的あるいは組合せ論的問題を解くことに成功したことを、解が何であるかのわずかの情報さえ与えることなく、他人にこのことを納得させることを言う。
(8)本発明は、入力データと秘密鍵を使って、定められた法における乗算を繰り返してべき乗剰余計算を行う情報セキュリティ装置である。前記情報セキュリティ装置は、前記入力データに対応したモンゴメリ変換値を求める第1のモンゴメリ変換部と、1のモンゴメリ変換値を求める第2のモンゴメリ変換部と、秘密鍵のビットが0ならば、前記第2のモンゴメリ変換部の出力を選択し、そうでなければ前記第1のモンゴメリ変換部の出力を選択する制御部と、これまで計算した結果と前記制御部で選択した値を用いて乗算を行う乗算部を備えており、前記法をpとし、pの有効ビット数より大きな整数をkとするとき、前記第2のモンゴメリ変換部は、前記pを法として、前記kをべきとする2のべき乗値を出力する。この情報セキュリティ装置によると、第2のモンゴメリ変換部の出力(モンゴメリ領域での1)は、整数kと法pに依存して決定される。そのため、ハミング重みに偏りはなく、電力変化を用いて、乗算の入力として第1のモンゴメリ変換部の出力を用いたのか、第2のモンゴメリ変換部の出力を用いたのかを区別することは困難である。
10 ネットワーク
100 ICカード
101 公開鍵復号部
102 入出力部
111 第1モンゴメリ変換部
112 第2モンゴメリ変換部
113 秘密鍵格納部
114 制御部
115 二乗算部
116 乗算部
117 法設定部
118 整数設定部
119 設定制御部
120 モンゴメリ逆変換部
200 DVDプレーヤ
201 モニタ
202 スピーカ
211 通信部
212 入出力部
213 復号部
214 復号部
215 再生部
216 ドライブ部
300 DVD
400 サーバ装置
Claims (23)
- 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置であって、
前記整数の1個の桁の値が0であるか否かを判断する判断手段と、
取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段と
を備えることを特徴とする情報セキュリティ装置。 - 前記情報セキュリティ装置は、RSA方式に基づいてRSA暗号文を復号するRSA復号装置、又はRSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名装置であり、さらに、
前記入力値としてRSA暗号文を取得し、又は前記入力値として署名対象のメッセージを取得する取得手段と、
秘密鍵として前記整数を記憶している記憶手段と、
前記RSA暗号文から復号して得られる復号文として、又は前記メッセージに対する署名データとして、算出された前記べき乗値を出力する出力手段と
を含むことを特徴とする請求項1に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、
入力値を取得する取得手段と、
整数を記憶している記憶手段と、
演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、
前記記憶手段から前記整数の上位桁から1個の桁の値を抽出する抽出手段と、
前記演算値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記演算値変数に上書きする二乗手段と、
取得した桁の値が0であるか否かを判断する前記判断手段と、
取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、
前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、
前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段と
を備えることを特徴とする請求項1に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、
入力値を取得して入力値変数に格納する取得手段と、
整数を記憶している記憶手段と、
演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、
前記記憶手段から前記整数の下位桁から1個の桁の値を抽出する抽出手段と、
前記入力値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記入力値変数に上書きする二乗手段と、
取得した桁の値が0であるか否かを判断する前記判断手段と、
取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値変数から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、
前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、
前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段と
を備えることを特徴とする請求項1に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、さらに、
値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、
前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いる
ことを特徴とする請求項1に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、さらに、
前記法の値を設定する法設定手段と、
前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、
前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出する
ことを特徴とする請求項5に記載の情報セキュリティ装置。 - 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法において値2のk乗値を算出する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、さらに、
前記法設定手段は、さらに、前記法としての値の乱数倍の法を設定し、
前記モンゴメリ変換手段は、法設定手段によりさらに設定された前記法において、値2のk乗値を算出する
ことを特徴とする請求項8に記載の情報セキュリティ装置。 - 前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記法設定手段は、入力値を取得する毎に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記整数設定手段は、外部からの指示により、前記整数kの値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
ことを特徴とする請求項6に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、さらに、
前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、
前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行う
ことを特徴とする請求項1に記載の情報セキュリティ装置。 - 前記情報セキュリティ装置は、さらに、
前記法の値を設定する法設定手段と、
前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、
前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出する
ことを特徴とする請求項16に記載の情報セキュリティ装置。 - 前記モンゴメリ変換手段は、前記法において、値2のk乗値を算出し、前記入力値と算出された値とを乗じて得られた値を前記モンゴメリ変換値とする
ことを特徴とする請求項17に記載の情報セキュリティ装置。 - 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出する
ことを特徴とする請求項17に記載の情報セキュリティ装置。 - 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティ方法であって、
前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
を含むことを特徴とする情報セキュリティ方法。 - 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティのためのコンピュータプログラムであって、
前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
を含むことを特徴とするコンピュータプログラム。 - 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティのためのコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムは、
前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
を含むことを特徴とする記録媒体。 - 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う集積回路であって、
前記整数の1個の桁の値が0であるか否かを判断する判断手段と、
取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段と
を備えることを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007540998A JP4906733B2 (ja) | 2005-10-19 | 2006-10-18 | 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005304169 | 2005-10-19 | ||
JP2005304169 | 2005-10-19 | ||
JP2007540998A JP4906733B2 (ja) | 2005-10-19 | 2006-10-18 | 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 |
PCT/JP2006/320715 WO2007046402A1 (ja) | 2005-10-19 | 2006-10-18 | 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007046402A1 true JPWO2007046402A1 (ja) | 2009-04-23 |
JP4906733B2 JP4906733B2 (ja) | 2012-03-28 |
Family
ID=37962495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007540998A Active JP4906733B2 (ja) | 2005-10-19 | 2006-10-18 | 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8090957B2 (ja) |
EP (1) | EP1939838A1 (ja) |
JP (1) | JP4906733B2 (ja) |
CN (1) | CN101292274B (ja) |
WO (1) | WO2007046402A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4612112B1 (ja) * | 2010-03-01 | 2011-01-12 | 健稔 岡本 | デジタル機器がリムーバブルメディアに記録されたファイルを削除する方法及びプログラム |
US8626811B2 (en) * | 2010-04-30 | 2014-01-07 | Certicom Corp. | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine |
EP2385461A1 (en) * | 2010-04-30 | 2011-11-09 | Certicom Corp. | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine |
EP2472451A1 (en) | 2010-12-30 | 2012-07-04 | Philip Morris Products S.A. | Method and apparatus for marking manufactured items |
ITMI20111992A1 (it) * | 2011-11-03 | 2013-05-04 | St Microelectronics Srl | Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari |
JP5848106B2 (ja) * | 2011-11-28 | 2016-01-27 | ルネサスエレクトロニクス株式会社 | 半導体装置及びicカード |
CN103164187B (zh) * | 2011-12-09 | 2017-03-01 | 深圳市证通电子股份有限公司 | Rsa模幂电路及rsa安全加密芯片 |
DE102012005427A1 (de) * | 2012-03-16 | 2013-09-19 | Giesecke & Devrient Gmbh | Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät |
CN104573544B (zh) * | 2013-10-28 | 2017-09-12 | 上海复旦微电子集团股份有限公司 | 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路 |
CN105844815B (zh) * | 2014-10-29 | 2018-11-16 | 罗军 | 一种atm机的取现控制方法 |
TWI575924B (zh) * | 2015-10-06 | 2017-03-21 | 瑞昱半導體股份有限公司 | 解密裝置、方法及電路 |
TWI580243B (zh) * | 2015-10-06 | 2017-04-21 | 瑞昱半導體股份有限公司 | 解密裝置、方法及電路 |
CN106571922B (zh) * | 2015-10-12 | 2020-03-10 | 瑞昱半导体股份有限公司 | 解密装置、方法及电路 |
CN116647318A (zh) * | 2022-02-16 | 2023-08-25 | 瑞昱半导体股份有限公司 | 防御密码系统时间攻击的方法及密码系统处理电路 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
FR2726667B1 (fr) * | 1994-11-08 | 1997-01-17 | Sgs Thomson Microelectronics | Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery |
US5724279A (en) * | 1995-08-25 | 1998-03-03 | Microsoft Corporation | Computer-implemented method and computer for performing modular reduction |
US6408075B1 (en) | 1998-11-30 | 2002-06-18 | Hitachi, Ltd. | Information processing equipment and IC card |
JP2000165375A (ja) | 1998-11-30 | 2000-06-16 | Hitachi Ltd | 情報処理装置、icカード |
JP3950638B2 (ja) * | 2001-03-05 | 2007-08-01 | 株式会社日立製作所 | 耐タンパーモジュラ演算処理方法 |
CN1271506C (zh) * | 2001-03-19 | 2006-08-23 | 深圳市中兴集成电路设计有限责任公司 | Rsa加密算法的实现电路及方法 |
DE10260655B3 (de) * | 2002-12-23 | 2004-06-24 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung |
DE10260660B3 (de) * | 2002-12-23 | 2004-06-09 | Infineon Technologies Ag | Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung |
DE10304451B3 (de) * | 2003-02-04 | 2004-09-02 | Infineon Technologies Ag | Modulare Exponentiation mit randomisiertem Exponenten |
FR2862454A1 (fr) * | 2003-11-18 | 2005-05-20 | Atmel Corp | Methode de reduction modulaire aleatoire et equipement associe |
-
2006
- 2006-10-18 WO PCT/JP2006/320715 patent/WO2007046402A1/ja active Application Filing
- 2006-10-18 US US12/088,028 patent/US8090957B2/en active Active
- 2006-10-18 CN CN200680038934.8A patent/CN101292274B/zh not_active Expired - Fee Related
- 2006-10-18 EP EP06821917A patent/EP1939838A1/en not_active Withdrawn
- 2006-10-18 JP JP2007540998A patent/JP4906733B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2007046402A1 (ja) | 2007-04-26 |
EP1939838A1 (en) | 2008-07-02 |
CN101292274B (zh) | 2011-01-19 |
US8090957B2 (en) | 2012-01-03 |
JP4906733B2 (ja) | 2012-03-28 |
CN101292274A (zh) | 2008-10-22 |
US20100064142A1 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4906733B2 (ja) | 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 | |
US7940927B2 (en) | Information security device and elliptic curve operating device | |
US7707430B2 (en) | Digital content protection system | |
CN102437912B (zh) | 一种基于混沌算法的n重rsa加密算法的数字版权保护方法 | |
EP2656537B1 (en) | Cryptography module for use with fragmented key and methods for use therewith | |
CN103283178B (zh) | 具有分段密钥处理的椭圆曲线密码学及其使用方法 | |
EP1475920A1 (en) | Key sharing system, shared key creation device, and shared key restoration device | |
KR20020025630A (ko) | 비밀 정보의 처리 장치, 프로그램 또는 시스템 | |
WO2005041474A1 (ja) | 認証システム及び遠隔分散保存システム | |
US7388957B2 (en) | Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus | |
JP4816025B2 (ja) | 情報管理システム | |
JP4875481B2 (ja) | 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム | |
JP4634046B2 (ja) | 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 | |
JP2001503164A (ja) | 暗号化および復号化システムとキー・エスクローシステムを含む暗号システム、および関連機器 | |
TW202023223A (zh) | 加解密系統、加密裝置、解密裝置和加解密方法 | |
JP2004221800A (ja) | 暗号処理システムにおける不正エンティティ追跡方法、暗号処理システム、および不正エンティティ追跡処理装置、並びにコンピュータ・プログラム | |
JP2009171384A (ja) | 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム | |
Yong et al. | An efficient fingerprinting scheme with symmetric and commutative encryption | |
Mao | Send message into a definite future | |
JP2003032239A (ja) | コンテント配信システム、耐タンパ装置、サーバ、コンピュータ・プログラム、およびコンテント配信方法 | |
JP2004159043A (ja) | 暗号通信システム、情報処理装置、および方法、並びにコンピュータ・プログラム | |
JP2008048121A (ja) | 実行権限分散方法及びシステム | |
Kang et al. | REQUIREMENTS FOR E-PAYMENT SYSTEM BASED ON THE CREDIT CARD | |
MXPA06000109A (en) | Authentication for admitting parties into a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090807 |
|
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: 20111213 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4906733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |