(57)【特許請求の範囲】
【請求項１】
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を暗号鍵として記憶する暗号鍵生成部と、
上記暗号鍵生成部が記憶する暗号鍵を入力して、入力した暗号鍵を用いて暗号文を生成する暗号化部と、
上記暗号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな暗号鍵として記憶する場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して、上記暗号化部が暗号文の生成に用いる暗号鍵を上記新たな暗号鍵に更新するように制御するとともに、上記暗号化部の暗号文の生成を制御する制御部とを備え、
上記制御部は、暗号の安全性を保つための限界時間内に暗号文の生成に用いる暗号鍵の更新ができなかった場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達するまで、暗号化部による暗号文の生成を遅らせるように暗号化部を制御することを特徴とする暗号化装置。
【請求項２】
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を暗号鍵として記憶する暗号鍵生成部と、
上記暗号鍵生成部が記憶する暗号鍵を入力して、入力した暗号鍵を用いて暗号文を生成する暗号化部と、
上記暗号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな暗号鍵として記憶する場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して、上記暗号化部が暗号文の生成に用いる暗号鍵を上記新たな暗号鍵に更新するように制御するとともに、上記暗号化部の暗号文の生成を制御する制御部とを備え、
上記制御部は、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達する前に、暗号化部が処理するビット数が暗号の安全性を保つための限界ビット数を超えた場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達するまで、暗号化部による暗号文の生成を遅らせるように暗号化部を制御することを特徴とする暗号化装置。
【請求項３】
上記制御部は、上記共有ビット列が上記所定のビット数に到達した場合に、上記暗号化部が暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して割り込み信号を送信し、
上記暗号化部は、上記制御部が送信した割り込み信号を受信した場合には、上記暗号鍵生成部が記憶する暗号鍵を取得し、取得した暗号鍵を用いて暗号文を生成することを特徴とする請求項１または２に記載の暗号化装置。
【請求項４】
上記制御部は、上記共有ビット列が上記所定のビット数に到達した場合に、上記暗号化部が暗号文の生成に用いる暗号鍵を更新することを許可するタイミングであると判断し、
上記暗号化部は、所定の時間毎に上記制御部に暗号文の生成に用いる暗号鍵の更新の許可を依頼し、上記制御部から暗号鍵を更新することを許可された場合には、上記暗号鍵生成部が記憶する暗号鍵を取得し、取得した暗号鍵を用いて暗号文を生成することを特徴とする請求項１または２に記載の暗号化装置。
【請求項５】
上記暗号鍵生成部は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を暗号鍵として記憶する量子暗号化部を備え、、
上記暗号化部は、
スイッチを有し、スイッチの切り替えにより暗号ロジックを変更することにより暗号文を生成する暗号ロジック部を備え、
上記制御部は、
上記量子暗号化部が記憶する共有ビット情報とスイッチを対応させ、共有ビット情報に基づいてスイッチを切り替えることにより上記暗号ロジック部の暗号ロジックを変更させて上記暗号化部の暗号文の生成を制御することを特徴とする請求項１または２に記載の暗号化装置。
【請求項６】
上記暗号鍵生成部は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し、共有ビット情報に基づいて乱数を生成し、生成した乱数を暗号鍵として出力する乱数生成部を備えることを特徴とする請求項１または２に記載の暗号化装置。
【請求項７】
上記暗号鍵生成部は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を出力する乱数生成部と、
上記乱数出力部が出力する乱数を記憶する置換テーブルを有し、入力値を置換テーブルに入力し、置換テーブルから出力値を暗号鍵として出力する置換部と
を備えることを特徴とする請求項１または２に記載の暗号化装置。
【請求項８】
上記暗号鍵生成部は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を出力する乱数出力部とを備え、
上記乱数出力部が出力した乱数を位相変調器に入力し、伝送路を通過する光信号の位相を位相変調し、量子暗号の通信を行うことにより生成された共有ビットを暗号鍵として記憶することを特徴とする請求項１または２に記載の暗号化装置。
【請求項９】
上記暗号鍵生成部は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を暗号鍵として出力する乱数出力部とを備え、
上記暗号化部は、
上記乱数出力部が出力する乱数である暗号鍵を、所定の暗号化アルゴリズムの初期値として用いて暗号文を生成することを特徴とする請求項１または２に記載の暗号化装置。
【請求項１０】
上記制御部は、暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号化の対象となる平文を入力するバッファと、暗号の安全性を保つための限界時間を計る通信速度タイマとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達する前に、通信速度タイマが計る時間が暗号の安全性を保つための限界時間を越えた場合には、暗号化部による暗号文の生成を遅らせ、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達するまで、平文をバッファに蓄積させることを特徴とする請求項１、３、４のいずれかに記載の暗号化装置。
【請求項１１】
上記制御部は、暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号化の対象となる平文を入力するバッファと、暗号化された平文のビット数をカウントする通信速度カウンタとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達する前に、通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた場合には、暗号化部による暗号文の生成を遅らせ、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達するまで、平文をバッファに蓄積させることを特徴とする請求項２、３、４のいずれかに記載の暗号化装置。
【請求項１２】
上記制御部は、
通信速度タイマが計る時間が暗号の安全性を保つための限界時間を経過した後であって、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達する前に、通信速度タイマが計る時間が暗号鍵生成の異常を示す異常時間に到達した場合には、上記暗号鍵生成部が生成している暗号鍵を破棄させることを特徴とする請求項１０記載の暗号化装置。
【請求項１３】
上記制御部は、
通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた後であって、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新できるビット数に到達する前に、通信速度カウンタがカウントするビット数が暗号鍵生成の異常を示すビット数に到達した場合には、上記暗号鍵生成部が生成している暗号鍵を破棄させることを特徴とする請求項１１記載の暗号化装置。
【請求項１４】
暗号鍵生成部が、量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を暗号鍵として記憶し、
暗号化部が、上記暗号鍵生成部が記憶する暗号鍵を入力して、入力した暗号鍵を用いて暗号文を生成し、
制御部が、上記暗号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな暗号鍵として記憶する場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して、上記暗号化部が暗号文の生成に用いる暗号鍵を上記新たな暗号鍵に更新するように制御するとともに、暗号化部の暗号文の生成を制御し、暗号の安全性を保つための限界時間内に暗号文の生成に用いる暗号鍵の更新ができなかった場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達するまで、暗号化部による暗号文の生成を遅らせるように暗号化部を制御することを特徴とする暗号化方法。
【請求項１５】
暗号鍵生成部が、量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を暗号鍵として記憶する処理、
暗号化部が、上記暗号鍵生成部が記憶する暗号鍵を入力して、入力した暗号鍵を用いて暗号文を生成する処理、
制御部が、上記暗号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな暗号鍵として記憶する場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して、上記暗号化部が暗号文の生成に用いる暗号鍵を上記新たな暗号鍵に更新するように制御するとともに、暗号化部の暗号文の生成を制御し、暗号の安全性を保つための限界時間内に暗号文の生成に用いる暗号鍵の更新ができなかった場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達するまで、暗号化部による暗号文の生成を遅らせるように暗号化部を制御する処理をコンピュータに実行させることを特徴とする暗号化プログラム。
【請求項１６】
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を復号鍵として記憶する復号鍵生成部と、
上記復号鍵生成部が記憶する復号鍵を入力して、入力した復号鍵を用いて暗号文を復号する復号部と、
上記復号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな復号鍵として記憶する場合に、暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して、上記復号部が暗号文の復号に用いる復号鍵を上記新たな復号鍵に更新するように制御するとともに、上記復号部の暗号文の復号を制御する制御部とを備え、
上記制御部は、暗号の安全性を保つための限界時間内に暗号文の復号に用いる復号鍵の更新ができなかった場合に、暗号文の復号に用いる復号鍵を更新できるタイミングに到達するまで、復号部による暗号文の復号を遅らせるように復号部を制御することを特徴とする復号装置。
【請求項１７】
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を復号鍵として記憶する復号鍵生成部と、
上記復号鍵生成部が記憶する復号鍵を入力して、入力した復号鍵を用いて暗号文を復号する復号部と、
上記復号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな復号鍵として記憶する場合に、暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して、上記復号部が暗号文の復号に用いる復号鍵を上記新たな復号鍵に更新するように制御するとともに、上記復号部の暗号文の復号を制御する制御部とを備え、
上記制御部は、暗号文の復号に用いる復号鍵を更新できるタイミングに到達する前に、復号部が処理するビット数が暗号の安全性を保つための限界ビット数を超えた場合に、暗号文の復号に用いる復号鍵を更新できるタイミングに到達するまで、復号部による暗号文の復号を遅らせるように復号部を制御することを特徴とする復号装置。
【請求項１８】
上記制御部は、上記共有ビット列が所定のビット数に到達した場合に、上記復号部が暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して割り込み信号を送信し、
上記復号部は、上記制御部が送信した割り込み信号を受信した場合には、上記復号鍵生成部が記憶する復号鍵を取得し、取得した復号鍵を用いて暗号文を復号することを特徴とする請求項１６または１７に記載の復号装置。
【請求項１９】
上記制御部は、上記共有ビット列が所定のビット数に到達した場合に、上記復号部が暗号文の復号に用いる復号鍵を更新することを許可するタイミングであると判断し、
上記復号部は、所定の時間毎に上記制御部に暗号文の復号に用いる復号鍵の更新の許可を依頼し、上記制御部から復号鍵を更新することを許可された場合には、上記復号鍵生成部が記憶する復号鍵を取得し、取得した復号鍵を用いて暗号文を復号することを特徴とする請求項１６または１７に記載の復号装置。
【請求項２０】
上記制御部は、復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号の対象となる暗号文を入力するバッファと、暗号の安全性を保つための限界時間を計る通信速度タイマとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達する前に、通信速度タイマが計る時間が暗号の安全性を保つための限界時間を越えた場合には、復号部による暗号文の復号を遅らせ、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達するまで、暗号文をバッファに蓄積させることを特徴とする請求項１６、１８、１９のいずれかに記載の復号装置。
【請求項２１】
上記制御部は、復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号の対象となる暗号文を入力するバッファと、復号された暗号文のビット数をカウントする通信速度カウンタとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達する前に、通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた場合には、復号部による暗号文の復号を遅らせ、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達するまで、暗号文をバッファに蓄積させることを特徴とする請求項１７、１８、１９のいずれかに記載の復号装置。
【請求項２２】
上記制御部は、通信速度タイマが計る時間が暗号の安全性を保つための限界時間を経過した後であって、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達する前に、通信速度タイマが計る時間が復号鍵生成の異常を示す異常時間に到達した場合には、上記復号鍵生成部が生成している復号鍵を破棄させることを特徴とする請求項２０に記載の復号装置。
【請求項２３】
上記制御部は、通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた後であって、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新できるビット数に到達する前に、通信速度カウンタがカウントするビット数が復号鍵生成の異常を示すビット数に到達した場合には、上記復号鍵生成部が生成している復号鍵を破棄させることを特徴とする請求項２１に記載の復号装置。
【請求項２４】
復号鍵生成部が、量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を復号鍵として記憶し、
復号部が、上記復号鍵生成部が記憶する復号鍵を入力して、入力した復号鍵を用いて暗号文を復号し、
制御部が、上記復号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな復号鍵として記憶する場合に、暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して、上記復号部が暗号文の復号に用いる復号鍵を上記新たな復号鍵に更新するように制御するとともに、復号部の暗号文の復号を制御し、暗号の安全性を保つための限界時間内に暗号文の復号に用いる復号鍵の更新ができなかった場合に、暗号文の復号に用いる復号鍵を更新できるタイミングに到達するまで、復号部による暗号文の復号を遅らせるように復号部を制御することを特徴とする復号方法。
【請求項２５】
復号鍵生成部が、量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を復号鍵として記憶する処理、
復号部が、上記復号鍵生成部が記憶する復号鍵を入力して、入力した復号鍵を用いて暗号文を復号する処理、
制御部が、上記復号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな復号鍵として記憶する場合に、暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して、上記復号部が暗号文の復号に用いる復号鍵を上記新たな復号鍵に更新するように制御するとともに、復号部の暗号文の復号を制御し、暗号の安全性を保つための限界時間内に暗号文の復号に用いる復号鍵の更新ができなかった場合に、暗号文の復号に用いる復号鍵を更新できるタイミングに到達するまで、復号部による暗号文の復号を遅らせるように復号部を制御する処理をコンピュータに実行させることを特徴とする復号プログラム。
【請求項２６】
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を暗号鍵として記憶する暗号鍵生成部と、
上記暗号鍵生成部が記憶する暗号鍵を入力して、入力した暗号鍵を用いて暗号文を生成する暗号化部と、
量子暗号を用いた通信により生成される共有ビットを順次蓄積して所定のビット数に到達した共有ビット列を復号鍵として記憶する復号鍵生成部と、
上記復号鍵生成部が記憶する復号鍵を入力して、入力した復号鍵を用いて暗号文を復号する復号部と、
上記暗号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな暗号鍵として記憶する場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングであると判断して、上記暗号化部が暗号文の生成に用いる暗号鍵を上記新たな暗号鍵に更新するように制御するとともに、上記暗号化部の暗号文の生成を制御し、上記復号鍵生成部が上記所定のビット数に到達した共有ビット列を新たな復号鍵として記憶する場合に、暗号文の復号に用いる復号鍵を更新できるタイミングであると判断して、上記復号部が暗号文の復号に用いる復号鍵を上記新たな復号鍵に更新するように制御するとともに、上記復号部の暗号文の復号を制御する制御部とを備え、
上記制御部は、暗号の安全性を保つための限界時間内に暗号文の生成に用いる暗号鍵の更新ができなかった場合に、暗号文の生成に用いる暗号鍵を更新できるタイミングに到達するまで、暗号化部による暗号文の生成を遅らせるように暗号化部を制御し、暗号の安全性を保つための限界時間内に暗号文の復号に用いる復号鍵の更新ができなかった場合に、暗号文の復号に用いる復号鍵を更新できるタイミングに到達するまで、復号部による暗号文の復号を遅らせるように復号部を制御することを特徴とする暗号化復号システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号装置及び暗号方法に関するものである。特に、安全性の高い暗号処理と高速に暗号化する暗号処理を組み合わせた暗号化復号に関する発明に係るものである。
【０００２】
【従来の技術】
従来は、伝送路を通過する光信号の位相を位相変調する位相変調器を用いて量子暗号の通信を行い、この通信により生成されたビット列を用いてバーナム暗号により暗号化がなされていた。図１２は、量子暗号の従来例を示した例であり、９０ａは暗号化装置を表し、９０ｂは復号装置の構成図を表している。量子暗号化部１１は暗号化装置９０ａと復号装置９０ｂに存在し、量子暗号によって共有ビット列１６を生成する。この共有ビット列１６は、平文を暗号化する鍵となり、また、暗号文を復号する鍵となる。即ち、平文は量子暗号化部１１ａの共有ビット列１６ａを鍵として排他的論理和９３ａ（ＸＯＲ：ＥＸＣＬＵＳＩＶＥ  ＯＲ）をとり、暗号文を作る。この暗号文は、量子暗号化部１１ｂの共有ビット列１６ｂを鍵として排他的論理和９３ｂをとり、復号され、平文が得られる。
このように、バーナム暗号による量子暗号では、共有ビット列（１６ａ、１６ｂ）を同一鍵として、平文を共有ビット列１６ａで１ビットずつ論理演算して暗号化し、暗号文を同一鍵である共有ビット列１６ｂで復号する。
【０００３】
以上に説明した量子暗号は、非常に弱い光を用いて通信を行うことで途中の通信路に不正な盗聴者がいれば、その存在を必ず検出できるような通信技術である。即ち、量子暗号では、光の粒子１つずつに情報を載せて通信を行う。この通信技術によれば、盗聴を必ず検知することができる。量子力学の基本原理であるハイゼンベルクの不確定性原理を利用して、盗聴という行為を物理的な観測操作と考え、観測されれば必ず光の原理が変わるということから、盗聴を検知できるためである。従って、盗聴すれば、必ず、光の状態が変わるのであるから完全な秘密通信の技術であり、この通信技術を用いれば、盗聴が物理的に不可能となる。
【０００４】
【発明が解決しようとする課題】
しかし、量子暗号を用いて共有ビット列を鍵としてバーナム暗号で暗号化する場合、共有ビット列のビット数分のみ平文が排他的論理和により暗号文となるため、平文のビット数分共有ビット列のビット数が必要となる。しかし、量子暗号を用いた共有ビット列の生成は生成速度が著しく遅く（１ｋｂｐｓ程度）、また生成速度自体も一定でなく、最低速度が保証されていない。従って、現在実施されている共通鍵暗号処理などに比べ、量子暗号処理のみでは、暗号化及び復号の速度が遅く、また、最低暗号処理速度が保証されず、一定速度を保った暗号処理の高速化が問題となっていた。
【０００５】
この発明は、暗号処理の安全性の強化と高速化を目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、暗号化装置は、
暗号鍵を生成する暗号鍵生成部と、
上記暗号鍵生成部が暗号鍵を生成する速度よりも速い速度で暗号文を生成する暗号化部と、
上記暗号鍵生成部が生成した暗号鍵を用いて上記暗号化部が暗号文を生成できるように上記暗号化部の暗号文の生成を制御する制御部とを備えることを特徴とする。
【０００７】
また、上記暗号鍵生成部は、
量子暗号を用いた通信により生成された共有ビットを暗号鍵として記憶し、
上記制御部は、上記暗号化部が暗号文の生成に用いる暗号鍵を更新するタイミングであると判断した場合には割り込み信号を送信し、
上記暗号化部は、上記制御部が送信した割り込み信号を受信した場合には、上記暗号鍵生成部が記憶する暗号鍵を取得し、取得した暗号鍵を用いて暗号文を生成することを特徴とする。
【０００８】
また、上記暗号鍵生成部は、
量子暗号を用いた通信により生成された共有ビットを暗号鍵として記憶し、
上記制御部は、上記暗号化部が暗号文の生成に用いる暗号鍵を更新することを許可するタイミングか否かを判断し、
上記暗号化部は、所定の時間毎に上記制御部に暗号文の生成に用いる暗号鍵の更新の許可を依頼し、上記制御部から暗号鍵を更新することを許可された場合には、上記暗号鍵生成部が記憶する暗号鍵を取得し、取得した暗号鍵を用いて暗号文を生成することを特徴とする。
【０００９】
また、上記制御部は、
暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号化の対象となる平文を入力するバッファと暗号の安全性を保つための限界時間を計る通信速度タイマとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達する前に通信速度タイマが計る時間が暗号の安全性を保つための限界時間を越えた場合には、暗号化部が暗号文を生成する速度を低下させ、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達するまで、平文をバッファに蓄積させることを特徴とする。
【００１０】
また、上記制御部は、
暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号化の対象となる平文を入力するバッファと暗号化された平文のビット数をカウントする通信速度カウンタとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達する前に通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた場合には、暗号化部が暗号文を生成する速度を低下させ、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達するまで、平文をバッファに蓄積させることを特徴とする。
【００１１】
また、上記制御部は、
暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号鍵生成の異常を示す異常時間を計る通信速度タイマを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達する前に通信速度タイマが計る時間が暗号鍵生成の異常を示す時間に到達した場合には、上記暗号鍵生成部が生成している暗号鍵を破棄させることを特徴とする。
【００１２】
また、上記制御部は、
暗号鍵生成部による生成途中の暗号鍵のビット数をカウントするカウンタを備え、
上記暗号化部は、暗号化された平文のビット数をカウントする通信速度カウンタを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達する前に通信速度カウンタがカウントするビット数が暗号鍵生成の異常を示すビット数に到達した場合には、上記暗号鍵生成部が生成している暗号鍵を破棄させることを特徴とする。
【００１３】
また、本発明の暗号化方法は、
暗号鍵を生成し、
暗号鍵を生成する速度よりも速い速度で暗号文を生成し、
生成した暗号鍵を用いて暗号文を生成できるように、暗号文の生成を制御することを特徴とする。
【００１４】
また、本発明の暗号化プログラムは、
暗号鍵を生成する処理、
暗号鍵を生成する速度よりも速い速度で暗号文を生成する処理、
生成した暗号鍵を用いて暗号文を生成できるように、暗号文の生成を制御する処理をコンピュータに実行させることを特徴とする。
【００１５】
また、本発明の暗号化プログラムを記録したコンピュータ読み取り可能な記録媒体は、
暗号鍵を生成する処理、
暗号鍵を生成する速度よりも速い速度で暗号文を生成する処理、
生成した暗号鍵を用いて暗号文を生成できるように、暗号文の生成を制御する処理をコンピュータに実行させるための暗号化プログラムを記録したことを特徴とする。
【００１６】
また、本発明の復号装置は、
復号鍵を生成する復号鍵生成部と、
上記復号鍵生成部が復号鍵を生成する速度よりも速い速度で暗号文を復号する復号部と、
上記復号鍵生成部が生成した復号鍵を用いて上記復号部が暗号文を復号できるように上記復号部の暗号文の復号を制御する制御部とを備えることを特徴とする。
【００１７】
また、上記復号鍵生成部は、
量子暗号を用いた通信により生成された共有ビットを復号鍵として記憶し、
上記制御部は、上記復号部が暗号文の復号に用いる復号鍵を更新するタイミングであると判断した場合には割り込み信号を送信し、
上記復号部は、上記制御部が送信した割り込み信号を受信した場合には、上記復号鍵生成部が記憶する復号鍵を取得し、取得した復号鍵を用いて暗号文を復号することを特徴とする。
【００１８】
また、上記復号鍵生成部は、
量子暗号を用いた通信により生成された共有ビットを復号鍵として記憶し、
上記制御部は、上記復号部が暗号文の復号に用いる復号鍵を更新することを許可するタイミングか否かを判断し、
上記復号部は、所定の時間毎に上記制御部に暗号文の復号に用いる復号鍵の更新の許可を依頼し、上記制御部から復号鍵を更新することを許可された場合には、上記復号鍵生成部が記憶する復号鍵を取得し、取得した復号鍵を用いて暗号文を復号することを特徴とする。
【００１９】
また、上記制御部は、
復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号の対象となる暗号文を入力するバッファと暗号の安全性を保つための限界時間を計る通信速度タイマとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達する前に通信速度タイマが計る時間が暗号の安全性を保つための限界時間を越えた場合には、復号部が暗号文を復号する速度を低下させ、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達するまで、暗号文をバッファに蓄積させることを特徴とする。
【００２０】
また、上記制御部は、
復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号の対象となる暗号文を入力するバッファと復号された暗号文のビット数をカウントする通信速度カウンタとを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達する前に通信速度カウンタがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた場合には、復号部が暗号文を復号する速度を低下させ、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達するまで、暗号文をバッファに蓄積させることを特徴とする。
【００２１】
また、上記制御部は、
復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号鍵生成の異常を示す異常時間を計る通信速度タイマを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達する前に通信速度タイマが計る時間が復号鍵生成の異常を示す時間に到達した場合には、上記復号鍵生成部が生成している復号鍵を破棄させることを特徴とする。
【００２２】
また、上記制御部は、
復号鍵生成部による生成途中の復号鍵のビット数をカウントするカウンタを備え、
上記復号部は、復号された暗号文のビット数をカウントする通信速度カウンタを備え、
上記制御部は、カウンタの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達する前に通信速度カウンタがカウントするビット数が復号鍵生成の異常を示すビット数に到達した場合には、上記復号鍵生成部が生成している復号鍵を破棄させることを特徴とする。
【００２３】
また、本発明の復号方法は、
復号鍵を生成し、
復号鍵を生成する速度よりも速い速度で暗号文を復号し、
生成した復号鍵を用いて暗号文を復号できるように、暗号文の復号を制御することを特徴とする。
【００２４】
また、本発明の復号プログラムは、
復号鍵を生成する処理、
復号鍵を生成する速度よりも速い速度で暗号文を復号する処理、
生成した復号鍵を用いて暗号文を復号できるように、暗号文の復号を制御する処理をコンピュータに実行させることを特徴とする。
【００２５】
また、本発明の復号プログラムを記録したコンピュータ読み取り可能な記録媒体は、
復号鍵を生成する処理、
復号鍵を生成する速度よりも速い速度で暗号文を復号する処理、
生成した復号鍵を用いて暗号文を復号できるように、暗号文の復号を制御する処理をコンピュータに実行させるための復号プログラムを記録したことを特徴とする。
【００２６】
また、本発明の暗号化復号システムは、
暗号鍵を生成する暗号鍵生成部と、
上記暗号鍵生成部が暗号鍵を生成する速度よりも速い速度で暗号文を生成する暗号化部と、
上記暗号化部が生成する暗号文を復号するための復号鍵を生成する復号鍵生成部と、
上記復号鍵生成部が復号鍵を生成する速度よりも速い速度で暗号文を復号する復号部と、
上記暗号鍵生成部が生成した暗号鍵を用いて上記暗号化部が暗号文を生成できるように上記暗号化部の暗号文の生成を制御し、上記復号鍵生成部が生成した復号鍵を用いて上記復号部が暗号文を復号できるように上記復号部の暗号文の復号を制御する制御部とを備えることを特徴とする。
【００２７】
また、本発明の暗号ロジック変更装置は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
スイッチを有し、スイッチの切り替えにより暗号ロジックを変更する暗号ロジック部と、
上記量子暗号化部が記憶する共有ビット情報とスイッチを対応させ、共有ビット情報に基づいてスイッチを切り替えることにより上記暗号ロジック部の暗号ロジックを変更させる制御部を備えることを特徴とする。
【００２８】
また、本発明の乱数生成装置は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し、共有ビット情報に基づいて乱数を生成し、生成した乱数を出力する乱数生成部を備えることを特徴とする。
【００２９】
また、本発明の置換装置は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を出力する乱数生成部と、
上記乱数出力部が出力する乱数を記憶する置換テーブルを有し、入力値を置換テーブルに入力し、置換テーブルから出力値を出力する置換部を備えることを特徴とする。
【００３０】
また、本発明の量子暗号装置は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を出力する乱数出力部とを備え、
上記乱数出力部が出力した乱数を位相変調器に入力し、伝送路を通過する光信号の位相を位相変調し、量子暗号の通信を行うことを特徴とする。
【００３１】
また、本発明の暗号装置は、
伝送路を通過する光信号を用いた量子暗号の通信により生成された共有ビット情報を記憶する量子暗号化部と、
上記量子暗号化部が記憶する共有ビット情報を入力し乱数を出力する乱数出力部と、
上記乱数出力部が出力する乱数を所定の暗号化アルゴリズムの初期値として用いる暗号化部を備えることを特徴とする。
【００３２】
【発明の実施の形態】
実施の形態１．
以下、実施の形態１について説明する。
実施の形態１は、図１に示すとおり、暗号化装置１０ａと復号装置１０ｂから構成されており、平文が暗号化装置１０ａに入ると暗号文に暗号化され、暗号文が復号装置１０ｂに入ると暗号文が平文に復号される構成になっている。図１では、１０ａが暗号化装置、１０ｂが復号装置となっているが、平文が暗号化される方向が逆になると、１０ｂが暗号化装置、１０ａが復号装置となる。このように、図１に示す暗号化装置１０ａと復号装置１０ｂは同一構成となっている。量子暗号化部（１１ａ、１１ｂ）は、光ファイバ網３１等の光通信が可能な回線を利用して、伝送路を通過する光信号の位相を位相変調する位相変調器を用いて量子暗号の通信を行い、この通信によって共有ビット（１６ａ、１６ｂ）を生成する。ただし、量子暗号による通信が可能な手段であれば、位相変調器を用いず、周波数変調器を用いる等いずれの装置を用いてもよい。
この共有ビット１６ａと共有ビット１６ｂは量子暗号化部１１ａと量子暗号化部１１ｂで同時に生成され、共通鍵暗号化部（１５ａ、１５ｂ）で暗号文を生成する時または暗号文を復号する時の鍵となる。この量子暗号化部１１ａと量子暗号化部１１ｂによる量子暗号通信は、暗号鍵を生成する暗号鍵生成部と復号鍵を生成する復号鍵生成部による通信の一例であり、暗号鍵生成部と復号鍵生成部で、鍵を共有することに対し安全性の高い通信を行えれば量子暗号に限らず他の通信により鍵を生成してもよい。
具体的な量子暗号化部１１による量子暗号手順は次の通りである。
（１）量子暗号化部１１ａ及び１１ｂが独立に乱数を生成する。
（２）（１）の乱数を量子暗号化部１１ａ及び１１ｂのそれぞれに有する位相変調器に入力し、伝送路を通過する光信号の位相を位相変調させる位相変調方式によって、量子暗号化部１１ａと１１ｂが量子暗号通信を行い、あるビット情報を共有する。このビット情報は、光通信を行っているときのノイズ情報とエラー情報が暗号情報に加わったものである。
（３）量子暗号化部１１ａと１１ｂが通信しながら誤りを除去し、共有ビット１６を生成する。
【００３３】
鍵バッファ（１２ａ、１２ｂ）は量子暗号化部（１１ａ、１１ｂ）で生成された共有ビット（１６ａ、１６ｂ）を蓄積するバッファである。鍵バッファ１２の内部構造の一例としては、ＦＩＦＯ（ＦＩＲＳＴ  ＩＮ  ＦＩＲＳＴ  ＯＵＴ）構造をもつシフトレジスタがあげられる。このような構造をとることで量子暗号化部１１で生成された共有ビット１６が鍵バッファ１２の右端から１ビット入ると、鍵バッファ１２の左端１ビットが捨てられるという動作が可能となる。
制御部（１３ａ、１３ｂ）はタイマ（２２ａ、２２ｂ）及びカウンタ（１４ａ、１４ｂ）を有するか、またはそれらのいずれかを有し、共通鍵暗号化部（１５ａ、１５ｂ）の暗号鍵または復号鍵となる共通鍵（２０ａ、２０ｂ）更新のための制御を行う。
共通鍵暗号化部１５ａは、鍵バッファ１２ａから取り込んだ暗号鍵となる共通鍵２０ａを用いて平文を暗号文に暗号化する処理を行う。共通鍵暗号化部１５ｂは、鍵バッファ１２ｂから取り込んだ復号鍵となる共通鍵２０ｂを用いて暗号文を平文に復号する処理を行う。
なお、暗号文の暗号化方法は共通鍵暗号による通信に限られず、暗号鍵を生成する速度より早い速度で暗号文を生成し、または、復号鍵を生成する速度より早い速度で暗号文を復号できればいかなる方法でもよい。
【００３４】
このように、本実施の形態では、安全性の高い通信により生成されたビット列を鍵として暗号速度が早い通信により暗号文を生成するという、２種類の通信によるハイブリッド型の通信形態となっている。
【００３５】
次に、図１で示した各構成要素の動作について説明する。
図２は、図１で示した各構成要素の動作を示したフローチャートである。フローチャートの各ステップについて説明する。
（１）Ｓ２０
量子暗号化部（１１ａ、１１ｂ）は、量子暗号を用いた通信により共有ビット（１６ａ、１６ｂ）を生成する。共有ビット１６は、共有ビット生成領域にいつ何ビット書き込まれるかの保証はない。
（２）Ｓ２１
生成された共有ビットは鍵バッファ（１２ａ、１２ｂ）に逐次記憶される。
（３）Ｓ２２
制御部（１３ａ、１３ｂ）のカウンタ（１４ａ、１４ｂ）で鍵バッファ１２に記憶された共有ビット数をカウントする。カウントアップのタイミングは、量子暗号通信技術により暗号化装置１０ａと復号装置１０ｂで同期がとれている。
（４）Ｓ２３
制御部（１３ａ、１３ｂ）は、鍵バッファ（１２ａ、１２ｂ）に蓄積された共有ビット列が一定のビット数に到達したかをカウンタ（１４ａ、１４ｂ）のカウンタ値により判断する。
（５）Ｓ２４
制御部（１３ａ、１３ｂ）は、鍵バッファ（１２ａ、１２ｂ）に蓄積された共有ビット列が一定のビット数に到達したと判断した場合には、共通鍵暗号化部（１５ａ、１５ｂ）に割り込み信号を送信する。
一方、制御部（１３ａ、１３ｂ）が、鍵バッファ（１２ａ、１２ｂ）に蓄積された共有ビット列が一定のビット数に満たないと判断した場合には、上記ステップ２２の処理に戻る。
（６）Ｓ２５
制御部（１３ａ、１３ｂ）から割り込み信号を受信した共通鍵暗号化部（１５ａ、１５ｂ）は、鍵バッファ（１２ａ、１２ｂ）内に記憶された情報を共通鍵（２０ａ、２０ｂ）に格納する。共通鍵２０ａは、共通鍵暗号化部１５ａによる暗号化の暗号鍵となり、共通鍵２０ｂは、共通鍵暗号化部１５ｂによる復号の復号鍵となる。
（７）Ｓ２６
ステップ２３で判断された一定のビット数分、カウンタ（１４ａ、１４ｂ）のカウンタ値をカウントダウンする。
（８）Ｓ２７
共通鍵（２０ａ、２０ｂ）を鍵として共通鍵暗号処理を行う。すなわち、共通鍵暗号化部１５ａは、暗号鍵である共通鍵２０ａを用いて、平文を暗号文に暗号化し、共通鍵暗号化部１５ｂは、電話回線３２を伝送して入力された暗号文を、復号鍵である共通鍵２０ｂを用いて、平文に復号する。
【００３６】
図２に示す動作では、量子暗号を用いて生成された共有ビット１６を蓄積する鍵バッファ１２にカウントされたビット数が予め決められた数に到達したときに、量子暗号側（制御部１３）から共通鍵暗号側（共通鍵暗号化部１５）に割り込み信号を送信し、共通鍵暗号側はこの割り込み信号を受信後、共通鍵２０を鍵バッファ１２に蓄積された情報に更新する。この時、この処理を行うためにカウンタ１４を利用して鍵バッファ１２に蓄積されたビット数をカウントアップしていた。
しかし、制御部１３がタイマ２２を備えることによりタイマ２２が予め決められた時間に到達したときに、量子暗号側から共通鍵暗号側に割り込み信号を送信してもよい。その場合には、ステップ２３で制御部１３はタイマ２２が一定時間以上になったか判断する。また、ステップ２６でタイマ２２をリセットする。
また、制御部１３が、カウンタ１４およびタイマ２２を備えることにより、鍵バッファ１２にカウントされたビット数が予め決められた数に到達したとき、または、タイマ２２が予め決められた時間に到達したときのいずれかのタイミングに割り込み信号を送信するようにしてもよい。その場合には、ステップ２３でカウンタ１４のカウンタ値が一定以上になったか、又は、タイマ２２が一定時間以上になったかを判断し、これらのいずれかを満たす場合にはステップ２４の処理を行い、いずれも満たしていない場合にはステップ２２の処理に戻ることになる。
【００３７】
このように、平文を暗号文に暗号化し、暗号文を平文に復号することは高速な共通鍵暗号を用い、その鍵を生成する手段として、安全性は高いが速度に限界のある量子暗号を用いることで、全体として安全性が高く、暗号化速度が高速かつ最低暗号化速度が保証された通信が可能になるという効果を奏する。この効果は、量子暗号の速度が向上すればするほど顕著になり、よりシステムの安全性も向上する。
実施の形態１では、量子暗号と共通鍵暗号をハイブリッド型のシステムとする一例をあげたが、これに限ることはなく、安全性の高い暗号化処理により生成されるビットを鍵として、その鍵を利用して高速で、しかも暗号速度が一定に保たれる通信により暗号処理を行えば、安全性が高く、しかも高速な通信が実現する。即ち、暗号化に際し、安全性の高い通信システムと暗号速度の速い通信システムとを融合（ハイブリッド方式）させることにより盗聴されにくく、安全性の高い、しかも高速な通信が可能となるという顕著な効果が得られる。
なお、ここでいう盗聴とは、データ通信での内容を盗み見ることをいう。
【００３８】
実施の形態２．
次に、実施の形態２について説明する。
図３は、実施の形態２を示した全体の構成図である。
実施の形態１を示した図１と比べ、図３では制御部１３から割り込み信号を出すのではなく、共通鍵暗号化部１５から定期的に制御部１３に対して、鍵バッファ１２に一定のビット数が共有できたかを問い合わせ、共有できていれば、共通鍵暗号に用いる共通鍵２０を更新する形態をとっている。
【００３９】
図４は、図３に示した各構成の動作を表したフローチャートである。以下に各ステップについて説明する。
（１）Ｓ４０
量子暗号化部１１が量子暗号の通信を行った結果、共有ビット１６が生成される。上述の通り、共有ビット生成領域に共有ビット１６がいつ何ビット書き込まれるかの保証はない。
（２）Ｓ４１
生成された共有ビット１６を鍵バッファ１２に逐次記憶する。
（３）Ｓ４２
制御部（１３ａ、１３ｂ）のカウンタ（１４ａ、１４ｂ）で鍵バッファ１２に記憶された共有ビット数をカウントする。カウントアップのタイミングは、量子暗号通信技術により暗号化装置と復号装置で同期がとれている。
（４）Ｓ４３
共通鍵暗号化部１５は、所定のタイミング毎に制御部１３が鍵の更新を許可するか否かを問い合わせ、制御部１３は、カウンタ１４のカウンタ値が一定値以上になったか判断し、一定値以上になった場合には、共通鍵暗号化部１５の問い合わせに対し、鍵の更新を許可し、ステップ４４に進む。
カウンタ値が一定以上になっていない場合には、鍵の更新を許可せず、ステップ４２に戻る。
（５）Ｓ４４
共通鍵暗号化部１５が鍵バッファ１２内の共有ビット列を用いて共通鍵２０を更新する。
（６）Ｓ４５
ステップ４３で判断された一定値分、カウンタ１４のカウンタ値をカウントダウンする。
（７）Ｓ４６
更新された共通鍵２０を鍵として共通鍵暗号処理を行う。すなわち、共通鍵暗号化部１５ａは、暗号鍵である共通鍵２０ａを用いて、平文を暗号文に暗号化し、共通鍵暗号化部１５ｂは、電話回線３２を伝送して入力された暗号文を、復号鍵である共通鍵２０ｂを用いて、平文に復号する。
【００４０】
図４では、カウンタ１４により共通鍵を更新するタイミングを決定していたが、実施の形態１の場合と同様に、タイマ２２により制御することも可能である。その場合には、Ｓ４３でタイマが一定時間以上になったか判断する処理を行う。また、タイマ２２とカウンタ１４とを併用して判断してもよい。
【００４１】
このように、実施の形態２では、安全性の高い量子暗号による通信と暗号速度の速い共通鍵暗号通信との融合（ハイブリッド方式）により盗聴されにくく、安全性の高い、しかも高速な通信が可能となる。また、共通鍵暗号化部１５が定期的に量子暗号側（制御部１３）に一定のビット数が共有できたかどうかを問い合わせ、共有できていれば共通鍵２０を更新するので、制御部１３による割り込み信号処理を不要とすることができる。
【００４２】
実施の形態３．
実施の形態３について説明する。
実施の形態３では、予め決められた時間内（Ｔ１）に鍵の更新ができなかったとき、つまり、鍵バッファ１２に一定のビット数が共有できなかった場合に、共通鍵暗号側で通信の速度を低下させ、又は、一時暗号化処理を止めて、鍵バッファ１２に共有ビット１６が、一定ビット数蓄積されるまであふれた平文または暗号文をバッファ１８に蓄積する処理を行う。
また、実施の形態３では、予め決められた時間内（Ｔ２）に鍵の更新ができなかったとき、つまり、鍵バッファ１２に一定のビット数が共有できなかった場合に、量子暗号側がそれまでに共有していたビットを破棄する処理を行う。
Ｔ１は正常な暗号化処理速度内の時間ではあるが、安全性を一定に保つために定められた一定時間である。Ｔ２は異常な暗号化処理速度を示す時間である。したがって、Ｔ１＜Ｔ２となる。Ｔ２で定められた時間内に鍵の更新ができなかった場合にはシステムトラブルか、或いは、量子暗号側で盗聴が行われた可能性が高い。したがって、この場合、量子暗号側はそれまでに共有していたビット（鍵バッファ１２に記憶された情報）を破棄する。
【００４３】
図５及び図６は、実施の形態３を表したシステムの全体構成図である。
図５は、図１の共通鍵暗号化部１５に通信速度タイマ２５と通信速度カウンタ２６とバッファ１８を新たに設けている。また、多重暗号化のループ処理を行うための動作線が加わっている。これは、共通鍵暗号化部１５で通信の速度を低下させる方法の一例として、共通鍵暗号化部１５から出力した暗号文をループさせ、多重暗号化させる動作である。その他の構成は図１と同様である。
図６も同様に、図３の共通鍵暗号化部１５に通信速度タイマ２５と通信速度カウンタ２６とバッファ１８が設けられ、また、多重暗号化のループ処理を行うための動作線が加わっている。その他の構成は図３と同様である。
【００４４】
図７は、図５で示された構成の動作を表したフローチャートである。
（１）Ｓ６０
量子暗号化部１１で共有ビット１６を生成する。
（２）Ｓ６１
通信速度タイマ２５をセットする。通信速度タイマ２５は、暗号処理の安全性を保つための限界時間（Ｔ１）と暗号化速度の異常を示す異常時間（Ｔ２）を計るためのものである。
（３）Ｓ６２
生成された共有ビット１６を鍵バッファ１２に記憶する。
（４）Ｓ６３
制御部１３のカウンタ１４で鍵バッファ１２に記憶された共有ビット数をカウントする。
（５）Ｓ６４
制御部１３のカウンタのカウンタ値が一定値以上（共通鍵２０を更新すべきビット数以上）になったか判断する。
（６）Ｓ６５
ＹＥＳの場合は、制御部１３が共通鍵暗号化部１５に割り込み信号を送信する。
ＮＯの場合は、後述するステップ６８の処理を行う。
（７）Ｓ６６
割り込み信号を受信した共通鍵暗号化部１５は、鍵バッファ１２内の共有ビット列を共通鍵２０として更新する。
（８）Ｓ６７
共通鍵暗号化部１５は、更新された共通鍵２０を鍵として共通鍵暗号処理を行う。
（９）Ｓ６８
ステップ６４で、カウンタ値が一定値未満である場合には、次の動作を行う。
制御部１３は、通信速度タイマ２５が暗号処理の安全性を保つための限界時間（Ｔ１）以上であるかどうかを判断する。
（１０）Ｓ６９
通信速度タイマ２５が暗号処理の安全性を保つための限界時間（Ｔ１）以上であれば、共通鍵暗号化部１５の暗号化処理速度を低下させ、共通鍵２０が更新されるまで暗号化の対象となる平文をバッファ１８に蓄積する。
一方、通信速度タイマ２５が暗号処理の安全性を保つための限界時間（Ｔ１）未満であれば、ステップ６３の処理に戻る。
（１１）Ｓ７０
制御部１３は、通信速度タイマ２５が暗号化速度の異常を示す異常時間（Ｔ２）以上であるかを判断する。
（１２）Ｓ７１
通信速度タイマ２５が暗号化速度の異常を示す異常時間（Ｔ２）以上であれば、鍵バッファ１２に記憶されたビットを破棄し、カウンタ１４を共通鍵２０を更新するビット数分カウントダウンさせ、ステップ６２の処理に戻る。
通信速度タイマ２５が暗号化速度の異常を示す異常時間（Ｔ２）未満の場合にはステップ６３の処理に戻る。
【００４５】
図６に示された構成に基づく動作は、図７のステップ６５の割り込み信号がなく、共通鍵暗号化部１５が、一定のタイミング毎に制御部１３が鍵の更新を許可するか否かを問い合わせ、制御部１３は、カウンタ１４のカウンタ値が一定値以上になったか判断し、一定値以上になった場合には、共通鍵暗号化部１５の問い合わせに対し、鍵の更新を許可し、ステップ６６で共通鍵２０更新する。
カウンタ値が一定以上になっていない場合には、制御部１３が鍵の更新を許可しないため、ステップ６８に進む。
【００４６】
ステップ６９で暗号化処理速度を低下させる方法としては、例えば、物理的方法としてクロックを低下させる又は止める方法が考えられる。また、冗長な命令を実行させることで暗号化処理速度を低下させることも考えられる。更に、共通鍵暗号化部１５で多重暗号化処理を行うことで、暗号化処理速度を低下させる方法もある。これは、図５及び図６の共通鍵暗号化部１５の多重暗号化として示されているように、例えば、平文を共通鍵暗号化部１５で処理した後、暗号化された文を再び共通鍵暗号化部１５で暗号化するという処理をループとして何度も行う処理である。
【００４７】
上記のような処理を行うことで、Ｔ１に定められた時間内に鍵の更新ができなかったときには暗号化処理の速度を低下させ、共通鍵２０が更新されるまで、平文をバッファ１８に蓄積させることで、システムの暗号強度がある一定以下に低下しないという効果を奏する。また、共通鍵暗号化部１５による多重暗号化処理では複数回暗号化処理を行うことで、暗号強度を増加させる効果も得られる。
また、Ｔ２に定められた時間内に鍵の更新ができなかったときには、システムトラブルか、或いは、量子暗号側で盗聴が行われた可能性があるため、量子暗号側はそれまでに共有していたビットを破棄することにより、システムの強度及び暗号の強度を増加させ、暗号化処理の安全性を高めることができる。
【００４８】
以上の通信速度タイマ２５を用いて行った処理は、暗号化された平文又は暗号文のビット数をカウントした通信速度カウンタ２６を用いても行うことが可能である。
この場合、まず、暗号化装置１０ａの制御部１３ａでは、次のような動作を行う。
制御部１３ａは、カウンタ１４ａの示すカウンタ値が暗号文の生成に用いる暗号鍵（共通鍵２０ａ）を更新するビット数に到達する前に通信速度カウンタ２６ａがカウントするビット数が暗号の安全性を保つための限界ビット数に到達した場合には、共通鍵暗号化部１５ａが暗号文を生成する速度を低下させ、カウンタ１４ａの示すカウンタ値が暗号文の生成に用いる暗号鍵を更新するビット数に到達するまで、平文をバッファ１８ａに蓄積させる。
また、制御部１３ａは、カウンタ１４ａの示すカウンタ値が暗号文の生成に用いる暗号鍵（共通鍵２０ａ）を更新するビット数に到達する前に通信速度カウンタ２６ａがカウントするビット数が暗号鍵生成の異常を示すビット数に到達した場合には、鍵バッファ１２ａに蓄積された共有ビット列を破棄させる。
復号装置１０ｂの制御部１３ｂでも、同様に次のような動作を行う。
制御部１３ｂは、カウンタ１４ｂの示すカウンタ値が暗号文の復号に用いる復号鍵（共通鍵２０ｂ）を更新するビット数に到達する前に通信速度カウンタ２６ｂがカウントするビット数が暗号の安全性を保つための限界ビット数を越えた場合には、共通鍵暗号化部１５ｂが暗号文を復号する速度を低下させ、カウンタ１４ｂの示すカウンタ値が暗号文の復号に用いる復号鍵を更新するビット数に到達するまで、暗号文をバッファ１８ｂに蓄積させる。
また、制御部１３ｂは、カウンタ１４ｂの示すカウンタ値が暗号文の復号に用いる復号鍵（共通鍵２０ｂ）を更新するビット数に到達する前に通信速度カウンタ２６ｂがカウントするビット数が復号鍵生成の異常を示すビット数に到達した場合には、鍵バッファ１２ｂに蓄積された共有ビット列を破棄させる。
【００４９】
実施の形態４．
次に、実施の形態４について説明する。
実施の形態４では暗号アルゴリズムを示した暗号ロジックそのものを変化させるスイッチとして量子暗号化部１１で生成されたビット情報を用いる。図８は、実施の形態４の動作を表している。
量子暗号化部１１は、通信情報４１と一次鍵情報４２と共有ビット１６を記憶している。ここで、前述した量子暗号手順をより具体的に述べる。
（１）量子暗号化部１１ａ及び１１ｂが独立に乱数を生成する。
（２）（１）の乱数を量子暗号化部１１ａ及び１１ｂのそれぞれに有する位相変調器に入力し、伝送路を通過する光信号の位相を位相変調させる位相変調方式によって、量子暗号化部１１ａと１１ｂが量子暗号の通信を行い、あるビット情報を共有する。
（３）量子暗号化部１１ａ及び１１ｂが（１）の情報の一部を交換し、必要なビットだけを取り出し、他の情報は除去する。
（４）量子暗号化部１１ａと１１ｂが通信しながら誤りを除去し（エラー訂正）共有ビット１６を生成する。
上記（２）の段階で得られる情報が図８に示す通信情報４１である。また、上記（３）の段階で得られる情報が図８に示す一次鍵情報４２である。
【００５０】
図８では、量子暗号化部１１で生成された共有ビット１６を用いて、パーソナルコンピュータ３５に記憶した３６の暗号ロジック１と３７の暗号ロジック２と３８の暗号ロジック３のスイッチングを行う。例えば、共有ビット１６が１の場合、制御部１３は暗号ロジック部６１に、３６の暗号ロジック１に切り替える命令を出し、暗号ロジック部６１は命令を受け取るとスイッチを３６の暗号ロジック１に切り替える。同様に、制御部１３の命令にしたがって、暗号ロジック部６１は、共有ビット１６が２の場合には３７の暗号ロジック２に切り替え、共有ビット１６が３の場合には３８の暗号ロジック３に切り替えるという動作を行う。この場合、たとえば、３６の暗号ロジック１をＣＢＣモード（ＣＩＰＨＥＲ  ＢＬＯＣＫ  ＣＨＡＩＮＩＮＧ  ＭＯＤＥ）モード、３７の暗号ロジック２をＯＦＢモード（ＯＵＴＰＵＴ  ＦＥＥＤＢＡＣＫ  ＭＯＤＥ）、３８の暗号ロジック３をＣＦＢモード（ＣＩＰＨＥＲ  ＦＥＥＤＢＡＣＫ  ＭＯＤＥ）とすると、量子暗号化部１１で生成された共有ビット１６によって暗号アルゴリズムを変更する（暗号ロジックそのものを変化する）ことができる。
以上、共有ビット１６を用いたスイッチングを示したが、量子暗号化部１１に記憶された通信情報４１や一次鍵情報４２を用いてスイッチングを行ってもよい。したがって、伝送路を通過する光信号を用いた量子暗号の通信により生成される共有ビット情報の概念は、実施の形態４では、共有ビット１６のみならず、通信情報４１や一次鍵情報４２の他、量子暗号通信により生成されたすべてのビット情報を含む。よって、量子暗号により生成されるこれらのビット情報を用いてスイッチングを行ってもよい。
【００５１】
量子暗号化部１１で生成された共有ビット１６は、乱数として精度が高くピュアな状態であるため、規則性のない非線形的なスイッチング動作が可能となるという効果が得られる。また、予測不可能なノイズ情報が含まれる一次鍵情報４２や量子暗号の系で得られたノイズを含む通信情報４１を用いても、規則性のない非線形的なスイッチング動作が可能となる。
【００５２】
実施の形態５．
次に、実施の形態５について説明する。
実施の形態５は、量子暗号化部１１で生成された共有ビット１６を乱数の生成又は置換テーブルの生成に用いる場合である。図９は、この実施の形態の構成及び動作を示した図である。
前述したとおり、量子暗号化部１１で生成された共有ビット１６は、乱数としての精度が高いため、乱数生成器３９の乱数の種（乱数を生成するために乱数生成器に入力される数値）として用いることができる。
【００５３】
このように、共有ビット１６を乱数生成器３９の乱数の種として用いることで、乱数生成器から出力される乱数は、より乱数としてのレベルの高いものとなる。
【００５４】
さらに、図９では、乱数生成器３９から出力された乱数を置換テーブル４０に記憶し、置換テーブル４０を用いて置換処理を行っている。例えば、Ｑ１という入力データを置換テーブルに入力するとＡ５という出力結果が得られ、Ｑ２という入力データを置換テーブルに入力するとＡ３という出力結果が得られ、また、Ｑ３というデータを入力するとＡ２という結果が得られ、Ａ４というデータを入力するとＡ１という結果が得られ、Ｑ５というデータを入力するとＡ４という結果が得られる。
実施の形態４と同様に、実施の形態５で用いられる共有ビット情報には、共有ビット１６の他、通信情報４１や一次鍵情報４２や、量子暗号の通信により生成されたすべてのビット情報が含まれる。また、置換テーブル４０には、上記共有ビット情報を乱数の種として乱数生成器３９で生成された乱数を記憶する場合のほか、上記共有ビット情報そのものを記憶してもよい。
【００５５】
このように、乱数として精度の高い通信情報４１や一次鍵情報４２や共有ビット１６を用いて置換テーブル４０を生成することで、置換テーブル４０を用いて規則性のない非線形的な置換が可能となる。
【００５６】
実施の形態６．
次に、実施の形態６について説明する。
量子暗号化部１１で生成され共有ビット１６は、逐次暗号（ストリーム暗号）またはブロック暗号のＩＶ（ＩＮＩＴＩＡＬ  ＶＡＬＵＥ：初期値）として用いることができる。ここで、最初の暗号文生成と最初の復号文生成の際に用いられるＩＶは、暗号化側と復号側で同一の値を用いる。
【００５７】
図１０は、ＣＢＣモードによる暗号化処理を表したものであり、５０はＣＢＣモードによる暗号化部、７０はＣＢＣモードによる復号部を表している。
図１０に示すＣＢＣモードでの暗号方法は、６４ビットの平文ブロックデータＭiをブロック単位で入力し、暗号鍵Ｋを用いてモジュール５１により暗号化し、更に、この暗号化された暗号文ブロックデータＣiと次の平文ブロックデータＭi+1との排他的論理和を演算し、排他的論理和の演算結果を次の暗号化の入力として暗号鍵Ｋを用いた暗号化モジュール５１に供給することにより暗号化する方法である。そして、この処理を繰り返して次々と連鎖させることにより、平文Ｍ全体を暗号文Ｃに暗号化する。
５０の暗号化部により暗号化された暗号文Ｃiは、７０の復号部により復号される。暗号文ブロックデータＣiが暗号鍵Ｋを用いた復号モジュール７１に入力され、ＩＶとの排他的論理和が計算され、平文ブロックデータＭiが復号文に復号される。
なお、レジスタ１１１は、セレクタ７３の内部に設けられていてもよい。平文ブロックデータをＭi（ｉ＝１，２，・・・，ｎ）、暗号文ブロックデータＣi（ｉ＝１，２，・・・，ｎ）とし、暗号鍵Ｋを用いた暗号化処理をＥk、暗号鍵Ｋを用いた復号処理をＤkとすると、ＣＢＣモードは次式で表される。
Ｃ1＝Ｅk（Ｍ1  ＸＯＲ  ＩＶ）
Ｃi＝Ｅk（Ｍi  ＸＯＲ  Ｃi-1）（ｉ＝２，３，・・・，ｎ）
Ｍ1＝Ｄk（Ｃ1）  ＸＯＲ  ＩＶ
Ｍi＝Ｄk（Ｃi）  ＸＯＲ  Ｃi-1（ｉ＝２，３，・・・，ｎ）
ここで、ＸＯＲは排他的論理和演算である。また、ＩＶには量子暗号により生成された共有ビット１６を初期値として入力する。
【００５８】
図１０では、ＣＢＣモードのＩＶに共有ビット１６を用いる例を示したが、ＣＢＣモード暗号化に限らず、ＯＦＢモードやＣＦＢモード等のブロック暗号のＩＶに共有ビットを用いることができる。また、量子暗号化部１１で生成された共有ビット１６は逐次暗号（ストリーム暗号）の初期値等、所定の暗号化アルゴリズムのＩＶ（初期値）として用いることができる。
また、実施の形態４、５の場合と同様、実施の形態６では、共有ビット情報は、共有ビット１６、通信情報４１、一次鍵情報４２の他、量子暗号通信により生成されるすべてのビット情報を含む概念である。よって、量子暗号化部１１に記憶された通信情報４１と一次鍵情報４２をブロック暗号または逐次暗号処理を行うためのＩＶ（初期値）にしてもよい。また、量子暗号により生成される他のビット情報をＩＶにしてもよい。また、共有ビット情報を乱数の種として乱数生成器３９で生成された乱数をＩＶにしてもよい。
なお、ブロック暗号とは、１以上の適当な長さの文字列（ブロック）毎に同じ鍵で他の文字列（ブロック）に変換するものをいう。また、ストリーム暗号は１文字又は１ビット毎に異なる鍵で他の文字やビットに変換するものをいう。
【００５９】
以上のように、ＣＢＣモードによる暗号処理のために、ＩＶに量子暗号で生成された乱数としての精度の高い通信情報４１や一次鍵情報４２や共有ビット１６等の共有ビット情報を入力することで精度が高く、安全な暗号化処理を行うことができる。
【００６０】
実施の形態７．
次に、実施の形態７について説明する。
図１１では、共有ビット１６を乱数生成器３９に入力し、それを基に乱数列４３を生成し、乱数列４３を再び量子暗号化部１１の位相変調器に入力し、位相変調を行って量子暗号の通信を行う動作を示している。
図１１では、一次鍵情報４２を乱数生成器３９に入力し、乱数列４３を出力してもよい。また、一次鍵情報４２のビット列をハッシュ関数で処理したものを乱数の種として乱数生成器３９に入力し、乱数列４３を出力してもよい。また、通信情報４１や通信情報４１をハッシュ関数で処理したものを乱数の種として乱数生成器３９に入力し、乱数列４３を出力してもよい。また、共有ビット１６や一次鍵情報４２や通信情報４１そのものを乱数列４３としてもよい。このように、共有ビット情報は、量子暗号通信により生成された共有ビット１６の他、乱数の種となりうるすべてのビット情報を含む概念である。
【００６１】
このように、量子暗号化部１１により生成された共有ビット１６を乱数生成器３９に入力することにより、精度の高い乱数が生成される。従って、この精度の高い乱数列４３を再び量子暗号の通信を行うために位相変調器に入力する乱数として用いることにより、量子暗号化部１１は、更に偏りのない精度の高い乱数として共有ビット１６を生成することができる。
一次鍵情報４２には予測不可能がノイズの情報も含まれているので、乱数の種としては好都合であり、また、通信情報４１も量子暗号の系で得られたノイズを含む情報であるため、乱数の種としては好都合である。したがって、これらの情報を乱数の種にすることでも、精度の高い乱数を生成することができる。
【００６２】
以上に記載した「蓄積する」、「記憶する」という用語は、記録媒体に保存することを意味する。
また、すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このこのように置き換えることにより、方法の発明の実施形態とすることができる。また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、プログラムの実施の形態およびプログラムを記録したコンピュータ読取り可能な記録媒体の実施の形態とすることができる。そしてこれらの実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。このプログラムの実施の形態およびプログラムを記録したコンピュータ読取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置（ＣＰＵ）に読み込まれ、中央処理装置によって、各フローチャートが実行されることになる。なお、記録装置、中央処理装置は図示していない。
また、各実施の形態のソフトウエアやプログラムは、ＲＯＭ（ＲＥＡＤ  ＯＮＬＹ  ＭＥＭＯＲＹ）に記憶されたファームウエアで実現されていても構わない。あるいは、ソフトウエアとファームウエアとハードウエアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
【００６３】
【発明の効果】
本発明によれば、安全で高速な暗号処理が可能となる。
【００６４】
また、暗号化の暗号の強度及びシステムの強度を高めることができる。
【００６５】
また、暗号化プログラムにより、安全で高速な暗号処理をコンピュータ上で実行することができる。
【００６６】
本発明によれば、安全で高速な復号処理が可能となる。
【００６７】
また、復号の暗号の強度及びシステムの強度を高めることができる。
【００６８】
また、復号プログラムにより、安全で高速な復号処理をコンピュータ上で実行することができる。
【００６９】
本発明によれば、安全で高速な暗号化復号システムを構築できる。
【００７０】
本発明によれば、非線形的なロジック変換が可能となる。
【００７１】
本発明によれば、精度の高い乱数を生成できる。
【００７２】
本発明によれば、精度の高い乱数を乱数の種として処理を行うことができる。
【図面の簡単な説明】
【図１】  量子暗号化部と共通鍵暗号化部を融合させた暗号化システムの構成図である。
【図２】  暗号化システムの動作を表したフローチャートである。
【図３】  量子暗号化部と共通鍵暗号化部を融合させた暗号化システム構成図の他の例である。
【図４】  図３で示した暗号化システムの動作を表したフローチャートである。
【図５】  安全性確保のための限界時間内に鍵の更新ができなかった場合の処理を表す図である。
【図６】  安全性確保のための限界時間内に鍵の更新ができなかった場合の処理を表す図である。
【図７】  図５及び図６で示した処理の動作を表したフローチャートである。
【図８】  暗号ロジック変更処理を表す図である。
【図９】  乱数生成および置換処理を表す図である。
【図１０】  ＣＢＣモード暗号化処理を表した図である。
【図１１】  量子暗号情報を量子暗号処理のための乱数として用いる図である。
【図１２】  量子暗号処理の従来例である。
【符号の説明】
１０ａ  暗号化装置、１０ｂ  復号装置、１１  量子暗号化部、１２  鍵バッファ、１３  制御部、１４  カウンタ、１５  共通鍵暗号化部、１６  共有ビット、１８  バッファ、２０  共通鍵、２２  タイマ、２５  通信速度タイマ、２６  通信速度カウンタ、３１  光ファイバ網、３２  電話回線、３５  パーソナルコンピュータ、３９  乱数生成器、４０  置換テーブル、４１  通信情報、４２  一次鍵情報、４３  乱数列、６１  暗号ロジック部、９０ａ  暗号化装置、９０ｂ  復号装置。
【図１】
0004015385.tif 000002
【図２】
0004015385.tif 000003
【図３】
0004015385.tif 000004
【図４】
0004015385.tif 000005
【図５】
0004015385.tif 000006
【図６】
0004015385.tif 000007
【図７】
0004015385.tif 000008
【図８】
0004015385.tif 000009
【図９】
0004015385.tif 000010
【図１０】
0004015385.tif 000011
【図１１】
0004015385.tif 000012
【図１２】
0004015385.tif 000013