(57)【特許請求の範囲】
【請求項１】
コミットメントフェーズでコミット値に対応して乱数生成器で得られる出力を２つの異なる量子生成器の入力とし、該量子生成器の出力を量子通信路で伝送し、上記コミットメントフェーズの後の開示フェーズにおいて上記コミット値を古典通信路で伝送する構成において、
上記乱数生成器と上記２つの異なる量子生成器の間に設けられ、上記乱数生成器の出力である数列を入力の変数として、それぞれの一方向性関数定義式に基いて一方向性関数値を表すビット列を生成して出力する第１と第２の一方向性関数生成器と、
所定の応答時限を計時するための時計と、を備えて、
上記第１の一方向性関数生成器の出力であるビット列に従い上記各量子生成器のいずれかを動作させて、該動作させた量子生成器の出力を上記量子通信路で伝送し、かつ上記第２の一方向性関数生成器が生成したビット列を上記古典通信路で伝送し、また上記量子通信路による伝送を開始してから上記伝送を受けて受信側が行った送信側に対応する処理結果の応答を上記古典通信路経由で受取るまでの時間を上記時計の応答時限で限定される時間内に限ることを特徴とする量子ビットコミットメント送信装置。
【請求項２】
コミット値に対応して乱数生成器で得られた出力を入力として、一方向性関数値を出力する第３の一方向性関数生成器を設けて、該第３の一方向性関数生成器の出力を量子生成器の入力とすることを特徴とする請求項１記載の量子ビットコミットメント送信装置。
【請求項３】
コミットメントフェーズでコミット値に対応して乱数生成器で得られる出力を２つの異なる量子生成器の入力とし、該量子生成器の出力を量子通信路で伝送し、コミットメントフェーズの後の開示フェーズにおいて上記コミット値と上記乱数生成器の出力列を古典通信路で伝送する構成において、
入力変数としての数列から所定の一方向性関数定義式に基いて出力値が上記コミット値になるような一方向性関数値を出力する第１の一方向性関数生成器と、
上記コミット値に対応する乱数生成器の出力を入力とし、該入力から所定の一方向性関数定義式に基いて一方向性関数値を表すビット列を生成して出力する第２の一方向性関数生成器と、
所定の応答時間を限定するための時計と、を備えて、
上記第２の一方向性関数生成器の出力であるビット列を上記各量子生成器に入力して、該各量子生成器の出力を上記量子通信路で伝送し、また上記量子通信路による伝送を開始してから上記伝送を受けて受信側が行った送信側に対応する処理結果の応答を上記古典通信路経由で受取るまでの時間を上記時計の応答時限で限定される時間に限ることを特徴とする量子ビットコミットメント送信装置。
【請求項４】
請求項１記載の送信側の量子ビットコミットメント送信装置からコミットメントフェーズで量子通信路により伝送された受信データ列を受信し、２つの異なる量子測定器のいずれかを受信側の乱数生成器の出力である乱数列で選択して上記受信データ列を測定し、該測定結果と上記選択した量子測定器の型とを送信側に古典通信路により伝送し、コミットメントフェーズの後の開示フェーズにおいて上記送信側の量子ビットコミットメント送信装置からコミット値と送信側の乱数生成器の出力の第１の乱数列と第２の乱数列とを照合データとして古典通信路により受ける構成において、
上記量子ビットコミットメント送信装置の２つの一方向性関数生成器に対応して変数である入力数列からそれぞれの一方向性関数定義式に基いて一方向性関数値を表すビット列を生成する２つの受信側の一方向性関数生成器と、
所定の応答時限を計時するための受信側の時計と、を備えて、
上記コミットメントフェーズにおいて送信側からの伝送開始から上記量子測定器による測定結果の応答を上記送信側へ上記古典通信路経由で伝送するまでを上記受信側の時計の応答時限で限定される時間に限って行い、開示フェーズにおいて上記受信側の一方向性関数生成器の出力から得られる第１の乱数列と上記送信側から伝送された上記照合データの第１の乱数列とを比較し、かつ上記選択した量子測定器の出力から得られる第２の乱数列と上記照合データの第２の乱数列とを比較することを特徴とする量子ビットコミットメント受信装置。
【請求項５】
送信側の第３の一方向性関数生成器に対応する受信側の第３の一方向性関数生成器を設けて、
開示フェーズでは、送信側から伝送される送信側の乱数生成器の出力に基いて上記対応した受信側の第３の一方向性関数生成器で得られるコミット値と、伝送されたコミット値とを比較することを特徴とする請求項４記載の量子ビットコミットメント受信装置。
【請求項６】
請求項１記載の量子ビットコミットメント送信装置と、
請求項４記載の量子ビットコミットメント受信装置と、で構成されることを特徴とする量子ビットコミットメント通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、量子力学に基づく不確定性原理を利用した量子暗号プロトコルに関するものである。
【０００２】
【従来の技術】
量子力学を利用したセキュリティに関する量子暗号プロトコルとしては、鍵配送プロトコルの他に、ビットコミットメントプロトコル、紛失通信プロトコルが提案されている（岡本龍明、山本博資著「現代暗号」ｐｐ．２９３−ｐｐ．３０２産業図書１９９８年６月３０日）。いずれも図１のように量子通信路と古典通信路の２つの通信路を有している。一般に、紛失通信プロトコルを基にしてあらゆるセキュリティに関する２者間プロトコルが構成できることが示されており(J. Kilian, ”Founding Cryptography on Oblivious Transfer,” Proc. 20th Annual ACM Symposium on Theory of Computing, pp.20-pp.31, ACM, Chicago, 1998)、かつ、ビットコミットメントプロトコルに基づく紛失通信プロトコルが提案されている(A. Yao, ”Security of quantum protocols against coherent measurements,” Proc. of the 27th Symposium on the theory of Computing, pp.67-pp.75 June 1995)。従って、量子暗号通信プロトコルとしての紛失通信プロトコル自体の実現、もしくは、量子暗号通信プロトコルとしてのビットコミットメントプロトコルの実現が求められている。
【０００３】
ここで、紛失通信とは、送信者Ａが通信文ｍを受信者Ｂに送るとき、１／２の確率で受信者Ｂに伝わるが、それが伝わったかどうかを送信者Ａは一切知ることができないような通信である（岡本龍明、山本博資著「現代暗号」ｐｐ．２２９産業図書１９９８年６月３０日）。また、ビットコミットメントとは、送信者Ａと受信者Ｂからなる２者間から構成されるプロトコルで、以下に述べる２つのフェーズから構成される：▲１▼コミットメントフェーズ、▲２▼開示フェーズ。▲１▼ビットコミットメントフェーズでは、送信者Ａは０，１のいずれか１ビットｂをコミットするビットとして選択し、その後受信者Ｂと交信を行う。▲２▼開示フェーズでは、送信者Ａは受信者Ｂにｂを送り受信者Ｂと交信を行う。最後に受信者Ｂは当該コミットであるｂを受理するか拒絶するかを行う。このプロトコルにおいて以下の２つの条件を満足することが要求される：１つは、コミットメントフェーズにおいて、受信者Ｂがｂの値を正しく求められないこと。２つは、送信者Ａがコミットメントフェーズを実行した後の開示フェーズにおいて選択していない方のｂの値を開示できないこと（岡本龍明、山本博資著「現代暗号」ｐｐ．１４３産業図書１９９８年６月３０日）。
このような性質を満たす従来から提案されている量子ビットコミットメントプロトコルを実現する構成として、図１１のようなシステムがある。このシステムにおいて、送信装置は、乱数生成器、互いに共役な量子生成器、古典通信路送受信装置、データ照合装置からなり、受信装置は、乱数生成器、送信者の有する２つの量子生成器それぞれに対応した２つの量子測定器、古典通信路送受信装置、データ照合装置からなる。
【０００４】
次に動作について説明する。
送信者Ａが量子通信路を使って送信するキュービット列を生成するにあたり、コミットするビットｂを決める。乱数生成器を用いて２つの乱数列を生成する。第１の乱数列はパリティがｂと一致するように生成する。また第２の乱数列に対して、その乱数列の値に計算量的な意味で一方向性的な変換を施すことなく当該乱数値を用いて２つの量子生成器の１つを第１の乱数列のビット毎に選択する。選択された量子生成器で第１の乱数列をそのビット毎にキュービットに変換する。つまり、１つの量子生成器あたりビット値０，１に応じて２種類のキュービットが生成される。従って、全体で４種類のキュービットが生成されることになる。変換後のキュービット列は量子通信路を用いて受信者Ｂに送られる。
このとき、受信者Ｂを含めあらゆる観測者にとって、完全に上記４つのキュービットを区別できないことが量子力学から保証されている。つまり、あらゆる観測者にとって、測定するときに上記２つの量子生成器に対応する２つの量子測定器のいずれかを選択しなければならないので、その測定器に対応したキュービットしか観測できないのである。このとき、キュービット生成に用いた量子生成器と観測に用いた量子測定器の型が一致していれば、観測者は生成されたキュービットの種類を決定論的に正しく特定できるが、もし、キュービット生成に用いた量子生成器と観測に用いた量子測定器の型が一致していなければ、観測者は生成されたキュービットの種類を確率１／２でしか推定できないのである。かつ、一回でも観測することにより、観測されたキュービットは観測に用いた測定器に従い変化してしまうので、繰り返し測定を行うことで正しい種類を特定することも不可能である。
【０００５】
受信者Ｂはキュービット列を受信すると即座に２つの量子測定器のいずれかを受信装置にある乱数生成器で生成した乱数を用いて選択し、キュービット毎にキュービット列を測定し記録しておく。この測定結果とは、キュービット毎に測定した測定器の種別とその選択した測定器を用いてキュービットを測定した結果に基づき復号されたビット値の対である。この時点で受信者Ｂは測定に用いた量子測定器のどれが正しく測定されたキュービットの生成に用いられた量子生成器に対応するか未知なので、ｂを特定できない。
開示フェーズに、送信者Ａがｂと２つの乱数列を古典通信路をもちいて開示すると、受信者Ｂは開示された乱数列と測定結果のデータ照合をおこなう。送信者Ａが生成した２の乱数列と受信者Ｂが生成した乱数列の照合を行い、その各ビットに対してビット値が一致した部分に対応した送信者Ａが生成した１の乱数列を抽出し、同様に受信者Ｂがキュービットを測定してえた復号結果を抽出する。
この２つの抽出されたビット列が全く一致していれば、受信者Ｂは送信者Ａが正しい２つの乱数列を開示したと判断できる。正しい乱数列を開示した判断した受信者Ｂは、送信者Ａが開示したｂと第１の乱数列のパリティを比較し、一致すれば、このビットコミットメントを受理するのである。この開示フェーズにおいて、送信者Ａは受信者Ｂがどの量子測定器を用い、どのような測定とそれに伴う復号結果を得たか未知なので、開示するｂと２つの乱数列を都合よく改ざんすることはできない。
【０００６】
【発明が解決しようとする課題】
任意のセキュアな２者間プロトコルを構成するためには紛失通信プロトコルを構成すればよく、そのための１つの手段として量子ビットコミットメントプロトコルを構成すればよい。しかし、従来の量子ビットコミットメントプロトコルは、受信者Ｂがコミットメントフェーズにおいて送信されてきたキュービット列を測定することを前提としているが、受信者Ｂがキュービット列を測定しないで貯えておくという不正を働くことが可能である。この場合、受信者Ｂは送信者Ａがどのような量子生成器を使ったかを、すなわち、送信者生成の２の乱数列を、何らかの手段を用いて知ることができれば、この情報を基に貯えておいたキュービット列の全てを正しく測定でき、正しく送信者生成の１の乱数列を復号できるので、開示フェーズを待たずに受信者Ｂはｂの値を知ることができてしまうという課題がある。つまり、送信者Ａはｂだけでなくキュービット列生成に使用した乱数列も開示フェーズまで安全に秘匿しなければならない。
また、従来の量子ビットコミットメントプロトコルでは、送信者Ａが送信するキュービット列の各キュービットは他の系と相関のない全く独立した状態であることを前提としているが、送信者Ａはエンタングル状態と呼ばれる相関のある２粒子状態の一方の粒子をキュービットとして送信するという不正を働くことが可能である。この場合、送信者Ａは残された相関のあるもう一方の粒子を貯えておく。受信者Ｂがキュービットを測定すると、測定結果に応じて送信者Ａが貯えた粒子の状態が相関により定まるので、送信者はこの貯えられた粒子の状態を測定することで、受信者Ｂの測定結果を推定できてしまう。従って、送信者Ａはこの推定結果に整合する範囲で、ｂと２つの乱数列を容易に選択できる。つまり、送信者Ａはビットコミットメントフェーズが終了後に任意にｂの値を選択できるという課題がある。(D. Mayers, ”Unconditionally secure quantum bit commitment is impossible,” Phys. Rev. Let., vol.78, pp.3414-3417, 1997).
【０００７】
この発明は上記のような課題を解決するためになされたもので、受信者が開示フェーズの前にコミットしたビット値を推定できず、かつ、送信者がコミットメントフェーズ以後にコミットしたビット値を変更できないという意味で安全なビットコミットメントプロトコルを得ることを目的とする。
【０００８】
【課題を解決するための手段】
この発明に係る量子ビットコミットメント送信装置は、２つの異なる量子生成器と乱数発生器とにより、コミットするデータを含むデータを量子通信路と古典通信路とを用いて伝送する構成において、
入力数列から一方向性関数を得る一方向性関数発生手段と、応答時間を規制する時計とを備えて、
一方向性関数発生手段の入力数列を乱数発生器から得て、一方向性関数発生手段の出力を少なくとも量子生成器に与えるようにし、かつ受信先からの受信応答である測定結果の受付を時計が指定する時間内に限定した。
【０００９】
また更に、異なる２つの一方向性関数発生手段を設けて、１つは古典通信路を用いて伝送するようにした。
【００１０】
また更に、他の一方向性関数発生手段を設けて、この他の一方向性関数発生手段出力がコミットするデータを生成するようにした。
【００１１】
また更に、コミットするデータを順次定めたデータ列を一方向性関数発生手段の入力数列とした。
【００１２】
この発明に係る量子ビットコミットメント受信装置は、２つの異なる量子生成器と乱数発生器とにより、コミットするデータを含むデータを量子通信路と古典通信路とを用いて伝送する構成において、
入力数列から一方向性関数を得る一方向性関数発生手段と、応答時間を規制する時計とを備えて、
一方向性関数発生手段は、送信装置に対応した一方向性関数発生手段とし、開示フェーズにおける受信データを入力数列として、かつ出力を先に受信した結果と比較し、かつ送信元への受信応答である測定結果の送信を時計が指定する時間内に限定した。
【００１３】
この発明に係る量子ビットコミットメント通信システムは、２つの異なる量子生成器と乱数発生器とにより、コミットするデータを含むデータを量子通信路と古典通信路とを用いて伝送する構成において、
送信装置と受信装置は、入力数列から一方向性関数を得る一方向性関数発生手段と、応答時間を規制する時計とを備えて、
送信装置は、一方向性関数発生手段の入力数列を乱数発生器から得て、一方向性関数発生手段の出力を少なくとも量子生成器に与えるようにし、かつ受信先からの受信応答である測定結果の受付を時計が指定する時間内に限定し、
受信装置は、一方向性関数発生手段を送信装置に対応した構成とし、開示フェーズにおける受信データを入力数列として、出力を先に受信した結果と比較し、かつ送信元への受信応答である測定結果の送信を時計が指定する時間内に限定した。
【００１４】
【発明の実施の形態】
実施の形態１．
図１はこの発明の一実施の形態を示す全体構成図である。
図１において、１は送信者側の量子通信および古典通信が可能な送信装置、２は受信者側の量子通信および古典通信が可能な受信装置、３は送信装置１と受信装置２をつなぐ量子通信路、４は送信装置１と受信装置２をつなぐ古典通信路である。図２は図１で構成される通信系において安全なビットコミットメントプロトコルを実現するための送信装置１、受信装置２の一構成を示す。図２において５は乱数生成器、６は時計、７は式（１）に示す一方向性関数を生成する一方向性関数ｆ生成器、８は式（２）に示す一方向性関数を生成する一方向性関数ｈ生成器である。
ｆ（・），                      （１）
ｈ（・）（∈｛０，１｝k），      （２）
また、互いに共役な物理量からなる９は＋系の量子生成器、１０は×系の量子生成器）、１１は古典通信路送受信装置、１２はデータ照合装置、１３は乱数生成器、１４は時計６と同期した時計、１５は一方向性関数７と同じ一方向性関数ｆ生成器、１６は一方向性関数８と同じ一方向性関数ｈ生成器、１７は＋系量子生成器９に対応した量子測定器、１８は×系量子生成器１０に対応した量子測定器、１９は古典通信路送受信装置、２０はデータ照合装置である。
【００１５】
量子状態として、本発明において互いに共役な物理量を有する任意の量子を用いることが可能である。具体的な一例として量子として光子を用いる場合、量子状態として偏光状態を用いることができる。偏光状態として１つの直線偏光を０度偏光と定義したとき、これと垂直な直線偏光を９０度偏光とし、この２つの状態対を＋系量子状態と定義する。このとき、互いに共役な量子状態として、４５度傾いた直線偏光と１３５度傾いた直線偏光の２つの量子状態対を×系量子状態として定義される。このとき、量子生成器としては、互いに４５度傾いた２つの偏光ビームスプリッタ、レーザ光源から構成できる。量子測定器としては、偏光ビームスプリッタと光子検出器から構成できる。
量子通信路としては光ファイバーを用いる、または、空間そのものを用いることも可能である。このとき、＋系量子生成器で生成された０度偏光の光子と９０度偏光の光子を＋系量子測定器で測定すると、正しく、０度偏光の光子と９０度偏光の光子を識別できるが、×系量子測定器で測定すると、それぞれ４５度偏光の光子か１３５度偏光の光子として確率１／２で測定されてしまい、元の状態が０度偏光の光子、もしくは、９０度偏光の光子であったかは全く区別できない。これは、×系量子生成器で生成された４５度偏光の光子、１３５度偏光の光子に関しても全く同様のことが成り立つ。なお、一度測定器を通した光子はその測定器に適合した状態に波束の収縮を起こしてしまい、測定器に入射する前の状態は壊れてしまっているので、測定を繰り返すことで元の状態を推定することは不可能である。
【００１６】
次に動作について説明する。
まず送信者Ａはコミットすべきビットを選択する。次に、乱数生成器５により２つの乱数が生成される。第１の乱数列は次の値（３）で与えられ、
ｃ（ビット長はｋ）        （３）
値（３）は、そのパリティが選択されたコミットビットである次式の式（４）
ｂ∈｛０、１｝            （４）
になることを満たすまで生成を繰り返す。
第２の乱数列は次の式（５）で与えられ、
ｒ（ビット長はｍ）        （５）
この式（５）は、その一方向性関数ｈ生成器８によりビット列が次式（６）の形に変換される。
ｈi（ｒ）：  ｉ＝１，．．．，ｋ            （６）
ここで一方向性関数ｈ生成器８の出力結果である式（６）のビット列から容易に入力した式（５）の乱数列が導出できない性質を利用して、後続する開示フェーズにおいて送信者Ａが式（６）のビット列と整合性を保った偽の乱数列の式（５）を開示することを防ぐことができる。
【００１７】
このためには、式（２）の一方向性関数の１例として、既存のハッシュ関数ＳＨＡ−１やＭＤ５を単体で、もしくは出力ビット長に適合するように複数組合わせて用いることも可能である。
次に、この第１の乱数列ｃからビット毎にキュービットを生成するにあたり、次の値（７）のｉ番目のビット
ｃi  （ｉ＝１，．．．，ｋ）        （７）
に対して用いる量子生成器は、式（６）で与えられたビットが次式（８）を満たすなら＋系量子生成器９を用い、式（７）のビット値が０であれば０度偏光の光子を生成し、１であれば９０度偏光の光子を生成する。
ｈi（ｒ）＝０              （８）
また逆に式（６）のビットが式（９）になるなら×系量子生成器１０を用い、式（７）のビット値が０であれば４５度偏光の光子を生成し、１であれば１３５度偏光の光子を生成する。
ｈi（ｒ）＝１             （９）
【００１８】
生成されたキュービットは量子通信路３により受信装置２に伝送される。このとき、古典通信路４を用いて、一方向性関数ｆ生成器７により乱数列ｒを変換した値で次式（１０）も受信装置２に伝送される。この伝送した時点より時計６を用いて計時が始まる。ここで一方向性関数ｆ生成器７の出力結果である式（１０）から容易に入力した乱数列の式（５）が導出できないで、かつ、同じ出力の式（１０）をもつ式（２）と異なる乱数列を導出できない性質を利用する。
即ち、１つは受信者Ｂが式（１０）から乱数列の式（２）を導出し、全てのキュービット列を正しく測定することでコミットされた式（４）のビットを開示フェーズを待たずに特定することを防ぐことができる。２つは後続する開示フェーズにおいて送信者Ａが式（１０）と整合性を保った偽の式（５）の乱数列を開示することを防ぐことができる。このためには、式（２）の一方向性関数の１例として、既存のハッシュ関数ＳＨＡ−１やＭＤ５を単体で、もしくは出力ビット長に適合するように複数組合わせて用いてもよい。
ｘ＝ｆ（ｒ）        （１０）
【００１９】
一方、受信装置では、乱数生成器１３を用いて乱数列を生成し、その各ビットの値に従って伝送されてきたキュービット列を＋系量子測定器１７で測定するか、×系量子測定器１８で測定するかが選択される。キュービット列が届くと、選択されたこれらの量子測定器により各キュービットを測定する。このキュービットが到着したときから時計１４を用いて計時を始める。測定終了後、古典通信路送受信装置１９を用いて、測定結果と測定に用いた量子測定器の種類を送信装置に送信する。この送信は次の値（１１）で示される時限迄に実行しなければならない。
ｔ                    （１１）
これは式（１）の一方向性関数の出力結果から入力乱数列を容易に導出できないのであるが、十分な時間をかければ必ず入力乱数列が導出できるので、一方向性関数ｈ生成器１６が出力結果から入力乱数列を導出するのに要する時間より短い時間で受信者にキュービットの測定を強いるのである。つまり、この制限時間内であれば受信者Ｂは式（５）の入力乱数列を知ることが不可能であり、キュービット列の全てを正しく測定することができないことが保証される。さらに一度測定したキュービット列は元の状態が破壊されているので、たとえ後で式（５）の乱数列が導出できても、もはや式（３）の乱数列およびコミットされた式（４）のビットを受信者Ｂが特定することは不可能である。
【００２０】
送信装置では、受信装置から次の値（１２）の回答時間が値（１１）の時限以内であることを確認すると、受信装置からの回答にある測定結果のうち、正しい測定器を用いている測定結果の整合性をデータ照合装置１２を用いて確認する。
ｔ’          （１２）
これにより、送信者Ａは受信者Ｂがキュービット列の測定を制限時間内に実行したことを確認できる。
正しい測定器を用いてキュービットを測定した測定結果と送信者の保持する値（７）のビットとの整合性が確認された場合、もはや、送信者Ａは受信者Ｂが送信したキュービット列を測定により破壊したこと、いいかえると、受信者Ｂが開示フェーズになるまでコミットされた式（４）のビットを特定できないことを確認できる。また、整合性が確認されないときは、送信者Ａは受信者Ｂが不正を行ったと判断し当該プロトコルを破棄する。
開示フェーズにおいて送信装置１は古典通信路４を用いて、式（４）、（５）、（６）のデータを受信装置２に開示する。受信装置２はデータ照合装置２０を用いて送られた開示データと測定結果の照合を行う。ここで、まず開示された式（５）の乱数列ｒの正しさが一方向性関数ｆ生成器１５による式（１）と、コミットメントフェーズで送信者Ａより受信者Ｂに伝送された式（１０）を用いて確認される。
【００２１】
次に、開示された式（５）の乱数列ｒと一方向性関数ｈ生成器１６による式（２）を用いて導出された式（６）のビット列から正しい測定器を用いた測定結果をピックアップし、開示された値（３）の対応するビットと比較照合する。この結果が一致すれば、開示された値（３）が正しいと確認される。最後に開示された値（３）のパリティと開示された式（４）のコミットビットが一致すれば、受信者Ｂは当該プロトコルを受理する。
逆に、上記３つの開示されたデータ、式（４）、値（３）、式（５）のいずれか１つでも正しく確認されなければ、受信者Ｂは当該プロトコルを破棄する。ここで、送信者がたとえエンタングル状態のような相関のあるキュービットを用いて、受信者Ｂの測定結果を開示フェーズの前に知ることが出来ても、上記のような開示データの整合性チェックを免れるようなデータを捏造することは、式（１）と式（２）の２つの一方向性関数の出力結果から、その結果に対応した都合の良い入力乱数列を見出すことは非常に困難であって事実上不可能に等しい。
以上のプロトコルの流れを図３に記す。
【００２２】
以上のように、互いに共役な２つの量子生成器を選択するにあたり、開示する乱数を直接用いるのではなく計算量的な意味での一方向性関数で変換したのち用いるようにしているので、送信者がエンタングル状態のような特殊な量子状態を用いて不正を働き、受信者の測定結果を知ることが出来ても、一方向性関数の出力とうまく整合するように開示フェーズにおけるデータを改ざんできないので、送信者がコミットするビットを開示フェーズにおいて改ざんするような攻撃を無効にすることができる。
また、時限を設けて受信者は測定結果を送信者に報告しなければならないので、一方向性関数を破るのに必要な時間よりも短く当該時限を設定し、伝送されたキュービット列の元の状態を壊すことを強要することにより受信者が開示フェーズ前にコミットするビットの内容を解読するという不正を防ぐことができる。
【００２３】
実施の形態２．
実施の形態１では、生成した乱数を直接キュービットに変換するようにした構成であるが、ここでは生成した乱数に一方向性関数を用いた変換を経てキュービットに変換する実施の形態を示す。
図４は、図１で構成される通信系において他の安全なビットコミットメントプロトコルを実現するための送信装置１ｂ、受信装置２ｂの構成を示す図である。図４において７ｂは式（１３）の一方向性関数を生成する一方向関数ｆ生成器、２４は式（１４）の一方向性関数を生成する一方向性関数ｇ生成器、８ｂは式（１４）の一方向性関数を生成する一方向性関数ｈ生成器である。
ｆ（・）（∈｛０，１｝n）        （１３）
ｇ（・）（∈｛０，１｝n）        （１４）
ｈ（・）（∈｛０，１｝）         （１５）
その他の互いに共役な物理量を生成する＋系量子生成器９、×系量子生成器１０、古典通信路送受信装置１１、データ照合装置１２、乱数生成器１５、時計６は図２の同番号要素と同様のものである。１５ｂは一方向性関数ｆ生成器７ｂと同じ一方向性関数ｆ生成器、３３は一方向性関数２４と同じ一方向性関数ｇ生成器、１６ｂは一方向性関数ｈ生成器８ｂと同じ一方向性関数ｈ生成器である。その他の要素は図２の構成における同番号の構成要素と同等のものである。
【００２４】
次に動作について説明する。
まず送信者Ａはコミットするビットを選択する。次に、乱数生成器５により２つの乱数が生成される。第１の乱数列は次の値（１６）で与えられ、値（１６）は、その一方向性関数ｈ生成器８による次の値（１７）が選択されたコミットビットである式（１８）になることを満たすまで生成を繰り返す。
ｒ（ビット長はｍ）        （１６）
ｈ（ｒ）              （１７）
ｂ∈｛０、１｝        （１８）
ここで、式（１５）の一方向性関数を用いることで、その出力結果である式（１８）を満足するような第１の乱数列（１６）の条件がパリティビットを用いることよりもはるかに厳しくなるので、送信者Ａが開示フェーズにおいて偽の式（１６）を開示することが困難になる。
このための一方向性関数式（１５）の１例として、既存のハッシュ関数ＳＨＡ−１やＭＤ５を使い、その出力ビット列のＭＳＢを式（１５）の出力として用いてもよい。
満足するｒが生成されると一方向性関数ｆ生成器７ｂによりビット列が次式（１９）に変換される。ここで、一方向性関数（１３）の出力結果である式（１９）から容易に入力した乱数列（１６）を導出できず、かつ、同じ出力結果（１９）を持つ値（１６）と異なる乱数列を導出できない性質を利用して、開示フェーズにおいて、送信者Ａによる開示する乱数列（１６）の改ざんを防ぐことができる。一方向性関数として、既存のハッシュ関数ＳＨＡ−１やＭＤ５を単体、もしくは複数組合わせて用いてもよい。
ｆi（ｒ）：  ｉ＝１，．．．，ｎ            （１９）
【００２５】
一方第２の乱数列Ｓは、一方向性関数ｇ生成器２４によりビット列が次式（２１）に変換される。
ｓ（ビット長はｋ）        （２０）
ｇi（ｓ）：  ｉ＝１，．．．，ｎ        （２１）
ここで、一方向性関数（数１４）の出力結果である式（２１）から容易に入力した乱数列（２０）を導出できず、かつ、同じ出力結果（２１）を持つ（２０）と異なる乱数列を導出できない性質を利用して、開示フェーズにおいて、送信者Ａによる開示する乱数列（２０）の改ざんを防ぐことができる。一方向性関数として、ハッシュ関数ＳＨＡ−１やＭＤ５を単体、もしくは複数組み合わせて用いてよい。
式（１９）のビット列からビット毎にキュービットを生成するにあたり、値（２２で示されるｉ番目のビットに対して用いる量子生成器は、式（２１）で与えられたビットが式（２３）ならば＋系量子生成器９を用い、ビット値（２２）が０であれば０度偏光の光子を生成し、ビット値（２２）が１であれば９０度偏光の光子を生成する。
逆に式（２１）で与えられたビットが式（２４）となるならば×系量子生成器１０を用い、ビット値（２２）が０であれば４５度偏光の光子を生成し、ビット値（２２）が１であれば１３５度偏光の光子を生成する。
ｆi  （ｉ＝１，．．．，ｎ）  （２２）
ｇi（ｓ）＝０            （２３）
ｇi（ｓ）＝１            （２４）
【００２６】
生成されたキュービットは量子通信路３を経由して受信装置２ｂに伝送される。ここで、送信側では量子生成器の選択のみならず、キュービットに変換されるビット値に関しても値（２２）のように、一方向性関数ｆ生成器７ｂを通して決定されているので、実施の形態１と異なり、コミットメントフェーズにおいてキュービット列のみを伝送すればよい。言い換えると、式（１３）の一方向性により、送信者が値（２２）を改ざんしても、それに対応して値（１６）を改ざんすることが困難である。
この伝送した時点より時計６を用いて計時が始まる。
一方、受信装置２ｂでは、乱数生成器１３を用いて乱数列を生成し、その各ビットの値に従って伝送されてきたキュービット列を＋系量子測定器１７で測定するか、×系量子測定器１８で測定するかが選択される。キュービット列が届くと、選択された量子測定器により各キュービットを測定する。このキュービットが到着したときから時計１４を用いて計時を始める。測定終了後、古典通信路送受信装置１９を用いて、測定結果と測定に用いた量子測定器の種類を送信装置１ｂに送信する。この送信は時限値（２５）
迄に実行しなければならない。
ｔ      （２５）
これは一方向性関数ｇ生成器２４の出力結果である式（１４）から入力乱数列を容易には導出できないのであるが、十分な時間をかければ必ず入力乱数列が導出できる。従って、一方向性関数ｇ発生器３３の出力結果から入力乱数列を導出するのに要する時間より短い時間で受信者にキュービットの測定を強いる。つまり、この制限時間内であれば受信者Ｂは入力乱数列の値（２０）を知ることが不可能であり、キュービット列の値（２０）の全てを正しく測定することができないことが保証される。さらに一度測定したキュービット列は元の状態が破壊されているので、たとえ後で乱数列（２０）が導出できても、もはやコミットされたビットである式（１８）を受信者Ｂが特定することは不可能である。
【００２７】
送信装置１ｂでは、受信装置２ｂからの回答時間が時限値（２６）以内であることを確認すると、受信装置からの回答にある測定結果のうち、正しい測定器を用いている測定結果の整合性をデータ照合装置１２を用いて確認する。
ｔ’        （２６）
これにより、送信者Ａは受信者Ｂがキュービット列の測定を制限時間内に実行した有無を確認できる。
正しい測定器を用いてキュービットを測定した測定結果と送信者の保持する式（１９）のビット、式（２１）のビットとの整合性が確認されると、受信者Ｂが開示フェーズになるまでコミットされた式（１８）のビットが特定できないことが確認できる。また、整合性が確認されないときは、送信者Ａは受信者Ｂが不正を行ったと判断し当該プロトコルを破棄する。
整合性が確認された場合、開示フェーズにおいて送信装置は古典通信路４を用いて、式（１８）、値（２０）、値（１６）で示される、ｂ、ｓ、ｒのデータを受信装置２ｂに開示する。受信装置はデータ照合装置２０を用いて開示データと測定結果の照合を行う。ここで、開示された乱数列（２０）ｓと一方向性関数ｇ生成器３３を用いて導出されたビット列（２１）から正しい測定器を用いた測定結果をピックアップし、開示された乱数列（１６）ｒと一方向性関数ｆ生成器１５ｂを用いて導出されたビット列（１９）の対応するビットと比較照合する。この結果が一致すれば、開示された値（１６）、式（１８）が正しいと確認される。
【００２８】
最後に開示された値（１６）ｒと一方向性関数ｈ生成器１６ｂを用いて導出されたビット（１７）と、開示されたコミットビット（１８）が一致すれば、受信者Ｂは当該プロトコルを受理する。逆に、上記３つの開示されたデータ式（１８）、値（２０）、値（１６）のいずれか１つでも正しく確認されなければ受信者Ｂは当該プロトコルを破棄する。
ここで、送信者がたとえエンタングル状態のような相関のあるキュービットを用いて、受信者Ｂの測定結果を開示フェーズの前に知ることが出来ても、上記のような開示データの整合性チェックを免れるようなデータを捏造することは、３つの一方向性関数（１３）、（１４）、（１５）の値から、その結果に対応した都合の良い入力乱数列を見出すことが非常に困難であるため、事実上不可能に等しい。
以上のプロトコルの流れを図５に記す．
【００２９】
実施の形態３．
実施の形態２では、３つの一方向性関数を用いた場合を示したが、ここでは、２つの一方向性関数を用いた変換を経てキュービットに変換する形態を示す。
図６は、図１で構成される通信系において更に他の安全なビットコミットメントプロトコルを実現するための送信装置１ｃ、受信装置２ｃの構成を示す図である。図６において、７ｃは式（２７）を生成する一方向性関数ｆ生成器である。
ｆ（・）（∈｛０，１｝2m），        （２７）
また一方向性関数ｈ生成器８ｂは次式（２８）を生成する。
ｈ（・）（∈｛０，１｝）、        （２８）
その他の乱数生成器５、時計６、互いに共役な物理量を生成する＋系量子生成器９、×系量子生成器１０、古典通信路送受信装置１１、データ照合装置１２は、図４に示す同番号要素と同等のものである。また、一方向性関数ｆ生成器１５ｃは一方向性関数ｆ生成器７ｃと同じ、一方向性関数ｈ生成器１６ｂは一方向性関数ｈ生成器８ｂと同じものである。その他の＋系量子生成器９に対応した＋系量子測定器１７、×系量子生成器１０に対応した×系量子測定器１８、古典通信路送受信装置１９、データ照合装置２０は、図４に示す同番号要素と同等のものである。
【００３０】
次に動作について説明する。
まず送信者Ａはコミットするビットを選択する。次に、乱数生成器５により式（２９）の乱数が生成され、その後、一方向性関数ｈ生成器８ｂによる値次の式（３０）が選択された式（３１）のコミットビットになることを満たすまで生成を繰り返す。
ｒ（ビット長はｌ）        （２９）
ｈ（ｒ）                  （３０）
ｂ∈｛０、１｝            （３１）
ここで、式（２８）を与える一方向性関数ｈ生成器８ｂを用いることで、その出力結果である（３１）を満足するような乱数列（２９）の条件がパリティビットを用いることよりもはるかに厳しくなるので、送信者Ａが開示フェーズにおいて偽のｒである値（２９）を開示することが困難になる。
満足するｒが生成されると一方向性関数ｆ生成器７ｃにより式（３２）のビット列に変換される。
ｆi（ｒ）：  ｉ＝１，．．．，２ｎ            （３２）
ここで、一方向性関数ｆ生成器７ｃの出力結果である式（３２）から容易に入力した乱数列（２９）を導出できず、かつ、同じ出力結果式（３２）を持つ式（２９）と異なる乱数列を導出できない性質を利用して、開示フェーズにおいて、送信者Ａによる開示する乱数列（２９）の改ざんを防ぐことができる。
【００３１】
式（３２）のビット列からビット毎にキュービットを生成するにあたり、ｉ番目のビット値（３３）に対して用いる量子生成器は、同じ式（３２）で与えられたビットが式（３４）となるなら、＋系量子生成器９を用い、ビット値（３３）が０であれば０度偏光の光子を、１であれば９０度偏光の光子を生成する。
ｆi  （ｒ）（ｉ＝１，．．．，ｎ）        （３３）
ｆn+i（ｒ）＝０                    （３４）
逆に式（３２）で与えられたビットが次式（３５）となるなら、×系量子生成器１０を用い、ビット値（３３）が０であれば４５度偏光の光子を、１であれば１３５度偏光の光子を生成する。
ｆn+i（ｒ）＝１            （３５）
生成されたキュービットは量子通信路３を経由して受信装置２ｃに伝送される。この伝送した時点より時計６による計時が始まる。
【００３２】
一方、受信装置２ｃでは、乱数生成器１３を用いて乱数列を生成し、その各ビットの値に従って伝送されてきたキュービット列を＋系量子測定器１７で測定するか、×系量子測定器１８で測定するかが選択される。キュービット列が届くと、選択された量子測定器により各キュービットを測定する。このキュービットが到着したときから時計１４を用いて計時を始める。測定終了後、古典通信路送受信装置１９を用いて、測定結果と測定に用いた量子測定器の種類を送信装置に送信する。この送信は時限値（３６）迄に実行しなければならない。
ｔ          （３６）
これは一方向性関数ｆ生成器７ｃの出力結果である式（２７）から入力乱数列を容易には導出できないが、十分な時間をかければ必ず入力乱数列を導出できることを防ぐために行う。即ち、一方向性関数（２７）の出力結果から入力乱数列を導出するのに要する時間より短い時間で受信者にキュービットの測定を強いる。つまり、この制限時間内であれば受信者Ｂはキュービット列の全てを正しく測定することができない。
【００３３】
送信装置１ｃでは、受信装置２ｃからの回答時間が時限（３７）以内であることを確認すると、受信装置からの回答にある測定結果のうち、正しい測定器を用いている測定結果の整合性をデータ照合装置２０を用いて確認する。
ｔ’        （３７）
これにより、送信者Ａは受信者Ｂがキュービット列の測定を制限時間内に実行した有無を確認できる。正しい測定器を用いてキュービットを測定した測定結果と送信者の保持する式（３２）ビットとの整合性が確認されたると、受信者Ｂが開示フェーズになるまでコミットされた式（３１）のビットが特定できないことが確認できる。また、整合性が確認されないときは、送信者Ａは受信者Ｂが不正を行ったと判断し当該プロトコルを破棄する。
整合性が確認された場合、開示フェーズにおいて送信装置は古典通信路４を用いて、式（３１）、式（２９）のデータを受信装置２ｃに開示する。受信装置２ｃはデータ照合装置２０を用いて開示データと測定結果の照合を行う。ここで、開示された乱数列（２９）ｒと一方向性関数ｆ生成器１５ｃを用いて導出されたビット列（３２）から正しい測定器を用いた測定結果をピックアップし、対応するビットと比較照合する。この結果が一致すれば、開示された（２９）が正しいと確認される。
【００３４】
最後に開示された（２９）ｒと一方向性関数ｈ生成器１６ｂを用いて導出されたビット（３０）と開示されたコミットビット（３１）が一致すれば、受信者Ｂは当該プロトコルを受理する。逆に、上記２つの開示されたデータ（２９）、（３１）のいずれか１つでも正しく確認されなければ受信者Ｂは当該プロトコルを破棄する。
ここで、送信者がたとえエンタングル状態のような相関のあるキュービットを用いて、受信者Ｂの測定結果を開示フェーズの前に知ることが出来ても、上記のような開示データの整合性チェックを免れるようなデータを捏造することは、２つの一方向性関数（２７）、（２８）の値から、その結果に対応した都合の良い入力乱数列を見出すことが非常に困難であるため、事実上不可能に等しい。
以上のプロトコルの流れを図７に記す．
【００３５】
【発明の効果】
以上のように，この発明におけるはビットコミットメントプロトコルは乱数生成器から生成した乱数を一方向性関数を通して変換後にキュービット生成に使うので，送信者がエンタングルド状態のような特殊な量子状態を用いて不正を働くことを非常に困難にするという効果がある．
また，受信者が測定結果を送信者に時限内に報告しなければならないので受信者が観測を不履行することによる受信者の不正を防ぐことができる.
従って，安全なビットコミットメントプロトコルが構成できるので，安全な紛失通信が実現できる
【図面の簡単な説明】
【図１】  この発明の各実施の形態における全体構成を示すブロック図である。
【図２】  実施の形態１における量子ビットコミットメントプロトコル送信装置と受信装置の内部構成を示す図である。
【図３】  実施の形態１におけるプロトコルの流れ図である。
【図４】  この発明の実施の形態２における量子ビットコミットメントプロトコル送信装置と受信装置の内部構成を示す図である。
【図５】  実施の形態２におけるプロトコルの流れ図である。
【図６】  この発明の実施の形態３における量子ビットコミットメントプロトコル送信装置と受信装置の内部構成を示す図である。
【図７】  実施の形態３におけるプロトコルの流れ図である。
【図８】  従来の量子ビットコミットメントプロトコル送信装置と受信装置の構成図である。
【符号の説明】
１，１ｂ，１ｃ  量子ビットコミットメントプロトコル送信装置、２，２ｂ，２ｃ  量子ビットコミットメントプロトコル受信装置、３  量子通信路、４  古典通信路、５  乱数生成器、６  時計、７，７ｂ，７ｃ  一方向性関数ｆ生成器、８，８ｂ  一方向性関数ｈ生成器、９  ＋系量子生成器、１０  ×系量子生成器、１１  古典通信路送受信装置、１２  データ照合装置、１３  乱数生成器、１４  時計、１５，１５ｂ，１５ｃ  一方向性関数ｆ生成器、１６，１６ｂ  一方向性関数ｈ生成器、１７  ＋系量子測定器、１８  ×系量子測定器、１９  古典通信路送受信装置、２０  データ照合装置、２４  一方向性関数ｇ生成器、３３  一方向性関数ｇ生成器。
【図１】
0003949879.tif 000002
【図２】
0003949879.tif 000003
【図３】
0003949879.tif 000004
【図４】
0003949879.tif 000005
【図５】
0003949879.tif 000006
【図６】
0003949879.tif 000007
【図７】
0003949879.tif 000008
【図８】
0003949879.tif 000009