"ネットワーク内でセキュリティドメインのためのエスクロー鍵を確立する方法であって、該方法は、楕円曲線乱数生成器へのそれぞれの入力としての1対の点PQを、前記点の間の関係がP=eQとなるように確立するステップと、前記関係eを、管理者と共にエスクロー鍵として格納するステップと、前記楕円曲線乱数生成器から、前記ドメイン内の暗号演算で使用される乱数を生成するステップとを含む、方法。本願明細書に記載された発明。1つの形態において、本発明は、検証可能にランダムな点Qを、楕円曲線乱数生成器内の別の点Pとの使用のために計算する方法であって、点Pを入力として含むハッシュを計算するステップと、ハッシュから点Qを導出するステップを備える方法を提供する。別の形態においては、本発明は、楕円曲線乱数を生成する方法であって、楕円曲線乱数生成器を使用して出力を生成するステップと、出力を打ち切って、乱数を生成するステップを備える方法を提供する。更に別の形態においては、本発明は、楕円曲線乱数を生成する方法であって、楕円曲線乱数生成器を使用して出力を生成するステップと、出力を一方向性関数に適用して乱数を生成するステップを備える方法を提供する。更に別の形態においては、本発明は、楕円曲線乱数生成器に対するバックアップ機能の方法であって、楕円曲線の点Qが決定されるとエスクロー鍵eを計算し、それによりP=eQであって、Pは楕円曲線の別の点であるステップと、管理者を置くステップと、管理者にエスクロー鍵eを格納させるステップと、楕円曲線乱数生成器を有するメンバーに、生成器の出力値の前に生成された出力rを管理者に送らせるステップと、管理者が、出力rを、生成器の状態の将来の決定のために記録するステップを備える方法を提供する。例えば、本願発明は以下の項目を提供する。項目1暗号演算において使用される乱数を計算する方法であって、1対の入力を楕円曲線乱数生成器に提供するステップを備え、各入力が楕円曲線点の少なくとも1つの座標を示し、前記入力のうち少なくとも1つは検証可能にランダムである計算する方法。項目2前記少なくとも1つの入力は、ハッシュ関数の出力から得られる項目1に記載の計算する方法。項目3前記入力の他方は、前記ハッシュ関数の入力として利用される項目2に記載の計算する方法。項目4前記乱数生成器は秘密値を有し、前記秘密値は、前記入力により示される前記点のスカラー倍を計算するために使用される項目1に記載の計算する方法。項目5前記スカラー倍の1つは、前記乱数を導出するために使用され、前記スカラー倍の他方は、次の使用のために前記秘密値を変更するために使用される項目4に記載の計算する方法。項目6前記ハッシュ関数の前記出力は、前記入力として利用される前に、楕円曲線上の点の座標として有効化される項目2に記載の計算する方法。項目7前記点の別の座標が、前記入力として含むために前記1つの座標から得られる項目6に記載の計算する方法。項目8前記他の入力は、楕円曲線点を示す項目7に記載の計算する方法。項目9前記乱数は、前記スカラー倍により示される前記点の1つの座標を選択し、前記座標を前記乱数としての使用のためにビット列に打ち切ることにより、前記スカラー倍から導出される項目5に記載の計算する方法。項目10前記1つの座標は、楕円曲線点表現を示す長さの約半分の大きさに打ち切られる項目9に記載の計算する方法。項目11前記乱数は、前記スカラー倍により示される前記点の1つの座標を選択し、前記1つの座標をハッシングし、前記乱数として使用するためにビット列を提供することにより、前記スカラー倍から導出される項目5に記載の計算する方法。項目12前記検証可能にランダムな入力は標準形として選択され、それにより、前記入力間の所定の関係を維持することは困難になる項目1に記載の計算する方法。項目13暗号演算において使用される乱数を計算する方法であって、それぞれが、1対の楕円曲線点の少なくとも1つの座標を示す1対の入力を楕円曲線乱数生成器に提供するステップと、楕円曲線点のスカラー倍の少なくとも1つの座標を示す出力を得るステップと、前記出力を一方向性関数に通して、乱数としての使用のためのビット列を得るステップと、を備える計算する方法。項目14前記一方向性関数は、ハッシュ関数である項目13に記載の計算する方法。項目15楕円曲線乱数生成器であって、それぞれが、1対の楕円曲線点の少なくとも1つの座標を示す1対の入力と、暗号演算において乱数として使用される出力を有し、前記入力の少なくとも1つは、検証可能にランダムである楕円曲線乱数生成器。項目16前記1つの入力は、一方向性関数の出力から導出される項目15に記載の楕円曲線乱数生成器。項目17前記一方向性関数はハッシュ関数である項目16に記載の楕円曲線乱数生成器。項目18前記入力の他方は、前記ハッシュ関数への入力として提供される項目17に記載の楕円曲線乱数生成器。項目19ネットワーク内でセキュリティドメインのためのエスクロー鍵を確立する方法であって、楕円曲線乱数生成器へのそれぞれの入力としての1対の点PQを、前記点の間の関係がP=eQとなるように確立するステップと、前記関係eを、管理者と共にエスクロー鍵として格納するステップと、前記楕円曲線乱数生成器から、前記ドメイン内の暗号演算で使用される乱数を生成するステップを備える方法。図1を参照すると、暗号乱数生成器ECRNG10は、楕円曲線計算を行う演算ユニット12を含んでいる。ECRNGはまた、状態値sを保持するセキュアレジスタ14を含み、初期設定点PとQの対を受信するための入力16と18の対を有している。点PとQは、既知と仮定されている楕円曲線点である。出力20は、暗号モジュール22への乱整数の通信のために供給される。レジスタ14の初期内容は、シード入力Sにより供給される。点Pを表現する入力16は、第1実施形態においては、そのような使用に適切であるとして公表された既知の値から選択される。入力18は、一方向性関数の出力から、典型的には、入力として点Pを受信するSHA1またはSHA2のような暗号的に安全なハッシュ関数である、ハッシュ関数の形態で得られる。関数24は、任意のビット列A上で作動し、ハッシュされた出力26を生成する。出力26は、更なる処理のために演算ユニット12に適用されて入力Qを供給する。作動中、ECRNGは、シードとしてビット列を受信し、それはレジスタ14に格納される。シードは、秘密に維持され、ランダム性およびハミング重さのような、特定のアプリケーションに適合するように選択された、前もって確立された暗号基準に合うように選択される。dが知られる可能性がないことを確実にするために例えば、P=dQおよびed=1modnのように、入力16と18の1つまたは両者は、検証可能にランダムであるように選択される。図1の実施形態においては、Qは、その入力が点Pを含むハッシュ関数好ましくは一方向性の出力から導出することにより、検証可能にランダムであるような方法で選択される。図2に示されるように、任意の列Aがステップ202で選択され、AのハッシュHは、Pと随意にSを、ハッシュベース関数FHへの入力としてステップ204で計算され、ハッシュHは、演算ユニット12により、ステップ206において所望の体Fの体の元Xに変換される。Pは、前計算されていても、固定でも、または検証可能にランダムな選択値として選択されてもよい。体の元Xは、Qのx座標として見なされるこのように、Qの圧縮された表現。x座標は、ステップ208で、所望の楕円曲線E上で有効性がテストされ、Xが有効かどうかがステップ210において決定される。有効の場合は、元Xにより提供されたx座標は伸張され、ステップ212において点Qを提供する。y座標の2つの可能な値のどちらを選択するかは、一般的には、ハッシュ値から導出される。点PとQは、個々の点16と18において適用され、演算ユニット12は、点sQを計算し、ここでsは、レジスタ14に格納されている現在の値である。演算ユニット12は、点この例では、点sQのx座標を整数に変換し、その値を打ち切って、r=tzsQを得る。打ち切られた値rは出力20に供給される。演算ユニット12は同様に値を計算して、sがレジスタ14の値であるときのsPを計算することでレジスタ14を更新して、点sPのx座標を整数uに変換する。整数uは、レジスタに格納され、次の反復に対してsと置換される。上記を繰り返す上述したように、点Pもまた検証可能にランダムであってよいが、確立されたまたは固定された値であってもよい。従って、図1の実施形態は、ある基点例えば、Pが既にハードウェアに実装されている場合は、システムに適用または後付け追加できる。典型的に、基点Pは、米国連邦情報処理標準規格FIPS:FederalInformationProcessingStandard186-2で推奨されているような、ある既存の基点になる。そのような場合は、Pは、検証可能にランダムになるようには選択されない。一般的に、点Pを、ハッシュ関数の入力に含むことは、ハッシュ関数の一方向性特性のため、およびQが既に決定されたPから導出されるので、Pが、Qが決定される前に決定されたことを確実にする。PはQの前に決定されたので、PがQの倍数例えば、P=eQの場合として選択されることは有り得ず、従って、dを見出すことは一般的には、離散対数問題のランダムなケースを解くのと同じ程度難しいということは明確に理解できる。このように、提供されたシード値Sと、提供されたハッシュに基づく関数Fを有しているので、検証者は、Q=FS,Pを決定でき、ここにおいてPは、検証可能にランダムではなくてもよい。同様に、P=FS,Qを計算して同じ効果を得ることができるが、これは、X9.82の初期の草案におけるPの値が、FIPS186-2で指定された基点と同一であるならば必要ではないと考えられている。上記に概要を記述したように、ビット列からQを生成することは、ECRNG10の外部で行うことができ、または好ましくは、演算ユニット12を使用して内部的に行うことができる。PとQの両方が検証可能にランダムであることが必要な場合は、図1に点線で示される第2ハッシュ関数24が、ビット列Aから点Pの座標を生成するために組み込まれる。入力の少なくとも1つに対してハッシュ関数を提供することにより、検証可能にランダムな入力が得られる。生成される出力は、点sPのx座標から導出されるということも分かるであろう。従って、入力16と18は、点PとQのx座標であってよく、対応するsPとsQの値は、モントゴメリMontgomery乗法技術を使用して得られ、それにより、y座標を取り出す必要性を除去する。Qを選択する方法の代替方法は、Qを、そのビット表現が、例えば、名前の表現のように、ある既知のdとPに対してQ=dPを生成することで生成するのが困難なある列を含むように、ある標準形で選択することである。この方法と、好適な方法の間の中間的な形式もまた存在し、その場合は、Qは部分的に標準形であり、部分的に検証可能にランダムに導出されるということは理解されよう。Qのそのような選択は、検証可能にランダムであっても、標準形であっても、またはある中間形式であっても、検証可能と呼ばれる。図3と図4に示す、ECRNGの出力に対する鍵エスクロー攻撃を防止する別の代替方法は、打切り関数28をECRNG10に追加して、ECRNG出力を、圧縮楕円曲線点の長さの約半分に打ち切ることである。好ましくは、この演算は、図1および図2の好適な方法に追加して行われるが、それは、鍵エスクロー攻撃を防止する主要な手段として行うことができるということは理解されよう。打切りの利点は、単一のECRNG出力rに関連するR値のリストは、典型的には、探すのが現実的には不可能であるということである。例えば、160ビット楕円曲線群に対して、リストに可能な点Rの数は、約280であり、リストを探索することは、離散対数問題を解くことと同じ程度に困難である。この方法のコストは、出力長が事実上半分にされるので、ECRNGの効率が半分になるということである。図5と図6に示す、更に別の代替方法は、新しい入力を生成するハッシュ関数のような、34として特定される、別の一方向性関数FH2を介する、ECRNGの出力のフィルタ処理を備える。ここで再び、好ましくは、この演算は、図2に示される好適な方法に追加して行われるが、鍵エスクロー攻撃を防止する主要な手段として行うこともできる。追加のハッシュは、演算ユニット12で行われる楕円曲線演算と比べて、相対的にコストが小さく、ECRNGの安全性を問題になるほど削減しない。上述したように、エスクロー鍵の存在を有効的に防止するためには、検証可能にランダムなQに、検証可能にランダムなPまたは、前もって確立されたPを付随させるべきである。前もって確立されたPは、広く公開され、ECRNG12の概念の前に選択されたと容認されている点Pであってよく、従ってそれは、Qは、Pが確立されたときに生成されていなかったので、Pが、P=eQとして選択されることは不可能であったことを意味する。上記の技術が、侵入口を閉じることにより、ECRNGを使用するシステムの安全性を確実にする一方、PとQの可能性のある相互依存性、つまり、eの存在を注意深く使用することにより、P=eQであることの利点を利用することもまた可能である。そのようなシナリオにおいては、値eは、エスクロー鍵と見なしてよい。PとQが管理者により制御されたセキュリティドメインにおいて確立されると、ドメインでQを生成するエンティティは、eを知ってまたはdを知ることで間接的に知ってそれを行う。管理者は、その標準に従うすべてのECRNGに対してエスクロー鍵を有することになる。エスクロー鍵は、ある状況では利点があることが知られている。エスクロー鍵は、バックアップ機能を提供する。暗号鍵が紛失した場合、その鍵で暗号化されたデータもまた失われる。しかし、暗号鍵は一般的には、乱数生成器の出力である。従って、ECRNGが、暗号鍵Kの生成に使用されると、エスクロー鍵eを使用して、暗号鍵Kを取り出すことが可能になる。エスクロー鍵は、盗聴に使用されるような、他の機能も提供する。この場合、信頼できる法施行機関が、犯罪者の暗号化トラフィックを復号することが必要になり、これを行うため、暗号鍵を取り出すために、エスクロー鍵を使用できることを所望することがある。図7は、それぞれが、ドメイン40の個々のメンバーと関連している、多数のECRNG10を有するドメイン40を示している。ドメイン40は、他のドメイン40a、40b、および40cと、インターネットのようなネットワーク42を介して通信する。ドメインの各ECRNGは、同一の入力PとQの対を有している。ドメイン40は、安全な方法でエスクロー鍵eを維持する管理者44を含む。管理者44は、Q=ePとなるようなエスクロー鍵eを知り得るようにPとQの値を選択する。ドメイン40の他のメンバーは、PとQの値を使用し、それにより、管理者44に、組織のすべてのメンバーに対して機能するエスクロー鍵eを与える。これは、暗号鍵の紛失に対する対処策としてのバックアップ機能において最も有益である。エスクロー鍵eは、メンバー特有にすることもでき、それにより、各メンバーは、管理者44から選択された点からの自分自身のエスクローe’を有する。図8において、全体を数字400で示したように、管理者は、最初は、所望の楕円曲線に対する標準生成器Pとして一般的に選択される点Pを選択する402。そして、管理者は、値dを選択して、点Qは、適切なサイズの、ある乱整数dに対して、Q=dPとして決定される404。エスクロー鍵eは、e=d-1modnとして計算され406、ここでnは、生成器Pの位数であり、管理者により格納される。そのようなエスクロー鍵34eの安全な使用法は、数字500により全体的に示され、図9に示されている。管理者44が、まず設置され502、そしてエスクロー鍵eが選択され、管理者44により格納される504。エスクロー鍵が完全な有効性で機能するためには、エスクロー管理者44は、取り出されるECRNG出力値k例えば16の前に生成されたECRNG出力値rへの直接アクセスを必要とする。一方向性関数または暗号アルゴリズムを介するrへの間接アクセスを有するだけでは十分ではない。これを達成するための形式化された方法は、図7において46で示され、図9においてステップ506において示されるように、ECRNG12を有する各メンバーに、管理者44と通信させることである。これは暗号化ファイル格納システムまたは暗号化電子メールアカウントに対して最も有益であろう。よりシームレスな方法を暗号アプリケーションに適用できる。例えば、ウェブHTTPトラフィックを安全にするSSLおよびTLSプロトコルにおいて、クライアントおよびサーバーは、ハンドシェークを行い、それらの最初の行動は、平文で送信された乱数値を交換することである。他の多数のプロトコルは、しばしばナンスと呼ばれる、そのような乱数値を交換する。エスクロー管理者がこれらのナンスを観測し、それらの記録を維持すれば508、後日、必要なr値を決定することが可能になる。これにより、管理者が、クライアントまたはサーバードメインのメンバーであれば誰でものECRNG12の次の状態を決定することができ510、それにより、次のECRNG12値を取り出すことができる。特に、SSLまたはTLSセッションに対する暗号鍵が導出されるランダムなプレマスター秘密を一般的に生成するクライアントに対して、エスクロー鍵は、セッション鍵の取り出しを可能にする。セッション鍵の取り出しは、全SSLまたはTLSセッションの取り出しを可能にする。セッションが記録されていれば、それは取り出すことができる。これは長期私的鍵を危険に晒すものではなく、ECRNGの出力から得られたセッション鍵のみで、エスクローに関連する一般的な疑いに関するいかなる問題も緩和される。エスクロー鍵は他の状況において、不都合な点も有することが知られているが、特定のセキュリティドメイン内の制御により、これらの問題のいくつかは緩和される。例えば、非拒絶に対するデジタル署名では、署名者以外は、署名鍵を有しないということが重要で、そうでなければ、署名者は、合法的に署名の拒絶を主張できる。エスクロー鍵の存在は、他のあるエンティティが署名鍵へのアクセスを有し、それにより署名者は、エスクロー鍵が使用されて署名鍵を得て、その署名を生成したと主張することを可能にする。しかし、ドメインが特別な組織、または組織の一部に制限されている場合は、組織が署名を拒絶できないということで十分である。暗号鍵とは異なり、紛失した署名鍵は、データの紛失を意味しないので、署名鍵のバックアップはほとんど必要ない。本発明は、ある特別な実施形態を参照して説明されてきたが、この技術に精通した者には、本明細書に付随する請求項で概要が記載される本発明の精神および範囲から逸脱することのない本発明の種々の修正が明白であろう。"