(57)【特許請求の範囲】
【請求項１】
送信者装置と受信者装置とを備える再認証不可能な量子電子署名システムであって、
上記送信者装置は、
乱数を発生する乱数発生手段と、
上記乱数発生手段で生成された乱数から、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組を複数生成する公開鍵生成手段と、
上記公開鍵生成手段が生成した複数の公開量子状態の組の列からなる公開量子状態列をｍ個公開する公開鍵公開手段と、
上記署名の対象となるビットの正当性を検証するために用いる公開量子状態の組ごとに、署名の対象となるビットの値に応じて定まる、署名の対象となるビットの正当性を検証するために用いる公開量子状態と同一又は直交する署名量子状態を、δを０以上１／（ｍ＋２）以下の数として、同一の署名量子状態が生成される確率がδ、直交する署名量子状態が生成される確率が１−δとなるように、上記乱数発生手段で生成された乱数から生成する署名生成手段と、
αを所定の数、ｋ１を１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数ｋ以下１以上の整数として、上記署名の対象となるビットと、上記署名生成手段で生成された署名量子状態のうちのｋ１個の署名量子状態とを送信する署名送信手段と、
を備え、
上記受信者装置は、
上記送信者装置によって公開された公開量子状態列を受信する公開鍵受信手段と、
上記署名の対象となるビットと、上記ｋ１個の署名量子状態とを受信する署名受信手段と、
上記署名受信手段で受信したｋ１個の各署名量子状態ごとに、署名量子状態と、その署名量子状態に対応する、上記公開量子状態列に含まれる公開量子状態とをスワップテストにかけて、受諾されるか拒絶されるかを決定するスワップテスト手段と、
上記スワップテスト手段が決定した決定結果を送信する観測結果送信手段と、
上記スワップテスト手段において受諾又は拒絶された確率と、所定の値Ａとを比較することにより、上記署名の対象となるビットの正当性を判断する第一判断手段と、
を備え、
上記送信者手段はさらに、
上記受信者装置が送信したスワップテストの決定結果を受信する観測結果受信手段と、
上記観測結果受信手段が受信したスワップテストの決定結果を参照して、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証をしたかどうかを判断し、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証したと判断することができる場合に、ｋ以下１以上の所定の数ｋ２個の量子状態を署名送信手段に送信させる第二判断手段と、
を備えることを特徴とする再認証不可能な量子電子署名システム。
【請求項２】
送信者装置が、乱数を発生する乱数発生ステップと、
送信者装置が、上記乱数発生ステップで生成された乱数から、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組を複数生成する公開鍵生成ステップと、
送信者装置が、上記公開鍵生成ステップが生成した複数の公開量子状態の組の列からなる公開量子状態列をｍ個公開する公開鍵公開ステップと、
送信者装置が、上記署名の対象となるビットの正当性を検証するために用いる公開量子状態の組ごとに、署名の対象となるビットの値に応じて定まる、署名の対象となるビットの正当性を検証するために用いる公開量子状態と同一又は直交する署名量子状態を、δを０以上１／（ｍ＋２）以下の数として、同一の署名量子状態が生成される確率がδ、直交する署名量子状態が生成される確率が１−δとなるように、上記乱数発生ステップで生成された乱数から生成する署名生成ステップと、
送信者装置が、αを所定の数、ｋ１を１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数ｋ以下１以上の整数として、上記署名の対象となるビットと、上記署名生成ステップで生成された署名量子状態のうちのｋ１個の署名量子状態とを送信する署名送信ステップと、
受信者装置が、上記公開鍵公開ステップによって公開された公開量子状態列を受信する公開鍵受信ステップと、
受信者装置が、上記署名の対象となるビットと、上記ｋ１個の署名量子状態とを受信する署名受信ステップと、
受信者装置が、上記署名受信ステップで受信したｋ１個の各署名量子状態ごとに、署名量子状態と、その署名量子状態に対応する、上記公開量子状態列に含まれる公開量子状態とをスワップテストにかけて、受諾されるか拒絶されるかを決定するスワップテストステップと、
受信者装置が、上記スワップテストステップにおいて決定された決定結果を送信する観測結果送信ステップと、
送信者装置が、上記送信されたスワップテストの決定結果を受信する観測結果受信ステップと、
送信者装置が、上記観測結果受信ステップにおいて受信されたスワップテストの決定結果を参照して、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証をしたかどうかを判断し、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証したと判断することができる場合に、ｋ以下１以上の所定の数ｋ２個の量子状態を送信させる第二判断ステップと、
受信者装置が、上記スワップテストステップにおいて受諾又は拒絶された確率と、所定の値Ａとを比較することにより、上記署名の対象となるビットの正当性を判断する第一判断ステップと、
を備えることを特徴とする再認証不可能な量子電子署名方法。
【請求項３】
乱数を発生する乱数発生手段と、
上記乱数発生手段で生成された乱数から、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組を複数生成する公開鍵生成手段と、
上記公開鍵生成手段が生成した複数の公開量子状態の組の列からなる公開量子状態列をｍ個公開する公開鍵公開手段と、
上記署名の対象となるビットの正当性を検証するために用いる公開量子状態の組ごとに、署名の対象となるビットの値に応じて定まる、署名の対象となるビットの正当性を検証するために用いる公開量子状態と同一又は直交する署名量子状態を、δを０以上１／（ｍ＋２）以下の数として、同一の署名量子状態が生成される確率がδ、直交する署名量子状態が生成される確率が１−δとなるように、上記乱数発生手段で生成された乱数から生成する署名生成手段と、
αを所定の数、ｋ１を１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数ｋ以下１以上の整数として、上記署名の対象となるビットと、上記署名生成手段で生成された署名量子状態のうちのｋ１個の署名量子状態とを送信する署名送信手段と、
受信者装置が送信したスワップテストの決定結果を受信する観測結果受信手段と、
上記観測結果受信手段が受信したスワップテストの決定結果を参照して、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証をしたかどうかを判断し、上記送信者装置が送信した署名量子状態を用いて上記受信者装置が認証したと判断することができる場合に、ｋ以下１以上の所定の数ｋ２個の量子状態を署名送信手段に送信させる第二判断手段と、
を備えることを特徴とする送信者装置。
【請求項４】
送信者装置によって公開された公開量子状態列をｍ個受信する公開鍵受信手段と、
αを所定の数、ｋ１を１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数ｋ以下１以上の整数として、署名の対象となるビットと、ｋ１個の署名量子状態とを受信する署名受信手段と、
上記署名受信手段で受信したｋ１個の各署名量子状態ごとに、署名量子状態と、その署名量子状態に対応する、上記公開量子状態列に含まれる公開量子状態とをスワップテストにかけて、受諾されるか拒絶されるかを決定するスワップテスト手段と、
上記スワップテスト手段が決定した決定結果を送信する観測結果送信手段と、
上記スワップテスト手段において受諾又は拒絶された確率と、所定の値Ａとを比較することにより、上記署名の対象となるビットの正当性を判断する第一判断手段と、
を備えることを特徴とする受信者装置。
【請求項５】
請求項３に記載の送信者装置の制御をコンピュータに実行させるための送信者装置プログラム。
【請求項６】
請求項５に記載の送信者装置プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
請求項４に記載の受信者装置の制御をコンピュータに実行させるための受信者装置プログラム。
【請求項８】
請求項７に記載の受信者装置プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、量子デバイスを用いた情報通信システムにおける情報セキュリティ技術に関する。特に、送信された情報が受信されるまでの間に第三者によってその情報が改ざんされたか否かを、受信者が検証することができる再認証不可能な量子電子署名システム、その方法、その送信者装置、その受信者装置、それらのプログラム及びその記録媒体に関する。
【背景技術】
【０００２】
署名に量子状態を用いることにより、署名を認証すると、署名が破壊されてしまう量子電子署名プロトコルとして次のようなプロトコルが知られている。
送信者である送信者装置２は、２つの１量子ビットからなる量子状態の組の列（（|φ０（１）>，|φ１（１）>），（|φ０（２）>，|φ１（２）>），…，（|φ０（Ｎ）>，|φ１（Ｎ）>））を生成して公開する。各量子状態はランダムに生成される。
【０００３】
送信者装置２が、１ビットの情報ｂ＝｛０，１｝を受信者装置３に送信する場合、（ｂ，（|φｂ’（１）>，|φｂ’（２）>，…，|φｂ’（Ｎ）>）を送信する。ｎ＝１，…，Ｎとして、|φｂ’（ｎ）>は、|φｂ（ｎ）>に直交する量子状態である。
【０００４】
この情報を受信した受信者装置３は、受信した各量子状態|φｂ’（ｎ）>（ｎ＝１，…，Ｎ）ごとに、|φｂ’（ｎ）>と、送信者装置２が公開した（（|φ０（１）>，|φ１（１）>），（|φ０（２）>，|φ１（２）>），…，（|φ０（Ｎ）>，|φ１（Ｎ）>））の中の|φｂ’（ｎ）>に対応する量子状態である|φｂ（ｎ）>とをスワップテスト（スワップテストの詳細については後述する。）にかける。各量子状態|φｂ’（ｎ）>（ｎ＝１，…，Ｎ）ごとに行われたスワップテスト全体で、半分に十分に近い数の量子状態が受諾された場合には、送信された情報ｂを正当なものとして受理する（例えば、非特許文献１参照。）。
【０００５】
この量子電子署名プロトコルの安全性の保証は、任意の量子状態|φ>が有限個与えられた時にこれに直交する量子状態|φ’>を確実に生成する事が不可能であり、かつ、偶然に生成に成功してもそれを破壊しないで確認することが不可能である事による。
【０００６】
スワップテストとは、同一のヒルベルト空間中の２つの量子状態|φ>と|ψ>が与えられた時、|<ψ|φ>|＝δとして、（１＋δ２）／２の確率で受諾され、（１−δ２）／２の確率で拒絶されるテストのことである。ここで、（１＋δ２）／２は、スワップテストにおいて１が観測される確率であり、（１−δ２）／２は、スワップテストにおいて０が観測される確率である。
【０００７】
２つの量子状態|φ>と|ψ>が同一の状態の時には、|<ψ|φ>|＝δ＝１となり、（１＋δ２）／２＝（１＋１２）／２＝１となるため、必ず受諾される。また、２つの状態|φ>と|ψ>が異なる場合には、（１＋δ２）／２が必ずしも１とはならないため、拒絶される可能性がある。例えば、２つの量子状態|φ>と|ψ>が互いに直交する場合には、|<ψ|φ>|＝δ＝０となり、（１−δ２）／２＝（１−０２）／２＝１／２となるため、１／２の確率で受諾される。
【０００８】
スワップテストは、物理的には図５に例示する回路を作り、図５の観測１００における観測結果が１の場合に受諾し、０の場合に拒絶する事で実現される。この図５において、［Ｈ］と描いてある演算１０１はアダマール演算である。すなわち、次の行列
【数１】
0004904224.tif 000002
で定義される演算である。また、［Ｓｗａｐ］と描いてある演算１０２は制御Ｂｉｔ（一番上のビット）が１の場合に下の２つの入力の状態を入れ替える演算である。
【非特許文献１】加藤豪，河野泰人，「署名が崩壊する量子署名プロトコル」，第１６回量子情報技術研究会，２００６年，ｐ．９２−９６
【発明の開示】
【発明が解決しようとする課題】
【０００９】
非特許文献１に記載された量子電子署名プロトコルにおいては、署名の認証を各量子状態ごとに行う場合には、署名の認証を行うと観測により各量子状態が変化するため署名は必ず破壊される。
しかし、将来的に大規模な量子コンピュータが実現した場合、複数の量子状態に対して高度に相関を持った観測を行うことで、量子状態を殆ど破壊することなく署名の認証を行うことができる可能性がある。この結果、署名の再認証不可能性が保証されなくなる。
この発明は、大規模な量子コンピュータを用いても再認証不可能な量子電子署名システム、その方法、その送信者装置、その受信者装置、それらのプログラム及びその記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
送信者装置と受信者装置とを備える再認証不可能な量子電子署名システムであって、送信者装置は、乱数を発生する乱数発生手段と、乱数発生手段で生成された乱数から、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組を複数生成する公開鍵生成手段と、公開鍵生成手段が生成した複数の公開量子状態の組の列からなる公開量子状態列をｍ個公開する公開鍵公開手段と、署名の対象となるビットの正当性を検証するために用いる公開量子状態の組ごとに、署名の対象となるビットの値に応じて定まる、署名の対象となるビットの正当性を検証するために用いる公開量子状態と同一又は直交する署名量子状態を、δを０以上１／（ｍ＋２）以下の数として、同一の署名量子状態が生成される確率がδ、直交する署名量子状態が生成される確率が１−δとなるように、乱数発生手段で生成された乱数から生成する署名生成手段と、αを所定の数、ｋ１を１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数ｋ以下１以上の整数として、署名の対象となるビットと、署名生成手段で生成された署名量子状態のうちのｋ１個の署名量子状態とを送信する署名送信手段と、を備える。
【００１１】
受信者装置は、送信者装置によって公開された公開量子状態列を受信する公開鍵受信手段と、署名の対象となるビットと、ｋ１個の署名量子状態とを受信する署名受信手段と、署名受信手段で受信したｋ１個の各署名量子状態ごとに、署名量子状態と、その署名量子状態に対応する、公開量子状態列に含まれる公開量子状態とをスワップテストにかけて、受諾されるか拒絶されるかを決定するスワップテスト手段と、スワップテスト手段が決定した決定結果を送信する観測結果送信手段と、スワップテスト手段において受諾又は拒絶された確率と、所定の値Ａとを比較することにより、署名の対象となるビットの正当性を判断する第一判断手段と、を備える。
【００１２】
送信者手段はさらに、受信者装置が送信したスワップテストの決定結果を受信する観測結果受信手段と、観測結果受信手段が受信したスワップテストの決定結果を参照して、送信者装置が送信した署名量子状態を用いて受信者装置が認証をしたかどうかを判断し、送信者装置が送信した署名量子状態を用いて受信者装置が認証したと判断することができる場合に、ｋ以下１以上の所定の数ｋ２個の量子状態を署名送信手段に送信させる第二判断手段と、を備える。
【発明の効果】
【００１３】
署名量子状態の数ｋが、１／ｋ（１／２）＞α／（ｍ＋２）を満たす程度に小さい場合には、大規模な量子コンピュータを用いて高度に相関を持った観測を行うことによっても、それらのｋ個の署名量子状態を破壊しないで署名の認証を行うことができない。ｋ個の署名量子状態を観測すると、それらの量子状態は必ず破壊される。
【００１４】
送信者装置が送信したｋ以下の数の署名量子状態を用いて受信者装置が認証を行ったことを送信者装置が確認した後に、すなわち、送信者装置が送信したｋ以下の数の署名量子状態を受信者装置が破壊したのを送信者装置が確認した後に、送信者装置がｋ以下の数の別の署名量子状態を受信者装置に送る動作を繰り返すことにより、ｋより多い数の署名量子状態が送信者装置の外に一度に集まることがなくなるため、大規模な量子コンピュータを用いても署名の再認証が不可能となる。
【発明を実施するための最良の形態】
【００１５】
図１から４を参照して、この発明による再認証不可能な量子電子署名システムの一実施例について説明をする。図１は、再認証不可能な量子電子署名システムの一実施例の機能構成を例示する図である。図１に例示するように、再認証不可能な量子電子署名システム１は、送信者装置２と受信者装置３からなる。図２は、送信者装置２の機能構成を例示する図である。図３は、受信者装置３の機能構成を例示する図である。図４は、再認証不可能な量子電子署名システムの一実施例の処理の流れを例示するフローチャートである。図４に示したステップＳ１〜Ｓ５，Ｓ１０〜Ｓ１４は送信者装置２の処理であり、ステップＳ６〜Ｓ９，Ｓ１５は受信者装置３の処理である。
【００１６】
＜ステップＳ１＞
乱数発生部２１は、複数の複素数の乱数ｘ０，０（１），ｘ１，０（１），ｘ０，１（１），ｘ１，１（１）ｘ０，０（２），ｘ１，０（２），ｘ０，１（２），ｘ１，１（２），…，ｘ０，０（Ｎ），ｘ１，０（Ｎ），ｘ０，１（Ｎ），ｘ１，１（Ｎ）を生成して、公開鍵生成部２２及び署名生成部２５に出力する。
【００１７】
＜ステップＳ２＞
公開鍵生成部２２は、乱数発生部２１が生成した複素数を用いて、署名の対象となるビットｂの正当性を検証するために用いる可能性がある公開量子状態の組を複数生成する。生成された公開量子状態は公開鍵公開部２３に送られる。
【００１８】
例えば、公開量子状態|φｂ（ｎ）>がひとつの量子ビットからなる場合には、ｂ＝０，１、ｎ＝１，２，…，Ｎとして、各公開量子状態|φｂ（ｎ）>をそれぞれ、|φｂ（ｎ）>＝（１／（|ｘｂ，０（ｎ）|２＋|ｘｂ，１（ｎ）|２）１／２）（ｘｂ，０（ｎ）|０>＋ｘｂ，１（ｎ）|１>）とする。
このようにして、各公開量子状態|φｂ（ｎ）>は乱数発生部２１が生成した複素数を用いてランダムに生成される。ここで、ランダムとは、クォンタムデザインによって定まる確率分布に従って選択される場合を含む。
【００１９】
|φ０（ｎ）>と|φ１（ｎ）>とを、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組とする。後述するように、ｂの値に応じて、（|φ０（ｎ）>，|φ１（ｎ）>）の何れか一方の公開量子状態|φｂ（ｎ）>が、署名の対象となるビットの正当性を検証するために用いられる。以下、署名の対象となるビットの正当性を検証するために用いる可能性がある公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）を、公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）と略称する場合がある。
【００２０】
公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）をＮ個並べたもの（（|φ０（１）>，|φ１（１）>），（|φ０（２）>，|φ１（２）>），…，（|φ０（ｎ）>，|φ１（ｎ）>），…，（|φ０（Ｎ）>，|φ１（Ｎ）>））を、公開量子状態列と呼ぶ。
公開鍵生成部２２は、乱数発生部２１が生成した同じ乱数に基づいて、少なくともｍ個の同じ公開量子状態列を生成する。ｍは所定の自然数である。後述するようにｍの値は、再認証不可能な量子電子署名システムの安全性と関連がある。
【００２１】
なお、この発明では、量子ビットとして、例えば、光子を用いる。具体的にどのような装置構成でこの発明を実施するための処理を行うのかについては、下記の参考文献１に詳しい。
≪参考文献１≫Michael A. Nielsen, Isaac L.Chuang共著、木村達也訳「量子コンピュータと量子通信II―量子コンピュータとアルゴリズム―」オーム社
【００２２】
＜ステップＳ３＞
公開鍵公開部２３は、公開鍵生成部２２が生成した公開量子状態列のうち、ｍ個の公開量子状態列を公開する。受信者装置３が予め決まっている場合には、公開量子状態列を、その受信者装置３に送信しても良い。すなわち、公開鍵として用いる公開量子状態列を特定の者のみに対して公開するようにしても良い。特定の者のみに公開することにより、安全性がさらに増すというメリットがある。
【００２３】
＜ステップＳ４＞
署名生成部２５は、文書記録部２４から読み込んだ署名の対象となるビットｂを用いて、公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）ごとに、署名量子状態|φ~ｂ（ｎ）〉を生成して、署名送信部２６に送る。ここで、署名量子状態|φ~ｂ（ｎ）〉は、δを０以上１／（ｍ＋２）以下の数として、δの確率で|φｂ（ｎ）>であり、１−δの確率で|φ’ｂ（ｎ）>とする。|φ’ｂ（ｎ）>は、|φｂ（ｎ）>に直交する量子状態とする。ｍは、上記したように、公開した公開量子状態列の数である。δを０以上１／（ｍ＋２）以下の数とする理由は、δが１／ｍ＋２よりも大きい場合には、受信した|φ~ｂ>が送信者装置が作ったものであるか、第三者が作ったものであるかを受信者装置が判断することができない場合が生じるためである。
【００２４】
署名生成部２５は、署名量子状態|φ~ｂ（ｎ）〉を生成する際に、対応する公開量子状態|φｂ（ｎ）>を生成するために乱数発生部２１が生成した乱数を用いる。
この例では、ｎ＝１，…，Ｎであり、公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）はＮ個あるため、署名生成部２５は、Ｎ個の署名量子状態|φ~ｂ（ｎ）〉を生成する。
【００２５】
ランダムビット発生部２９は、δの値をランダムに定めて署名生成部２５に送る。署名生成部２５は、ランダムビット発生部δが発生したδの値に基づいて、署名量子状態|φ~ｂ（ｎ）〉を生成する。なお、δの値は、公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）ごとに異なっていてもよい。
署名生成部２５が生成した署名量子状態|φ~ｂ（ｎ）〉が、|φｂ（ｎ）〉又は|φ’ｂ（ｎ）〉の何れかであるかについての情報は、判断部２８に送られる。
【００２６】
＜ステップＳ５＞
署名送信部２６は、署名の対象となるビットｂと、署名生成部２５が生成した署名量子状態のうちｋ１個の署名量子状態とを受信者装置３に送信する。ｋ１はｋ１≦ｋ＜Ｎであり、αを所定のセキュリティパラメータとして、ｋは、１／ｋ（１／２）＞α／（ｍ＋２）を満たす整数である。例えば、α＝１である。αの値を大きくするほど署名の再認証不可能性が高まり、αの値を小さくするほど署名の再認証不可能性が低くなる。αの値は、求める安全性、量子コンピュータの精度に応じて適宜定める。
署名送信部２６は、署名送信部２６のバッファに格納されたｎｓを、ｎｓ＝ｋ１とする。
【００２７】
＜ステップＳ６＞
受信者装置３の公開鍵受信部３１（図３）は、送信者装置２の公開鍵公開部２３が公開した公開量子状態列を受信する。
＜ステップＳ７＞
受信者装置３の署名受信部３２は、送信者装置２の署名送信部２６が送信した、署名の対象となるビットｂと、ｋ１個の署名量子状態とを受信する。
【００２８】
＜ステップＳ８＞
スワップテスト部３３は、各署名量子状態ごとに、署名量子状態|φ~ｂ（ｎ）〉と、その署名量子状態に対応する公開量子状態|φｂ（ｎ）〉とをスワップテストにかけて、受諾されるか拒絶されるかを決定する。例えば、署名量子状態がｋｉ個ある場合には、スワップテストはｋｉ回行われる。スワップテストの決定結果は、判断部３４及び観測結果送信部３５に出力される。スワップテストは、図５を参照して背景技術の欄で説明したものと同様であるため、ここでは説明を省略する。
【００２９】
＜ステップＳ９＞
観測結果送信部３５は、スワップテスト部３３における各署名量子状態ごとのスワップテストの決定結果を送信者装置に送る。
＜ステップＳ１０＞
送信者装置２の観測結果受理部２７（図２）は、各スワップテストの決定結果を受信する。受信したスワップテストの決定結果は、判断部２８に送られる。
【００３０】
＜ステップＳ１１＞
判断部２８は、観測結果受理部２７が受信したスワップテストの決定結果を参照して、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたかどうかを判断する。換言すると、受信者装置３が正当な処理を行ったかどうかを判断する。送信者装置２が送信した署名量子状態とは、送信者装置２がｋｉ個の署名量子状態を送った場合には、ｋｉ個の署名量子状態のことである。
【００３１】
判断部２８は、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたと判断することができた場合には、同じ署名の対象となるビットｂについての署名量子状態であって、先に受信者装置３に送った以外のｋ２個の署名量子状態を、署名送信部２６に送らせる。すなわち、処理を継続する旨の信号を署名送信部２６に送る。ｋ２は、ｋ２≦ｋ＜Ｎを満たす整数である。
【００３２】
判断部２８は、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしていないと判断した場合には、署名量子状態の送信を中止する旨の信号を署名送信部２６に送る。
【００３３】
以下に、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたかどうかの判断の例について説明をする。
送信者装置２が受信したスワップテストの決定結果の数をＫとし、Ｋの中の署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>である場合のスワップテストの決定結果の数をｋａ、Ｋの中の署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>である場合のスワップテストの決定結果の数をｋｂとする。Ｋ、ｋａ及びｋｂの間には、Ｋ＝ｋａ＋ｋｂという関係が成立している。
【００３４】
例えば、判断部２８は、署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>である場合のｋａ個のスワップテストの決定結果の中で「拒絶」である旨の決定結果があるか否かを判断すると共に、署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>である場合のｋｂ個のスワップテストの決定結果の中でスワップテストの決定結果が「拒絶」である確率が１／２に比べて統計的に小さいかどうかを判断する。
【００３５】
例えば、ｃを所定の数（例えばｃ＝１である。）として、署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>である場合のｋｂ個のスワップテストの決定結果の中でスワップテストの決定結果が「拒絶」である確率と、１／２−（ｃ／ｋｂ１／２）とを比較することにより、１／２に比べて統計的に小さいかどうかを判断する。ｃはセキュリティパラメータであり、求める安全性、量子コンピュータの精度に応じて適宜設定するものである。
【００３６】
署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>であるときのｋａ個のスワップテストの決定結果の中で「拒絶」である旨の決定結果がある場合に、または、署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>であるときのｋｂ個のスワップテストの決定結果の中でスワップテストの決定結果が「拒絶」である確率が１／２に比べて統計的に小さい場合に、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしていないと判断する。それ以外の場合には、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたと判断する。
【００３７】
＜ステップＳ１２＞
判断部２８が、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたと判断した場合には、署名送信部２６はｋ２個の署名量子状態を受信者装置３に送る。署名送信部２６は、ｎｓ←ｎｓ＋ｋ２として、送信した署名量子状態の合計数ｎｓを更新する。
【００３８】
＜ステップＳ１３＞
判断部２８が、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証をしたと判断した場合には、署名送信部２６は署名量子状態の送信を中止する。
【００３９】
＜ステップＳ１４＞
送信者装置２の制御部２１０は、すべての署名量子状態を送信したかどうかを判断する。例えば、送信した署名量子状態の合計数ｎｓがＮに達したかどうかを確認する。
ｎｓがＮに達しない場合には（例えば、ｎｓ≠Ｎの場合）、ステップＳ７に戻って上記の処理を行う。
ｎｓがＮに達した場合には（例えば、ｎｓ＝Ｎの場合）、署名の対象となるビットｂについての送信・署名の処理を終了する。
【００４０】
＜ステップＳ１５＞
判断部３４は、スワップテスト部３３において受諾された確率と、（ｍ＋３）／（２（ｍ＋２））とを比較して、署名の対象となるビットｂの正当性について判断する。例えば、スワップテスト部３３において受諾された確率が、（ｍ＋３）／（２（ｍ＋２））よりも統計的に十分小さい場合に、その署名の対象となるビットｂを受理する。（ｍ＋３）／（２（ｍ＋２））が、署名の対象となるビットｂを受理するか否かの閾値となっている理由については後述する。
【００４１】
受理された署名の対象となるビットｂは、文書記録部３６に格納される。他に署名の対象となるビットがある場合には、そのビットについて上記と同様の処理を行う。
例えば、文書を構成するすべてのビットについて上記の処理を行い、すべてのビットが所定の割合（例えば、７０％〜１００％）以上の割合で受理された場合に、その文書を正当なものとして受理する。
【００４２】
一般に、ｋが、１／ｋ（１／２）＞α／（ｍ＋２）を満たす程度に小さい場合には、大規模な量子コンピュータを用いて高度に相関を持った観測を行うことによっても、それらのｋ個の署名量子状態を破壊しないで署名の認証を行うことができない。ｋ個の署名量子状態を認証のために観測すると、それらの量子状態は必ず破壊される。
【００４３】
受信者装置３がｋ以下の数の署名量子状態を用いて認証を行ったことを送信者装置２が確認した後に、すなわち、受信者装置３がｋ以下の数の署名量子状態を破壊したのを送信者装置２が確認した後に、送信者装置２がｋ以下の数の別の署名量子状態を受信者装置３に送る動作を繰り返すことにより、ｋより多い数の署名量子状態が送信者装置の外部に集まることがなくなるため、大規模な量子コンピュータを用いても署名の再認証が不可能となる。
【００４４】
［変形例等］
量子状態|φｂ（ｎ）>は任意の数の量子ビットで構成することができるが、１つの量子ビットで構成すると、最も効率が良くなり、かつ、安全性が高くなる。この発明では、後述するように、２つの量子状態が同一又は直交しているかどうかを検出することにより、署名の正当性を確認するが、量子状態|φｂ（ｎ）>が２以上の量子ビットから構成されている場合には、署名の正当性の確認のために直交しているかどうかを検出する精度が悪くなるためである。また、量子状態|φｂ（ｎ）>が２以上の量子ビットから構成されている場合には、任意の量子状態|φｂ（ｎ）>に、ほとんど直交する量子状態を作りやすいためである。
【００４５】
あるビットｂを署名する公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）の数は、この発明の利用者が求める安全性のレベルに応じて定めることができる。一般に、あるビットｂを署名する公開量子状態の組（|φ０（ｎ）>，|φ１（ｎ）>）の数が多くなるほど、安全性が高くなる。
署名送信部２６が常にｋ２個の署名量子状態を送る必要はない。ｋｉ≦ｋ（ｋｉ＝１，２，…）であれば、受信者装置３に送る署名量子状態の数ｋｉが送信の度ごとに異なっていてもよい。
【００４６】
上記の実施例では、送信者装置２の判断部２８は、スワップテストの決定結果が「拒絶」である場合の数・確率に基づいて判断を行っていたが、スワップテストの決定結果が「受諾」である場合の数・確率に基づいて判断を行ってもよい。例えば、署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>である場合のｋａ個のスワップテストの決定結果がすべて「受諾」である旨の決定結果であるか否かを判断すると共に、署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>である場合のｋｂ個のスワップテストの決定結果の中でスワップテストの決定結果が「受諾」である確率が１／２に比べて統計的に大きいかどうかを判断する。
【００４７】
この場合、署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>であるときのｋａ個のスワップテストの決定結果がすべて「受諾」である場合、又は、署名量子状態|φ~ｂ（ｎ）>が|φｂ’（ｎ）>であるときのｋｂ個のスワップテストの決定結果の中でスワップテストの決定結果が「受諾」である確率が１／２に比べて統計的に大きい場合に受信者装置３が送信者装置２が送信した署名量子状態を用いて認証を行ったと判断する。その他の場合には、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証を行ったと判断する。
【００４８】
送信者装置２の判断部２８は、署名量子状態|φ~ｂ（ｎ）>が|φｂ（ｎ）>である場合のｋａ個のスワップテストの決定結果が「受諾」又は「拒絶」である確率が、所定の値よりも大きいか又は小さいかを判断することにより、送信者装置２が送信した署名量子状態を用いて受信者装置３が認証を行ったかどうかを判断してもよい。ここで所定の値とは、「受諾」である確率を基準にして判断する場合には１に近い値（例えば０．７〜１）であり、「拒絶」である確率を基準にして判断する場合には０に近い値（例えば０〜０．３）である。
【００４９】
受信者装置３の判断部３４が、スワップテスト部３３において拒絶された確率と、１−（ｍ＋３）／（２（ｍ＋２））とを比較して、署名の対象となるビットｂの正当性について判断してもよい。例えば、スワップテスト部３３において拒絶された確率が、１−（ｍ＋３）／（２（ｍ＋２））よりも統計的に十分大きい場合に、その署名の対象となるビットｂを受理する。
【００５０】
上記の実施例では、図５に例示した量子回路で実現されるスワップテストを用いて、２つの量子状態が同一であるかどうか、直交しているかどうかを検証した。しかし、２つの量子状態が同一であるかどうか、直交しているかどかを検証することができる手段であれば、図５に例示した量子回路で実現されるスワップテスト以外の手段を用いても良い。
【００５１】
文書を構成するビットのうち署名の対象となるビットを少なくともひとつ予め定めておき、それらの署名の対象となるすべてのビットについてそれぞれ上記の処理を行う。所定の割合（例えば、７０〜１００％）以上の割合で署名の対象となるビットが受理された場合に、その文書を正当なものとして受理してもよい。
【００５２】
また、送信者装置２、受信者装置３が有すべき機能の処理内容はプログラムによって記述される。なお、このプログラムは、例えば、古典コンピュータに読み込まれ、これと協働することにより上述の古典情報を取り扱う部分を構成するための古典情報処理プログラムと、古典コンピュータに読み込まれ、これと協働することにより上述の量子情報を取り扱う部分の制御を行うための量子操作制御プログラムとを有する。
【００５３】
すなわち、乱数発生部２１、文書記録部２４、観測結果受理部２７、判断部２８、ランダムビット発生部２９、制御部２１０、判断部３４、観測結果送信部３５、文書記録部３６等の古典情報を取り扱う部分は、このプログラムが古典コンピュータに読み込まれることにより構成され、このプログラムに従った処理を行うことにより各処理を実行する。
【００５４】
また、公開鍵生成部２２、公開鍵公開部２３、署名生成部２５、署名送信部２６、公開鍵受信部３１、スワップテスト部３３等の量子情報を扱うハードウェアは、このプログラムが読み込まれた古典コンピュータによる制御に従って各処理を実行する。例えば、量子ビットに光子が用いられる場合、このプログラムが読み込まれた古典コンピュータは、量子操作を行うビームスプリッタ、位相シフタ等の駆動を制御し、これらに目的の量子状態を生成させる。
【００５５】
このような処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００５６】
この発明である再認証不可能な量子電子署名システム、その方法、その送信者装置、その受信者装置、それらのプログラム及びその記録媒体は上記の実施例及び変形例に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、送信者装置２、受信者装置３を構成する各構成は同じ筺体内に存在してもよいし、複数の筺体に分散配置されることとしてもよい。
【００５７】
［具体例］
送信者装置２は、公開量子状態列
(((0.36+0.64i)|0>-(0.61+0.29i)|1>,(0.47+0.55i)|0>-(0.63-0.28i)|1>),
((0.65-0.65i)|0>+(0.24+0.31i)|1>,(0.57+0.60i)|0>+(0.00-0.57i)|1>),
((0.24-0.51i)|0>-(0.78-0.28i)|1>,(0.03-0.15i)|0>-(0.92+0.37i)|1>),…)
を選択して公開する。各公開量子状態はランダムに選択される。
送信者装置２が１ビットの情報０を受信者装置３に送信する場合、送信者装置２はまず
0, (0.61-0.29i)|0>+(0.36-0.64i)|1>
という情報を送信する。
【００５８】
この情報を受信した受信者装置３は、受信した署名量子状態と、この署名量子状態に対応する、事前に公開されている公開量子状態列の中の公開量子状態とをスワップテストにかける。具体的には、
((0.61-0.29i)|0>+(0.36-0.64i)|1>,(0.36+0.64i)|0>-(0.61+0.29i)|1>)
という量子状態の組をスワップテストにかける。そのスワップテストの決定結果が「拒絶」であるとする。受信者装置３は、この決定結果を送信者装置２に送る。
【００５９】
次に、送信者装置２は、署名量子状態
(0.24-0.31i)|0>-(0.65+0.65i)|1>
を送信する。この署名量子状態を受信した受信者装置３は、受信した署名量子状態と、この署名量子状態に対応する、事前に公開されている公開量子状態列の中の公開量子状態とをスワップテストにかける。具体的には、
((0.24-0.31i)|0>-(0.65+0.65i)|1>,(0.65-0.65i)|0>+(0.24+0.31i)|1>)
という量子状態の組をスワップテストにかける。そのスワップテストの決定結果が「受諾」であるとする。受信者装置３は、この決定結果を送信者装置２に送る。
【００６０】
次に、送信者装置２は、署名量子状態
(0.24-0.51i)|0>-(0.78-0.28i)|1>
を送信する。この署名量子状態を受信した受信者装置３は、受信した署名量子状態と、この署名量子状態に対応する、事前に公開されている公開量子状態列の中の公開量子状態とをスワップテストにかける。具体的には、
((0.24-0.51i)|0>-(0.78-0.28i)|1>,(0.24-0.51i)|0>-(0.78-0.28i)|1>)
という量子状態の組をスワップテストにかける。そのスワップテストの決定結果が「受諾」であるとする。受信者装置３は、この決定結果を送信者装置２に送る。
【００６１】
以後同様の処理を繰り返す。
送信者装置２が|φ~ｂ（ｎ）>＝|φｂ（ｎ）>となる署名量子状態を送ったのは、ｎ＝３，５，…の回のときであり、受信者装置３はそれらのすべての回のときに「受諾」を返信しているとする。また、送信者装置２が|φ~ｂ（ｎ）>＝|φ’ｂ（ｎ）>となる署名量子状態を送ったのは、ｎ＝１，２，４，…の回のときであり、それらの回に行われるスワップテストにおける決定結果が「拒絶」である確率が十分１／２に近かったとする。
すべての署名量子状態の組の数が十分に多ければ、送信者装置２に中断されることなくプロトコルが遂行される。
【００６２】
［（ｍ＋３）／（２（ｍ＋２））が閾値となる理由］
一般に次の定理が成立する。定理の証明については後述する。
定理：
以下で定義されるユニタリ行列を引数とする関数Ｖ（ｍ，ｌ）(Ｕ)の最大値は（ｍ＋１）／（ｍ＋２）である。
【数２】
0004904224.tif 000003
ただし、
【数３】
0004904224.tif 000004
としさらに、∫ｄψは量子状態ψに関してブロッホ球状−様かつ規格化された積分であるとする。
【００６３】
ここで、Ｔｒ１−ρはρの一つ目の量子ビットに関する縮約密度行列（Reduced density matrix）とする（・−は、・の上付きバーを意味する。以下同様である。）。この定理が、送信者装置２及び受信者装置３以外の第三者が行う署名の偽造における限界を示しているのであるが、それは以下の意味においてである。
【００６４】
第三者によってｍ個の公開量子状態から署名量子状態を偽造しようとすると、その偽造した量子状態は状態密度を用いて、
【数４】
0004904224.tif 000005
と表現できる。ここで、ユニタリ行列Ｕと整数ｌは第三者の戦略に依存するものである。この量子状態を署名を構成する量子状態として送ると、受信者装置３がこの状態を観測して「受諾」という結果が得られる確率は１−<ψ−｜ρ（ｍ，ｌ）（Ｕ）｜ψ−>／２である。つまり、公開鍵の量子状態はランダムであったという事実から、署名全体の平均を取ると、１−Ｖ（ｍ，ｌ）（Ｕ）／２と書くことができる。よって、上の定理より、偽造された署名が受信者装置３の観測によって「受諾」が出力される確率は（ｍ＋３）／（２（ｍ＋２））以上である。したがって、受信者装置３が各署名量子状態ごとに行ったスワップテストにおいて「受諾」という決定結果が得られる確率が、（ｍ＋３）／（２（ｍ＋２））よりも小さい場合には、それらの署名量子状態は送信者装置２が生成したものであると判断することができる。
【００６５】
［定理の証明］
Ｖ（ｍ，ｌ）（Ｕ）の上界は次のように求める。
【数５】
0004904224.tif 000006
但し、上の式で用いている記号
【数６】
0004904224.tif 000007
は次のように定義されているものとする。
【数７】
0004904224.tif 000008
この定義の中で用いた記号は以下の意味を持って用いている。
【数８】
0004904224.tif 000009
における計算基底である。
【００６６】
（２）の一行目の等式は定義（４）と（７）を用いた単純な置換である。（２）の二行目の等式は次に書く二つの関係式を用いる事で正しい事が理解できる。二つ目の関係式は
【数９】
0004904224.tif 000010
である。ただし、｜ψ>＝α｜↑>＋β｜↓>とおいている。二つ目の関係式は
【数１０】
0004904224.tif 000011
ただし、ψとθ，μはcos（θ／２）｜０>＋ｅμsin（θ／２）｜１>＝｜ψ>を持って関連付けられているとする。この関係式は以下のようにβ関数の積分表示を通して確認する事ができる。
【数１１】
0004904224.tif 000012
（２）の三行目の不等式の符号をいじくるだけの非常に初等的な関係式である。（２）の三行目の式はCauchy-Schwarzの不等式を用いる事で計算可能である。（２）における最後の不等式はＶｑ(n)（｛ａ↑，ｓ｝s=0ｍ，｛ａ↓，ｓ｝s=0ｍ）の最大値が
｜ａ↑，ｓ｜２＋｜ａ↓，ｓ｜２＝１              （11）
の束縛条件のもとでは
【数１２】
0004904224.tif 000013
を満たす時に最大値を取りその値はｍ＋１となる事による。ただし、この関係式を使うにあたって必要な束縛条件
｜Ａ↑，ｓ｜２＋｜Ａ↓，ｓ｜２＝１              （13）
は以下の方法で成り立つ事を示せる：Ｕがユニタリであるという事実から、
【数１３】
0004904224.tif 000014
が得られる。この関係式を｛｜ｍ，ｓ>｝の基底で見たときの対角成分を書き下すと上述の束縛条件が導出される。以上により（２）が示され、関数Ｖ（ｍ，ｌ）（Ｕ）の上界が（ｍ＋１）／（ｍ＋２）である事が示された。
【００６７】
他方、この上界は同時に上限である事をＶ（ｍ，０）（Ｕ＾ｍ）＝（ｍ＋１）／（ｍ＋２）を実現するＵ＾ｍを具体的に構成する事で示す。Ｕ＾ｍを構成するには、
【数１４】
0004904224.tif 000015
を満たすＡ＾(k)∈hom(Ｃｍ＋１，Ｈ)を構成できれば十分である（・＾は、・の上付きハットを意味する。以下同様である。）。ただし、Ａ＾↑(↓),s(ｋ)：＝<↑(↓)｜Ａ＾(k)｜ｍ，ｓ>とする。以下に、上述の条件を満たす行列Ａ＾(k)を具体的に書き下す：
ｍ＝１の場合、
Ａ＾(０)：＝｜↓> <１，０｜−｜↑> <１，１｜          （15）
ｍ＝２の場合、
Ａ＾(０)：＝１／√２｜↑> <２，０｜＋｜↓> <２，２｜
Ａ＾(１)：＝１／√２｜↓> <２，０｜−｜↑> <２，１｜    （16）
ｍ＝３の場合、
Ａ＾(０)：＝｜↓><３，０｜＋｜↑><３，３｜
Ａ＾(１)：＝｜↓><３，１｜−｜↑><３，２｜            （17）
ｍ＞３の場合、
Ａ＾(０)：＝ａ↑，０｜↑〉〈ｍ，０｜
Ａ＾(ｓ＋１)：＝ａ↓，Ｓ｜↓〉〈ｍ，ｓ｜＋ａ↑，Ｓ＋１｜↑〉〈ｍ，ｓ＋１｜
Ａ＾(ｍ＋１)：＝ａ↓，ｍ｜↓〉〈ｍ，ｍ｜                    （18）
ただし０＜ｓ＜ｍとしａ↓，ｓ，ａ↓，ｓは（１１）と（１２）を満たす数列であるとする。この条件を満たす数列が存在する事は容易に確認できる。
【００６８】
よってmaxＵＶ（ｍ，ｌ）（Ｕ）＞（ｍ＋１）／（ｍ＋２）が示された。
【図面の簡単な説明】
【００６９】
【図１】再認証不可能な量子電子署名システムの一実施例の機能構成を例示する図。
【図２】送信者装置２の機能構成を例示する図。
【図３】受信者装置３の機能構成を例示する図。
【図４】再認証不可能な量子電子署名システム１の処理の流れを例示するフローチャート。
【図５】スワップテストを実現するための量子回路を例示した図。
【図１】
0004904224.tif 000016
【図２】
0004904224.tif 000017
【図３】
0004904224.tif 000018
【図４】
0004904224.tif 000019
【図５】
0004904224.tif 000020