JP2000500886A - ランダムに生成されたペアをプリコンピューティングすることによるアクセラレイティング公開鍵暗号技術 - Google Patents

ランダムに生成されたペアをプリコンピューティングすることによるアクセラレイティング公開鍵暗号技術

Info

Publication number
JP2000500886A
JP2000500886A JP10510103A JP51010398A JP2000500886A JP 2000500886 A JP2000500886 A JP 2000500886A JP 10510103 A JP10510103 A JP 10510103A JP 51010398 A JP51010398 A JP 51010398A JP 2000500886 A JP2000500886 A JP 2000500886A
Authority
JP
Japan
Prior art keywords
modulo
integer
ord
selecting
pair
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
Application number
JP10510103A
Other languages
English (en)
Inventor
ベンカテサン,ラマラサナム.
ボイコ,ビクター.
Original Assignee
ベル コミュニケーションズ リサーチ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ベル コミュニケーションズ リサーチ,インコーポレイテッド filed Critical ベル コミュニケーションズ リサーチ,インコーポレイテッド
Publication of JP2000500886A publication Critical patent/JP2000500886A/ja
Pending legal-status Critical Current

Links

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/3013Public 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 discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 公開鍵セキュリティ・アルゴリズムで使用するために秘密鍵/公開鍵のペアを生成する装置。この装置はセキュリティ・パラメータ・データベース(12)、コントロール・モジュール(101)、オペレーティング・システム(11)、プリコンピューテーション装置(102)、テーブルT装置(103)、オンライン・コンピューテーション装置(104)、および公開鍵セキュリティ・アルゴリズム装置(13)を有する。オフラインのプリコンピューテーションの使用により、この装置はオンラインで実行する大きな整数の離散的な指数演算の量を削減する。

Description

【発明の詳細な説明】 ランダムに生成されたペアをプリコンピューティングすることによる アクセラレイティング公開鍵暗号技術関連出願 本出願は、“プリコンピューテーションを用いてランダムに配送されたペアを 生成するための方法およびシステム(Method and System f or Generating Randomly Distributed P airs Using Precomputation)”という名称で199 6年8月16日にVictor BoykoおよびRamaranthhnam Venkatesanによって出願された米国仮出願番号60/023,954 号の恩恵を主張する。この仮出願の内容は、その出願番号を参照することにより 本明細書の一部とする。発明の分野 本発明は、離散対数(discrete logarithms)計算の困難 性に依存してそのセキュリティを行うある種の公開鍵(public−key) 暗号技術システムで使用するための秘密鍵(private key)および公 開鍵のランダムに配送されたペアを生成するための高速な方法およびシステムに 関する。本発明の方法は、他の方法よりはるかに速く第2および次の鍵のペアを 計算する、速いオンライン・ステップをプリコンピューテーションと組み合わせ る。発明の背景 デジタル商取引(Digital commerce)は、ドキュメントが詐 欺師から来ていないこと、および、ドキュメントが配信中に変更されていないこ とを保証するためのデジタル方法を必要とする。Bruce Schneier は、デジタル・メッセージの安全を保持するための技術および科学を、ニューヨ ークのJohn Wiley&Sons、Inc.(会社名)により1996年 に発行された彼の著作“応用暗号技術、第2版(Applied Crypto graphy,Second Addition)”で、総合的に紹介している 。 暗号技術学会(cryptography community)が、デジタ ル署名および認証のために工夫してきたいくつかの方式は、長い整数の数百桁長 もある公開整数によるモジュロの指数演算(the exponentiati on of long integers modulo a publici nteger)を取り扱う。これらの方式のセキュリティ性は、離散対数を計算 して秘密の幕指数(exponents)を知ることの実行不可能性に依存する 。 離散対数に基づいたシステムは、ここ数十年において広範に研究され、かつ使 用されている。例えば、Diffie−Hellman鍵交換、EIGamal 暗号、EIGamalおよびDSS署名、および認証および署名のためのSch norr方式がある。これらの方式は、(k,gkモジュロ p)の形式のペア を生成することを必要とする。ここで、kはgのオーダー(order)に対す るランダムに配送されたモジュロであり、pは好ましくは数百桁長である正素数 であり、および、g<pは1桁の数のみであり得る別の正整数である。モジュロ 演算において、任意の非負整数Qのモジュロ pの値は、除算Q/pの余りであ り、およびその取り得る値は、[0,p−1]の範囲内の整数である。 通常、gはpの生成元(generator)であり、そのことは集合[1, p−1]における各整数yに対して、y=gkモジュロ pとなるような、ある 整数kが存在することを意味する。pは好ましくは素数であるので、gは一様に それを割り切れず、それで0およびpは集合内にない。この集合は、Z* pと呼ば れ、および、その要素(members)は、乗算 モジュロ pに関する群( group)を形成する。gが生成元 モジュロ pでないときは、gk モジュロ pの取り得る値は、乗算 モジュロ pに関する群を依然として形成 する。すなわち、いずれかの2つの値gkおよびgk´モジュロ pの積は、gk+ k ´モジュロ pと等しく、これもまた群の要素である。この群を形成する異な る(distinct)整数の集合は、1,g,g2,.....,gord(g)-1であり 、ここで、ord(g)は、pにおけるgのオーダー(order)の省略形で ある。従って、kは集合[0,ord(g)−1]内にあり、および、gkは、 Zord(g)の要素である。集合[0、ord(g)−1]は、Zord(g)とも称され 、およびその要素は、加算 モジュロ ord(g)に関する群を形成する。 A. Diffie−Hellman鍵共有(key agreement) プロトコル 二人の当事者(parties)が、このアルゴリズムを使用して、セキュリ ティの保証されていない接続(insecure connection)にお いて公開鍵を交換することにより、秘密鍵を安全に確立することができる。各当 事者は秘密鍵も持ち、およびそれらの両当事者は、自分自身の秘密鍵および他の 当事者の公開鍵から、同一の秘密鍵を計算することができる。各当事者はついで 秘密鍵暗号技術を使用して、さらにメッセージの交換を安全に行うことができる 。 2つのDiffie−Hellmanパラメータpおよびgは公開されている 。秘密鍵を確立することを望むいずれかの2人の当事者であるアリスおよびボブ は、 ジュロ pを計算して、彼女にそれを送信する。2つの公開鍵をコピーした第三 の当事者であるイブは、p−1が小さな素因数しか持たない場合を除き、既知の 方法により秘密鍵のいずれも計算することはできない。それゆえ、p−1が少な くとも1つの大きな素因数を持つpの値が暗号技術ではしばしば使用される。ア のトチエント関数(Euler totient function)である。 幕指数におけるモジュロ演算は、kaおよびkbのオーダー(order)には依 存せず、従ってアリスおよびボブは、同じ結果を計算する。 B. EIGamal暗号 EIGamal暗号も、離散対数計算の困難性にそのセキュリティの根拠をお く。アリスはこのアルゴリズムを使用して、メッセージMを暗号化することによ り、ボブだけがそれを読むことができるようにすることができる。メッセージM はpよりも小さく制限され、および以降のすべての計算は、モジュロ pで実行 されるべきものである。もちろん、より長いメッセージは充分に多くの短い分割 部分に分けて送信することができる。まず最初に、アリスは上述のように、乱数 のペアkおよびgk モジュロ pを選択するが、それらは実際には鍵のペアで はない。ボブは、自分の秘密鍵xを選択し、そして自分の公開鍵y=gx モジ ュロ pを計算する。アリスはボブの公開鍵yを用いて、Myk モジュロpを 計算することによりMを暗号化し、そしてe(M,k)=(gk、Myk)をボブ に送る。ボブは、第1のパートおよび自分の秘密鍵xを使用して、(gkx=( gxk=ykを計算する。ついで、彼はこの結果を彼がアリスから受信した署名 の第2のパートで除算して、メッセージMを復元する。 C. EIGamal署名 メッセージMに署名するために、アリスは自分の公開鍵y=gx モジュロ pのみを示しながら、彼女が自分の秘密鍵xを使用していることをボブに伝える 。アリスは、kがp−1に対し互いに素である必要がある、第2のペアkおよび gk モジュロ pをも選択する。このことは、2つの数kおよびp−1は1以 外 に公約数を共有しないことを意味する。アリスがボブに提示した署名S(M,k )は、2つの量(quantities)rおよびsを持つ。ここで、r=gk モジュロ pおよびM=(xr+ks)モジュロ(p−1)である。アリスは sを解くことができるが、その理由は、kおよびp−1が互いに素であるとき、 k-1モジュロ(p−1)が存在するからである。この時点で、アリスおよびボブ はp、g、y、r、およびsがわかる。もちろん、ボブはアリスが署名をしたメ ッセージMもわかる。署名を検証するために、ボブはrsr=gMであるかチェ ックする。これにより検証がとれたことがわかる。その理由は、pが素数である ときはf(p)はp−1と等しいので、rsr モジュロ pがg(xr+ks)モシ゛ュロ (p-1) モジュロ pと等しいからである D. DSS署名 DSS署名において、qはp−1の大きな素数の約数(divisor)であ り、およびgq=1 モジュロ pである。アリスは秘密鍵xを選択し、そして y=gx モジュロ pを公開する。メッセージMの署名S(M,k)=(r、 s)を生成するために、アリスはkを選択し、そしてr=(gk モジュロ p )モジュロ qおよびs=(M+xr)k-1 モジュロ qを計算する。ボブは ((gMr)s-1 モジュロ p)モジュロ qを計算する。アリスの公開鍵yの 定義を用いることにより、項(term)yr モジュロ pが、(gxr モ ジュロ p=gxr モシ゛ュロ f(p)=gxr モシ゛ュロ qに簡単化される。その理由は、p が素数であり、f(p)=p−1、xr mod p−1が、xr mod q プラス qの整数倍、およびgq=1であるからである。また、(gMS-1 モジュロ p = gMs-1 モシ゛ュロ pモジュロ pでもあるが、その理由は、Ms-1 モジュロ p−1は、Ms-1 モジュロ q プラス qの整数倍、および gq=1であるからである。従って、もしもアリスがsの評価にあたって自分の 秘密鍵xおよび自分の秘密のkを使用したならば、ボブは、((gMr)s-1 モ ジュロ p) モジュロ q= (g(M+xr)s-1 モシ゛ュロ q モジュロ p)モジュロ q= (gk モシ゛ュロ q モジュロ p)モジュロ q= (gk モジュロ p)モジュロ q =r であるとわかるはずである。 E. Schnorr認証 認証方式により、アリスは、彼女が秘密を知っていることを、ボブがその秘密 を知ることなしに、ボブに証明することができる。例えば、ボブがサーバであり 、および秘密がアリスのパスワードであると仮定する。サーバはアリスのパスワ ードを知る必要はなく;アリスがそれを知っていることを検証することだけが必 要である。もし、パスワードが、暗号化されたフォームであっても、サーバに保 持されていないならば、サーバのセキュリティ設計はさらにより強固なものとな る。 Schnorrの認証方式において、qはp−1の大きな素数の約数であり、 そしてgq=1 モジュロ pである。アリスはqよりも小さな秘密鍵sを生成 し、そして彼女の公開鍵v=a-s モジュロ pを計算する。アリスが、彼女の 秘密鍵sをボブに知らせたことを証明したい時は、彼女はランダムなk∈Z* qを 生成し、そしてx=gkを計算する。アリスはxをボブに送信し、ついで、彼は 0と2t−1の間の乱数rを選び、そしてそれをアリスに戻す。この時点で、ア リスとボブの双方共にp、g、q、v、xおよびrを知っているが、アリスのみ がkを知っており、更に本物のアリスのみがsを知っている。アリスは、y=( k+sr)モジュロ qをボブに送信する。ボブは、gyr=g(k+sr)モシ゛ュロ q (g-s モジュロ p)rを計算する。幕指数の積は、モジュロ f(p)=p −1で計算されるので、ボブは、g(k+sr)モシ゛ュロ q-srモシ゛ュロ p-1を得る。qは p−1の約数であるので、−sr モジュロ p−1は、−sr mod q プラス qの整数倍となるが、gq=1であるので、ボブはgkに至り、彼はxを 検証することができる。あるs´を推測することによって、ボブをだまそうとす る詐欺師は、(s´−s)r モジュロ q=0のときに成功するであろう。 F. Schnorr署名 Schnorr署名方式において、qはp−1の大きな素数の約数であり、お よびgq=1 モジュロ pである。アリスは、qより小さい秘密鍵sを生成し 、そして自分の公開鍵v=a-s モジュロ pを計算する。従って、p、q、g 、sおよびvは、Schnorr認証と同様の方法で定義される。アリスは署名 S(M,k)=(r,y)を形成する。ここでr=h(gk、M)は、0および 2t−1の範囲の値を与えるハッシュ関数であり、およびy=(k+sr)モジ ュロ qである。この時点で、アリスとボブの双方共にメッセージM、ならびに p、g、q、v、yおよびrを知っているが、アリスのみがkを知っており、更 に本物のアリスのみがsを知っている。ボブはgkを知らない。しかしながら、 ボブはgyr=g(k+sr)モシ゛ュロ q(g-s モジュロ p)rを計算する。冪指数の 積はモジュロ f(p)=p−1で計算されるので、ボブは、g(k+sr)モシ゛ュロ q -sr モシ゛ュロ p-1を得る。qはp−1の約数であるので、−sr モジュロ p −1は−sr mod q プラス qの整数倍であるが、gq=1であり、従 って、もしも署名が本物であるならば、ボブはgkに至る。彼はついでh(gk、 M)=rを検証するために自分でハッシュを実行する。Schnorr認証と同 じように、アリスのみがkを知り、および本物のアリスのみがsを知る。彼女の 秘密鍵がs´であると推測することによって、アリスの署名を捏造しようとする 詐欺師は、(s´−s)r モジュロ q=0のときに成功する。 G. 第2mの根(2mth root)認証方式(Shoup認証) Victor Shoupは、この認証プロトコルを、「コンピュータ・サイ エンスにおけるレクチャ・ノート(Lecture Notes in Com puter Science)」(Springer−Verlag,Berli n(1996))の1070巻の344〜353頁で、暗号学の進歩(Advan ce in Cryptology):EUROCRYPT’96(編集者Ue li Maurer)において発表した“実用的認証方式のセキュリティに関 して(On the Security of a Practical Id entification Scheme)”という論文において最初に述べた 。モジュラス(法)は、2つのランダムに選択された同じ長さの素数pおよびq の積であり、かつそれらの素数の双方が3 モジュロ 4と等しい。公開の冪指 数はe=2mである。アリスは彼女の秘密鍵として正整数a∈Z* pqを選択し、そ して彼女の公開鍵としてb=ae モジュロ pqを計算する。アリスが、彼女 が自分の秘密鍵aをボブに知らせたことを証明したい時は、彼女は正整数k∈Z* pq をランダムに選択し、x=ke モジュロ pqを計算し、そしてxをボブに 送信する。ボブは[0,e−1]においてrをランダムに選択し、rをアリスに 送信する。アリスはy=kar モジュロ pqを計算し、そしてyをボブに送 信する。この時点で、アリスおよびボブはpqならびにb,x,rおよびyを知 る。アリスはpqを知り、そしてもしも彼女が本当のアリスであるならば、彼女 はaをも知る。ボブは、オイラーのトチエント(p−1)(q−1)を使用して 、ye=(kar モジュロ pq)e モジュロ pq=kere モシ゛ュロ (p-1)(q -1) モジュロ pqを計算して、素数pおよびqの積を求める。指数演算の順 序は反転することができるので、ボブはye=ke(ae モジュロ pq)rモジ ュロ pq=xbr モジュロ pqを検証する必要がある。ボブをだまそうと している詐欺師は、b モジュロ pqのeth根をとることによりアリスの秘密 鍵を決定する問題に直面することになるであろう。これは、もしも因数分解pq が困難であるなら、困難になる。Shoupは、もしも因数分解pqが困難であ るならば、本方式は積極的な攻撃に対しても安全であることを示した。積極的な 攻撃において、詐欺師はボブと対話することが繰り返しでき、そしてそのプロト コルから逸脱することができる。 現在の技術によるパーソナル・コンピュータは、典型的には、(k,gk モ ジュロ p)または(k,ke モジュロ p)の形式の公開鍵のペアを1秒よ り短い時間で計算することができる。このことは、頻繁に行われないトランザク ションに対しては許容でき、それは“パーソナル”コンピュータのアプリケーシ ョンにおける場合にまさに該当する傾向にある。しかしながら、パーソナル・コ ンピュータは日用品になってきており、そしてハイエンドPCは、小規模イン ターネット・サービス・プロバイダによりサーバとしてうまく使用もされてきて いる。このようなアプリケーションにおいて、計算負荷は平均数のユーザにより 複雑化し、そしてセキュリティを必要とする電子商取引が拡大するにつれて隘路 となるであろう。従って、本発明の目的は、離散対数計算または2つの大きな素 数を掛け算することにより構成される数の因数分解の実行不可能性に依存する公 開鍵アルゴリズムで使用するためのランダムな鍵のペアを計算するより効率的な な方法を提供することにある。発明の要約 Diffie−Hellman鍵生成において使用される指数演算gk モジ ュロ pは、プリコンピューテーション・ステップによりアクセラレートされる ことができる。代表的には、kが[1,p−1]の範囲でランダムに選ばれたと きに、プリコンピューテーションでgk モジュロ pを計算するのに、(lo g p)/(log log p)程度の乗算ステップをとる。しかしながら、p が数百桁長であるとき、(log p)/(log log p)は依然として大 きな数である。 本発明の方法は、[1、ord(g)−1]において一様に分散されたkの値 を生成し、およびプリコンピューテーション後に、事前に計算されたn個の指数 る。本発明による好適な方法は、以下のようにして実行される: 充分に大きくなるようにする。 2.事前処理ステップを実行する: n個のランダムな整数αi∈Zord(g)を生成する。各iに対しβi =gαiを計算し、αiおよびβiの得られた値をテーブルにストアする。 3.ペア(x、gx)が要求される時は、オンライン・ステップを実 行する: |S|=κとなるようなS⊂[1,n]をランダムに生成する。 k=Σi ∈Sαi mod ord(g)とする。 もしk=0ならば中止し、およびSを再び生成する。 K=Πi ∈Sβiとし、そして結果として(k、K)をリターンす る。 プリコンピューテーションはn個の法指数演算を実行する。鍵のペアを生成する この方法は、アクセラレートされた鍵のペアが使用されたときに、アルゴリズム がまさにランダムな鍵のペアで見破られる場合を除き、それらを見破ることはで きないという点で、公開鍵アルゴリズムのセキュリティを確保する。即ち、敵は gk モジュロ pからkを計算しようと努めるが、本発明の方法により鍵のペ アが作られることを知ることからは、なんら重要な利点を得ることができない。 プリコンピューテーションは、プリコンピューテーションされた量のランダムな 部分集合の高速なオンラインの乗算でも使用され、Shoup認証のための鍵の ペアを生成することができる。この方法は、第2m根認証方式としても知られ、 (k、ke モジュロ pq)の形式の鍵のペアを使用するが、ここでkは[1 、pq−1]においてランダムに分散し、pおよびqはランダムに選択された同 じ桁長の素数であり、eは固定値である。 プリコンピューテーション・ステップは、gk モジュロ pを[b,b2,b4 ,...,b2 (n-1)]の形式の集合からのκ要素の積として明示された値に限定す ることによりさらにアクセラレートされることができる。即ち、gkはプリコン ピューテーション・ステップにおいて一度だけ乗算により直接的に計算される。 その後は、各々の次の要素が前の要素を2乗することにより生成され得る。従っ て、プリコンピューテーションは1個の指数演算およびn−1個の乗算のみから なる。 本発明のオンライン部分は、グラフ理論の結果を使用してさらにアクセラレー トすることもできる。正整数r<ord(g)はkに加算され、そして鍵のペア の他の半分はgr モジュロ pにより乗算される。順次の鍵のペアが評価され る時、rは、それがkを許可する値の集合においてランダムに歩行(walk) するようにして更新される。この変化は、鍵のペアを計算するための1個の乗算 を加えるが、それが導入する長期(long−term)のランダム性は、κの より小さな値を用いて、鍵ペア毎のいくつかの乗算の全体の節約をもたらすよう に使用できる。 本発明の構成および作用は、添付図面と関連して行われる以下の実施例の詳細 な説明の検討から理解されよう。図面の簡単な説明 図1Aは、本発明によって、プリコンピューテーションおよびオンライン・コ ンピューテーション・ステップを使用する秘密および公開鍵のペアを生成するた めのシステムの概略図を示す; 図1Bは、システムが使用するセキュリティ・パラメータ・データベースの中 のレコードの構成を示す; 図2は、図1Aのシステムが、公開鍵セキュリティ・アルゴリズムが作動する 外部オペレーション・システムからのコマンドに応じて実行する方法のフロー図 を示す; 図3Aは、プリコンピューテーション・モジュールが実行する方法のフロー図 を示す; 図3Bは、図1Aのシステムの第1実施例が(k、gk モジュロ p)の形 式の鍵のペアを計算する時にオンライン・コンピューテーション・モジュールが 実行する方法のフロー図を示す; 図4Aは、プリコンピューテーション・モジュールが実行する方法のフロー図 を示す; 図4Bは、図1Aのシステムの第2実施例が(k、ke mod pq)の形 式の鍵のペアを計算する時にオンライン・コンピューテーション・モジュールが 実行する方法のフロー図を示す; 図5は、図1Aのシステムの第3実施例が(k、gk モジュロ p)の形式 の鍵のペアを計算する時にプリコンピューテーション・モジュールが実行するア クセラレートされた方法のフロー図を示す; 図6Aは、プリコンピューテーション・モジュールの拡張された初期化ステッ プのフロー図を示す; 図6Bは、図1Aのシステムの第4および第5実施例における、オンライン・ コンピューテーション・モジュールの拡張された初期化ステップのフロー図を示 す;発明の詳細な説明 発明の概観 図1Aは、(k,gk モジュロ p)または(k,ke モジュロ pq)の 形式の秘密鍵および公開鍵のペアを高速に生成するための装置100を概略的に 示す。システムはデータおよびソフトウェアで実行されることができ、または専 用ハードウェアに埋め込まれることができる。システムは、少なくともコントロ ール・モジュール101、プリコンピューテーション・モジュール102、中間 の(intermediate)鍵のペアのテーブル103、オンライン・コン ピューテーション・モジュール104、および最終の(final)鍵のペア( k、K)のための一時的記憶装置105を備える。システムは、拡張グラフ理論 に基づくオプションのセキュリティ拡張機能においては、第2テーブルTexp1 06およびランダムな鍵のペア(r,R)107も使用してもよい。 コントロール・モジュールは、オペレーション・システム11および公開鍵セ キュリティ・アルゴリズム13からのコマンドを受け付け、そしてセキュリティ ・パラメータ・データベース12からのセキュリティ・パラメータを読み込 む。プリコンピューテーション・モジュールは、コントロール・モジュールから セキュリティ・パラメータを受け取り、そのパラメータを使用して中間の鍵のペ アを計算し、そして中間の鍵のペアをテーブルTおよびTexpにストアする。プ リコンピューテーション・モジュールはランダムな鍵のペア(r,R)を初期化 もする。コントロール・モジュールからの命令で、オンライン・コンピューテー ション・モジュールは、テーブルTおよびTexpから中間の鍵のペアを受け付け 、ランダムな鍵のペア(r,R)を更新し、そして最終の鍵のペア(k,K)を 計算する。 公開鍵セキュリティ・アルゴリズムからの入力において、コントロール・モジ ュールは、オンライン・コンピューテーション・モジュールに公開鍵セキュリテ ィ・アルゴリズムへ最終の鍵のペアを出力するように命令する。 セキュリティ・パラメータ・データベースは、各公開鍵セキュリティ・アルゴ リズムのためのレコードを含み、および各レコードは図1Bで図示したようなフ ィールドにおける情報を持つ。PKSA121は、システム100からの鍵のペ アを要求する公開鍵セキュリティ・アルゴリズム13を特定する。プリコンピュ ーテーション・モジュール102およびオンライン・コンピューテーション・モ ジュール104のオペレーションは、以下に説明する種々の実施例において公開 鍵セキュリティ・アルゴリズムに依存する。AP122は、プリコンピューテー ション・モジュールがアクセラレートされたプリコンピューテーション方法を実 行する必要があるかどうかを示し、およびEG123は、拡張グラフがシステム により生成された最終の鍵のペアのセキュリティを高めるために使用される必要 があるかどうか示す。APおよびEGは、真(true)/偽(false)の 2値フラグであることが好ましい。法(モジュラス)124は、それが素数であ るときにはpにより示され、および表記pqは、モジュラスが2つの素数pおよ びqの積、好ましくは同じ桁長である時に使用される。1つの素数のモジュロp を使用するアルゴリズムは、Z* pの要素であるパラメータg125も使用する。 次のパラメータord(g)126は、集合1,g,g2,...,gord(g)-1の要 素の数を参照する。ここでord(g)はgord(g)=1を満たす最小の正整数で ある。中間の鍵のペアのテーブルT103の長さがn127 であり、そしてk128は、オンライン・コンピューテーション・モジュール1 04により使用されるTの部分集合の大きさである。最後のパラメータは、拡張 グラフに基づくオプションのセキュリティ拡張機能において使用される中間の鍵 のペアのテーブルTexp106の長さneである。 図2は、外部オペレーティング・システム11が、それが公開鍵セキュリティ ・アルゴリズム13を利用しているという信号を送る時に、本発明のシステム1 00が実行する方法20を示す。ステップ21において、コントロール・モジュ ール101は、セキュリティ・パラメータ・データベース12からセキュリティ ・パラメータを得る。ステップ22において、コントロール・モジュールは、こ れらのパラメータをプリコンピューテーションを実行するための信号と一緒にプ リコンピューテーション・モジュール102へ通す。ステップ23において、コ ントロール・モジュールは、公開鍵セキュリティ・アルゴリズムが鍵のペアを要 求しているか否かテストする。もしも公開鍵セキュリティ・アルゴリズムが要求 しているならば、コントロール・モジュールにより、オンライン・コンピューテ ーション・モジュール104は鍵のペアを計算し、そして公開鍵セキュリティ・ アルゴリズムへ鍵のペアを出力する。コントロール・モジュールが公開鍵セキュ リティ・アルゴリズムへ鍵のペアを送った後,ステップ25において、それはテ ーブルT103にある中間の鍵のペアが終了しているか否かテストする。もしも 中間の鍵のペアが終了しているならば、コントロール・モジュールはステップ2 2に分岐し、そこでプリコンピューティングが再び実行される。もしも中間の鍵 のペアが終了していないならば、コントロール・モジュールはステップ23に戻 り、公開鍵セキュリティ・アルゴリズムが別の鍵のペアを必要とするか否かテス トする。もしも公開鍵セキュリティ・アルゴリズムが鍵のペアを必要といないな らば、コントロール・モジュールはステップ26に分岐し、外部オペレーティン グ・システムがまだ公開鍵セキュリティ・アルゴリズムを必要とするか否かテス トする。もしも公開鍵セキュリティ・アルゴリズムが必要とされるならば、コン トロール・モジュールはステップ23に戻る。もしも公開鍵セキュリティ・アル ゴリズムがもはや必要とされないならば、コントロール・モジュールは、外部オ ペレーティング・システムが公開鍵セキュリティ・アルゴリズムを再 び使用する必要性を合図するまで、ウェイトする。 集合Z* pにおける桁長mの所与の素数pおよびgに対して、kがランダムにモ ジュロpを選択した時に未経験なgk モジュロ pを計算するのに、m個の法 乗算(modular multiplication)程度の値を要する。「 コンピュータ・サイエンスにおけるレクチャ・ノート(Lecture Not es in Computer Science)」(Springer−Ve rlag,Berlin(1992年))の658巻の200〜207頁で、暗号 学の進歩(Advance in Cryptology):EUROCRYP T’92(編集者Ueli Maurer)においてE.G.Brickell が発表した“プリコンピューテーションによる速い指数演算(Fast Exp onentiation with Precomputation)”という 論文において、プリコンピューテーションを用いたおおよそm/log mステ ップで整数kに対してgk モジュロ pを計算できることが示された。しかし ながら、mが数百またはそれ以上程度であるとき、m/log mは依然として 大きい。(k,ke モジュロ pq)の形式のペアが、ランダムなモジュロp qを選択したkの独立の値と計算されるときは、プリコンピューテーションは利 用できなく、そして各ペアはe個の法乗算の長さ程度を必要とする。 kがランダムに選択された時、敵は以前生成された鍵のペアを使用できなく、 将来のそれを予言する。しかしながら、順次の値kは互いに完全に独立すること は必要ではない。さらに実用的な要求としては、鍵のペアの列は264のオーダー の反復のある大きな数において繰り返す必要はないことがある。その後、本発明 のシステム100はもし必要であれば再スタートすることができる。プリコンピ ュートされた値であるnのテーブルからエントリしたκをランダムに選択するこ とによりペアを生成する。ひとつの選択を行う方法の数は、n!/κ!(n−κ )!である。その理由は、κ個のエントリのオーダーは不適切なものになるから である。システムがある大きな数L回使用されたとき、繰り返しが発生する確率 は、実行時の異なるペアの数と等しく、それは、一定の確率、すなわち、κ!( n−κ)!/n!をL(L−1)/2倍したものである。従って、L2はn!/ κ!(n−κ)!の程度とする必要がある。従って、例えば、n=28お よびκ=32であれば充分であろう。暗号技術者はこの種の計算をバースディ攻 撃と称するが、その理由は、バースディ攻撃がある2人が同じ誕生日を共有する 人々の驚くべき小さい群を満たすからである。 (k,K=gk モジュロ p)の形式の鍵のペアを生成する システム100および方法20により実行される生成元Gの第1の実施例を、 図3Aおよび図3Bに関連して述べる。ここで、図3Aはプリコンピューテーシ ョン・ステップを示し、および図3Bはオンライン・ステップを示す。Gはプリ コンピューテーション・ステップおよびランダムではないkの値の双方を使用し 、(k,gk モジュロ p)の形式の鍵のペアの生成をスピードアップする。G のこの実施例は、アクセラレートされたプリコンピューテーション・ステップま たは拡張グラフに基づく拡張機能(双方共に以下に説明する)を使用しないので 、AP122=EG123=偽(False)となる。 図3Aは、Gのプリコンピューテーション・モジュール102によりステップ 22において実行されるプリコンピューテーション方法31を示す。ステップ3 11において、方法は正整数g,p,ord(g)およびnを受け付ける。ここ で、pは大きな素数であり、そしてord(g)は、kがいずれかの正整数の場 合にgk モジュロ pを計算することにより生成され得る異なる結果の数であ る。ステップ312において、添え字(index)iは1に初期化され、そし て中間の鍵のペアのテーブルT103は消去される。ステップ313において、 正整数ki∈Zord(g)がランダムに選択される。ステップ314において、方法 はテーブルTを検査し、以前にペアの最初の要素にストアされているか調べる。 もしkiが以前にストアされたならば、方法はステップ313に戻り、そしてラ ンダムにki<ord(g)の別の値を選択する。もしもkiがテーブルTにお モジュロ pと等しく設定される。ステップ316において、要素(ki,Ki) のペアはテーブルTにストアされる。ステップ317において、方法はiをテス トして、n個の中間の鍵のペアが生成され、かつテーブルTにストアされた か否か判定し、そしてもしもそれらがされていれば、方法31は完了する。もし もn個より少ないペアが生成され、かつストアされているならば、方法はステッ プ318に分岐し、そこで添え字iは1によりインクリメントされる。iをイン クリメントした後、方法はステップ313に戻る。従って、ステップ313から 318まではループを形成し、n個のペア(ki,Ki)が生成されかつテーブ ルTにストアされるまで実行される。n個のペアがストアされた時、方法31は 完了する。 図3Bは、鍵のペア(k,K=gk モジュロ p)が公開鍵アルゴリズム1 3により要求されたときに、Gのオンライン・コンピューテーション・モジュール 104によりステップ24において実行されるオンライン・コンピューテーショ ン方法32を示す。ステップ321において、方法はp、ord(g)、κおよび nを受け付け、ついでそれは(k,K)を(0,1)に初期化する。ステップ3 22において、方法は添え字i=1に設定して、そして一時的リストLを消去す る。ステップ323において、正整数jが、1およびnの間からランダムに選択 される。ステップ324において、方法は一時的リストLを検査し、jが以前そ こにストアされているかを調べる。もしもjが以前ストアされているならば、方 法はステップ323に戻り、そしてランダムに別のjの値を選択する。従って、 ステップ323および324は、それが新しいjの値を見つけるまで方法が実行 するループを形成する。ステップ325において、jは受け付けられ、そして方 法は中間の鍵のペアのテーブルT103からペア(kj,Kj)を検索する。ステ ップ325においてはまた、kjはk モジュロ ord(g)と加算され、K はKj モジュロ pにより乗算され、およびjは一時的テーブルにストアされ るので、それは再び選択されなくなる。ステップ326において、iはκと比較 される。もしもiがκよりも小さければ、方法はステップ327に分岐し、ここ でiはインクリメントされる。iをインクリメントした後、方法はステップ32 3に戻り、そして別の中間の鍵のペア(kj,Kj)を選び始める。従って、ステ ップ323からステップ327は、それが異なる中間の鍵のペアであるκを使用 するまで方法が実行するループを形成する。中間の鍵のペアであるκが鍵のペア (k,K)の計算において用いられているとき、ステップ326はステップ 328に分岐し、そこで方法はkが0であるかテストする。もしもkが0である ならば、方法はステップ322に分岐する。従って、ステップ322からステッ プ328は、それが非ゼロのkを生成するまで方法が実行するループを形成する 。ついで方法はステップ329に進み、そこでペアは公開鍵セキュリティ・アル ゴリズム13に送られ、ついで方法32は終了する。 K=gkであることに注意する必要がある。事前処理はO(mn)個の倍数を 必要とする。オンライン・ステップに対しては、各出力(x,gx)はkの加算 およびkの乗算のみで計算される。K=Oとなるのは1/ord(g)の確率の みであることに注意する必要がある。(k,K=ke モジュロ pq)の形式の鍵のペアの生成 システム100および方法20の第2実施例G´を、図4Aおよび図4Bに関 連して述べる。ここで図4Aはプリコンピューテーション・ステップを示し、図 4Bはオンライン・ステップを示す。G´はプリコンピューテーション・ステッ プおよびランダムでないkの値の双方を使用し、Shoup認証において使用す るための(k,ke モジュロ pq)の形式の鍵のペアの生成をスピード・ア ップする。拡張グラフに基づくセキュリティ拡張機能はG´において使用されな いので、EG123は偽でありかつAP122も偽である。その理由は、そこで はいずれの高速プリコンピューテーション・ステップもShoup認証のために 使用できないからである。 図4Aは、プリコンピューテーションが要求されたときにステップ22におい て生成元G´のプリコンピューテーション・モジュール102により実行される プリコンピューテーション方法41を示す。ステップ411において、方法は正 整数pq、eおよびnを受け付ける。ここでpおよびqは同じ桁長の素数であり 、十分に大きなmに対しe=2mとなり、およびnはプリコンピュートされる値 の数である。ステップ412において、添え字iは1に初期化され、そして中間 の鍵のペアのテーブルT103は消去される。ステップ413において、ki∈ Z* pqはランダムに選択される。ステップ414において、方法はテーブルTを 検 査し、kiが以前にペアの第1の要素にストアされたか調べる。もしkiが以前に ストアされたならば、方法はステップ413に戻り、そしてkiの別の値を選択 する。もしもkiがテーブルTにおいて新しい値であれば、方法はステップ41 5に進み、そこでKiはki e モジュロ pqと等しく設定される。ステップ4 16において、要素(ki,Ki)のペアは中間の鍵のペアのテーブルにストアさ れる。ステップ417において、方法はiをテストして、n個のペアが生成され 、かつテーブルTにストアされたか否か判定する。もしもn個より少ないペアが 生成され、かつストアされているならば、方法はステップ418に分岐し、そこ で添え字iは1によりインクリメントされる。iをインクリメントした後、方法 はステップ413に戻る。従って、ステップ413から418までは、n個の異 なるペア(ki,Ki)が生成されかつテーブルTにストアされるまで実行される ループを形成する。n個のペアがストアされた時、方法41は完了する。 図4Bは、(k,ke モジュロ pq)の形式の鍵のペアが公開鍵アルゴリ ズム13により要求されたときに、生成元G´のオンライン・コンピューテーシ ョン・モジュール104がステップ24において実行するオンライン・コンピュー テーション方法42を示す。ステップ421において、方法はpq、κおよびn を受け付け、そして(k,K)を(1,1)に初期化する。ステップ422にお いて、方法はi=1に設定して、そして一時的リストLを消去する。ステップ4 23において、正整数jが、1およびnの間からランダムに選択される。ステッ プ424において、方法は一時的リストLを検査し、jが以前そこにストアされ ているかを調べる。もしもjが以前ストアされているならば、方法はステップ4 23に戻り、そしてランダムに1およびnの範囲の別のjの値を選択する。従っ て、ステップ423および424は、それが新しいjの値を見つけるまで方法が 実行するループを形成する。ステップ425において、添え字jは受け付けられ 、そして方法は中間の鍵のペアのテーブルT103からペア(kj,Kj)を検索 する。ステップ425においてはまた、kはkj モジュロ pqにより乗算さ れ、そしてKはKj モジュロ pqにより乗算される。ステップ426におい て、jは一時的テーブルにストアされるので、それは再び選択されなくなる。ス テップ427において、iはκと比較される。もしもまだiがκより も小さければ、方法はステップ428に分岐し、ここでiはインクリメントされ る。iをインクリメントした後、方法はステップ423に戻り、そして別の中間 の鍵のペア(kj,Kj)を選び始める。従って、ステップ423からステップ4 28は、それが異なる中間の鍵のペアであるκを使用するまで方法が実行するル ープを形成する。中間の鍵のペアであるκが鍵のペア(k,K)の計算において 用いられているとき、ステップ427はステップ429に分岐し、ステップ42 9において、方法は、完成した鍵のペアを公開鍵セキュリティ・アルゴリズム1 3に送り、そして方法42は終了する。プリコンピューテーション・ステップをさらにアクセラレートする システム100および方法20の第3の実施例G2を、図5に関連して述べる 。G2は、フィールドAP122がセキュリティ・パラメータ・データベースの カレント・レコードにおいて「真」(true)に設定されたときに使用される 。G2は生成元Gとして同じオンライン・ステップを使用するが、プリコンピュ ーテーションは異なる。G2はord(g)が素数となるようなgおよびpを選 択するのが好ましい。 図5は、G2のプリコンピューテーション・モジュール102によりステップ 22において実行される方法51を示す。ステップ511において、方法は正整 数g,p,ord(g)およびnを受け付ける。ここで、pは大きな素数であり 、そしてord(g)は、kがいずれかの正整数の場合にgk モジュロ pを 計算することにより生成され得る異なる結果の数である。ステップ512におい て、添え字(index)iは1に初期化され、そして中間の鍵のペアのテーブ ルT103は消去される。ステップ513において、正整数k1∈Zord(g)がラ ン ステップ514において、要素(ki,Ki)のペアはテーブルTにストアされる 。ステップ515において、k1 モジュロ ord(g)を倍にすることによ りki+1を評価し、そしてKi モジュロ pの2乗によりKi+1を評価する。ス テップ516において、中間の鍵のペアki+1,Ki+1はテーブルTにストア される。ステップ517において、方法はi+1をテストして、n個の中間の鍵 のペアが生成され、かつテーブルTにストアされたか否か判定し、そしてもしも それらがされていれば、方法51は完了する。もしもn個より少ないペアが生成 され、かつストアされているならば、方法はステップ518に分岐し、そこで添 え字iは1によりインクリメントされる。iをインクリメントした後、方法はス テップ515に戻る。従って、ステップ515から518まではループを形成し 、n個のペア(ki,Ki)が生成され、かつテーブルTにストアされるまで実行 される。n個のペアがストアされた時、方法51は完了する。 方法51は、方法31がKiを評価するために使用するn回の法指数演算を、 1回の法指数演算およびn−1回の法乗算で置き換える。さらにまた、Z* ord(g ) における整数の唯1回のランダムな選択が、k1の評価において要求される。残 ったkiは、バイナリ・コンピュータにおいて効率良く計算される。その理由は 、2を乗算することはビット列を1つ左にシフトすることによりなされるからで ある。 拡張グラフに基づく高められたセキュリティ 拡張グラフに基づくセキュリティ拡張機能を、プリコンピューテーション・ス テップのための図6Aおよびオンライン・コンピューテーション・ステップのた めの図6Bに関連して述べる。これらの構成はケーリーグラフ(Cayley graphs)におけるランダムな歩行(walks)を用いるのが好ましい。 同一群の要素の部分集合Seについての群ZのケーリーグラフX(Z,Se)は、 その頂点がZの要素と一対一に対応し、かつその稜(edges)がペア(z, zs)(ここで、z∈Zおよびs∈Se)であるグラフである。圧倒的確率を以 って、X(Z,Se)は拡張グラフであり、そのことは、接続された稜に沿って のランダムな歩行がZにわたって一様に分布された目的点に達することを意味す る。 システム100および方法20の第4(および第5)実施例において、Sに対 応するi=1,2,...,neのためのne個129の鍵のペア(ri,Ri)の部 分集合、およびランダムな鍵のペア(r,R)107は、ランダムに選択された Sの要素と組み合わせられることにより、各オンライン・ステップにおいて更新 される。ついで最終の鍵のペア(k、K)105はランダムなウォーキング(r 、R)と組み合わせられる。ランダムな鍵のペア(r,R)を更新し、そしてそ れを(k,K)と組み合わせることは、Gexp(またはG´exp)における2回( または4回)の法乗算を加える。しかしながら、オンライン・コンピューテーシ ョンにおける法乗算の全体の回数は削減することができる。その理由は、κ12 8は2より多く削減することができるからである。従って、ランダムな歩行はκ !(n−κ)!/n!のオンライン・コンピューテーションにおけるバースディ 攻撃を退ける。ここでn127は、中間の鍵のペアの数であり、そのペアから、 (r,R)と組み合わせる前に最終のペア(k,K)が形成される。 Gexp(またはG´exp)のプリコンピューテーション方法は、初期化ステップ 312(または412)を方法612(または612´)と、それぞれ、置き換 える。拡張された初期化ステップを除いて、Gexp(またはG´exp)のプリコン ピューテーション・ステップは、G31(またはG´41)におけるプリコンピ ューテーション方法のステップと同じである。変更された初期化方法612(ま たは612´)は図6Aに示される。Gexp(またはG´exp)のプリコンピュー テーション方法の初期化が要求されたとき、方法はステップ6121において、 ランダムに選ばれかつテーブルTexp106においてストアされたランダムな鍵 のペア(ri,Ri)の数であるパラメータne129を受け付けることにより始 まる。ステップ6122において、方法は添え字(index)i=1を設定し 、そしてTexpを消去する。ステップ6122において、方法は正整数Zord(g) (またはZ* pq)からランダムに要素riを選択する。ステップ6123において 、方法はテーブルTexpを検査し、riが既にそこにストアされているか調べる。 もしもriが既に選択されているならば、方法はステップ6122に戻る。従っ て、ステップ6122および6123はループを形成し、未使用のriが選択さ れるまで方法は実行される。riの新しい値が見つかったとき、方法 i e モジュロ pq)を計算し、そして中間の鍵のペア(ri,Ri)をテーブ ルTexpにストアする。ステップ6125において、方法はne個のペアが選択さ れているかテストする。もしもiがne個より少ないならば、方法はステップ6 126に分岐し、そこで添え宇iはインクリメントされる。iをインクリメント した後、方法はステップ6122に戻る。従って、ステップ6122から612 6まではループを形成し、ne個の異なったペア(ri、Ri)がテーブルTexpに ストアされるまで方法は実行される。ne個のペアが選択された時、方法はステ ップ6127に分岐する。ステップ6127において、方法はZord(g)(または Z* pq)からランダムに要素rを選択し、そしてR=gr モジュロ p(または re モジュロ pq)を計算する。ペア(r,R)107は、テーブルTexpの 要素を用いて生成されたランダムな歩行の開始点である。最後に、iは1にリセ ットされ、そしてテーブルTはステップ312(または412)においてされた ように消去され、ついで方法612(または612´)は終了する。 Gexp(またはG´exp)のオンライン・コンピューテーション方法は、初期化 ステップ322(または422)を方法622(または622´)と、それぞれ 、置き換える。拡張された初期化ステップを除いて、Gexp(またはG´exp)の オンライン・コンピューテーション・ステップは、G32(またはG´42)に おけるオンライン・コンピューテーション方法のステップと同じである。変更さ れた初期化方法622(または622´)は図6Bに示される。Gexp(または G´exp)のオンライン・コンピューテーション方法の初期化が要求されたとき 、方法はステップ6221において、パラメータneを受け付けることにより始 まる。ステップ6222において、jの値は[1,ne]からランダムに選択さ れ、そしてペア(rj,Rj)がテーブルTexpから読み出される。ステップ62 23において、ランダムなペア(r,R)はr+rj モジュロ ord(g) (またはrrj モジュロ pq)およびRRj モジュロ p(またはRRj モジュロ pq)に更新される。これは、ランダムな歩行のステップである。ス テップ6224において、方法は最終の鍵のペア(k,K)を(r,R)に初期 化する。ステップにおいて、方法はi=1を設定し、そしてリストLを消去する が、それは置き替えられた初期化ステップ322(または422)において要求 されたオペレーションである。ついで、方法622(または622 ´)は終了する。 結論 要するに、プリコンピューテーションおよび高速のオンライン・ステップを用 いて公開鍵のペアを生成するための方法が開示される。その結果により、アクセ ラレートされた鍵の生成がなされて、それにより、例えばパーソナル・コンピュ ータをインターネット・サービスで用いることができ、セキュリティの確保され た商取引に対する隘路とならずにインターネット・サービスを提供する。 最後に、上記した本発明の実施例は、単なる一例として意図されたものである 。多くの代替実施例が以下の特許請求の範囲の範囲を逸脱することなしに当業者 によって工夫することができる。

Claims (1)

  1. 【特許請求の範囲】 1.秘密鍵kを高速に選択し、そして公開鍵K=gkモジュロ p(ここで gおよびpが正整数であり、ならびにgおよびkがpより小さい)を決定するた めの方法において: (a) i. n個の数の集合からκ個の要素を選択する方法の数は充分に 大きいような、整数κおよびnを選択し、 ii. i=1,...,nに対する正整数αi<ord(g)をランダ ムに選択し、 iii. 各前記整数αiのために、値βi=gαi モジュロ pを計 算し、 iv. 前記整数αiおよび前記整数βiをペア(αi,βi)にしてテ ーブルにストアする プリコンピューテーション・ステップを実行し、および、 (b) 秘密鍵kおよび公開鍵Kが所望された時に、 i. 前記テーブルからκ個のペアをランダムに選択し、 ii. 前記公開鍵kを前記選択されたペアの前記整数αiの合計と して評価し、ここでその合計は評価されたモジュロ ord(g)であり、 iii. もしも合計がゼロであるならばオンライン・ステップを再開 し、および iv. 前記公開鍵Kを前記選択されたペアの前記値βiの積として 評価し、その積は評価されたモジュロ pである オンライン・ステップを実行することを特徴とする方法。 2.請求項1に記載の方法において、前記プリコンピューテーション・ステ ップは更に: (a) 素数となるようにpを選択し、 (b) i=1,2,...,nに対するαiをランダムに選択する前記ステッ プは更に、最初の整数α1をランダムに選択し、そしてi=1,2,...,nに対 する次のαiを2i-1α1 モジュロ ord(g)と等しくなるように選択し; および (c) i=1,2,...,nに対するβiの順次の値の各々を計算する前記 ステップは、前の値のモジュロ pを2乗する ことを特徴とする方法。 3.請求項1に記載の方法において、 (a) 前記プリコンピューテーション・ステップは更に: i. i=1,...,neに対する正整数ri<ord(g)をラン ダムに選択し、および ii. Ri=gri モジュロ p(ここでrは整数)をプリコン ピューティングし、 iii. 第2のテーブルにペア(ri,Ri)をストアし、前記第2 のテーブルから値rおよびその指数演算R=gr モジュロ pをランダムに選 択し、および (b) 前記オンライン・ステップは更に: i. 前記第2のテーブルからペア(rj,Rj)をランダムに選 択し、 ii. rをr+rj モジュロ ord(g)で置き換え、および RをRRj モジュロ pで置き換え、および iii. kをk+rj モジュロ ord(g)で置き換え、および KをRiK モジュロ pで置き換える ことを特徴とする方法。 4. 2つの大きな素数の整数pおよびqの積より小さい整数kを高速に選 択し、そしてk モジュロ pqのe乗(ここでeは固定された整数)を評価す るための方法において、 (a) i. n個の数の集合からκ個の要素を選択する方法の数が充分大 きいように整数κおよびnを選択し、 ii. n個のランダムな整数αi<pqの集合Zを選択し、および iii. 値βi=αi eモジュロ pqを計算し、および前記αiおよび βiをペアにしてテーブルにストアする プリコンピューテーション・ステップを実行し、 (b) 数値kおよびkeモジュロ pqの新しいペアが所望された時に、 i. 前記集合Zにおけるκ個の要素αiの部分集合zをランダム に選択し、 ii. 前記集合z モジュロ pqにおける前記選択されたαiを 乗算することにより前記整数κを評価し、 iii. 前記集合z モジュロ pqにおける前記プリコンピュート されたβiを一緒に乗算することにより前記数keを評価する オンライン・ステップを実行することを特徴とする方法。 5.請求項4に記載の方法において、プリコンピューテーション・ステップ は更に: (a) 素数となるようにpを選択し、 (b) i=1,2に対するαiをランダムに選択する前記ステップにおい て(ここでgは整数)、更に最初の整数α1をランダムに選択し、そしてi=2 に対して次のαiを2i-1α1モジュロ ord(g)(ここでgは整数)と等し くなるように選択し、および (c) i=2に対するβiの順次の値の各々を計算する前記ステップは( ここでgは整数)、前の数値のモジュロpを2乗する ことを特徴とする方法。 6.請求項4に記載の方法において、 (a)プリコンピューテーション・ステップは更に: i. i=1に対する正整数ri<ord(g)(ここでgは整数) をランダムに選択し、 ii. Ri=gri モジュロ p(ここでrは整数)をプリコンピ ューティングし、 iii. 第2のテーブルにペア(ri,Ri)をストアし、前記第2の テーブルから数値rおよびその指数演算R=gr モジュロ pをランダムに選 択し、および (b)オンライン・ステップは更に: i. 前記第2のテーブルからペア(rj,Rj)をランダムに選択 し、 ii. rをr+rj モジュロ ord(g)で置き換え、およびR をRRj モジュロ pで置き換え、および iii. kをk+rj モジュロ ord(g)で置き換え、およびK をRiK モジュロ pで置き換える ことを特徴とする方法。
JP10510103A 1996-08-16 1997-08-15 ランダムに生成されたペアをプリコンピューティングすることによるアクセラレイティング公開鍵暗号技術 Pending JP2000500886A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2395496P 1996-08-16 1996-08-16
US60/023,954 1996-08-16
PCT/US1997/014573 WO1998007253A1 (en) 1996-08-16 1997-08-15 Accelerating public-key cryptography by precomputing randomly generated pairs

Publications (1)

Publication Number Publication Date
JP2000500886A true JP2000500886A (ja) 2000-01-25

Family

ID=21818116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10510103A Pending JP2000500886A (ja) 1996-08-16 1997-08-15 ランダムに生成されたペアをプリコンピューティングすることによるアクセラレイティング公開鍵暗号技術

Country Status (5)

Country Link
US (1) US6091819A (ja)
EP (1) EP0916208A1 (ja)
JP (1) JP2000500886A (ja)
CA (1) CA2262549C (ja)
WO (1) WO1998007253A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010513990A (ja) * 2006-12-18 2010-04-30 マイクロソフト コーポレーション 高速rsa署名検証
KR20180121247A (ko) * 2017-04-28 2018-11-07 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
KR20180121248A (ko) * 2017-04-28 2018-11-07 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60021985T2 (de) * 1999-05-27 2006-06-08 Koninklijke Philips Electronics N.V. Verfahren ind vorrichtung zur sicheren erzeugung von öffentlichen/geheimen schlüsselpaaren
US6603445B1 (en) * 1999-12-30 2003-08-05 Yeda Research And Development Co. Ltd. Method and apparatus for factoring large numbers with optoelectronic devices
US7359507B2 (en) * 2000-03-10 2008-04-15 Rsa Security Inc. Server-assisted regeneration of a strong secret from a weak secret
AU2001294524A1 (en) * 2000-09-07 2002-03-22 Ivan Vesely Cascaded stream cipher
JP4284867B2 (ja) * 2001-01-18 2009-06-24 株式会社日立製作所 標準モデル上で適応的選択暗号文攻撃に対して安全な公開鍵暗号方法
US7016494B2 (en) * 2001-03-26 2006-03-21 Hewlett-Packard Development Company, L.P. Multiple cryptographic key precompute and store
US7350069B2 (en) * 2002-04-18 2008-03-25 Herz Frederick S M System and method which employs a multi user secure scheme utilizing shared keys
GB2391772B (en) * 2002-08-10 2005-05-11 Clive Neil Galley Public-key cryptosystem
US7221757B2 (en) * 2002-08-15 2007-05-22 Opentv, Inc. Method and system for accelerated data encryption
US7607009B2 (en) * 2003-02-10 2009-10-20 International Business Machines Corporation Method for distributing and authenticating public keys using time ordered exchanges
US7483537B2 (en) * 2003-02-10 2009-01-27 Mauricio Sanchez Selecting cached RSA keys in response to RSA key requests
US7480384B2 (en) * 2003-02-10 2009-01-20 International Business Machines Corporation Method for distributing and authenticating public keys using random numbers and Diffie-Hellman public keys
US7694136B2 (en) * 2003-02-10 2010-04-06 International Business Machines Corporation Method for distributing and authenticating public keys using hashed password protection
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
US8442219B2 (en) * 2004-03-31 2013-05-14 Jesse Lipson Public key cryptographic methods and systems
US7657029B2 (en) * 2005-03-01 2010-02-02 Microsoft Corporation Systems and methods for generating random addition chains
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US8024391B2 (en) * 2006-11-06 2011-09-20 Atmel Rousset S.A.S. Modular multiplication method with precomputation using one known operand
US8060750B2 (en) * 2007-06-29 2011-11-15 Emc Corporation Secure seed provisioning
US8059814B1 (en) 2007-09-28 2011-11-15 Emc Corporation Techniques for carrying out seed or key derivation
US8307210B1 (en) 2008-05-02 2012-11-06 Emc Corporation Method and apparatus for secure validation of tokens
US9906368B2 (en) 2014-12-23 2018-02-27 Nxp B.V. General encoding functions for modular exponentiation encryption schemes
US9985784B2 (en) * 2014-12-23 2018-05-29 Nxp B.V. Efficient smooth encodings for modular exponentiation
US9904516B2 (en) 2014-12-23 2018-02-27 Nxp B.V. Modular exponentiation using look-up tables
EP3304803A4 (en) * 2015-06-02 2018-05-02 Telefonaktiebolaget LM Ericsson (publ) Method and encryption node for encrypting message
WO2016195552A1 (en) * 2015-06-02 2016-12-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and encryption node for encrypting message
US10341098B2 (en) * 2017-01-24 2019-07-02 Nxp B.V. Method of generating cryptographic key pairs
KR101914028B1 (ko) * 2017-04-28 2018-11-01 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US10547455B1 (en) * 2019-01-04 2020-01-28 University Of South Florida Energy-aware digital signatures

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69017686D1 (de) * 1990-10-24 1995-04-13 Omnisec Ag Regensdorf Geheimübertragungssystem mit Möglichkeit zur verschlüsselten Kommunikation zwischen Benutzern mit gesichertem Schlüssel, welcher ohne Benutzereinwirkung bestimmt wird.
US5199070A (en) * 1990-12-18 1993-03-30 Matsushita Electric Industrial Co., Ltd. Method for generating a public key
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5201000A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5790667A (en) * 1995-01-20 1998-08-04 Matsushita Electric Industrial Co., Ltd. Personal authentication method
US5583939A (en) * 1995-06-01 1996-12-10 Chung N. Chang Secure, swift cryptographic key exchange
US5787175A (en) * 1995-10-23 1998-07-28 Novell, Inc. Method and apparatus for collaborative document control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010513990A (ja) * 2006-12-18 2010-04-30 マイクロソフト コーポレーション 高速rsa署名検証
KR20180121247A (ko) * 2017-04-28 2018-11-07 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
KR20180121248A (ko) * 2017-04-28 2018-11-07 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
KR101989943B1 (ko) 2017-04-28 2019-06-17 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
KR101989950B1 (ko) 2017-04-28 2019-06-17 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법

Also Published As

Publication number Publication date
WO1998007253A1 (en) 1998-02-19
CA2262549C (en) 2001-06-12
US6091819A (en) 2000-07-18
EP0916208A1 (en) 1999-05-19
CA2262549A1 (en) 1998-02-19

Similar Documents

Publication Publication Date Title
JP2000500886A (ja) ランダムに生成されたペアをプリコンピューティングすることによるアクセラレイティング公開鍵暗号技術
EP0503119B1 (en) Public key cryptographic system using elliptic curves over rings
US7716484B1 (en) System and method for increasing the security of encrypted secrets and authentication
EP0786178B1 (en) Secret-key certificates
WO1998007253A9 (en) Accelerating public-key cryptography by precomputing randomly generated pairs
US7913088B2 (en) Digital signature and authentication method and apparatus
US6122742A (en) Auto-recoverable and auto-certifiable cryptosystem with unescrowed signing keys
US20040139029A1 (en) Apparatus and method for generating and verifying ID-based blind signature by using bilinear parings
US20020136401A1 (en) Digital signature and authentication method and apparatus
JP3292107B2 (ja) 2重ベクトル加算装置、2重ベクトル2倍装置及び2重ベクトル整数倍装置
US6959085B1 (en) Secure user identification based on ring homomorphisms
Yuen et al. Compact zero-knowledge proofs for threshold ECDSA with trustless setup
Tewari et al. Fully anonymous transferable ecash
MacKenzie et al. Automatic generation of two-party computations
KR20010013155A (ko) 자동 복구가능하고 자동 증명가능한 암호체계들
Hsu et al. Verifiable m+ 1st-price auction without manager
JPH09298537A (ja) ディジタル署名方式およびそれを用いた情報通信システム
Muleravicius et al. Security, trustworthiness and effectivity analysis of an offline E-cash system with observers
Peng et al. An efficient and verifiable solution to the millionaire problem
JPH11174957A (ja) 認証プロトコル
Wang et al. A quantum concurrent signature scheme based on the quantum finite automata signature scheme
Couteau et al. Secure distributed computation on private inputs
Kumar A secure and efficient authentication protocol based on elliptic curve diffie-hellman algorithm and zero knowledge property
Anisimov Digital Friend-or-Foe Authentication
Wulf et al. A technique for remote authentication