(57)【要約】【課題】  量子鍵配布（ＱＫＤ）ステーション間で交換された鍵に基づく暗号化パッドを用いて情報を暗号化する方法を開示する。【解決手段】  上記方法は、ＱＫＤを用いて２つのステーション間で生の鍵を設定すること、上記鍵を処理して複数の一致するプライバシ増幅処理が行なわれた鍵を各ステーションにおいて設定すること、および上記鍵を共有された鍵スケジュールにおいてバッファリングすることを含む。上記方法は、共有された鍵スケジュールにおける１つまたはそれ以上の鍵をストリーム暗号を用いて拡張し、ワンタイムパッド暗号化用のパッドとして機能する拡張鍵を供給するオプションも含む。
2006514512.tif 000002
【特許請求の範囲】
【請求項１】
２つのステーション間で安全鍵を設定するための方法であって、
ａ）２つの量子鍵配布ステーション間で単一光子信号を交換し、各ステーションにおいて複数の生の鍵を生成すること、
ｂ）前記生の鍵に対して誤り訂正処理およびプライバシ増幅処理を行ない、プライバシ増幅処理が行なわれた複数の鍵を各ステーションにおいて生成すること、
ｃ）前記プライバシ増幅処理が行なわれた鍵を各ステーションにおいてバッファリングし、一致する鍵スケジュールを各ステーションにおいて生成すること、および
ｄ）前記一致する鍵スケジュールから選択される鍵から少なくとも１つの拡張鍵を生成することであって、前記少なくとも１つの拡張鍵は、前記２つのステーション間で交換される情報のワンタイムパッド（ｏｎｅ−ｔｉｍｅ  ｐａｄ）暗号化に適していることを含む、方法。
【請求項２】
ａ）前記少なくとも１つの拡張鍵をワンタイムパッドとして用いて情報を暗号化すること、および
ｂ）前記２つのステーション間で前記暗号化情報を伝送することを含む、請求項１に記載の方法。
【請求項３】
２つのステーション間で暗号化情報を送信する方法であって、
ａ）量子鍵配布を用いて前記２つのステーション間で生の鍵を設定すること、
ｂ）前記設定された生の鍵からプライバシ増幅処理が行なわれた鍵を設定すること、
ｃ）非拡張鍵として、前記プライバシ増幅処理が行なわれた鍵、または拡張鍵として、拡張された前記プライバシ増幅が行なわれた鍵に基づくワンタイムパッドを用いるデータ暗号化オプションを提供すること、および
ｄ）前記非拡張鍵または前記拡張鍵のいずれかに基づくワンタイムパッドを用いて前記２つのステーション間で暗号化情報を送信することを含む、方法。
【請求項４】
ａ）１つまたはそれ以上の前記プライバシ増幅処理が行なわれた鍵を拡張すること、および
ｂ）前記１つまたはそれ以上の拡張鍵を各ステーションにおいて鍵スケジュール内に記憶することを含む、請求項３に記載の方法。
【請求項５】
ａ）１つまたはそれ以上の非拡張鍵を各ステーションにおいて第１の鍵スケジュールに記憶すること、
ｂ）１つまたはそれ以上の拡張鍵を各ステーションにおいて第２の鍵スケジュールに記憶すること、および
ｃ）前記ステーション間で生の鍵を交換することができない場合に、前記第１および第２の鍵スケジュールの少なくとも１つからの鍵に基づくワンタイムパッドを用いて情報を暗号化することを含む、
請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量子暗号に関し、特に、量子鍵配布（ＱＫＤ）ステーション間で設定される量子鍵に対し、これらＱＫＤステーション間において暗号化情報を送信するためのワンタイムパッド（ｏｎｅ−ｔｉｍｅ  ｐａｄ）を生成する目的で適用される鍵拡張方法に関する。
【背景技術】
【０００２】
量子鍵配送は、「量子チャネル」を介して送信された弱い光信号（例えば、平均で０．１フォトン）を用いて、送信者（「アリス」）と受信者（「ボブ」）との間で、鍵を設定することに関する。鍵配送の安全性は、不確定状態にある量子系はどれでも測定するとその状態を変えるという、量子力学の原則に基づいている。結果として、量子信号を妨害あるいは測定しようとする盗聴者（「イブ」）は、送信信号にエラーを引き起こしてしまうため、その存在が明らかになる。
【０００３】
量子暗号の一般的な原則は、ＢｅｎｎｅｔｔおよびＢｒａｓｓａｒｄの論文（非特許文献１参照）の中で、初めて発表された。具体的なＱＫＤシステムは、Ｂｅｎｎｅｔｔの特許文献１（以下、‘４１０特許と称す）に記載されている。
【０００４】
ＢｅｎｎｅｔｔおよびＢｒａｓｓａｒｄの論文と‘４１０特許は、それぞれいわゆる一方向型ＱＫＤシステムについて述べている。一方向型ＱＫＤシステムとは、アリスが単一光子の偏光をランダムに暗号化して、ボブがそれら光子の偏光をランダムに測定するものである。‘４１０特許に述べられている一方向型システムは、二光束マッハ−ツェンダー干渉計に基づいている。アリスとボブは、干渉計の位相を制御できるように、干渉計の各部にアクセスすることが可能である。アリスからボブに送信された信号（パルス）は、時分割多重化され、異なった経路をたどる。
【０００５】
ここに本明細書の一部を構成するものとしてその内容を援用する、Ｇｉｓｉｎの特許文献２（以下、‘２３４特許と称す）では、偏光や熱ゆらぎを自動補正する、いわゆる「双方向」型ＱＫＤシステムについて開示されている。この双方向型システムは、光パルスが干渉計を通って同じ経路をであるが遅れて横切る、折返し型干渉計に基づいている。
【０００６】
ＱＫＤシステムの操作全般については、Ｂｏｕｗｍｅｅｓｔｅｒ、ＥｋｅｒｔおよびＺｅｉｌｉｎｇｅｒ（編）による書籍（非特許文献２参照）に記載されている。上記‘２３４特許の双方向位相−符号化システムの操作において、ボブは１つの光パルスを生成し、アリスに移動する互いの間で時間遅延する２つのコヒーレントパルスＰ１およびＰ２をこのパルスから生成する。アリスは、これらのパルスを減衰させて弱め、次に、パルスの一方（例えば、Ｐ１）をランダムに位相変調する。また、アリスは、各パルスの偏光が、ボブに戻る前に９０度回転するよう、ファラデーミラーでパルスを反射させる。パルスはボブに戻り、その際に、干渉計を通って同じ往復経路を異なる順序で横切る。次に、ボブは、未変調のパルスＰ２をランダムに位相変調し、変調済みとなったパルスＰ１およびＰ２を再結合する。結合されたパルスは干渉し、この干渉の結果は、アリスおよびボブによりそれぞれパルスＰ１およびＰ２に付与された各位相に応じて、２つの検出器のうちの１つによって検出される。検出されたパルスは、ボブの測定量子ビットを構成する。
【０００７】
十分に多数の量子ビットがボブとアリスとの間で交換された後、ボブとアリスは、各光子の符号化に用いられた基準を公に比較するとともに、ボブまたはアリスに到達しなかった光子を破棄する。アリスとボブは、同じ位相−符号化基準に対応する量子ビットのみを保持する。これにより、選別鍵が生成される。次に、アリスとボブは、選別鍵に含まれる量子ビットのいくつかをランダムに選択して盗聴者の存在を示す誤りを検査する。これら検査用量子ビットは、その後破棄される。誤りが存在しない場合、残りの量子ビットにより共通鍵が生成される。この時点において、典型的には、「プライバシ増幅処理」と呼ばれる操作が行なわれる。この操作には、ビット数（ζ）を演繹することが含まれ、最終鍵ｋFに関して盗聴者が有するあらゆる情報は特定値未満となるよう、（誤り訂正処理が行われた）ｎビットの鍵ｋNをこれを用いて短縮する必要がある。プライバシ増幅処理には、サイズ（ｎ−ζ）×ｎの２値行列Ｋを生成し、この行列を公に共有し、次に、ｋF＝Ｋ・ｋN（ｍｏｄ２）を実行して最終鍵ｋFを得ることがさらに含まれる。
【０００８】
最後に、典型的には、以前から共有されている認証鍵またはコードを用いて、アリスが本当にアリスであり、ボブが本当にボブであることを確実にする認証工程が行なわれる。この認証工程は、鍵交換プロセスにおける任意の時点で行なうことができる。
【０００９】
上記プロセスを用いることにより、最終鍵ｋFは、所与の長さを有することになる。鍵ｋFの長さは、暗号化可能な情報量を示す。ワンタイムパッド暗号化が用いられている場合、ＱＫＤシステムによる安全鍵レートは、通常、商業利用可能なデータ伝送線に対しては低すぎる。また、達成可能なデータ帯域幅は非常に低く、かつ、鍵生成レート（現在の技術では約１〜１０ｋｂｐｓ）によって制限されている。以下に説明する本発明の技術は、ＱＫＤにより（１０Ｇｂｐｓまでの、またはそれ以上の）広帯域データストリームの暗号化を可能とする方法を提供し、これにより、追加の光子をシステムを介して送信することなく鍵を拡張する方法を提供する。
【特許文献１】米国特許第５，３０７，４１０号公報
【特許文献２】米国特許第６，４３８，２３４号公報
【非特許文献１】Ｑｕａｎｔｕｍ  Ｃｒｙｐｔｏｇｒａｐｈｙ：Ｐｕｂｌｉｃ  ｋｅｙ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ａｎｄ  ｃｏｉｎ  ｔｏｓｓｉｎｇ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ、Ｓｙｓｔｅｍｓ  ａｎｄ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ，Ｂａｎｇａｌｏｒｅ，Ｉｎｄｉａ，１９８４，ｐｐ．１７５−１７９（ＩＥＥＥ，Ｎｅｗ  Ｙｏｒｋ，１９８４）
【非特許文献２】Ｔｈｅ  ｐｈｙｓｉｃｓ  ｏｆ  ｑｕａｎｔｕｍ  ｉｎｆｏｒｍａｔｉｏｎ，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ（２００１）、ｓｅｃｔｉｏｎ  ２．３．
【発明を実施するための最良の形態】
【００１０】
本発明は、量子暗号、量子鍵配布およびデータ暗号化の分野において産業上の有用性を有する。特に、本発明は、量子暗号と古典的暗号との組み合わせにおいて産業上の有用性を有する。本発明は、送信された情報の（これに限定されるものではないが）光学光子などのキャリアからの消極的盗聴を利用する盗聴者からだけでなく、盗聴者がデータ伝送に用いられる光ファイバを通じて送信された探査信号を用いて上記アリスおよびボブのノード（ステーション）を探査する複雑な積極型の攻撃を含む、あらゆる種類の侵入攻撃からの保護も実現する。
【００１１】
以下により詳細に説明するように、本発明は、２つのステーション間で暗号的に安全な鍵を生成する方法を含む。方法の一例は、２つのＱＫＤステーション間で単一光子信号を交換し、複数の一致する生の鍵を各ステーションにおいて設定することを含む。上記方法は、誤り訂正処理およびプライバシ増幅処理を用いて上記生の鍵を処理し、プライバシ増幅処理が行われた一致する鍵を各ステーションにおいて設定することも含む。また、上記方法は、プライバシ増幅処理が行なわれた鍵を各ステーションにおいてバッファリングし、一致する鍵スケジュールを生成することも含む。さらに、この方法は、上記鍵スケジュールから選択される鍵から少なくとも１つの拡張鍵を生成することも含み、上記拡張鍵は、上記２つのステーション間で交換される情報を暗号化するためのワンタイムパッドとして機能する。
【００１２】
以下の記述においては、盗聴者（「イブ」）は無限の技術資源を有していると仮定している。上記システムは、無条件的安全方式で最も効果的な鍵生成レートを提供するために最適化されている。１つの例として、本明細書に記載されるシステムは、ペンティアム（登録商標）ＩＩＩ、５００ＭＨｚまたは上位マシン（量子層のクロックが１０ＭＨｚを超えないと仮定した場合）上で実施することが可能であり、デジタル信号プロセッサ（ＤＳＰ）上でも実施できる。およそ１０メガビット／秒の通信チャネル（量子層のクロックレートおよび光チャネル長にもよるが）を利用することができる。
【００１３】
また、以下の記述において、「鍵」という用語は、パッドが鍵と同じ長さを有する場合、「パッド」と置き換えることができる。しかし、一般に、鍵は、例えばデータ符号化に用いられるビット列を生成することによってパッドを生成するために用いられる。この場合、パッドは鍵とは異なる長さ（すなわち、ビット数）を有しており、鍵それ自体とは同一ではない。しかし、以下の記述において、「拡張鍵」は、ワンタイムパッド暗号化用のパッドとして用いられる。また、「拡張パッド」という用語が以下において用いられており、これは「拡張鍵」と同一である。「拡張パッド」という用語は、非拡張鍵から生成されるであろうパッドよりも拡張されたパッドを示すために用いられている。
【００１４】
一実施形態例において、本発明の方法は、選別処理、誤り訂正処理、プライバシ増幅処理および鍵拡張処理を含む（または鍵拡張処理を含まない）いくつかのメインアルゴリズム部を含む。誤り訂正プロトコルは、公開チャネル上で示されるビットを可能な限り少なくするために最適化されている。さらに、誤り訂正プロトコルは、公開ディスカッション（ｐｕｂｌｉｃ  ｄｉｓｃｕｓｓｉｏｎ）（ＰＤ）層を介して送信されたビットの暗号（好ましくはワンタイムパッド）を利用する。
【００１５】
本明細書において利用されるプライバシ増幅方法では、ランダム２値行列による乗算が実行される。行列による乗算は、暗号的に強い選別鍵のシャッフル処理の後に行なわれる。鍵拡張処理工程では、ストリーム暗号が用いられる。
【００１６】
ＱＫＤプロセスの概観
図１は、本発明のＱＫＤプロセスの一般的な概観を示すフロー図である。図１において、量子鍵配布（ＱＫＤ）プロセスを開始するために、２人の当事者（アリスとボブ）は、選別処理手順の認証に必要な初期秘密情報を共有する。選別処理段階において、ＱＫＤの二人の当事者は、基準および単一光子検出器の「クリック」情報を交換する。
【００１７】
「量子メモリを確保する」ため、選別処理は、ビット検出後、約＞１秒遅れて開始される。ボブ（最終的に光子を受信する側）は、クリックタイムスロットの情報およびクリック位置用の基準情報をアリス（光子を送信する側）に送信する。アリスは、上記「クリック」に対する上記「正しい」基準を符号化するビットストリームで応答する。両当事者は、「誤った」基準を持つビットを無視する。
【００１８】
選別処理手順が認証される。この目的のために、アリスとボブは、送信／受信中のビット列を事前に同意した形式で生成し、その列のメッセージ認証コード（ＭＡＣ）値を計算する。後者の値が一致する場合、アリスとボブは誤り訂正プロトコルへ進む。ＭＡＣ値が一致しない場合には、進入または「攻撃警報」を発する。
【００１９】
認証は、あらゆる強力な認証手順によって行なうことができる。好ましい手順は、無条件的安全メッセージ認証コード（例えば、ＵＭＡＣ）である。
【００２０】
その他の考えられる認証手順は、ハッシュ関数ＳＨＡおよびＲＩＰＥＭＤ（またはその他）に基づくＨＭＡＣによって行うことができる。後者の場合は、無条件的に安全ではない。しかし、当事者は、自らが有する絶対的に安全な鍵を含むワンタイムパッドを用いて上記ＭＡＣを暗号化／部分暗号化することを決定することができる。これにより、認証をクラッキングするあらゆる可能性が排除される。選別処理全体に対して、例えばＡＥＳやＴＤＥＳ等の何らかの暗号を用いることが好ましい。
【００２１】
引き続き、図１において、選別鍵は、誤り訂正プロトコルを実行するのに十分に大きいビット数（例えば、１０5ビット以上）に達するまでバッファリングされる。次に、バッファに保存された選別鍵に対して、暗号的に強いシャッフル処理が行なわれる。両当事者（すなわち、アリスとボブ）は、絶対的に安全な鍵バッファから取り出した同じシードをシャッフル処理手順に用いる。このように、盗聴者はシャッフル処理の結果についての情報を一切有しない。上記シードは、事前に同意した時点において更新される。シャッフル処理工程は、効率的な誤り訂正プロトコルの実現に必要な誤り位置をランダム化し、選別鍵に含まれる特定のビット位置に関して盗聴者が有する情報を（好ましくは非常に高い率で）消去し、プライバシ増幅処理手順用の選別鍵を準備するために利用される。
【００２２】
シャッフル処理工程は、標準的なＢＢ８４プロトコルに対して安全性を強化するものであり、一実施形態例においては、公開チャネルを介して送信された全てのデータが暗号化されている場合はスキップしてもよい。
【００２３】
上記システムによって用いられる誤り訂正処理は、特に、誤りを訂正する当事者が、他方の当事者によって提供されたハッシュ値に基づいてカスケードプロトコルのパス数を決定するという点によって特徴づけられる。カスケードプロトコルの各パスの後、上記当事者は、そのバッファにおいてハッシュ値を計算し、これを受信した値と比較する。ハッシュ値が一致する場合、カスケードは停止される。上記の値が一致しない場合、カスケードの別のパスが行なわれる。このように、公開チャネルを介して送信すべきビット数が減少し、いくつかの誤りを訂正するためのカスケードが失敗する確率は実質的にゼロとなる。通常、良好な混合特性を持つあらゆるハッシュ関数を用いることができる（例えば、ＳＨＡ、ＭＤ５）。カスケード処理のその他の変形例としては、公開ディスカッション層を介して送信されたパリティビットを暗号化することが含まれる。上述のハッシュ値も、暗号化されることが好ましい。したがって、公開ディスカッション層（チャネル）を介した通信を傍受する盗聴者は、ビットパリティに関する情報を受信することはない。なお、特定のビット位置に関する情報は、シャッフル処理工程において高い率で消去される。
【００２４】
誤り訂正処理手順の結果は、プライバシ増幅処理のためにバッファリングされる。このバッファリングには、誤り訂正処理工程およびプライバシ増幅処理工程においてサイズの異なるブロックを調整することが必要となる場合がある。プライバシ増幅処理は、誤り訂正処理が行われた列を固定のランダム２値行列Ｍで乗算することで行なわれる。シャッフル処理工程により、ＱＫＤの間、上記行列を固定しておくことが可能となる。
【００２５】
アリスでの量子鍵生成
図２［アリス−１］、図３［アリス−２］および図４［アリス−３］は、アリスのノードに設置されたアリスのコンピュータによって行なわれる、本発明の量子鍵生成プロセスのフロー図である。さらに、「アリスの装置」および「アリスのコンピュータ」ならびに「ボブの装置」および「ボブのコンピュータ」は、それぞれ「アリス」ならびに「ボブ」と呼ぶ。
【００２６】
図２［アリス−１］は、アリスのコンピュータ上で実行される選別処理段階を示すフロー図である。８−１において、アリスは、量子層の鍵ビットおよび基準をアリスの装置内のＲＮＧから受信する。８−２において、アリスは、ボブの装置（ＣＰＢ）の単一光子検出器のクリック位置、クリック用の基準（ＢＣＢ）およびメッセージ認証コード（ＭＡＣＢ１）をボブから受信する。８−３において、アリスは、自身のメッセージ認証コード（ＭＡＣＡ１）を計算し、それをボブのメッセージ認証コード（ＭＡＣＢ１）と比較する。８−４において、ＭＡＣＢ１はＭＡＣＢ２と比較される。ＭＡＣＢ１およびＭＡＣＡ１の値が一致する場合（「ｙｅｓ」）、アリスは、データを不正に変更する試みはなされなかったと結論する。ＭＡＣＢ１およびＭＡＣＡ１の値が一致しない場合（「ｎｏ」）、プログラムは、８−５において攻撃警報を発し、８−６においてボブに警告を送信する。
【００２７】
ＭＡＣＢ１およびＭＡＣＡ１の値が一致する場合、８−７において、アリスは、一致のための基準をチェックすることにより正しい基準位置列（ＣＢＰＡ）を生成し、ＣＢＰＡ（ＭＡＣＡ２）用のメッセージ認証コードを計算する。次に、８−８において、ＣＢＰＡおよびＭＡＣＡ２がボブに送信される。その後、８−９において、アリスは、正しい基準に対応するビットを選択し、残りのビットを破棄する。
【００２８】
図３［アリス−２］は、図２のフロー図から継続するフロー図であり、選別処理段階のためのバッファリングおよび改良カスケードのシャッフル処理を、例えばアリスのコンピュータ上で実行されるアルゴリズムのプロトコル部として含む。図２の８−９に続いて、バッファリングが９−１において完了される。次に、９−２において、アリスは、事前に同意した鍵の部分を用いて、暗号的に強いシャッフル処理を行なう。その後、シャッフル処理が行われたハッシュ列の（ｈａ）が９−３において計算され、ｈａは、９−４においてボブに送信される。
【００２９】
誤り訂正処理のため、アリスは、９−５において、ワンタイムパッドのパリティビット暗号化を用いた改良カスケードプロトコルを使用する。９−５の各実行において、改良カスケードアルゴリズムのＮ回目のパスがボブに伝達される。９−５の改良カスケードプロトコルの各パスの後、アリスは、ボブから送信された一致するハッシュ値の状態をチェックする。９−６において新たなハッシュ（ｈ）と上記古いハッシュ（ｈａ）とがボブ側で一致しない場合（「ｎｏ」）、改良カスケードのより高いパスが実行される。このプロセスは、９−６において一致するハッシュ（「ｙｅｓ」）が得られた時点で停止される。９−７において、誤り訂正処理の結果もバッファリングしてもよい。
【００３０】
当事者は、公開チャネルを介した通信中にスプーフィングが行なわれなかったことを確実にするために、自らの生成鍵について何らかの認証情報を交換することにしてもよい。
【００３１】
図４［アリス−３］は、図３のフロー図から続くフロー図であり、アリスのコンピュータ上で実行される誤りを含まない鍵の生成段階を示す。１０−１において、訂正されたビットストリームを固定のランダム２値行列Ｍで乗算することにより、訂正されたビット列に対してプライバシ増幅処理が行なわれる。この手順により、安全鍵が生成される。１０−２において、安全鍵は、ボブのステーションと同期してバッファリングされ、安全鍵は１０−３において出力される。
【００３２】
バッファリングは、サービス拒否（ＤＯＳ）攻撃を測る良い手段である。ＤＯＳ攻撃が行なわれた場合、上記ステーションは、コントロールセンターに対して警報を発する。例えば、ステーションは、単純なネットワーク管理プロトコル（ＳＮＭＰ）トラップを送信することができる。次に、ステーションは、ＤＯＳが緩和されるまで、ＱＫＤで生成した鍵の代わりに、バッファリングされた鍵の使用を開始することができる。バッファのサイズは、技術者にＤＯＳ問題に対処するための時間を与えるのに十分な大きさでなくてはならない。なお、量子暗号の標準的な実施方法は、ＤＯＳ攻撃に対する耐性を有しない。
【００３３】
ボブでの量子鍵生成プロセス
図５［ボブ−１］、図６［ボブ−２］および図７［ボブ−３］は、ボブのコンピュータによって行なわれる量子鍵生成プロセスのフロー図である。図５［ボブ−１］は、ボブのコンピュータ上で実行される選別処理段階を含むフロー図である。１１−１において、ボブは、例えば３２ビット入力／出力ポートを通じて、ボブの装置（ＢＣＢ）内のＲＮＧからクリック用の量子層基準を、単一光子検出器からクリック位置（ＣＰＢ）を受信する。１１−２において、ＣＰＢ用とＢＣＢ用に列が生成される。１１−３において、ボブは、これらの列用にメッセージ認証コード（ＭＡＣＢ１）を計算する。１１−４において、ボブは、ＢＰＢ、ＢＣＢおよびＭＡＣＢ１をアリスに送信する。１１−５において、今度は、ボブがＣＢＰＡおよびＭＡＣＡ２をアリスから受信する。１１−６において、受信されたデータ用にメッセージ認証コード（ＭＡＣＢ２）が再度計算され、１１−７において、ＭＡＣＢ２とＭＡＣＡ２とが比較される。ＭＡＣＢ２とＭＡＣＡ２とが一致しない場合（「ｎｏ」）、データ伝送中にデータを不正に変更する試みがなされている。この場合、プログラムは、１１−８において攻撃警報を発し、１１−９においてボブとアリスに警告を送信する。１１−７においてＭＡＣＢ２とＭＡＣＡ２とが一致する場合（「ｙｅｓ」）、データ伝送中に攻撃は起こっていない。この場合、１１−１０において、プログラムは、正しい基準に対応するビットを選択し、残りのビットを破棄する。
【００３４】
図６［ボブ−２］は、図５のフロー図から続くフロー図であり、選別処理段階およびシャッフル処理のためのバッファリング、ならびにボブのコンピュータ上で実行されるアルゴリズムの改良カスケードプロトコル部を含む。
【００３５】
１２−１において、１１−１０で選択されたビットがバッファリングされる。バッファリング完了後、１２−２において、事前に同意した鍵の部分を利用して暗号的に強いシャッフル処理が行なわれる。１２−３において、ボブは、アリスからハッシュを受信し、これ（ｈａ）を１２−４において保存する。誤り訂正処理のため、１２−５において、ボブは、ワンタイムパッドのパリティビット暗号化を用いたカスケードプロトコルを使用する。１２−５の各実行中、改良カスケードアルゴリズムのＮ回目のパスの通信がボブに対して行なわれる。このようなデータ交換により、パリティビット暗号化が確実となる。１２−５の改良カスケードプロトコルの各パスが行なわれた後、新たなハッシュ（ｈ）が１２−６において計算され、１２−７において先のハッシュ（ｈａ）と比較される。ｈとｈａとが一致しない場合（「ｎｏ」）、改良カスケードのより高いパスが１２−５において実行される。このプロセスは、１２−６において一致するハッシュが得られた（「ｎｏ」）時点で停止される。この場合、ボブは、１２−８において、ハッシュｈとハッシュｈａが一致したことをアリスに知らせるフラグをアリスに送信する。１２−９において、誤り訂正処理もバッファリングされる。
【００３６】
図７［ボブ−３］は、図６のフロー図から継続するフロー図であり、ボブのコンピュータ上で実行される誤りを含まない鍵の生成段階を含む。（バッファリング工程１２−９に続く）１３−１において、訂正されたビットストリームを固定のランダム２値行列Ｍで乗算することにより、訂正されたビット列に対してプライバシ増幅処理が行なわれる。この手順により、安全鍵が生成される。１３−１で得られた安全鍵は、次に１３−２においてバッファリングされ、１３−３において鍵が生成される。
【００３７】
ここでもまた、ＤＯＳ攻撃が行なわれた場合には、ステーションはコントロールセンターに対して警報を発し、操作を確実に継続するために上記の手順に従う。
【００３８】
鍵拡張処理
なお、本発明の一実施形態例においては、ワンタイムパッド暗号化用に任意の長い鍵が生成され、これにより暗号化データの帯域幅が大きくなる。厳密に言えば、拡張鍵を用いた、ワンタイムパッドのような暗号化は、もはやワンタイムパッド暗号化ではない。しかし、データを暗号化するためにユーザが実行しなければならない全ての操作は、ワンタイムパッド暗号化を実施するために必要な操作と同一であるため、ここでは「ワンタイムパッド」という用語が用いられている。
【００３９】
上述のように、ＱＫＤシステムによる安全鍵レートは、ワンタイムパッド暗号化が用いられている場合、通常、商業利用可能なデータ伝送線には低すぎる。同時に、多くの場合、ワンタイムパッドを用いることは、過剰な安全対策である。したがって、以下においては、ＱＫＤの標準プロトコルに加えて鍵拡張プロトコルを含むＱＫＤ装置について説明する。これにより、ユーザは、ワンタイムパッドとワンタイム拡張パッドというＱＫＤ操作の２つの方式から選択することができる。原則として、ユーザは、ユーザのサイトにおいて１度だけ鍵を拡張することができる。しかし、このような方法は費用がかかる上、必ずしも安全ではなく、ＱＫＤシステムの安全度を低下させる。本発明の技術は、ユーザが拡張鍵方式とワンタイムパッド方式から選択することを可能にするものである。しかし、鍵拡張処理自体は、ＱＫＤ装置内で行なわれる。
【００４０】
現行のＱＫＤの実施方法は、現在では１キロビット／秒オーダーである低い鍵レートという問題を有している。鍵レートは、ＱＫＤ装置のクロックレート、光源の不完全性、検出器の有限効率、光学素子の有限精度およびＱＫＤステーションを接続する光ファイバにおけるロスにより決定される。技術革新によって安全なビットのレートの増加が可能になると見込まれるが、このレートは、商業利用可能な通信線の帯域幅よりも低い。このことが、このような通信線へのワンタイムパッド暗号化を用いたＱＫＤシステムの使用を妨げている。
【００４１】
一方、ＱＫＤが使用されている場合、ワンタイムパッドは、暗号化の自然な選択である。ワンタイムパッドによって究極の安全性が保証され、これによりワンタイムパッド暗号化とＱＫＤとの組み合わせが解読不能となる。欠点は、ワンタイムバッドを使用することにより、データ伝送帯域幅が鍵レートの帯域幅に限定されることである。
【００４２】
多くの場合、ワンタイムパッド暗号化は過剰であり、他の古典的な対称鍵暗号化技術をＱＫＤシステムと共に用いることが可能である。これらの技術には、追加のハードウェアおよび／またはソフトウェアが必要となる。本発明は、特殊化された暗号装置を備えないＱＫＤシステムに関する。このようなシステムは、ワンタイムパッド暗号化モードにおいて用いることができる。以下に、ＱＫＤシステムをワンタイムパッド方式または拡張パッド方式で用いることを可能にするＱＫＤシステムの特徴（「ワンタイムパッド／拡張パッドスイッチ」）について説明する。ワンタイムパッドの実施形態は、量子鍵配布によってもたらされる究極の安全性を実現し、一方、拡張パッド方式は、ワンタイムパッドが必要でない場合において有限帯域幅の問題を解決する。
【００４３】
ワンタイムパッド／拡張パッドスイッチは、ＱＫＤシステムに容易に追加が可能である。多くの場合、これは、既存のＱＫＤハードウェア上のソフトウェア手段によって実現できる。ワンタイムパッド方式および拡張パッド方式は、いずれも同じ鍵配布インターフェイスを用いることが好ましい。
【００４４】
上記ＱＫＤシステムは、２ヶ所の遠隔地において同じランダムビットを生成する完全な乱数発生器であると考えることができる。スイッチ位置「ワンタイムパッド」においては、生成されたビットは、特定のメッセージをワンタイムパッド暗号化するために、インターフェイスを介してユーザに送信される。
【００４５】
スイッチ位置「拡張パッド」においては、ランダムビットは、ＱＫＤのハードウェア上で実施可能である暗号的に強い擬似乱数発生器用のシードとして機能し、メッセージを暗号化するのに十分な長さの擬似ランダムビットストリームを生成し、これもまた、メッセージをワンタイムパッド暗号化するために、同じインターフェイスを介してユーザに送信される。
【００４６】
通信を行なっている当事者は、上記の方式を同期して切り替える。当事者は、自らが有するあらゆる通信ネットワークを同期化に用いることができる。例えば、鍵拡張処理を要求する当事者（アリスまたはボブ）は、事前に同意したビットに対して「鍵拡張フラグ（Pad Expansion Flag）」＝１を設定し、２つのＱＫＤステーション間で同意した通信プロトコル内で、このビットを他方の当事者と交換する。同期化プロトコルもまた、ＱＫＤ装置において実施することが可能であり、ＱＫＤの通信線を用いることができる。暗号化メッセージを送信する側は、暗号化方式を受信側に通知し、拡張パッド方式の場合には、鍵拡張比率を通知する。
【００４７】
鍵（パッド）拡張処理例
鍵拡張処理は、プライバシ増幅プロトコルの後にＱＫＤ装置において行なうか、あるいはプライバシ増幅処理工程と組み合わせることができる。図８［ボブ−３１］は、１４−１により示される、鍵拡張処理がプライバシ増幅プロトコルの後に行なわれる実施形態のフロー図である。プライバシ増幅処理が行なわれた鍵は、１４−２においてバッファリングされる。１４−３において、ＱＫＤシステムは、ランダムビットブロックｒ＝ｒ１、ｒ２、．．．、ｒＮを生成する。暗号的に強い擬似乱数発生器Ｐは、ビットブロックｐｉ＝Ｐ（ｒｉ）を引き伸ばし、擬似ランダムビットストリームｐ＝ｐ１、ｐ２、．．．、ｐＮを生成する。擬似乱数発生器には、例えばＣＴＲモードのＡＥＳ等の一種のストリーム暗号を用いることができる。擬似ランダムビットストリームは、拡張パッドモードのワンタイムパッド暗号化に用いられる。この操作は、両方のＱＫＤステーション、すなわち、ボブとアリスで実行される。１４−４において、当事者は、交換した「パッド拡張フラグ」ビットの値をチェックする。なお、ここで、「パッド拡張」という用語は、鍵を拡張して（拡張）パッドを生成することを示している。
【００４８】
「パッド拡張フラグ」＝０の場合、出力は、ＱＫＤプロセス中に生成された鍵のみとなる。バッファリングされた鍵を想定して、カウンタ（ＣＴＲ）モードのＡＥＳを含む鍵スケジュールは、構造「ＩＤ＿１  Ｋｅｙ＿１；ＩＤ＿２  Ｋｅｙ＿２；ＩＤ＿Ｎ  Ｋｅｙ＿Ｎ」（図９ａを参照）を有する（構造中、ＩＤ＿Ｉは、各鍵Ｋｅｙ＿Ｉに割り当てられた数である）。
【００４９】
１４−５において、拡張パッドが出力される。「パッド拡張フラグ」＝１の場合、拡張鍵が出力となる。そして、ＣＴＲモードのＡＥＳを含む鍵スケジュールは、構造「ＩＤ＿１  Ｋｅｙ＿１  Ｐａｄ＿１；ＩＤ＿２  Ｋｅｙ＿２  Ｐａｄ＿２；．．．：ＩＤ＿Ｎ  Ｋｅｙ＿Ｎ  Ｐａｄ  Ｎ」（図９ｂを参照）（構造中、ＩＤ＿Ｉは、Ｋｅｙ＿ＩとＰａｄ＿Ｉとの各ペアに割り当てられた数である）を有する。Ｐａｄ＿Ｎは、ＣＴＲモードのＡＥＳを用いてＡＥＳ−２５６（Ｋｅｙ＿Ｎ）によって生成されたビットストリームである。ＩＤ＿ＮはＫｅｙ＿ＮまたはＰａｄ＿Ｎのいずれとも相関関係を有しない。鍵拡張比率は、ユーザのデータ帯域幅および鍵生成レートに依存する。鍵データは、決して再使用されることはない。鍵ＩＤは再使用され得るが、これに対応付けられた鍵データは常に異なる。
【００５０】
したがって、本発明において、ワンタイムパッド暗号化は、鍵生成レートよりも帯域幅が高いデータを暗号化するために用いられる必要はない。換言すれば、データ帯域幅Ｂが鍵生成レートＫよりも高い場合、何らかの古典的暗号化方法と組み合わせてＫを用いる。例えば、Ｋは２５６ビットのブロック−ｋ１、ｋ２、．．．、ｋｎに分割され（ｎ＝Ｋ／２５６）（このようにすると、ｎは１秒間に生成可能な２５６ビット鍵の数となる）、鍵ｊを何らかの古典的暗号化方法と共に用いて１／ナノ秒分のデータが暗号化される。
【００５１】
同様の実施方法は、その他の暗号モードにも達成可能である。例えば、ＣＢＣモードにおいては、上記Ｋｅｙ＿ＩＤのみの送信が必要であり、オフセットを送信する必要はない。ＣＢＣモードにより、より高度なデータ完全性チェックが実現される。例えば、パケットがＯＳＩレベル２で暗号化されている場合、解読後のデータの偽造は、通常、ＯＳＩレベル３のプロトコルによって検知される。このように、ＣＢＣモードにより、ＣＴＲモードよりも非常に優れたデータ完全性チェックが可能となる。ＣＢＣモードの暗号化を実施するためには、ユーザは、特殊化されたハードウェアを必要とする場合がある。
【００５２】
注目すべきは、ＣＴＲのＡＥＳ（およびその他多くのブロックストリーム暗号）には、データの偽造やスプーフィングが行なわれやすいという公知の欠点があることである。このため、データが認証無しに改変されていないことを保証するために、データ認証機構と共に用いることが好ましい。
【００５３】
同様の実施方法は、その他のストリーム暗号にも用いることができる。注目すべきは、メッセージ認証を可能にするストリーム暗号により、データの偽造およびスプーフィングを防止することができることである。
【００５４】
パッド拡張処理は、（ストリーム暗号と同様に）暗号的に強い擬似乱数発生器によって行なうことができる。プライバシ増幅処理工程では、部分的に安全なビットストリームから完全に安全なビットスリームを生成するＱＫＤプロトコルを利用する。通常、これは、部分的に安全なビット（例えばＢｅｎｎｅｔ、Ｂｒａｓｓａｒｄの汎用型ＰＡ）に対して何らかの汎用ハッシュ関数を適用することによって実現される。同ハッシュ関数は、盗聴者が圧縮されたビットに関する情報を指数的にほとんど有しないように上記ビットストリームを圧縮する。パッド拡張処理は、ある程度、「これと逆を行なう」。具体的には、パッド拡張処理では、より多くの鍵ビットが出力の際に受信されるように、ビットストリームが引き伸ばされる。
【００５５】
拡張パッドは、プライバシ増幅処理手順を、圧縮比率を調整することにより修正することによって生成される。後者により、計算の複雑性、ひいてはハードウェアの計算資源が減少する。一例として、可能な一実施形態には、通信当事者が、部分的に安全なビットに対して、暗号的に強いシャッフル処理手順を圧縮処理なしで適用することが含まれる。シャッフル処理手順のためのシードは、当事者が有するあらゆる既存の通信ネットワークを通じて当事者間で交換が可能である。当事者は、シャッフル処理用のシードのためにワンタイムパッド暗号化を行なうことに同意してもよい。この時点から、当事者は、シャッフル処理されたビットを用いて暗号的に強い擬似乱数発生器のシードを設定することが可能となる。
【００５６】
本発明の一実施形態例によれば、１ビット伝送の受信者は、いつ送信者が暗号化データを受信者に送信するかが分かっている。なお、１つの例においては、送信者は暗号化データを受信者に送信するが、他の例においては、受信者が送信者であり、送信者が受信者となってもよい。
【００５７】
ユーザデータの暗号化
１つの実施形態例において、本発明は、以下に概説する方法でデータ暗号化を行なうために用いられる。暗号化ステーション（例えば、ボブ）において、同ステーションは、ユーザデータパケットを読み取り、パケットデータのバイトサイズを測定する。次に、暗号化ステーションは、現在のオフセットとパケットデータサイズとの和がパッドのバイトサイズよりも小さいかどうかチェックする。そうでない場合、上記ステーションは、次の鍵ＩＤにジャンプし、オフセットをゼロにリセットする。
【００５８】
次に、暗号化ステーションは、現在のオフセット値から、パケットデータと適切なパッドとの排他的論理和をとる。また、鍵ＩＤおよび非暗号化形式のオフセット情報をパケットに付加する。後者は、付加ヘッダを付加する、あるいはデータパケットの既に存在するあるフィールドを用いることにより、パケットを他のパケット内に埋め込むことによって行なわれる。次に、暗号化ステーションは、暗号化データパケットのサイズ分だけ現在のオフセットを増加させ、暗号化パケットを受信者に送信する。
【００５９】
解読ステーション（例えば、アリス）においては、パケットが読み取られ、鍵ＩＤおよびオフセットが抽出される。次に、受信されたオフセット値から、受信されたデータと上記適切なパッドとの排他的論理和がとられる。次に、受信ステーションは、（必要であれば）全てのパケットヘッダを再現し、データをユーザに渡す。
【００６０】
以上、本特許出願は、２００３年２月７日に出願された米国仮特許出願番号６０／４４５，８０５の優先権を主張するものである。
【図面の簡単な説明】
【００６１】
【図１】本発明のＱＫＤプロセスの概観を示すフロー図である。
【図２】アリスのコンピュータ上で実行される鍵選別処理を示すフロー図である。
【図３】図２のフロー図から継続するフロー図であり、アリスのコンピュータ上での改良カスケードプロトコルを用いた鍵シャッフル処理を示す。
【図４】図３のフロー図から継続するフロー図であり、シャッフル処理された鍵のプライバシ増幅処理を行なうことにより、アリスのコンピュータ上で誤りを含まない鍵を生成する実施形態例を示す。
【図５】ボブのコンピュータ上で鍵選別処理を行う実施形態例を示すフロー図である。
【図６】図５のフロー図から続くフロー図であり、ボブのコンピュータ上で改良カスケードプロトコルを用いた鍵選別処理を行う実施形態例を示す。
【図７】図６のフロー図から続くフロー図であり、シャッフル処理された鍵のプライバシ増幅処理を行なうことにより、ボブのコンピュータ上で誤りを含まない鍵を生成する実施形態例を示す。
【図８】プライバシ増幅処理が行なわれた鍵に対して鍵拡張処理を行なう実施形態例を示すフロー図である。
【図９ａ】ＣＴＲモードのＡＥＳが用いられている場合における「パッド拡張フラグ」＝０の鍵スケジュールの一例を示す図である。
【図９ｂ】ＣＴＲモードのＡＥＳが用いられている場合における「パッド拡張フラグ」＝１の鍵スケジュールの一例を示す図である。
【図１】
2006514512.tif 000003
【図２】
2006514512.tif 000004
【図３】
2006514512.tif 000005
【図４】
2006514512.tif 000006
【図５】
2006514512.tif 000007
【図６】
2006514512.tif 000008
【図７】
2006514512.tif 000009
【図８】
2006514512.tif 000010
【図９ａ】
2006514512.tif 000011
【図９ｂ】
2006514512.tif 000012
【国際調査報告】
2006514512.tif 000013
2006514512.tif 000014