説明

強化された自然モンゴメリー指数マスキング

暗号化装置の非侵害的な物理的検査によって秘密指数情報を発見することを目的とする選択メッセージ攻撃を受けるセキュリティ保護された暗号化装置において、累乗されるメッセージをマスクするための方法および装置。モンゴメリー演算の使用によって、ランダムな乗算係数が入力メッセージに適用され、および、従来技術のマスキング技術において必要とされるようにランダムファクタの逆数を計算する必要なしに、容易に取り除かれることが可能である。このマスキングは、モンゴメリー演算の使用に特有である自然マスキングを補足且つ強化する。本発明の方法は、モンゴメリー演算プロセッサに理想的に適しているが、これだけには限定されず、および、他のセキュリティ保護技術と組み合わせて使用されることが可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号技術の分野に関し、および、特に、公開鍵暗号システムを使用するスマートカードのような、物理的攻撃に対してセキュリティ保護されていることが意図されている暗号化アルゴリズムおよび装置に関する。
【背景技術】
【0002】
暗号化マスキング方法が、参考文献であるダグラス・スティンソン(Douglas Stinson)著、「暗号法,理論および実践(Cryptography, Theory and Practice)」、CRC Press,1995(本明細書では「Stinson」として示されている)に記載されている。非侵害的攻撃の技術と、秘密モジュラス(confidential moduli)のマスキングとの説明が、シャミル(Shamir)に対する米国特許第5,991,415号(本明細書では「Shamir」として示されている)に開示されている。マスキング方法は、さらに、コッチャー他(Kocher et al.)他に対する米国特許第6,298,442号(本明細書では「Kocher」として示されている)、および、ジョー他(Joye et al.)の国際特許出願公開WO03014916(本明細書では「Joye」として示されている)にも開示されている。
【0003】
モンゴメリー演算(Montgomery arithmetic)が、ピーター・モンゴメリー(Peter Montgomery)によって「試行除算不要のモジュレータ乗算(Modular Multiplication Without Trial Division)」、Mathematics of Computation,44(1985)において最初に言及された。モンゴメリー演算方法および装置が米国特許第6,185,596号(本明細書では「596」として示されている)に開示されている。
【0004】
上記明細書で述べられているすべての公開の開示内容と、その中で引用されている出版物の開示内容とが、本明細書に引例として組み入れられている。
【発明の開示】
【発明が解決しようとする課題】
【0005】
公開鍵暗号化システムの多くが、モジューロ累乗(modulo exponentiation)を使用し、および、こうした暗号化システムにおける共通の演算が、メッセージを累乗することである。例えば、暗号化が、平文メッセージを公開指数で累乗してよく、および、暗号解読が、暗号文をプライベート(秘密)指数で累乗することを含んでよい。本明細書では、術語「メッセージ」が、暗号化、暗号解読、ディジタル署名、承認、および、認証を非限定的に含む目的のための、暗号化アルゴリズムに対するあらゆる入力を意味する。本明細書では、術語「プライベートの」および「秘密の」は、公開鍵暗号システムのプライベート鍵に関連した情報を意味する。
【0006】
累乗を行う公知の方法が、指数の「1」ビットに対応する選択的な乗算による2乗の反復を含む。この方法または類似の方法を使用して累乗を行う装置が、例えば電力消費監視のような様々な物理的手段によって秘密指数を読み出すために、累乗プロセス中にこの装置が(非侵害的に)外部から監視される可能性があるので、セキュリティ保護されていないことがある。例えば、特定の値であるようにメッセージを選択すること(「選択メッセージ攻撃」)が、累乗中に乗算演算を行っている時に、検出可能な電力差をその装置が消費することを強制する可能性があり、および、この検出可能な差が秘密指数の「1」ビットの場所を明らかにする可能性がある。秘密鍵が暗号化装置から抽出されることを可能にする電力分析の公知の方法が数多く存在する。従って、電力分析に基づいた選択メッセージ攻撃に対するこの装置の脆弱性が、セキュリティ上の危険要素である。電力分析に加えて、この装置から放出される放射の検出を含む、セキュリティ保護されていることが意図されている装置に対して攻撃を加える他の非侵害的な手法が存在する。これらの方法は、秘密鍵値がそれから推定されることが可能な情報を明らかにするあらゆる外部検出可能で測定可能な物理的現象に依拠することが可能である。
【0007】
様々な技術が、こうした装置の内部演算を偽装または隠蔽するために使用されている。公知の技術が、(電力消費または放射放出のような)類似した物理的効果を生じさせるダミー演算を行うことであるが、このダミー演算の結果は簡単に廃棄されるか、または、出力に影響を与えない。しかし、選択メッセージ攻撃を分析することによって、ダミー演算の使用にも係わらず、挿入されたダミー演算を識別し、および、これによって秘密鍵情報を求めることが計算によって可能である。
【0008】
選択メッセージ攻撃戦略を妨害するためには、メッセージ自体に対して直接的に重要な計算を行わず、むしろ、好ましくはランダムな入力をとるメッセージのマスキング関数によって、メッセージから得られた中間値に対して計算を行うことが、最善であると考えられる。当然であるが、このことは、このマスキング関数の効果が結果から除去可能であることを必要とする。
【0009】
参照されるエルガマルシステム(ElGamal system)は、次のように使用される。
すなわち、aは暗号化メッセージの受信者だけに知られている秘密鍵であり、xはそのシステムの送信者によって暗号化されて送信されるべきメッセージであり、且つ、公衆に知られている要素であり、pは法(モジュラス:modulus)であり、αは指数底であり、そして、受信者の公開鍵βは、β=αa mod pとして与える。
【0010】
送信者がy1とy2を秘密裏に用意して送信し、ここで、
1=αk mod pであり、前式中で、kは、送信者によって生成されたランダムなマスキング指数であり、
2=xβk mod p=xαakであり、メッセージxは受信者の公開鍵を乗算されている。
【0011】
その次に、送信されたメッセージy1、y2を使用して、受信者が次を行い、
1=y1a=αak mod p、y1をa(受信者秘密)で累乗する。
2=M1-1 mod p=(αak)-1 mod p=(αak)p-2 mod p、受信者がM1を反転させる。
3=y22=x(αak)(αak)-1 mod p=x、リトリーブされたマスクされたメッセージ。
【0012】
受信者が秘密ランダムマスクを知らないということに留意されたい。受信者と送信者の両方によって消費されたリソースが2つの累乗から成り、および、これは両方の場合とも典型的に冗長な演算である。
【0013】
逆数の累乗(powers)も逆数である。例えば、
*9 mod 11≡01、従って、5と9は11を法とした逆数である。
(57 mod 11)≡3;および、((5-1)7) mod 11)≡(97 mod 11)≡4
(3*4) mod 11≡1;従って、3と4も11を法(modulo)とした逆数である。
【0014】
計算効率を向上させるために一般的に使用される幾つかの方法も、メッセージ自体に対してではなくてメッセージの関数に対して計算を効果的に行うことによって、セキュリティ上の危険要素を低減させる働きをするだろう。特に、モンゴメリー演算の使用が、モジューロ剰余(modulo remainder)を得るために乗算の後に除算演算を行う必要を取り除くことによって、乗算の速度を向上させることが可能であるということが当業で公知である。信頼できるセキュリティ保護のためには、メッセージ自体に対して適用され且つその唯一の目的が選択メッセージ攻撃を妨害することである、モンゴメリー演算に基づいたさらに別のマスキング技術を使用することが望ましい。
【0015】
マスキング技術はShamirの方法を含んでよく、この方法は、プライムモジュラスを複合モジュラスに変換し、これによってマシンオペランドのサイズと秘密指数とを変化させる。しかし、Shamirの方法は、ユーザが暗号化モジュラスの素因数の知識を有することを想定しているが、これが当てはまらないこともある。さらに、オペランドのサイズを変化させることが、大半のハードウェア装置における性能に大きな悪影響を与える。攻撃に対する他の幾つかの保護方法が有効ではないことがある。例えば、Joyeは、Kocherにおいて示唆されている合同指数の使用の無効性を実証している。
【課題を解決するための手段】
【0016】
本発明の好ましい実施態様は、反転演算を行う必要なしに、且つ、暗号化モジュラスの素因数を知る必要なしに、累乗されたメッセージが容易に復元されることを可能にする形でさらにメッセージをマスクすることによって、モンゴメリー表現の自然マスキングを強化するための方法および装置を提供することを求める。
【0017】
本発明の好ましい実施態様は、秘密指数のような秘密鍵情報を明らかにすることが意図されている選択メッセージ攻撃を妨害するために、セキュリティ保護された装置に対する入力メッセージをランダムにマスクするための新規の方法および装置を提供する。本発明の好ましい実施態様の目的が、性能を低下させることなしに、且つ、最小限のリソースを使用して、特に、モジューロ乗算逆数(modulo multiplicative inverses)を生成する必要なしに、このマスキングを実現することである。本発明の好ましい実施態様が、逆数を明示的に生成する必要なしにマスクされたリトリーバルを維持するために、モンゴメリー演算の自然属性を新規の形で使用する。特に、自然モンゴメリー逆数2-nが存在し、前式中でnはモジュラスのビット数であり、および、本発明の好ましい実施態様によって、この自然モンゴメリー逆数2-nから新規のマスクを構成することが可能である。
【0018】
本発明の好ましい実施態様の方法または装置の使用は、攻撃から保護するために有効な他の保護方法または保護装置の使用を排除せず、および、典型的には、こうした方法を強化する働きをする。
【0019】
本発明の好ましい実施態様は、ディフィーヘルマン(Diffie-Hellman)鍵交換累乗と、乱数のDSS逆数と、複合モジュラスに対するユーザ秘密鍵によるRSAタイプの暗号解読とをマスクするために特に有利である。
【0020】
従って、本発明の好ましい実施態様では、バイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする装置に入力される暗号文メッセージをマスクするための方法が提供され、このバイナリモジュラスNはn個のビットを有し、および、この方法は、マスクを生成するために自然モンゴメリー逆数2-nを使用することを含む。これに加えて、本発明の好ましい実施態様では、バイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする装置に入力される暗号文メッセージをマスクするための装置も提供され、このバイナリモジュラスNはn個のビットを有し、および、この装置は、自然モンゴメリー逆数2-nからマスクを生成する働きをするマスクジェネレータを含む。
【0021】
さらに、本発明の好ましい実施態様によって、バイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする装置に入力される暗号文メッセージをマスクするための方法が提供され、このバイナリモジュラスNはn個のビットを有し、および、この方法は、(a)ランダム整数xを生成することと、(b)数2nx mod Nに等しいマスクを計算することと、(c)数2-nxd mod Nに等しいメッセージリトリーバ(message retriever)を計算することと、(d)積を形成するためにマスクを暗号文メッセージに乗算することと、(e)マスクされた累乗メッセージを形成するために、その積をバイナリモジュラスNを法として秘密指数dで累乗することと、(f)リトリーブされた平文メッセージを形成するために、マスクされた累乗メッセージにメッセージリトリーバを乗算することとを含む。
【0022】
さらに、本発明の好ましい実施態様によって、バイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする装置に入力される暗号文メッセージをマスクするための装置も提供され、バイナリモジュラスNはn個のビットを有し、および、この装置は、(a)バイナリモジュラスNを法として2つの数の積を計算し、および、バイナリモジュラスNを法として数をdで累乗する働きをするモジューロプロセッサと、(b)ランダム整数xを生成するためのランダム整数ジェネレータと、(c)モジューロプロセッサが、バイナリモジュラスNを法として暗号文メッセージとマスクとの積を計算し、および、マスクされたメッセージを計算するために、バイナリモジュラスNを法として指数dでその積を累乗するように、数2nx mod Nに等しいマスクを計算してモジューロプロセッサにそのマスクを送り込む働きをするマスクジェネレータと、(d)モジューロプロセッサが、平文メッセージを形成するために、マスクされたメッセージとメッセージリトリーバとの積を計算するように、2-nxd mod Nに等しいメッセージリトリーバを計算して、そのメッセージリトリーバをモジューロプロセッサに送り込む働きをするメッセージリトリーバジェネレータとを含む。
【発明を実施するための最良の形態】
【0023】
以下、本発明を、例示だけのための添付図面を参照しつつ説明する。
【実施例】
【0024】
セキュリティ面の課題が、放射、測定された一時的な電流消費、または、他の非侵害的な物理的手段によって、dまたはNを全面的または部分的に暴露(漏洩)することなしに、選択メッセージ累乗Mid mod Nを生成することであり、前式中で各々のMiがメッセージであり、dが秘密指数であり、Nがnビットのモジュラスである。数がバイナリ形式で表現されるということが理解される。
【0025】
この装置はNとdの両方を含む。典型的には、攻撃者はNの知識を有し、および、秘密dの1とゼロのシーケンスを知ることを望む。選択メッセージ攻撃では、攻撃者は、典型的には、検出可能な指数シーケンスを形成するために1つまたは多数のMiを試す。
【0026】
従来技術のモンゴメリーモジューロ演算プロセッサが、図1の単純化されたブロック図に示されている。このプロセッサの中心要素がマルチプレクサ140であり、このマルチプレクサ140は、Aだけを含む加数110と、Nだけを含む加数120と、和A+Nを含む加数130との中の1つから選択された加数との入力加数Bを合計を行うために、ジェネレータ150から入力を受け取る。この演算が常にmod N演算なので、任意の量にNを加算することがその結果の合同を変化させないということが指摘されなければならない。しかし、(実際の適用において)Nが典型的には奇数なので、典型的にはNの最下位ビットが設定されるだろう。モンゴメリー演算の特有の特徴が、結果が2nを乗算された数であるように演算を操作することである。そうすることが、モジューロ約分のために結果に対して除算を行う必要を排除する。この演算の各部分において、入力加数Bと入力加数Aとが、これらの合計の最下位ビットを求めるために調べられる。Aが偶数(最下位ビットがゼロである)である場合には、A+Nは奇数(最下位ビットが1である)だろうし、その逆も同様だろう。従って、マルチプレクサ140は、桁上げ保存加算器160に送られる時に和A+Bを偶数(最下位ビットがゼロである)にするために、どの入力が必要とされるかを選択するように設定されることが可能である。
【0027】
本発明の好ましい実施形態によるこのマスクは、攻撃者が乗算演算と2乗計算とを区別することが不可能であるように、または、実際には、メッセージの互いに異なる電力による乗算の間を区別することが不可能であるように、統計量をバランスさせることによって、乗算および2乗プロセス中に、放射および電流消費のような外部から可視的な物理的効果を隠蔽および秘匿するように構成されている。
【0028】
基本的なモンゴメリーモジューロ乗算関数は次のものを含む。
H=22n mod N (1)
が、モンゴメリーリトリーバル変換定数(Montgomery retrieval transformation constant)である。典型的には、Hは剰余除算を使用して計算される。しかし、モンゴメリー乗算が除算よりも効率的である用途においては、Hは次のように計算されてもよく、
H1=2(n+n/2)
H=P(H1・H1)N=2(n+n/2)・2(n+n/2)・2-n mod N=22n
である。
【0029】
上述の手法が、Hの直前のH1、H2、...を計算するために、次のように反復的に使用されることが可能であり、次式中でxが整数であり、
Hx=2(n+n/(2∧x))であり、
一方、(x>0)、
H(x−1)=P(Hx・Hx)N=2(n+n/x)・2(n+n/x)・2-n mod N=2(n+n/(2∧(x-1))であり、
最後に、H=2(n+n)=22n mod Nである。
【0030】
Pフィールドにおけるモンゴメリー演算子
P(x・y)N=x・y・2-n mod N (2)
が、各々のPフィールドモンゴメリー2乗または乗算において「モンゴメリーパラサイト(Montgomery parasite)」2-n mod Nを導入する。
【0031】
式(1)のH定数が、メッセージMのための容易にリトリーブ可能なモンゴメリー乗数を生成するために使用され、
A=P(M・H)N=M・22n・2-n mod N=M・2n (3)
A、H、および、後続の結果はnビットのオペランドである。
【0032】
Pフィールドで乗算を行うこと、オペランドA'=A・2n mod NとオペランドB'=B・2n mod Nの両方が、式(3)の通りに2n mod Nが事前に乗算されたモンゴメリーオペランドであり、
P(A'・B')N=A・B・2n mod N (4)
である。
【0033】
Xの計算、A=M・2nのd乗のモンゴメリー累乗であり、
X((A)d)N=X((M・2n)d)N=(M)d・2n mod N (5)
および、
モジューロ自然整数のフィールドに対するモンゴメリー累乗結果の、Pフィールドからのオペランドのリトリーブは、
P((M)d・2n)・(1))N=Md・2n・1・2-n mod N=Md mod N (6)
である。
【0034】
次では、2nx mod Nマスクが、典型的には、従来の方法すなわちモンゴメリーの方法を使用して累乗を行う間にオペランドの値をマスクするために使用される。
【0035】
従来のモンゴメリー演算は、典型的には、メッセージMをとることと、式(3)の通りにH=22n mod Nをモンゴメリー乗算することとによって開始する。本発明の好ましい実施形態では、メッセージが累乗のために用意され、および、2xn mod Nによってマスクされ、前式中でxは乱数である。これとは対照的に、従来技術のマスクは単純に乱数x自体である。しかし、上述したように、このことは、因数xdが累乗結果に現れ、および、逆数x-dを乗算することによって取り除かれなければならないということを意味する。このことは、逆数x-1を計算することが可能であることを必要とする。しかし、本発明の好ましい実施形態の新規のマスクである2xn mod Nは、典型的には、乱数xの逆数を計算することなしに、容易に取り除かれる。
【0036】
本発明の好ましい実施形態では、このマスクは、典型的には、セキュリティ保護された装置の初期設定において事前計算される。さらに、ユーザの方針によって必要とされる場合には、その装置の各リセット毎にマスクを復元することも可能である。上述したように、本発明の好ましい実施形態の使用は、ダミーインサートのような他のセキュリティ保護方法を排除せず、または、こうした他のセキュリティ保護方法に干渉しない。
【0037】
この着想はモンゴメリー演算によって容易に実証される。
【0038】
例えば、d=7を選択して、乱数x=2によってマスクされた、マスクされたシーケンス中にM7 mod Nを発見する。
【0039】
通常のモンゴメリー演算において計算する代わりに、Mに2xn mod Nマスクが乗算される。この最終のモンゴメリー累乗がマスクされ、および、例えば次のように、容易に導出されるマスクされた逆数によってリトリーブされることが可能であり、
(a)剰余除算によって、または、知的所有権があるモンゴメリー方法を使用して、H2=24n mod N −−(この場合には、x=2)を生成し、
(b)マスク2xnを生成するマスクされたメッセージを用意し、および、このメッセージに関して、反転された2-yn mod Nが生成されることが可能であり、
P(M・H2)N=M・24n・2-n mod N=M・23n=A (7)
(c)チャンドハスートラ(Chandah-sutra)法を使用してAに対してモンゴメリー累乗を行う。チャンドハスートラ累乗法は、ドナルド・ナス(Donald Knuth)による「コンピュータプログラミング技術(The Art of Computer programming)」,2nd Edition,Volume 2,Addison Wesley,1981(本明細書では「Knuth」として示す)の441ページに説明されている。
【0040】
P(A・A)N=P(A12)N=M・23n・M・23n・2-n mod N=M2・25n mod N (8)、
P(P(A12)N・A)N=P(A23)N=M3・25n・23n・2-n=M3・27n (9)、
P((P(A23)N)・(P(A23)N))N=P(A36)N=M3・27n・M3・27n・2-n mod N (10)
P((P(A23)N)・(P(A23)N))N=M6・213n mod N (11)
P((P(A36)N)・A)N=P(A47)N=M6・213n・M・23n・2-n mod N (12)
P((P(A36)N)・A)N=M7・215n mod N (13)
【0041】
リトリーバルマスクの生成がモンゴメリーパラサイト 2-n mod Nに基づいており、これが単一のモンゴメリー乗算によって得られることが好ましく、
P(1・1)N=2-n mod N (14)
であり、その次に、典型的には、類似の累乗手順がこのマスクリトリーバル値を2-14n mod N=Yに累乗する。
【0042】
次に、Pフィールドからのリトリーバルとマスクの除去とが、典型的には、指数量時間Yの単一のモンゴメリー乗算において行われ、
7 mod N=P((M7・215n)・2-14n)N=M7・2n・2-n mod N (15)
である。
【0043】
これは、e(暗号化指数)が既知でない時にさえ、選択されたメッセージの暗号解読シーケンスが、典型的には、Nのトーティエント関数の知識なしに生成されるということを示す。
【0044】
一般的に、指数乗数xが2xn mod Nランダムマスクにおいて90よりも大きい場合には、攻撃者は、選択メッセージ攻撃を行うためにそのマスクを導出することもそのランダムマスクによって選択メッセージを形成することも不可能である。
【0045】
限定されたモンゴメリー能力を有するかまたは拡張ユークリッド逆数を有する装置のためのモンゴメリーマスク法。
【0046】
図2は、本発明の第1の実施形態によるモンゴメリーマスクとメッセージリトリーバとを用意する好ましいシーケンスを示す流れ図である。
【0047】
ステップ210では、秘密指数dとnビットモジュラスNが入力され、ここでdとNは整数であり、および、Hが式(1)に従って計算される。H1/2=2n mod Nが単一の整数減法によって計算され、
n−N≡2n mod N (16)
である。
【0048】
その次に、ステップ220において、H-1/2が計算され、上述の式(14)の通りに、
-1/2=2-n mod N≡P(1・1)N=2-n mod N
である。
【0049】
ステップ230では、秘密数xが生成される。秘密xを明らかにするために徹底的な探索を行うには290のワークファクタ(work factor)が必要であるとすれば、xが少なくとも90であることが好ましい。
【0050】
ステップ250では、マスク逆数K1が計算され、
1=2nx mod N=(2n)x mod N (17)
である。
【0051】
ステップ260では、メッセージリトリーバK2が計算され、
2=2-nxd mod N=((2-n)x)d mod N (18)
である。
【0052】
1とK2は、必要に応じて、次のようにx'によって更新されてよく、
1'=((K1) mod N)x' mod N (19)
2'=((K2) mod N)x' mod N (20)
であり、前式中でx'は、典型的には、ランダムに選択された小さい正の整数である。
【0053】
図3は、選択メッセージ攻撃に対して抵抗性があるマスクされた累乗を暗号文Cに対して行うための、本発明の第2の実施形態による、入力メッセージに対するモンゴメリーマスクの使用のシーケンスを示す流れ図であり、この場合に(例えば、記憶装置内で)d、N、K1、K2が使用可能である。
【0054】
ステップ310では、暗号文Cが入力され、この暗号文CからC mod Nが計算されることが可能である。
【0055】
ステップ320では、(例えば、記憶装置から)N、d、K1、K2が入力される。
【0056】
ステップ330では、モジューロ乗算によってマスクされた暗号文を得るために、A1=C*1 mod Nを計算する。
【0057】
ステップ340では、A2=A1d mod Nを計算する。マスクされたモジューロ累乗=(C*1)d mod N=M*nxd mod N
である。
【0058】
ステップ350では、平文Mをリトリーブする。
M=Cd mod N=A2*2 mod N=((Cd)(2ndx))(2-ndx) mod N
【0059】
加えられる唯一のリソースが、記憶装置内に格納されるべきnビット定数K1、K2である。
【0060】
好ましい装置の実施形態におけるマスクされたモンゴメリー累乗。
【0061】
H=22n mod Nがモジューロ除算によって計算されることが可能である。
【0062】
-1/2=2-n mod N≡P(1・1)N=((1・1)2-n) mod N、2n mod Nの逆数。
【0063】
秘密xを明らかにするために徹底的な探索を行うには290のワークファクタが適切であると仮定する場合に、x=秘密乱数、2≦x≦95、好ましくは90≦xである。その次に、K1を事前計算するために、
1=X((H)x)N=X(2n・2n)x=2nx・2n mod N、
1=P(H・M1)N=22n・2n・2nx・2n・2-n mod N=2nx・22n mod N
である。
【0064】
2を事前計算する時に、2-n・2n mod N=1 mod Nであることに留意されたい。
【0065】
2=X(1x)N=X((2-n・2n)x)N=2-nx・2n
3=X((M2)d)N=X((2-nx・2n)d)N=2-nxd・2n
2=P(M3・1)N=2-nxd mod N。
【0066】
1とK2が典型的には、小さい正の整数であるx'によって更新される。
1←K1'=((K1) mod N)x' mod N
4=X((M3)x')N=X(((2-nx・2n)d)x')N=2-nxx'd・2n
2←K2'=P(M4・1)N=2-nxx'd mod N
【0067】
図4は、選択メッセージ攻撃に対して抵抗性があるマスクされた累乗を選択された暗号文に対して行って、Cd mod Nを計算するために、モジューロ乗算装置上で動作可能なモンゴメリー関数を使用する、本発明の第3の実施形態における入力メッセージに対するモンゴメリーマスクの使用のシーケンスを示す流れ図である。次の演算を行う。
【0068】
ステップ410では、マスクされていない暗号文メッセージCを入力または生成する。ステップ420では、秘密指数dと、nビットモジュラスNと、マスクK1と、メッセージリトリーバK2とを入力する。これらは次に詳細を示すように計算される。
【0069】
ステップ430では、暗号文に対するモンゴメリーマスクを計算し、
1=P(C・K1)N=(C・2nx)・2n mod N
である。
【0070】
ステップ440では、モンゴメリーマスク指数を計算し、
2=P(((C・2nx)・2n)d)N=Cd・2nxd・2n mod N
である。
【0071】
ステップ450では、モンゴメリー Pフィールドから結果をリトリーブし、
d mod N=P((A2・K2))N=P((Cd・2nxd・2n)(2-nxd))N
である。
【0072】
セキュリティ保護の観点から、K1とK2は、一般的に、上述したように更新される。
【0073】
このマスクされた累乗は各累乗の前のHの生成を排除し、典型的には、同じ回数の乗算と2乗とによるプロセス時間の4%を節約する。
【0074】
図5は、図4に示されている方法のような任意の適切な方法と共に使用されることが可能な、本発明の第4の実施形態によるメッセージのマスキングおよびリトリービングのための装置の単純化されたブロック図である。モジューロプロセッサ510がモジュラス520と指数530とを受け取る。乱数ジェネレータ540が、マスクジェネレータ550とメッセージリトリーバジェネレータ560とに対してランダムな整数を提供する。暗号文メッセージ570がモジューロプロセッサ510に入力され、および、このモジューロプロセッサ510は平文メッセージ580を出力する。本発明の別の実施形態では、モジューロプロセッサ510は従来の仕方でモジューロ演算を行う。しかし、本発明のさらに別の実施形態では、モジューロプロセッサ510はモンゴメリー演算を行う。
【0075】
本発明を限られた数の実施形態に関して説明してきたが、本発明の多くの変型と変更と他の適用とが行われてよいということが理解されるだろう。
【0076】
本発明のソフトウェア構成要素が、必要に応じて、ROM(読み出し専用メモリ)形態で実現されてよいということが理解される。このソフトウェア構成要素は、一般的に、必要に応じて、従来の技術を使用してハードウェアの形で実現されてよい。
【0077】
理解しやすいように別々の実施形態の文脈において説明されている本発明の様々な特徴が、単一の実施形態において組合せの形で実現されてもよいということが理解される。これとは逆に、簡潔にするために単一の実施形態の文脈において説明されている本発明の様々な特徴が、別々に、または、任意の適切な副次的な組合せの形で実現されてもよい。
【0078】
本明細書に詳細に示され説明されているものだけに本発明が限定されないということが、当業者に理解されるだろう。むしろ、本発明の範囲は特許請求項だけによって規定される。
【図面の簡単な説明】
【0079】
【図1】従来技術のモンゴメリーモジューロ演算プロセッサの単純化されたブロック図である。
【図2】本発明の好ましい実施形態によるモンゴメリーマスクとメッセージリトリーバとを用意するシーケンスを示す流れ図である。
【図3】本発明の好ましい実施形態による、入力メッセージに対して図2のモンゴメリーマスクを使用するシーケンスを示す流れ図である。
【図4】本発明の好ましい実施形態による、図1または図5に示されているモンゴメリーモジューロ乗算装置上において動作可能なモンゴメリー関数を使用する、入力メッセージに対してモンゴメリーマスクを使用することを含む、図3の方法の好ましい具体例を示す流れ図である。
【図5】本発明の好ましい実施形態によってメッセージをマスクおよびリトリーブするための装置の単純化されたブロック図である。

【特許請求の範囲】
【請求項1】
n個のビットを有するバイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗するように働く暗号化装置に入力される前記暗号文メッセージをマスクする方法であって、マスクを構成するために自然モンゴメリー逆数2-nを使用するのを備えることを特徴とする方法。
【請求項2】
n個のビットを有するバイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗するように働く暗号化装置に入力される前記暗号文メッセージをマスクする方法であって、
ランダム整数xを生成し、
数2nx mod Nに等しいマスクを計算し、および、
数2-nxd mod Nに等しいメッセージリトリーバを計算するのを備えることを特徴とする方法。
【請求項3】
n個のビットを有するバイナリモジュラスNを法として指数dで暗号文メッセージを累乗するように働く暗号化装置に入力される前記暗号文メッセージをマスクする装置であって、自然モンゴメリー逆数2-nからマスクを構成するように動作するマスクジェネレータを備えることを特徴とする装置。
【請求項4】
n個のビットを有するバイナリモジュラスNを法として指数dで暗号文メッセージを累乗するように働く暗号化装置に入力される前記暗号文メッセージをマスクする装置であって、
前記バイナリモジュラスNを法として2つの数の積を計算し、且つ、該バイナリモジュラスNを法として数をd乗するように働くモジューロプロセッサと、
ランダム整数xを生成するランダム整数ジェネレータと、
前記モジューロプロセッサが前記バイナリモジュラスNを法として前記暗号文メッセージと前記マスクとの積を計算し、且つ、マスクされたメッセージを計算するために該バイナリモジュラスNを法として指数dで前記積を累乗するように、前記数2nx mod Nに等しいマスクを計算して前記モジューロプロセッサに前記マスクを送り込むように働くマスクジェネレータと、
前記モジューロプロセッサが、平文メッセージを計算するために前記マスクされたメッセージと前記メッセージリトリーバとの積を計算するように、数2-nxd mod Nに等しいメッセージリトリーバを計算し、且つ、前記メッセージリトリーバを前記モジューロプロセッサに送り込むように働くメッセージリトリーバジェネレータと、を備えることを特徴とする装置。
【請求項5】
請求項4に記載の装置において、前記モジューロプロセッサはモンゴメリーモジューロプロセッサであることを特徴とする装置。
【請求項6】
n個のビットを有するバイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする暗号化装置に入力される前記暗号文メッセージをマスクする方法であって、積を形成するために前記暗号文メッセージに乗算されるマスクを構成するように自然モンゴメリー逆数2-nを使用し、且つ、前記積の関数から平文メッセージをリトリーブするのを備えることを特徴とする方法。
【請求項7】
請求項2に記載の方法において、さらに、
積を形成するために前記マスクを前記暗号文メッセージに乗算し、
マスクされた累乗メッセージを形成するために、前記バイナリモジュラスNを法として前記秘密指数dで前記積を累乗し、
リトリーブされた平文メッセージを形成するために、前記メッセージリトリーバを前記マスクされた累乗メッセージに乗算するのを備えることを特徴とする方法。
【請求項8】
n個のビットを有するバイナリモジュラスNを法として秘密指数dで暗号文メッセージを累乗する働きをする暗号化装置に入力される前記暗号文メッセージをリトリーブする方法であって、
積を形成するために、数2nx mod Nに等しい前記マスクを前記暗号文メッセージに乗算し、
マスクされた累乗メッセージを形成するために、前記バイナリモジュラスNを法として前記秘密指数dで前記積を累乗し、
リトリーブされた平文メッセージを形成するために、前記メッセージリトリーバを前記マスクされた累乗メッセージに乗算するのを備えることを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2007−519305(P2007−519305A)
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2006−539075(P2006−539075)
【出願日】平成16年11月16日(2004.11.16)
【国際出願番号】PCT/IL2004/001053
【国際公開番号】WO2005/048008
【国際公開日】平成17年5月26日(2005.5.26)
【出願人】(506165265)エム−システムズ フラッシュ ディスク パイオニアズ リミティド (1)
【Fターム(参考)】