JP4369618B2 - 高速復号化を備えた暗号システムおよび方法 - Google Patents

高速復号化を備えた暗号システムおよび方法 Download PDF

Info

Publication number
JP4369618B2
JP4369618B2 JP2000527056A JP2000527056A JP4369618B2 JP 4369618 B2 JP4369618 B2 JP 4369618B2 JP 2000527056 A JP2000527056 A JP 2000527056A JP 2000527056 A JP2000527056 A JP 2000527056A JP 4369618 B2 JP4369618 B2 JP 4369618B2
Authority
JP
Japan
Prior art keywords
value
function
message
encoder
decoder
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.)
Expired - Fee Related
Application number
JP2000527056A
Other languages
English (en)
Other versions
JP2004524548A (ja
JP2004524548A5 (ja
Inventor
ダイ,ウェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004524548A publication Critical patent/JP2004524548A/ja
Publication of JP2004524548A5 publication Critical patent/JP2004524548A5/ja
Application granted granted Critical
Publication of JP4369618B2 publication Critical patent/JP4369618B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Description

【0001】
(技術分野)
本発明は、暗号化および復号化処理を実行する暗号のシステム、コンピュータ、コンピュータ実施形方法に関するものである。詳細には、本発明は、復号化処理を実行する速度を向上させた暗号システムに関するものである。
【0002】
(発明の背景)
公開鍵暗号法は、これがなければ安全でない通信チャンネルを介してメッセージを安全に伝送するために広く使用されているアプローチである。公開鍵暗号法は、非対称の鍵ペアを用いる。“非対称”の暗号鍵ペアは、2つの別個の鍵から成っており、データを1方向に操作する第1の鍵と、この操作したデータをその元の形態に変換し戻す第2の鍵とである。これら鍵は、一方の鍵を他方の鍵から(少なくとも法外でない時間内に)計算できないという数学的関係に基づいている。
【0003】
暗号鍵ペアは、異なった機能のために使用することができ、例えば、暗号化、復号化、デジタル署名、署名検証、認証である。1例として、非対称の鍵ペアを使用する暗号化と復号化は、以下のように表すことができる。
【0004】
【数32】
Figure 0004369618
【0005】
ここで、“EKpub”は、公開暗号化鍵“Kpub”を使用して平文メッセージ“M”を暗号文“C”に暗号化する暗号化関数であり、“DKpri”は、秘密の復号化鍵“Kpri”を使用する復号化関数である。この逆も真であって、メッセージは、その秘密鍵を使って“署名”でき、そしてこの署名は、その公開鍵を使って検証することができる。
【0006】
公開鍵システムにおいては、公開鍵は、他の者に配布し、秘密鍵は秘密に保持される。この非対称の公開鍵と秘密鍵とは、2つの結果を保証する。第1に、秘密鍵の保有者のみが、それに対応する公開鍵で暗号化されたメッセージを復号化できることである。第2に、別の者が公開鍵を使ってメッセージを復号化した場合、そのメッセージが、その公開鍵で暗号化されたことそしておそらくその秘密鍵の保有者から生じたことを、その者に保証することができる。
【0007】
最も知られおりかつ最も広く使われている非対称暗号の1つは、RSA暗号式暗号であり、これは、その創作者であるRivest(リベスト)、Shamir(シャミル)およびAdleman(アドルマン)にちなんで名が付けられている。元のRSA暗号システムは、“暗号通信のシステムおよび方法(Cryptographic Communications System and Method)”と題する米国特許4,405,829に記載されており、これは、Rivest(リベスト)、Shamir(シャミル)およびAdleman(アドルマン)の名で、1983年9月20に出願されたものである。この特許は、背景情報として言及により本文に含めるものとする。
【0008】
暗号化および復号化のためのこのRSA暗号は、以下で与えられる。
【0009】
【数33】
Figure 0004369618
【0010】
ここで、p1とp2は素数(prime number)であり、nはn = p1 p2
の形態の合成数であり、eは、(p1-1)(p2-1)と互いに素でる数である。
【0011】
演算“mod”は、“還元(modular reduction)”演算、あるいは単に“モジュロ(modulo)”演算であり、これは、大きな整数算術にとっては一般的な演算である。このモジュロ演算は、算術演算であってその結果が除算演算の剰余である算術演算である。これは、“A mod B”として表現し、ここで、Aは、何等かの底(base)で書かれた数であり、Bは“法(modulus)”である。A mod Bの結果は、数Aを法Bで除算したその剰余である。簡単な例としては、モジュロ演算17 mod 3は、2の結果となるが、それは、17を3で割ると、余りが2となるからである。これは剰余を発生するため、モジュロ演算は、“除算剰余”演算とも代わりに呼ぶことがある。
【0012】
在来のRSA暗号法では、復号化は、暗号化よりもかなり遅いものである。この不一致は、RSA暗号が、メッセージを復号化するのに、この同じメッセージを暗号化するのに必要とするよりもより多くの計算を必要とする、ということに起因している。この不一致は、ある種の環境においては不利となることがある。例えば、クライアント・サーバの状況においては、クライアントとサーバは、暗号化したメッセージを互いに交換することが多い。個々のクライアントは、メッセージを暗号化するのに豊富な時間とリソースを有していることが多い。しかし、サーバは、そのような快適さを経験したことがなく、時には、特に高いクライアント要求量の時間の間において、入来するメッセージを迅速に復号化するその能力が制限されることがある。
【0013】
したがって、RSAアルゴリズムにおける復号化の速度を完全することに対するニーズが存在する。
【0014】
(発明の摘要)
本発明は、RSA暗号における復号化速度を改善する暗号のシステムおよび方法に関係している。この暗号システムは、Zn*の部分群における指数演算に基づく落とし戸転置の新たなファミリを用いる。
【0015】
本システムは、メッセージMを暗号文Cに変換しそして該暗号文Cを通信チャンネルを介して送信するエンコーダを備える。暗号文Cは、2つのコンポーネント、すなわち値Vと値Wを有する。値Vは、数xの関数、すなわちV=xeであり、ここで、eは整数、xは以下の通りであり、
【0016】
【数34】
Figure 0004369618
【0017】
ここで、
(i)nは数n=p12であり、ここで、p1,p2は、素数であって、p1=r11+1,p2=r22+1であり、ここで、r1,r2は乱数、q1,q2は素数であり、
(ii)Rは、前記乱数r1,r2とは独立に選択した乱数であり、
(iii)gは、
【0018】
【数35】
Figure 0004369618
【0019】
であり、ここで、r3は、前記乱数r1,r2,Rとは独立に選択した乱数である。
【0020】
前記値Wは、値h1(x)と前記メッセージMの関数(例えば
【0021】
【数36】
Figure 0004369618
【0022】
である)としてエンコードし、ここで、前記値h1(x)は、前記数xの一方向性関数(例えば、xのハッシュ関数)の結果である。
【0023】
また、前記エンコーダは、前記数xと前記メッセージMのハッシュ関数hを使ってハッシュ値h2(x,M)を計算する。前記エンコーダは、前記暗号文C(値Vと値Wを含む)と前記ハッシュ値h2(x,M)を前記通信チャンネルを介して送る。
【0024】
前記システムは、さらに、前記暗号文Cと前記ハッシュ値h2(x,M)を前記通信チャンネルを介して受け、そして前記暗号文Cを前記メッセージMに変換し戻すように結合したデコーダを備える。該デコーダは、最初に、前記数xを前記値Vから、以下のように得る。
【0025】
【数37】
Figure 0004369618
【0026】
前記デコーダは、前記値Wと前記値h1(x)(例えば、
【0027】
【数38】
Figure 0004369618
【0028】
である)の関数を使って前記メッセージMをデコードする。前記メッセージMを復元した後、前記デコーダは、前記数xと前記復元したメッセージMから、テスト・ハッシュ値h2’(x,M)を計算し、そして前記エンコーダから受けた前記ハッシュ値h2(x,M)を前記テスト・ハッシュ値h2’(x,M)と比較する。これら2つのハッシュ値が一致した場合、前記メッセージMが変更されていないことになる。
【0029】
(好ましい実施形態の詳細な説明)
以下の説明は、読者が暗号技術およびモジュロ演算に精通していることを仮定している。暗号法の基本的な入門として、読者は、シュナイダ(Bruce Schneier)著の“暗号の応用:プロトコル、アルゴリズム、Cのソースコード”と題するテキスト(a text written by Bruce Schneier and entitled, "Applied Cryptography: Protocols, Algorithms, and Source Code in C," second edition, published by John Wiley & Sons with copyright 1996)を参照されたい。尚、これは、言及により本文に含めるものとする。
【0030】
図1は、暗号システム20を示しており、これは、エンコーダ22がデコーダ24に対し通信チャンネル26を介して結合して備えている。暗号システム20は、RSAアルゴリズムに基づく非対称暗号式暗号(asymmetric cryptographic cipher)を用いる。詳細には、この好ましいシステムは、ベレア−ロガウェイ暗号系(BellareRogaway cryptosystem)であり、これは、RSA落とし戸転置ファミリ(RSA trapdoor permutation family)を用いる。
【0031】
一般に、暗号式暗号は、4つの素数p1,p2,q1,q2から成る秘密鍵を用いる。これら素数は、以下の関係である。
【0032】
【数39】
Figure 0004369618
【0033】
ここで、r1とr2は、乱数であるが、上記式におけるそれらの値が素数p1,p2を発生するという要件で制限されている。
【0034】
公開鍵は、秘密鍵から生成する。この公開鍵は、3つの数n,e,gから成る。数eは整数(integer)であり、数n,gは、以下の通り計算する。
【0035】
【数40】
Figure 0004369618
【0036】
ここで、r3は、乱数r1,r2とは独立に選択した乱数である。この乱数r3は、乱数r1,r2とは異なっている可能性が高いが、但しその必要はない。数gは、位数(order)q1,q2のZn*のランダムな要素である。
【0037】
エンコーダ22は、メッセージMを、n,e,gから成る公開鍵を使って暗号文Cにエンコードする。広く述べると、暗号文Cは、メッセージMと数xの関数であり、ここで、xは、Zn*における位数q12を有する。数xは、以下の通り得られる。
【0038】
【数41】
Figure 0004369618
【0039】
ここで、Rは、r1,r2とは独立に選択した乱数である。この乱数Rは、乱数r1,r2とは異なっている可能性が高いが、但し、その必要はない。暗号文Cは、2つのコンポーネント、すなわち、値Vと値Wを有する。値Vは、以下の通り、数xの関数である。
【0040】
【数42】
Figure 0004369618
【0041】
値Wは、値h1(x)とメッセージMとの関数であり、ここで、値h1(x)は、数xの一方向性関数h1の結果である。1つの例として、この一方向性関数は、SHA(安全ハッシュ・アルゴリズム:Secured Hash Algorithm)のようなハッシュ関数として実施する。1つの実現例では、値Wは、排他的OR関数を使って以下のように計算する。
【0042】
【数43】
Figure 0004369618
【0043】
しかし、値h1(x)とMの他の論理的組合せも、この論理演算が可逆性である限り、排他的OR関数の代わりに使用することができる。
【0044】
エンコーダ22は、値VとWを互いにパッケージして暗号文Cを形成し、そしてこれを、通信チャンネル26を介してデコーダ24に送る。デコーダ24は、秘密鍵を使って値Vから数xを再計算するが、この秘密鍵は、以下の通り、公開鍵にp1,p2,q1,q2
を足したものである。
【0045】
【数44】
Figure 0004369618
【0046】
一旦、数xを復元すると、デコーダ24は、以下の通り、値WからメッセージMを再捕捉(recapture)する。
【0047】
【数45】
Figure 0004369618
【0048】
システム20において利用する上記の暗号式暗号は、復号化速度が、標準のRSA暗号における復号化と比べ高速であるという利点がある。この理由は、xの復元において使用する演算
【0049】
【数46】
Figure 0004369618
【0050】
が、在来のRSA暗号において使用するそれに対応する演算
【0051】
【数47】
Figure 0004369618
【0052】
よりもかなり速いからである。
【0053】
この向上した復号化速度は、Zn*の部分群における指数演算に基づく落とし戸転置の新たなファミリを用いることにより実現する。上記の暗号法の暗号は、Zn*のある一定の部分群の利点を用いる。詳細には、この暗号は、gが発生するZn*の部分群を利用して、数xを計算する。これは、Zn*内の位数q12のものである、復号化側での計算を可能にする。
【0054】
この暗号式暗号は、暗号化プロセスが標準RSAアルゴリズムにおける暗号化と比較して低速であるという不利な点がある。これは、この新たな技法に、暗号化側で数xを得るための追加の計算が含まれるからである。追加の計算のこの数は、数xを毎回ではなく時々計算することにより最小限にすることができる。この最適化は、以下に詳細に述べる。
【0055】
全体としては、この暗号式暗号は、RSA暗号とは速度がほぼ等しい。しかし、ある種の状況においては、復号化プロセスの速度を向上させることが、たとえその向上が暗号化を低速にすることを犠牲にしても、利益がある。例えば、クライアント−サーバの状況においては、復号化速度をサーバにて向上させることは、たとえクライアントにおける低速の暗号化を犠牲にすることがあっても、現実に利益がある。クライアントは、メッセージを暗号化するのに十分な時間をもち、したがってより遅い速度は気がつくほどのものとはならず、サーバにおける復号化速度の向上が十分に認識されることになる。
【0056】
図1のアーキテクチャは、暗号機能を使用する多くの異なった環境を表している。例えば、クライアント−サーバの状況においては、エンコーダ22とデコーダ24とは、クライアントとサーバの両方に実装して、LAN(ローカル・エリア・ネットワーク)、WAN(ワイド・エリア・ネットワーク)、インターネットのようなネットワークを介する安全な通信を可能にするようにできる。別の例では、スマートカードの状況においては、エンコーダ22は、スマートカードに実装し、デコーダ24は、通信エージェント(例えば、コンピュータ、ATM、キオスク、販売機、カスタム機械(custom machine)等)に実装することができる。ここでは、チャンネル26は、そのカードとエージェントとの間の電子インターフェースを表す。
【0057】
説明を続けるため、暗号システム20は、パーソナル・コンピュータ、サーバ、ワークステーション、ラップトップ等の汎用コンピュータに実装したものとして説明する。
【0058】
図2は、汎用コンピュータ30の1例の実現例を示している。この汎用コンピュータ30は、処理ユニット32、システム・メモリ34、およびシステム・メモリ34ないし処理ユニット32を含む種々のシステム・コンポーネントを結合するシステム・バス36を含む。システム・バス36は、種々のバス・アーキテクチャのいずれかを用いたメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、数種類のバス構造のいずれでもよい。システム・メモリ34は、リード・オンリ・メモリ(ROM)38、およびランダム・アクセス・メモリ(RAM)40を含む。基本入出力システム(BIOS)42は、ROM38に格納する。
【0059】
また、コンピュータ30は、ハード・ディスクの読み取りおよび書き込みを行うハード・ディスク・ドライブ44、リムーバブル磁気ディスク48の読み取りおよび書き込みを行う磁気ディスク・ドライブ46、並びにCD−ROMまたはその他の光媒体のようなリムーバブル光ディスク52の読み取りおよび書き込みを行う光ディスク・ドライブ50も含むことができる。ハード・ディスク・ドライブ44、磁気ディスク・ドライブ46、および光ディスク・ドライブ50は、ハード・ディスク・ドライブ・インターフェース54、磁気ディスク・ドライブ・インターフェース56、および光ディスク・ドライブ・インターフェース58によって、それぞれシステム・バス36に接続してある。これらのドライブおよびそれに関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびコンピュータ30用のその他のデータの不揮発性格納を提供する。
【0060】
ハード・ディスク、リムーバブル磁気ディスク48およびリムーバブル光ディスク52を記述したが、当業者には分かるように、その他のタイプのコンピュータ読み取り可能媒体もデータを格納するのに使用することができる。他のこのような媒体には、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)等が含まれる。
【0061】
多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク48、光ディスク52、ROM38またはRAM40上に格納することができる。これらプログラムには、オペレーティング・システム60、1つ以上のアプリケーション・プログラム62、その他のプログラム・モジュール64、およびプログラム・データ66が含まれる。
【0062】
ユーザは、キーボード68およびマウス70のような入力デバイスによって、コマンドおよび情報をパーソナル・コンピュータ30に入力することができる。他の入力デバイス(図示せず)として、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星パラボラアンテナ(satellite dish)、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス36に結合したシリアル・ポート・インターフェース72を介して、処理ユニット32に接続しているが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス(USB:universal serial bus)のようなその他のインターフェースによって接続することも可能である。
【0063】
モニタ74または別のタイプのディスプレイ・デバイスも、ビデオ・アダプタ76のようなインターフェースを介して、システム・バス36に接続する。このモニタに加えて、パーソナル・コンピュータは、典型的に、スピーカやプリンタのような、その他の周辺出力デバイス(図示せず)を含む。
【0064】
サーバ・コンピュータ30は、ネットワーク・インターフェースまたはアダプタ78、モデム80,またはネットワーク82(例えば、LAN、インターネット等)を介して通信を確立するためのその他の手段を有する。モデム80は、内蔵型でも外付け型でもよく、シリアル・ポート・インターフェース72を介してシステム・バス36に接続する。
【0065】
暗号システム20は、コンピュータ30内に、ソフトウェア、ファームウェア、ハードウェアとして実装することができる。例えば、エンコーダ22とデコーダ24は、オペレーティング・システム60、アプリケーション・プログラム62、またはプログラム・モジュール64(例えば、DLL−ダイナミック・リンク・ライブラリ)内に実装することができる。代替的には、エンコーダ22とデコーダ24は、ROM38内に実装することもできる。さらに別の実施形態では、エンコーダ22とデコーダ24は、処理ユニット32内に実装することができる。
【0066】
図3は、暗号システム20を使用して、メッセージを暗号化および復号化する方法における例示的なステップを示す。図3に模式的に示したように、ステップ100−106は、エンコーダ22により実行し、ステップ108−114は、デコーダ24で実行する。エンコーダ22は、秘密鍵から得られる公開鍵(すなわち、素数n,e,g)を知っている。これら鍵は、メモリあるいはレジスタに格納することができる。デコーダ24は、秘密鍵(すなわち、数p1,p2,q1,q2)を知っている。
【0067】
ステップ100において、エンコーダ22は、数xを、g、すなわち位数q12のZn*のランダムな要素の関数として計算する。詳細には、エンコーダ22は、xを以下の通りに計算する。
【0068】
【数48】
Figure 0004369618
【0069】
ここで、Rは、乱数である。
【0070】
ステップ102において、エンコーダは、メッセージMをエンコードして暗号文Cを生成する。このエンコーディングは、値Vと値Wの発生を含み、ここで、
【0071】
【数49】
Figure 0004369618
【0072】
である。値h1(x)は、数xの第1のハッシュ関数h1の結果である。暗号文Cは、値Vと値Wから成る。
【0073】
ステップ104において、エンコーダ22は、別のハッシュ値h2(x)を計算し、これは、数xとメッセージMの第2のハッシュ関数h2の結果である。デコーダ24は、このハッシュ値を使って、メッセージMが変更されているか、あるいはエンコーダとデコーダとの間のルートにおいて危険にさらされている(compromise)かどうかチェックする。ステップ106において、エンコーダ22は、暗号文C、
すなわち
【0074】
【数50】
Figure 0004369618
【0075】
と、第2ハッシュ値h2(x,M)を、通信チャンネル26を介してデコーダ24に送信する。
【0076】
ステップ108において、デコーダ24は、暗号文Cと第2ハッシュ値h2(x,M)を受ける。ステップ110において、デコーダ24は、次に、以下の通り、暗号文Cの値Vコンポーネント(すなわち、V=xe)から数xを再計算する。
【0077】
【数51】
Figure 0004369618
【0078】
一旦、数xを復元すると、デコーダ24は、エンコーダ22が用いたのと同じ第1ハッシュ関数h1を使って、ハッシュ値h1(x)を計算する。ステップ112において、デコーダ24は、以下のように、暗号文Cの値WコンポーネントからメッセージMを復元する。
【0079】
【数52】
Figure 0004369618
【0080】
ステップ114において、デコーダ24は、この復元した数xと復元したメッセージMを取り、そしてエンコーダが用いたのと同じ第2ハッシュ関数h2を使ってテスト・ハッシュ値h2’(x,M)を計算する。このテスト・ハッシュ値h2(x,M)が、エンコーダ22から受けたハッシュ値h2(x,M)と等しい場合、デコーダ24に対し、メッセージMが変更されていなかったことを保証する。
【0081】
上記の暗号化/復号化プロセスは、以下の擬似コードにおいて表すことができる。鍵計算は、この暗号化/復号化プロセスの前に一回実行して、鍵値を確立することができる。これら鍵は、必要に応じて更新することができる。
【0082】
鍵計算
【0083】
【表1】
Figure 0004369618
【0084】
暗号化
【0085】
【表2】
Figure 0004369618
【0086】
復号化
【0087】
【表3】
Figure 0004369618
【0088】
1つの実現例では、整数“e”は、2にセットし、これにより、落とし戸転置の新ファミリがZn*の部分群における平方に基づくようにする。
【0089】
この暗号技法の不利な点の1つは、暗号化プロセスが、在来のRSA暗号化よりも遅いことであり、これは、エンコーダが、数xを、Zn*のランダムな要素であるgの関数として計算するからである。この数xを得ることは、在来のRSA暗号には存在しない追加の計算を必要とする。
【0090】
この暗号化フェーズの速度を向上させる1つの方法は、数xを一回計算し、そしてこの古い数xを使用して次の暗号化のための新たな数xを発生することである。特に、この改善は、各新たな暗号化に対するgR mod nを再計算するよりも計算上より激しくない方法で、各新たな暗号化に対し数xを変化させることを含む。古い数xから新たな数xを発生することに対する1つのアプローチは、以下の通りである。
【0091】
【数53】
Figure 0004369618
【0092】
ここで、“k exp(i)”はkiとして表す。
【0093】
エンコーダは、数x(すなわち、x=gR mod n)を計算し、そしてこの数xを、後での使用のため、メモリまたはレジスタに格納する。後続の各暗号化に対し、エンコーダは、xk exp(i)を計算しそして値“i”を選ぶことによりxを変化させ、これにより、xが変化したときに値Vが同じままとなるようにする。次に、エンコーダは、その値iを値Vと共に、値xの復元における使用のためデコーダに送る。
【0094】
値xをいくつかの暗号化に渡って償却(amortize)するこのプロセスは、各エンコーディング手順の間における多くの計算を減らす。この暗号システムは、エンコーダに対する順方向機密(forwardsecrecy)を保護することにより、数xが漏れた場合に、過去のメッセージが危険にさらされないようにするが、将来のメッセージが危険にさらされことがある。エンコーダは、数xを、任意のインターバルであるいは必要と考える任意の時点で完全に再計算することもできる。
【0095】
また、上記の暗号システムは、バッチRSA(RSAの周知の変形例)における復号化速度を向上させるのに使用することができる。この暗号システムは、上述のものと同様であるが、但し、素数p1,p2を得るのに使用する乱数r1,r2を、第1のb素数によって割り切れないようにさらに制限する点で異なっており、ここで、bは復号化バッチ・サイズである。
【0096】
このバッチRSAに対しては、数xはやはり以下のように得られる。
【0097】
【数54】
Figure 0004369618
【0098】
値Vは、以下のように計算する。
【0099】
【数55】
Figure 0004369618
【0100】
ここで、e=(i+1)番目の奇数の素数であり、iはZbからである。
【0101】
復号化側では、値xは、次のように復元する。
【0102】
【数56】
Figure 0004369618
【0103】
バッチRSAの上記変更例は、より迅速な復号化を可能にするが、それは、バッチ逆演算(batch inverse operation)の間において、それら指数は、モジュロq12に還元できるからである。
【0104】
以上、本発明について、構造上および/または方法的ステップに特有の用語で説明したが、添付の特許請求の範囲に定めた本発明は、記述したこの特定の特徴またはステップに必ずしも限定される必要がないことは理解されるべきである。これら特定の特徴およびステップは、特許を請求する発明を実施する好ましい形態として開示したものである。
【図面の簡単な説明】
【図1】 図1は、暗号システムのブロック図。
【図2】 図2は、この暗号システムを実装したコンピュータ・システムのブロック図。
【図3】 メッセージを暗号化および復号化する方法における各ステップを示すフロー図。

Claims (11)

  1. 暗号システムのためのエンコーダであって、
    nは、形態n=pにある数であり、ここで、p,pは、素数であり、
    =r+1,p=r+1であり、ここで、r,rは乱数、q,qは素数であり、
    gは、
    Figure 0004369618
    の形態にある数であり、ここで、rは、前記乱数r,rとは独立に選択した乱数であり、
    前記エンコーダが、
    数x=g mod nを計算する手段であって、ここで、Rは、前記乱数r,r,rとは独立に選択した乱数である、前記の手段と、
    前記数xを一方向性関数hにしたがって変換して値h(x)を発生する手段と、
    メッセージMを前記値h(x)の関数にしたがってエンコードする手段と、
    から成るエンコーダ。
  2. 請求項記載のエンコーダにおいて、前記エンコードする手段は、前記メッセージMを、
    Figure 0004369618
    の関数にしたがってエンコードすること、を特徴とするエンコーダ。
  3. 請求項記載のエンコーダであって、さらに、
    前記数xを記憶する手段と、
    古い前記数xに基づいて新たな数x’を発生する手段と、
    前記新たな数x’を使用して前記値h(x)を得る手段と、
    を含むこと、を特徴とするエンコーダ。
  4. 暗号システムのためのデコーダであって、
    nは、形態n=pにある数であり、ここで、p,pは、素数であり、
    =r+1,p=r+1であり、ここで、r,rは乱数、q,qは素数であり、
    gは、
    Figure 0004369618
    の形態にある数であり、ここで、rは、前記乱数r,rとは独立に選択した乱数であり、
    xは、x=g mod nの形態にある数であり、ここで、Rは、前記乱数r,r,rとは独立に選択した乱数であり、
    eは整数であり、
    VはV=xの形態にある値であり、
    Wは、メッセージMと値h(x)の関数から得た値であり、ここでh(x)は、一方向性関数hの結果であり、
    前記デコーダが、
    前記値Vと値Wを受ける手段と、
    前記値Vから前記数xを復元する手段であって、ここで、
    Figure 0004369618
    である、前記の復元手段と、
    前記数xを一方向性関数hにしたがって変換して前記値h(x)を発生する手段と、
    前記値Wを前記値h(x)の関数にしたがってデコードして、前記メッセージMを再捕捉する手段と、
    から成るデコーダ。
  5. 請求項記載のデコーダにおいて、前記デコードする手段は、関数
    Figure 0004369618
    を計算して、前記メッセージMを再捕捉すること、を特徴とするデコーダ。
  6. 請求項記載のデコーダであって、さらに、前記数xと前記再捕捉したメッセージMとのハッシュ関数hから、ハッシュ値h(x,M)を計算する手段を含むこと、を特徴とするデコーダ。
  7. 暗号システムのためのエンコーダとデコーダとを備える暗号システムであって、
    nは、形態n=p にある数であり、ここで、p ,p は、素数であり、
    =r +1,p =r +1であり、ここで、r ,r は乱数、q ,q は素数であり、
    gは、
    Figure 0004369618
    の形態にある数であり、ここで、r は、前記乱数r ,r とは独立に選択した乱数であり、
    eは整数であり、
    VはV=x の形態にある値であり、
    Wは、メッセージMと値h(x)の関数から得た値であり、ここでh(x)は、一方向性関数hの結果であり、
    前記エンコーダが、
    数x=g mod nを計算する手段であって、ここで、Rは、前記乱数r ,r ,r とは独立に選択した乱数である、前記の手段と、
    前記数xを一方向性関数hにしたがって変換して値h(x)を発生する手段と、
    メッセージMを前記値h(x)の関数にしたがってエンコードする手段とからなり、
    前記デコーダが、
    前記値Vと値Wを受ける手段と、
    前記値Vから前記数xを復元する手段であって、ここで、
    Figure 0004369618
    である、前記の復元手段と、
    前記数xを一方向性関数hにしたがって変換して前記値h(x)を発生する手段と、
    前記値Wを前記値h(x)の関数にしたがってデコードして、前記メッセージMを再捕捉する手段とからなることを特徴とする暗号システム。
  8. 請求項7記載のシステムにおいて、前記エンコードする手段は、前記メッセージMを、
    Figure 0004369618
    の関数にしたがってエンコードすること、を特徴とするシステム。
  9. 請求項7記載のシステムにおいて、前記エンコーダは、さらに、
    前記数xを記憶する手段と、
    古い前記数xに基づいて新たな数x’を発生する手段と、
    前記新たな数x’を使用して前記値h(x)を得る手段と、
    を含むこと、を特徴とするシステム。
  10. 請求項7記載のシステムにおいて、前記デコードする手段は、関数
    Figure 0004369618
    を計算して、前記メッセージMを再捕捉すること、を特徴とするシステム。
  11. 請求項7記載のシステムにおいて、前記デコーダは、さらに、前記数xと前記再捕捉したメッセージMとのハッシュ関数hから、ハッシュ値h(x,M)を計算する手段を含むこと、を特徴とするシステム。
JP2000527056A 1997-10-20 1998-09-16 高速復号化を備えた暗号システムおよび方法 Expired - Fee Related JP4369618B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/953,911 US6081598A (en) 1997-10-20 1997-10-20 Cryptographic system and method with fast decryption
PCT/US1998/019349 WO1999034552A2 (en) 1997-10-20 1998-09-16 Cryptographic system and method with fast decryption

Publications (3)

Publication Number Publication Date
JP2004524548A JP2004524548A (ja) 2004-08-12
JP2004524548A5 JP2004524548A5 (ja) 2004-12-24
JP4369618B2 true JP4369618B2 (ja) 2009-11-25

Family

ID=25494714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000527056A Expired - Fee Related JP4369618B2 (ja) 1997-10-20 1998-09-16 高速復号化を備えた暗号システムおよび方法

Country Status (7)

Country Link
US (1) US6081598A (ja)
EP (1) EP1031204B1 (ja)
JP (1) JP4369618B2 (ja)
CN (1) CN1282325C (ja)
CA (1) CA2307619C (ja)
DE (1) DE69833334T2 (ja)
WO (1) WO1999034552A2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
GB9410337D0 (en) * 1994-05-24 1994-07-13 Cryptech Systems Inc Key transmission system
KR100332763B1 (ko) * 1999-02-10 2002-04-17 구자홍 디지탈데이터 플레이어의 복제방지 장치 및 방법
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
US20020039420A1 (en) * 2000-06-12 2002-04-04 Hovav Shacham Method and apparatus for batched network security protection server performance
US20020087884A1 (en) * 2000-06-12 2002-07-04 Hovav Shacham Method and apparatus for enhancing network security protection server performance
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus
US7137143B2 (en) 2000-08-07 2006-11-14 Ingrian Systems Inc. Method and system for caching secure web content
US7155610B2 (en) * 2000-12-19 2006-12-26 Matsushita Electric Industrial Co., Ltd. Cryptocommunication system, transmission apparatus, and reception apparatus
US7757278B2 (en) * 2001-01-04 2010-07-13 Safenet, Inc. Method and apparatus for transparent encryption
JP4284867B2 (ja) * 2001-01-18 2009-06-24 株式会社日立製作所 標準モデル上で適応的選択暗号文攻撃に対して安全な公開鍵暗号方法
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7164765B2 (en) * 2001-04-11 2007-01-16 Hitachi, Ltd. Method of a public key encryption and a cypher communication both secure against a chosen-ciphertext attack
US6718536B2 (en) * 2002-06-21 2004-04-06 Atmel Corporation Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
AU2003262857A1 (en) * 2002-08-24 2004-03-11 Ingrian Networks, Inc. Selective feature activation
JP4563037B2 (ja) * 2003-01-24 2010-10-13 シャープ株式会社 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US8442219B2 (en) * 2004-03-31 2013-05-14 Jesse Lipson Public key cryptographic methods and systems
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US20060251248A1 (en) * 2005-05-03 2006-11-09 Jesse Lipson Public key cryptographic methods and systems with preprocessing
US20070079386A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Transparent encryption using secure encryption device
US20070079140A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Data migration
US20070074038A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Method, apparatus and program storage device for providing a secure password manager
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US8386768B2 (en) * 2006-02-08 2013-02-26 Safenet, Inc. High performance data encryption server and method for transparently encrypting/decrypting data
US7958091B2 (en) 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
US8379865B2 (en) * 2006-10-27 2013-02-19 Safenet, Inc. Multikey support for multiple office system
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
US10574451B2 (en) * 2017-10-19 2020-02-25 Bank Of America Corporation Method and apparatus for perfect forward secrecy using deterministic hierarchy

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US5323464A (en) * 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking
US5483598A (en) * 1993-07-01 1996-01-09 Digital Equipment Corp., Patent Law Group Message encryption using a hash function
EP0639907B1 (en) * 1993-08-17 1999-12-08 R3 Security Engineering AG Digital signature method and key agreement method
FR2737369A1 (fr) * 1995-07-26 1997-01-31 Trt Telecom Radio Electr Systeme de communication de messages cryptes selon un procede de type r.s.a.

Also Published As

Publication number Publication date
US6081598A (en) 2000-06-27
DE69833334D1 (de) 2006-04-13
EP1031204A2 (en) 2000-08-30
CN1282325C (zh) 2006-10-25
CA2307619A1 (en) 1999-07-08
CA2307619C (en) 2008-09-09
JP2004524548A (ja) 2004-08-12
DE69833334T2 (de) 2006-10-26
WO1999034552A9 (en) 1999-10-28
EP1031204B1 (en) 2006-01-25
CN1281607A (zh) 2001-01-24
WO1999034552A2 (en) 1999-07-08
WO1999034552A3 (en) 1999-09-16

Similar Documents

Publication Publication Date Title
JP4369618B2 (ja) 高速復号化を備えた暗号システムおよび方法
US7221757B2 (en) Method and system for accelerated data encryption
JP2606419B2 (ja) 暗号通信システムと暗号通信方法
JP3864675B2 (ja) 共通鍵暗号装置
USRE40530E1 (en) Public key cryptographic apparatus and method
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
US6396926B1 (en) Scheme for fast realization of encrytion, decryption and authentication
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
EP0936776B1 (en) A network system using a threshold secret sharing method
US6813358B1 (en) Method and system for timed-release cryptosystems
JPH09230787A (ja) 暗号化方法および装置
EP3817323B1 (en) Encryption processing system, encryption processing method, and program
US20080294905A1 (en) Secure approach to send data from one system to another
US7248692B2 (en) Method of and apparatus for determining a key pair and for generating RSA keys
US20060251248A1 (en) Public key cryptographic methods and systems with preprocessing
EP2395698A1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
US20040208317A1 (en) Encrypting device, decrypting device, cryptosystem including the same devices, encrypting method, and decrypting method
AU2002323203B2 (en) Method and system for accelerated data encryption
JP7310938B2 (ja) 暗号システム、暗号化方法、復号方法及びプログラム
JPH1155244A (ja) 鍵回復方法および装置
JP2004302378A (ja) 暗号化方式、復号化方式並びに暗号化システム、復号化システム
JP2001222218A (ja) 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体
JPH06138820A (ja) 暗号化装置及び暗号復号装置
JP2002305517A (ja) 共通鍵暗号装置と共通鍵暗号の復号装置
Marsh Public-Key Image Encryption Using Image Processing Hardware

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050729

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050729

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081027

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees