(57)【特許請求の範囲】
【請求項１】
送信機が送信した仮共有データを所定の分割規則により分割して第１精製用ブロックと第１使い捨てブロックとを生成するブロック生成手段と、
上記第１精製用ブロックを所定のデータ攪拌規則により攪拌して第１攪拌ブロックを生成するデータ攪拌手段であって、ハミング距離が０である任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は０となり、ハミング距離が１以上の任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は１以上となるように構成されているデータ攪拌手段と、
上記送信機が送信した仮共有データが上記送信機により上記所定の分割規則により分割されて生成された第２精製用ブロックと第２使い捨てブロックの内の第２精製用ブロックが上記所定のデータ攪拌規則によって攪拌されて生成された第２攪拌ブロックと、上記第２使い捨てブロックとから、所定の暗号化規則により生成された暗号化ブロックを獲得し、
上記暗号化ブロックを上記所定の暗号化規則に対応する所定の復号規則により上記第１使い捨てブロックを用いて復号して復号ブロックを生成する復号ブロック生成手段と、
上記復号ブロックと上記第１攪拌ブロックを比較して、該比較結果により上記第１精製用ブロックと第２精製用ブロックが同じか違うかを判定する同一性判定手段と
を備えた共有データ精製装置。
【請求項２】
データ格納手段をさらに有し、
同一性判定手段は復号ブロックと第１攪拌ブロックを比較して、上記復号ブロックと上記第１攪拌ブロックのハミング距離が所定値以下であれば上記第１精製用ブロックは第２精製用ブロックと同じであると判定し、上記第１精製用ブロックを上記データ格納手段に格納することを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項３】
仮共有データは、送信機が量子暗号通信により送信したことを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項４】
誤り訂正手段をさらに有し、
同一性判定手段は復号ブロックと第１攪拌ブロックを比較して、上記復号ブロックと上記第１攪拌ブロックのハミング距離が所定値を超えているという比較結果の場合、第１精製用ブロックは第２精製用ブロックと違うと判定し、
上記誤り訂正手段は該判定結果が「違う」の場合、上記第１精製用ブロックを第２精製用ブロックと一致させるための訂正情報を獲得し、該訂正情報に基づいて上記第１精製用ブロックを上記第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項５】
誤り訂正手段をさらに有し、
復号ブロック生成手段は、暗号化ブロックと共に上記送信機が生成した第１精製用ブロックを第２精製用ブロックと一致させるための訂正情報を獲得し、
同一性判定手段は復号ブロックと第１攪拌ブロックを比較して、上記復号ブロックと上記第１攪拌ブロックのハミング距離が所定値を超えているという比較結果の場合、第１精製用ブロックと第２精製用ブロックは違うと判定し、
上記誤り訂正手段は該判定結果が「違う」の場合、上記訂正情報に基づいて上記第１精製用ブロックを上記第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第２項記載の共有データ精製装置。
【請求項６】
訂正情報は第２精製用ブロックの誤り訂正符号であり、該誤り訂正符号により第１精製用ブロックを誤り訂正することを特徴とする請求の範囲第４項記載の共有データ精製装置。
【請求項７】
訂正情報は、送信機とデータ格納手段とが共に保持する同一データとの排他的論理和により暗号化され、
誤り訂正手段は、
該暗号化された訂正情報を獲得し、該獲得した暗号化された訂正情報を上記データ格納手段から獲得した上記同一データとの排他的論理和により復号し、該復号した訂正情報に基づいて第１精製用ブロックを第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第４項記載の共有データ精製装置。
【請求項８】
訂正情報は第２精製用ブロックが２等分されて生成された第２精製用ブロック前半部と第２精製用ブロック後半部の排他的論理和であり、
誤り訂正手段は第１精製用ブロックを２等分して生成した第１精製用ブロック前半部と第１精製用ブロック後半部との排他的論理和である比較情報を生成し、
上記訂正情報と上記比較情報から第１精製用ブロックと第２精製用ブロックとで一致していないビット位置を推定し、
上記第１精製用ブロックの上記推定したビット位置のビットを反転させて、上記第１精製用ブロックを第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第４項記載の共有データ精製装置。
【請求項９】
送信機が送信した仮共有データを受信し、該受信した仮共有データを所定の分割規則により分割して第１精製用ブロックと第１使い捨てブロックとを生成し、
上記第１精製用ブロックを所定のデータ攪拌規則によって攪拌して第１攪拌ブロックを生成し、
上記送信機が送信した仮共有データが上記所定の分割規則により分割されて生成された第２精製用ブロックと第２使い捨てブロックの内の第２精製用ブロックが上記所定のデータ攪拌規則によって攪拌されて生成された第２攪拌ブロックと、上記第２使い捨てブロックとから、所定の暗号化規則により生成された暗号化ブロックを獲得し、
上記暗号化ブロックを上記所定の暗号化規則に対応する所定の復号規則により上記第１使い捨てブロックを用いて復号して復号ブロックを生成し、該復号ブロックと上記第１攪拌ブロックを比較して、該比較結果により上記第１精製用ブロックと第２精製用ブロックが同一か否かを判定する共有データ精製装置であって、
上記データ攪拌規則はハミング距離が０である任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は０となり、ハミング距離が１以上の任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は１以上となるように構成された共有データ精製装置。
【請求項１０】
送信機と共有データ精製装置とが仮に共有する仮共有データの内、上記共有データ精製装置が保持する第１の仮共有データを所定の分割規則により分割して第１精製用ブロックと第１使い捨てブロックとを生成するブロック生成手段と、
上記第１精製用ブロックを所定のデータ攪拌規則により攪拌して第１攪拌ブロックを生成するデータ攪拌手段であって、ハミング距離が０である任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は０となり、ハミング距離が１以上の任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は１以上となるように構成されているデータ攪拌手段と、
上記仮共有データの内上記送信機が保持する第２の仮共有データが上記所定の分割規則により分割されて生成された第２精製用ブロックと第２使い捨てブロックの内の第２精製用ブロックが上記所定のデータ攪拌規則によって攪拌されて生成された第２攪拌ブロックと、上記第２使い捨てブロックとから所定の暗号化規則により生成された暗号化ブロックを獲得し、
上記暗号化ブロックを上記所定の暗号化規則に対応する所定の復号規則により上記第１使い捨てブロックを用いて復号して復号ブロックを生成する復号ブロック生成手段と、
上記復号ブロックと上記第１攪拌ブロックを比較して、該比較結果により上記第１精製用ブロックと第２精製用ブロックが同じか違うかを判定する同一性判定手段と
を備えた共有データ精製装置。
【請求項１１】
第１使い捨てブロックと第２攪拌ブロックと第２使い捨てブロックはビット数が等しく、
所定の暗号化規則は上記第２攪拌ブロックと上記第２使い捨てブロックとの排他的論理和を取る規則であり、
所定の復号規則は上記暗号化ブロックと上記第１使い捨てブロックの排他的論理和を取る規則であることを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項１２】
第１使い捨てブロックと第２攪拌ブロックと第２使い捨てブロックはビット数が等しく、
所定の暗号化規則は上記第２攪拌ブロックと上記第２使い捨てブロックとの排他的論理和を取る規則であり、
所定の復号規則は上記暗号化ブロックと上記第１使い捨てブロックの排他的論理和を取る規則であることを特徴とする請求の範囲第９項記載の共有データ精製装置。
【請求項１３】
第１使い捨てブロックと第２攪拌ブロックと第２使い捨てブロックはビット数が等しく、
所定の暗号化規則は上記第２攪拌ブロックと上記第２使い捨てブロックとの排他的論理和を取る規則であり、
所定の復号規則は上記暗号化ブロックと上記第１使い捨てブロックの排他的論理和を取る規則であることを特徴とする請求の範囲第１０項記載の共有データ精製装置。
【請求項１４】
所定のデータ攪拌規則は、第１精製用ブロックと第２精製用ブロックのハミング距離が１以上かつ第１精製用ブロックと第２精製用ブロックのビット数の１／２より十分小さいときは、第１攪拌ブロックと第２攪拌ブロックのハミング距離は上記第１精製用ブロックと上記第２精製用ブロックのハミング距離より大きくなるように攪拌することを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項１５】
所定のデータ攪拌規則は、第１精製用ブロックと第２精製用ブロックのハミング距離が１以上かつ第１精製用ブロックと第２精製用ブロックのビット数の１／２より十分小さいときは、第１攪拌ブロックと第２攪拌ブロックのハミング距離は上記第１精製用ブロックと上記第２精製用ブロックのハミング距離より大きくなるように攪拌することを特徴とする請求の範囲第９項記載の共有データ精製装置。
【請求項１６】
所定のデータ攪拌規則は、第１精製用ブロックと第２精製用ブロックのハミング距離が１以上かつ第１精製用ブロックと第２精製用ブロックのビット数の１／２より十分小さいときは、第１攪拌ブロックと第２攪拌ブロックのハミング距離は上記第１精製用ブロックと上記第２精製用ブロックのハミング距離より大きくなるように攪拌することを特徴とする請求の範囲第１０項記載の共有データ精製装置。
【請求項１７】
所定のデータ攪拌規則は、ハッシュ関数であることを特徴とする請求の範囲第１項記載の共有データ精製装置。
【請求項１８】
所定のデータ攪拌規則は、ハッシュ関数であることを特徴とする請求の範囲第９項記載の共有データ精製装置。
【請求項１９】
所定のデータ攪拌規則は、ハッシュ関数であることを特徴とする請求の範囲第１０項記載の共有データ精製装置。
【請求項２０】
送信機と受信機とからなる共有データ精製システムにおける共有データ精製方法であり、
送信機と受信機がそれぞれ所定のデータ攪拌規則を使用し、
送信機が受信機に対して仮共有データを送信する仮共有データ送信ステップと、
受信機が上記受信した仮共有データを所定の分割規則により分割して第１精製用ブロックと第１使い捨てブロックとを生成する第１ブロック生成ステップと、
受信機が上記第１精製用ブロックを所定のデータ攪拌規則により攪拌して第１攪拌ブロックを生成する第１攪拌ブロック生成ステップと、
送信機が上記送信した仮共有データを上記所定の分割規則により分割して第２精製用ブロックと第２使い捨てブロックとを生成する第２ブロック生成ステップと、
送信機が上記第２精製用ブロックを上記所定の攪拌規則により攪拌して第２攪拌ブロックを生成する第２攪拌ブロック生成ステップと、
送信機が上記第２攪拌ブロックと上記第２使い捨てブロックとから所定の暗号化規則により暗号化ブロックを生成して受信機に送信する暗号化ブロック生成ステップと、
受信機が上記暗号化ブロックを受信し、該暗号化ブロックを上記所定の暗号化規則に対応する所定の復号規則により上記第１使い捨てブロックを用いて復号して復号ブロックを生成し、該復号ブロックと上記第１攪拌ブロックを比較して、該比較結果により上記第１精製用ブロックと第２精製用ブロックが同じか違うかを判定し、該判定結果により下記（ａ）（ｂ）のいずれかのステップに進む同一性判定ステップと、
（ａ）判定結果が「同じ」の場合：判定結果として「同じ」を送信機に送信し、上記第１精製用ブロックをデータ格納手段に格納する第１精製用ブロック格納ステップと、
（ｂ）判定結果が「違う」の場合：判定結果として「違う」を送信機に送信する判定結果送信ステップと、
送信機が受信機からの判定結果を受信し、受信した判定結果により下記（ｃ）（ｄ）のいずれかのステップに進む第２同一性判定ステップと、
（ｃ）受信した判定結果が「同じ」の場合：処理を終了する終了ステップと、
（ｄ）受信した判定結果が「違う」の場合：上記第２精製用データと上記第１精製用データを一致させるための訂正情報を生成して、受信機に送信する訂正情報送信ステップと、
受信機が送信機から受信した上記訂正情報を用いて上記第１精製用ブロックを第２精製用ブロックと一致するように訂正する誤り訂正ステップと
を備え、上記所定のデータ攪拌規則はハミング距離が０である任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は０となり、ハミング距離が１以上の任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は１以上となる共有データ精製方法。
【請求項２１】
送信機と受信機とからなる共有データ精製システムにおける共有データ精製方法であり、
送信機と受信機がそれぞれ所定のデータ攪拌規則を使用し、
送信機が受信機に対して仮共有データを送信する仮共有データ送信ステップと、
受信機が上記受信した仮共有データを所定の分割規則により分割して第１精製用ブロックと第１使い捨てブロックとを生成する第１ブロック生成ステップと、
受信機が上記第１精製用ブロックを所定のデータ攪拌規則により攪拌して第１攪拌ブロックを生成する第１攪拌ブロック生成ステップと、
送信機が上記送信した仮共有データを上記所定の分割規則により分割して第２精製用ブロックと第２使い捨てブロックとを生成する第２ブロック生成ステップと、
送信機が上記第２精製用ブロックを所定の攪拌規則により攪拌して第２攪拌ブロックを生成する第２攪拌ブロック生成ステップと、
送信機が上記第２精製用ブロックを第１精製用ブロックと一致させるための訂正情報を、上記第２精製用ブロックから所定の訂正情報生成規則により生成する訂正情報生成ステップと、
送信機が上記第２攪拌ブロックと上記第２使い捨てブロックとから所定の暗号化規則により暗号化ブロックを生成し、上記暗号化ブロックと上記訂正情報を受信機に送信する訂正情報送信ステップと、
受信機が上記暗号化ブロックを受信し、該暗号化ブロックを上記所定の暗号化規則に対応する所定の復号規則により上記第１使い捨てブロックを用いて復号して復号ブロックを生成し、該復号ブロックと上記第１攪拌ブロックとを比較して、該比較結果により上記第１精製用ブロックと第２精製用ブロックが同じか違うかを判定し、該判定結果により下記（ｅ）（ｆ）のいずれかのステップに進む同一性判定ステップと、
（ｅ）判定結果が「同じ」の場合：上記第１精製用ブロックをデータ格納手段に格納する第１精製用ブロック格納ステップと、
（ｆ）判定結果が「違う」の場合：上記受信した訂正情報を用いて第１精製用ブロックを第２精製用ブロックと一致するように訂正する誤り訂正ステップと
を備え、上記所定のデータ攪拌手段はハミング距離が０である任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は０となり、ハミング距離が１以上の任意の２つのデジタルデータをそれぞれ攪拌した場合は生成された２つの攪拌データのハミング距離は１以上となる共有データ精製方法。
【請求項２２】
訂正情報は第２精製用ブロックが２等分されて生成された第２精製用ブロック前半部と第２精製用ブロック後半部の排他的論理和であり、
受信機は誤り訂正ステップにおいて、
第１精製用ブロックを２等分して生成した第１精製用ブロック前半部と第１精製用ブロック後半部との排他的論理和である比較情報を生成し、
上記訂正情報と上記比較情報から第１精製用ブロックと第２精製用ブロックとで一致していないビット位置を推定し、
上記第１精製用ブロックの上記推定したビット位置のビットを反転させて、上記第１精製用ブロックを第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第２０項記載の共有データ精製方法。
【請求項２３】
受信機はデータ格納手段を有し、
訂正情報生成ステップにおいて生成された訂正情報は、訂正情報送信ステップにおいて送信機と上記データ格納手段とが共に保持する同一データとの排他的論理和により暗号化されて受信機に送信され、
受信機は誤り訂正ステップにおいて、
上記暗号化された訂正情報を獲得し、上記データ格納手段から獲得した上記同一データとの排他的論理和により復号し、該復号した訂正情報に基づいて上記第１精製用ブロックを第２精製用ブロックと一致するように訂正することを特徴とする請求の範囲第２１項記載の共有データ精製方法。
【発明の詳細な説明】
技術分野
この発明は、量子暗号等を用いた通信において誤りを含んで共有されたデータから、誤りの無い共有データを精製する共有データ精製装置および共有データ精製方法に関するものである。
背景技術
従来の量子暗号の誤り訂正方法は例えば、”ＩＮＴＲＯＤＵＣＴＩＯＮ  ＴＯ  ＱＵＡＮＴＵＭ  ＣＯＭＰＵＴＡＴＩＯＮ  ＡＮＤ  ＩＮＦＯＲＭＡＴＩＯＮ”（ＥＤＩＴＯＲ：Ｈｏｉ−Ｋｗｏｎｇ  Ｌｏ，ｅｔ  ａｌ．）に示されている。量子暗号を実現するためにはその手順を示したプロトコルが幾つか提案されているが、中でも  ＢＢ８４プロトコルというのが現在のところ量子暗号の標準的なプロトコルと言える。このプロトコルはその後ノイズのある現実的な通信路でも有効なプロトコルとして改良された。”Ｅｘｐｅｒｉｍｅｎｔａｌ  Ｑｕａｎｔｕｍ  Ｃｒｙｐｔｏｇｒａｐｈｙ”（Ｃ．Ｈ．Ｂｅｎｎｅｔｔ，Ｆ．Ｂｅｓｓｅｔｔｅ，Ｇ．Ｂｒａｓｓａｒｄ，Ｌ．Ｓａｌｖａｉｌ  ａｎｄ  Ｊ．Ｓｍｏｌｉｎ，Ｊ．Ｃｒｙｐｔｏｌｏｇｙ  Ｖｏｌ．５，ｐｐ．３−２８）で述べられている改良型ＢＢ８４プロトコルは大きく分けて前半の量子通信路を使い、物理的に安全な初期データを共有する手順と、後半の公衆回線（古典通信路）上で誤り訂正方法を用いて、その初期データに含まれる誤りを訂正し、情報理論的に第三者への漏洩情報量を抑える手順の２つの部分から構成されている。前半の量子通信路を用いてラフにデータを共有する部分は本発明とは直接関係がない。尚、以降ではＢＢ８４プロトコルは全てこの改良型ＢＢ８４プロトコルとする。本件は後半の“誤りを訂正し、情報理論的に第三者への漏洩情報量を抑える手順”に関するもので、従来の方法は次のように説明することができる。
ＢＢ８４プロトコルの前半部によって共有されるデータは現状１％程度のエラーが含まれる。これは通信路に生じる熱雑音等の揺らぎや反射光といった装置の精度などに起因するものであるが、第三者が介在することによってもそれがエラーの原因となる。量子暗号はそもそも第三者による介入がエラーとして検出できることがその最大の特徴であるが、それは理想的な状況下での話であり、前述のように自然発生的に生じるエラー率の大きさ程度に紛れ込んだ漏洩なのか、それとも第三者による介入なのかはこの段階では区別できない。またラフにデータを共有したとは言え、通常１％もエラーがあればシステムとしては成り立たないことの方が多い。例えばそれを共通鍵暗号における鍵データとして用いることを想像すれば、そこに１ビットたりとも誤りがあってはならないことがすぐに分る。そこで盗聴者にできるだけ情報を漏らさずその誤りを取り除き、同時に量子通信時に漏れた情報を捨て、安全なデータだけを共有する方法が考案された。それが誤り訂正とプライバシー増幅と呼ばれる手法である。
誤り訂正法の原理は簡単で、まず最初に送信者と受信者間で誤りを若干含んだ共有データがあるとする。これを幾つかのブロックに分け、そのブロックごとに１ビットのパリティを比較する。このとき公共の回線を用いるので、一般的な仮定として盗聴者にもそのパリティ情報が漏れるものと考える。したがって情報理論的な漏洩情報量、この場合は１ビットであるが、その帳尻をあわせるため、現在保持しているラフな共有データの１ビットを後で捨てる。パリティの合致したブロックはそこでひとまず処理を終了し、パリティの合わなかったブロックはそのブロックをさらに２分割して同様なパリティチェックを行い、誤りのあるビットが検出されるまで２分岐探索を繰り返し行い、最終的に誤りのあるビットを修正する。こうして２分岐探索に用いたパリティビット数分プラス１個のビットを捨て、残ったビットを共有情報の候補とする。候補といったのは同じブロック中に偶数個誤りがあると、パリティが一致してしまい検出できないので、こうした場合も取り除くためには、共有データのビットを適当に置換して、同様の処理を最初から何度か繰り返すことにより、確実に誤ったビットは取り除くことができるというものである。またプライバシー増幅法は上述の誤り訂正を行っても、さらにごく僅かであるが、偶然盗聴者が盗聴しても誤りとして検出されなかったビットが存在する可能性がある．その部分情報の盗聴可能性も除去する目的で、送受信者は共有情報に対してハッシュを取りそのハッシュ値を最終共有データとするなどして、さらに安全性を高める処理が施される。これがプライバシー増幅法と呼ばれるものである。
以上の従来法におけるｔ−ｒｅｓｉｌｉｅｎｔ関数について以下説明する。
ｆをブール関数で
0004187105.tif 000002
なるものとする。ここで、Ｚ＿２はＺ２を表し、２＾ｎは２のｎ乗を示す。
ｆがｂａｌａｎｃｅｄ（またはｅｑｕｉｔａｂｌｅ）であるとは
すべてのｍビット列ｙに対して、ｆの逆像ｆ＾｛−１｝（ｙ）が２＾｛ｎ−ｍ｝個の元を持つことと定義される。
これは、ｙが出力であるときに入力ｘをランダムに選んだときに
ｆ（ｘ）＝ｙとなる確率をＰ（ｙ）とすれば
すべてのｍビット列ｙに対してＰ（ｙ）が２＾｛−ｍ｝となることと同値である。ｆへの入力ｘの内ｔビットは固定されていると仮定する、つまり、
0004187105.tif 000003
とする。ここで、ｘ＿｛ｉ＿１｝はｘｉ１を表し、ｃ＿１はｃ１を表す。ｘ＿｛ｉ＿ｔ｝、ｃ＿ｔも同様である。
確率Ｐ（ｙ  ｜  ｘ＿｛ｉ＿１｝＝ｃ＿１，．．．．．ｘ＿｛ｉ＿ｔ｝＝ｃ＿ｔ）を
ｘ＿｛ｉ＿１｝＝ｃ＿１，．．．．．ｘ＿｛ｉ＿ｔ｝＝ｃ＿ｔの条件において  ｆ（ｘ）＝ｙとなる確率とする。
ｆがｃｏｒｒｅｌａｔｉｏｎ−ｉｍｍｕｎｅ  ｏｆ  ｏｒｄｅｒ  ｔであるとは
すべてのｘ，ｙ，ｃ＿１，ｃ＿２，．．．ｃ＿ｔに対して
0004187105.tif 000004
となることと定義される。
上記において、例えば２＾｛−ｍ｝は、２−ｍを意味する。
直感的にはｎビット列ｘにおいてｔ個のビットが盗聴者にばれていてもｆを作用させることで結局盗聴者がｆ（ｘ）＝ｙを類推する確率はＰ（ｙ）＝２＾｛−ｍ｝となり、これは何もばれていない場合と同じ、つまり確率が２＾｛−ｍ｝になることである。これはエントロピーが、ｔ個のビットがばれていようと、いなくてもｆを作用させることで盗聴者から見ればｍビットの共有鍵はｍビットのエントロピー（類推する確率が２＾｛−ｍ｝）を持つことになる。
ｆがｔ−ｒｅｓｉｌｉｅｎｔ関数であるとは
ｆがｂａｌａｎｃｅｄであり、ｃｏｒｒｅｌａｔｉｏｎ−ｉｍｍｕｎｅ  ｏｆ  ｏｒｄｅｒ  ｔ
であることと定義される。
これは、すべての可能な変数に対して
0004187105.tif 000005
となることと同値である。
直感的には、ｎビット列ｘのいくつかのビット（ｔ以下）がばれていてもｆを作用させて、ｎビットからｍビットにビット長を短くする。
このとき、ｘ（ｎビット列）においてはいくつかのビットがばれているので盗聴者から見ればｎビット列のｘを類推する確率は２＾｛−ｎ｝よりも小さい。つまり完全な安全性が達成されていないことになる（ｎビットの列ｘの完全な安全性はｘを類推する確率が丁度２＾｛−ｎ｝であること）。
一方、ｙ＝ｆ（ｘ）（ｍビット列）においては、盗聴者が類推する確率は丁度、２＾｛−ｍ｝である。つまりｍビットのエントロピーがある。
以上よりｔは量子通信においてエラーにまぎれてＥｖｅに盗聴されてもかまわないビットの数の最大と考えられる。このことから、エラー率によりｔの値は決定されるべきである。
したがってｍが十分大きなものになるように、ｎを決定して、エラー率からｔを決定して、ｔ−ｒｅｓｉｌｉｅｎｔ関数を構成し、通信プロトコルを設計すれば、初期の鍵交換においていくつかのビットが盗聴者に漏れていても、ｔ−ｒｅｓｉｌｉｅｎｔ関数を利用することにより、完全な安全性（直感的にはｍをセキュリティパラメータとすれば、盗聴者がｍビットの鍵を類推する確率が丁度２＾｛−ｍ｝になること）を達成出来る。
ちなみに、ｔ−ｒｅｓｉｌｉｅｎｔ関数の構成方法は盗聴者に知られていてもかまわない。つまりｔ−ｒｅｓｉｌｉｅｎｔ関数は公開情報である。
以上の従来法では、ｔ−ｒｅｓｉｌｉｅｎｔ関数を作用させて安全性を高めていたのだが、そのｔ−ｒｅｓｉｌｉｅｎｔ関数の構成法が全ての場合において存在する訳ではなく、それは入力のビット長と出力ビット長とセキュリティパラメータに依存するという問題があった。
この発明は上記のような問題点を解決するためになされたもので、ｔ−ｒｅｓｉｌｉｅｎｔ関数でなく、ＳＨＡ−１などの一般的な関数を用いて、上述の全ての場合においても対応可能な方式を獲得することを目的とする。
さらにデータの送受信時の安全性は全てバーナム暗号の安全性に帰着させることができ、情報理論的により高い安全性を有する方法を獲得することを目的とする。
発明の開示
この発明に係る共有データ精製装置は、送信機が精製用ブロックをハミング距離増幅効果により攪拌した後、使い捨てデータでバーナム暗号化して受信機に送信するようにしたものである。
このことによって、データを盗聴される危険性が低いという効果がある。
この発明に係る共有データ精製装置は、仮共有データを送信機と受信機（共有データ精製装置）がそれぞれ精製用ブロックと使い捨てブロックに分割し、精製用データをそれぞれハミング距離増幅効果によりハミング距離を拡大するようにしたものである。
このことによって、仮共有したデータが同じか違うかを識別しやすいという効果がある。
発明を実施するための最良の形態
以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面にしたがって説明する。
実施の形態１．
第１図はこの実施の形態における共有データ精製システムを示す図、第２図はこの共有データ精製システムのデータ処理手段のブロック図、第３図はこの共有データ精製システムの動作を示すフローチャート、第４図Ａ，Ｂはそれぞれ仮共有データＸ，Ｙを精製用データと使い捨てデータに分割する図である。
第１図において、１は送信機、２は受信機、３は送信機１と受信機２を結ぶ量子通信回線、４は送信機１と受信機２を結ぶ公衆通信回線である。
さらに、１１は送信機１に含まれる通信手段Ｘであり、受信機２に含まれる通信手段Ｙ２１と結ばれている。通信手段Ｘ１１と通信手段Ｙ２１はそれぞれ量子通信手段と公衆通信手段の双方を含むものとする。
量子通信回線３はデータの伝送において１パーセント程度の誤りが発生する可能性が高い。公衆通信回線４は通信手段Ｘ１１と通信手段Ｙ２１により例えばリードソロモン法のような誤り訂正符号が付加され、誤りが発生しても訂正されるものとする。
１２，２２はそれぞれ送信機１、受信機２に含まれ、ＣＰＵ、ＲＡＭ等からなるデータ処理手段Ｘ、データ処理手段Ｙであり、１３，２３はそれぞれ送信機１、受信機２に含まれ、ＲＡＭ等の揮発性メモリまたはフラッシュメモリや固定ディスク等の不揮発性メモリからなるデータ格納手段Ｘ、データ格納手段Ｙである。
第２図において、２２１はブロック生成手段、２２２はデータ攪拌手段、２２３は復号ブロック生成手段、２２４は同一性判定手段、２２５は誤り訂正手段であり、これらはデータ処理手段Ｙ２２に含まれる。
受信機２が共有データ精製装置である。
次に動作について第３図のフローチャートを用いて説明する。
まずステップ１０１において、送信機１のデータ格納手段Ｘ１３に格納してある送信用データが通信手段Ｘ１１により受信機２に向けて量子通信回線３を介した量子暗号通信により送信される。受信機２は通信手段Ｙ２１によりこのデータを受信し、データ格納手段Ｙ２３に格納する。これにより送信機１と受信機２は上記送信用データを共有するが、この共有したデータは送信機１から受信機２への送信途中に発生した誤り、または第三者による盗聴などにより、完全に同一ではない可能性がある。これを第３図においては「仮共有」と表現している。データ格納手段Ｘ１３に格納してある上記送信用データを仮共有データＸ、データ格納手段Ｙ２３に格納されたデータを仮共有データＹとする。
ステップ１０１で仮共有された仮共有データＸと仮共有データＹを、送信機１と受信機２はそれぞれステップ１０２及び１１０により、第４図Ａ，第４図Ｂのように精製用データＡｘ、Ａｙ、とバーナム暗号を生成するための使い捨てデータＢｘ、Ｂｙに分割する。第４図Ａは仮共有データＸの分割を示す図であり、図において、３０１は仮共有データＸ、３０２は精製用データＡｘ、３０３は使い捨てデータＢｘ、３０４は剰余を示す。また第４図Ｂは仮共有データＹの分割を示す図であり、図において、３０５は仮共有データＹ、３０６は精製用データＡｙ、３０７は使い捨てデータＢｙ、３０８は剰余を示す。仮共有データＸの分割はデータ処理手段Ｘ１２、仮共有データＹの分割はデータ処理手段Ｙ２２（ブロック生成手段）が行なう。
さらに仮共有データＸの精製用データＡｘはそれぞれ等しいビット数Ｐを有するｎ個の精製用ブロックＡｘｒ（ｒ＝１〜ｎ）に分割され、使い捨てデータＢｘはそれぞれ等しいビット数Ｑを有するｎ個の使い捨てブロックＢｘｒ（ｒ＝１〜ｎ）に分割される。同様に仮共有データＹもそれぞれ等しいビット数Ｐを有するｎ個の精製用ブロックＡｙｒとそれぞれ等しいビット数Ｑを有するｎ個の使い捨てブロックＢｙｒに分割される。上記精製用ブロックＡｘｒと使い捨てブロックＢｘｒはデータ処理手段Ｘ１２中のＲＡＭに、精製用ブロックＡｙｒと使い捨てブロックＢｙｒはデータ処理手段Ｙ２２中のＲＡＭに格納されるが、それぞれデータ格納手段Ｘ１３、データ格納手段Ｙ２３に格納してもよい。
仮共有データＸと仮共有データＹのビット数は等しいのでＬビットとすると、第４図Ａ５第４図Ｂより明らかなように、
0004187105.tif 000006
から上記ｎが求められる。剰余αビットは使用しない。このような所定の分割規則により分割が行なわれる。
ｒの値が等しい精製用ブロック各ＡｘｒとＡｙｒ、および使い捨てブロックＢｘｒとＢｙｒの間の誤り率は量子通信回線３の品質によるが、１パーセント程度であるとする。
送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。ここではｒ＝ｒの場合について説明する。
ステップ１０３及びステップ１１１において、送信機１と受信機２はハッシュ関数などのハミング距離増幅効果（データ攪拌規則）を用いて、精製用ブロックＡｘｒ、Ａｙｒをそれぞれ攪拌し、攪拌後ブロックＣｘｒ、Ｃｙｒに変換する。攪拌後ブロックＣｘｒ、ＣｙｒのサイズはそれぞれＱビットである。この変換はデータ処理手段Ｘ１２、データ処理手段Ｙ２２（データ攪拌手段）により行われる。
ハミング距離とは２つのデジタルデータの一致していないビットの数である。またハミング距離増幅効果とは、以下（ａ）（ｂ）により定義されるハミング距離増大関数Ｆあるいは排他的論理和エントロピー増大関数を用いるものである。
（ａ）ハミング距離増大関数Ｆ：任意のビット列ｓに対して小さな数εが存在し、ハミング距離ε以下のあらゆるビット列ｒについて、関数Ｆで写像した先Ｆ（ｓ）とＦ（ｒ）のハミング距離がｄ以上となる関数。ただし、ｄ＞＞１。
（ｂ）排他的論理和エントロピー増大関数：２つのビット列の排他的論理和のエントロピーを増大させる関数。
この処理を行う意味は次の通りである。即ち全く同じデータはハミング距離増幅効果を行っても写像された先は同じ値になるのに対して、１ビットでも異なるデータはハミング距離増幅効果により、写像された先は全く異なるデータとなる。つまり最初１ビットのハミング距離にあったデータが、データサイズの半分程度のハミング距離に拡大されると考えられる。このことが本発明のポイントの１つである。
ここで、精製用ブロックＡｘｒが第２精製用ブロック、精製用ブロックＡｙｒが第１精製用ブロック、使い捨てブロックＢｘｒが第２使い捨てブロック、使い捨てブロックＢｙｒが第１使い捨てブロック、攪拌後ブロックＣｘｒが第２攪拌ブロック、攪拌ブロックＣｙｒが第１攪拌ブロックである。
ハミング距離増幅効果（データ攪拌規則）として周知のハッシュ関数である“ＳＨＡ−１”を使用すると、攪拌後ブロックＣｘｒ、Ｃｙｒのサイズはそれぞれ１６０ビットとなるので、上記Ｑ＝１６０となる。従って使い捨てブロックＢｘｒ、Ｂｙｒもそれぞれ１６０ビットとすることが必要である。
次に第３図において、送信機１はステップ１０４において、データ処理手段Ｘ１２により、この写像（攪拌）された攪拌後ブロックＣｘｒと同じサイズである使い捨てブロックＢｘｒを乱数列として攪拌後ブロックＣｘｒと使い捨てブロックＢｘｒの排他的論理和（ＸＯＲ）を取り、その結果を送信用ブロックＤｒとして通信手段Ｘ１１から公衆通信回線４を通して受信機２に送る。つまりバーナム暗号として送る。送信用ブロックＤｒのサイズはＱビットである。
バーナム暗号は送りたいビット列とＸＯＲを取る乱数列が同じ長さのときに情報理論的に安全性が証明されている暗号であり、このとき乱数列は一度きりしか用いることはできない。
ここで、送信用ブロックＤｒが暗号化ブロックである。
受信機２は上記送信用ブロックＤｒを通信手段Ｙ２１で受信すると、ステップ１１２でデータ処理手段Ｙ２２（復号ブロック生成手段、同一性判定手段）を用いて、まず送信用ブロックＤｒと使い捨てブロックＢｙｒのＸＯＲをとり、その結果を検証用ブロックＥｒとし、この検証用ブロックＥｒと攪拌後ブロックＣｙｒとを比較する。
すなわち
0004187105.tif 000007
ここで
0004187105.tif 000008
なので、
0004187105.tif 000009
となる。
もし、ＢｘｒとＢｙｒが一致していればＥｒ＝Ｃｘｒとなるので、検証用ブロックＥｒと攪拌後ブロックＣｙｒとの比較は、攪拌後ブロックＣｘｒとＣｙｒの比較と同じ意味になる。
実際は、前述のように使い捨てブロックＢｘｒとＢｙｒは厳密に同じではなく１パーセント程度の誤りが含まれている可能性がある。
検証用ブロックＥｒが復号ブロックであり、送信用ブロックＤｒと使い捨てブロックＢｙｒのＸＯＲをとることが復号規則である。
ハミング距離増幅効果として周知のハッシュ関数である“ＳＨＡ−１”を使用すると、攪拌後ブロックＣｘｒ、Ｃｙｒのサイズはそれぞれ１６０ビットとなるので、上記Ｑ＝１６０となる。従って使い捨てブロックＢｘｒ、Ｂｙｒもそれぞれ１６０ビットとすることが必要である。
また、精製用ブロックＡｘｒとＡｙｒが全く同じデータであるとすれば、攪拌後ブロックＣｘｒとＣｙｒは全く同じデータになり、精製用ブロックＡｘｒとＡｙｒに１ビットでも誤りがあれば、それぞれステップ１０３、ステップ１１１におけるハミング距離増幅効果により、攪拌後ブロックＣｘｒとＣｙｒは全く異なるデータになる。
第５図はハッシュ関数“ＳＨＡ−１”がデータを攪拌する性能を示した実験結果である。
この実験では入力のビット長は５１２ビットに固定した。つまり５１２ビットのうち１ビットだけ異なる２つのデータの出力がどの程度ハミング距離にして離れるかを、サンプル数１０００００００件分のヒストグラムとして示したものである。尚、縦軸は度数を全体のサンプル数で割ったものに正規化してある。したがってハミング距離８０の出現確率は６％強である。
この実験では平均値（ｍ）は７９．９９９５５０、標準偏差（σ）は６．３２７２６７となった。これに対して、同じ５１２ビット入力でも、最初のハミング距離を２に変化させた場合や入力のビット数を２５６に変化させた場合等それぞれ調べたが、その結果上述とほとんど同じで平均約８０、標準偏差約６．３の正規分布を示した。つまりほとんどのビット列のペアはハミング距離が８０前後の無相関なビット列に移されることが示された。またグラフから分かるように分散も小さく、全体で１６０ビットある中の８０前後に集中していることが分る。一般に信頼区間としてセキュリティマージンをどれ位に設定するかはユーザによって決まる。ここでは一般的に受け入れられるであろう６×σ＝３８を信頼区間の幅とする。実際にＳＨＡ−１に関して今回の実験で現れたハミング距離の最小値は４４であり、その出現頻度も１、２個と非常に少ないものであった。したがってＳＨＡ−１の場合８０−３８＝４２ビットをビット列同一性判定の閾値とすることができる。
つまりハミング距離増幅効果を有する関数としてＳＨＡ−１を選んだ場合、もし２つのビット列ｘ＿１、ｘ＿２に対して、ｆ（ｘ＿１）とｆ（ｘ＿２）のハミング距離が４２以下であるならば、非常に高い確率でｘ＿１＝ｘ＿２であると言える。
また以上よりハッシュ関数ＳＨＡ−１は精製用ブロックＡｘｒとＡｙｒのハミング距離が１以上かつ精製用ブロックＡｘｒとＡｙｒのビット数の１／２より十分小さいとき（例えば１／１００以下）は、攪拌後ブロックＣｘｒとＣｙｒのハミング距離は精製用ブロックＡｘｒとＡｙｒのハミング距離より大きくなるように攪拌する。
また精製用ブロックＡｘｒとＡｙｒのビット数をＬＡ、ハミング距離をＨＡ、攪拌後ブロックＣｘｒとＣｙｒのビット数をＬＣ、ハミング距離をＨＣとし、攪拌前ハミング距離比をＨＡ／ＬＡ、攪拌後ハミング距離比をＨＣ／ＬＣとすると、攪拌前ハミング距離比が０を超えかつ０．５より十分小さい時（例えば０．０１以下）は、攪拌後ハミング距離比は攪拌前ハミング距離比より大きくなり、例えば信頼区間を６σとすると０．５±０．２５となる。３８／１６０をおおよそ０．２５としている。
さらにこの実施の形態においては、使い捨てブロックＢｘｒとＢｙｒの間の誤り（約１％）を考慮すると、
0004187105.tif 000010
であるので、ステップ１１２において、検証用ブロックＥｒと攪拌後ブロックＣｙｒのハミング距離が４０以下であれば、攪拌後ブロックＣｘｒ、Ｃｙｒは同じであり、従って精製用ブロックＡｘｒとＡｙｒは一致しているので、「同じ」と判定することにする。つまり物理的なエラー率が２５パーセント以下であるならば「同じ」と判定することにする。
また検証用ブロックＥｒと攪拌後ブロックＣｙｒのハミング距離が４０を超えるときは攪拌後ブロックＣｘｒ、Ｃｙｒは異なり、従って精製用ブロックＡｘｒとＡｙｒは一致していないので、「違う」と判定することにする。
従って、この実施の形態においては、第３図のステップ１１２におけるハミング距離の「所定値」は４０である。
ステップ１１２において「同じ」と判断されれば、受信機２は同じであったことを通信手段Ｙ２１から公衆通信回線４を通して送信機１に通知し（ステップ１１３）、また受信機２は精製用ブロックＡｙｒをデータ格納手段Ｙ２３内の精製済データ格納領域（図示せず）のｒの値に対応する位置に格納して（ステップ１１４）、このブロックに関する動作を終了する（ステップ１１５）。
また送信機１は通信手段Ｘ１１により受信機２から送られてくる判定結果を受信し、データ処理手段Ｘ１２で判定結果を識別し（ステップ１０５）、「同じ」であれば、このブロックに関する動作を終了する（ステップ１０６）。これにより同じデータである精製用ブロックＡｘｒ、Ａｙｒがそれぞれデータ格納手段Ｘ１３、データ格納手段Ｙ２３に格納され、送信機１と受信機２で完全共有される。
「完全共有」とは、まったく同じデータを送信機１と受信機２が保持ことを意味する。
データ処理手段Ｘ１２とデータ処理手段Ｙ２２は何番目の精製用ブロックが完全共有できたか、すなわち完全共有できた精製用ブロックＡｘｒ、Ａｙｒのｒの値がいくつであるかを、完全共有が完了した順にそれそれが保有する「完了ブロックナンバレジスタ」（図示せず）に格納しておく。また完全共有が完了した精製用ブロックをカウントし、完了した精製ブロック数がｎ個になったらすべての精製用ブロックの完全共有が完了し、その結果精製用データＡｘとＡｙが完全共有できたと判断する。
ステップ１１２で「違う」と判定された場合、受信機２は違っている旨を通信手段Ｙ２１により送信機１に通知し、送信機１から精製用ブロックＡｘｒの誤り訂正コードが送られてくるのを待つ（ステップ１１６）。
送信機１は通信手段Ｘ１１により受信機２から送られて来る判定結果を受信し、データ処理手段１２で判定結果を識別し（ステップ１０５）、「違う」であれば、ステップ１０７において精製用ブロックＡｘｒの誤り訂正コードＡｒｃ（訂正情報）を生成する。
この誤り訂正コードＡｒｃは精製用ブロックＡｙｒを精製用ブロックＡｘｒと一致させるための情報である。
ここで仮にリードソロモン符号を用いた誤り訂正に於いて、どの程度の冗長コードを用いれば誤り訂正が行えるかを大まかに見積もる。まず前提としてＧＦ（２８）上のリードソロモン符号を用いるものとする。さらにエラーはバーストエラーではなくランダムエラーを仮定し、その平均ビットエラーレートを１％とする。この定義体の上では１符号語は、２５５（＝２８−１）バイト×８＝２０４０ビットであり、そのうちエラービットは平均で２０４０×０．０１≒２１（ビット）存在する．これを全て１シンボル（今の場合、＝１バイト）当たりに１ビットのエラーが生じると仮定すると、２５５バイト中の２１バイトにエラーがあることになる。このときリードソロモン符号で言う検査記号数、すなわち冗長コードの長さはその倍の４２バイトとなる。したがって２５５バイトの符号長の場合、情報長が２１３バイト、冗長分が４２バイト、すなわち約１：０．２の割合となる。この実施の形態に当てはめて考えると、勿論定義体のサイズとビットエラーレートに依存するが、上述のような設定では、誤り訂正したいコードの約２０パーセントの長さの冗長コードを生成し、ランダム列とＸＯＲしてバーナム暗号として送ればよいことになる。
ステップ１０７において、さらに送信機１はこの誤り訂正コードＡｒｃを同じ長さのデータ（暗号化用データ）と排他的論理和をとってバーナム暗号として受信機２に送信するが、この時の暗号化用データは受信機２も同じデータを持っている必要がある。そこで、データ処理手段Ｘ１２は、すでに完全共有が完了した他のブロックの番号（ｒの値）の内もっとも小さいものｓを上述の「完了ブロックナンバレジスタ」から読み出し、そのブロック番号の精製用ブロックＡｘｓをデータ格納手段Ｘ１３から読み出す。そして、この精製用ブロックＡｘｓの先頭から上記誤り訂正コードＡｒｃと同じビット数のデータと、訂正コードＡｒｃとの排他的論理和をとってバーナム暗号化し、暗号化誤り訂正コードとして通信手段Ｘ１１から受信機２に対して公衆通信回線４を通して送信する。
さらにこの時のブロック番号を「完了ブロックナンバレジスタ」に格納し、完全共有が完了した精製用ブロック数の値をインクリメントする。
ステップ１１７において、受信機２はこの暗号化誤り訂正コードを通信手段Ｙ２１で受信し、データ処理手段Ｙ２２（誤り訂正手段）がすでに完全共有が完了した他の精製用ブロックの番号（ｒの値）の内もっとも小さいものｓを上述の「完了ブロックナンバレジスタ」から読み出し、そのブロック番号の精製用ブロックＡｙｓをデータ格納手段Ｙ２３から読み出す。そして、この精製用ブロックＡｙｓの先頭から受信した暗号化誤り訂正コードと同じビット数のデータ（復号用データ）と、受信した暗号化誤り訂正コードとの排他的論理和をとってバーナム暗号を復号し、復号した誤り訂正コードＡｒｃを用いて精製用ブロックＡｙｒの誤り訂正を行ない、誤り訂正された精製用ブロックＡｙｒをデータ格納手段Ｙ２３に格納する。
さらにこの時のｒの値（ブロック番号）を「完了ブロックナンバレジスタ」に格納し、完全共有が完了した精製用ブロック数の値をインクリメントする。
上記暗号化用データと復号用データが同一データである。
上記のステップ１０７及び１１７においては、すでに完全共有が完了した他のブロックの番号を「完了ブロックナンバレジスタ」から読み出すと説明したが、まだ他に完全共有が完了した精製用ブロックが無く「完了ブロックナンバレジスタ」が空の場合は、他のいずれかの精製用ブロックの完全共有が完了し、「完了ブロックナンバレジスタ」にそのブロック番号が格納されるまで、動作はステップ１０７で中断される。
ここで、第３図のフローチャートにおいて、ステップ１０１が仮共有データ送信ステップ、ステップ１０２が第２ブロック生成ステップ、ステップ１０３が第２攪拌ブロック生成ステップ、ステップ１０４が暗号化ブロック生成ステップ、ステップ１０５が第２同一性判定ステップ、ステップ１０６が終了ステップ、ステップ１０７が訂正情報送信ステップ、ステップ１１０が第１ブロック生成ステップ、ステップ１１１が第１攪拌ブロック生成ステップ、ステップ１１２が同一性判定ステップ、ステップ１１３、１１４が第１精製用ブロック格納ステップ、ステップ１１６が判定結果送信ステップ、ステップ１１７が誤り訂正ステップである。
以上のようにこの実施の形態においては、誤り訂正を行うようにしているので、従来法に比べて多くのデータを捨てることなく完全に同じデータを共有することができる。試算すると、例えばハミング距離増幅効果にハッシュ関数ＳＨＡ−１を用いた場合を考える。ＳＨＡ−１は最大２６４−１ビットのデータから１６０ビットのハッシュ値を生成する。しかしここではもう少し具体的に１００００ビットから１６０ビットのハッシュを生成すると仮定しよう。仮にエラーレートが極端に少なく０．０１％くらいだったとする（現在の量子暗号実験では不可能とも言える値であるが、仮定の話として進める）。すると１００００ビットあれば、１個くらいのエラーが含まれる。ハッシュ値は１６０ビットであるので、バーナム暗号として用いる使い捨てデータは１６０ビットということになる。したがって１００００ビットの中にエラーが含まれていなければ、１６０ビットを捨てて、９８４０ビットを共有したことになるので、元のデータ長の約９８％以上のデータを共有データとして拾い上げることができる。次にエラーが含まれていた場合、該１００００ビットに対して誤り訂正コードを生成する。今、仮にビットの３０％くらいの冗長コードで訂正できるとすると、３０００ビットをバーナム暗号として送る必要がある。したがって使い捨てデータは全部で、１６０＋３０００＝３１６０ビットとなり、これにより６８４０ビットが共有できるので、約７０％のデータを救うことができる。
またこの実施の形態においては、仮共有データを送信機と受信機（共有データ精製装置）がそれぞれ精製用ブロックと使い捨てブロックに分割し、精製用データをそれぞれハミング距離増幅効果によりハミング距離を拡大するので、仮共有したデータが同じか違うかを識別しやすいという効果がある。
これは特に送信機と受信機が仮共有したブロックのハミング距離がそのデータサイズの５０％に対して十分小さいときは、攪拌後のハミング距離は拡大されるので、効果的である。
またこの実施の形態においては、送信機と受信機が仮共有したデータが異なっている場合は誤り訂正を行なうようにしたので、送信機と受信機とで多くの同じデータを共有できるという効果がある。
またこの実施の形態においては、送信機が精製用ブロックをハミング距離増幅効果により攪拌した後、使い捨てデータでバーナム暗号化して受信機に送信するので、データを盗聴される危険性が低いという効果がある。
またこの実施の形態においては、仮共有したデータを複数のブロック（精製用ブロックと使い捨てブロックの対）に分割するので、完全共有に成功した他のブロックのデータを利用して誤り訂正符号（訂正情報）を送信することが可能となり、データ秘匿の安全性が高いという効果がある。
またこの実施の形態においては、完全共有に成功したブロック番号を格納しておく完了ブロックナンバレジスタを設けたので、誤り訂正符号をバーナム暗号化して送信する際の処理が高速化されるという効果がある。
またこの実施の形態においては、復号ブロックと第１攪拌ブロックのハミング距離により第１精製ブロックと第２精製ブロックが同じか違うかを判定しており、このハミング距離の判定の基準値（所定値）を変更すれば柔軟に判定信頼性を変更できるという効果がある。
なお上記の実施の形態では、ハミング距離増幅効果としてハッシュ関数のＳＨＡ−１を用いる例を示したが他のハッシュ関数でもよい。
また第３図のステップ１１２における「所定値」を４０としたが、上記の実験結果の説明にあるように４２（信頼区間６σ）としても十分な信頼性が得られるので、所定値を４２としてもよい。さらにＳＨＡ−１以外の場合でもそれぞれのハッシュ関数の出力ビット数やデータ攪拌特性により他の値にしてもよい。
さらにハミング距離増幅効果はデータを攪拌する手段であればハッシュ関数に限らず、例えばＤＥＳ、ＭＩＳＴＹ等の共通鍵暗号やＲＳＡ等の公開鍵暗号の暗号化関数を用いてもよい。
また上記の実施の形態においては、送信機１と受信機２が共有データを共有するために、量子暗号通信を使用する例を示したが、量子暗号通信に限らず公衆回線を用いた通信でもよく、また暗号通信でなくてもよい。すなわち、ステップ１０１において、送信機１は受信機２と同一のデータを共有する目的でデータを送信するものであれば、送信データの形式、送信方法等は特に限定されるものではない。
また上記の実施の形態においてｎ＝１となるようにＰ及びＱを決定してもよい。
この場合、第１精製用データと第１精製用ブロック、第１使い捨てデータと第１使い捨てブロック、第２精製用データと第２精製用ブロック、第２使い捨てデータと第２使い捨てブロックがそれぞれ同じものとなる。
また上記実施の形態においては、第３図のフローチャートのステップ１０７、ステップ１１７において、それぞれ暗号化用データ、復号用データとして精製用ブロックの一部を使用している例を示したが、ステップ１１２においてハミング距離が０であったブロックについては使い捨てブロックＢｘｒとＢｙｒも完全共有されているとみなし、使い捨てブロックＢｘｒの一部を暗号化用データ、使い捨てブロックＢｙｒの一部を復号用データとして使用してもよい。
また上記実施の形態においては、送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれ、同じプロセスがｎ個並列に進行するとしたが、ブロック番号ｒの順にｒ＝１から順次処理が行われてもよい。この時、あるブロック番号ｕにおいて、ステップ１１２で「違う」と判定されたがまだ他に完全共有が完了した精製用ブロックが無く「完了ブロックナンバレジスタ」が空の場合は、そのブロック番号ｕでの処理は中止され、次のブロック番号の処理が開始される。そして他のいずれかのブロック番号ｖで精製用ブロックの完全共有が完了し、「完了ブロックナンバレジスタ」にそのブロックの番号ｖが格納された時にブロック番号ｕの処理が再開され、ブロック番号ｖの精製用ブロックを用いて誤り訂正符号のバーナム暗号化と復号を行なう。
実施の形態２．
実施の形態１では受信機２が検証用ブロックＥｒと攪拌後ブロックＣｙｒを比較し、「違う」と判定したときのみ送信機１が精製用ブロックの誤り訂正コードを生成して送信する例を示した。
この実施の形態２においては、送信機１がすべての精製用ブロックについて誤り訂正コードを生成して送信する例を示す。
この実施の形態における共有データ精製システムは実施の形態１で説明した第１図と同様である。また仮共有データは実施の形態１と同様に第４図のように精製用データと使い捨てデータに分割される。
またこの実施の形態における共有データ精製システムの動作を示すフローチャートは第６図のようになる。
第６図のフローチャートにおいて、第３図と同一の番号を付したステップは実施の形態１と同様の動作を行なうので、説明を省略する。
またこの実施の形態においても、第６図における送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。ここではｒ＝ｒの場合について説明する。
送信機１のデータ処理手段Ｘ１２は、ステップ２０１において精製用ブロックＡｘｒの誤り訂正符号Ａｘｒｃを生成する。
ついでステップ２０２で、すでに完全共有が完了した他のブロックの番号（ｒの値）の内、最も小さいものｔを実施の形態１で説明した「完了ブロックナンバレジスタ」から読み出し、そのブロック番号の精製用ブロックＡｘｔをデータ格納手段Ｘ１３から読み出す。そして、この精製用ブロックＡｘｔの誤り訂正コードＡｘｔｃを生成するステップ２０３においては、データ処理手段Ｘ１２により、実施の形態１と同様に攪拌後ブロックＣｘｒと使い捨てブロックＢｘｒの排他的論理和（ＸＯＲ）を取り、その結果を送信用ブロックＤｒとする。さらに上記の誤り訂正符号ＡｘｒｃとＡｘｔｃとの排他的論理和を取り、その結果を送信用訂正符号Ｇｒとし、送信手段Ｘ１１により公衆通信回線を通じて受信機２に送信する。
さらにデータ処理手段Ｘ１２はこの時のブロック番号を「完了ブロックナンバレジスタ」に格納し、完全共有が完了した精製用ブロック数の値をインクリメントする。
受信機２は上記送信用ブロックＤｒと送信用訂正符号Ｇｒを通信手段Ｙ２１で受信すると、ステップ１１２でデータ処理手段Ｙ２２（復号ブロック生成手段、同一性判定手段）を用いて、まず送信用ブロックＤｒと使い捨てブロックＢｙｒのＸＯＲをとり、その結果を検証用ブロックＥｒとし、この検証用ブロックＥｒと攪拌後ブロックＣｙｒとを比較する。
実施の形態１と同様にステップ１１２において、検証用ブロックＥｒと攪拌後ブロックＣｙｒのハミング距離が所定値（４０）以下であれば、攪拌後ブロックＣｘｒ、Ｃｙｒは同じであり、従って精製用ブロックＡｘｒとＡｙｒは一致しているので、「同じ」と判定することにする。
また検証用ブロックＥｒと攪拌後ブロックＣｙｒのハミング距離が所定値（４０）を超えるときは攪拌後ブロックＣｘｒ、Ｃｙｒは異なり、従って精製用ブロックＡｘｒとＡｙｒは一致していないので、「違う」と判定することにする。
ステップ１１２において「同じ」と判断されれば、受信機２は精製用ブロックＡｙｒをデータ格納手段Ｙ２３内の精製済データ格納領域（図示せず）のｒの値に対応する位置に格納して（ステップ１１４）、このブロックに関する動作を終了する（ステップ１１５）。これにより同じデータである精製用ブロックＡｘｒ、Ａｙｒがそれぞれデータ格納手段Ｘ１３、データ格納手段Ｙ２３に格納され、送信機１と受信機２で完全共有される。
データ処理手段Ｙ２２はこの時のブロック番号を「完了ブロックナンバレジスタ」に格納し、完全共有が完了した精製用ブロック数の値をインクリメントする。
ステップ１１２で「違う」と判定された場合、受信機２のデータ処理手段Ｙ２２（誤り訂正手段）がすでに完全共有が完了した他のブロックの番号（ｒの値）の内、最も小さいものｔを「完了ブロックナンバレジスタ」から読み出し、そのブロック番号の精製用ブロックＡｙｔをデータ格納手段Ｙ２３から読み出す。そして、この精製用ブロックＡｙｔの誤り訂正コードＡｙｔｃを生成する（ステップ２１１）。
次にデータ処理手段Ｙ２２（誤り訂正手段）は上記送信用訂正符号Ｇｒと誤り訂正符号Ａｙｔｃの排他的論理和Ｈｒを求める（ステップ２１２）。
これは、
0004187105.tif 000011
において
0004187105.tif 000012
なので、
0004187105.tif 000013
となる。
ＡｘｔｃとＡｙｔｃは、それぞれステップ２０２とステップ２１１において、完全共有されたブロック番号ｔの精製用ブロックＡｘｔとＡｙｔから生成されたものなので、一致している。従って、
0004187105.tif 000014
であり、Ｈｒは精製用ブロックＡｘｒｃの誤り訂正符号である。
データ処理手段Ｙ２２はこのＨｒを使用して、誤りを含む精製用データＡｙｒの誤りを訂正し、訂正後のＡｙｒをデータ格納手段Ｙ２３に格納する（ステップ２１３）。またこの時のブロック番号を「完了ブロックナンバレジスタ」に格納し、完全共有が完了した精製用ブロック数の値をインクリメントした後、このブロック番号に対する処理を終了する（ステップ２１４）。
第６図のフローチャートにおいて、ステップ２０１が第２訂正情報生成ステップ、ステップ２０２が第２共有訂正情報生成ステップ、ステップ２０３が訂正情報暗号化ステップと訂正情報送信ステップ、ステップ２１１が第１共有訂正情報生成ステップ、ステップ２１２が訂正情報復号ステップ、ステップ２１３が誤り訂正ステップである。
以上のように、この実施の形態においては送信機１は送信用ブロックＤｒとともに送信用訂正符号Ｇｒも送信するので、受信機２から送信機１に対して応答する必要がなく、相互の通信が１回で完了し、通信量が小さくなるという効果がある。
実施の形態３．
実施の形態１では受信機２が検証用ブロックＥｒと攪拌後ブロックＣｙｒを比較し、「違う」と判定されたときは送信機１が精製用ブロックの誤り訂正コードを生成して送信する例を示した。
この実施の形態３においては、受信機２が「違う」と判定したときは送信機１が精製用ブロックＡｘｒを変換して送信し、受信機２も精製用ブロックＡｙｒを同じく変換し、誤りが発生したビット位置を推定する例を示す。
この実施の形態における共有データ精製システムは実施の形態１で説明した第１図と同様である。また仮共有データは実施の形態１と同様に第４図のように精製用データと使い捨てデータに分割される。
またこの実施の形態における共有データ精製システムの動作を示すフローチャートは第７図のようになる。
第７図のフローチャートにおいて、第３図と同一の番号を付したステップは実施の形態１と同様の動作を行なうので、説明を省略する。
またこの実施の形態においても、第７図における送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。ここではｒ＝ｒの場合について説明する。
送信機１は通信手段Ｘ１１により受信機２から送られて来る判定結果を受信し、データ処理手段Ｘ１２で判定結果を識別し（ステップ１０５）、「違う」であれば、ステップ６０７において第８図Ａに示したように、精製用ブロックＡｘｒを２等分してＡｘｒの前半部と後半部とを生成し、この前半部と後半部のそれぞれ対応するビット同士の排他的論理和を取ってバーナム暗号Ｘを生成する。このバーナム暗号Ｘを通信手段Ｘ１１により受信機２に対して送信する。
受信機２は通信手段Ｙ２１でこのバーナム暗号Ｘを受信すると共に、精製用ブロックＡｙｒを第８図Ｂに示したように２等分してＡｙｒの前半部と後半部とを生成し、この前半部と後半部のそれぞれ対応するビット同士の排他的論理和を取ってバーナム暗号Ｙを生成する。このバーナム暗号Ｙは受信機２外部に対して送信するものではないが、便宜上「暗号」という呼び方をする。
もし精製用ブロックＡｘｒと精製用ブロックＡｙｒが一致していればバーナム暗号Ｘとバーナム暗号Ｙは同一のものになるが、この場合ステップ１０５およびステップ１１２の判定結果が「違う」であるので、バーナム暗号Ｘとバーナム暗号Ｙは一致しない。そしてバーナム暗号Ｘとバーナム暗号Ｙの一致していないビットの位置から精製用ブロックＡｙｒのどの位置のビットが精製用ブロックＡｘｒと異なっているかを推定することができる。
そのために、第９図に示したようにバーナム暗号Ｘとバーナム暗号Ｙの排他的論理和をとって検証データを生成し、この検証データの中で「１」が現れた位置が例えば前からｂ１ビット目だったとすると、精製用ブロックＡｙｒの前半部の前からｂ１ビット目または後半部の前からｂ１ビット目のいずれかが精製用ブロックＡｘｒの同じ位置のビットと反転して誤っていると推定できる。また検証データの中でｂ２ビット目にも「１」が現れたとすると同様に精製用ブロックＡｙｒの前半部の前からｂ２ビット目または後半部の前からｂ２ビット目のいずれかが精製用ブロックＡｘｒの同じ位置のビットと反転して誤っていると推定できる。以上のようなバーナム暗号Ｙの生成と、誤り位置の推定を受信機２はステップ６１７において行なう。
ついで受信機２はデータ処理手段Ｙ２２（誤り訂正手段）により、精製用ブロックＡｙｒの誤っていると推定した位置のビットのいずれかを反転させて仮精製用ブロックＡｙｒ２を生成し、これをステップ１１１と同じハミング距離増幅効果により攪拌して仮攪拌後ブロックＣｙｒ２を生成する（ステップ６１８）。
そしてこの仮攪拌後ブロックＣｙｒ２とステップ１１２で求めた検証用ブロックＥｒを比較し、ハミング距離が所定値（この実施の形態では４０）以下であるかどうかを確認する。もしハミング距離が所定値以下であれば仮精製用ブロックＡｙｒ２は精製用データＡｘｒと同一であると見なせるので、この仮精製用ブロックＡｙｒ２をデータ格納手段Ｙ２３の精製済データ格納領域のｒの値に対応する位置に格納する。
仮攪拌後ブロックＣｙｒ２と検証用ブロックＥｒのハミング距離が所定値以上であった場合は、精製用ブロックＡｙｒの誤っていると推定した他の位置のビットを反転させて仮精製用ブロックＡｙｒ２を生成したり、誤っていると推定した位置が複数ある場合はそれらのビットを同時に反転させるなど、精製用ブロックＡｙｒの誤っていると推定した位置のすべての組合わせのビットを反転させて、仮攪拌後ブロックＣｙｒと検証用ブロックＥｒとのハミング距離が所定値以下になるまで繰り返す。そして所定値以下になったらその時の仮精製用ブロックＡｙｒ２をデータ格納手段Ｙ２３の精製済データ格納領域のｒの値に対応する位置に格納し（ステップ６１９）、このブロック番号に対する処理を終了する（ステップ１１８）。
第７図のフローチャートにおいて、ステップ６０７が訂正情報送信ステップ、ステップ６１７からステップ６１９が誤り訂正ステップである。
以上のように、この実施の形態においては誤りが発生しても受信機は既に送信された精製用ブロックのみから誤りの位置を推定し訂正することが可能なので、送信されたデータを有効に活用することが可能であるという効果がある。
また送信機や受信機は誤り訂正符号を演算したり、誤り訂正符号の送受信を行なわなくてもよいので、誤り訂正のための処理が簡略になるという効果がある。
実施の形態４．
実施の形態３においては、受信機２が「違う」と判定したときに送信機１が精製用ブロックＡｘｒを変換して送信する例を示したが、この実施の形態４においては、送信機１がすべての精製用ブロックを変換して送信する例を示す。
この実施の形態における共有データ精製システムは実施の形態１で説明した第１図と同様である。また仮共有データは実施の形態１と同様に第４図のように精製用データと使い捨てデータに分割される。
またこの実施の形態における共有データ精製システムの動作を示すフローチャートは第１０図のようになる。
第１０図のフローチャートにおいて、第３図および第７図と同一の番号を付したステップは実施の形態１および実施の形態３と同様の動作を行なうので、説明を省略する。
またこの実施の形態においても、第１０図における送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。ここではｒ＝ｒの場合について説明する。
送信機１はステップ９０１において第８図Ａに示したように、精製用ブロックＡｘｒを２等分してＡｘｒの前半部と後半部とを生成し、この前半部と後半部のそれぞれ対応するビット同士の排他的論理和を取ってバーナム暗号Ｘを生成する。
次いでステップ９０２において、実施の形態１、第３図のステップ１０４と同様に攪拌後ブロックＣｘｒと同じサイズである使い捨てブロックＢｘｒを乱数列として攪拌後ブロックＣｘｒと使い捨てブロックＢｘｒの排他的論理和（ＸＯＲ）を取り、その結果を送信用ブロックＤｒとし、送信用ブロックＤｒとバーナム暗号Ｘを通信手段Ｘ１１から公衆通信回線４を通して受信機２に送る。
以上のように、この実施の形態においては送信機１は送信用ブロックＤｒとともにバーナム暗号Ｘも送信するので、受信機２から送信機１に対して応答する必要がなく、相互の通信が１回で完了し、通信量が小さくなるという効果がある。
またこの実施の形態においては誤りが発生しても受信機は送信された精製用ブロックのみから誤りの位置を推定し訂正することが可能なので、送信されたデータを有効に活用することが可能であるという効果がある。
また送信機や受信機は誤り訂正符号を演算したり、誤り訂正符号の送受信を行なわなくてもよいので、誤り訂正のための処理が簡略になるという効果がある。
実施の形態５．
実施の形態１では送信機１は攪拌後ブロックＣｘｒを送信用ブロックＤｒに変換して受信機２に送信する例を示したが、この実施の形態においては送信機１は攪拌後ブロックＣｘｒを受信機２に対して送信する例を示す。
この実施の形態の共有データ精製システムは第１図と同様である。
またこの実施の形態の共有データ精製システムの動作は第１１図に示すフローチャートのようになる。
第１２図Ａ，Ｂはこの実施の形態においてそれぞれ仮共有データＸ，Ｙを精製用データに分割する図であり、図において、３１０、３１１は剰余を示し、サイズはβビットとする。また、第４図Ａ，Ｂと共通する要素には同一符号を付し、説明を省略する。
第１１図のフローチャートにおいて、第３図と同一の番号を付したステップは実施の形態１と同様の動作を行なうので、説明を省略する。
またこの実施の形態においても、第１１図における送信機１によるステップ１０３以降のステップ、受信機２によるステップ１１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。ここではｒ＝ｒの場合について説明する。
ステップ１０１で仮共有された仮共有データＸと仮共有データＹを、送信機１と受信機２はそれぞれステップ９０１及び９１１により、第１２図Ａ，第１２図Ｂのように等しいビット数Ｐを有するｎ個の精製用ブロックＡｘｒ、Ａｙｒ（ｒ＝１〜ｎ）に分割する。
上記精製用ブロックＡｘｒはデータ処理手段Ｘ１２中のＲＡＭに、精製用ブロックＡｙｒはデータ処理手段Ｙ２２中のＲＡＭに格納されるが、それぞれデータ格納手段Ｘ１３、データ格納手段Ｙ２３に格納してもよい。
仮共有データＸと仮共有データＹのビット数は等しいのでＬビットとすると、第１２図Ａ，第１２図Ｂより明らかなように、
0004187105.tif 000015
から上記ｎが求められる。剰余βビッドは使用しない。
ｒの値が等しい精製用ブロック各ＡｘｒとＡｙｒの間の誤り率は量子通信回線３の品質によるが、一般的に１パーセント程度である。
送信機１によるステップ１０３以降のステップ、受信機２によるステップ９１１以降のステップは各ｒ（ｒ＝１〜ｎ）について並列に処理が行なわれる。すなわち同じプロセスがｎ個並列に進行する。
送信機１はステップ９０２において、上記攪拌後ブロックＣｘｒを通信手段Ｘ１１から公衆通信回線４を通して受信機２に送る。
受信機２は上記攪拌後ブロックＣｘｒを通信手段Ｙ２１で受信すると、ステップ９１２でデータ処理手段Ｙ２２を用いて、この攪拌後ブロックＣｘｒと攪拌後ブロックＣｙｒとを比較する。
以後実施の形態１と同様に処理が行なわれ、精製用ブロックＡｘｒとＡｙｒが完全共有される。
この実施の形態においては、送信機１は攪拌後データＣｘｒをバーナム暗号化しないで送信し、受信機２は受信した攪拌後データＣｘｒに何ら処理を加えることなく攪拌後データＣｙｒと比較するので、処理が簡略化されるという効果がある。
実施の形態６．
実施の形態１では仮共有データは送信機１から受信機２に対して送信される例を説明したが、この実施の形態においては、送信機１と受信機２は別々に仮共有データを獲得し、受信機２が送信機１と同じ共有データを保持しているかどうかを検証する例を説明する。
第１３図はこの実施の形態における共有データ精製システムを示す図、第１４図はこの共有データ精製システムの動作を示すフローチャートである。第１３図および第１４図において実施の形態１で説明した第１図および第３図と同じ符号を付した構成要素またはステップは実施の形態１と同様の動作を行うので、その詳細な説明は省略する。
第１３図は第１図に示した実施の形態１の共有データ精製システムの図から量子通信回線３を削除したものであり、他の構成は第１図と同様である。
第１４図において、ステップ１００１とステップ１００２において送信機１と受信機２はそれぞれ仮共有データＸおよび仮共有データＹを獲得する。ここでは例えば図示しないデータ供給装置が存在し、このデータ供給装置から同じデータが送信機１に仮共有データＸとして供給されてデータ格納手段Ｘ１３に格納され、受信機２に仮共有データＹとして供給されデータ格納手段Ｙに格納されたものとする。
この仮共有データＸと仮共有データＹとはデータ供給装置からの送信途中に発生した誤りなどにより完全に同一ではない可能性があるため、「仮共有データ」と呼ぶ。
この仮共有データＸがこの発明における第２の仮共有データ、仮共有データＹがこの発明における第１の仮共有データである。また受信機２がこの発明における共有データ精製装置である。
以後送信機側は実施の形態１と同様にステップ１０２，１０３，１０４の順に動作し、ステップ１０４において生成した送信用ブロックＤｒを受信機２に対して送信する。
受信機２も実施の形態１と同様にステップ１１０，１１１，１１２の順に動作し、ステップ１１２において検証用ブロックＥｒを生成し、ステップ１１１で生成した攪拌後ブロックＣｙｒと比較する。
ステップ１１２において攪拌後ブロックＣｙｒと検証用ブロックＥｒのハミング距離が所定値を超えた場合、受信機２はステップ１１６において判定結果として「違う」を公衆通信回線を通じて送信機１に送信する。
判定結果が「違う」の場合、送信機１と受信機２は例えば再度データ供給装置からデータの供給を受けて上記動作を判定結果が「同じ」になるまで繰り返す。
ステップ１１２において攪拌後ブロックＣｙｒと検証用ブロックＥｒのハミング距離が所定値以下だった場合、受信機２はステップ１１３において判定結果として「同じ」を公衆通信回線を通じて送信機１に送信する。
判定結果が「同じ」の場合、送信機１と受信機２は同じデータを共有したことになるので、例えばこの共有したデータを共通鍵暗号方式の鍵として使用し、暗号通信を行う。
以上のようにこの実施の形態における受信機は送信機と仮共有した仮共有データが一致しているか否かを検証するものであり、共有データ検証装置あるいは共有データ認証装置とも呼べるものである。
またこの実施の形態においては実施の形態１と同様に、仮共有データを送信機と受信機（共有データ精製装置）がそれぞれ精製用ブロックと使い捨てブロックに分割し、精製用データをそれぞれハミング距離増幅効果によりハミング距離を拡大するので、仮共有したデータが同じか違うかを識別しやすいという効果がある。
なお、本実施の形態では、仮共有データ以外のデータを公衆通信回線を介して送受信しているが、公衆通信回線に限るものではなく、専用回線や無線などを介してもかまわない。
また、本実施の形態では、誤り訂正コードをバーナム暗号化して生成する場合、暗号用データとしてすでに完全共有が完了したブロックの番号のうち最も小さいものを選択したが、これに限るものではなく、すでに完全共有が完了したブロックの番号のうちいずれか１つを選択してもよい。この場合、送信側および受信側双方で同じ番号のブロック（このブロックのビット数は誤り訂正コードのそれと同じ）を使用する。
産業上の利用可能性
以上のように、この発明に係る共有データ精製装置及び共有データ精製方法は、送信機と受信機とで仮共有したデータから誤りを取り除く際に、盗聴される危険を小さくし、かつ有効なデータの割合を大きくするのに適している。
【図面の簡単な説明】
第１図は、この発明の実施の形態１における共有データ精製システムを示す図である。
第２図は、この発明の実施の形態１におけるデータ処理手段Ｙを示すブロック図である。
第３図は、この発明の実施の形態１における共有データ精製システムの動作を示すフローチャートである。
第４図Ａは、この発明の実施の形態１における仮共有データＸを精製用データと使い捨てデータに分割する図である。
第４図Ｂは、この発明の実施の形態１における仮共有データＹを精製用データと使い捨てデータに分割する図である。
第５図は、ハッシュ関数ＳＨＡ−１の攪拌性能を示した実験結果の図である。
第６図は、この発明の実施の形態２における共有データ精製システムの動作を示すフローチャートである。
第７図は、この発明の実施の形態３における共有データ精製システムの動作を示すフローチャートである。
第８図Ａは、この発明の実施の形態３における精製用ブロックからバーナム暗号Ｘを生成する手順を説明する図である。
第８図Ｂは、この発明の実施の形態３における精製用ブロックからバーナム暗号Ｙを生成する手順を説明する図である。
第９図は、この発明の実施の形態３における誤り位置の推定を説明する図である。
第１０図は、この発明の実施の形態４における共有データ精製システムの動作を示すフローチャートである。
第１１図は、この発明の実施の形態５における共有データ精製システムの動作を示すフローチャートである。
第１２図Ａは、この発明の実施の形態５における仮共有データＸを精製用データに分割する図である。
第１２図Ｂは、この発明の実施の形態５における仮共有データＹを精製用データに分割する図である。
第１３図は、この発明の実施の形態６における共有データ精製システムを示す図である。
第１４図は、この発明の実施の形態６における共有データ精製システムの動作を示すフローチャートである。
【図１】
0004187105.tif 000016
【図５】
0004187105.tif 000017
【図２】
0004187105.tif 000018
【図３】
0004187105.tif 000019
【図４Ａ】
0004187105.tif 000020
【図４Ｂ】
0004187105.tif 000021
【図６】
0004187105.tif 000022
【図７】
0004187105.tif 000023
【図８Ａ】
0004187105.tif 000024
【図８Ｂ】
0004187105.tif 000025
【図９】
0004187105.tif 000026
【図１３】
0004187105.tif 000027
【図１０】
0004187105.tif 000028
【図１１】
0004187105.tif 000029
【図１２Ａ】
0004187105.tif 000030
【図１２Ｂ】
0004187105.tif 000031
【図１４】
0004187105.tif 000032