(57)【特許請求の範囲】
【請求項１】
少なくとも１ビット以上の乱数列を予め共有していない通信装置間で共有情報を生成する通信システムにおける共有情報管理方法において、
各通信装置が前記共有情報をそれぞれ独立に生成し、
一の通信装置が、当該一の通信装置で生成された一の共有情報を暗号鍵および復号鍵のいずれか一方で使用することを他の通信装置へ通知することで、前記一の通信装置と前記他の通信装置との間で同一の共有情報を一方で暗号鍵、他方で復号鍵として対応付け、
各通信装置が前記対応付けられた共有情報をそれぞれ格納手段に蓄積し、
各通信装置が暗号鍵と復号鍵とを別々に管理し、
前記一の通信装置が、当該一の通信装置の格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、当該一の通信装置で生成された一の共有情報を前記暗号鍵および前記復号鍵のいずれか蓄積量の少ない方に優先的に割り当てる、
ことを特徴とする共有情報管理方法。
【請求項２】
前記通信装置間で通信が実行されるとき、それぞれの格納手段に蓄積された対応する共有情報が消費されることを特徴とする請求項１に記載の共有情報管理方法。
【請求項３】
各通信装置における共有情報の生成と消費により増減する前記格納手段の共有情報の蓄積量を監視することを特徴とする請求項２に記載の共有情報管理方法。
【請求項４】
前記通信システム起動時に、前記一の通信装置が他の通信装置との間で共有情報が対応付けられているか否かを判定することを特徴とする請求項１に記載の共有情報管理方法。
【請求項５】
前記通信システム終了時に、各通信装置の格納手段に蓄積された共有情報を全て削除することを特徴とする請求項１に記載の共有情報管理方法。
【請求項６】
前記一の通信装置と前記他の通信装置との間で同一の共有情報を用いて暗号化通信を実行したとき、当該使用された共有情報は二度と暗号化通信に使用されないことを特徴とする請求項１−５のいずれか１項に記載の共有情報管理方法。
【請求項７】
少なくとも１ビット以上の乱数列を予め共有していない通信装置間で共有情報を生成する通信システムにおける共有情報管理方法において、
第１通信装置が第２通信装置へ原情報を所定のフレーム単位で送信し、
前記第２通信装置が前記第１通信装置から前記フレーム単位で受信した情報に基づいて、前記第１通信装置と前記第２通信装置との間でそれぞれ独立に中間情報を所定サイズのファイル単位で生成して第１格納手段に蓄積し、
前記ファイル単位の中間情報に基づいて前記第１通信装置と前記第２通信装置との間でそれぞれ独立に前記共有情報を生成し、
前記第１通信装置が当該第１通信装置で生成された一の共有情報を特定する情報を前記第２通信装置へ通知することで、前記第１通信装置と前記第２通信装置との間で同一の共有情報を対応付け、
前記第１通信装置と前記第２通信装置の各々が前記対応付けられた共有情報をそれぞれ第２格納手段に蓄積し、
前記第１通信装置は、当該第１通信装置で生成された一の共有情報を暗号鍵および復号鍵のいずれか一方で使用することを前記第２通信装置へ通知することで、前記第１通信装置と前記第２通信装置との間で同一の共有情報を一方で暗号鍵、他方で復号鍵として対応付け、
前記第１通信装置と前記第２通信装置の各々は暗号鍵と復号鍵とを別々に管理し、
前記第１通信装置は、当該第１通信装置の第２格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、当該第１通信装置で生成された一の共有情報を前記暗号鍵および前記復号鍵のいずれか蓄積量の少ない方に優先的に割り当てる、
ことを特徴とする共有情報管理方法。
【請求項８】
前記共有情報は前記ファイル単位でワンタイムパッド暗号方式の暗号鍵に使用されることを特徴とする請求項７に記載の共有情報管理方法。
【請求項９】
少なくとも１ビット以上の乱数列を予め共有していない通信装置間で共有する情報を管理する共有情報管理システムにおいて、
各通信装置は、
他の通信装置との間でそれぞれ独立に共有情報を生成する生成手段と、
前記共有情報を蓄積する第１格納手段と、
一の共有情報を特定する情報を前記他の通信装置との間で送信あるいは受信することで、当該他の通信装置との間で同一の共有情報を対応付ける管理手段と、
前記対応付けられた共有情報を蓄積する第２格納手段と、
を有し、
一の通信装置の前記管理手段は前記生成手段が生成した一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを他の通信装置へ通知し、当該通知を受けた前記他の通信装置の前記管理手段は同一の共有情報を前記一の通信装置とは異なる鍵として使用し、
各通信装置の前記管理手段は前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理し、
前記一の通信装置の前記管理手段は、前記第２格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、前記生成手段が生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、
ことを特徴とする共有情報管理システム。
【請求項１０】
前記通信装置間で通信が実行されるとき、各通信装置の前記管理手段は前記第２格納手段に蓄積された対応する共有情報を消費することを特徴とする請求項９に記載の共有情報管理システム。
【請求項１１】
各通信装置の前記管理手段は、共有情報の生成と消費により増減する前記第２格納手段の共有情報の蓄積量を管理することを特徴とする請求項１０に記載の共有情報管理システム。
【請求項１２】
前記システム起動時に、一の通信装置の前記管理手段は他の通信装置との間で共有情報が対応付けられているか否かを判定することを特徴とする請求項９に記載の共有情報管理システム。
【請求項１３】
前記システム終了時に、各通信装置の前記管理手段は、前記第２格納手段に蓄積された共有情報を全て削除することを特徴とする請求項９に記載の共有情報管理システム。
【請求項１４】
前記一の通信装置と前記他の通信装置との間で同一の共有情報を用いて暗号化通信を実行したとき、前記一の通信装置および前記他の通信装置のそれぞれの管理手段は、当該使用された共有情報を二度と暗号化通信に使用しないことを特徴とする請求項９−１３のいずれか１項に記載の共有情報管理システム。
【請求項１５】
少なくとも１ビット以上の乱数列を予め共有していない他の通信装置との間で共有する情報を管理する通信装置において、
前記他の通信装置との間でそれぞれ独立に共有情報を生成する生成手段と、
前記共有情報を蓄積する第１格納手段と、
一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記他の通信装置から受信することで、当該他の通信装置との間で同一の共有情報を前記他の通信装置とは異なる鍵として対応付ける管理手段と、
前記対応付けられた共有情報を蓄積する第２格納手段と、
を有し、
前記管理手段は前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理し、前記第２格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、前記生成手段が生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、ことを特徴とする通信装置。
【請求項１６】
少なくとも１ビット以上の乱数列を予め共有していない他の通信装置との間で共有する情報を管理する通信装置において、
前記他の通信装置との間でそれぞれ独立に共有情報を生成する生成手段と、
前記共有情報を蓄積する第１格納手段と、
一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記他の通信装置へ送信することで、当該他の通信装置との間で同一の共有情報を異なる鍵として対応付ける管理手段と、
前記対応付けられた共有情報を蓄積する第２格納手段と、
を有し、
前記管理手段は前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理し、前記第２格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、前記生成手段が生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、ことを特徴とする通信装置。
【請求項１７】
コンピュータに、少なくとも１ビット以上の乱数列を予め共有していない他の通信装置との間で共有する情報の管理を実行させるプログラムにおいて、
前記他の通信装置との間でそれぞれ独立に共有情報を生成して第１格納手段に格納し、
一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記他の通信装置から受信すると、それと同一の共有情報を前記他の通信装置とは異なる鍵として特定し、
前記特定された共有情報を第２格納手段に蓄積し、
前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理してそれぞれの蓄積量を監視し、生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、
ことを特徴とするプログラム。
【請求項１８】
コンピュータに、少なくとも１ビット以上の乱数列を予め共有していない他の通信装置との間で共有する情報の管理を実行させるプログラムにおいて、
前記他の通信装置との間でそれぞれ独立に共有情報を生成して第１格納手段に格納し、
一の共有情報を特定して第２格納手段に蓄積し、
前記一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記他の通信装置へ送信することで、当該他の通信装置との間で同一の共有情報を異なる鍵として対応付け、
前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理してそれぞれの蓄積量を監視し、生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、
ことを特徴とするプログラム。
【請求項１９】
少なくとも１ビット以上の乱数列を予め共有していない第１通信装置と第２通信装置とが暗号化通信を行うための通信システムにおいて、
前記第１通信装置は、
前記第２通信装置との間で共有すべき秘密情報を独立に生成する第１生成手段と、
前記秘密情報を蓄積する第１格納手段と、
一の秘密情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記第２通信装置へ送信することで、前記第２通信装置との間で同一の秘密情報を異なる鍵として対応付け、前記対応付けられた秘密情報を第２格納手段に蓄積する第１管理手段と、を有し、前記第１管理手段は前記第２格納手段に蓄積される暗号鍵と復号鍵とを別々に管理し、前記第２格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、前記第１生成手段が生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当て、
前記第２通信装置は、
前記第１通信装置との間で共有すべき前記秘密情報を独立に生成する第２生成手段と、
前記秘密情報を蓄積する第３格納手段と、
前記一の共有情報を暗号鍵および復号鍵のいずれか一方の鍵として使用することを前記第１通信装置から受信することで、当該第１通信装置との間で同一の秘密情報を前記第１通信装置とは異なる鍵として対応付け、前記対応付けられた秘密情報を第４格納手段に蓄積する第２管理手段と、
を有し、前記第２管理手段は前記第４格納手段に蓄積される暗号鍵と復号鍵とを別々に管理し、前記第４格納手段に蓄積された前記暗号鍵および前記復号鍵のそれぞれの蓄積量を監視し、前記第２生成手段が生成した一の共有情報を前記暗号鍵および前記復号鍵のうち蓄積量の少ない方に優先的に割り当てる、
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置間で共有される情報を管理する方法およびシステムに関する。
【背景技術】
【０００２】
インターネットは様々なデータが行き交う経済社会インフラとなっており、それゆえにインターネット上を流れるデータを盗聴リスクから事前に守る予防策を整えることが重要な課題となっている。予防策の一つとして、通信するデータを暗号化する秘匿通信システムが挙げられる。
【０００３】
情報の暗号化および復号化に必要な共有鍵は秘密情報として送信側と受信側との間で共有する必要があり、このような秘密情報を生成し共有する技術として量子暗号鍵配布(ＱＫＤ: Quantum Key Distribution)技術が有力視されている。
【０００４】
１．ＱＫＤ
ＱＫＤ技術は、通常の光通信とは異なり、１ビットあたりの光子数を１個として乱数を伝送することにより、送信装置と受信装置との間で共通鍵を生成し共有することができる。このＱＫＤ技術は、従来のように計算量に基づく安全性ではなく、１度観測されてしまった光子を完全に観測前の量子状態に戻すことができないという量子力学の原理に基づく安全性を有している。
【０００５】
ＱＫＤ技術では、暗号通信に用いるための暗号鍵を生成するまでに、いくつかのステップを実行しなければならない。以下、図７を参照しながら、代表的な暗号鍵の生成過程を説明する。
【０００６】
１．１）単一光子伝送
単一光子伝送では、前述したとおり、１ビットあたりの光子数を１個とした微弱光により乱数を量子チャネルを通して伝送する。ＱＫＤ方式としては、いくつかの提案があるが、たとえば４つの量子状態を用いたＢＢ８４方式が広く知られている（非特許文献１）。送信器は、量子の状態を表す２通りの基底（Ｄ，Ｒ）と２値の乱数データ（０，１）との組み合わせによる計４通りの情報を用いて光子を位相変調し送信する。受信器では、送信器とは独立した基底（Ｄ，Ｒ）で光子を受信し、受信器が受信できたビットを生鍵と言う。送信器が送信した乱数のうち、その大部分は伝送路の損失等によって失われる。
【０００７】
１．２）基底照合
次に、光子伝送を行う伝送路（量子チャネル）とは異なる通常光の通信チャネル（古典チャネル）を用いてビット照合および基底照合を行う。受信器は、受信できたビットのビット番号と受信基底とを古典チャネルを介して送信器に通知する。送信器は受け取ったビット番号の受信基底とそのビットを送るときに用いた送信基底とを照合し、送信基底と受信基底とが一致するビットのみを篩い分ける。この篩い分けられたビット列を選別鍵(sifted key)という。
【０００８】
１．３）エラー訂正
このようにして生成された選別鍵は、通信誤りを含んでいる可能性があるので、送信器と受信器とで完全に一致した乱数列であるとは限らない。そこで、送信器と受信器の持つ選別鍵が一致するまでエラー訂正処理を繰り返す。エラー訂正処理の手法としては、従来の通信でも使用されているＢＣＨ符号やＬＤＰＣ（low-density parity-check code）符号などが用いられる。
【０００９】
１．４）秘匿増強
しかしながら、上記１．３）で訂正した誤りは、伝送路損失のみによるものとは断定できない。ＱＫＤ技術では、常に盗聴者の存在を想定しており、盗聴者が存在すれば、誤り率に反映される。そこで、盗聴行為を無効にするため、一致した選別鍵に対して秘匿増強処理を行う（たとえば非特許文献２）。秘匿増強処理では、別途用意した乱数を用いて選別鍵をシャッフルする。このように誤り訂正された選別鍵に対して秘匿増強処理を施すことで最終的に得られた鍵を最終鍵という。
【００１０】
図７にも記載したように、送信器が生成した原乱数は、単一光子伝送で大部分が失われ、受信器で受信された生鍵に対しても、基底照合、エラー訂正および秘匿増強の各ステップで開示されたビットの除去、盗聴可能性を排除するためのビットの除去が行われる。たとえば、このようなＱＫＤによる暗号鍵生成ステップでは１秒あたり数１０ｋビットの最終鍵を生成することが可能となる。
【００１１】
２．暗号化方式
さらに、ＱＫＤ技術によって生成した鍵を、解読不可能なことが証明されているワンタイムパッド（one-time-pad）暗号の鍵として使用することで、絶対安全な暗号通信を提供することが可能となる。ワンタイムパッド暗号では、送信器が暗号化に用いた暗号鍵は受信器では必ず復号のために用い、受信器が暗号化に用いた暗号鍵は送信器では必ず復号のために用いなければならない。すなわち、送信側と受信側との間で暗号鍵を暗号／復号の何れの用途に用いるかを予め決定しておく必要がある。さらに、ワンタイムパッド暗号では、一度使用されると破棄されるので、鍵の生成および消費を管理する技術が重要となる。
【００１２】
例えば、特許文献１には、ワンタイムパッド暗号鍵の管理技術について記載されている。ここでは、送信器・受信器以外の第３者（鍵中央提供者）が暗号鍵をファイル管理し、識別子を付与した暗号鍵を暗号化して送信器および受信器に配布する。さらに、暗号化に用いる暗号鍵と復号に用いる復号鍵との対応をとるために、暗号鍵と復号鍵を別々に管理する手法が開示されている。
【００１３】
【非特許文献１】“QUANTUM CRYPTOGRAPHY, PUBLIC KEY DISTRIBUTION AND COIN TOSSING”IEEE Int. Conf. on Computers, Systems, and Signal Processing, Bangalore, India December 10-12, 1984, pp.175-179, Bennett, Brassard
【非特許文献２】"Generalized Privacy Amplification" C. H. Bennett, G. Brassard, C. Crepeau, and U. M. Maurer, IEEE Trans. Inf. Theory, Vol.41, No.6, p1915
【特許文献１】特表２００４−５０１５３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
図７に示したように、ＱＫＤ技術には種々のステップがあるが、暗号鍵データ自身を送受信しているのは最初の光子伝送のみである。その後は、一部のビットは開示するものの、暗号鍵データ自身は送受信器間でやりとりを行わない。よって、基底照合、誤り訂正および秘匿増強では、送信器と受信器とがそれぞれ独立に計算処理を行い、それぞれが時々刻々と最終鍵を生成し続けている。しかしながら、鍵生成過程において、送信器と受信器との間は計算処理量が異なる等の理由により、双方で鍵の生成速度は同じとは限らない。また、鍵生成中に送信器と受信器との間で通信を行うため、通信時間のタイムラグも無視できない。したがって、送信器と受信器とで別々に生成された最終鍵は、そのままでは共通鍵として使用することができなかった。
【００１５】
また、ワンタイムパッド暗号では、暗号鍵を使い捨てるので、暗号鍵を消費することになる。したがって、ＱＫＤ技術により生成し蓄積した暗号鍵をワンタイムパッド暗号の鍵として使用する場合、その蓄積量は常に増減を繰り返し、送信器と受信器との間で常に一致した蓄積鍵を共有しているとは言えなくなる。さらに、特許文献１のように蓄積鍵を暗号鍵と復号鍵に分けて管理した場合、暗号鍵と復号鍵の消費は通信の方向によって異なり、一方の鍵を使い切ったとき、暗号化通信を行なえなくなるという問題もあった。また、特許文献１のシステムでは、暗号鍵をファイル管理して送信器および受信器に配布する第３者（鍵中央提供者）を必要とする。
【００１６】
そこで、本発明の目的は、通信装置間で一致した共有情報の使用を可能にする共有情報管理方法およびシステムを提供することにある。
【００１７】
本発明の他の目的は、通信装置間で同期生成した鍵情報を共有管理することで安定した暗号化通信を実現することができる通信システムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明によれば、各通信装置で別々に生成した共有情報を通信装置間の通信により対応付けることで、第三者を介在させることなく通信装置間だけで使用される共有情報を常に一致させることができる。特に、各通信装置で共有情報が生成され続けると共に共有情報が通信を実行する毎に順次使い捨てられる場合、共有情報の蓄積量は常に変動することになるが、本発明によれば、通信装置間で使用される共有情報が対応付けられるので、常に一致した共有情報の使用が可能となる。したがって、たとえばワンタイムパッド暗号の鍵として使用する場合であっても、安定した暗号化通信を実行することができる。
【００１９】
また、対応付けられた共有情報が各通信装置に残存した状態で通信システムが終了した場合には、次にシステムを起動させたときに、通信装置間で共有情報が一致しているとは限らない。そこで、本発明によれば、システム起動時に通信装置間で共有情報が対応付けられているか否かをチェックする。共有情報が一致していなければ、一致するように各通信装置の共有情報を部分的に消去するか、あるいは全ての通信装置の共有情報を全て消去することもできる。また別の方式として、システム終了時に、各通信装置に残存している共有情報を全て削除することで、起動時の共有情報の一致を確保することもできる。
【００２０】
また、同一鍵を送信側および受信側でそれぞれ暗号鍵および復号鍵として使用する方式では、使用する鍵（共有情報）を双方で一致させる必要がある。特に、使用された鍵を使い捨てる方式では、各通信装置で暗号鍵と復号鍵とを他の通信装置との対応を取りつつ別々に管理することが望ましい。
【００２１】
更に、各通信装置で暗号鍵および復号鍵のうち一方の鍵が無くなる事態を回避するために、本発明によれば、各通信装置において暗号鍵および復号鍵のそれぞれの蓄積量を監視し、各通信装置で生成された鍵を蓄積量の少ない方に優先的に割り当てることができる。
【００２２】
本発明の一実施形態によれば、一方の通信装置から他方へ原情報を所定のタイミングに従って（実施例では、フレーム単位で）送信し、他方の通信装置が受信できた情報に基づいて、通信装置間の共有情報を所定サイズ毎に（実施例では、ファイル単位で）順次生成して第１メモリに蓄積する。したがって、共有情報の生成処理がフレームのタイミングに従って順次実行されるので、双方の通信装置が同期して、ほぼ同時にファイル単位の共有情報を順次生成することができる。
【００２３】
こうしてファイル単位で生成された共有情報を通信装置間の通信により対応付けて第２メモリに蓄積することで、上述したように、第三者を介在させることなく通信装置間だけで使用される共有情報を常に一致させることが可能となる。
【００２４】
本実施形態では、一方の通信装置から他方へ原情報を送信し続けることで、対応付けられた共有情報を第２メモリにファイル単位で順次蓄積することができる。したがって、対応付けられた共有情報を暗号鍵／復号鍵として順次消費する場合であっても、第２メモリの蓄積量をリアルタイムで監視することで、各通信装置で暗号鍵および復号鍵のうち一方の鍵が無くなる事態を回避することができる。
【発明の効果】
【００２５】
本発明によれば、各通信装置が共有情報を生成し、一の通信装置が一の共有情報を特定する情報を他の通信装置へ通知することにより通信装置間で同一の共有情報を対応付けるので、第三者を介在させることなく通信装置間だけで使用される共有情報を常に一致させることができる。
【００２６】
たとえば、ＱＫＤ技術のような送信器および受信器が独立に暗号鍵を生成するシステムにおいて、送信器および受信器がほぼ同時に生成する鍵は同じ乱数列であることが保証されるが、こうして生成された暗号鍵に上述した対応付けによる共有処理を行なうことによって、送信器および受信器間での暗号鍵の共有を実現し、安定した暗号化通信を行なうことが可能となる。
【００２７】
また、送信器、受信器における暗号鍵および復号鍵の生成量、使用量、蓄積量を常に管理することによって、効率的に暗号鍵および復号鍵の共有処理を行なうことができ、安定した暗号化通信を提供することができる。
【００２８】
さらに、本発明によれば、各通信装置において暗号鍵および復号鍵のそれぞれの蓄積量を監視し、各通信装置で生成された鍵を蓄積量の少ない方に優先的に割り当てることで、各通信装置で暗号鍵および復号鍵のうち一方の鍵が無くなる事態を回避することができ、安定した暗号化通信を行なうことが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の適用例として量子暗号システムを例示するが、本発明はこれに限定されるものではなく、複数の通信装置間で共有すべき情報がこれら通信装置間で同一となるように同期管理するシステム一般に適用可能である。
【００３０】
図１は本発明の第１実施形態による量子暗号システムのブロック図である。図１において、量子暗号システムは、送信器１０および受信器２０が光伝送媒体を通して複数の通信チャネルにより接続された構成を有する。ここでは、後述する量子チャネル３０、同期チャネル４０およびデータ通信チャネル５０を例示する。送信器１０には量子ユニット１０１、同期ユニット１０２およびデータ通信ユニット１０３が設けられ、受信器２０には量子ユニット２０１、同期ユニット２０２およびデータ通信ユニット２０３が設けられている。送信器１０と受信器２０のそれぞれの量子ユニット１０１および２０１は量子チャネル３０によって、同期ユニット１０２および２０２は同期チャネル４０によって、データ通信ユニット１０３および２０３はデータ通信チャネル５０によってそれぞれ接続されている。
【００３１】
送信器１０の量子ユニット１０１は、１ビット当たりの光子数が１フォトン以下の非常に微弱な光パルスに乱数ビット情報を乗せ、量子チャネル３０を通して受信器２０の量子ユニット２０１へ送信する。量子ユニット２０１は、到達した微弱光信号を検出して生鍵データを格納する。
【００３２】
一般に、このような微弱光からはタイミングを抽出できないので、送信器１０の同期ユニット１０２は同期チャネル４０を用いて通常レベルの光パワーでタイミング情報を別途送信する。その際、量子チャネル３０と同期チャネル４０との伝送条件ができるだけ同一になるようにＷＤＭ（波長分割多重）伝送によって同じ光伝送路（たとえば光ファイバ）で伝送する方が望ましい。
【００３３】
データ通信チャネル５０も通常レベルの光パワーで光通信を行う場合には量子チャネル３０および同期チャネル４０と同じ光伝送路にＷＤＭにより設けてもよい。ただし、データ通信チャネル５０は、量子チャネル３０や同期チャネル４０とは別の光伝送路でもよく、あるいは電気信号による電気通信路であってもよい。
【００３４】
送信器１０の制御部１０４は後述する鍵生成・管理および暗号化通信を制御する。鍵生成部１０５はメモリ１０６を用いて鍵生成プロセスを実行し、鍵管理部１０７は、生成された最終鍵を記憶装置１０８に暗号鍵あるいは復号鍵として蓄積し、それらを管理する。メモリ１０６は読み出し／書き込み可能な記憶装置であり、後述する原乱数、選別鍵および最終鍵を記憶する。記憶装置１０８は、暗号鍵および復号鍵を安全に蓄積できるものであることが必要であり、ここでは磁気記録媒体であるハードディスクドライブ（ＨＤＤ）が用いられる。
【００３５】
さらに、送信器１０には、フレームパルス（ＦＰ）をカウントするＦＰカウンタ１０９およびフレームパルスを生成するＦＰ生成部１１０が設けられている。ＦＰ生成部１１０はフレームパルスを同期ユニット１０２および制御部１０４へ出力し、ＦＰカウンタ１０９は、そのフレームパルスをカウントしてフレーム番号を制御部１０４へ通知する。同期ユニット１０２は同期チャネル４０を通してフレームパルスを受信器２０へ送信する。鍵生成部１０５および鍵管理部１０７は、ＦＰカウンタ１０９のカウント値を用いて暗号鍵を生成・管理する際の指標にする。
【００３６】
制御部１０４、鍵生成部１０５および鍵管理部１０７は、例えばＣＰＵ等のプログラム制御プロセッサ上で制御プログラム、鍵生成プログラムおよび鍵管理プログラムを実行することによりそれぞれ実装可能である。
【００３７】
受信器２０の制御部２０４は後述する鍵生成・管理および暗号化通信を制御する。鍵生成部２０５はメモリ２０６を用いて鍵生成プロセスを実行し、鍵管理部２０７は、生成された最終鍵を記憶装置２０８に暗号鍵あるいは復号鍵として蓄積し、それらを管理する。メモリ２０６は読み出し／書き込み可能な記憶装置であり、後述する原乱数、選別鍵および最終鍵を記憶する。記憶装置２０８は、暗号鍵および復号鍵を安全に蓄積できるものであることが必要であり、ここでは磁気記録媒体であるハードディスクドライブ（ＨＤＤ）が用いられる。
【００３８】
さらに、受信器２０には、フレームパルス（ＦＰ）をカウントするＦＰカウンタ１０９が設けられている。ＦＰカウンタ１０９は、送信器１０から同期チャネル４０を通して受信したフレームパルスをカウントし、そのカウント値を用いて鍵生成部２０５および鍵管理部２０７は暗号鍵を生成・管理する際の指標にする。
【００３９】
制御部２０４、鍵生成部２０５および鍵管理部２０７は、例えばＣＰＵ等のプログラム制御プロセッサ上で制御プログラム、鍵生成プログラムおよび鍵管理プログラムを実行することによりそれぞれ実装可能である。
【００４０】
なお、量子ユニット１０１および２０１による単一光子伝送方式は特定の方式に限定されるものではない。たとえば、送信器１０の量子ユニット１０１から変調により乱数情報を乗せた微弱光パルスが受信器２０の量子ユニット２０１へ一方向に伝送する一方向型でもよい。あるいは、受信器２０の量子ユニット２０１から光パルスが送信器１０へ送出され、送信器１０の量子ユニット１０１で折り返されて乱数情報により変調された微弱光パルスが受信器１０の量子ユニット２０１へ送信される往復型であってもよい。
【００４１】
１．暗号鍵共有プロセス
図２は本実施形態による暗号鍵生成方法を示す概略的フローチャートである。既に述べたように暗号鍵生成には、基本的に、単一光子伝送、基底照合、エラー訂正および秘匿増強を実行するが、本実施形態では、単一光子伝送および基底照合がフレームパルスを基準としてフレーム単位で実行され、こうして得られた選別鍵がある蓄積量を基準にしてファイル化され、ファイル単位でエラー訂正および秘匿増強処理が実行される。
【００４２】
＜単一光子伝送＞
まず、送信器１０は鍵の素となる原乱数をメモリ１０６に格納すると共に、１ビット当たりの光子数が１フォトン以下の光パルスを用いて量子チャネル３０を通して受信器２０へ送信する。単一光子は、伝送路の損失により途中で消失するため、受信器２０は原乱数の一部のみを受信し、受信ビット列を生鍵としてメモリ２０６に格納する。
【００４３】
この単一光子伝送では、鍵の素となるデータ自身を送信するが、既に述べたように第三者に漏洩することはなく安全性が確保できるものの、上述したようにフレームやパケットといったデータ単位を構成することができない。なぜなら、伝送路中で消失するビットはランダムであり、ヘッダを用いて情報を伝達することができないからである。
【００４４】
そこで、送信器１０は、単一光子伝送と並行して、ＦＰ生成器１１０でフレームパルスを生成し、同期ユニット１０２により同期チャネル４０を通して受信器２０へフレームパルスＦＰを送信する。フレームパルスＦＰは、例えば固定間隔で生成し、あるフレームパルスＦＰTX(i)と次のフレームパルスＦＰTX(i+1)までの間に送信した単一光子パルス列を１つのフレームとして処理することを可能にする。同時に、ＦＰカウンタ１０９は、送信したフレームパルスＦＰTXの数をカウントし、そのカウント値により鍵生成部１０５はフレーム番号＃ｉを管理する。
【００４５】
受信器２０の量子ユニット２０１は量子チャネル３０を通して単一光子パルスを受信すると共に、同期ユニット２０２でフレームパルスＦＰを受信する。受信器２０でも同様に、受信したあるフレームパルスＦＰRX(i)と次に受信したフレームパルスＦＰRX(i+1)の間に受信した単一光子パルス列を１つのフレームとして処理することができる。同時に、ＦＰカウンタ２０９が受信フレームパルスＦＰRXをカウントし、そのカウント値により鍵生成部２０５がフレーム番号＃ｉを管理する。このように、量子チャネル３０を通して伝送される微弱光パルスは直接フレームを構成することはできないが、同期チャネル４０を通して通常の光レベルでフレームパルスＦＰを送ることにより擬似的にフレームを構成することが可能となる。
【００４６】
しかしながら、フレームパルスＦＰはフレーム構造の概観（あるいは一応の目安）を示しているに過ぎない。なぜならば、送信側のあるデータのフレーム番号およびビット番号が受信側で同じであるとは限らないからである。すなわち、量子チャネル３０と同期チャネル４０とをＷＤＭ伝送する場合、それらの波長は異なるので、同じ伝送路であっても光の伝送速度が異なる。このために、送信器１０と受信器２０との間でフレーム番号を対応付けたとしても、送信器１０においてフレーム番号＃ｉのＮビット目に格納されているデータが、受信器２０の同じフレーム番号＃ｉのＮビット目に格納されているとは限らない。ここでは、受信器２０ではフレーム番号＃ｉのＮ＋ｎビット目に格納されているものとする。
【００４７】
＜ビット・基底照合＞
続いて、送信器１０の鍵生成部１０５と受信器２０の鍵生成部２０５とは、データ通信チャネル５０を通して互いのビット・基底照合をフレーム単位で実行する（ＴＸＳＴ１、ＲＸＳＴ１）。すなわち、ひとつのフレームのビット・基底照合が完了するまでは、次のフレームのビット・基底照合は行われない。鍵生成部１０５はＦＰカウンタ１０９を、鍵生成部２０５はＦＰカウンタ２０９をそれぞれ参照しながら、データ通信チャネル５０、データ通信ユニット１０３および２０３を通して、対応するフレームどうしがビット・基底照合処理されるように監視する。
【００４８】
このようにして生成された送信器１０および受信器２０のそれぞれ選別鍵ＫＳTおよびＫＳRは、原乱数および生鍵のフレームのデータサイズと比較して極端に小さくなっている。例えば、３．２Ｍバイトのフレームから生成される有効な選択鍵は２０ｋビットとなる。そこで、ビット・基底照合をフレーム毎に逐次繰り返し、それぞれ生成される選別鍵データを蓄積して所定サイズになると、それをファイル化してファイル番号と共にメモリ１０６、２０６にそれぞれ格納する。例えば２０ｋビットの選択鍵データを逐次蓄積し、３２Ｋバイトに到達する毎にファイル化し、ファイル番号と共に選択鍵ファイルＫＳTおよびＫＳRをメモリ１０６、２０６にそれぞれ格納する。ここで、ファイルとは、所定サイズを基準としてまとめられたデータブロックをいう。
【００４９】
このようにフレーム番号を監視しながら、ビット・基底照合をフレームごとに逐次処理することで、送信器１０と受信器２０との間で同期して、すなわちフレーム単位でほぼ同時に、選別鍵を生成しファイル化することができる。なお、ビット・基底照合の詳細は後述する。
【００５０】
＜エラー訂正・秘匿増強＞
選別鍵ファイルＫＳTおよびＫＳRが生成されたら、次にエラー訂正処理（ＴＸＳＴ２、ＲＸＳＴ２）および秘匿増強処理（ＴＸＳＴ３、ＲＸＳＴ３）を行う。エラー訂正処理および秘匿増強処理はファイル単位で実行され、ひとつのファイルに対する処理が終了するまでは、次のファイルに対する処理は行わない。
【００５１】
上述したように、各ファイルの選別鍵ＫＳTおよびＫＳRは、通信誤りを含んでいる可能性があるので、選別鍵ＫＳTおよびＫＳRが完全に一致した乱数列であるとは限らない。そこで、鍵生成部１０５および鍵生成部２０５は、データ通信チャネル５０を通したデータ通信機能を用いて、当該ファイルの選別鍵ＫＳTおよびＫＳRが一致するまでエラー訂正処理を繰り返す（ＴＸＳＴ２、ＲＸＳＴ２）。その際、開示された選択鍵ＫＳTおよびＫＳRのビットは削除される。
【００５２】
こうして誤りが全て訂正されて選択鍵ＫＳTおよびＫＳRが一致すると、次に、鍵生成部１０５および鍵生成部２０５は、盗聴行為を無効にするために、一致した選別鍵ＫＳに対してそれぞれ秘匿増強処理を行う（ＴＸＳＴ３、ＲＸＳＴ３）。秘匿増強処理では、別途用意した乱数を用いて選別鍵ＫＳをそれぞれシャッフルして最終鍵Ｋを得る。
【００５３】
＜ファイル共有＞
続いて、鍵管理部１０７および鍵管理部２０７は、データ通信チャネル５０を通したデータ通信機能を用いて、当該ファイルの最終鍵Ｋを互いに暗号用／復号用の何れの種類に用いるかを決定し、それぞれ対応する種類に従ってファイル番号と共にＨＤＤ１０８およびＨＤＤ２０８に蓄積する（ＴＸＳＴ４、ＲＸＳＴ４）。
【００５４】
以上のエラー訂正、秘匿増強およびファイル共有のステップをファイル単位で逐次処理することで最終鍵をＨＤＤ１０８およびＨＤＤ２０８に順次蓄積することができ、送信器１０と受信器２０との間で同期して、すなわち、ファイル単位で同一の暗号鍵／復号鍵をほぼ同時に生成することができる。なお、エラー訂正、秘匿増強およびファイル共有処理の詳細については後述する。
【００５５】
２．ビット・基底照合処理
図３は図２におけるビット・基底照合処理により選別鍵を共有する手順を示すフローチャートである。ここでは送信器１０および受信器２０の間のデータ通信を含めてそれぞれの手順が図示されている。
【００５６】
図３において、上述したように、受信器２０のメモリ２０６には生鍵データＫRAWが疑似フレーム単位で格納されている。まず、受信器２０の鍵生成部２０５はメモリ２０６から現時点で最も古いフレーム＃ｉの生鍵を１つ読み出し（ステップＲＸＳＴ１−１）、当該フレームにおける生鍵のビット番号およびそのビットの受信基底と当該フレーム番号ｉとをデータ通信ユニット２０３からデータ通信チャネル５０を介して送信器１０に通知する（ステップＲＸＳＴ１−２）。
【００５７】
送信器１０では、上述したように原乱数がフレーム単位でメモリ１０５に格納されている。送信器１０の鍵生成部１０５は、メモリ１０６から現時点で最も古いフレームを１つ読み出し（ステップＴＸＳＴ１−１）、受信器２０から受信したフレーム番号ｉと一致するフレーム＃ｉの原乱数のうち、生鍵の受信ビット番号と一致するビットを特定する（ステップＴＸＳＴ１−２）。さらに、その特定されたビット番号の送信基底と受信基底とを照合して、基底が一致した有効ビット番号のみをデータ通信チャネル５０を介して受信器２０に通知する（ステップＴＸＳＴ１−３）。
【００５８】
受信器２０の鍵生成部２０５は、送信器１０から通知された有効ビット番号から生鍵の有効ビットを特定する（ステップＲＸＳＴ１−３）。続いて、鍵生成部２０５は、有効ビットからＭビットをランダムに抽出し、それらのビット番号および生鍵データをデータ通信チャネル５０を通して送信器１０へ通知する（ステップＲＸＳＴ１−４）。データ通信チャネル５０に公開したビットは削除する（ステップＲＸＳＴ１−５）。
【００５９】
送信器１０の鍵生成部１０５は、受信器２０により開示されたデータと自身のもつ有効ビットとを比較して誤り率ＲERRを計算し（ステップＴＸＳＴ１−４）、誤り率計算に使用したビットを削除すると共に（ステップＴＸＳＴ１−５）、誤り率の判定を行う（ステップＴＸＳＴ１−６）。
【００６０】
ここで、もし通信誤りのみであれば、誤り率ＲERRはせいぜい大きくても１０％程度である。しかしながら、上述したように、フレームパルスＦＰを参照したフレーム構造はフレームの概観を示しているにすぎないために、送信器１０と受信器２０との間で相関のないビットを用いて基底照合を行った場合、誤り率ＲERRは５０％程度になる。したがって、しきい値ＲTHを１０％以上の適当な値に設定することで、受信ビット番号自体がずれているか否かを判定することができる。誤り率ＲERRがしきい値ＲTHを超えている場合には、鍵生成部１０５は、受信ビット番号を１ビットシフトさせ（ステップＴＸＳＴ１−６ａ）、再び受信ビット照合（ステップＴＸＳＴ１−２）からやり直す。なお、受信ビット番号シフトおよび受信ビット照合については図４を用いて具体的に説明する。
【００６１】
このように受信ビット番号を順次シフトさせながら、誤り率ＲERRがしきい値ＲTHより小さくなるビット番号配置を探索する。誤り率ＲERRがしきい値ＲTHより小さくなれば、その旨を受信器２０に通知し、そのときの有効ビットを選別鍵ＫST（ｉ）としてメモリ１０６に蓄積する（ステップＴＸＳＴ１−７）。鍵生成部１０５は、メモリ１０６に蓄積された選別鍵の蓄積量が所定サイズＢに到達したか否かを判定し（ステップＴＸＳＴ１−８）、到達していなければ（ステップＴＸＳＴ１−８のＹＥＳ）、ステップＴＸＳＴ１−１に戻って、次のフレームの処理を開始する。
【００６２】
選別鍵の蓄積量が所定サイズＢに到達すると（ステップＴＸＳＴ１−８のＮＯ）、鍵生成部１０５は蓄積された選別鍵をファイル化し、ファイル番号とともにメモリ１０６に蓄積した後（ステップＴＸＳＴ１−９）、ステップＴＸＳＴ１−１に戻って次のフレームの処理を開始する。こうしてファイル化された選別鍵がメモリ１０６に順次蓄積される。
【００６３】
一方、受信器２０の鍵生成部２０５は、ステップＲＸＳＴ１−６において、送信器１０から誤り率の判定結果を受信する。誤り率ＲERRがしきい値ＲTHを超えている場合には、鍵生成部２０５はステップＲＸＳＴ１−３に戻って、送信器１０から通知された有効ビット番号（前回よりも１ビットシフトしている）から生鍵の有効ビットを特定し、上述したステップＲＸＳＴ１−３〜ＲＸＳＴ１−５を誤り率ＲERRがしきい値ＲTHより小さくなるまで繰り返す。
【００６４】
ステップＲＸＳＴ１−６において誤り率ＲERRがしきい値ＲTHより小さくなった旨の判定結果を通知されると、そのときの有効ビットを選別鍵ＫSR（ｉ）としてメモリ２０６に蓄積する（ステップＲＸＳＴ１−７）。鍵生成部２０５は、メモリ２０６に蓄積された選別鍵の蓄積量が所定サイズＢに到達したか否かを判定し（ステップＲＸＳＴ１−８）、到達していなければ（ステップＲＸＳＴ１−８のＹＥＳ）、ステップＲＸＳＴ１−１に戻って、次のフレームの処理を開始する。
【００６５】
選別鍵の蓄積量が所定サイズＢに到達すると（ステップＲＸＳＴ１−８のＮＯ）、鍵生成部２０５は蓄積された選別鍵をファイル化し、ファイル番号とともにメモリ２０６に蓄積した後（ステップＲＸＳＴ１−９）、ステップＲＸＳＴ１−１に戻って次のフレームの処理を開始する。こうしてファイル化された選別鍵がメモリ２０６に順次蓄積される。
【００６６】
このようにフレーム番号を監視しながらビット・基底照合をフレームごとに逐次処理することで、送信器１０と受信器２０との間で選別鍵ファイルをほぼ同時に順次生成することができる。
【００６７】
＜具体例＞
図４は受信ビット番号シフトおよび受信ビット照合について説明するための模式的なタイムチャートであり、（Ａ）は送信器が送信する原乱数ビット列を示し、（Ｂ）は受信器が受信した生鍵ビット列およびそのビット番号シフトを示す。ここでは、説明を簡略化するために、１フレームでＮ個の原乱数が送信され、受信側で受信された生鍵データのずれｎは１ビットであるものと仮定する。
【００６８】
図４（Ａ）に示すように、送信器１０は鍵の素となる原乱数を量子チャネル３０を通して受信器２０へ送信し、それと並行してフレームパルスＦＰを同期チャネル４０を通して受信器２０へ送信する。ここでは、あるフレームパルスＦＰTX(i)と次のフレームパルスＦＰTX(i+1)までの間（フレーム番号＃ｉ）にＮビットの原乱数“101110100…1”を送信したものとする。
【００６９】
図４（Ｂ）に示すように、量子チャネル３０を伝送する単一光子パルス列は、伝送路の損失により途中で消失するため、受信器２０は原乱数の一部のみを受信し、その受信ビット列を生鍵データＫRAWとしてメモリ２０６に格納する。同期チャネル４０を伝送してきたフレームパルスＦＰは通常の光レベルのパルス列であるからタイミング再生可能である。ここでは、ある受信フレームパルスＦＰRX(i)と次の受信フレームパルスＦＰRX(i+1)までの間（フレーム番号＃ｉ）に、生鍵データＫRAW“01-1-100…1”を受信したものとし、そのうち「−」で示すビット番号の光子は検出できなかったものとする。
【００７０】
受信器２０は、生鍵のビット番号１，２，４，６・・・Ｎと、これらの受信基底情報（ＤあるいはＲ）と、当該フレーム番号＃ｉとを送信器１０に通知する（図３のステップＲＸＳＴ１−２）。送信器１０では、図４（Ａ）に示すようにフレーム番号＃ｉのビット列“101110100…1”がメモリ１０５に格納されている。送信器１０の鍵生成部１０５は、受信器２０から受信した生鍵のビット番号１，２，４，６・・・Ｎと一致するビット“10-1-0100…1”を特定し（図３のステップＴＸＳＴ１−２）、先ず、その特定されたビット番号の送信基底情報と受信器２０から通知された受信基底情報とを照合する。そして、基底が一致した有効ビット番号のみを受信器２０に通知する（図３のステップＴＸＳＴ１−３）。たとえばビット番号１，８等の基底が不一致とすれば、有効ビット番号２，４，６，７・・・Ｎが受信器２０へ通知される。
【００７１】
受信器２０では、有効ビット番号２，４，６，７・・・Ｎを受け取ると、その中からＭビットをランダムに選択して送信器１０へ送信する（図３のステップＲＸＳＴ１−４）。仮にＭ個の有効ビット番号２，４，６，７・・・Ｎ−１のデータ“-1-1-10-…1-”が送信器１０へ送信されたとすると（図３のステップＲＸＳＴ１−４）、送信器１０では、受信したＭビットデータ“-1-1-10-…1-”と、対応するビット番号の原乱数“-0-1-01-…1-”とを照合して誤り率ＲERRを計算する（図３のステップＴＸＳＴ１−４）。この場合、生鍵データＫRAWは原乱数に対してずれていると仮定しているので、誤り率ＲERRは５０％程度と高くなるはずである。
【００７２】
したがって、鍵生成部１０５は受信ビット番号を１ビットだけ一方向にシフト（＋１）させる（ステップＴＸＳＴ１−６ａ）。鍵生成部１０５は、このシフトされた受信ビット番号に対応する受信基底情報を用いて送信時の送信基底情報と比較し、基底が一致した有効ビット番号のみを受信器２０に通知する（図３のステップＴＸＳＴ１−３）。
【００７３】
受信器２０では、送信器１０から通知された新たな有効ビット番号から生鍵の有効ビットを特定し（図３のステップＲＸＳＴ１−３）、有効ビットからＭビットをランダムに抽出して送信器１０へ通知する（図３のステップＲＸＳＴ１−４）。この場合、受信ビット番号シフトによる新たな有効ビット番号が通知されるので、受信器２０における受信フレーム＃ｉ内に入る新たな生鍵データＫ+1は、図４（Ｂ）に示すように、“#01-1-100…1”となる。この新たな生鍵データＫ+1は、この例では、図４（Ａ）に示す原乱数のビットと一致している。この中からＭビットが選択されて送信器１０へ送信され、誤り率ＲERRが計算されるのであるから、誤り率ＲERRは１０％以下に低下するはずである。その他の受信ビット番号シフト＋２、＋３、−１・・・も原乱数に対してずれているので、誤り率ＲERRは５０％程度と高くなる。
【００７４】
このように送信器１０の鍵生成部１０５は、受信ビット番号を順次シフトさせながら、誤り率ＲERRがしきい値より小さくなった時の有効ビットを選択鍵として蓄積する。受信器２０の鍵生成部２０５は、送信器１０から誤り率ＲERRがしきい値より小さくなった旨の通知を受けると、その時の有効ビットを選択鍵として蓄積する。こうして選別鍵の蓄積量が所定サイズＢに到達する毎にファイル化し、ファイル化された選別鍵がメモリ１０６および２０６に順次蓄積される。
【００７５】
なお、図３に示す例では、送信器１０の鍵生成部１０５が受信ビット番号シフトを行って誤り率ＲERRがしきい値ＲTHより小さくなるビット番号配置を探索したが、同様のビット番号シフトを受信器２０の鍵生成部２０５が実行してもよい。ただし、この場合には、図３のステップＲＸＳＴ１−６で誤り率ＲERRがしきい値ＲTH以上であると判断された時、生鍵データのビット番号を１ビットシフトさせた後、ステップＲＸＳＴ１−２へ戻って新たな受信ビット番号および受信基底情報を送信器１０へ通知する。また、ステップＲＸＳＴ１−６での判定結果を送信器１０へ通知し、それを受けた送信器１０の鍵生成部１０５はステップＴＸＳＴ１−２へ戻って受信器２０からの新たな受信ビット番号および受信基底情報を受信する。その他の処理は、図３で説明したとおりである。
【００７６】
３．エラー訂正・秘匿増強・ファイル共有処理
図５は図２におけるエラー訂正・秘匿増強・ファイル共有処理により暗号鍵を共有する手順を示すフローチャートである。ここでは送信器１０および受信器２０の間のデータ通信を含めてそれぞれの手順が図示されている。
【００７７】
３．１）エラー訂正処理
まず、受信器２０では、選別鍵ＫＳRがファイル単位でメモリ２０６に蓄積されている。この段階の選別鍵は、通信誤りを含むため、送信器１０と受信器２０とで全く同じ乱数列とは限らない。そこで、鍵生成部２０５は、メモリ２０６から現時点で最も古い選別鍵ファイルＫＳRを読み出し（ステップＲＸＳＴ２−１）、エラー訂正を行う（ステップＲＸＳＴ２−２）。同様に、送信器１０では、選別鍵ＫＳTがファイル単位でメモリ１０６に蓄積されている。鍵生成１０５は、メモリ１０６から現時点で最も古い選別鍵ファイルＫＳTを読み出し（ステップＴＸＳＴ２−１）、エラー訂正を行う（ステップＴＸＳＴ２−２）。
【００７８】
エラー訂正が完了したら、鍵生成１０５は訂正後の鍵データからランダムにＬビットを抽出し、ビット番号と共にデータ通信チャネル５０を介して受信器２０に送信する（ステップＴＸＳＴ２−３）。受信器２０の鍵生成部２０５も送信器１０とほぼ同時にエラー訂正処理を終了しているので、送信器１０から受信したＬビットと、自身の対応するＬビット鍵データとを比較して誤り率を計算する（ステップＲＸＳＴ２−３）。比較に使用したＬビットを消去した後（ステップＲＸＳＴ２−４）、鍵生成部２０５はエラーが残っているか否かを判定し（ステップＲＸＳＴ２−５）、誤りが残っていれば、その旨を送信器１０に通知してエラー訂正処理を再度実行する（ステップＲＸＳＴ２−２）。
【００７９】
送信器１０でも同様に、開示したＬビットを消去した後（ステップＴＸＳＴ２−４）、鍵生成部１０５は、エラーが残存している旨の通知を受信器２０から受信したか否かを判定し（ステップＴＸＳＴ２−５）、エラーが残っていれば、エラー訂正処理を再度実行する（ステップＴＸＳＴ２−２）。
【００８０】
送信器１０および受信器２０において、エラー訂正処理（ＴＸＳＴ２−２〜ＴＸＳＷＴ２−５、ＲＸＳＴ２−２〜ＲＸＳＴ２−５）は、エラーがなくなるまで繰り返される。このようにして得られた鍵データは、初めて送信器１０と受信器２０との間で一致した乱数データとなる。
【００８１】
３．２）秘匿増強処理
次に、受信器２０の鍵生成部２０５は秘匿増強処理を行う（ステップＲＸＳＴ３）。秘匿増強処理では別途用意した乱数を用いて、誤り訂正後の選別鍵をシャッフルし、最終鍵Ｋを得る。送信器１０でも同様に、鍵生成部１０５は秘匿増強処理を行い（ステップＴＸＳＴ３）、最終鍵Ｋを得る。鍵生成部１０５および２０５で実行される秘匿増強処理は、同じ秘匿増強処理アルゴリズムを用いる。上述したように、エラー訂正後の選別鍵は送信器１０と受信器２０で一致した乱数データであるから、送信器１０および受信器２０が同じ秘匿増強処理アルゴリズムで秘匿増強処理をそれぞれ独立に実行しても、同じ最終鍵Ｋを生成しているはずである。
【００８２】
なお、秘匿増強処理では盗聴者に漏洩した情報量を推定して、シャッフル中にエラー訂正後の選別鍵の一部を捨てる。したがって、エラー訂正および秘匿増強処理により生成された最終鍵Ｋは、選別鍵ファイルＫＳTおよびＫＳRのデータサイズと比較して小さくなっている。
【００８３】
このようにして、送信器１０と受信器２０との間でほぼ同時に最終鍵Ｋが同期生成され、それぞれメモリ１０６および２０６に蓄積される。このとき、送信器１０と受信器２０とはそれぞれ独立に最終鍵Ｋを生成したが、以上の手順を踏まえることによって、両方の最終鍵Ｋが互いに同じ乱数列であることが保証される。
【００８４】
３．３）ファイル共有処理
次に、ファイル共有処理により、上述した手順で順次生成された最終鍵Ｋを送信器１０と受信器２０との間で一対の暗号鍵および復号鍵として対応付ける。上述したワンタイムパッド暗号のような暗号化方式では、送信側である乱数列Ｋを用いて暗号化した時には、受信側では同じ乱数列Ｋを用いて復号する必要があるからである。ここでは、送信器１０と受信器２０との間でそれぞれ独立に生成された最終鍵Ｋを順次対応付ける処理をファイル共有処理（あるいはファイル同期処理）という。
【００８５】
まず、受信器２０の鍵管理部２０７は、生成された最終鍵Ｋの番号および種類（暗号用／復号用）を決定し（ＲＸＳＴ４−１）、ＨＤＤ２０８に格納する（ＲＸＳＴ４−２）。ＨＤＤ２０８に格納された暗号鍵／復号鍵を蓄積鍵という。また、鍵管理部２０７は、最終鍵Ｋの番号および種類をデータ通信チャネル５０を介して送信器１０に通知する。最終鍵Ｋの番号および種類の決定手法は、次の暗号鍵管理で詳しく述べる。最終鍵Ｋの共有処理が終わったら、ステップＲＸＳＴ２−１へ戻って次の選別鍵ファイルの処理を行う。
【００８６】
送信器１０の鍵管理部１０７は、生成された最終鍵Ｋの番号および種類（暗号用／復号用）を受信器２０から受信し（ＴＸＳＴ４−１）、その番号及び種類に従ってＨＤＤ１０８に最終鍵Ｋを蓄積鍵として格納する（ＴＸＳＴ４−２）。最終鍵Ｋの共有処理が終わったら、ステップＴＸＳＴ２−１へ戻って次の選別鍵ファイルの処理を行う。
【００８７】
このようなファイル共有処理により、同期生成された最終鍵Ｋを送信器１０と受信器２０との間で一対の暗号鍵／復号鍵として対応付けて蓄積することができる。従って、たとえばワンタイムパッド暗号の場合のように、送信器１０が暗号化に用いた暗号鍵は受信器２０では必ず復号のために用い、受信器２０が暗号化に用いた暗号鍵は送信器１０では必ず復号のために用いることが可能となる。
【００８８】
なお、図５の例では、受信器２０の鍵管理部２０７が最終鍵Ｋの番号および種類（暗号用／復号用）を決定して送信器１０へ通知したが、逆に送信器１０の鍵管理部１０７が最終鍵Ｋの番号および種類（暗号用／復号用）を決定して受信器２０へ通知してもよい。
【００８９】
４．暗号鍵管理
量子暗号システムでは、このように生成され蓄積された最終鍵を用いて暗号化通信を行うことができる。暗号化方式にワンタイムパッド暗号を用いるとすれば、ある最終鍵Ｋを送信器１０のＨＤＤ１０８に暗号鍵として、受信器２０のＨＤＤ２０８に復号鍵として格納する。この場合、送信器１０の制御部１０４は、ＨＤＤ１０８に格納された暗号鍵Ｋを用いて送信すべきデータを暗号化し、データ通信ユニット１０３からデータ通信チャネル５０を通して受信器２０へ送信する。受信器２０の制御部２０４は、データ通信ユニット２０３で暗号化データを受信すると、ＨＤＤ２０８に格納された復号鍵Ｋを用いて受信データを復号化する。
【００９０】
ワンタイムパッド暗号では、一度使用した暗号鍵は二度と使用されずに捨てられる。よって、ＨＤＤ１０８および２０８に格納されている蓄積鍵は、鍵生成部１０５および２０５により生成されて増加すると共に暗号化通信により消費されて減少する。すなわち、ＨＤＤ１０８の蓄積鍵の蓄積量とＨＤＤ２０８の蓄積鍵の蓄積量とは、増減を繰り返して時間的に常に一致しているというわけではない。
【００９１】
また、ワンタイムパッド暗号は必ず鍵を使い捨てるため、送信器１０で暗号化に使用した鍵は、受信器２０では復号化に使用しなければならない。反対に、受信器２０で暗号化に使用した鍵は、送信器１０では復号化に使用しなければならない。言い換えれば、送信器１０と受信器２０が同時に暗号化処理を行う場合、送信器１０が暗号化に使用した鍵は、受信器２０ではそれと対になる鍵を別のデータの暗号化に用いることができない。したがって、ＨＤＤ１０８内の蓄積鍵は鍵管理部１０７によって、ＨＤＤ２０８内の蓄積鍵は鍵管理部２０７によって、それぞれ管理される必要がある。
【００９２】
図６（Ａ）は本実施形態におけるＨＤＤ内の蓄積鍵の管理イメージを示す模式図であり、図６（Ｂ）は鍵管理部の最終鍵割当制御の一例を示すフローチャートである。図６（Ａ）に示すように、ＨＤＤ内の蓄積鍵は、暗号鍵と復号鍵とに分けて管理される。
【００９３】
先ず、受信器２０の鍵管理部２０７は、暗号鍵および復号鍵のそれぞれの生成量および消費量からＨＤＤ２０８に蓄積されるそれぞれの蓄積量ＫENCおよびＫDECと、上述した鍵生成プロセスにより生成された鍵生成量とを監視する（ステップＳＴ６０１）。上述したように新たな最終鍵が生成されると、鍵管理部２０７はその時点での暗号鍵と復号鍵の蓄積量の差を計算し（ステップＳＴ６０２）、新たな最終鍵を蓄積量の小さい方に優先的に割り当てる（ステップＳＴ６０３）。また、ナンバリングは最終鍵が生成された順序に従って系統的に行いＨＤＤ２０８に格納される。受信器２０の鍵管理部２０７が決定した最終鍵の種類 (暗号鍵または復号鍵)および鍵番号はデータ通信チャネル５０を介して送信器１０に通知される。
【００９４】
送信器１０の鍵管理部１０７も同様に、暗号鍵および復号鍵のそれぞれの生成量および消費量からＨＤＤ１０８に蓄積されるそれぞれの蓄積量ＫENCおよびＫDECと、上述した鍵生成プロセスにより生成された鍵生成量とを監視する（ステップＳＴ６０１）。上述したように新たな最終鍵が生成されると、鍵管理部１０７はその時点での暗号鍵と復号鍵の蓄積量の差を計算し（ステップＳＴ６０２）、新たな最終鍵を蓄積量の小さい方に優先的に割り当てる（ステップＳＴ６０３）。また、ナンバリングは最終鍵が生成された順序に従って系統的に行いＨＤＤ１０８に格納される。鍵生成プロセスにより最終鍵が得られると、ほどなくして受信器２０からデータ通信チャネル５０を介して最終鍵の種類および鍵番号を知らされるので、送信器１０の鍵管理部１０７は、そのとき生成されている最終鍵の種類を、受信器とは異なる種類の鍵に決定し、同じ番号を割り当てて、ＨＤＤ１０８に格納する。
【００９５】
このように、量子ユニット１０１から量子ユニット２０１へ原乱数情報を乗せた微弱光信号を送信し続けることで、鍵生成部１０５および鍵生成部２０５は共通の最終鍵をそれぞれ生成し続け、鍵管理部１０７および鍵管理部２０７は、それら共有鍵をＨＤＤ１０８およびＨＤＤ２０８にそれぞれ暗号鍵／復号鍵として蓄積し続けると共に、暗号化通信が実行される度にそれらを暗号鍵／復号鍵として消費する。
【００９６】
従って、一方向の暗号化通信の頻度が反対方向よりも多くなると、送信側と受信側とで暗号鍵および復号鍵の蓄積量に偏りが生じることになるので、鍵管理部１０７および２０７は、蓄積量を常にモニタして、蓄積量の小さい方に生成された鍵を優先的に割り当てることで、このような蓄積量の偏りを回避している。たとえば、送信器１０から受信器２０へ暗号化通信が頻繁に発生すると、送信器１０の暗号鍵の蓄積量と、受信器２０の復号鍵の蓄積量とがそれぞれ減少する。そこで、送信器１０の鍵管理部１０７は、鍵生成部１０５により生成された鍵を暗号鍵としてＨＤＤ１０８に格納し、受信器２０の鍵管理部２０７は、鍵生成部２０５により生成された鍵を復号鍵としてＨＤＤ２０８に格納する。
【００９７】
なお、量子暗号システムを立ち上げたとき、即ちまだ最終鍵を生成していない段階で、ＨＤＤ１０８および２０８に格納している蓄積鍵が一致していないと、その後の鍵管理に支障をきたす。そこで、送信器１０の鍵管理部１０７と受信器２０の鍵管理部２０７とは、電源投入後、データ通信チャネル５０を介してそれぞれの持つ最も古い番号の暗号鍵および復号鍵を相互に確認し、一致していない場合は、より古い番号の鍵を廃棄し、送受信側で蓄積鍵が一致するように制御してもよい。こうすることで初期状態のＨＤＤの蓄積鍵の内容を一致させることができる。ただし、この制御方式を有効にするためには、暗号鍵を使用する、即ち蓄積鍵を消費する場合、蓄積鍵の古いものから順に使用する必要がある。
【００９８】
また、送信器１０および受信器２０がそれぞれ持つ最も古い番号の暗号鍵および復号鍵が相互に一致していない場合、ＨＤＤの蓄積鍵をすべて消去することもできる。このようにＨＤＤを初期化することで、送信器１０および受信器２０の蓄積鍵が存在しないということで両者を一致させることができるからである。
【００９９】
あるいは、量子暗号システムを終了するときに、ＨＤＤ１０８および２０８に蓄積されている蓄積鍵をすべて消去してもよい。この場合、次にシステムを立ち上げたとき、ＨＤＤ１０８および２０８内の蓄積鍵の内容は、蓄積鍵がないということで一致している。したがって、この初期化方式では、暗号鍵を使用する際に蓄積鍵を古いものから順に使用する必要はない。ただし、暗号鍵を任意の順序で使用することを可能にするには、暗号化通信に先立って通信パケットのヘッダに蓄積鍵の鍵番号を付与して相手側に使用した鍵を通知する必要がある。
【０１００】
上述した実施形態によれば、１つの量子チャネル３０を用いて微弱光パルスを送信したが、本発明はこれに限定されるものではなく、複数の量子チャネルを用いた量子暗号システムにも適用可能である。
【産業上の利用可能性】
【０１０１】
本発明は、量子暗号鍵配布方式の如何にかかわらず、送信器と受信器が独立に計算処理を行なって暗号鍵を生成し管理する暗号システム一般に適応可能である。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１実施形態による量子暗号システムのブロック図である。
【図２】本実施形態による暗号鍵生成方法を示す概略的フローチャートである。
【図３】図２におけるビット・基底照合処理により選別鍵を共有する手順を示すフローチャートである。
【図４】受信ビット番号シフトおよび受信ビット照合について説明するための模式的なタイムチャートであり、（Ａ）は送信器が送信する原乱数ビット列を示し、（Ｂ）は受信器が受信した生鍵ビット列およびそのビット番号シフトを示す。
【図５】図２におけるエラー訂正・秘匿増強・ファイル共有処理により暗号鍵を共有する手順を示すフローチャートである。
【図６】（Ａ）は本実施形態におけるＨＤＤ内の蓄積鍵の管理イメージを示す模式図であり、（Ｂ）は鍵管理部の最終鍵割当制御の一例を示すフローチャートである。
【図７】代表的な暗号鍵の生成過程を示すフローチャートである。
【符号の説明】
【０１０３】
１０  送信器
２０  受信器
３０  量子チャネル
４０  同期チャネル
５０  データ通信チャネル
１０１  量子ユニット
１０２  同期ユニット
１０３  データ通信ユニット
１０４  制御部
１０５  鍵生成部
１０６  メモリ
１０７  鍵管理部
１０８  ハードディスクドライブ
１０９  フレームパルスカウンタ
１１０  フレームパルス生成部
２０１  量子ユニット
２０２  同期ユニット
２０３  データ通信ユニット
２０４  制御部
２０５  鍵生成部
２０６  メモリ
２０７  鍵管理部
２０８  ハードディスクドライブ
２０９  フレームパルスカウンタ
【図１】
0005424008.tif 000002
【図２】
0005424008.tif 000003
【図３】
0005424008.tif 000004
【図４】
0005424008.tif 000005
【図５】
0005424008.tif 000006
【図６】
0005424008.tif 000007
【図７】
0005424008.tif 000008