(57)【要約】【課題】  第１当事者と第２当事者とに、共有秘密情報を、第三者による解読不能に取得させる方法を提供する。【解決手段】  この方法は、Ｘがある数値列、ＮＡが第１当事者にかかわるランダム列であるときに、数値列Ａ＝Ｘ＋ＮＡが、第１当事者によって得られるステップと、ＮＢが第２当事者にかかわるランダム列であるときに、数値列Ｂ＝Ｘ＋ＮＢが、第２当事者によって得られるステップと、Ａ、Ｂが、数値列Ａ、Ｂに等しいか、または数値列Ａ、Ｂから導出されるか、または数値列Ａ、Ｂを用いて導出される、離散数値から成る数値列であるときに、数値列Ａ、Ｂ中の対応し合う数値ａｉ、ｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第１当事者および第２当事者によって遂行されるステップとを含んでおり、共有秘密情報は、数値列Ａ、Ｂ中の一致し合う数値に等しいか、または一致し合う数値から導出されるか、または一致し合う数値を用いて導出される。【選択図】図５
2015522998.tif 000002
【特許請求の範囲】
【請求項１】
第１当事者と第２当事者とが、共有秘密情報を得ることを可能にするための方法であって、
Ｘが、１つの数値列であり、ＮＡが、前記第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、前記第１当事者によって得られるステップと、
ＮＢが、前記第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、前記第２当事者によって得られるステップと、
ＡおよびＢが、それぞれ前記数値列ＡおよびＢに等しいか、または前記数値列ＡおよびＢから導出される、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、該数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、前記第１当事者および第２当事者によって遂行されるステップとを含む方法において、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値と等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出される方法。
【請求項２】
前記データ一致処理は、              
前記第１当事者と第２当事者とのうちの少なくとも一方が、１つ以上の数値を取得するように、前記第１当事者と第２当事者との間で１つ以上のメッセージを交換するステップであって、前記取得される数値のうちの少なくとも１つは、前記数値ａｉに等しいか、または前記数値ａｉから導出され、前記取得される数値のうちの少なくとも１つは、前記数値ｂｉに等しいか、または前記数値ｂｉから導出されるステップと、
比較演算を含む１つ以上の数学操作が、前記第１当事者と第２当事者とのうちの少なくとも一方によって遂行されるステップであって、前記数値ａｉとｂｉとの一致は、前記比較演算の比較結果から特定されるステップとを
含んでいる、請求項１に記載の方法。
【請求項３】
前記データ一致処理は、
ｐが、前記第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値であり、ｆ１が、あらかじめ定められた関数であるとしたときに、数値Ｔ１＝ｆ１（ｐ）が、前記Ｐ当事者から、前記第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、
ｑが、前記Ｑ当事者の数値列中の、数値列中の位置において前記数値ｐに対応する数値であるとしたときに、前記数値Ｔ１、または前記数値Ｔ１から導出される数値と、前記数値ｑ、または前記数値ｑから導出される数値とが、前記Ｑ当事者によって比較される比較ステップとが、
前記Ｐ当事者およびＱ当事者によって遂行されるステップを含んでいる、請求項１または２に記載の方法。
【請求項４】
ｆ１１が、前記関数ｆ１の逆関数であるとしたときに、前記比較ステップは、前記数値Ｔ１と数値ｆ１（ｑ）とを比較するステップと、数値ｆ１１（Ｔ１）と前記数値ｑとを比較するステップとのうちの少なくとも一方を含んでいる、請求項３に記載の方法。
【請求項５】
前記関数ｆ１は、ハッシュ関数である、請求項３または４に記載の方法。
【請求項６】
前記データ一致処理は、        
ｐが、前記第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値であり、ｆ１が、あらかじめ定められた関数であるとしたときに、数値Ｔ１＝ｆ１（ｐ）が、前記Ｐ当事者から、前記第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、
ｆ２が、あらかじめ定められた関数であり、ｑが、前記Ｑ当事者の数値列中の、数値列中の位置において前記数値ｐに対応する数値であるとしたときに、数値Ｔ２＝ｆ２（Ｔ１,ｑ）が、前記Ｑ当事者によって計算されるステップとが、
前記Ｐ当事者およびＱ当事者によって遂行されるステップを含んでおり、
前記比較ステップは、前記数値Ｔ２とあらかじめ定められた数値とが、前記Ｐ当事者とＱ当事者とのうちの少なくともどちらかによって比較されるステップを含んでいる、請求項３に記載の方法。
【請求項７】
ｒがランダムな数値であり、数１がモジュロ２加算を意味するとしたときに、前記数値ｆ１（ｐ）は、数２で与えられる、請求項６に記載の方法。
【数１】
2015522998.tif 000030
【数２】
2015522998.tif 000031
【請求項８】
ｆ３が、あらかじめ定められた関数であるとしたときに、前記方法は、さらに、数値Ｔ３＝ｆ３（ｒ）が、前記Ｐ当事者から前記Ｑ当事者に送信されるステップを含んでおり、
前記数値Ｔ２は、数３で与えられ、前記比較ステップは、前記数値Ｔ３とハッシュ値Ｈ（Ｔ２）とが、前記Ｑ当事者によって比較されるステップを含んでいる、請求項７に記載の方法。
【数３】
2015522998.tif 000032
【請求項９】
ｆ３が、あらかじめ定められた関数であるとしたときに、前記方法は、さらに、数値（数４）が、前記Ｑ当事者から前記Ｐ当事者に送信されるステップを含んでおり、
前記比較ステップは、前記数値ｆ３（ｒ）と前記数値Ｔ２とが、前記Ｐ当事者によって比較されるステップを含んでいる、請求項７に記載の方法。
【数４】
2015522998.tif 000033
【請求項１０】
前記関数ｆ３は、ハッシュ関数である、請求項８または９に記載の方法。
【請求項１１】
前記データ一致処理は、
ｐ１が、前記第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値ｐの第１のビットであり、rがランダムビットであり、数１がモジュロ２加算を表すとしたときに、ビット値（数５）が、前記Ｐ当事者によって計算されるステップと、
ｐ２が、前記数値ｐの第２のビットであるとしたときに、ビット値（数６）が、前記Ｐ当事者によって計算されるステップと、
前記ビット値ｍ１およびｍ２が、前記Ｐ当事者から、前記第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、
ｑ１が、前記Ｑ当事者の数値列中の、数値列中の位置において前記数値ｐに対応する数値ｑの、ビット位置において前記第１のビットｐ１に対応する第１のビットであるとしたときに、ビット値（数７）が、前記Ｑ当事者によって計算されるステップと、
ｑ２が、前記数値ｑの、ビット位置において前記第２のビットｐ２に対応する第２のビットであるとしたときに、ビット値（数８）が、前記Ｑ当事者によって計算されるステップと、
数値（数９）と数値０とが比較されるステップとが、
前記Ｐ当事者およびＱ当事者によって遂行されるステップを含んでいる、請求項１または２に記載の方法。
【数５】
2015522998.tif 000034
【数６】
2015522998.tif 000035
【数７】
2015522998.tif 000036
【数８】
2015522998.tif 000037
【数９】
2015522998.tif 000038
【請求項１２】
データ一致処理が遂行される前記ステップは、
自己逆演算を用いて、前記第１当事者と第２当事者とのうちの一方であるＰ当事者に対応する数値列Ａ／Ｂ中の前記数値ａｉ／ｂｉと、ランダムな数値とを結合することによって、第１の結合値が、前記Ｐ当事者によって生成されるサブステップと、
前記第１の結合値が、前記Ｐ当事者から、前記第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるサブステップと、
自己逆演算を用いて、前記第１の結合値と、前記Ｑ当事者に対応する数値列Ｂ／Ａ中の前記数値ｂｉ／ａｉとを結合することによって、第２の結合値が、前記Ｑ当事者によって生成されるサブステップと、
前記第２の結合値に対して、第１のハッシュ値が、前記Ｑ当事者によって生成されるサブステップと、
前記第１のハッシュ値が、前記Ｑ当事者から、前記Ｐ当事者に送信されるサブステップと、
前記ランダムな数値に対して、第２のハッシュ値が、前記Ｐ当事者によって生成されるサブステップと、
前記第１のハッシュ値と前記第２のハッシュ値とが、前記Ｐ当事者によって比較されるサブステップと、
前記比較の結果に応じた一致信号が、前記Ｐ当事者によって送信されるサブステップと、
前記一致信号によって一致が示されると、前記数値列ＡおよびＢ中の前記数値ａｉおよびｂｉのうちの一致し合う数値のみが、前記Ｐ当事者およびＱ当事者によって保持され続けるサブステップとが、
前記Ｐ当事者およびＱ当事者によって、前記数値ａｉおよびｂｉから成る数値対の各々に対して遂行されるステップを含んでいる、請求項１または２に記載の方法。
【請求項１３】
前記自己逆演算は、モジュロ２加算であり、前記ランダムな数値は、前記数値ａｉ／ｂｉと同じサイズを有するランダムな二進値である、請求項１２に記載の方法。
【請求項１４】
前記第１および第２のハッシュ値は、前記第１および第２のハッシュ値の計算がなされた数値より少ないビットを有する、請求項１２または１３に記載の方法。
【請求項１５】
前記データ一致処理は、前記数値列ＡおよびＢのそれぞれの数値ａｉおよびｂｉから成る数値対の各々に対応するランダムな数値ｒｉを用い、前記共有秘密情報は、前記数値列ＡおよびＢのそれぞれの数値ａｉおよびｂｉのうちの一致し合う数値に対応する前記ランダムな数値ｒｉに基づいて導出される、請求項１〜１４のいずれか１つに記載の方法。
【請求項１６】
前記データ一致処理は、照合手続きと逆方向照合手続きとのうちの少なくとも一方を含んでいる、請求項１〜１５のいずれか１つに記載の方法。
【請求項１７】
前記数値列Ｘを、ある信号中に符号化するステップ、および数値列Ｘの符号化が行われた該信号を送信するステップを、さらに含んでいる、請求項１〜１６のいずれか１つに記載の方法。
【請求項１８】
前記数値列Ｘ中の各数値が、前記第１当事者によって送信される前記信号の量子状態中に符号化される、請求項１７に記載の方法。
【請求項１９】
前記数値列Ｘ中の各数値が、前記信号の振幅と位相とのうちの少なくとも一方の中に符号化される、請求項１７または１８に記載の方法。
【請求項２０】
前記数値列Ｘの符号化に用いられる前記信号は、マイクロ波信号である、請求項１７〜１９のいずれか１つに記載の方法。
【請求項２１】
前記信号は、前記第１当事者によって、前記数値列Ｘの符号化に用いられて、送信される、請求項１７〜２０のいずれか１つに記載の方法。
【請求項２２】
前記信号は、前記第１当事者および第２当事者以外の当事者によって、前記数値列Ｘの符号化に用いられて、送信される、請求項１７〜２０のいずれか１つに記載の方法。
【請求項２３】
数値列Ｂが第２当事者によって得られる前記ステップは、前記数値列Ｘの符号化に用いられている前記信号が、前記第２当事者によって受信されるステップ、および符号化されている前記数値列Ｘの各数値が、前記第２当事者によって検出されるステップを含んでいる、請求項１７〜２０のいずれか１つに記載の方法。
【請求項２４】
数値列Ａが第１当事者によって得られる前記ステップは、前記数値列Ｘの符号化に用いられている前記信号が、前記第１当事者によって受信されるステップ、および符号化されている前記数値列Ｘの各数値が、前記第１当事者によって検出されるステップを含んでいる、請求項１７〜２３のいずれか１つに記載の方法。
【請求項２５】
前記ランダム列ＮＢは、前記第２当事者の検出器に関連する検出器ノイズを含んでおり、前記ランダム列ＮＡは、前記第１当事者の検出器に関連する検出器ノイズを含んでいる、請求項１〜２４のいずれか１つに記載の方法。
【請求項２６】
前記数値列Ｘは、ランダムな数値列を含んでいる、請求項１〜２５のいずれか１つに記載の方法。
【請求項２７】
前記数値列Ｘは、ガウス分布値から成る数値列を含んでいる、請求項２６に記載の方法。
【請求項２８】
前記数値列Ｘは、あらかじめ定められた数値列を含んでいる、請求項１〜２７のいずれか１つに記載の方法。
【請求項２９】
前記数値列Ｘの各数値は連続値である、請求項１〜２８のいずれか１つに記載の方法。
【請求項３０】
前記第１当事者および第２当事者によって、それぞれ前記数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換されるステップを、さらに含んでいる、請求項１〜２９のいずれか１つに記載の方法。
【請求項３１】
数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換される前記ステップは、前記離散値の数値列ＡおよびＢ中の二進数値を得るために、前記数値列ＡおよびＢ中の、連続値である各数値ａｉおよびｂｉに、あらかじめ定められた離散化操作を適用することによって、前記数値列ＡおよびＢにそれぞれ対応する、二進数値から成る数値列ＡおよびＢが、それぞれ前記第１当事者および第２当事者によって得られるステップを含んでおり、前記離散化操作によって、前記連続値である各数値ａｉおよびｂｉの範囲が、対応する二進数値にマッピングされる、請求項３０に記載の方法。
【請求項３２】
数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換される前記ステップは、データスライシングが行われるステップを含んでいる、請求項３０または３１に記載の方法。
【請求項３３】
Ｓｉ（ｘ）が、入力された連続値ｘから生じる二進値のｉ番目のビットであり、ｎが、集合（０、１、…、２ｍ−１−１）から選択される任意の整数であり、（τ０、τ１、…、τｐ）が、ｐ個の部分的範囲を定めるための、（ｐ＋１）個の固定したセパレータ値であり、τ０＜τ１＜…＜τｐであるとしたときに、前記データスライシングは、次の式（数１０）に基づいて行われる、請求項３２に記載の方法。
【数１０】
2015522998.tif 000039
【請求項３４】
前記数値列ＡとＢとの間の相関を高めるために、誤り訂正処理は、前記第１当事者および第２当事者によって遂行されるステップを、さらに含んでいる、請求項１〜３３のいずれか１つに記載の方法。
【請求項３５】
誤り訂正処理が遂行される前記ステップは、前記数値列ＡおよびＢ中の対応し合う数値ａｉとｂｉとの間で、前記誤り訂正処理は、前記第１当事者および第２当事者によって遂行されるステップを含んでおり、前記誤り訂正処理は、あらかじめ定められた量までの誤りを訂正することが可能である、請求項３４に記載の方法。
【請求項３６】
前記誤り訂正処理は、誤り数が、前記あらかじめ定められた量以下である場合には、対応し合う前記数値ａｉとｂｉとの間のいかなる誤りも訂正し、誤り数が、前記あらかじめ定められた量を超過している場合には、対応し合う前記数値ａｉとｂｉとの間の誤りを増加させるようになっている、請求項３５に記載の方法。
【請求項３７】
前記あらかじめ定められた量はｑビットである、請求項３６に記載の方法。
【請求項３８】
前記誤り訂正処理は、
前記第１当事者および第２当事者のうちの一方の当事者に対応する数値列Ａ／Ｂ中の数値ａｉ／ｂｉに基づく誤り訂正情報が、該一方の当事者によって生成されるサブステップと、該誤り訂正情報が、前記第１当事者および第２当事者のうちの他方の当事者に送信されるサブステップと、
前記誤り訂正情報が、前記他方の当事者によって、前記他方の当事者に対応する数値列Ｂ／Ａ中の、前記数値ａｉ／ｂｉに対応する数値ｂｉ／ａｉに適用されるサブステップとが、
前記対応し合う数値ａｉおよびｂｉから成る数値対の各々に対して遂行されるステップを含んでいる、請求項３４〜３７のいずれか１つに記載の方法。
【請求項３９】
前記誤り訂正情報は、系統誤差訂正符号の誤差訂正ビットを含んでいる、請求項３８に記載の方法。
【請求項４０】
前記誤り訂正情報は、ＢＣＨ符号のパリティビットを含んでいる、請求項３８または３９に記載の方法。
【請求項４１】
前記誤り訂正情報は、前記誤り訂正情報の基になっている数値より少ないビットしか含んでいない、請求項３８〜４０のいずれか１つに記載の方法。
【請求項４２】
前記数値列ＡおよびＢ中の各数値ａｉおよびｂｉにおいて、あらかじめ定められた１つ以上のビット位置のビットが保持され続け、残りのビットが破棄されるステップを、さらに含んでいる、請求項１〜４１のいずれか１つに記載の方法。
【請求項４３】
相関性が最も低い側の１つ以上のビット、または相関性が最も高い側の１つ以上のビットが、保持され続けるステップを含んでいる、請求項４２に記載の方法。
【請求項４４】
最下位ビット側のｐ個のビットだけ、または最上位ビット側のｐ個のビットだけが、保持され続けるステップを含んでいる、請求項４２または４３に記載の方法。
【請求項４５】
保持され続けたビットを有する数値ａｉ、ｂｉを用いて、前記データ一致処理が繰り返されるステップを、さらに含んでいる、請求項４２〜４４のいずれか１つに記載の方法。
【請求項４６】
前記数値列ＡおよびＢ中の各数値ａｉおよびｂｉを、該数値ａｉおよびｂｉから導出されるパリティ値で置き換えるステップを、さらに含んでいる、請求項４５に記載の方法。
【請求項４７】
新しい数値ａｉ、ｂｉを形成するために、前記数値列ＡおよびＢの各々のパリティビットを、一連の、ｐビットの集まりに分割するステップと、
請求項４２〜４６のいずれか１つに記載のステップを繰り返すステップとを、
さらに含んでいる、請求項４６に記載の方法。
【請求項４８】
前記共有秘密情報から秘密鍵を生成するステップを、さらに含んでいる、請求項１〜４７のいずれか１つに記載の方法。
【請求項４９】
前記共有秘密情報は、金融取引において用いられる、請求項１〜４８のいずれか１つに記載の方法。
【請求項５０】
第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、該第１当事者に対する方法であって、
Ｘは、１つの数値列であり、ＮＡは、前記第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、前記第１当事者によって得られるステップと、
Ｂは、前記第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢは、前記第２当事者にかかわるランダム列であり、ＡおよびＢは、それぞれ前記数値列ＡおよびＢに等しい、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１当事者と第２当事者との間のメッセージの交換によって、前記数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、前記第１当事者によって遂行されるステップとを含む方法において、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値に等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出される方法。
【請求項５１】
第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、該第２当事者に対する方法であって、
Ｘは、１つの数値列であり、ＮＢは、前記第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、前記第２当事者によって得られるステップと、
Ａは、前記第１当事者によって得られる数値列Ａ＝Ｘ＋ＮＡであり、ＮＡは、前記第１当事者にかかわるランダム列であり、ＡおよびＢは、それぞれ前記数値列ＡおよびＢに等しい、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１当事者と第２当事者との間のメッセージの交換によって、前記数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、前記第２当事者によって遂行されるステップとを含んでいる方法において、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値に等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出される方法。
【請求項５２】
実行されたときに、請求項１〜５１のいずれか１つに記載の方法を実施するように構成されている命令を含んでいるコンピュータプログラム。
【請求項５３】
実行されたときに、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、該第１当事者に対する方法を実施するように構成されている命令を含んでいるコンピュータプログラムであって、この方法は、Ｘが、１つの数値列であり、ＮＡが、前記第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡは、前記第１当事者によって得られるステップと、Ｂは、前記第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢは、前記第２当事者にかかわるランダム列であり、ＡおよびＢは、それぞれ前記数値列ＡおよびＢと等しいか、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１当事者と第２当事者との間のメッセージの交換によって、前記数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、前記第１当事者によって遂行されるステップとを含んでいるコンピュータプログラムにおいて、前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値と等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出されるコンピュータプログラム。
【請求項５４】
請求項５２または５３に記載のコンピュータプログラムを記憶している、コンピュータ可読の記憶装置。
【請求項５５】
請求項１〜５１のいずれか１つに記載の方法を実施するための装置。
【請求項５６】
第１当事者および第２当事者が共有秘密情報を得ることを可能にするための装置であって、
Ｘは、１つの数値列であり、ＮＡは、前記第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡを、前記第１当事者が得るためのユニットと、
Ｂは、前記第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢは、前記第２当事者にかかわるランダム列であり、ＡおよびＢは、それぞれ前記数値列ＡおよびＢに等しいか、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１当事者と第２当事者との間のメッセージの交換によって、前記数値列ＡおよびＢ中の対応し合う数値ａｉ、およびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を、前記第１当事者が遂行するためのプロセッサとを備えている装置において、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値と等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出される装置。
【請求項５７】
第１当事者および第２当事者が共有秘密情報を得ることを可能にするための装置であって、
Ｘは、１つの数値列であり、ＮＢは、前記第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢを、前記第２当事者が得るためのユニットと、
Ａは、前記第１当事者によって得られる数値列Ａ＝Ｘ＋ＮＡであり、ＮＡは、前記第１当事者にかかわるランダム列であり、ＡおよびＢは、それぞれ前記数値列ＡおよびＢに等しいか、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１当事者と第２当事者との間のメッセージの交換によって、前記数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を、前記第２当事者が遂行するためのプロセッサとを備えている装置において、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値に等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出される装置。
【請求項５８】
請求項５６または５７に記載の装置を備えている衛星。
【請求項５９】
第１当事者および第２当事者が共有秘密情報を得ることを可能にするためのシステムであって、
Ｘは、１つの数値列であり、ＮＡは、前記第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡを得るための、前記第１当事者の第１装置と、
ＮＢは、前記第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢを得るための、前記第２当事者の第２装置とを備えているシステムにおいて、
ＡおよびＢは、それぞれ前記数値列ＡおよびＢに等しいか、または前記数値列ＡおよびＢから導出されるか、または前記数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、前記第１装置および第２装置は、前記数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を遂行するように構成されており、
前記共有秘密情報は、前記数値列ＡおよびＢ中の前記一致し合う数値に等しいか、または前記一致し合う数値から導出されるか、または前記一致し合う数値を用いて導出されるようになっているシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は安全通信方法に関し、より詳細には、限定するものではないが、量子力学的および／または古典的な通信チャネルを用いる、きわめて安全な通信方法に関する。
【背景技術】
【０００２】
通信理論における基本的な問題は、メッセージＭを、そのメッセージが、第三者により取得されないように、いかにして、２当事者間で伝送するかということである。例えば電子金融取引の分野においては、２当事者間の通信に機密性を保持することが非常に重要である。
【０００３】
通常、メッセージを交換しようとする２当事者は，それぞれアリスおよびボブと呼ばれ、一方、そのメッセージＭに不正にアクセスしようとする盗聴者は、イブと呼ばれている。
【０００４】
この問題を解決するために、多くの通信技術が開発されている。その通信技術の１つとして、イブが、しかるべき時間内にいくつかの数学操作を行うことが不可能になるように、イブに数学的な制約を課すものがある。例えばＲＳＡ公開鍵暗号技術による安全性は、非常に大きな整数の素因数分解における計算の困難さに大きく依拠している。このような通信技術は、「条件付きで安全である」または「コンピュータ的に安全である」と呼ばれている。
【０００５】
条件付きで安全な通信技術に伴う１つの問題は、それらの安全性に対する信頼性が、まだ立証されていない複雑性理論の分野における数学的結果に依存することである。したがって、現時点では、古典的コンピュータだけを頼りにして、そのような通信技術が、将来において瓦解しないということを保証することはできない。そのような通信技術を瓦解させることができる数学的なツールが開発される可能性は、あり得る。さらに、量子コンピュータ技術が発展すれば、コンピュータ的に安全である通信技術が依拠している数学操作を含む、いくつかの数学操作を、古典的コンピュータよりはるかに高速に実行することができる量子コンピュータの潜在的な能力によって、条件付きで安全である通信技術は脆弱になる。
【０００６】
したがって、イブの演算能力に関して何らの仮定もなされない種類の通信技術の発展に非常に関心が持たれている。このような通信技術は、「無条件に安全である」と呼ばれている。
【０００７】
無条件に安全であるデータ伝送方式の一例として、「ワンタイムパッド」が知られている。この通信技術によると、アリスは、二進平文ストリング（メッセージ Ｍ）と、そのメッセージと同じ長さを有する秘密ランダム二進ストリング（ワンタイムパッド）とを、ビット単位にモジュロ２加算する（すなわち 、ビット排他論理和をとる）。生成された二進暗号文ストリング（暗号化メッセージＭＥ）が、元のメッセージＭに替えて、ボブに送信される。元のメッセージＭを復元するために、ボブは、ワンタイムパッドのローカルコピーと、受信した暗号化メッセージＭＥとを、ビット単位にモジュロ２加算する。イブは、送信された暗号化メッセージＭＥを傍受したとしても、ワンタイムパッドを知っていなければ、元のメッセージＭを復元することはできない。名称が示唆しているように、ワンタイムパッドは、安全性維持のために、１回しか用いられない。
【０００８】
いかなるセキュア通信方式においても必要な基本的要件は、アリス、および／またはボブが、イブに知られていないある種の秘密情報を有していなければならないということである。この秘密情報は、メッセージの暗号化、および／またはその後の復号のベースとして用いられる。いくつかのセキュア通信方式においては、アリスとボブとは、彼らの間で少なくとも部分的に共有される、少なくともいくつかの秘密情報を所有していることが必要である。この秘密情報は、例えば上述のワンタイムパッド方式においては、ランダム二進ストリングの形態をとる場合がある。この場合には、秘密情報は、アリスとボブとの間で完全に共有される。
【０００９】
共有秘密情報を必要とする全てのセキュア通信技術における１つの問題は、いかにして、イブに知られることなく、アリスとボブとの間で秘密情報を配送するかということである。この問題は、必要な秘密情報の量が、平文メッセージデータの量に匹敵するワンタイムパッドなどのセキュア通信技術の場合に、特に深刻になり得る。したがって、アリスとボブとが、共有秘密情報を取得することができる手法、特に、この共有秘密情報を無条件に安全な方式で取得できる手法が求められている。
【００１０】
上述のように、最初に、共有秘密情報が、第１のメカニズムを用いてアリスとボブとの間で配送され、次いで、アリスとボブとが、メッセージを交換するために、共有秘密情報を含んでいる第２のメカニズムを用いる。単純に、第１のメカニズムを用いて、メッセージを直接交換するのではなくて、この２段階アプローチを用いる１つの理由は、事前に共有されている情報なしに、アリスとボブとに、共有秘密情報を取得させるのに適するメカニズムは、メッセージの交換のためには、不適切または非現実的である場合があるということである。例えばアリスおよびボブに、共有秘密情報を取得させるが、アリスおよびボブによる、共有秘密情報の正確な内容の制御を可能にしないメカニズムが存在する。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明のいくつかの例示的な実施形態は、従来技術に関連する問題、および／または欠点の少なくとも１つ、例えば上述の問題、および／または欠点の少なくとも１つを、少なくとも部分的に解決または軽減または回避することを１つの目的とする。本発明のいくつかの実施形態は、従来技術に少なくとも１つの利点、例えば以下において説明する利点のうちの少なくとも１つを提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明は、独立請求項によって定められるもので、本明細書において言及する。有益な特徴を、従属請求項によって定めてある。
【００１３】
本発明の種々の態様によれば、本明細書の請求項のいずれか１つ、または本明細書に開示されている態様のいずれか１つによる方法、装置、および／またはシステムが提供される。
【００１４】
本発明の別の１つの態様によれば、実行されたときに、本明細書の請求項のいずれか１つ、または本明細書に開示されている態様のいずれか１つによる方法、システム、および／または装置を実施するように構成されている命令を含んでいるコンピュータプログラムが提供される。さらなる一態様によれば、そのようなコンピュータプログラムを記憶している機械可読な記憶装置が提供される。
【００１５】
本発明の一態様によれば、第１当事者と第２当事者とが共有秘密情報を得ることを可能にするための方法であって、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、第１当事者によって得られるステップと、ＮＢが第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、第２当事者によって得られるステップと、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出されるか、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第１当事者および第２当事者によって遂行されるステップとを含む方法が提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しいか、または一致し合う数値から導出されるか、または一致し合う数値を用いて導出される。
【００１６】
本発明のさらなる一態様によれば、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、第１当事者に対する方法であって、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、第１当事者によって得られるステップと、Ｂが、第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢが、第２当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第１当事者によって遂行されるステップとを含んでいる方法が、提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００１７】
本発明のさらなる一態様によれば、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、第２当事者に対する方法であって、Ｘが、１つの数値列であり、ＮＢが、第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、第２当事者によって得られるステップと、Ａが、第１当事者によって得られる数値列Ａ＝Ｘ＋ＮＡであり、ＮＡが、第１当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第２当事者によって遂行されるステップとを含んでいる方法が、提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００１８】
本発明のさらなる一態様によれば、実行されたときに、第１当事者と第２当事者とが共有秘密情報を得ることを可能にするための方法を実施するように構成されている命令を含むコンピュータプログラムであって、この方法は、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、第１当事者によって得られるステップと、ＮＢが第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、第２当事者によって得られるステップと、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第１当事者および第２当事者によって遂行されるステップとを含むコンピュータプログラムが提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値と等しいか、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００１９】
本発明のさらなる一態様によれば、実行されたときに、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、第１当事者に対する方法を実施するように構成されている命令を含むコンピュータプログラムであって、この方法は、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡが、第１当事者によって得られるステップと、Ｂが、第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢが、第２当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しいか、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第１当事者によって遂行されるステップとを含んでいるコンピュータプログラムが提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００２０】
本発明のさらなる一態様によれば、実行されたときに、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための、第２当事者に対する方法を実施するように構成されている命令を含んでいるコンピュータプログラムであって、この方法は、Ｘが、１つの数値列であり、ＮＢが、第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢが、第２当事者によって得られるステップと、Ａが、第１当事者によって得られる数値列Ａ＝Ｘ＋ＮＡであり、ＮＡが、第１当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理が、第２当事者によって遂行されるステップとを含んでいるコンピュータプログラムが提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００２１】
本発明のさらなる一態様によれば、第１当事者および第２当事者が共有秘密情報を得ることを可能にするためのシステムであって、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡを得るための、第１当事者の第１装置と、ＮＢが、第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢを得るための、第２当事者の第２装置とを備えているシステムが、提供される。ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１装置および第２装置は、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を遂行するように構成されている。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００２２】
本発明のさらなる一態様によれば、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための装置であって、Ｘが、１つの数値列であり、ＮＡが、第１当事者にかかわるランダム列であるとしたときに、数値列Ａ＝Ｘ＋ＮＡを、第１当事者が得るためのユニットと、Ｂが、第２当事者によって得られる数値列Ｂ＝Ｘ＋ＮＢであり、ＮＢが、第２当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しい、または数値列ＡおよびＢから導出される、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を、第１当事者が遂行するためのプロセッサとを備えている装置が、提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しい、または一致し合う数値から導出される、または一致し合う数値を用いて導出される。
【００２３】
本発明のさらなる一態様によれば、第１当事者および第２当事者が共有秘密情報を得ることを可能にするための装置であって、Ｘが、１つの数値列であり、ＮＢが、第２当事者にかかわるランダム列であるとしたときに、数値列Ｂ＝Ｘ＋ＮＢを、第２当事者が得るためのユニットと、Ａが、第１当事者によって得られる数値列Ａ＝Ｘ＋ＮＡであり、ＮＡが、第１当事者にかかわるランダム列であり、ＡおよびＢが、それぞれ数値列ＡおよびＢに等しいか、または数値列ＡおよびＢから導出されるか、または数値列ＡおよびＢを用いて導出される、離散数値から成る数値列であるとしたときに、第１当事者と第２当事者との間のメッセージの交換によって、数値列ＡおよびＢ中の対応し合う数値ａｉおよびｂｉのうちの一致し合う数値から成る数値対を識別するためのデータ一致処理を、第２当事者が遂行するためのプロセッサとを備えている装置が提供される。共有秘密情報は、数値列ＡおよびＢ中の一致し合う数値に等しいか、または一致し合う数値から導出されるか、または一致し合う数値を用いて導出される。
【００２４】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、第１当事者と第２当事者とのうちの少なくとも一方が、１つ以上の数値を取得するように、第１当事者と第２当事者との間で、１つ以上のメッセージを交換するステップであって、取得される数値のうちの少なくとも１つは、数値ａｉに等しいか、または数値ａｉから導出され、取得される数値のうちの少なくとも１つは、数値ｂｉに等しいか、または数値ｂｉから導出されるステップと、比較演算を含む１つ以上の数学操作が、第１当事者と第２当事者とのうちの少なくとも一方によって遂行されるステップであって、数値ａｉとｂｉとの一致は、比較演算の比較結果から特定されるステップとを含んでいる。
【００２５】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、ｐが、第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値であり、ｆ１が、あらかじめ定められた関数であるとしたときに、数値Ｔ１＝ｆ１（ｐ）が、Ｐ当事者から、第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、ｑが、Ｑ当事者の数値列中の、数値列中の位置において数値ｐに対応する数値であるとしたときに、数値Ｔ１、または数値Ｔ１から導出される数値と、数値ｑ、または数値ｑから導出される数値とが、Ｑ当事者によって比較される比較ステップとが、Ｐ当事者およびＱ当事者によって遂行されるステップを含んでいる。
【００２６】
上述の態様のいずれか１つによる例示的な一実施形態において、ｆ１１が、関数ｆ１の逆関数であるとしたときに、比較ステップは、数値Ｔ１と数値ｆ１（ｑ）とを比較するステップと、数値ｆ１１（Ｔ１）と数値ｑとを比較するステップとのうちの少なくとも一方を含んでいる。
【００２７】
上述の態様のいずれか１つによる例示的な一実施形態において、関数ｆ１は、ハッシュ関数である。
【００２８】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、ｐが、第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値であり、ｆ１が、あらかじめ定められた関数であるとしたときに、数値Ｔ１＝ｆ１（ｐ）が、Ｐ当事者から、第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、ｆ２が、あらかじめ定められた関数であり、ｑが、Ｑ当事者の数値列中の、数値列中の位置において数値ｐに対応する数値であるとしたときに、数値Ｔ２＝ｆ２（Ｔ１,ｑ）が、Ｑ当事者によって計算されるステップとが、Ｐ当事者およびＱ当事者によって遂行されるステップを含んでおり、比較ステップは、数値Ｔ２とあらかじめ定められた数値とが、Ｐ当事者とＱ当事者とのうちの少なくともどちらかによって比較されるステップを含んでいる。
【００２９】
上述の態様のいずれか１つによる例示的な一実施形態において、ｒがランダムな数値であり、数１がモジュロ２加算を意味するとしたときに、数値ｆ１（ｐ）は、数２で与えられる。
【数１】
2015522998.tif 000003
【数２】
2015522998.tif 000004
【００３０】
ｆ３が、あらかじめ定められた関数であるとしたときに、上述の態様のいずれか１つによる例示的な一実施形態は、さらに、数値Ｔ３＝ｆ３（ｒ）が、Ｐ当事者からＱ当事者に送信されるステップを含んでおり、数値Ｔ２は、数３で与えられ、比較ステップは、数値Ｔ３とＨ（Ｔ２）とが、Ｑ当事者によって比較されるステップを含んでいる。
【数３】
2015522998.tif 000005
【００３１】
ｆ３が、あらかじめ定められた関数であるとしたときに、上述の態様のいずれか１つによる例示的な一実施形態は、さらに、数値（数４）が、Ｑ当事者からＰ当事者に送信されるステップを含んでおり、比較ステップは、数値ｆ３（ｒ）と数値Ｔ２とが、Ｐ当事者によって比較されるステップを含んでいる。
【数４】
2015522998.tif 000006
【００３２】
上述の態様のいずれか１つによる例示的な一実施形態において、関数ｆ３は、ハッシュ関数である。
【００３３】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、ｐ１が、第１当事者と第２当事者とのうちの一方であるＰ当事者の数値列中の１つの数値ｐの第１のビットであり、rがランダムビットであり、数１がモジュロ２加算を表すとしたときに、ビット値（数５）が、Ｐ当事者によって計算されるステップと、ｐ２が、数値ｐの第２のビットであるとしたときに、ビット値（数６）が、Ｐ当事者によって計算されるステップと、ビット値ｍ１およびｍ２が、Ｐ当事者から、第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるステップと、ｑ１が、Ｑ当事者の数値列中の、数値列中の位置において数値ｐに対応する数値ｑの、ビット位置において第１のビットｐ１に対応する第１のビットであるとしたときに、ビット値（数７）が、Ｑ当事者によって計算されるステップと、ｑ２が、数値ｑの、ビット位置において第２のビットｐ２に対応する第２のビットであるとしたときに、ビット値（数８）が、Ｑ当事者によって計算されるステップと、数値（数９）と数値０とが比較されるステップとが、Ｐ当事者およびＱ当事者によって遂行されるステップを含んでいる。
【数５】
2015522998.tif 000007
【数６】
2015522998.tif 000008
【数７】
2015522998.tif 000009
【数８】
2015522998.tif 000010
【数９】
2015522998.tif 000011
【００３４】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理が遂行されるステップは、自己逆演算を用いて、第１当事者と第２当事者とのうちの一方であるＰ当事者に対応する数値列Ａ／Ｂ中の数値ａｉ／ｂｉと、ランダムな数値とを結合することによって、第１の結合値が、Ｐ当事者によって生成されるサブステップと、第１の結合値が、Ｐ当事者から、第１当事者と第２当事者とのうちの他方であるＱ当事者に送信されるサブステップと、自己逆演算を用いて、第１の結合値と、Ｑ当事者に対応する数値列Ｂ／Ａ中の数値ｂｉ／ａｉとを結合することによって、第２の結合値が、Ｑ当事者によって生成されるサブステップと、第２の結合値に対して、第１のハッシュ値が、Ｑ当事者によって生成されるサブステップと、第１のハッシュ値が、Ｑ当事者からＰ当事者に送信されるサブステップと、ランダムな数値に対して、第２のハッシュ値が、Ｐ当事者によって生成されるサブステップと、第１のハッシュ値と第２のハッシュ値とが、Ｐ当事者によって比較されるサブステップと、比較の結果に応じた一致信号が、Ｐ当事者によって送信されるサブステップと、一致信号によって一致が示されると、数値列ＡおよびＢ中の数値ａｉおよびｂｉのうちの一致し合う数値のみが、Ｐ当事者およびＱ当事者によって保持され続けるサブステップとが、Ｐ当事者およびＱ当事者によって、数値ａｉおよびｂｉから成る数値対の各々に対して遂行されるステップを含んでいる。
【００３５】
上述の態様のいずれか１つによる例示的な一実施形態において、自己逆演算は、モジュロ２加算であり、ランダムな数値は、数値ａｉ／ｂｉと同じサイズを有するランダムな二進値である。
【００３６】
上述の態様のいずれか１つによる例示的な一実施形態において、第１および第２のハッシュ値は、第１および第２のハッシュ値の計算がなされた数値よりも少ないビットを有する。
【００３７】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、数値列ＡおよびＢのそれぞれの数値ａｉおよびｂｉから成る数値対の各々に対応するランダムな数値ｒｉを用い、共有秘密情報は、数値列ＡおよびＢのそれぞれの数値ａｉおよびｂｉのうちの一致し合う数値に対応するランダムな数値ｒｉに基づいて導出される。
【００３８】
上述の態様のいずれか１つによる例示的な一実施形態において、データ一致処理は、照合手続きと逆方向照合手続きとのうちの少なくとも一方を含んでいる。
【００３９】
上述の態様のいずれか１つによる例示的な一実施形態は、数値列Ｘを、ある信号中に符号化するステップ、および数値列Ｘが符号化されたこの信号を送信するステップを、さらに含んでいる。
【００４０】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘ中の各数値が、第１当事者によって送信される信号の量子状態中に符号化される。
【００４１】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘ中の各数値が、ある信号の振幅と位相とのうちの少なくとも一方中に符号化される。
【００４２】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘの符号化に用いられる信号は、マイクロ波信号である。
【００４３】
上述の態様のいずれか１つによる例示的な一実施形態において、信号は、第１当事者によって数値列Ｘの符号化に用いられて、送信される。
【００４４】
上述の態様のいずれか１つによる例示的な一実施形態において、信号は、第１当事者および第２当事者以外の当事者によって、数値列Ｘの符号化に用いられて、送信される。
【００４５】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｂが第２当事者によって得られるステップは、数値列Ｘの符号化に用いられている信号が、第２当事者によって受信されるステップ、および符号化されている数値列Ｘの各数値が、第２当事者によって検出されるステップを含んでいる。
【００４６】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ａが第１当事者によって得られるステップは、数値列Ｘの符号化に用いられている信号が、第１当事者によって受信されるステップ、および符号化されている数値列Ｘの各数値が、第１当事者によって検出されるステップを含んでいる。
【００４７】
上述の態様のいずれか１つによる例示的な一実施形態において、ランダム列ＮＢは、第２当事者の検出器に関連する検出器ノイズを含んでおり、ランダム列ＮＡは、第１当事者の検出器に関連する検出器ノイズを含んでいる。
【００４８】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘは、ランダムな数値列を含んでいる。
【００４９】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘは、ガウス分布値から成る数値列を含んでいる。
【００５０】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘは、あらかじめ定められた数値列を含んでいる。
【００５１】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列Ｘの各数値は、連続値である。
【００５２】
上述の態様のいずれか１つによる例示的な一実施形態は、第１当事者および第２当事者によって、それぞれ数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換されるステップを、さらに含んでいる。
【００５３】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換されるステップは、離散値の数値列ＡおよびＢ中の二進数値を得るために、数値列ＡおよびＢ中の、連続値である各数値ａｉおよびｂｉに、あらかじめ定められた離散化操作を適用することによって、数値列ＡおよびＢにそれぞれ対応する、二進数値から成る数値列ＡおよびＢが、それぞれ第１当事者および第２当事者によって得られるステップを含んでおり、離散化操作によって、連続値である各数値ａｉおよびｂｉの範囲が、対応する二進数値にマッピングされる。
【００５４】
上述の態様のいずれか１つによる例示的な一実施形態において、数値列ＡおよびＢが、対応する離散値の数値列ＡおよびＢに変換されるステップは、データスライシングが行われるステップを含んでいる。
【００５５】
上述の態様のいずれか１つによる例示的な一実施形態において、Ｓｉ（ｘ）が、入力された連続値ｘから生じる二進値のｉ番目のビットであり、ｎが、集合（０、１、…、２ｍ−１−１）から選択される任意の整数であり、（τ０、τ１、…、τｐ）が、ｐ個の部分的範囲を定めるための、（ｐ＋１）個の固定したセパレータ値であり、τ０＜τ１＜…＜τｐであるとしたときに、データスライシングは、次の式（数１０）に基づいて行われる。
【数１０】
2015522998.tif 000012
【００５６】
上述の態様のいずれか１つによる例示的な一実施形態は、数値列ＡとＢとの間の相関を高めるために、誤り訂正処理が、第１当事者および第２当事者によって遂行されるステップを、さらに含んでいる。
【００５７】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正処理が遂行されるステップは、数値列ＡおよびＢ中の対応し合う数値ａｉとｂｉとの間で、誤り訂正処理が、第１当事者および第２当事者によって遂行されるステップを含んでおり、誤り訂正処理は、あらかじめ定められた量までの誤りを訂正することが可能である。
【００５８】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正処理は、誤り数が、あらかじめ定められた量以下である場合には、対応し合う数値ａｉとｂｉとの間のいかなる誤りも訂正し、誤り数が、あらかじめ定められた量を超過している場合には、対応し合う数値ａｉとｂｉとの間の誤りを増加させがちである。
【００５９】
上述の態様のいずれか１つによる例示的な一実施形態において、あらかじめ定められた量はｑビットである。
【００６０】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正処理は、第１当事者および第２当事者のうちの一方の当事者に対応する数値列Ａ／Ｂ中の数値ａｉ／ｂｉに基づく誤り訂正情報が、この一方の当事者によって生成されるサブステップと、誤り訂正情報が、第１当事者および第２当事者のうちの他方の当事者に送信されるサブステップと、誤り訂正情報が、他方の当事者によって、他方の当事者に対応する数値列Ｂ／Ａ中の、数値ａｉ／ｂｉに対応する数値ｂｉ／ａｉに適用されるサブステップとが、対応し合う数値ａｉおよびｂｉから成る数値対の各々に対して遂行されるステップを含んでいる。
【００６１】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正情報は、系統誤差訂正符号の誤差訂正ビットを含んでいる。
【００６２】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正情報は、ＢＣＨ符号のパリティビットを含んでいる。
【００６３】
上述の態様のいずれか１つによる例示的な一実施形態において、誤り訂正情報は、誤り訂正情報が基づいている数値より少ないビットしか含んでいない。
【００６４】
上述の態様のいずれか１つによる例示的な一実施形態は、数値列ＡおよびＢ中の各数値ａｉおよびｂｉにおいて、あらかじめ定められたビット位置の１つ以上のビットが保持され続け、残りのビットが破棄されるステップを、さらに含んでいる。
【００６５】
上述の態様のいずれか１つによる例示的な一実施形態において、相関性が最も低い側の１つ以上のビット、または相関性が最も高い側の１つ以上のビットが、保持され続ける。
【００６６】
上述の態様のいずれか１つによる例示的な一実施形態において、最下位ビット側のｐ個のビットだけ、または最上位ビット側のｐ個のビットだけが、保持され続ける。
【００６７】
上述の態様のいずれか１つによる例示的な一実施形態は、保持され続けたビットを有する数値ａｉ、ｂｉを用いて、データ一致処理が繰り返されるステップを、さらに含んでいる。
【００６８】
上述の態様のいずれか１つによる例示的な一実施形態は、数値列ＡおよびＢ中の各数値ａｉおよびｂｉを、数値ａｉおよびｂｉから導出されるパリティ値で置き換えるステップを、さらに含んでいる。
【００６９】
上述の態様のいずれか１つによる例示的な一実施形態は、新しい数値ａｉ、ｂｉを形成するために、数値列ＡおよびＢの各々のパリティビットを、一連の、ｐビットの集まりに分割するステップと、上述の態様のいずれか１つの、ステップを繰り返すステップとを、さらに含んでいる。
【００７０】
上述の態様のいずれか１つによる例示的な一実施形態は、共有秘密情報から秘密鍵を生成するステップを、さらに含んでいる。
【００７１】
上述の態様のいずれか１つによる例示的な一実施形態において、共有秘密情報は、金融取引において用いられる。
【００７２】
本発明のさらなる一態様によれば、上述の態様のいずれか１つに記述されている装置を備えている衛星が提供される。
【図面の簡単な説明】
【００７３】
【図１】３つの確率変数Ｘ、Ｙ、Ｚが存在する場合のエントロピー、条件付きエントロピー、相互情報量の間の関係を示す概要図である。
【図２】連続変数量子鍵配送を用いた通信システムを示す概要図である。
【図３】地球表面上の送受信器と地球高軌道（ＨＥＯ）衛星との間の通信が、地球低軌道（ＬＥＯ）衛星によって傍受される状況を示す概要図である。
【図４】本発明による例示的な一鍵配送プロトコルを実装している例示的な一通信システムを示す概要図である。
【図５】本発明の例示的な一鍵配送プロトコルの各ステージを示すフローチャートである。
【図６】図５に示されている変数送信ステージの各ステップを示すフローチャートである。
【図７】図５に示されている変数送信ステージにおける、アリス、ボブ、イブによる数値列Ａ、Ｂ、Ｅの検出を示す概要図である。
【図８】図５に示されている変数送信ステージにおける、アリス、ボブ、イブによる数値列Ａ、Ｂ、Ｅの検出を示す別の概要図である。
【図９】図５に示されている変数送信ステージにおいて、アリスとボブとによって検出される数値列ＡとＢとで対応し合うデータ値の間の関係を示すグラフである。
【図１０】図５に示されているデータ離散化ステージの各ステップを示すフローチャートである。
【図１１】例示的な一データスライシング法を示す概要図である。
【図１２】図５に示されている誤り訂正ステージの各ステップを示すフローチャートである。
【図１３】図５に示されている誤り訂正ステージにおいて、アリス、ボブ、イブの、対応し合う数値間に一致が生じることを示す図である。
【図１４】図５に示されているデータ一致合意ステージの各ステップを示すフローチャートである。
【図１５】図５に示されている安全性強化ステージの各ステップを示すフローチャートである。
【図１６ａ】本発明のいくつかの実施形態において用いることができるデータ一致合意処理の一例を示す図である。
【図１６ｂ】本発明のいくつかの実施形態において用いることができるデータ一致合意処理の別の一例を示す図である。
【図１６ｃ】本発明のいくつかの実施形態において用いることができるデータ一致合意処理のさらに別の一例を示す図である。
【図１７】本発明のいくつかの実施形態において用いることができるデータ一致合意処理のなお別の一例を示す図である。
【図１８】本発明のいくつかの実施形態において用いることができるデータ一致合意処理のさらになお別の一例を示す図である。
【発明を実施するための形態】
【００７４】
添付図面を参照して、本発明の例示的ないくつかの実施形態を開示している以下の詳細な説明を読むことによって、本発明の他の態様、特徴、利点、および本発明の例示的ないくつかの態様、および実施形態の顕著な特徴が、より明らかになると思う。
【００７５】
本発明は、本明細書において説明されている、いくつかの特定の実施形態に限定されないことは、当業者には理解しうると思う。これらの実施形態の詳細は、本発明の理解を容易にするために、また本発明の背後にある原理を説明するためのものであり、これらは、単に典型的な例を示す目的のみを有するものと考えるべきである。したがって、請求項に定められている本発明の範囲から逸脱することなく、種々の変形及び変更を行うことができることは、当業者には理解しうると思う。例えば記載されているいくつかの特徴を、任意に適切に組み合わせて用いることができ、また、いくつかの特徴を加えたり、省略したり、または任意の適切な代替物または等価物で置き換えることができる。
【００７６】
以下の説明において、本発明の説明を明快および簡潔にするために、また、本発明の要旨を不明瞭にしないために、周知のプロセス、機能、構造、および構成についての説明を、省略する場合がある。
【００７７】
以下の説明、および請求項において用いられる用語、表現、および単語は、学術文献上の意味を有するだけではなく、本発明の明瞭かつ一貫した理解、および本発明の明確化のために、用いられているにすぎない。
【００７８】
本明細書における説明および請求項を通じて、単数形「１つの」、「その」には、その文脈において、複数形が含まれないことが明確に記載されていない限り、複数の対象をも含むものである。したがって、例えば「１つの物体」の意味には、１つ以上の物体の意味も含まれる。
【００７９】
本明細書における説明および請求項を通じて、単語「含む」、「有する」、「包含する」、およびそれらの単語の変形、例えば「含んでいる」、「有している」、「包含している」は、「含んでいるが限定されない」を意味しており、他の特徴、構成要素、整数、ステップ、プロセス、特性や、それらの集合を排除しようとするものではない。
【００８０】
本発明の１つの特定の態様、実施形態、または実施例に結び付けて説明される特徴、構成要素、整数、ステップ、プロセス、特性や、それらの集合は、矛盾しない限り、本明細書において説明される任意の他の態様、実施形態、または実施例にも適用可能であると理解されたい。
【００８１】
本明細書における説明および請求項を通じて、「ＹのためのＸ」という一般形を呈する言語（Ｙ は、何らかの動作、機能、プロセス、操作、活動、またはステップであり、Ｘ は、それらの動作、機能、プロセス、操作、活動、またはステップを行うための何らかの手段）には、Ｙを行うように特に適合化され、構成され、または配置されている手段Ｘが包含されるが、Ｙを行うためだけの手段Ｘのみに限定されない。
【００８２】
用語「暗号化」は、本明細書においては、秘密情報を用いて情報を暗号化して、難読化する、マスキングを施すなどのことによって、その秘密情報を知らなければ、情報を解読し難くするプロセスを意味するものである。用語「復号」は、本明細書においては、暗号化された情報が、元の情報を復元するように処理される逆プロセスを意味するものである。
【００８３】
２当事者アリスおよびボブに、無条件に安全な手法で共有秘密情報を取得させる技術の中に、離散変数量子鍵配送（ＤＶ−ＱＫＤ）および連続変数量子鍵配送（ＣＶ−ＱＫＤ）を含む量子鍵配送（ＱＫＤ）が存在する。
【００８４】
ＤＶ−ＱＫＤとＣＶ−ＱＫＤとのいずれにおいても、アリスとボブとの間で伝送される光子の量子状態中にデータを符号化することによって、アリスとボブとの間で、データが交換される。ＤＶ−ＱＫＤの場合には、個々の光子の偏光状態などの、離散値（量子化値）をとる物理量が、情報を伝えるために用いられる。したがって、ＤＶ−ＱＫＤを用いて交換されるデータ値は、離散値をとる。他方において、ＣＶ−ＱＫＤの場合には、コヒーレントな電磁場（コヒーレントな光子ストリームとみなすこともできる）の位相および振幅（または等価的に、それらの直角成分）などの、連続スペクトルを有する物理量が、情報を伝えるために用いられる。したがって、ＣＶ−ＱＫＤを用いて交換されるデータ値は、連続値をとり得る。
【００８５】
アリスとボブとの間で伝送されている光子の、自分にとって未知である量子状態を測定しようとする、盗聴者である第三者イブによるいかなる試みも、量子力学の基本特性によって、それらの光子の量子状態を乱す。さらに、「量子複製不可能定理」によって、イブが、未知である任意の量子状態に対し、それと全く同じコピーを作成することは不可能である。すなわち、アリスとボブとは、イブによる、通信を傍受しようとするいかなる試みも検出することができる。
【００８６】
ＣＶ−ＱＫＤは、ＤＶ−ＱＫＤに比して、いくつかの利点を備えている。例えばＤＶ−ＱＫＤ装置は、通常、電磁スペクトルの光帯域で動作する。しかしながら、個々の光子の生成および効率的な検出は、光帯域外においては、より困難になるから、光学に基づかないＤＶ−ＱＫＤを実現することは、非常に難しい。対照的に、ＣＶ−ＱＫＤにおいては、電磁スペクトルの非常に広範な領域を、より簡単に利用することができる。例えば多くの既存の通信システムがすでに動作しているマイクロ波帯において、ＣＶ−ＱＫＤを、ＤＶ−ＱＫＤより簡単に実現することができる。
【００８７】
以下においては、ＣＶ−ＱＫＤに基づく通信システムについて説明する。しかしながら、その説明に進む前に、情報理論の分野におけるいくつかの有用な概念について、ここで簡潔に説明する。
【００８８】
確率分布関数ＰＸで特性付けられる離散確率変数Ｘを考える。離散確率変数ＸのエントロピーＨは、式１（数１１）で定義される。
【数１１】
2015522998.tif 000013
【００８９】
式１において、ｘは、Ｘの１つの特定の結果を表しており、ＰＸ（ｘ）は、結果ｘの確率であり、ｂは、エントロピーの単位を決める、対数の任意の底である。多くの場合、底ｂには、２が選択される。その場合には、エントロピーの単位は「ビット」になる。Ｘのエントロピーは、Ｘの結果に対する不確定性の尺度であると見なすことができる。１つの解釈として、エントロピー（単位：ビット）は、最適推測ストラテジーを用いる場合には、Ｘの結果を推測するために必要である「はい／いいえ」タイプの平均質問数を与え、また、Ｘの一連の結果を符号化するために必要な、１結果当たりの平均ビット数である。
【００９０】
離散確率変数ＸおよびＹに対する条件付きエントロピーＨ（Ｘ|Ｙ）は、式２（数１２）で定義される。
【数１２】
2015522998.tif 000014
【００９１】
式２において、ｘおよびｙは、それぞれＸおよびＹの特定の結果を表しており、ＰＸ（ｘ）およびＰＹ（ｙ）は、それぞれ結果ｘおよびｙの確率であり、ＰＸ|Ｙ（ｘ|ｙ）は、結果ｙを所与とする、結果ｘの条件付き確率であり、ＰＸＹ（ｘ,ｙ）は、ＸおよびＹの結合確率分布であり、ｂは、対数の任意の底である。条件付きエントロピーＨ（Ｘ|Ｙ）は、Ｙの観察後のＸの不確定性の尺度であると解釈することができる。
【００９２】
離散確率変数ＸおよびＹに対する相互情報量Ｉ（Ｘ;Ｙ）は、式３（数１３）で定義される。
【数１３】
2015522998.tif 000015
【００９３】
式３において、ｘおよびｙは、それぞれＸおよびＹの特定の結果を表しており、ＰＸ（ｘ）およびＰＹ（ｙ）は、それぞれ結果ｘおよびｙの確率であり、ＰＸＹ（ｘ,ｙ）は、ＸおよびＹの結合確率分布であり、ｂは、対数の任意の底である。
【００９４】
式３から、相互情報量Ｉ（Ｘ;Ｙ）は、Ｙの観察後のＸの不確定性の減少として解釈することができる。等価的に、相互情報量Ｉ（Ｘ;Ｙ）は、Ｙの観察後にＸに関して得られる情報の量、またはＸとＹとの間で共有される情報の量であると解釈することができる。ＸとＹとの間の相関が、相対的に高ければ、相互情報量Ｉ（Ｘ;Ｙ）は、相対的に大きくなる。逆に、ＸとＹとの間の相関が、相対的に低ければ、相互情報量Ｉ（Ｘ;Ｙ）は、相対的に小さくなる。ＸとＹとが、全く相関していなければ、Ｉ（Ｘ;Ｙ）＝０であり、Ｘ＝Ｙであれば、Ｉ（Ｘ;Ｙ）＝Ｈ（Ｘ）である。相互情報量は、その独立変数に関して対称である、すなわち、Ｉ（Ｘ;Ｙ）＝Ｉ（Ｙ;Ｘ）である。
【００９５】
一例として、上述のワンタイムパッド方式においては、メッセージＭと、暗号化メッセージＭＥとの間の相互情報量は、０である。すなわち、Ｉ（Ｍ;ＭＥ）＝０である。したがって、イブは、暗号化メッセージＭＥから、メッセージＭに関するいかなる情報も得ることができない。この性質のゆえに、上述のワンタイムパッド方式は、無条件に安全である。
【００９６】
上述の条件付きエントロピーおよび相互情報量の定義を、３つの離散確率変数Ｘ、Ｙ、Ｚを考慮するように拡張することができる。例えば条件付きエントロピーＨ（Ｘ|ＹＺ）は、ＹおよびＺの観察後のＸの不確定性として解釈することができる。相互情報量Ｉ（Ｘ;Ｙ;Ｚ）は、Ｘ、ＹおよびＺの間で共有される情報の量であると解釈することができる。相互情報量Ｉ（Ｘ;Ｙ|Ｚ）は、ＸとＹとの間で共有される情報の量のうちの、Ｚと共有されない部分であると解釈することができる。
【００９７】
３つの離散確率変数Ｘ、Ｙ、Ｚが存在する場合の、いくつかの量の間の関係を、図１のように概要的に表すことができる。図１において、３つの重なり合っている円は、それぞれＨ（Ｘ）、Ｈ（Ｙ）、Ｈ（Ｚ）を表している。量Ｉ（Ｘ;Ｙ）、Ｈ（Ｙ|Ｘ）、Ｈ（Ｚ|ＸＹ）、Ｉ（Ｘ;Ｙ|Ｚ）、Ｉ（Ｘ;Ｙ;Ｚ）が、網掛け領域で示されている。３つの離散確率変数Ｘ、Ｙ、Ｚの、その他の組み合わせに対する条件付きエントロピーおよび相互情報量を表す、図１内の領域を、対称性に基づいて推定することができる。
【００９８】
さらに、エントロピー、条件付きエントロピー、および相互情報量の、式１〜式３によって与えられる定義を、連続確率変数を考慮するように拡張することができる。具体的には、式１〜式３に対応する、エントロピー、条件付きエントロピー、および相互情報量の、連続確率変数Ｘ、Ｙ、Ｚに対する定義は、式４〜式６（数１４〜数１６）によって与えられる。
【数１４】
2015522998.tif 000016
【数１５】
2015522998.tif 000017
【数１６】
2015522998.tif 000018
【００９９】
式４〜式６において、ＰＸ（ｘ）、ＰＹ（ｙ）は、 それぞれＸ、Ｙの確率密度関数であり、ＰＸ|Ｙ（ｘ|ｙ）は、Ｙを条件とするＸの確率密度関数であり、ＰＸＹ（ｘ,ｙ）は、ＸとＹとの結合確率密度関数である。
【０１００】
離散確率変数の場合と同様に ２つの連続確率変数に対する条件付きエントロピーおよび相互情報量の定義を、３つの連続確率変数Ｘ、Ｙ、Ｚを考慮するように拡張することができる。３つの連続確率変数Ｘ、Ｙ、Ｚが存在する場合の、いくつかの量の間の関係を、やはり図１のように概要的に示すことができる。
【０１０１】
ここで、ＣＶ−ＱＫＤの説明に戻って、図２を参照して、ＣＶ−ＱＫＤを用いる通信システムについて説明する。図２の通信システムにおいて、アリスは、最初に、Ｘで表されている数値列を発生させる、または取得する。この数値列Ｘは、第１の連続確率変数（便宜上、やはりＸで表す）の実現値である。アリスは、次いで、数値列Ｘが符号化されている信号を作成し、その信号を、ある通信チャネルを介してボブに送信する。連続確率変数Ｘは、例えばガウス確率密度関数によって特性付けられる場合があり、レーザによって生じた一連のコヒーレントな電磁場（例えばマイクロ波）パルスの振幅および／または位相の変調によって、数値列Ｘがボブに送信される場合がある。
【０１０２】
アリスからの信号の受信の際に、ボブは、信号内に符号化されている数値列Ｘを復元するために、検出器（例えばホモダイン検出器、またはヘテロダイン検出器）を用いて、信号の振幅および／または位相を検出する。検出を通じてボブによって復元された数値列（Ｙで表されている）は、第２の連続確率変数（やはりＹで表す）の実現値と見なすことができる。通信システム（例えばボブの検出器）内にノイズが存在するために、ボブによって検出される数値列Ｙ中の各数値には、元の数値列Ｘ中の対応する数値と、ノイズ成分との和が含まれる。したがって、数値列ＸとＹとの関係は、Ｙ＝Ｘ+ＮＢと表すのが好適である。この関係式において、ＮＢは、ボブによって観察される一連のノイズ値を示しており、さらなる連続確率変数（やはりＮＢで表す）の実現値と見なすことができる。
【０１０３】
通信チャネル上での盗聴によって、イブも、アリスからの信号を受信することができる。ボブと同様に、イブは、信号内に符号化されている数値列を復元するために、信号の振幅および／または位相を検出するための検出器（例えば、ホモダイン検出器またはヘテロダイン検出器）を用いる。検出を通じてイブによって復元される数値列（Ｚで表されている）は、第３の連続確率変数（やはりＺで表す）の実現値とみなすことができる。前述のように、通信システム（例えば、イブの検出器）にノイズが存在するために、イブによって検出される数値列Ｚ中の各数値には、元の数値列Ｘ中の対応する数値とノイズ成分との和が含まれる。したがって、数値列ＸとＺとの関係は、Ｚ＝Ｘ+ＮＥと表すのが好適である。この関係式において、ＮＥは、イブによって観察される一連のノイズ値を示しており、よりさらなる連続確率変数（やはりＮＥで表す）の実現値と見なすことができる。
【０１０４】
図１に示す通信システムにおけるノイズ源には、処理ノイズ、熱ノイズ、ショットノイズが含まれることがある。処理ノイズは、送信に先立ってアリスによって変調される信号の処理中に発生するノイズである。熱ノイズは、通信システム中の電子部品の内部から生じるノイズである。熱ノイズは、例えば信号検出プロセス中に加えられる場合がある。ショットノイズは、情報送信のために用いられる光子が離散的性質を有しており、単位時間当たりに検出器に到達する光子の数が変動することによって生じる。
【０１０５】
一般に、ボブとイブとのそれぞれの装置（例えば検出器）で観察されるノイズ値の間には相関がなく、したがって、Ｉ（ＮＥ;ＮＢ）＝０である。この関係は、通例、ＮＥ≠ＮＢと表されることがある。
【０１０６】
アリスおよびボブは、イブが、数値列ＸおよびＹの各々と異なるが相関性を有する数値列Ｚを知るということを考慮して、照合として知られている手続きを用いて、互いに異なるが相関し合っている、それぞれの数値列ＸおよびＹ（それぞれアリスおよびボブによって既知である）から、共有秘密情報を得る場合がある。照合には、数値列ＸおよびＹから、共有秘密情報の部分を「抽出する」ための、アリスとボブとの間のメッセージ交換を伴う。これは、数値列ＸとＹとが相関し合っており、したがって、数値列ＸとＹとの間の情報の重なりがゼロではない、すなわち、Ｉ（Ｘ;Ｙ）≠０であるから可能である。照合は、「順方向照合」の形態をとる場合もあり、「逆方向照合」の形態をとる場合もある。それによって、照合手続きにおけるアリスとボブとの役割が変わる。
【０１０７】
上述の、アリスとボブとの間の通信プロセスは、順方向照合と逆方向照合との両方でＩ（Ｘ;Ｙ）＞Ｉ（Ｘ;Ｚ）であれば、無条件に安全である。照合の特別な例である逆方向照合の場合には、この不等式が満たされず、他のいくつかの条件（例えば通信システム内のノイズの相対レベルに関する）が満たされるにすぎないときにも、無条件に安全な通信が達成される場合がある。信号の経路損失がないと仮定すると、イブの装置において観測されるノイズが、ボブの装置において観測されるノイズより大きい（通例、ＮＥ＞ＮＢと表すことができる）場合には、より一般的には、いくらかの経路損失があったとしても、イブの装置において観測される信号対雑音比（ＳＮＲ）が、ボブの装置において観測されるＳＮＲより低い場合には、上述の不等式が満たされる。
【０１０８】
この場合には、アリスの送信信号すなわち数値列Ｘと、ボブの検出信号すなわち数値列Ｙとの間の相関は、アリスの送信信号すなわち数値列Ｘと、イブの検出信号すなわち数値列Ｚとの間の相関より強い。したがって、ボブは、自身で観察した数値列Ｙから、イブが自身で観察した数値列Ｚから得ることができるＸに関する情報より多くの、Ｘに関する情報を得ることができる。アリスとボブとは、適切な照合手続きを用いて、イブにはわからない共有秘密情報を取得するために、この情報優位を利用することができる。
【０１０９】
上述のＣＶ−ＱＫＤ通信システムの１つの問題は、イブの検出器におけるＳＮＲが、ボブの検出器におけるＳＮＲより低いという仮定に基づいて、無条件の安全性が保証されていることである。しかしながら、この仮定は、多くの状況において、成り立たない場合がある。
【０１１０】
例えば図３に示されている実在の状況において、アリスは、地表上の送受信器の形態を呈しており、ボブは、地球高軌道（ＨＥＯ）衛星または地球中軌道（ＭＥＯ）衛星（例えばおよそ３３，０００Ｋｍの高度の）の形態を呈している場合がある。このような状況においては、かなりの経路損失が、アリスとボブとの間で生じ得る。その結果、ボブの検出器におけるＳＮＲは、相当に低くなる。一方、イブが、ボブよりアリスに近い場合、例えばイブが、地球低軌道（ＬＥＯ）衛星（例えばおよそ１００Ｋｍの高度の）の形態を呈している場合には、アリスとイブとの間の経路損失は、相対的に小さくなるであろう。その結果、イブの検出器におけるＳＮＲは、ボブの検出器におけるＳＮＲより高くなる。
【０１１１】
別のいくつかの状況においては、イブが、自分の検出器におけるＳＮＲを高くするために、アリスの送信器に勝手に接近することが可能である。
【０１１２】
この問題は、ボブが、相対的に高レベルの固有ノイズを有する検出器を用いている場合に悪化する可能性がある。例えば熱ノイズは、通常、マイクロ波検出器において相対的に大きい。したがって、数値列Ｘを送信するために、マイクロ波チャネルが用いられる場合には、ボブによって観察されるＳＮＲは、相対的に低くなる場合がある。
【０１１３】
したがって、求められるものは、イブによる秘密情報の取得を防止しながら、アリスとボブとに秘密情報を共有させることを可能にするプロトコルである。そのようなプロトコルにおいては、イブの検出器におけるＳＮＲが、ボブの検出器におけるＳＮＲより高くても、無条件の安全性が保証される。
【０１１４】
上述のＣＶ−ＱＫＤ通信システムにおける別の１つの問題は、数値列Ｙの検出のためにボブによって用いられるホモダイン検出器またはヘテロダイン検出器が、比較的複雑であることである。したがって、求められるものは、より単純な検出器を用いることができる通信方式である。
【０１１５】
第三者（イブ）に秘密情報を知られることなく、２当事者（アリスおよびボブ）に、共有秘密情報を取得させることができる例示的な一プロトコルについて、ここで説明する。以下に説明するいくつかの実施形態において、共有秘密情報は、その後のデータ伝送において用いるための鍵情報の形態を呈する。この鍵情報は、例えばワンタイムパッドを形成するために用いることができる。一方、本発明によるプロトコルは、別の種類の共有秘密情報を得るために用いることができる。
【０１１６】
本発明のいくつかの実施形態は、例えば金融取引を含む多様な用途に用いることができる。金融取引以外の用途としては、警察、軍隊、政府、移動データ通信、携帯音声通信、ナビゲーションおよび位置情報サービス（例えばＧＰＳ）、金融サービス、銀行、船舶通信、加入者サービス、携帯セキュリティサービス、分散型ネットワーキング、リモートアクセス、インターネット通信、仮想プライベートネットワーク、衛星通信、リモートコマンドおよび制御システム、航空機（例えば無線操縦の航空機）、遠隔操縦、データストレージおよびアーカイビング、およびアイデンティティ管理およびセキュリティが含まれるが、これらに限定されない。
【０１１７】
図４は、本発明による例示的な１つの鍵配送プロトコルを実装している、例示的な１つの通信システムを概要的に示している。図５は、このプロトコルの各ステージを示すフローチャートである。
【０１１８】
図４に示すように、通信システム４００は、アリスによって制御される第１の装置、すなわちアリスの装置４０１、およびボブによって制御される第２の装置、すなわちボブの装置４１５を備えている。アリスの装置４０１は、データソース４０３、メモリ４０５、送信ユニット４０７、受信ユニット４０９、検出器４１１、およびプロセッサ４１３を備えている。ボブの装置４１５は、メモリ４１７、送信ユニット４１９、受信ユニット４２１、検出器４２３、およびプロセッサ４２５を備えている。アリスの装置４０１の送信ユニット４０７および受信ユニット４０９と、ボブの装置４１５の送信ユニット４１９および受信ユニット４２１とを用いて、アリスとボブとの間に、双方向の通信リンク４２７を設置することができている。いくつかの代替実施形態においては、送信ユニットと受信ユニットとは、単一の送受信ユニットとして組み合わされている場合がある。
【０１１９】
通信リンク４２７は、アリスとボブとの間で、１つ以上の別々のチャネル４２７ａ、４２７ｂを形成している場合がある。例えば以下に説明する実施形態においては、２つのチャネルが用いられる。しかしながら、他のいくつかの実施形態においては、単一のチャネル、または３つ以上のチャネルを用いることができる。
【０１２０】
各チャネルは、有線リンクまたは無線リンク、または光リンクなどの、いかなる適切な形態を呈することもできる。各チャネルを、古典的チャネルとすることも、量子チャネルとすることもできる。例えば以下に説明する実施形態においては、一方のチャネルは量子チャネルであり、他方のチャネルは古典的チャネルである。量子チャネルは、量子状態系内で符号化された情報である量子情報を送信することができるチャネルである。古典的チャネル、すなわち非量子チャネルは、古典的状態系内、すなわち非量子状態系内で符号化された情報である古典的情報を送信することができるチャネルである。
【０１２１】
いくつかの実施形態において、古典的チャネルは、変更の試みから守られている場合がある。古典的チャネルは、例えばアリスとボブとが、この古典的チャネルで送信される信号が確実に変更されないようにするために、短い事前共有鍵情報を用いる認証チャネルである場合がある。
【０１２２】
さらに、図４に示すように、イブによって制御される第３の装置すなわちイブの装置４２９を、イブは、アリスとボブとの間の通信を傍受するために用いることができる。イブの装置４２９は、メモリ４３１、受信ユニット４３３、検出器４３５、およびプロセッサ４３７を備えている。イブの装置４２９は、総体的に見ると、通信システム４００の一部であるとみなすことができる。または、アリスの装置４０１およびボブの装置４１５によって形成されている通信システム４００に付加されている寄生素子とみなすことができる。以下に説明する実施形態においては、アリスとボブとの間の通信リンクの信頼性が高いと想定しているために、イブの装置４２９は、アリスとボブとの間で伝送される信号の変更または改ざんを行わないものとしているという意味で、イブの装置４２９には、送信ユニットが備えられていない。しかしながら、以下に説明するプロトコルは、イブによる、信号の改ざんを伴うような攻撃に対しても有効である。
【０１２３】
この実施形態においては、図３に示されている通信システムと同様に、アリスの装置４０１は、地上装置の一部を形成しており、ボブの装置４１５は、ＨＥＯ衛星の一部を形成しており、イブの装置４２９は、ＬＥＯ衛星の一部を形成している。しかしながら、本発明は、いかなる特定の構成にも限定されない。本発明は、例えば地上装置、大気層における装置、および／または宇宙における装置の任意の組み合わせを備えるシステムに適用することができる。
【０１２４】
この実施形態においては、アリスとボブとの間の通信リンクは、２．４ＧＨｚの自由空間マイクロ波通信チャネルを用いて実現されている。しかしながら、本発明は、電磁スペクトルのいかなる特定の帯域やいかなる伝送方法にも限定されない。
【０１２５】
図５に示すように、この鍵配送プロトコルは、変数送信ステージ５０１、データ離散化ステージ５０３、誤り訂正ステージ５０５、データ一致合意ステージ５０７、第１プライバシー増幅ステージ５０９、安全性強化ステージ５１１、および第２プライバシー増幅ステージ５１３を含む、多数のステージを有している。
【０１２６】
以下の詳細な説明から明らかになるように、このプロトコルの実行中に、アリスは、データ列を送信する。このデータ列は、ボブ（と、おそらくはイブ）によって受信される。アリスとボブとの間の、その後の一連のメッセージ交換（イブにも傍受されているかもしれない）を通じて、この最初のデータ列は、アリスとボブとの間で共有されるが、イブには認識されない秘密データ列を取得するためのシードデータとして用いられる。
【０１２７】
このプロトコルは、通信リンクのアリス側とボブ側とで生成される各データ列に、互いに無相関なランダムノイズを加えることに基づいている。このプロトコルは、共有秘密情報の無条件の安全性を実現するために、ノイズのランダム性、および予測不能性を利用する。ノイズは、様々なやり方で実現することができる。例えば通信システムの固有または真性の性質として、ノイズは生じることがあり、積極的、意図的、および／または人工的に、ノイズを発生させることもできる。本発明のいくつかの実施形態においては、ノイズは、量子力学に由来しており、したがって、完全に予測不能かつ再生不能である。他のいくつかの実施形態においては、ノイズは、量子力学に由来しておらず、例えばアルゴリズム源から生成される。
【０１２８】
アリス、ボブ、イブによって認識されるデータ列を、それぞれ確率変数Ｘ、Ｙ、Ｚで表すと、図２に関連付けて説明したように、Ｉ（Ｘ;Ｙ）＞Ｉ（Ｘ;Ｚ）である場合に、無条件の安全性を得ることができる。しかしながら、本発明のいくつかの実施形態において、プロトコルは、条件Ｉ（Ｘ;Ｙ|Ｚ）＞０が満足されるように構成されている。言い換えると、アリスとボブとの間で共有され、イブによって共有されない、少なくともいくつかの情報が存在する。これは、アリスとボブとイブとの間の、情報の３者間重なりＩ（Ｘ;Ｙ;Ｚ）を減らし、Ｈ（Ｚ|ＸＹ）を増やしながら、アリスとボブとの間の情報の重なりＩ（Ｘ;Ｙ）を増やすことによって達成することができる。
【０１２９】
このプロトコルは、ボブによって観測されるＳＮＲが、イブによって観測されるＳＮＲより小さい場合であっても、無条件の安全性を達成することができるように構成されている。
【０１３０】
さらに、いくつかの実施形態においては、データ列Ｘを、ボブによって受信される信号内に符号化する方法は、ボブが比較的単純な検出器を用いることを可能にするような方法である。
【０１３１】
次に、プロトコルの各ステージについて、詳細に説明する。
変数送信ステージ
【０１３２】
変数送信ステージ５０１は、アリスからボブに、数値列を送信するためのステージである。以下に説明する実施形態においては、数値はランダムに生成され、一連のランダムな数値が連続的に配送される。しかしながら、他のいくつかの実施形態においては、ランダムでない数値（離散値または連続値）、または値の離散集合の形態しかとらないランダムな数値が用いられる場合がある。いくつかの実施形態においては、数値は、定数〔例えば一連の固定値（０を含むが、それに限定されない）〕である場合がある。数値は、任意の適切な表現様式で表すことができる。図６は、変数送信ステージの各ステップを、より詳細に示すフローチャートである。
【０１３３】
最初のステップ６０１において、アリスの装置４０１のデータソース４０３が、連続型の確率密度関数ＰＤＦχ（ ・ ）に従って、Ｉ個のランダムな数値からなる数値列（Ｘ＝｛χｉ｝；ｉ＝１、２、…、Ｉ）を出力する。本実施形態においては、確率密度関数ＰＤＦχ（ ・ ）は、平均値が０であり、標準偏差が１に正規化されているガウス関数である。しかしながら、平坦分布などの、任意の他の適切な分布を用いることもできる。数値列Ｘは、任意の適切な方法で生成することができる。アルゴリズム的乱数発生器を用いて発生させる数値列が、数学的に厳密な意味で完全にランダムではない場合があるが、アルゴリズム的発生源を、Ｘを生成するために用いることができる。例えばいくつかの実施形態において、数値列Ｘは、アリスとボブとによって最終的に共有される秘密情報を含まない場合がある。
【０１３４】
次のステップ６０３において、アリスの装置４０１の送信ユニット４０７が、任意の適切な技術を用いて数値列Ｘを送信する。数値列Ｘを、例えば古典的チャネルまたは量子チャネルを用いて送信することができる。本実施形態においては、Ｘを送信するために、量子チャネルが用いられる。この場合には、送信ユニット４０７は、数値列Ｘ＝｛χｉ｝の各数値を用いて、コヒーレントなマイクロ波源からの一連のパルスの振幅および／または位相を変調し、変調された信号を、送信器を用いて無線送信する。別のいくつかの実施形態においては、Ｘを送信するために、古典的チャネルが用いられる場合がある。この場合には、ＡＳＫ（振幅偏移キーイング）、ＰＳＫ（位相偏移キーイング）、ＱＡＭ（直交振幅変調）などの従来の古典的技術が用いられ、送信される信号が、数値列Ｘの数値によって変調される。
【０１３５】
数値列Ｘは、第１のチャネル４２７ａを介して、アリスからボブに送信される。例えばイブが第１のチャネル４２７ａ上で盗聴し、第１のチャネル４２７ａ上に送信された信号を検出するかもしれないという意味で、第１のチャネル４２７ａは、安全ではないとみなされるかもしれない。しかしながら、本実施形態においては、チャネル４２７ａは、信頼性が高いとみなすことができる。これは、例えば信号の量子的性質のために、信号のいかなる改ざんや修正も、アリス、および／またはボブによって検出することができるからである。後述のように、例えばアリスとボブとが、ボブによって受信された数値を検証または認証するための適切な方式を実行した場合にも、チャネル４２７ａは信頼性が高いとみなすことができる。他のいくつかの実施形態においては、チャネル４２７ａは、信頼できないとみなすことができる。
【０１３６】
上述の２つのステップにおいて、アリスの装置４０１は、送信信号に何らかのノイズを取り込む可能性がある。例えば何らかの処理ノイズが、送信信号を形成する、量子状態の処理中に取り込まれる可能性がある。さらに、例えばアリスの装置４０１中の電子部品に起因して、何らかの熱ノイズも、信号に取り込まれる可能性がある。アリスの装置４０１によって取り込まれた処理ノイズおよび熱ノイズは、アリスの装置４０１、ボブの装置４１５、およびイブの装置４２９によって受信された信号中に存在することになる。以下の説明においては、これらのノイズ源の影響について無視する。しかしながら、これらのノイズ源の影響が明確に考慮される場合にも、本発明は有効である。
【０１３７】
以下に説明するように、アリスとボブとイブとの装置４０１と４１５と４２９とは、並行して、いくつかのステップを実行する。
【０１３８】
ボブの側では、ボブの装置５１５の受信ユニット４２１が、アリスから送信された信号を受信して復調する（ステップ６０９）。
【０１３９】
次のステップ６１１において、ボブの装置４１５の検出器４２３が、受信信号の振幅、および／または位相の変化を検出し、Ｉ個の数値からなる、対応する数値列（Ｂ＝｛ｂｉ｝；ｉ＝１、２、…、Ｉ）を復元する。ボブの装置４１５の検出器４２３は、例えばホモダイン検出器の形態であっても、ヘテロダイン検出器の形態であってもよい。
【０１４０】
受信信号から数値列Ｂを復元するプロセスの間に、ボブの装置４１５は、１つ以上のノイズ源〔例えば（ランダムな）熱ノイズ（例えばジョンソンノイズを含む）、およびショットノイズを含む〕からノイズを取り込む。その結果、ボブによって復元された数値列Ｂ中の各数値ｂｉは、アリスから送信された元の数値列Ｘ中の対応する数値χｉと、ボブの装置によって取り込まれたノイズに起因する、対応するノイズ値ｎＢｉとの和になる。この関係は、ｂｉ＝χｉ＋ｎＢｉ；ｉ＝１、２、…、Ｉと、または等価的に、Ｂ＝Ｘ＋ＮＢと表すことができる。ＮＢ＝｛ｎＢｉ｝；ｉ＝１、２、…、Ｉは、Ｉ個のノイズ値からなる一連のノイズ値を表している。数値列Ｂは、ボブの装置４１５のメモリ４１７に記憶される。
【０１４１】
アリスの側においても、アリスの装置４０１の受信ユニット４０９は、アリスから送信された信号を受信して復調する（ステップ６０５）。これは、例えばビームスプリッタ４４１、または他の適切な信号分割器を用いて達成することができる。ビームスプリッタ４４１によって、送信信号の電力の一部（例えば５０％）が、アリスの受信ユニット４０９に転入し、送信信号の残りの成分が、ボブの装置４１５に向けて送られる。この場合には、ボブの装置４１５によって受信される信号の電力が低下する。
【０１４２】
次のステップ６０７において、アリスの装置４０１の検出器４１１が、受信信号の振幅および／または位相の変化を検出し、Ｉ個の数値からなる、対応する数値列（Ａ＝｛ａｉ｝；ｉ＝１、２、…、Ｉ）を復元する。アリスの装置４０１の検出器４１１は、例えばホモダイン検出器の形態であっても、ヘテロダイン検出器の形態であってもよい。
【０１４３】
受信信号から数値列Ａを復元するプロセスの間に、アリスの装置４０１は、１つ以上のノイズ源〔例えば（ランダムな）熱ノイズおよびショットノイズを含む〕からノイズを取り込む。その結果、アリスによって復元された数値列Ａの各数値ａｉは、アリスから送信された元の数値列Ｘ中の対応する数値χｉと、アリスの装置によって取り込まれたノイズに起因する、対応するノイズ値ｎＡｉとの和になる。この関係は、ａｉ＝χｉ＋ｎＡｉ；ｉ＝１、２、…、Ｉと、または等価的に、Ａ＝Ｘ＋ＮＡと表すことができる。ＮＡ＝｛ｎＡｉ｝；ｉ＝１、２、…、Ｉは、Ｉ個のノイズ値からなる一連のノイズ値を表している。数値列Ａは、アリスの装置４０１のメモリ４０５に記憶される。
【０１４４】
アリスの装置自身が送信した信号を受信する、アリスの装置４０１のプロセスは、アリスの装置４０１が、自身にローカルチャネル（例えば連続的に可変なローカルチャネル）を利用可能にするプロセスとみなすことができる。このプロセスは、イブによって共有されない、アリスとボブとの間の情報の相互の重なりを可能にするために重要である。本発明のいくつかの実施形態において、アリスの装置４０１からそれ自体に、すなわちアリスの装置４０１内に、ローカルチャネルを利用可能にするためのいかなる適切な手段も用いることができる。
【０１４５】
本実施形態において、一連のノイズ値ＮＡおよびＮＢは、それぞれ連続型の確率密度関数ＰＤＦＮＡ（ ・ ）およびＰＤＦＮＢ（ ・ ）によって特性付けられる。例えば熱ノイズの場合には、確率密度関数ＰＤＦＮＡ（ ・ ）およびＰＤＦＮＢ（ ・ ）は、いずれもガウス関数である場合がある。しかしながら、一連のノイズ値ＮＡおよびＮＢは、熱ノイズおよびショットノイズ以外のノイズ源から生じる場合があり、また平坦分布などの別の確率密度関数にしたがって発生する場合がある。いくつかの実施形態においては、一連のノイズ値ＮＡおよびＮＢは、何らかの特定の確率分布関数にしたがって離散値をとる場合がある。上述のように、いくつかの実施形態においては、ノイズは、通信システムの固有または真性の性質として生じる場合があり、別のいくつかの実施形態においては、例えばアルゴリズム源から、積極的、意図的、および／または人工的に、ノイズを発生させる場合がある。
【０１４６】
アリスの装置４０１と、ボブの装置４１５とによって取り込まれるノイズ成分は、互いに独立である。さらに、ノイズはランダムであるから、予測不能かつ再生不能である。例えば本実施形態においては、ノイズは、量子力学に由来しており、したがって、完全に独立しており、予測不能であり、かつ再生不能である。しかしながら、アリスの装置４０１とボブの装置４１５とによってそれぞれ復元される数値列ＡとＢとは、一連のノイズ値ＮＡとＮＢとの存在によって互いに異なるが、それでも、数値列ＡとＢとの間には何らかの相関関係があり、したがって、何らかの情報の重なりが存在する。
【０１４７】
一連のノイズ値ＮＡおよびＮＢの振幅が大きくなると、またはノイズ対信号比が大きくなる（すなわちＳＮＲが低下する）と、このプロトコルによって達成される安全性が強化されるようになるが、最初のシードデータの与えられた一定の量から得られるデータ量（すなわちデータ率）は減少するようになる。アリスの装置４０１およびボブの装置４１５に取り込まれる一連のノイズ値ＮＡおよびＮＢのレベルを、安全性、および／またはデータ率の望ましいレベルまたは必要なレベルに応じて、調整または制御することができる。
【０１４８】
アリスの受信ユニット４０９とアリスの送信ユニット４０７との間の距離が、ボブの受信ユニット４２１とアリスの送信ユニット４０７との間の距離より短いから、経路損失やその他の電力低下の差を補償して、アリスの装置４０１におけるＳＮＲを、ボブの装置４１５におけるＳＮＲにできるだけ近づけるために、アリスの受信ユニット４０９において、その受信信号が、適切な量だけ減衰させられる場合がある。しかしながら、いくつかの実施形態においては、アリスの装置４０１におけるＳＮＲを、ボブの装置４１５におけるＳＮＲと同じになるようにする必要はない。アリスの装置４０１とボブの装置４１５とにおいて同一の、または類似の、または異なるＳＮＲが得られるように、アリスの装置４０１およびボブの装置４１５に取り込まれる一連のノイズ値ＮＡおよびＮＢのレベルを、調整または制御することができる。
【０１４９】
本実施形態においては、数値列ＡおよびＢに加えられるノイズは、検出器ノイズの形態を呈している。アリスの装置４０１とボブの装置４１５との間に、１つのチャネルが利用可能になっており、アリスの装置４０１は、自身に対して、１つのローカルチャネルを利用可能になっている。しかしながら、他のいくつかの実施形態においては、ノイズを加えて、数値列ＡおよびＢを得るために、任意の適切な代替方法またはさらなる方法が用いられる場合がある。ノイズは、アリスの装置４０１とボブの装置４１５とに等量を、またはアリスの装置４０１とボブの装置４１５とで同じＳＮＲが得られるような量を加えることができる。
【０１５０】
上述の実施形態においては、アリスが、アリスとボブとによって受信される数値列Ｘを発生させて送信する。しかしながら、他のいくつかの実施形態においては、そうではなくて、別の信頼できる当事者（「チャールズ」と呼ばれる）が、数値列Ｘを発生させて送信する場合がある（図８を参照）。アリスがチャールズから送信された数値列Ｘを受け取るように、この場合には、１つのチャネルが、チャールズとアリスとの間で利用可能になっており、アリスは、チャールズから送信された数値列Ｘを受信し、ノイズが加わった状態の数値列Ａを得る。同様に、１つのチャネルが、チャールズとボブとの間で利用可能になっており、ボブは、チャールズから送信された数値列Ｘを受信し、ノイズが加わった状態の数値列Ｂを得る。この場合には、アリスは、自身に対して、ローカルチャネルを利用可能になっている必要はない。
【０１５１】
アリスとボブとの間で、本発明のプロトコルを用いて最終的に共有される情報を得ようとして、イブは、アリス、および／またはボブによって行われるプロトコルのいくつかのステップを真似ようとする場合がある。例えば図６に示されているように、イブの側でも、通信リンク上で盗聴することによって、イブの装置４２９の受信ユニット４３３が、アリスから送信された信号を受信して復調する（ステップ６１３）。イブは、例えばビームスプリッタ４３９、または他の適切な信号分割器を用いて、信号を傍受することができる。それによって、送信信号の電力の一部が、イブの受信ユニット４３３に転入され、信号の残りの成分が、ボブの装置４１５に向けて送られる。この場合には、ボブの装置４１５によって受信される信号の電力が減少する。
【０１５２】
次のステップ６１５において、イブの装置４２９の検出器４３５が、受信信号の振幅および／または位相の変化を検出し、Ｉ個の数値からなる、対応する数値列（Ｅ＝｛ｅｉ｝；ｉ＝１、２、…、Ｉ）を復元する。この数値列Ｅは、イブの装置のメモリ４３１に記憶される。
【０１５３】
受信信号から数値列Ｅを復元するプロセスの間に、イブの装置４２９は、一連のノイズＮＥ＝｛ｎEｉ｝；ｉ＝１、２、…、Ｉを取り込む場合がある。これによって、数値列Ｅ＝Ｘ＋ＮＥがもたらされる。一連のノイズＮＥは、アリスの装置４０１およびボブの装置４１５によって取り込まれるノイズと同様である。しかしながら、本実施形態においては、安全性の観点から、「最悪の想定」として、イブの装置４２９は、ノイズが可能な限り低いレベルに低下しており、０でさえあり得る（ＮＥ＝｛０｝）理想的な検出器を用いていると仮定する。この場合には、Ｅ＝Ｘである。例えば適切に冷却された検出器を用いることによって、熱ノイズを実質的に０まで低下させることができる。
【０１５４】
しかしながら、理想的な検出器を用いて、特定の状況下において、いくつかのノイズ源を取り除くことができるとしても、ショットノイズなどの他のノイズ源は、常に、ある程度存在するであろう。ショットノイズのレベルは、一般に、熱ノイズのレベルより低いから、ボブによって観測されるＳＮＲは、イブによって観測されるＳＮＲより小さい可能性が高い。ボブは、イブによって観測されるＳＮＲより、例えば８桁小さいＳＮＲを観測する場合がある。しかしながら、この場合においても、イブによって観測されるノイズは、０ではなく、アリスとボブとは、やはり共有秘密情報を取得することができる。
【０１５５】
イブの装置４２９によって復元される数値列Ｅは、数値列ＡおよびＢ（それぞれ、一連のノイズＮＡおよびＮＢを含んでいる）の各々と異なるにもかかわらず、数値列Ｅと、数値列ＡおよびＢの各々との間には、何らかの相関関係、したがって、何らかの情報の重なりが存在すると思われる。
【０１５６】
図７は、本実施形態における、アリス、ボブ，イブによる、数値列Ａ、Ｂ、Ｅの検出を概要的に示している。図８は、アリス、ボブ、イブによる、数値列Ａ、Ｂ、Ｅの検出の一代替構成を概要的に示しており、チャールズが、数値列Ｘを送信する。図９は、アリスおよびボブによって検出される数値列ＡおよびＢ中の、対応し合う数値間の関係を示すグラフである。図９に示されているように、数値列ＡおよびＢに取り込まれたノイズは、数値のデータ点の分散をもたらす。
【０１５７】
数値列Ａ、Ｂ、Ｅの間に相関性があるから、変数送信ステージの後では、アリス、ボブ、イブの間に、少なくともいくらかの情報の重なりが存在し、相互情報量Ｉ（Ａ;Ｂ）、Ｉ（Ａ;Ｅ）、Ｉ（Ｂ;Ｅ）、Ｉ（Ａ;Ｂ;Ｅ）の各々は０ではない。この段階においては、アリスとボブとの間の情報の重なりは、アリスとイブとの間の情報の重なりより小さく、したがって、Ｉ（Ａ;Ｂ）＜Ｉ（Ａ;Ｅ）となる場合がある。
【０１５８】
上述の変数送信ステージにおいては、データは、送信信号の振幅および／または位相の変調によって、送信信号中に符号化される。しかしながら、いくつかの実施形態においては、振幅と位相とのうちの一方しか変調されない。振幅と位相とのうちの一方だけの変調によって、総合的なデータ率は低下する（例えば、半分になる）が、信号中に符号化されている数値列を復元するために用いられる検出器を、より単純にすることができることが利点である。振幅と位相とのうちの一方だけの変調を用いることによって、例えばホモダイン検出器もヘテロダイン検出器も用いる必要がなくなる。
【０１５９】
一実施形態において、プロトコルのこの段階で、アリスおよび／またはボブは、任意の適切な技術を用いて、イブによる、信号のいかなる改ざんや変更も検出することができる。例えば一実施形態において、アリスは、上述の送信に加えて、二度目の送信として、ボブが検出を行う際に、復元される数値列が高精度で数値列Ｘに等しくなるほどに、ＳＮＲが十分に大きくなるように、十分に高い送信電力を用いて、ボブに数値列Ｘを送信する。したがって、アリスとボブとの両方が、数値列Ｘを知る。次に、ボブが、アリスに、無作為抽出された、いくつかの数値を送り返す。したがって、アリスは、データ中のいかなる差異も検出することがでる。
【０１６０】
いかなる改ざんまたは変更が検出された場合にも、このプロトコルを停止し、最初から再実行することができる。
データ離散化ステージ
【０１６１】
変数送信ステージ５０１に、データ離散化ステージ５０３が続く。このデータ離散化ステージ５０３は、アリスの装置４０１およびボブの装置４１５によってそれぞれ復元された、連続値の数値列ＡおよびＢを、対応する、離散値の数値列ＡおよびＢに変換するためのステージである。アリスおよびボブによって得られた数値列ＡおよびＢの数値が既に離散的である場合には、例えばＸ、ＮＡ、ＮＢの各々が離散値から成る場合には、データ離散化ステージ５０３を省略することができる。連続値の数値列ＡおよびＢではなくて、離散値の数値列ＡおよびＢを用いる理由は、離散値の数値列ＡとＢとで、対応し合う数値の正確な一致を見出す確率が０にならないということである。特に、擾乱を受けた２つの連続値が正確に等しくなる確率は無限に小さい。
【０１６２】
本実施形態においては、離散化は、データスライシング法を用いて、復元された各連続値を、対応する（離散）２進値に変換することによって行われる。しかしながら、いくつかの代替実施形態においては、数値の離散化のために、別のいくつかの方法を用いることができ、また離散化値は、２進値以外で表してもよいことは理解しうると思う。いずれにしても、本実施形態においては、アリスとボブとは、同一の離散化方式を用いる。
【０１６３】
図１０は、本実施形態におけるデータ離散化ステージ５０３の各ステップを、より詳細に示すフローチャートである。図１１は、データスライシング法の一例を示す概要図である。
【０１６４】
図１１に示すように、数値列ＡおよびＢ中の数値の範囲を包含する数値範囲が、ｐ個の部分的範囲１１０１に分割される。部分的範囲の数ｐは２の整数乗、すなわち、ｐ＝２ｍである。ｐ個の部分的範囲は、（ｐ＋１）個の固定したセパレータ値１１０３（τ０、τ１、…、τｐ）によって定めることができる。ここで、τ０＜τ１＜…＜τｐである。図１１に示されている例においては、τ０＝−∞、τｐ＝＋∞、τｋ＝τｋ−１＋Δτ（ｋ＝２、…、ｐ−１であり、Δτは定数）である。したがって、ｊ番目（ｊ＝１、２、３、…、２ｍ）の部分的範囲は、τｊ−１＜ｘ≦τｊとなるｘの値の範囲によって定められる。二進値が、任意の適切な方式を用いて、各部分的範囲にマッピングされる。図１１に示す例においては、二進値は、（ｊ−１）のｍビット二進表現が、ｊ番目（ｊ＝１、２、３、…、２ｍ）の部分的範囲にマッピングされるように、部分的範囲にマッピングされる。例示のため、図１１においては、ｐ＝８、ｍ＝３が用いられている。しかしながら、他の数値を用いることもできる。例えば本実施形態においては、ｍ＝１１が用いられる。別の一実施形態においては、ｍ＝１６が用いられる場合がある。
【０１６５】
アリスの装置４０１およびボブの装置４１５によって取り込まれるノイズＮＡ、およびＮＢのレベル、および／またはデータスライシングパラメータは、離散化後に、ノイズが、離散化すなわちスライシングされるデータ（数値）に顕著な影響を与えるように、調整または制御されるべきである。ノイズの付加によって、例えばデータ値のかなりの部分が、ノイズの存在していない場合に入ると思われる部分的範囲と異なる部分的範囲にはみ出すようになることが好ましい（例えば特定の個別のノイズ値が比較的小さい場合には、いくらかのデータ値は、はみ出さないかもしれないが）。
【０１６６】
数値ｖの離散化のために、以下のステップが実行される。最初に、ステップ１００１において、上述のように、ｐ個の部分的範囲が定められる。次に、ステップ１００３において、数値ｖが入る部分的範囲１１０１が特定される。次いで、ステップ１００５において、前のステップ１００３で見つかった部分的範囲１１０１にマッピングされる二進値が決定される。その後、ステップ１００７において、数値ｖが、前のステップ１００５で見つかった二進値に変換される。例えば図１１に示されている例示的な場合においては、τ３より大きく、τ４以下である数値ｖは４番目の部分的範囲にはいり、したがって、二進値０１１に変換される。
【０１６７】
上述のデータスライシング法は、式７（数１７）によって簡潔に表すことができる。
【数１７】
2015522998.tif 000019
【０１６８】
式７において、Ｓｉ（ｘ）は、連続的な入力値ｘから得られる二進値のｉ番目のビットであり、ｎは、集合（０，１、…、２ｍ−ｉ−１）から選択される任意の整数である。
【０１６９】
図１０に示すように、このプロトコルによれば、アリスの装置４０１のプロセッサ４１３は、上述のデータスライシング法を用いて、アリスの装置４０１のメモリ４０５に記憶されている数値列Ａの各数値ａｉを、離散的なｍビットの二進値である、対応する数値ａｉに変換する。これによって、一連のｍビットの二進値から成る、対応する数値列Ａ＝｛ａｉ｝；ｉ＝１、２、…、Ｉが生成される。同様に、ボブの装置４１５のプロセッサ４２５は、同じデータスライシング法を用いて、ボブの装置４１５のメモリ４１７に記憶されている数値列Ｂの各数値ｂｉを、離散的なｍビットの二進値である、対応する数値ｂｉに変換する。これによって、一連のｍビットの二進値から成る、対応する数値列Ｂ＝｛ｂｉ｝；ｉ＝１、２、…、Ｉが生成される。
【０１７０】
図１０に示すように、イブの装置４２９は、ボブの装置４１５によって実行されるステップを真似る。すなわち、イブの装置４２９のプロセッサ４３７が、イブの装置４２９のメモリ４３１に記憶されている数値列Ｅ＝｛ｅｉ｝を、一連のｍビットの二進値から成る、対応する数値列Ｅ＝｛ｅｉ｝；ｉ＝１、２、…、Ｉに変換する。
【０１７１】
アリスのノイズＮＡのレベルが比較的低い場合（アリスが自分に対するローカルチャネルを利用可能にせず、したがってＮＡ＝｛０｝であるシステムの場合など）には、ボブによって観測されるＳＮＲが、イブによって観測されるＳＮＲより小さかったとしても、アリスおよびボブが、共有秘密情報を確実に得ることができるように、スライス数、および／またはスライスされた数値がマッピングされる部分的範囲の設定を選択することができる。以下においては、イブによって観測されるノイズ源はショットノイズだけであると仮定し、さらに、例えばイブの受信器が、アリスの送信器にできるだけ接近するように配置されているために、イブによって観測される信号強度が最大であると仮定する。このような仮定の下では、イブによって観測されるＳＮＲが最大である。
【０１７２】
離散化された数値列ＡとＥとが同一とならないか、または少なくともあまり類似しないことを保証するために、イブが最大ＳＮＲを観測したとしても、数値列Ｅ中の各数値の少なくともいくらかが、数値列Ａの対応する数値の入る部分的範囲と異なる部分的範囲に入るように、部分的範囲の幅を選択することができる。例えば部分的範囲の幅が広すぎる場合には、イブによって観測されるノイズが比較的小さいと、離散化された数値列ＡとＥとで対応し合う数値が、互いに異なる部分的範囲に入るほど十分に、数値列Ｘ中の各数値を乱す可能性は低くなる。
【０１７３】
例えばいくつかの実施形態において、スライス数は、式８を満足するように選ばれる。
２ｍ＞Ｓ／Ｎ            式８
【０１７４】
式８において、ｍは、スライス数であり、Ｓは、イブによって観測される信号のレベルであり、Ｎは、イブによって観測されるノイズのレベルである。Ｓは、例えばイブの受信器を、できるだけアリスの送信器に近づくように配置することによって、イブによって観測される最大信号であり、Ｎは、理想的な検出器（例えばショットノイズしか存在しない）を用いて、イブによって観測されるノイズの可能な限り低いレベルである場合がある。
【０１７５】
ここで、プロトコルの説明に戻る。それぞれに全部でｍ×Ｉビットから成る数値列Ａ、Ｂ、Ｅが、それぞれアリスの装置４０１、ボブの装置４１５、イブの装置４２９のメモリ４０５、４１７、４３１に記憶される。これらの数値列の各々を構成している各数値は、それぞれに特定の確率分布関数によって特性付けられ、数値列間の関係は、特定の結合確率分布関数および条件付き確率関数によって特性付けられる。
【０１７６】
データ離散化ステージの後では、離散化された数値列Ａ、Ｂ、Ｅの間に相関関係がある。したがって、アリス、ボブ、イブの間には、少なくともいくらかの情報の重なりがあり、相互情報値Ｉ（Ａ;Ｂ）、Ｉ（Ａ;Ｅ）、Ｉ（Ｂ;Ｅ）、Ｉ（Ａ;Ｂ;Ｅ）は、いずれも０にならない。変数送信ステージの場合と同様に、アリスとボブとの間の情報の重なりは、アリスとイブとの間の情報の重なりより小さくなる、したがって、Ｉ（Ａ;Ｂ）＜Ｉ（Ａ;Ｅ）となる場合がある。
【０１７７】
上述の方法にしたがって連続値を変換することによって得られる二進値の各ビットは、「スライス」と呼ばれることがある。変換された二進値のスライスを、例えば最上位ビットがスライス番号１と表され、最下位ビットがスライス番号ｍと表されるように、ビット桁数の順に番号付けすることができる。数値ａｉのｊ番目のスライスは、ａｉ,ｊと表すことができる。同様に、数値列内の各数値の特定の順のスライスを抽出することによって、その数値列をスライス化することができる。例えば数値列Ａの各数値ａｉのｊ番目のスライスをとることによって得られる二進値を、列スライス｛ａｉ,ｊ｝＝Ａｊを形成しているとみなすことができる。
【０１７８】
各スライスは、各桁のビットに対応するから、変換プロセスにおける、部分的範囲への二進値のマッピングの仕方に応じて、ノイズに起因するビット誤り率は、スライスごとに異なる。具体的には、上述の例においては、１番目のスライス（最上位ビット）からｍ番目のスライス（最下位ビット）に向かうにつれて、ビット誤り率は増加する。これは、１番目のスライスにおいては、アリスとボブとの間に、最も高い相関関係、したがって、最も高い相互情報量が存在することを意味する。逆に、ｍ番目のスライスにおいては、アリスとボブとの間に、最も低い相関関係、したがって、最も低い相互情報量しか存在しない。具体的には、ｊ＜ｋであれば、Ｉ（Ａｊ;Ｂｊ）＞Ｉ（Ａｋ;Ｂｋ）である。同様の関係が、アリスとイブとの間、およびボブとイブとの間にも当てはまる。
【０１７９】
数値列Ｂの各列スライスＢｉは、二元対称通信路を介する、数値列Ａの対応する列スライスＡｉの送信の結果であるとみなすことができる。二元対称通信路の誤り確率は、一般に、１番目のスライスからｍ番目のスライスに向かって、スライスごとに異なる。
【０１８０】
上述の例においては、二進値と部分的範囲との間の１つの特定のマッピングが用いられているが、ｊ＜ｋにおいて、Ｉ（Ａｊ;Ｂｊ）＞Ｉ（Ａｋ;Ｂｋ）という条件、またはｊ＞ｋにおいて、Ｉ（Ａｊ;Ｂｊ）＞Ｉ（Ａｋ;Ｂｋ）という条件が満足されるように、またはより一般的に、スライスごとに、数値列ＡとＢとの間の相互情報に差異が生じるように、二進値と部分的範囲との間の任意の適切なマッピングを選択することができる。
【０１８１】
プロトコルの次のステージにおいて、アリスの装置４０１とボブの装置４１５との間で、共有秘密情報の取得のために、特定の情報が交換される。本実施形態においては、この情報交換は、変数送信ステージ５０１において用いられる第１のチャネル４２７ａと異なる第２のチャネル４２７ｂを用いて行われる。第２のチャネル４２７ｂは、誤り訂正チャネルの形態である場合がある。この情報は、例えば適切に適用することができる任意の誤り訂正技術を有するメッセージの形式で送信される場合がある。一方、本実施形態においては、上述の変数送信ステージ５０１におけるデータ送信は、非誤り訂正チャネルを用いて実行される。誤り訂正チャネルと非誤り訂正チャネルとは、同一の物理チャネルを用いて実施される場合もあるし、そうではなくて、図４に示すように、異なる物理チャネルを用いて実施される場合もある。
誤り訂正ステージ
【０１８２】
データ離散化ステージ５０３に、誤り訂正ステージ５０５（照合ステージと呼ばれることもある）が続く。図１２は、誤り訂正ステージの各ステップをより詳細に示すフローチャートである。以下の説明において、複数の数値列における、「対応し合う」数値という表現は、それらの数値列中の、同じ位置にある数値のことを意味している。例えば同一のｉの値に対して、数値ａｉ、ｂｉ、ｅｉは、数値列Ａ、Ｂ、Ｅ中の対応し合う数値である。
【０１８３】
データ離散化ステージ５０３の実行後、元の数値列Ａ＝Ｘ＋ＮＡおよびＢ＝Ｘ＋ＮＢのノイズ成分が互いに独立であるために、アリス、ボブ、イブによってそれぞれ得られる数値列Ａ、Ｂ、Ｅ中の対応し合う数値は、一般に、一致しない。しかしながら、偶然、いくつかの対応し合う数値が正確に一致する場合があり、またＡとＢとの間、ＡとＥとの間、および／またはＢとＥとの間で、比較的小さな誤りだけしか異ならない場合がある。誤り訂正ステージは、イブによって、ＡとＥとの間、およびＢとＥとの間で、対応し合う数値が一致する数を増やされないようにしながら、ＡとＢとの間で、対応し合う数値が一致する数を増やすためのものである。言い換えると、誤り訂正ステージは、アリスとボブとが、それぞれの数値列の間の相関を増やし、一方、イブによって、イブの数値列と、アリスおよびボブの数値列との間の相関を、少なくとも同程度だけ増やされないようにすることを可能にする。
【０１８４】
数値列ＡとＢとの間で対応し合う数値が一致する数を増やすために、誤り訂正法が用いられる。図示の実施形態においては、この誤り訂正法は、数値列ＡとＢとで対応し合う数値の間の誤りを訂正するために、数値列ＡとＢの各数値に、誤り訂正符号を繰り返して適用するステップを含んでいる。
【０１８５】
数値列ＡとＢとで対応し合う、ある２つの数値が正確に一致するときには常に、誤り訂正符号の適用によって、それらの数値は変わらず、一致したままである。数値列ＡとＢとで対応し合う、ある２つの数値が正確に一致するわけではないが、ほぼ正確に一致する〔２つの数値間の誤り（例えば、ハミング距離）が一定量以下であることを意味する〕ときには、常に誤り訂正符号の適用によって、誤りが０まで減縮し（すなわち、誤りが訂正され）、２つの数値は、正確に一致するようになる。しかしながら、数値列ＡとＢとで対応し合う、ある２つの数値が、正確に一致するわけでも、ほぼ正確に一致するわけでもないときには、常に誤り訂正符号の適用によって、２つの数値の間の誤りが訂正される可能性は低く、それどころか、誤りが増大する可能性が高い（誤り訂正符号は、一定量を超過する誤りを訂正することができないために）。
【０１８６】
したがって、この誤り訂正処理の遂行後には、数値列ＡとＢとで対応し合う数値のうちの、両者における特定の部分集合は、互いに高度に相関性を有し（正確に一致し）、対応し合う数値のうちの残りの部分は、誤り訂正処理の遂行以前より相関性を有しなくなる。相関性の高い部分集合は、プロトコルの次のステージにおいて抽出される。
【０１８７】
誤り訂正ステージ以前においても、数値列ＡとＢとで対応し合う数値の少なくともいくつかは、正確に一致している可能性が高いから、誤り訂正ステージは、場合によっては必要とされず、したがって、いくつかの代替実施形態においては省略される場合がある。しかしながら、誤り訂正ステージの遂行によって、一定量の初期シードデータから得られる共有秘密情報の量は増加しやすくなる。この増加は、正確に一致しているわけではないが、比較的小さな誤り分だけしか異なっていない、対応しあう数値が存在するという事実、すなわち、誤り訂正ステージの遂行によって正確に一致するようになる、対応しあう数値が存在するという事実に基づいている。誤り訂正ステージは、さらに、イブとアリス／ボブとの間の情報の重なりを減らすのにも役立つ。
【０１８８】
数値列ＡとＢとで対応し合うか、ある２つの数値が一致する（正確に、であれ、ほぼ正確に、であれ）ときには、常に、イブの側では、数値列Ｅ中の、それらの２つの数値に対応する数値も、それらの２つの数値と一致する（正確に、または、ほぼ正確に）可能性は低くなる。したがって、数値列ＡとＢとで対応し合う、ある２つの数値が、誤り訂正法によって一致するようになったときには常に、イブが、自分のデータを、アリスのデータおよびボブのデータに一致させるために、誤り訂正符号を用いようとすると、数値列ＥとＡとの間、および数値列ＥとＢとの間の、それらの２つの数値に対応する２つの数値間の誤りが増大する可能性が高くなる。したがって、誤り訂正法の適用によって、数値列ＡとＢとで対応し合う２つの数値の特定の部分集合は、高度に相関し合うようになる一方、数値列Ｅ中の数値の、対応する部分集合は、数値列ＡおよびＢの部分集合と、より相関しなくなる可能性が高くなる。
【０１８９】
その結果、対応し合う２つの数値の特定の部分集合において、アリスとボブとの間の情報の重なりＩ（Ａ;Ｂ）は増加し、アリス、ボブ、イブの間の情報の３者間重なりＩ（Ａ;Ｂ;Ｅ）は減少する。
【０１９０】
アリス、ボブ、イブの間で対応し合う３つの数値に一致が生じる様子が、図１３に示されている。図１３において、３本の縦線は、数値列Ａ、Ｂ、Ｅを表しており、丸は、それらの数値列中の個々の数値を表している。黒丸は、他の２つの数値列のうちの少なくとも１つ中の、対応する数値に一致する（正確に、またはほぼ正確に）数値が生じたことを示しており、白丸は、他の２つの数値列のどちらの、対応する数値とも一致しない（正確にも、ほぼ正確にも）数値を表している。横線は、３つの数値列のうちの少なくとも２つの、対応し合う数値の間に一致が生じていることを表している。
【０１９１】
図１３は、アリスとボブとの間、アリスとイブとの間、イブとボブとの間に一致が生じ得るが、アリスとボブとイブとの３者全ての間の同時一致は、任意の２者間の一致よりもはるかに生じにくいことを示している。具体的には、アリスとボブとの間の一致の確率をＰＡ,Ｂ、アリスとイブとの間の一致の確率をＰＡ,Ｅ、アリスとボブとイブとの間の３者間一致の確率をＰＡ,Ｂ,Ｅとすると、ＰＡ,Ｂ,Ｅは、ＰＡ,Ｂ×ＰＡ,Ｅの程度であり、ＰＡ,Ｂより小さい。
【０１９２】
本実施形態においては、誤り訂正ステージにおける誤り訂正を行うために、ＢＣＨ（Bose Ray Chaudhuri）誤り訂正法を用いる。しかしながら、他の任意の適切な誤り訂正技術を用いることもできる。ここで、ＢＣＨ誤り訂正法について簡単に説明する。ＢＣＨ符号化においては、サイズ１×ｋビットのメッセージベクトルに、サイズｋ×ｎビットの生成行列Ｇを乗算して、サイズ１×ｎビットのコードワードベクトルＣを生成する。コードワードベクトルＣには、元の１×ｋビットのメッセージベクトルと、サイズ１×（ｎ−ｋ）ビットのパリティベクトルとのコンカチネーション（連結）が含まれている。パリティベクトルは、コードワードベクトルＣに冗長性を付加し、コードワードベクトルＣのビット誤り（特定の最大誤り数までの）を識別して訂正するパリティビットを有している。所望の数のビット誤りを訂正することができるコードワードベクトルを生成するように、生成行列Ｇを選択することができる。
【０１９３】
損傷しているかもしれない（例えば、データ送信の結果として）、サイズ１×ｎビットのコードワードＲ内のビット誤りを識別して訂正するために、生成行列Ｇに対応する、サイズ（ｎ−ｋ）×ｎビットのパリティチェック行列（または復号行列）Ｐが用いられる。検査されるべきコードワードの転置ＲＴに、パリティチェック行列Ｐが左から乗算され、サイズ（ｎ−ｋ）×１ビットのシンドロームベクトルが得られる。シンドロームベクトルには、誤りを識別して訂正することを可能にする情報が含まれる。ビット誤り数が、用いられている特定のＢＣＨ符号によって検出可能な最大誤り数以下であれば、シンドロームベクトルは、それらのビット誤りの位置を識別し、それによってそれらのビット誤りを訂正することができる情報を符号化するか、または含む。
【０１９４】
本実施形態における誤り訂正ステージの各ステップに説明を戻すと、図１２に示されているように、最初のステップ１２０１において、ボブの装置４１５のプロセッサ４２５は、長さｋのメッセージＭから長さｎのコードワードＣを生成するように選択されたＢＣＨ生成行列Ｇを得る。コードワードＣは、（ｎ−ｋ）個のパリティビットを含んでおり、ｑビットの誤りまで訂正することができる。次のステップ１２０３において、アリスの装置４０１のプロセッサ４１３は、ＢＣＨ生成行列Ｇに対応するパリティチェック行列Ｐを得る。ＢＣＨ生成行列Ｇおよびパリティチェック行列Ｐはあらかじめ定められており、アリスの装置４０１およびボブの装置４１５のメモリに記憶されている場合がある。本実施形態においては、ｎ＝１５、ｋ＝１１、ｑ＝１の値が用いられ、ＢＣＨ生成行列Ｇは、生成元ｘｍＭｏｄ（ｘ４＋ｘ３＋１）から生成される。しかしながら、これらは単なる例示のためのものであるにすぎず、他の値や生成元を用いることができることは理解されるであろう。例えば別の一実施形態においては、ｎ＝２１、ｋ＝１５、ｑ＝１である。
【０１９５】
次に、ボブの装置４１５とアリスの装置４０１とは、数値列ＡとＢとで対応し合う数値ａｉ、ｂｉから成る各数値対に対して、以下の一連のステップを反復して実行するように協働する。具体的には、最初に、ステップ１２０５において、ボブの装置４１５のプロセッサ４２５が、ＢＣＨ生成行列Ｇを用いて、数値ｂｊに対するＢＣＨコードワードを得る。次のステップ１２０７において、ボブの装置４１５の送信ユニット４１９が、数値ｂｊに対するＢＣＨコードワードの（ｎ−ｋ）個のパリティビットを送信する。
【０１９６】
次のステップ１２０９において、アリスの装置４０１の受信ユニット４０９が、ボブの装置４１５から送信された（ｎ−ｋ）個のパリティビットを受信する。次のステップ１２１１において、アリスの装置４０１のプロセッサ４１３が、数値ａｉに、ボブの装置４１５から受信した（ｎ−ｋ）個のパリティビットを作用させて、数値ａｉに対するＢＣＨコードワードを得る。数値ａｉとｂｉとが相異なっている場合には、数値ａｉとｂｉとに対するパリティビットが、一般に（常に、ではないが）、相異なるものになるから、このようにして構築された、数値ａｉに対するＢＣＨコードワードは、一般に（常に、ではないが）、生成行列Ｇを直接に用いて生成された、数値ａｉに対するＢＣＨコードワードと異なるものになる。次のステップ１２１３において、アリスの装置４０１のプロセッサ４１３が、パリティチェック行列Ｐを用いて、数値ａｉのＢＣＨコードワードに対するシンドロームベクトルを得る。次のステップ１２１５において、アリスの装置４０１のプロセッサ４１３が、シンドロームベクトルを用いて数値ａｉの値を訂正する。次のステップ１２１７において、アリスの装置４０１のプロセッサ４１３が、数値列Ａ中の数値ａｉの元の値を、訂正された値に置き換える。
【０１９７】
誤り訂正処理は、ボブの数値ｂｉを用いて、より具体的には、ボブの数値から導出される誤り訂正情報を用いて、アリスの数値ａｉを訂正するプロセスとみなすことができる。この誤り訂正処理の前の数値ａｉとｂｉとの間の誤り（ハミング距離）が、ｑビット以下であった場合には、数値ａｉとｂｉとの間の誤り訂正処理によって、誤り訂正処理後には、数値ａｉは、数値ｂｉに等しくなる。しかしながら、誤り訂正処理の前の数値ａｉとｂｉとの間の誤りが、ｑビットを超過していた場合には、数値ａｉとｂｉとの間の誤り（ハミング距離）は、増加しがちである。取り込まれたさらなる誤りは、スライス全体にわたって一様に分散する。
【０１９８】
一代替実施形態として、上述の誤り訂正処理で、アリスとボブとの役割が交換される場合がある。
【０１９９】
次のステップ１２１９において、処理されずに残っている、数値列ＡとＢとで対応し合う数値が存在する（すなわち、ｉ＜Ｉである）場合には、次の対応し合う数値ａｉ＋１、ｂｉ＋１の数値対の間で、上述の誤り訂正処理が行われる。
【０２００】
したがって、誤り訂正ステージ全体の結果として、正確に一致する、数値列ＡとＢとで対応し合う数値の数は、増加する場合が多く、一方、一致しない、対応し合う数値（最初から、ｑ個を超過するビットにおいて互いに異なっている、対応し合う数値）は、より相関性が低くなる場合が多い。
【０２０１】
アリスの装置４０１とボブの装置４１５との間の通信リンク上で盗聴することによって、イブの装置４２９は、ボブの装置４１５からアリスの装置４０１に送信されるパリティビットを傍受することができる。しかしながら、アリスのデータとボブのデータとが一致しているときには、イブは、これらのパリティビットを用いて、自分のデータを、アリスのデータおよびボブのデータと一致させることはできない。これは、数値列ＡとＢとで対応し合う数値ａｉとｂｉとの間の誤りが、ｑビット以下である（したがって、誤り訂正処理後に、数値ａｉとｂｉとの間で正確な一致が得られる）場合に、数値列ＥとＢとで対応し合う数値ｅｉとｂｉとの間の誤りもｑビット以下になる可能性は低いからである。したがって、図１２において、ステップ１２０３ｅおよびステップ１２０９ｅ〜１２１９ｅによって示されているように、イブが、アリスによって実行されるプロセスを真似ると、誤り訂正処理後に、数値ａｉとｂｉとが正確に一致するようになるほとんどの場合において、数値ｅｉとｂｉとの間の誤りが増大する可能性が高い。
【０２０２】
さらに、パリティビットの数が、数値列中の各数値のビット数より少ないために、パリティビットの各１つの集合（１つの数値に対する）にいくつかの相異なる値がマッピングされるから、イブは、送信されてきたパリティビットから、数値ｂｉの値を一義的に特定することはできない。
【０２０３】
図１２に示す処理は、本発明のいくつかの実施形態において用いることができる誤り訂正処理の一例であるにすぎないことは理解しうると思う。図１２に示す誤り訂正処理は、例えばアリスとボブとが、それぞれの数値列間の相関性を高くするとともに、イブが、自分の数値列と、アリスおよびボブの数値列との間の相関性を、少なくとも同程度に高くすることを防止することを可能にするための、任意の適切な処理に置き換えることができる。
【０２０４】
例えば本発明のいくつかの実施形態において用いることができるいくつかの誤り訂正処理には、第１当事者（例えばボブ）が、任意の適切な誤り訂正情報（例えば任意の適切な系統誤差訂正符号化方式の誤差訂正情報）を、第２当事者（例えばアリス）に送信するプロセスを含めることができる。誤り訂正情報は、第１当事者の数値列中の数値に基づいて生成される。次に、第２当事者が、受信した誤り訂正情報を、第２当事者の数値列中の対応する数値に適用する。いくつの実施形態においては、アリスとボブとの役割が、交換される場合がある。
【０２０５】
誤り訂正処理を適用することによって、第１当事者と第２当事者との数値列中の対応し合う２つの数値の間の差を減少させる（おそらくは０にまで）、０でない確率が存在する。第１当事者と第２当事者とのそれぞれの数値列中の各数値に誤り訂正処理を適用することによって、第１当事者と第２当事者との数値列が、より高い相関性を有するようになる、０でない確率が存在する。
データ一致合意ステージ
【０２０６】
誤り訂正ステージ５０５に、データ一致合意ステージ５０７が続く。データ一致合意ステージはまた、アドバンテージディスティレーションステージと呼ぶこともできる。図１４は、データ一致合意ステージ５０７の各ステップを、より詳細に示すフローチャートである。
【０２０７】
このデータ一致合意ステージは、アリスおよびボブが、誤り訂正ステージ後に、それぞれの数値列ＡとＢとの間で一致している、対応し合う数値ａｉ、ｂｉを識別することを可能にするためのステージである。この識別によって、アリスおよびボブが、彼らの数値列から相関性の高い数値の部分集合を抽出し、より相関性の少ない残りの数値を破棄することが可能になる。図１４に示すように、以下の一連のステップが、数値列ＡとＢとで対応し合う数値ａｉ、ｂｉから成る各数値対に対して反復して実行される。最初のステップ１４０１において、アリスの装置４０１のプロセッサ４１３が、ランダムなｍビットの二進値（ｖと記す）を生成する。次のステップ１４０３において、アリスの装置４０１のプロセッサ４１３は、新たなｍビットの二進値（数１８）を計算する。数１は、ビット単位のモジュロ２加算を意味する。次のステップ１４０５において、アリスの装置４０１の送信ユニット４０７が、数値ａｉ’を送信する。
【数１８】
2015522998.tif 000020
【０２０８】
次のステップ１４０７において、ボブの装置４１５の受信ユニット４２１が、アリスの装置４０１から送信された数値ａｉ’を受信する。次のステップ１４０９において、ボブの装置４１５のプロセッサ４２５が、新たなｍビットの数値（数１９）を計算する。このとき、アリスとボブとのデータ値が一致していれば（すなわち、ａｉ＝ｂｉであれば）、ｂｉ’＝ｖとなる。
【数１９】
2015522998.tif 000021
【０２０９】
ｂｉ’＝ｖであるか否かを検証するために、次のステップ１４１１において、ボブの装置４１５のプロセッサ４２５が、あらかじめ定められたハッシュアルゴリズムＨ（・）を用いて、数値ｂｉ’から、ｐビットのハッシュ値Ｈ（ｂｉ’）を計算する。ｐ＜ｍである。本実施形態においては、このハッシュ値は、ＢＣＨ生成行列を用いて生成された、数値ｂｉ’に対するＢＣＨコードワードのパリティビットを含んでいる。ＢＣＨ生成行列は、例えば上述の誤り訂正ステージにおいて用いたものと同じである場合がある。他のいくつかの実施形態においては、ｍビットの入力値からｐビットの出力値を計算する（ｐ＜ｍ）ための、任意の他の適切な関数が用いられる場合がある。次のステップ１４１３において、ボブの装置４１５の送信ユニット４１９が、ハッシュ値Ｈ（ｂｉ’）を送信する。
【０２１０】
次のステップ１４１５において、アリスの装置４０１の受信ユニット４０９が、ボブの装置４１５から送信されたハッシュ値Ｈ（ｂｉ’）を受信する。次のステップ１４１７において、アリスの装置４０１のプロセッサ４１３が、ボブのプロセッサ４２５によって用いられたハッシュアルゴリズムと同じハッシュアルゴリズムＨ（・）を用いて、数値ｖからｐビットのハッシュ値Ｈ（ｖｉ）を計算する。次のステップ１４１９において、アリスの装置４０１のプロセッサ４１３が、アリスの装置４０１のプロセッサ４１３によって計算されたハッシュ値Ｈ（ｖｉ）と、ボブから受信したハッシュ値Ｈ（ｂｉ’）とを比較する。次のステップにおいて、２つのハッシュ値が一致していると、アリスの装置４０１のプロセッサ４１３が判断した場合には、ｂｉ’＝ｖであるとみなされ、アリスの装置４０１の送信ユニット４０７が、ｂｉ’＝ｖであるか否か、したがって、ａｉ＝ｂｉ であるか否かを示す信号（確認信号）を送信する（ステップ１４２１）。
【０２１１】
図１４に示す実施形態においては、確認信号には、反復のたびに、一致しているか否かに関わりなく送信され、「一致」と「不一致」とのどちらかを示す一致フラグ信号が含まれている。別の一実施形態においては、確認信号は、一致しているときしか送信されない。この場合には、確認信号が受信されれば、一致が示され、確認信号が受信されなければ、不一致が示される。
【０２１２】
次のステップ１４２３において、アリスの装置のプロセッサは、数値ａｉを保持し続けるか、または破棄し、ボブの装置４１５のプロセッサ４２５は、ステップ１４２５ｂにおいて受信した確認信号に応じて、数値ｂｉ を保持し続けるか、または破棄する。具体的には、確認信号が、ａｉ＝ｂｉ であることを示している場合には、アリスの装置４０１のメモリ４０５が、数値ａｉ（＝ｂｉ ）を記憶し、ボブの装置４１５のメモリ４１７が、数値ｂｉ（＝ａｉ ）を記憶する。一方、確認信号が、ａｉ≠ｂｉ であることを示している場合には、数値ａｉおよびｂｉ は、アリスの装置４０１およびボブの装置４１５によって破棄される。
【０２１３】
次のステップ１４２７において、処理されずに残っている、数値列ＡとＢとで対応し合う数値が存在する（すなわち、ｉ＜Ｉである）場合には、対応し合う数値ａｉ＋１、ｂｉ＋！から成る次の数値対において、上述のデータ一致合意処理が行われる。数値列ＡおよびＢ中の全ての数値が処理された場合には、データ一致合意ステージが終了する。
【０２１４】
一代替実施形態において、上述のデータ一致合意処理で、アリスとボブとの役割が交換される場合がある。
【０２１５】
データ一致合意ステージの遂行中、元の数値のいくつかが破棄されるから、数値列ＡおよびＢは、長さＩから長さＩ０＜Ｉに短くなる。しかしながら、アリスの数値列とボブの数値列との相関性は、より上昇し、イブの数値列とアリスおよびボブの数値列との相関性は低下する。
【０２１６】
上述のデータ一致合意処理において、イブは、アリスとボブとの間の通信リンク上で盗聴し、データ一致合意処理中に送信された、いくつかの数値（アリスから送信された数値ａｉ’、ボブから送信されたハッシュ値Ｈ（ｂｉ’）、アリスから送信された確認信号を含む）を得ることができる。しかしながら、これらの数値のいずれによっても、イブは有用な情報を得ることができない。
【０２１７】
例えば数値ａｉ’を生成するために用いられる数値ｖが完全にランダムであり、アリスによって秘密に保たれていると仮定すると、イブは、数値ａｉ’を知っても、数値ａｉに関するいかなる情報も得ることができない。さらに、ハッシュ関数Ｈ（・）によって生成されるハッシュ値のビット数が、そのハッシュ値の生成の元であるデータ値（数値）のビット数より少ないから、ハッシュ関数Ｈ（・）は、各１つのハッシュ値に複数のデータ値をマッピングする。したがって、イブは、ハッシュ値Ｈ（ｂｉ’）を用いて、特定の数値ｂｉ’を、高い信頼度で特定することができない。さらに、確認信号によって、イブは、アリスとボブとが、対応し合う数値が一致していると判定した、数値列ＡおよびＢ中の位置を特定することができるが、その位置に対応する、イブの数値ｅｉは、一般に、アリスおよびボブの数値ａｉおよびｂｉ と異なるから、その位置における実際の数値ａｉおよびｂｉ は、イブにはわからないままである。
【０２１８】
上述のデータ一致合意処理において、ハッシュ値Ｈ（ｖｉ）とＨ（ｂｉ’）とが一致すれば、ｂｉ’＝ｖ、したがって、ａｉ＝ｂｉ であると仮定している。しかしながら、前述のように、ハッシュ関数Ｈ（・）によって生成されるハッシュ値のビット数が、そのハッシュ値の生成の元であるデータ値のビット数より少ないから、ハッシュ関数Ｈ（・）は、各１つのハッシュ値に複数のデータ値をマッピングする。これは、数値ｂｉ’とｖとが（したがって、数値ａｉとｂｉとが）互いに異なっていても、ハッシュ値Ｈ（ｖｉ）とＨ（ｂｉ’）とが一致する可能性があることを意味する。したがって、データ一致合意ステージの遂行後には、数値列ＡとＢとで対応し合う数値の一致する数が増加するが、依然として正確には一致しない、いくつかの対応し合う数値が存在し得る。
【０２１９】
図示の実施形態においては、アリスおよびボブは、確認信号に基づいて、ａｉおよびｂｉを保持し続けるか、または破棄する。一代替実施形態においては、アリスおよびボブは、確認信号に関わりなく、数値ａｉおよびｂｉを破棄する。しかしながら、この場合には、確認信号が、ａｉ＝ｂｉであることを示しているときに、アリスおよびボブは、数値ａｉ、ｂｉではなく、数値ｖを保持し続ける。この数値を、アリスは知っており、ボブは、受信した数値ａｉ’と数値ｂｉ（ａｉ＝ｂｉであるときには、ａｉに等しい）とを用いて、この数値を計算することができる。言い換えると、アリスおよびボブは、元の数値ａｉとｂｉとが一致するときには、元の数値ａｉおよびｂｉを、それぞれのランダムな数値ｖに置き換えることができる（それでも、ランダムな数値ｖを、ａｉおよびｂｉで表すことができる）。いくつかの実施形態において、数値ａｉおよびｂｉのうちの、破棄された数値を、プロトコルのこの後のステージ（データ一致合意処理の、以後の全ての繰り返しを含む）において必要なランダムな数値として、またはその代わりに用いる場合がある。
【０２２０】
したがって、この場合には、数値列ＡとＢとで対応し合う数値のうちの一致し合う数値を用いて、共有秘密情報を導出することができる（例えば上述の例においては、一致し合う数値を知ることによって、共有秘密情報を形成するランダムな数値を導出することができる）が、共有秘密情報は、数値列ＡおよびＢ自体から直接にではなく、別のデータ集合（例えばランダムな数値からなる数値列）から抽出される。本発明は、共有秘密情報が、数値列ＡおよびＢ（またはそれらの部分集合）から直接に抽出または導出される技術だけではなく、共有秘密情報が、別のデータ集合（またはその部分集合）から抽出または導出される技術も包含することは理解しうると思う。
【０２２１】
図１４に示されている処理は、本発明の一実施形態において用いることができるデータ一致合意処理の一例にすぎないことは理解しうると思う。図１５に示すデータ一致合意処理を、例えばアリスおよびボブが、それぞれに自分の数値ａおよびｂを知っているが、互いに相手の数値を知っていないときに、アリスおよびボブが、あるレベルを超過する確率で、ａ’＝ｂ’であるような数値ａ’およびｂ’を、ａ’＝ｂ’のときに、イブに数値ａ’およびｂ’を知られることなく、それぞれに特定することができる任意の適切な処理と置き換えることができる。
【０２２２】
図１６ａ〜図１６ｃは、本発明のいくつかの実施形態において用いることができるデータ一致合意処理の各例を示す。
【０２２３】
図１６ａに示す例では、最初のステップ１６０１において、アリスが、数値ａの関数である数値Ｔ〔Ｔ＝ｆ１（ａ）〕を計算する。次のステップ１６０３において、アリスは、ボブに数値Ｔを送信する。関数ｆ１は、ｆ１（ａ）の値から、数値ａの値を高信頼度で導出することができず、したがって、イブが、送信を傍受して数値Ｔを見出しても、数値ａを完全には知ることができないように選択される。関数ｆ１は、例えば安全な暗号化関数、マスキング関数、またはハッシュ関数を備えている場合がある。次のステップ１６０５において、ボブは、数値Ｔ、または数値Ｔから導かれた数値と、数値ｂ、または数値ｂから導かれた数値とを比較する。ボブは、例えばＴとｆ１（ｂ）とを、またはｆ１−１（Ｔ）とｂとを比較する場合がある。関数ｆ１−１は、関数ｆ１の逆関数である。例えばｆ１がハッシュ関数である場合には、ボブは数値ｂからハッシュ値を計算し、そのハッシュ値と、アリスから受信したハッシュ値とを比較する。あるいは、ステップ１６０５において、ボブは、数値ｆ２（Ｔ,ｂ）を計算し、その結果と、あらかじめ定められた数値とを比較する。ボブは、例えば数値〔Ｔ−ｆ１（ｂ）〕を０と比較する場合がある。次のステップ１６０７において、ボブは、この比較の結果に基づいて、一致または不一致を示すメッセージをアリスに送信する。このメッセージには、例えば１ビットフラグが含まれている場合がある。アリスおよびボブは、一致を示すメッセージが送信された場合にのみ、それぞれ自分の数値ａおよびｂを保持し続ける。
【０２２４】
図１６ｂに示す例では、最初のステップ１６５１において、アリスが、数値ａの関数である数値Ｔ１〔Ｔ１＝ｆ１（ａ）〕を計算する。次のステップ１６５３において、アリスは、ボブに数値Ｔ１を送信する。次のステップ１６５５において、ボブは、数値Ｔ２＝ｆ２（Ｔ１,ｂ）を計算する。次のステップ１６５７において、ボブは、アリスに数値Ｔ２を送信する。次のステップ１６５９において、アリスは、数値Ｔ２と、あらかじめ定められた数値とを比較する。次のステップ１６６１において、アリスは、この比較の結果に基づいて、一致または不一致を示すメッセージ（例えば１ビットフラグ）をボブに送信する。アリスおよびボブは、一致を示すメッセージが送信された場合にのみ、それぞれ自分の数値ａおよびｂを保持し続ける。関数ｆ１は、数値ｆ１（ａ）から、数値ａを高信頼度で導出することができないように選択され、関数ｆ２は、数値ｆ２（Ｔ１,ｂ）から、数値ｂを高信頼度で導出することができないように選択される。さらに、関数ｆ１およびｆ２は、ａ＝ｂの場合に、数値Ｔ２が、少なくとも数値ｂに依存せず、いくつかの例においては、数値ａにも依存しないように選択される場合がある。一具体例において、数値ｆ１（ａ）は、数２０によって与えられる。ｒは乱数（例えばアリスによって生成され、少なくとも初期においてはアリスにしか知られていない）であり、数１は、モジュロ２加算を意味する。ｆ２（Ｔ１,ｂ）は、数２１によって与えられる。Ｈはハッシュ関数、または入力値から出力値を計算することができ、出力値から入力値を高信頼度で導出することができないような任意の他の適切な関数である。この例においては、アリスは、数値Ｔ２を受信して、数値Ｔ２とＨ（ｒ）（この例においては、上述のあらかじめ定められた数値に相当する）とを比較する。
【数２０】
2015522998.tif 000022
【数２１】
2015522998.tif 000023
【０２２５】
図１６ｃに示す例では、最初のステップ１６７１において、アリスが、数値ａの関数である数値Ｔ１〔Ｔ１＝ｆ１（ａ）〕を計算する。次のステップ１６７３において、アリスは、ボブに数値Ｔ１を送信する。ステップ１６７３、または別のステップにおいて、アリスは、ボブに、さらに、あらかじめ定められた数値を送信する。次のステップ１６７５において、ボブは、数値Ｔ２＝ｆ２（Ｔ１,ｂ）を計算する。次のステップ１６７７において、ボブは、数値Ｔ２と、アリスから受信したあらかじめ定められた数値とを比較する。次のステップ１６７９において、ボブは、この比較の結果に基づいて、一致または不一致を示すメッセージ（例えば１ビットフラグ）をアリスに送信する。アリスおよびボブは、一致を示すメッセージが送信された場合にのみ、それぞれ自分の数値ａおよびｂを保持し続ける。関数ｆ１は、数値ｆ１（ａ）から、数値ａを高信頼度で導出することができないように選択される。一具体例において、数値ｆ１（ａ）は、数２０によって与えられる。ｒは乱数である。アリスから送信されるあらかじめ定められた数値はＨ（ｒ）であり、数値ｆ２（Ｔ１,ｂ）は、数２１によって与えられる。Ｈはハッシュ関数、または入力値から出力値を計算することができ、出力値から入力値を高信頼度で導出することができないような任意の他の適切な関数である。
【０２２６】
図１６ａ〜図１６ｃに示されているデータ一致合意処理を、対応し合う数値ａｉおよびｂｉ（ｉ＝０、１、２、…）から成る一連の数値対中の各数値対に対して反復することができる。
【０２２７】
図１７は、本発明のいくつかの実施形態において用いることができるデータ一致合意処理のさらなる一例を示している。この例においては、数値ａおよびｂは、２ビットの長さを有している。数値ａの各ビットをａ１およびａ２とし、数値ｂの各ビットを、ｂ１およびｂ２とする。アリスおよびボブの数値が、３ビット以上の長さを有している場合には、それらの数値を、２ビットごとに分割することができる。
【０２２８】
最初のステップ１７０１において、アリスは、１ビットのランダムな数値ｖを生成する。次のステップ１７０３において、アリスは、２ビットの数値ｍを計算する。数値ｍの各ビットはｍ１、ｍ２であり、それぞれ数２２、数２３で計算される。数１は、モジュロ２加算を意味する。次のステップ１７０５において、アリスは、ボブに数値ｍを送信する。次のステップ１７０７において、ボブは、２ビットの数値ｍ’を計算する。ｍ’の各ビットはｍ’１、ｍ’２であり、それぞれ数２４、数２５で計算される。次のステップ１７０９において、ボブは、数値（数２６）を計算する。ａ＝ｂ（すなわち、ａ１＝ｂ１かつａ２＝ｂ２）であれば、ｍ’１＝ｍ’２＝ｖであり、したがって、Ｈ（ｍ’）＝０である。次のステップ１７１１において、ボブは、アリスに数値Ｈ（ｍ’）を送信する。次のステップ１７１３において、送信された数値Ｈ（ｍ’）が０である場合には、アリスおよびボブは、それぞれ自分の数値ａおよびｂを保持し続け、そうでない場合には、アリスおよびボブは、それぞれ自分の数値ａおよびｂを破棄する。
【数２２】
2015522998.tif 000024
【数２３】
2015522998.tif 000025
【数２４】
2015522998.tif 000026
【数２５】
2015522998.tif 000027
【数２６】
2015522998.tif 000028
【０２２９】
上述の例では、ステップ１７１３において、アリスおよびボブは、送信された数値Ｈ（ｍ’）に応じて、それぞれ自分の数値ａおよびｂを保持し続けるか、または破棄する。一代替実施形態では、ステップ１７１３において、送信された数値Ｈ（ｍ’）が０である場合には、アリスは、数値ｖを、ボブは、数値ｍ’１＝ｍ’２＝ｖを保持し続け、そうでない場合には、数値は破棄される。言い換えると、Ｈ（ｍ’）＝０である場合には、アリスおよびボブは、それぞれ元の数値ａおよびｂを、数値ｖで置き換える。数値ａおよびｂは、長さが２ビットであり、数値ｖは、長さが１ビットしかないから、これによって、データサイズは、１／２倍に低下する。
【０２３０】
上述のデータ一致合意処理を、反復（ｉの値）ごとに異なるランダムな数値ｖを用いて、対応し合う数値ａ（ｉ）およびｂ（ｉ）（ｉ＝０、１、２、…）から成る、一連の数値対中の各数値対に対して反復することができる。
【０２３１】
上述の例においては、ａ≠ｂ（例えばａ１≠ｂ１かつａ２≠ｂ２）であっても、Ｈ（ｍ’）＝０である場合があるが、Ｈ（ｍ’）＝０であれば、ａ＝ｂであるとした。しかしながら、Ｈ（ｍ’）＝０のときにａ＝ｂである確率は０ではないが、Ｈ（ｍ’）≠０のときにａ＝ｂである確率は０であるから、Ｈ（ｍ’）＝０である場合に、数値ａおよびｂを保持し続け、そうでない場合に、数値ａおよびｂを破棄することによって、アリスおよびボブは、自分たちの情報の重なりを増やすことができる。具体的には、このデータ一致合意処理後に、アリスとボブとのそれぞれの（保持され続けた）数値が一致し合う確実性は、このデータ一致合意処理前に、アリスとボブとのそれぞれの数値が一致し合う確実性より高くなる。
【０２３２】
したがって、以下にさらに説明するように、上述のデータ一致合意処理を繰り返す〔例えば、前のパス（最初から最後までの１回分の周期）において保持された数値列を用いてデータ一致合意処理を繰り返す〕ことによって、アリスおよびボブは、自分達の情報の重なりを、任意の所望のレベルまで増やすことができる。例えば対応し合う数値ａ（ｉ）およびｂ（ｉ）から成る、一連の数値対中の各数値対に対して、上述のデータ一致合意処理の１パスが完了したときに、保持され続けた数値から成る、得られたビットストリームを、一連の、２ビットの集まりに分割し、次のパスにおいて、データ一致合意処理を繰り返すことができる。いくつかの実施形態においては、前のパスにおける数値ａ（ｉ）およびｂ（ｉ）が、次のパスにおいて、ランダムな数値ｖとして用いられる場合がある。
【０２３３】
図１８は、本発明のいくつかの実施形態において用いることができるデータ一致合意処理のさらに別の一例を示している。最初のステップ１８０１において、アリスが、ランダムな数値ｖを生成する。次のステップ１８０３において、アリスは、アリスの数値ａを用いて、ランダムな数値ｖをマスキングする。このマスキングは、例えばビット単位のモジュロ２加算演算を用いて実行される場合がある。次のステップ１８０５において、アリスは、マスキングされた数値をボブに送信する。次のステップ１８０７において、ボブは、ボブの数値ｂを用いて、受信したマスキングされている数値をマスキング解除しようとする。マスキング解除は、例えばビット単位のモジュロ２加算演算を用いて実行される場合がある。次のステップ１８０９において、アリスとボブとは、ハッシュ比較処理を行うために、１つ以上のメッセージを交換する。ハッシュ比較処理は、例えばアリスとボブとのうちの一方または双方によって、１つ以上のハッシュ値が生成されるステップ、生成されたハッシュ値の１つ以上が、アリスとボブとの間で伝達されるステップ、およびアリスとボブとのうちの一方または双方によって、それらのハッシュ値を用いて比較が行われるステップを含んでいる場合がある。このハッシュ比較処理は、公然と行うことができる。すなわち、ハッシュ比較処理の一部として、アリスとボブとの間で伝達されるメッセージは、イブによって傍受されてもよい。次のステップ１８１１において、アリスおよびボブは、ハッシュ比較処理の処理結果に基づいて、それぞれの数値ａおよびｂをそのまま受容するか、または排除する。次のステップにおいて、数値ａ、ｂの次の数値対に対して、ハッシュ比較処理の全体が反復される。
【０２３４】
上述の説明から理解されるように、本発明のいくつかの実施形態において、種々のデータ一致合意アルゴリズムを用いることができる。いくつかの実施形態において、データ一致合意アルゴリズムは、任意の適切な照合プロトコルまたは逆方向照合プロトコルを含んでいる場合があることは理解しうると思う。
【０２３５】
本実施形態においては、イブとアリス／ボブとの間の情報の重なりを低下させながら、アリスとボブとの間の情報の重なりをさらに増加させるために、さらなるステージが遂行される。しかしながら、いくつかの応用においては、データ一致合意ステージの終了時に、アリスとボブとによって得られた数値列が十分に一致し合っており、かつ十分に秘密性が保たれている場合がある。したがって、いくつかの実施形態においては、データ一致合意ステージが終了し、数値列ＡおよびＢが、共有秘密情報として用いられると、このプロトコルは終了する。あるいは以降のステージの１つ以上が、任意選択に、さらに行われる場合がある。
【０２３６】
いくつかの実施形態においては、誤り訂正ステージおよび／またはデータ一致合意ステージが１回以上繰り返される。いくつかの実施形態においては、これらのステージは、同一の処理またはアルゴリズムを用いて繰り返される。しかしながら、別のいくつかの実施形態においては、これらのステージが繰り返されるときに、１つ以上の相異なる処理またはアルゴリズムが適用される。
第１プライバシー増幅ステージ
【０２３７】
データ一致合意ステージ５０７に、イブとアリス／ボブとの間の情報の重なりをさらに低下させるための第１プライバシー増幅ステージ５０９が続く。データ一致合意ステージ中に、アリス、ボブ、イブの全３者間で一致する、対応し合う数値が、比較的少数であるが発生し得るという事実から、イブとアリス／ボブとの間に情報の重なりが存在する可能性が生じる。さらに、イブは、ｐビットのハッシュ値Ｈ（ｂｉ’）を用いて、正確な数値ｂｉ’を高信頼度で特定することはできないが、それでも、ハッシュ値Ｈ（ｂｉ’）は、プロトコル全体にわたって蓄積されると、ｍビットの数値ｂｉ’に関する情報のｐビットをイブに供給する可能性がある何らかの情報を、イブに供給する。
【０２３８】
したがって、さらに秘密性を高め、数値列ＥとＡ／Ｂとの間の相関を低下させるために、この実施形態においては、数値列ＡおよびＢの各々のスライスの部分集合のみが、それぞれアリスおよびボブによって保持され続ける。例えば数値列のスライス間の相関は、スライスごとに異なるから、いくつかの実施形態においては、最も低い相関しか有しないスライスの部分集合のみが保持され続ける。この実施形態においては、数値列ＡおよびＢの、最大スライス番号側のｐ個のスライス（最下位ビット側のｐ個のビットに相当する）だけが、アリスおよびボブによって保持され続ける。したがって、数値列ＡおよびＢ中のそれぞれＩ０個の数値ａｉおよびｂｉの各ビット数は、ｍからｐに減少する。この実施形態においては、ｐ＝４の値が用いられる。
【０２３９】
上述のデータ離散化ステージ５０３が行われなかった場合にも、第１プライバシー増幅ステージ５０９を行うことを可能にするために、データスライシングが行われる場合がある。
【０２４０】
上述のように、数値列Ｂの各スライスは、ある誤り確率（εで表す）を有する第１の二元対称通信路を介して、数値列Ａの対応するスライスを送信した結果と見なすことができる。同様に、数値列Ｅの各スライスは、ある誤り確率（δで表す）を有する第２の二元対称通信路を介して、数値列Ａの対応するスライスを送信した結果と見なすことができる。εおよびδの値は、スライスごとに異なる。
【０２４１】
アリスとボブとの間のチャネルの秘密通信路容量は、イブが、アリスからボブに送信する情報を得る割合が任意に小さくなるように、アリスが、ボブに高信頼度で情報を送信することができる最大割合である。アリスとボブとの間の上述の二元対称通信路の秘密通信路容量は、次の式９によって与えられる。
Ｃ＝ｈ（ε＋δ−２εδ）−ｈ（ε）        式９
ｈ（ρ）＝−ρ×log２（ρ）−（１−ρ）×log２（１−ρ）
【０２４２】
式９において、Ｃは、秘密通信路容量であり、εは、アリスとボブとの間の二元対称通信路の誤り確率であり、δは、アリスとイブとの間の二元対称通信路の誤り確率であり、ｈは、二元エントロピー関数である。秘密通信路容量Ｃは、ε＝１／２、またはδ＝０、またはδ＝１でない限り、正である。
【０２４３】
用いられるデータスライシング方式、および存在するノイズレベルが与えられれば、例えば数値シミュレーションを用いて、通信システム内の各スライスに対する秘密通信路容量を分析することが可能である。１６個のスライスが用いられており、イブが、ショットノイズしか存在しない理想的な検出器を用いており、ボブの検出器が、比較的高いレベルのノイズを取り込むという通信システムで、いくつかの状態において、秘密通信路容量は、実際、最小スライス番号のスライス（最上位ビット、すなわち最小誤り率を有するスライスに相当する）において最大になることが観察される。逆に、秘密通信路容量は、最大スライス番号のスライス（最下位ビット、すなわち最大誤り率を有するスライスに相当する）において最小になる。
【０２４４】
したがって、いくつかの実施形態において、最大秘密通信路容量が得られるスライスから成る部分集合が保持され続ける。例えば１６個のスライスが用いられている場合に、数値列ＡおよびＢ中の各数値から、最上位ビット側の１番目から５番目までのビットのうちの１つのビットが保持され続ける場合がある。
【０２４５】
第１プライバシー増幅ステージの遂行後には、数値列ＡおよびＢ中の、それぞれＩ０個の数値ａｉおよびｂｉの各々のビット数は、ｍからｍ０に減少している。ｍ０は、各数値において保持され続けたビットの数である。数値列ＡおよびＢの各々中の、生じたビットの集合は、プロトコルの次のステップのために、一連の、ｐビットの集まりに分割される場合がある。
安全性強化ステージ
【０２４６】
第１プライバシー増幅ステージ５０９に、安全性強化ステージ５１１が続く。安全性強化ステージは、誤り低減ステージと呼ばれることもある。図１５は、安全性強化ステージ５１１の各ステップを、より詳細に示すフローチャートである。
【０２４７】
この安全性強化ステージは、第１プライバシー増幅ステージ後に、アリスおよびボブによって得られた数値列ＡおよびＢの安全性を強化するためのものである。図示されている実施形態においては、安全性強化ステージの各ステップ（ステップ１５０１〜１５２７）は、（ｉ）処理されるデータ値、すなわち数値ａｉおよびｂｉの各々の長さは、ｍビットではなくてｐビットであること、（ｉｉ）数値列ＡおよびＢ中の数値の個数は、Ｉ個ではなくてＩ０個であること、（ｉｉｉ）使用されるランダムな数値ｖの長さは、ｍビットではなくてｐビットであること、および（ｉｖ）ハッシュアルゴリズムＨ（・）は、ｐビットの入力値からｐ０ビットのハッシュ値を生成する（ｐ０＜ｐ）ことを除いて、データ一致合意ステージ５０７の各ステップと同様である。この実施形態においては、ハッシュ値は、生成多項式（１＋ｘ２＋ｘ３）から生成されたＢＣＨ生成行列を用いて生成された、数値ｂｉ’に対するＢＣＨコードワードのパリティビットを含んでいる。
第２プライバシー増幅ステージ
【０２４８】
安全性強化ステージ５１１に、イブとアリス／ボブとの間の情報の重なりを、さらになお低下させるための第２プライバシー増幅ステージ５１３が続く。
【０２４９】
この第２プライバシー増幅ステージにおいては、数値列ＡおよびＢ中の、それぞれｐビットの数値ａｉおよびｂｉが、それらの数値のパリティで置き換えられる。ある数値のパリティは、その数値が、１であるビットを奇数個有している場合に１であり、そうでない場合に０であると定められる。したがって、イブが、アリスとボブとの間で交換されたハッシュ値を知ったとしても、イブは、そのハッシュ値を生成するために用いられた正確な数値を特定することはできない。それは、ハッシュ関数Ｈ（・）が、各１つのｐ０ビットのハッシュ値に、ｐビットの、いくつかの数値をマッピングするからである。さらに、ハッシュ関数（・）が、適切に選択されているときに、各１つのｐ０ビットのハッシュ値にマッピングされたｐビットの複数のデータ値間で、パリティが異なることがある（すなわち、それらのｐビットの複数のデータ値間で、奇数個のビットが異なることがある）。例えば上述のＢＣＨコードワードのパリティビットを用いる場合がそうである。したがって、データ値のパリティは、そのデータ値のハッシュ値に比して、完全に曖昧である。したがって、各データ値を、そのパリティで置き換えることによって、イブとアリス／ボブとの間の情報の重なりを、非常に低いレベルまで、おそらくは実質的に０にまで低下させることができる。
ステージの反復
【０２５０】
数値列ＡとＢとの間の誤りを反復して減少させるために、またイブとアリス／ボブとの間の情報の重なりを反復して低下させるために、上述の安全性強化ステージ５１１、および第２プライバシー増幅ステージ５１３を、任意の回数繰り返す場合がある。この場合には、直前の反復において得られたパリティビットが、次の反復のために、一連の、ｐビットの集まりに分割される。最後の反復の終了時に得られる一連のパリティビットが、アリスおよびボブによって得られる秘密情報を内包している最終的なビットストリームを形成する。
【０２５１】
本発明のいくつかの実施形態においては、上述のステージの１つ以上を、全体的なプロトコルから省略できることが理解されると思う。しかしながら、それによって、総合的な安全性が低下する場合がある。
シミュレーション結果
【０２５２】
下記の表１は、相互情報量Ｉ（Ａ;Ｂ）、Ｉ（Ａ;Ｅ）、Ｉ（Ｂ;Ｅ）、ＬＢ＝Ｉ（Ａ;Ｂ）−Ｉ（Ａ;Ｅ）、ＵＢ＝Ｉ（Ａ;Ｂ|Ｅ）が、上述のプロトコルの例示的な一シミュレーションを通して、どのように変化するかを示している。表１は、さらに、ビット数が、このプロトコルの例示的な一シミュレーションを通して、どのように変化するかを示している。ＬＢは秘密鍵下限であり、ＵＢは情報上限である。行ラベル「初期データ」は、データ離散化ステージ５０３の完了時の値を示している。行ラベル「照合」は、誤り訂正ステージ（または照合ステージ）５０５の完了時の値を示している。行ラベル「第１ＡＤ巡回」〜「第３ＡＤ巡回」は、安全性強化ステージ５１１および第２プライバシー増幅ステージ５１３の各反復の完了時の値を示している。この例においては、初期データは、各々が１１ビットから成る１５０００個の数値（全部で１６５０００ビット）で構成されている。
【表１】
2015522998.tif 000029
【０２５３】
このシミュレーション結果は、初期において、アリスとボブとの間の情報の重なりが、ボブとイブとの間の情報の重なりより少ないことを示している。しかしながら、プロトコルの進行につれて、アリスとボブとの間の情報の重なりは、速やかに１まで増加する（アリスとボブとの間で、正確な一致が得られたことを示す）。一方、イブとアリス／ボブとの間の情報の重なりは、実質的に０まで速やかに減少する（アリスとボブとの間に、完全な秘密性が達成されたことを示す）。ビットの数は、プロトコルの進行につれて、いくつかの数値およびスライスの破棄によって減少する。
攻撃
【０２５４】
以下において、イブが、アリスとボブとの間で共有される秘密情報を得ようとして用い得るいくつかの盗聴攻撃と、それらの盗聴攻撃に対する、本発明によるプロトコルの抗し方を説明する。
【０２５５】
上述したように、アリスとボブとの間の通信リンクは、初期データの交換のために用いられる私的回線を形成している場合もあるし、共有秘密情報を得るために必要な後続の信号伝達を行うための公衆回線（認証された誤り訂正チャネルである場合がある）を形成している場合もある。第１の種類の攻撃において、イブは、公衆回線上でも私的回線上でも、全ての送信を傍受して読むことができるが、それらの送信に改ざん、またはその他の妨害を行わない（すなわち、イブは受動的盗聴者である）。本発明のいくつかの実施形態においては、例えば自由空間のマイクロ波回線を用いる実施形態においては、送信を傍受して、別の送信を再挿入することは事実上不可能である。しかしながら、そのようなことが可能である場合においても、本発明のそのような実施形態は、依然として安全である。
【０２５６】
別の種類の攻撃において、イブは、私的回線において（公衆回線では不可能であるが）、信号の除去、挿入、または変更（すなわち能動的な攻撃）によって、送信に改ざんや妨害を行うことが可能である。このような種類の攻撃の例には、「改ざん」攻撃および「ブラインド」攻撃が含まれる。本発明によるプロトコルは、これらの攻撃および他の攻撃に抗する。
【０２５７】
改ざん攻撃では、イブは、例えば選択したシンボル（数値）の送信を止めて、別のシンボルを挿入することによって、または全メッセージのうちの一部または全部を傍受し、符号化を変更して再送信することによって、私的回線の送信を改ざんすることができる。さらに、イブは、送信に任意の量のノイズを取り込むことができる。この例においては、イブは、ボブに対して送信された数値列を知ることはできるが、アリスによって検出された数値列も、ボブによって検出された数値列も、三者の検出装置のＳＮＲによって定められる精度を超える精度で知ることはできないとする。
【０２５８】
上述のプロトコルにおいて、アリスは、Ｎビットの二進値を、Ｋビットの二進値にマッピングするマッピング関数ｅ：｛０,１｝Ｎ→｛０,１｝Ｋを、局所的に効果的に作成していると考えることができる。Ｋ＜Ｎである。この改ざん攻撃において、イブは、Ｎビットの二進値とωビットの二進値とを結合して、変更されたＮビットの二進値を生成する改ざん関数ｔ：｛０,１｝Ｎ×｛０,１｝ω→｛０,１｝Ｎを局所的に作成している。アリスと、場合によってはイブも、Ｋおよびマッピング関数ｅを知っており、イブだけが、改ざん関数ｔを知っている。
【０２５９】
アリスは、ボブへの送信から取り込んだ数値ｘを保持する。この数値ｘは、さらに、イブによって傍受される。イブは、ｅ（ｘ）の値を学習し、ボブに損傷した数値ｙ＝ｔ（ｘ,Ｒ）を送る。Ｒは、ボブの検出器によって加えられる、イブにはわからない局所的なノイズ変数（およびイブにはわからない付加的な任意の伝送路ノイズ）である。数値ｘに関する、イブの知識は、関数ｅおよび数値ｅ（ｘ）に関する知識の範囲内である。数値ｙに関する、イブの知識は、関数ｅおよび数値ｅ（ｘ）に関する知識、および関数ｔの選択の範囲内である。イブは、ノイズ変数Ｒに関する知識を何ら有していない。（さらに後に説明するように、いくつかの場合には、イブは、Ｒを考慮しない関数ｔを選ぶことがある。このような攻撃は、ブラインド攻撃と呼ばれる。）
【０２６０】
イブが用いることができる１つの攻撃は、いくつかのシンボルの削除または追加による信号改ざんである。このような攻撃は、ボブがアリスに、データのランダムサンプルを返すと検出可能である。無相関データは、それがインコヒーレントノイズとして現れるデータ相関マップを見ることによって検出可能である。しかしながら、以下に説明するように、イブが、アリスのデータやボブのデータの正確な性質を知らないから、この攻撃によって、秘密情報に関するイブの知識は増えない。
【０２６１】
ボブは、誤り訂正符号Ｃ（ｙ）を生成して、アリスに送る。アリスは、それを受け取って、例えばＢＣＨ符号ｘＣ（ｙ）化する。アリスは、そのＢＣＨ符号を用いて、ｘに対するｑビット訂正（例えば、１ビット訂正）を表す、新しい変数ｘ’ を生成する。したがて、ｘ＝ｙである場合、またはｘとｙとで、１ビット異なる場合に限り、ｘ’＝ｘである。他の誤りはいずれも、アリスとボブとの間の相違を増大させる。アリスおよびボブは、イブが、衝突頻度の高さから〔すなわち、ｙの相異なる多数の値によって、同一のＣ（ｙ）値が生成するために〕、ｅやｔやＣ（ｙ）に関するイブの知識からｙを知ることができないように、それぞれの局所ノイズ（関数ｅおよびノイズ変数Ｒ）を選択済みである。
【０２６２】
連続変数のシンボルにわずかの桁送りを加える（例えば、送信されてきた信号の一部分を選択的に増幅することによって）という、より狡猾な攻撃による信号改ざんによって、データ離散化（例えばデータスライシング）ステージにおいて、新たなビットエラーが取り込まれ、前述のように、２ビット以上の誤りが、実際に、アリスとボブとの間の相違を増大させる。データ一致合意（アドバンテージディスティレーション）ステージにおいて、アリスとボブとは、例えば仮想回線を用いて、それぞれのデータを、一致するようにフィルタリングして、確率変数とハッシュ値（例えば、ＢＣＨ符号）とを交換し、交換された確率変数の有効性を確認する。アリスおよびボブによって取り込まれた局所ノイズは、イブによって取り込まれた誤りの位置をランダム化し、それによって、Ｃ（ｙ）に関するイブの情報を制限する効果を有する。１ビットエラーが増えると、データ一致合意ステージにおいて破棄される確率も増えるから、イブによる改ざんは、低いデータ率で検出可能である。イブは検出可能であるが、イブには何らの情報も与えられない。
【０２６３】
ここで、ブラインド攻撃に戻ると、イブは、新しい信号Ｅ０＝ＷＸ０＋ＲＥを作る。Ｗは増幅率であり、ＲＥは、検出器ノイズをシミュレートするために加えられるガウスノイズである。このブラインド攻撃は、ボブが、自分の側で検出器ノイズを加え、また例えば非常に低い入力信号で検出器を動作させるために、受信されるデータは、かなりのノイズレベルを有するであろうということをよりどころにする。信号の増幅率Ｗは、通常の検出器ノイズを超過するレベルになるように、したがって、Ｉ（Ｂ;Ｅ）≒１となるように設定される。イブは、さらに、データスライシング機能を知っている可能性があり、その場合には、イブの信号は、実際に、ボブの信号との実質的に完全な重なりに達する。この時点で、イブは、ノイズ変数Ｒに依存しない信号関数ｙ＝ｆ（ｘ）を作り、自分の信号を、ボブの信号と正確に一致させている。
【０２６４】
本発明によるプロトコルが、このようなブラインド攻撃に抗することができる少なくとも２つの方法がある。第１の方法として、アリスは、ボブが非常に低いノイズレベルで受信することができる信号を送信する。ボブは、２つの検出器を用いる。第１の検出器は、生の信号を検出するために用いられ、第２の検出器は、その検出器に局所ノイズを加える減衰ステージ後の信号検出のために用いられる。次に、ボブは、生データのうちのランダムに選択した一部分を、誤り訂正データが格納されており、信頼度の高い回線を用いてアリスに送信する（またはアリスが、初期シードデータをボブに送ることができる）。第２の方法として、ボブは、注意深く校正された検出器を用いて、あらかじめ定められた局所ＳＮＲを超過する信号を継続的に監視する。
【０２６５】
本発明のいくつかの実施形態を、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせの形態で実現することができることは理解しうると思う。そのようなソフトウェアは全て、消去可能または書き換え可能であろうとなかろうと、揮発性記憶装置または不揮発性記憶装置（例えばＲＯＭなどの記憶装置）に、あるいは例えばＲＡＭ、メモリチップ、メモリ装置または集積回路などのメモリに、あるいは例えばＣＤ、ＤＶＤ、磁気ディスク、磁気テープなどの光学的または磁気的に読み出し可能な記憶媒体に保存することができる。
【０２６６】
記憶装置および記憶媒体は、実行されたときに、本発明の任意の実施形態を遂行する命令を含んでいる１つまたは複数のプログラムを記憶しておくのに好適な、機械可読に記憶する具現体であることは理解しうると思う。したがって、これらの具現体には、本明細書の請求項のいずれか一項に記載の装置または方法を実施するためのコードを含むプログラム、およびそのようなプログラムを記憶している機械可読な記憶体を備えている。さらに、このようなプログラムは、有線接続または無線接続を通じて伝送される通信信号、およびそれらの接続を適切に内包する具現体などの任意の媒体を介して、電子的に伝達可能である。
【０２６７】
本明細書においては、本発明のいくつかの例示的な実施形態を参照して、本発明を示し、説明しているが、請求項に定められている本発明の範囲から逸脱することなく、種々の変形や変更を施すことが可能であることは、当業者には理解しうると思う。
【符号の説明】
【０２６８】
４００  通信システム
４０１  アリスの装置
４０３  データソース
４０５、４１７、４３１  メモリ
４０７、４１９  送信ユニット
４０９、４２１、４３３  受信ユニット
４１１、４２３、４３５  検出器
４１３、４２５、４３７  プロセッサ
４１５  ボブの装置
４２７  通信リンク
４２７ａ、４２７ｂ  チャネル
４２９  イブの装置
４３９、４４１  ビームスプリッタ
１１０１  部分的範囲
１１０３  セパレータ値
【図１】
2015522998.tif 000040
【図２】
2015522998.tif 000041
【図３】
2015522998.tif 000042
【図４】
2015522998.tif 000043
【図５】
2015522998.tif 000044
【図６】
2015522998.tif 000045
【図７】
2015522998.tif 000046
【図８】
2015522998.tif 000047
【図９】
2015522998.tif 000048
【図１０】
2015522998.tif 000049
【図１１】
2015522998.tif 000050
【図１２】
2015522998.tif 000051
【図１３】
2015522998.tif 000052
【図１４】
2015522998.tif 000053
【図１５】
2015522998.tif 000054
【図１６ａ】
2015522998.tif 000055
【図１６ｂ】
2015522998.tif 000056
【図１６ｃ】
2015522998.tif 000057
【図１７】
2015522998.tif 000058
【図１８】
2015522998.tif 000059
【国際調査報告】
2015522998.tif 000060
2015522998.tif 000061
2015522998.tif 000062
2015522998.tif 000063
2015522998.tif 000064
2015522998.tif 000065