(57)【要約】  ワンタイムパッド暗号（バーナム暗号）の暗号鍵が不足した場合であっても、暗号通信を可能とすることを目的とする。ワンタイムパッド暗号化部は、ワンタイムパッド暗号鍵記憶部に記憶されたワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成する。ブロック暗号化部は、ブロック暗号鍵記憶部に記憶されたブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成する。暗号化制御部は、ワンタイムパッド暗号鍵記憶部に記憶されたワンタイムパッド暗号鍵の残りビット数に応じて、通信データをワンタイムパッド暗号化部に暗号化させるか、ブロック暗号化部に暗号化させるかを制御する。
2012025988.tif 000002
【特許請求の範囲】
【請求項１】
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド暗号鍵を記憶するワンタイムパッド暗号鍵記憶部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化部と、
ブロック暗号で使用するブロック暗号鍵を記憶するブロック暗号鍵記憶部と、
前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御する暗号化制御部と
を備えることを特徴とする暗号化装置。
【請求項２】
前記暗号化制御部は、通信データを所定の単位データ毎に順次前記ワンタイムパッド暗号化部に暗号化させている場合に、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵のビット数が次に暗号化させる単位データのビット数より少なくなると、通信データを前記ブロック暗号化部に暗号化させるように切り替える
ことを特徴とする請求項１に記載の暗号化装置。
【請求項３】
前記暗号化制御部は、通信データを前記ブロック暗号化部に暗号化させている場合に、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が前記単位データのビット数よりも多い所定の第１ビット数以上になると、通信データを前記ワンタイムパッド暗号化部に暗号化させるように切り替える
ことを特徴とする請求項２に記載の暗号化装置。
【請求項４】
前記暗号化制御部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が通信開始時に前記単位データ量以上である場合、通信データを前記ワンタイムパッド暗号化部に暗号化させ、通信開始時に前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が前記単位データ量よりも少ない場合、通信データを前記ブロック暗号化部に暗号化させる
ことを特徴とする請求項２又は３に記載の暗号化装置。
【請求項５】
前記暗号化制御部は、さらに、通信データの送信先の端末が記憶したワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御する
ことを特徴とする請求項１から４までのいずれかに記載の暗号化装置。
【請求項６】
前記暗号化装置は、さらに、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が予め定められた第２ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵のビット数を増大させるワンタイムパッド暗号鍵増大部
を備えることを特徴とする請求項１から５までのいずれかに記載の暗号化装置。
【請求項７】
前記ワンタイムパッド暗号鍵増大部は、ワンタイムパッド暗号鍵のビット数を増大させる処理を所定の回数以上実行した場合には、ワンタイムパッド暗号鍵を増大させることを止める
ことを特徴とする請求項６に記載の暗号化装置。
【請求項８】
前記ワンタイムパッド暗号鍵増大部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵に対して、所定のビット毎に乱数値を挿入する方法により、ワンタイムパッド暗号鍵のビット数を増大させる
ことを特徴とする請求項６又は７に記載の暗号化装置。
【請求項９】
前記ワンタイムパッド暗号鍵増大部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵を入力として、所定の乱数発生関数を計算する方法により発生した乱数値を新たなワンタイムパッド暗号鍵とする
ことを特徴とする請求項６又は７に記載の暗号化装置。
【請求項１０】
前記暗号化装置は、さらに、
通信データの送信先の端末と予め共有した方法により、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵からブロック暗号鍵を生成する暗号鍵変換部
を備え、
前記ブロック暗号鍵記憶部は、前記暗号鍵変換部が生成したブロック暗号鍵を記憶する
ことを特徴とする請求項１から９までのいずれかに記載の暗号化装置。
【請求項１１】
前記ブロック暗号鍵記憶部は、複数のブロック暗号鍵を記憶し、
前記暗号化装置は、さらに、
前記ブロック暗号化部が暗号化に用いた使用済のブロック暗号鍵を前記ブロック暗号鍵記憶部から削除するブロック暗号鍵更新部
を備えることを特徴とする請求項１から１０までのいずれかに記載の暗号化装置。
【請求項１２】
前記暗号化装置は、さらに、
通信データの送信先の端末と予め共有した方法により、前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵から新たなブロック暗号鍵を生成するブロック暗号鍵生成部
を備えることを特徴とする請求項１から１１までのいずれかに記載の暗号化装置。
【請求項１３】
前記暗号化制御部は、前記ブロック暗号化部に暗号化させる場合に、通信データの送信先端末との間で、どのブロック暗号鍵を使用するかを確定し、確定したブロック暗号鍵を用いて前記ブロック暗号化部に暗号化させる
ことを特徴とする請求項１１又は１２に記載の暗号化装置。
【請求項１４】
前記ワンタイムパッド暗号鍵記憶部は、ワンタイムパッド暗号鍵を記憶する不揮発性の記憶装置であり、
前記ワンタイムパッド暗号化部は、ワンタイムパッド暗号鍵を前記ワンタイムパッド暗号鍵記憶部から揮発性の記憶装置へコピーするとともに、コピー元のワンタイムパッド暗号鍵を前記ワンタイムパッド暗号鍵記憶部から削除した上で、前記揮発性の記憶装置にコピーしたワンタイムパッド暗号鍵を用いて通信データを暗号化する
ことを特徴とする請求項１から１３までのいずれかに記載の暗号化装置。
【請求項１５】
前記暗号化装置は、さらに、
前記暗号化制御部が用いる暗号化方式を切り替えた場合に、ユーザへ通知する通知部
を備えることを特徴とする１から１４までのいずれかに記載の暗号化装置。
【請求項１６】
暗号化装置と復号装置とを備える暗号化システムであり、
前記暗号化装置は、
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド暗号鍵を記憶するワンタイムパッド暗号鍵記憶部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化部と、
ブロック暗号で使用するブロック暗号鍵を記憶するブロック暗号鍵記憶部と、
前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御するとともに、前記ワンタイムパッド暗号化部と前記ブロック暗号化部とのどちらに暗号化させるかを示すメッセージを前記復号装置へ通知する暗号化制御部と、
を備え、
前記復号装置は、
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド復号鍵を記憶するワンタイムパッド復号鍵記憶部と、
前記ワンタイムパッド復号鍵記憶部が記憶したワンタイムパッド復号鍵の一部を順に用いて、暗号化データをワンタイムパッド暗号により復号して通信データを生成するワンタイムパッド復号部と、
ブロック暗号で使用するブロック復号鍵を記憶するブロック復号鍵記憶部と、
前記ブロック復号鍵記憶部が記憶したブロック復号鍵を用いて、暗号化データをブロック暗号により復号して通信データを生成するブロック復号部と、
前記暗号化制御部から通知されたメッセージに応じて、暗号化データを前記ワンタイムパッド復号部に復号させるか、前記ブロック復号部に復号させるかを制御する復号制御部と
を備えることを特徴とする暗号化システム。
【請求項１７】
処理装置が、記憶装置に記憶された複数ビットからなるワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化工程と、
処理装置が、記憶装置に記憶されたブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化工程と、
処理装置が、記憶装置に記憶されたワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化工程でワンタイムパッド暗号により暗号化させるか、前記ブロック暗号化工程でブロック暗号により暗号化させるかを制御する暗号化制御工程と
を備えることを特徴とする暗号化方法。
【請求項１８】
記憶装置に記憶された複数ビットからなるワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化処理と、
記憶装置に記憶されたブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化処理と、
記憶装置に記憶されたワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化処理でワンタイムパッド暗号により暗号化させるか、前記ブロック暗号化処理でブロック暗号により暗号化させるかを制御する暗号化制御処理と
をコンピュータに実行させることを特徴とする暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ワンタイムパッド暗号とブロック暗号とのどちらの暗号化方式で通信データを暗号化するかを制御する技術に関する。
【背景技術】
【０００２】
ワンタイムパッド暗号は、送信側と受信側とで鍵を共有する共通鍵暗号の一方式である。ワンタイムパッド暗号は、通信データと同量（同一ビット数）の暗号鍵を用いて暗号化を行う。また、ワンタイムパッド暗号は、一度暗号化に使用した暗号鍵を再利用せず、暗号鍵を使い捨てにする。
ワンタイムパッド暗号の典型的な例としては、通信データと暗号鍵とについて１ビットづつ排他的論理和等を計算して、計算した結果を暗号化通信データとするバーナム暗号がある。【０００３】
ブロック暗号は、ワンタイムパッド暗号と同様に共通鍵暗号の一方式である。ブロック暗号は、データをブロックと呼ばれる単位（通常は固定長）に分割して、ブロック毎に暗号鍵を用いて暗号化を行う。通常、ブロック暗号では、複数のブロックを同じ暗号鍵で暗号化する。
ブロック暗号の例としては、Ｃａｍｅｌｌｉａ（登録商標）、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等がある。【０００４】
ワンタイムパッド暗号による暗号通信においては、通信データと同量の暗号鍵を消費するため、多くの暗号鍵が必要となる。そして、ワンタイムパッド暗号では、暗号鍵が枯渇した場合に暗号通信を行うことができなくなる。
しかし、ワンタイムパッド暗号は、解読不可能であり、ブロック暗号よりも安全性が高いと言える。【０００５】
特許文献１には、暗号対象となる通信データの重要性によって、適用する暗号方式をワンタイムパッド暗号とブロック暗号とを使い分けることについての記載がある。これにより、ワンタイムパッド暗号の暗号鍵の消費を軽減している。【０００６】
特許文献２には、端末装置毎の暗号鍵の蓄積量を監視し、蓄積量が少ない端末装置に対して優先的に暗号鍵を生成させることについての記載がある。これにより、特定の端末装置の暗号鍵が枯渇することの防止を図っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２５８８５０号公報
【特許文献２】特開２００８−３０６６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された方法は、通信データの重要性で適用する暗号方式を使い分け、ワンタイムパッド暗号の暗号鍵の消費を抑えている。しかし、特許文献１に記載された方法を適用したとしても、ワンタイムパッド暗号の暗号鍵が不足する場合が発生し、暗号通信を行うことができない場合が発生する虞がある。
また、通信データの重要性は主観的な基準であり、暗号化の対象となっている通信データの重要性は通信開始時、もしくは、事前に利用者又は管理者が判断しなければならない。そのため、通信データの入力が行われた時点から通信データが暗号化されるまでの間に利用者による重要性の判断が必要となり、暗号通信に関する処理のすべてを自動化することができない。
さらに、音声による通話中に重要な会話内容が含まれる場合などのように、通信データの種類によっては、重要性が事前に判断できないものもある。そのため、暗号対象の通信データの重要性を基準として暗号方式を切り替えることは、汎用的に有効な手段ではない。【０００９】
特許文献２に記載された方法では、端末装置が携帯端末といった、常時通信ができるものではない場合、不足した暗号鍵を補うことができない場合がある。したがって、暗号通信を行うことができない場合が発生する虞がある。【００１０】
この発明は、ワンタイムパッド暗号の暗号鍵が不足した場合であっても、暗号通信を可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
この発明に係る暗号化装置は、
ワンタイムパッド暗号で使用するワンタイムパッド暗号鍵を記憶するワンタイムパッド暗号鍵記憶部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化部と、
ブロック暗号で使用するブロック暗号鍵を記憶するブロック暗号鍵記憶部と、
前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御する暗号化制御部と
を備えることを特徴とする。
【発明の効果】
【００１２】
この発明に係る暗号化装置は、ワンタイムパッド暗号鍵の残量に応じて、ワンタイムパッド暗号を使用するか、ブロック暗号を使用するかを制御する。そのため、ワンタイムパッド暗号鍵が不足した場合には、ブロック暗号で暗号通信を行うように制御することができ、ワンタイムパッド暗号の暗号鍵が不足した場合であっても、暗号通信が可能である。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る通信方式を適用可能な暗号化システム１の概略図。
【図２】鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とが、ネットワーク１０１、もしくは、ネットワーク１０１とは物理的もしくは論理的に接続されていないネットワーク１０６を介して、バーナム暗号鍵の共有を行う場合の動作概要を示す図。
【図３】端末装置Ａ１０２が、通信ケーブル１０７を介して鍵共有装置Ｃ１０４からバーナム暗号鍵３０１を取得する場合の動作概要を示す図。
【図４】端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図。
【図５】図４の通信処理の流れを示すフローチャート。
【図６】端末装置Ａ１０２と端末装置Ｂ１０３とが暗号通信を開始する時点で、バーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図。
【図７】図６の通信処理の流れを示すフローチャート。
【図８】実施の形態１における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図。
【図９】端末装置８０１の送信制御部８０３の処理の流れを示すフローチャート。
【図１０】端末装置８０１の受信制御部８０４の処理の流れを示すフローチャート。
【図１１】実施の形態１における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能構成を示す機能ブロック図。
【図１２】鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とがネットワーク１０１もしくはネットワーク１０６を介して、バーナム暗号鍵１２０１及びブロック暗号鍵１２０２の共有を行う場合の動作概要を示す図。
【図１３】鍵共有装置Ｃ１０４から端末装置Ａ１０２が通信ケーブル１０７を介して、バーナム暗号鍵１３０１及びブロック暗号鍵１３０２を取得する場合の動作概要を示す図。
【図１４】実施の形態２における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図。
【図１５】実施の形態２における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能構成を説明する機能ブロック図。
【図１６】端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図。
【図１７】図１６の通信処理の流れを示すフローチャート。
【図１８】図１６の通信処理の流れを示すフローチャート。
【図１９】端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、バーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図。
【図２０】図１９の通信処理の流れを示すフローチャート。
【図２１】実施の形態３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図。
【図２２】端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が枯渇した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図。
【図２３】図２２の通信処理の流れを示すフローチャート。
【図２４】図２２の通信処理の流れを示すフローチャート。
【図２５】端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、バーナム暗号鍵が枯渇しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図。
【図２６】図２５の通信処理の流れを示すフローチャート。
【図２７】実施の形態４における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック。
【図２８】端末装置Ａ１０２と端末装置Ｂ１０３とが暗号通信を開始する時点で、バーナム暗号鍵が不足しており、かつ、ブロック暗号鍵の残りが１つしかない場合の動作概要を示す図。
【図２９】図２８の通信処理の流れを示すフローチャート。
【図３０】実施の形態５における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を説明する機能ブロック図。
【図３１】端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号鍵の残量が事前に決められた量よりも少なくなった時点で、バーナム暗号鍵に増大処理を施す場合の動作概要を示す図。
【図３２】図３１の通信処理の流れを示すフローチャート。
【図３３】図３１の通信処理の流れを示すフローチャート。
【図３４】図３１の通信処理の流れを示すフローチャート。
【図３５】実施の形態６における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図。
【図３６】実施の形態７におけるバーナム暗号鍵増大部８１９の処理を説明する図。
【図３７】実施の形態８におけるバーナム暗号鍵増大部８１９の処理を説明する図。
【図３８】実施の形態９における図４の通信処理の流れを示すフローチャート。
【図３９】実施の形態９における図４の通信処理の流れを示すフローチャート。
【図４０】実施の形態９において、端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、端末装置Ｂ１０３のバーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図。
【図４１】図４０の通信処理の流れを示すフローチャート。
【図４２】実施の形態９における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャート。
【図４３】実施の形態９における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャート。
【図４４】実施の形態１０における図２２の通信処理の流れを示すフローチャート。
【図４５】実施の形態１０における図２２の通信処理の流れを示すフローチャート。
【図４６】実施の形態１０における図２５の通信処理の流れを示すフローチャート。
【図４７】実施の形態１０における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャート。
【図４８】実施の形態１０における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャート。
【図４９】実施の形態１１における図２８の通信処理の流れを示すフローチャート。
【図５０】実施の形態１１における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャート。
【図５１】実施の形態１１における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャート。
【図５２】実施の形態１２における端末装置の動作の説明図。
【図５３】実施の形態１３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を説明する機能ブロック図。
【図５４】端末装置８０１のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１４】
以下、図に基づき、発明の実施の形態を説明する。
以下の説明において、処理装置は後述するＣＰＵ９１１等である。記憶装置は後述するＲＯＭ９１３、ＲＡＭ９１４、磁気ディスク９２０等の記憶装置である。つまり、処理装置、記憶装置はハードウェアである。
【００１５】
以下の説明では、ワンタイムパッド暗号の例として、バーナム暗号を用いて説明する。もちろん、他のワンタイムパッド暗号を用いても構わない。この場合、以下の説明におけるバーナム暗号をワンタイムパッド暗号と読み替えればよい。
【００１６】
実施の形態１．
実施の形態１では、バーナム暗号用の暗号鍵（以下、バーナム暗号鍵）が枯渇した場合に、暗号方式をバーナム暗号からＣａｍｅｌｌｉａ（登録商標）、ＡＥＳといったブロック暗号に切り替える技術について説明する。これにより、バーナム暗号鍵が不足することによる暗号通信の中断を引き起こすことなく、バーナム暗号鍵が補充されるまでの期間においても、暗号通信の継続を可能にする。
【００１７】
実施の形態１では、バーナム暗号鍵の残量（残りビット数）に応じて暗号方式を使い分ける。バーナム暗号鍵の残量は装置が容易に把握できる情報である。そのため、バーナム暗号鍵の残量を基準に暗号方式を切り替えることにより、装置を使用するユーザに暗号方式の切り替えに関する操作を求めることなく、自動で暗号方式を切り替える仕組みを実現することができる。
【００１８】
図１は、実施の形態１に係る通信方式を適用可能な暗号化システム１の概略図である。
インターネットなどのネットワーク１０１には、端末装置Ａ１０２と端末装置Ｂ１０３とが接続される。また、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５がネットワーク１０１、もしくは、ネットワーク１０１とは物理的もしくは論理的に接続されていないネットワーク１０６と接続される。さらに、端末装置Ａ１０２と鍵共有装置Ｃ１０４とは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの通信ケーブル１０７で接続されている。同様に、端末装置Ｂ１０３と鍵共有装置Ｄ１０５とは、通信ケーブル１０８で接続されている。
【００１９】
以下では、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５との間で共有されたバーナム暗号鍵を用いて、端末装置Ａ１０２と端末装置Ｂ１０３との間で暗号通信を行う例を説明する。
なお、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、暗号化データを送信する送信側通信装置（暗号化装置）でもあり、暗号化データを受信する受信側通信装置（復号装置）でもある。以下では、端末装置Ａ１０２を送信側通信装置の例とし、端末装置Ｂ１０３を受信側通信装置の例とする。
また、端末装置Ａ１０２は鍵共有装置Ｃ１０４からバーナム暗号鍵を取得し、端末装置Ｂ１０３は鍵共有装置Ｄ１０５からバーナム暗号鍵を取得するものとする。
【００２０】
まず、鍵共有装置同士によるバーナム暗号鍵の共有方法について説明する。
図２は、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とが、ネットワーク１０１、もしくは、ネットワーク１０１とは物理的もしくは論理的に接続されていないネットワーク１０６を介して、バーナム暗号鍵の共有を行う場合の動作概要を示す図である。
鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とは、ネットワーク１０１もしくはネットワーク１０６を介して、所定の方法（鍵共有アルゴリズム）によりバーナム暗号鍵２０１を共有する。なお、バーナム暗号鍵２０１を共有する方法は、どのような方法であっても構わない。例えば、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とが、物理的もしくは論理的に安全な通信路で接続された上でバーナム暗号鍵２０１を共有すればよい。実施の形態１では、一例として、量子暗号通信による鍵共有が行われるものとする。
【００２１】
次に、鍵共有装置から端末装置がバーナム暗号鍵を取得する場合の動作概要について説明する。
図３は、端末装置Ａ１０２が、通信ケーブル１０７を介して鍵共有装置Ｃ１０４からバーナム暗号鍵３０１を取得する場合の動作概要を示す図である。
まず、端末装置Ａ１０２は、バーナム暗号鍵要求メッセージ３０２を鍵共有装置Ｃ１０４へ送信する。鍵共有装置Ｃ１０４は、バーナム暗号鍵要求メッセージ３０２を受信した後、保有しているバーナム暗号鍵３０１を端末装置Ａ１０２へ送信する。バーナム暗号鍵３０１を受信した端末装置Ａ１０２は、バーナム暗号鍵３０１を記憶装置に記憶する。
なお、端末装置Ｂ１０３が、通信ケーブル１０８を介して鍵共有装置Ｄ１０５からバーナム暗号鍵を取得する方法も同様である。
【００２２】
次に、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要について説明する。
図４は、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図である。
なお、暗号通信の事前準備として、端末装置Ａ１０２はバーナム暗号用の暗号鍵４０１を保有している。また、端末装置Ｂ１０３もバーナム暗号鍵４０２を保有している。端末装置Ａ１０２が保有するバーナム暗号鍵４０１と、端末装置Ｂ１０３が保有するバーナム暗号鍵４０２とは、前述の方法により、それぞれ鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５から取得したものである。実施の形態１においては、バーナム暗号鍵４０１とバーナム暗号鍵４０２は、同一のものであるとする。
また、端末装置Ａ１０２はブロック暗号用のブロック暗号鍵４０８を保有している。また、端末装置Ｂ１０３もブロック暗号鍵４１０を保有している。端末装置Ａ１０２が保有するブロック暗号鍵４０８と、端末装置Ｂ１０３が保有するブロック暗号鍵４１０とは同一のものであるとする。端末装置Ａ１０２と端末装置Ｂ１０３との間におけるブロック暗号鍵の共有方法については、後の実施の形態で説明する。
【００２３】
まず、端末装置Ａ１０２は、保有しているバーナム暗号鍵４０１の残量を確認する。ここでは、バーナム暗号鍵４０１には残量があるものとする。そこで、端末装置Ａ１０２は、バーナム暗号鍵４０１の残量に基づき、バーナム暗号を行うことができるデータ通信量を算出する。そして、端末装置Ａ１０２は、バーナム暗号通信要求メッセージ４０３を端末装置Ｂ１０３へ送信する。
バーナム暗号通信要求メッセージ４０３を受信した端末装置Ｂ１０３は、保有しているバーナム暗号鍵４０２の残量を確認する。ここでは、バーナム暗号鍵４０２には、バーナム暗号鍵４０１と同じ残量があるものとする。そこで、端末装置Ｂ１０３は、バーナム暗号鍵４０２の残量に基づき、バーナム暗号を行うことができるデータ通信量を算出する。そして、端末装置Ｂ１０３は、バーナム暗号通信了承メッセージ４０４を端末装置Ａ１０２へ送信する。
バーナム暗号通信了承メッセージ４０４を受信した端末装置Ａ１０２は、バーナム暗号鍵４０１を用いて、通信データにバーナム暗号による暗号化を施し、暗号化通信データ４０５を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ４０５を端末装置Ｂ１０３へ送信する。
暗号化通信データ４０５を受信した端末装置Ｂ１０３は、バーナム暗号鍵４０２で暗号化通信データ４０５を復号し、通信データを得る。なお、バーナム暗号鍵４０１とバーナム暗号鍵４０２とは、同一であるため、バーナム暗号鍵４０１で暗号化された暗号化通信データ４０５は、バーナム暗号鍵４０２で復号可能である。
【００２４】
もし、端末装置Ａ１０２における暗号化通信データ４０５の生成時にバーナム暗号を行うことができるデータ通信量を超えて、暗号化を行う必要がある場合、端末装置Ａ１０２はブロック暗号切替要求メッセージ４０６を端末装置Ｂ１０３へ送信する。
ブロック暗号切替要求メッセージ４０６を受信した端末装置Ｂ１０３は、ブロック暗号切替了承メッセージ４０７を端末装置Ａ１０２へ送信する。
ブロック暗号切替了承メッセージ４０７を受信した端末装置Ａ１０２は、通信データをブロック暗号鍵４０８で暗号化し、暗号化通信データ４０９を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ４０９を端末装置Ｂ１０３へ送信する。
暗号化通信データ４０９を受信した端末装置Ｂ１０３は、ブロック暗号鍵４１０で暗号化通信データ４０９を復号し、通信データを得る。なお、ブロック暗号鍵４０８とブロック暗号鍵４１０とは、同一であるため、ブロック暗号鍵４０８で暗号化された暗号化通信データ４０９は、ブロック暗号鍵４１０で復号可能である。
【００２５】
次に、図４の通信処理について詳しく説明する。図５は、図４の通信処理の流れを示すフローチャートである。
【００２６】
端末装置Ａ１０２は、保有しているバーナム暗号鍵４０１の量（ビット数）を確認し、バーナム暗号で暗号通信を行うことができるデータ量を算出する（Ｓ１０１）。そして、端末装置Ａ１０２は、バーナム暗号通信要求メッセージ４０３を端末装置Ｂ１０３へ送信する（Ｓ１０２）。
端末装置Ｂ１０３は、端末装置Ａ１０２からバーナム暗号通信要求メッセージ４０３を受信する（Ｓ１０３）。すると、端末装置Ｂ１０３は、保有しているバーナム暗号鍵４０２の量を確認し、バーナム暗号で暗号通信を行うことができるデータ量を算出する（Ｓ１０４）。そして、端末装置Ｂ１０３は、バーナム暗号通信了承メッセージ４０４を端末装置Ａ１０２へ送信する（Ｓ１０５）。
端末装置Ａ１０２は、端末装置Ｂ１０３からバーナム暗号通信了承メッセージ４０４を受信する（Ｓ１０６）。すると、端末装置Ａ１０２は、通信データのうち単位データ量分のデータをバーナム暗号鍵４０１で暗号化して、暗号化通信データ４０５を生成する。（Ｓ１０７）。なお、単位データ量分のデータとは、予め決められたビット数のデータである。あるいは、予め決められた単位のデータ、例えば、１ファイルのデータ等である。また、例えば、携帯電話における音声通話データの場合であれば、１０〜２０ミリ秒程度の短い時間毎の音声通話データである。そして、端末装置Ａ１０２は、暗号化通信データ４０５を端末装置Ｂ１０３へ送信する（Ｓ１０８）。
端末装置Ｂ１０３は、端末装置Ａ１０２から暗号化通信データ４０５を受信する（Ｓ１０９）。すると、端末装置Ｂ１０３は、バーナム暗号鍵４０２で暗号化通信データ４０５を復号し、通信データを得る（Ｓ１１０）。
【００２７】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ１１１）。未送信の通信データがなければ（Ｓ１１１でＮＯ）、端末装置Ａ１０２は処理を終了する（Ｓ１１２）。一方、未送信の通信データがあれば（Ｓ１１１でＹＥＳ）、端末装置Ａ１０２はＳ１１３へ処理を進める。
【００２８】
端末装置Ａ１０２は、バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量以上かを確認する（Ｓ１１３）。この際、端末装置Ａ１０２は、Ｓ１０１で算出した、バーナム暗号で暗号通信を行うことができるデータ量から、これまでに端末装置Ｂ１０３へ暗号化通信データを送信した通信データのデータ量を減算して、現時点でバーナム暗号で暗号通信を行うことができるデータ量を算出する。
バーナム暗号で暗号通信を行うことができるデータ量が単位データ量以上であれば（Ｓ１１３でＹＥＳ）、端末装置Ａ１０２はＳ１０７へ処理を戻す。一方、バーナム暗号で暗号通信を行うことができるデータ量が単位データ量未満であれば（Ｓ１１３でＮＯ）、端末装置Ａ１０２はブロック暗号切替要求メッセージ４０６を端末装置Ｂ１０３へ送信する（Ｓ１１４）。
【００２９】
端末装置Ｂ１０３は、ブロック暗号切替要求メッセージ４０６を受信する。（Ｓ１１５）。すると、端末装置Ｂ１０３は、ブロック暗号切替了承メッセージ４０７を端末装置Ａ１０２へ送信する（Ｓ１１６）。
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ４０７を受信する（Ｓ１１７）。すると、端末装置Ａ１０２は、通信データのうち単位データ量分のデータをブロック暗号鍵４０８で暗号化して、暗号化通信データ４０９を生成する（Ｓ１１８）。そして、端末装置Ａ１０２は、暗号化通信データ４０９を端末装置Ｂ１０３へ送信する（Ｓ１１９）。
端末装置Ｂ１０３は、暗号化通信データ４０９を受信する（Ｓ１２０）。すると、端末装置Ｂ１０３は、ブロック暗号鍵４１０で暗号化通信データ４０９を復号し、通信データを得る（Ｓ１２１）。
【００３０】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ１２２）。未送信の通信データがなければ（Ｓ１２２でＮＯ）、端末装置Ａ１０２は処理を終了する（Ｓ１２３）。一方、未送信の通信データがあれば（Ｓ１２２でＹＥＳ）、端末装置Ａ１０２はＳ１１８へ処理を戻す。
【００３１】
次に、通信開始時点でバーナム暗号鍵が不足しており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図６は、端末装置Ａ１０２と端末装置Ｂ１０３とが暗号通信を開始する時点で、バーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図である。
なお、端末装置Ａ１０２はブロック暗号用のブロック暗号鍵６０３を保有している。また、端末装置Ｂ１０３もブロック暗号鍵６０５を保有している。端末装置Ａ１０２が保有するブロック暗号鍵６０３と、端末装置Ｂ１０３が保有するブロック暗号鍵６０５とは同一のものであるとする。端末装置Ａ１０２と端末装置Ｂ１０３との間におけるブロック暗号鍵の共有方法については、後の実施の形態で説明する。
【００３２】
まず、端末装置Ａ１０２は、保有しているバーナム暗号鍵の量を確認する。ここでは、バーナム暗号鍵が枯渇している（０ビットである）とする。そこで、端末装置Ａ１０２は、ブロック暗号通信要求メッセージ６０１を端末装置Ｂ１０３へ送信する。
ブロック暗号通信要求メッセージ６０１を受信した端末装置Ｂ１０３は、ブロック暗号通信了承メッセージ６０２を端末装置Ａ１０２へ送信する。
ブロック暗号通信了承メッセージ６０２を受信した端末装置Ａ１０２は、ブロック暗号鍵６０３を用いて、通信データにブロック暗号による暗号化を施し、暗号化通信データ６０４を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ６０４を端末装置Ｂ１０３へ送信する。
暗号化通信データ６０４を受信した端末装置Ｂ１０３は、ブロック暗号鍵６０５で暗号化通信データ６０４を復号し、通信データを得る。なお、ブロック暗号鍵６０３とブロック暗号鍵６０５とは、同一であるため、ブロック暗号鍵６０３で暗号化された暗号化通信データ６０４は、ブロック暗号鍵６０５で復号可能である。
【００３３】
次に、図６の通信処理について詳しく説明する。図７は、図６の通信処理の流れを示すフローチャートである。
【００３４】
端末装置Ａ１０２は、保有しているバーナム暗号鍵の量を確認し、バーナム暗号鍵が不足していることを把握する（Ｓ２０１）。なお、バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量未満である場合に、バーナム暗号鍵が不足していると判定する。そして、端末装置Ａ１０２は、ブロック暗号通信要求メッセージ６０１を端末装置Ｂ１０３へ送信する（Ｓ２０２）。
端末装置Ｂ１０３は、端末装置Ａ１０２からブロック暗号通信要求メッセージ６０１を受信する（Ｓ２０３）。そして、端末装置Ｂ１０３は、ブロック暗号通信了承メッセージ６０２を端末装置Ａ１０２へ送信する（Ｓ２０４）。
端末装置Ａ１０２は、端末装置Ｂ１０３からブロック暗号通信了承メッセージ６０２を受信する（Ｓ２０５）。すると、端末装置Ａ１０２は、通信データのうち単位データ量分のデータをブロック暗号鍵６０３で暗号化して、暗号化通信データ６０４を生成する（Ｓ２０６）。そして、端末装置Ａ１０２は、暗号化通信データ６０４を端末装置Ｂ１０３へ送信する（Ｓ２０７）。
端末装置Ｂ１０３は、暗号化通信データ６０４を受信する（Ｓ２０８）。すると、端末装置Ｂ１０３は、ブロック暗号鍵６０５で暗号化通信データ６０４を復号し、通信データを得る（Ｓ２０９）。
【００３５】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ２１０）。未送信の通信データがなければ（Ｓ２１０でＮＯ）、端末装置Ａ１０２は処理を終了する（Ｓ２１１）。一方、未送信の通信データがあれば（Ｓ２１０でＹＥＳ）、端末装置Ａ１０２はＳ２０６へ処理を戻す。
【００３６】
次に、実施の形態１における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図８は、実施の形態１における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図である。ここで、端末装置Ａ１０２と端末装置Ｂ１０３とは、同一の機能構成である。そこで、ここでは、端末装置Ａ１０２と端末装置Ｂ１０３とを端末装置８０１として説明する。
端末装置８０１は、通信インターフェイス８０２、送信制御部８０３（暗号化制御部）、受信制御部８０４（復号制御部）、バーナム暗号鍵管理部８０５、バーナム暗号化部８０６、バーナム復号部８０７、ブロック暗号化部８０８、ブロック復号部８０９、バーナム暗号鍵取得部８１０、送信データ記憶部８１１、受信データ記憶部８１２、バーナム暗号鍵記憶部８１３（バーナム復号鍵記憶部）及びブロック暗号鍵記憶部８１４（ブロック復号鍵記憶部）を備える。
【００３７】
通信インターフェイス８０２は、外部装置と通信を行う通信装置である。
より具体的には、通信インターフェイス８０２は、鍵共有装置Ｃ１０４や鍵共有装置Ｄ１０５からバーナム暗号鍵を受信するための装置である。
また、通信インターフェイス８０２は、端末装置８０１が暗号通信の送信側である場合は受信側となる端末装置に暗号化通信データを送信し、通信インターフェイス８０２暗号通信の受信側である場合は送信側となる端末装置から暗号化通信データを受信するための装置である。
【００３８】
送信制御部８０３は、バーナム暗号鍵管理部８０５から得られるバーナム暗号鍵の残量情報を参照し、バーナム暗号化部８０６とブロック暗号化部８０８とのどちらに通信データの暗号化をさせるかを処理装置により制御する。また、送信制御部８０３は、バーナム暗号化部８０６又はブロック暗号化部８０８に暗号化させ、得られた暗号化通信データを送信する。
【００３９】
受信制御部８０４は、暗号化通信データを受信する。そして、受信制御部８０４は、バーナム暗号鍵管理部８０５から得られるバーナム鍵の残量情報を参照して、受信した暗号化通信データに対する復号をバーナム復号部８０７とブロック復号部８０９とのどちらに復号させるかを処理装置により制御する。
【００４０】
バーナム暗号鍵管理部８０５は、バーナム暗号鍵記憶部８１３が記憶するバーナム暗号鍵の残量に関する情報を送信制御部８０３や受信制御部８０４に提供する。より具体的には、バーナム暗号鍵管理部８０５は、バーナム暗号鍵の残量が不足しているか否かを示す情報を提供する。
なお、バーナム暗号鍵管理部８０５は、バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量未満である場合に、バーナム暗号鍵が不足していると判定する。
【００４１】
バーナム暗号化部８０６は、送信データ記憶部８１１から通信データを取得し、バーナム暗号鍵記憶部８１３からバーナム暗号鍵を取得する。そして、バーナム暗号化部８０６は、処理装置によりバーナム暗号鍵を用いたバーナム暗号を通信データに施し、暗号化通信データを生成する。得られた暗号化通信データは送信制御部８０３に渡される。
【００４２】
バーナム復号部８０７は、バーナム暗号鍵記憶部８１３からバーナム暗号鍵を取得し、受信制御部８０４から暗号化通信データを取得する。そして、バーナム復号部８０７は、処理装置によりバーナム暗号鍵を用いて暗号化通信データを復号し、通信データを生成する。得られた通信データは受信データ記憶部８１２に記憶される。
【００４３】
ブロック暗号化部８０８は、送信データ記憶部８１１から通信データを取得し、ブロック暗号鍵記憶部８１４からブロック暗号鍵を取得する。そして、ブロック暗号化部８０８は、処理装置によりブロック暗号鍵を用いたブロック暗号を通信データに施し、暗号化通信データを生成する。得られた暗号化通信データは送信制御部８０３に渡される。
【００４４】
ブロック復号部８０９は、ブロック暗号鍵記憶部８１４からブロック暗号鍵を取得し、受信制御部８０４から暗号化通信データを取得する。そして、ブロック復号部８０９は、処理装置によりブロック暗号鍵を用いて暗号化通信データを復号し、通信データを生成する。得られた通信データは受信データ記憶部８１２に記憶される。
【００４５】
バーナム暗号鍵取得部８１０は、鍵共有装置Ｃ１０４や鍵共有装置Ｄ１０５等の鍵共有装置からバーナム暗号鍵を取得し、得られたバーナム暗号鍵をバーナム暗号鍵記憶部８１３に記憶する。
【００４６】
送信データ記憶部８１１は、受信側となる端末装置へ送信する通信データを記憶する記憶装置である。
【００４７】
受信データ記憶部８１２は、送信側となる端末装置から取得した通信データを記憶する記憶装置である。
【００４８】
バーナム暗号鍵記憶部８１３は、バーナム暗号鍵を記憶する記憶装置である。
【００４９】
ブロック暗号鍵記憶部８１４は、ブロック暗号鍵を記憶する記憶装置である。
【００５０】
次に、送信側の端末装置である端末装置Ａ１０２の処理について詳しく説明する。
図９は、端末装置８０１の送信制御部８０３の処理の流れを示すフローチャートである。
【００５１】
送信制御部８０３は、バーナム暗号鍵管理部８０５からバーナム暗号鍵の残量が不足しているか否かを示す残量情報を取得する（Ｓ３０１）。そして、送信制御部８０３は、バーナム暗号鍵の残量が不足していなければ（Ｓ３０２でＮＯ）、Ｓ３０３に処理を進め、残量が不足していれば（Ｓ３０２でＹＥＳ）、Ｓ３１１に処理を進める（Ｓ３０２）。
【００５２】
Ｓ３０３〜Ｓ３１０の処理について説明する。
送信制御部８０３は、通信インターフェイス８０２を介して、バーナム暗号通信要求メッセージを端末装置Ｂ１０３へ送信し（Ｓ３０３）、端末装置Ｂ１０３からバーナム暗号通信了承メッセージを受信する（Ｓ３０４）。そして、送信制御部８０３は、バーナム暗号化部８０６に通信データのうち単位データ量分のデータを暗号化させ、暗号化通信データを取得する（Ｓ３０５）。送信制御部８０３は、取得した暗号化通信データを通信インターフェイス８０２を解して端末装置Ｂ１０３へ送信する（Ｓ３０６）。
【００５３】
続いて、送信制御部８０３は、未送信の通信データの有無を確認する（Ｓ３０７）。未送信の通信データがなければ（Ｓ３０７でＮＯ）、送信制御部８０３は処理を終了する。一方、未送信の通信データがあれば（Ｓ３０７でＹＥＳ）、送信制御部８０３はＳ３０８へ処理を進める。
【００５４】
送信制御部８０３は、バーナム暗号鍵管理部８０５からバーナム暗号鍵の残量が不足しているか否かを示す残量情報を取得して、バーナム暗号による暗号通信が継続可能であるか否かを判定する（Ｓ３０８）。継続可能であれば（Ｓ３０８でＹＥＳ）、送信制御部８０３はＳ３０５へ処理を戻す。一方、継続不可能であれば（Ｓ３０８でＮＯ）、送信制御部８０３はＳ３０９へ処理を進める。
【００５５】
送信制御部８０３は、通信インターフェイス８０２を介して、ブロック暗号切替要求メッセージを端末装置Ｂ１０３に送信し（Ｓ３０９）、端末装置Ｂ１０３からブロック暗号切替了承メッセージを受信し（Ｓ３１０）、Ｓ３１３に処理を進める。
【００５６】
Ｓ３１１〜３１２の処理について説明する。
送信制御部８０３は、ブロック暗号通信要求メッセージを端末装置Ｂ１０３に送信し（Ｓ３１１）、端末装置Ｂ１０３からブロック暗号通信了承メッセージを受信し（Ｓ３１２）、Ｓ３１３に処理を進める。
【００５７】
Ｓ３１３以降の処理について説明する。
送信制御部８０３は、ブロック暗号化部８０８に通信データのうち単位データ量分のデータを暗号化させ、暗号化通信データを取得する（Ｓ３１３）。そして、送信制御部８０３は、暗号化通信データを端末装置Ｂ１０３へ送信する（Ｓ３１４）。
続いて、送信制御部８０３は、未送信の通信データの有無を確認する（Ｓ３１５）。未送信の通信データがなければ（Ｓ３１５でＮＯ）、送信制御部８０３は処理を終了する。一方、未送信の通信データがあれば（Ｓ３１５でＹＥＳ）、送信制御部８０３はＳ３１３へ処理を戻す。
【００５８】
次に、受信側の端末装置である端末装置Ｂ１０３の処理について詳しく説明する。
図１０は、端末装置８０１の受信制御部８０４の処理の流れを示すフローチャートである。
【００５９】
受信制御部８０４は、バーナム暗号通信要求メッセージ、又は、ブロック暗号通信要求メッセージを端末装置Ａ１０２から通信インターフェイス８０２を介して受信する（Ｓ４０１）。受信制御部８０４は、バーナム暗号要求メッセージを受信した場合はＳ４０３に処理を進め、ブロック暗号要求メッセージを受信した場合はＳ４１０に処理を進める（Ｓ４０２）。
【００６０】
Ｓ４０３〜４０９の処理について説明する。
受信制御部８０４は、通信インターフェイス８０２を介して、バーナム暗号了承メッセージを端末装置Ａ１０２へ送信し（Ｓ４０３）、端末装置Ａ１０２から暗号化通信データを受信する（Ｓ４０４）。受信制御部８０４は、受信した暗号化通信データをバーナム復号部８０７に送信して、復号させ通信データを生成させる（Ｓ４０５）。生成された通信データは、受信データ記憶部８１２に記憶される。
【００６１】
続いて、受信制御部８０４は、未受信の通信データの有無を確認する（Ｓ４０６）。未受信の通信データがなければ（Ｓ４０６でＮＯ）、受信制御部８０４は処理を終了する。一方、未受信の通信データがあれば（Ｓ４０６でＹＥＳ）、受信制御部８０４はＳ４０７へ処理を進める。
なお、未受信の通信データがあるか否かは、例えば、所定の時間内に次の暗号化データ、又は、ブロック暗号切替要求メッセージが送信されているかによって判定される。
【００６２】
受信制御部８０４は、バーナム暗号鍵管理部８０５からバーナム暗号鍵の残量が不足しているか否かを示す残量情報を取得して、バーナム暗号による暗号通信が継続可能であるか否かを判定する（Ｓ４０７）。継続可能であれば（Ｓ４０７でＹＥＳ）、受信制御部８０４はＳ４０４へ処理を戻す。一方、継続不可能であれば（Ｓ４０７でＮＯ）、受信制御部８０４はＳ４０８へ処理を進める。
【００６３】
受信制御部８０４は、端末装置Ａ１０２からブロック暗号切替要求メッセージを受信し（Ｓ４０８）、ブロック暗号切替了承メッセージを端末装置Ａ１０２に送信し（Ｓ４０９）、Ｓ４１１に処理を進める。
【００６４】
Ｓ４１０の処理について説明する。
受信制御部８０４は、ブロック暗号通信了承メッセージを端末装置Ａ１０２に送信し（Ｓ４１０）、Ｓ４１１に処理を進める。
【００６５】
Ｓ４１１以降の処理について説明する。
受信制御部８０４は、端末装置Ａ１０２から暗号化通信データを受信する（Ｓ４１１）。受信制御部８０４は、受信した暗号化通信データをブロック復号部８０９に送信して、復号させ通信データを生成させる（Ｓ４１２）。生成された通信データは、受信データ記憶部８１２に記憶される。
続いて、受信制御部８０４は、未送信の通信データの有無を確認する（Ｓ４１３）。未送信の通信データがなければ（Ｓ４１３でＮＯ）、受信制御部８０４は処理を終了する。一方、未送信の通信データがあれば（Ｓ４１３でＹＥＳ）、受信制御部８０４はＳ４１１へ処理を戻す。
【００６６】
なお、上記説明では、Ｓ４０７で受信制御部８０４がバーナム暗号による暗号通信が継続可能であるか否かを判定し、バーナム暗号による暗号通信を継続するか、ブロック暗号による暗号通信に切り替えるかを決定した。しかし、受信制御部８０４は、バーナム暗号による暗号通信が継続可能であるか否かを判定せず、端末装置Ａ１０２からブロック暗号切替要求メッセージを受信したか否かにより、バーナム暗号による暗号通信を継続するか、ブロック暗号による暗号通信に切り替えるかを決定してもよい。
【００６７】
次に、実施の形態１における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能について説明する。
図１１は、実施の形態１における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能構成を示す機能ブロック図である。ここで、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とは、同一の機能構成である。そこで、ここでは、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とを鍵共有装置１１０１として説明する。
鍵共有装置１１０１は、通信インターフェイス１１０２、バーナム暗号鍵共有部１１０３、バーナム暗号鍵転送部１１０４及びバーナム暗号鍵記憶部１１０５を備える。
【００６８】
通信インターフェイス１１０２は、外部装置と通信を行う通信装置である。
より具体的には、通信インターフェイス１１０２は、他の鍵共有装置とバーナム暗号鍵を共有するための通信を行うための装置である。
また、通信ケーブル等で接続されている端末装置に、バーナム暗号鍵を送信するための装置である。
【００６９】
バーナム暗号鍵共有部１１０３は、他の鍵共有装置と通信を行い、バーナム暗号鍵を共有し、共有したバーナム暗号鍵をバーナム暗号鍵記憶部１１０５に記憶する。
【００７０】
バーナム暗号鍵転送部１１０４は、バーナム暗号鍵記憶部１１０５からバーナム暗号鍵を取得し、端末装置へ送信する。
【００７１】
バーナム暗号鍵記憶部１１０５は、他の鍵共有装置との通信により得られたバーナム暗号鍵を記憶する記憶装置である。
【００７２】
以上のように、実施の形態１に係る暗号化システム１では、２者間で行われているバーナム暗号による暗号通信において、バーナム暗号鍵の不足を検知する。これにより、暗号通信中もしくは暗号通信開始時にバーナム暗号鍵が不足した場合であっても、バーナム暗号による暗号通信からブロック暗号による暗号通信に切り替え、暗号通信を継続することができる。
【００７３】
また、実施の形態１では、バーナム暗号による暗号通信からブロック暗号による暗号通信への切り替えをバーナム暗号鍵の不足時に行っている。バーナム暗号鍵の不足は装置内で検知できるものであるため、端末装置Ａ１０２、端末装置Ｂ１０３の利用者の判断や処理を必要としないで、暗号通信の切り替えを実現することが可能である。
【００７４】
なお、ブロック暗号による暗号通信を行っている場合に、端末装置Ａ１０２や端末装置Ｂ１０３が鍵共有装置Ｃ１０４や鍵共有装置Ｄ１０５からバーナム暗号鍵を取得して、再びバーナム暗号鍵の残りビット数が所定のビット数以上になることが考えられる。この場合、端末装置Ａ１０２と端末装置Ｂ１０３とは、ブロック暗号による暗号通信からバーナム暗号による暗号通信へ切り替えてもよい。
【００７５】
実施の形態２．
実施の形態２では、ブロック暗号鍵の共有方法について説明する。実施の形態２では、実施の形態１において、端末装置Ａ１０２及び端末装置Ｂ１０３が鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５からバーナム暗号鍵を取得する際に、併せてブロック暗号鍵も同時に取得する。これにより、ブロック暗号鍵についても端末装置間で安全に共有する。
【００７６】
まず、鍵共有装置同士によるバーナム暗号鍵及びブロック暗号鍵の共有方法について説明する。
図１２は、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とがネットワーク１０１もしくはネットワーク１０６を介して、バーナム暗号鍵１２０１及びブロック暗号鍵１２０２の共有を行う場合の動作概要を示す図である。
鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とは、ネットワーク１０１もしくはネットワーク１０６を介して、所定の方法（鍵共有アルゴリズム）によりバーナム暗号鍵１２０１及びブロック暗号鍵１２０２を共有する。なお、バーナム暗号鍵１２０１及びブロック暗号鍵１２０２を共有する方法は、どのような方法であっても構わない。例えば、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とが、物理的もしくは論理的に安全な通信路で接続された上でバーナム暗号鍵１２０１及びブロック暗号鍵１２０２を共有すればよい。実施の形態２では、一例として、量子暗号通信による鍵共有が行われるものとする。
【００７７】
次に、鍵共有装置から端末装置がバーナム暗号鍵及びブロック暗号鍵を取得する場合の動作概要について説明する。
図１３は、鍵共有装置Ｃ１０４から端末装置Ａ１０２が通信ケーブル１０７を介して、バーナム暗号鍵１３０１及びブロック暗号鍵１３０２を取得する場合の動作概要を示す図である。
まず、端末装置Ａ１０２は、暗号鍵要求メッセージ１３０３を鍵共有装置Ｃ１０４へ送信する。鍵共有装置Ｃ１０４は、暗号鍵要求メッセージ１３０３を受信した後、保有しているバーナム暗号鍵１３０１及びブロック暗号鍵１３０２を端末装置Ａ１０２へ送信する。バーナム暗号鍵１３０１及びブロック暗号鍵１３０２を受信した端末装置Ａ１０２は、バーナム暗号鍵１３０１及びブロック暗号鍵１３０２を記憶する。
なお、端末装置Ｂ１０３が、通信ケーブル１０８を介して鍵共有装置Ｄ１０５からバーナム暗号鍵及びブロック暗号鍵を取得する方法も同様である。
【００７８】
次に、実施の形態２における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図１４は、実施の形態２における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図である。図１４に示す端末装置は、図８に示す端末装置が備える機能に加え、ブロック暗号鍵取得部８１５を備える。
【００７９】
ブロック暗号鍵取得部８１５は、鍵共有装置Ｃ１０４や鍵共有装置Ｄ１０５等の鍵共有装置からブロック暗号鍵を取得し、得られたブロック暗号鍵をブロック暗号鍵記憶部８１４に記憶する。
【００８０】
次に、実施の形態２における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能について説明する。
図１５は、実施の形態２における鍵共有装置Ｃ１０４及び鍵共有装置Ｄ１０５の機能構成を説明する機能ブロック図である。図１５に示す鍵共有装置は、図１１に示す鍵共有装置が備える機能に加え、ブロック暗号鍵共有部１１０６、ブロック暗号鍵転送部１１０７及びブロック暗号鍵記憶部１１０８を備える。
【００８１】
ブロック暗号鍵共有部１１０６は、他の鍵共有装置と通信を行い、ブロック暗号鍵を共有し、共有したブロック暗号鍵をブロック暗号鍵記憶部１１０８に記憶する。
【００８２】
ブロック暗号鍵転送部１１０７はブロック暗号鍵記憶部１１０８からブロック暗号鍵を取得し、端末装置へ送信する。
【００８３】
ブロック暗号鍵記憶部１１０８は他の鍵共有装置との通信により得られたブロック暗号鍵を記憶する記憶装置である。
【００８４】
以上のように、実施の形態２に係る暗号化システム１では、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とで、バーナム暗号鍵とともにブロック暗号鍵も共有する。そして、端末装置Ａ１０２と端末装置Ｂ１０３とが、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５とのそれぞれからバーナム暗号鍵とともにブロック暗号鍵も取得する。これにより、ブロック暗号鍵についても端末装置間で安全に共有する。
【００８５】
実施の形態３．
実施の形態３では、バーナム暗号鍵の残量が所定の量よりも少なくなった時点で、残存するバーナム暗号鍵からブロック暗号鍵を生成することについて説明する。これにより、事前にブロック暗号鍵を端末装置間で共有していなくても、バーナム暗号鍵の不足時にブロック暗号による暗号通信に切り替えることを可能とする。
そこで、実施の形態３においては、端末装置Ａ１０２と端末装置Ｂ１０３とは、暗号通信開始時、バーナム暗号鍵のみを共有しており、ブロック暗号鍵は保持していないものとする。
なお、ここでは、バーナム暗号鍵が不足した時点において、バーナム暗号鍵はブロック暗号鍵の生成に必要となる量が残っているものとして説明する。
【００８６】
まず、実施の形態３において、端末装置同士がバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要について説明する。
図１６は、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図である。図１６に示す処理では、実施の形態１における図４の処理に加えて、バーナム暗号鍵からブロック暗号鍵を生成する処理が行われる。
なお、暗号通信の事前準備として、端末装置Ａ１０２はバーナム暗号用のバーナム暗号鍵１６０１を保有している。また、端末装置Ｂ１０３もバーナム暗号鍵１６０２を保有している。端末装置Ａ１０２が保有するバーナム暗号鍵１６０１と端末装置Ｂ１０３が保有するバーナム暗号鍵１６０２は、前述の方法により、それぞれ鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５から取得したものである。実施の形態３においては、バーナム暗号鍵１６０１とバーナム暗号鍵１６０２とは、同一のものであるとする。
また、暗号通信前の時点で、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれブロック暗号鍵１６０８とブロック暗号鍵１６１０とを保有していない。
【００８７】
処理の開始から、端末装置Ｂ１０３がブロック暗号切替了承メッセージ１６０７を端末装置Ａ１０２へ送信するまでの処理は、図４に示す処理と同様であるため、説明を省略する。
ブロック暗号切替了承メッセージ１６０７を受信した端末装置Ａ１０２は、残存しているバーナム暗号鍵１６０１からブロック暗号鍵１６０８を生成する。端末装置Ａ１０２は、通信データをブロック暗号鍵１６０８で暗号化し、暗号化通信データ１６０９を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ１６０９を端末装置Ｂ１０３へ送信する。
暗号化通信データ１６０９を受信した端末装置Ｂ１０３は、残存しているバーナム暗号鍵１６０２からブロック暗号鍵１６１０を生成する。端末装置Ｂ１０３は、ブロック暗号鍵１６１０で暗号化通信データ１６０９を復号し、通信データを得る。
【００８８】
なお、端末装置Ａ１０２と端末装置Ｂ１０３とは、予め共有された同一の方法により、バーナム暗号鍵からブロック暗号鍵を生成するものとする。
例えば、端末装置Ａ１０２と端末装置Ｂ１０３とは、残存するバーナム暗号鍵の一部を、そのままブロック暗号鍵とする。つまり、ブロック暗号鍵が２５６ビットである場合、残存するバーナム暗号鍵のうち所定の２５６ビットを切り出してブロック暗号鍵とする。
【００８９】
次に、図１６の通信処理について詳しく説明する。図１７及び図１８は、図１６の通信処理の流れを示すフローチャートである。図１７及び図１８に示す処理では、実施の形態１における図５に示す処理に加えて、バーナム暗号鍵からブロック暗号鍵を生成する処理が行われる。
【００９０】
Ｓ５０１からＳ５１７までの処理は、図５に示すＳ１０１からＳ１１７までの処理と同様であるため、説明を省略する。
【００９１】
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ４０７を受信すると、残存しているバーナム暗号鍵１６０１からブロック暗号鍵１６０８を生成する（Ｓ５１８）。端末装置Ａ１０２は、通信データのうち単位データ量分のデータをブロック暗号鍵１６０８で暗号化して、暗号化通信データ１６０９を生成する（Ｓ５１９）。そして、端末装置Ａ１０２は、暗号化通信データ１６０９を端末装置Ｂ１０３へ送信する（Ｓ５２０）。
端末装置Ｂ１０３は、暗号化通信データ１６０９を受信する（Ｓ５２１）。すると、端末装置Ｂ１０３は、残存しているバーナム暗号鍵１６０２からブロック暗号鍵１６１０を生成する（Ｓ５２２）。そして、端末装置Ｂ１０３は、ブロック暗号鍵１６１０で暗号化通信データ１６０９を復号し、通信データを得る（Ｓ５２３）。
【００９２】
Ｓ５２４からＳ５２５までの処理は、図５に示すＳ１２２からＳ１２３までの処理と同様であるため、説明を省略する。
【００９３】
次に、実施の形態３において、通信開始時点でバーナム暗号鍵が残りわずかとなっており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図１９は、端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、バーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図である。図１９に示す処理では、実施の形態１における図６の処理に加えて、バーナム暗号鍵からブロック暗号鍵を生成する処理が行われる。
なお、ここでは、通信開始時点でバーナム暗号鍵は枯渇しておらず、ブロック暗号鍵の生成に必要な量以上残っているものとする。
【００９４】
処理の開始から、端末装置Ｂ１０３がブロック暗号切替了承メッセージ１９０３を端末装置Ａ１０２へ送信するまでの処理は、図６に示す処理と同様であるため、説明を省略する。
ブロック暗号通信了承メッセージ１９０３を受信した端末装置Ａ１０２は、残存しているバーナム暗号鍵１９０１からブロック暗号鍵１９０４を生成する。端末装置Ａ１０２は、通信データをブロック暗号鍵１９０４で暗号化し、暗号化通信データ１９０５を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ１９０５を端末装置Ｂ１０３へ送信する。
暗号化通信データ１９０５を受信した端末装置Ｂ１０３は、残存しているバーナム暗号鍵１９０６からブロック暗号鍵１９０７を生成する。端末装置Ｂ１０３は、ブロック暗号鍵１９０７で暗号化通信データ１９０５を復号し、通信データを得る。
【００９５】
次に、図１９の通信処理について詳しく説明する。図２０は、図１９の通信処理の流れを示すフローチャートである。図１９に示す処理では、実施の形態１における図７に示す処理に加えて、バーナム暗号鍵からブロック暗号鍵を生成する処理が行われる。
【００９６】
Ｓ６０１からＳ６０５までの処理は、図７に示すＳ２０１からＳ２０５までの処理と同様であるため、説明を省略する。
【００９７】
端末装置Ａ１０２は、ブロック暗号通信了承メッセージ１９０３を受信すると、残存するバーナム暗号鍵１９０１からブロック暗号鍵１９０４を生成する（Ｓ６０６）。端末装置Ａ１０２は、通信データのうち単位データ量分のデータをブロック暗号鍵１９０４で暗号化して、暗号化通信データ１９０５を生成する（Ｓ６０７）。そして、端末装置Ａ１０２は、暗号化通信データ１９０５を端末装置Ｂ１０３へ送信する（Ｓ６０８）。
端末装置Ｂ１０３は、暗号化通信データ１９０５を受信する（Ｓ６０９）。すると、端末装置Ｂ１０３は、残存しているバーナム暗号鍵１９０６からブロック暗号鍵１９０７を生成する（Ｓ６１０）。そして、端末装置Ｂ１０３は、ブロック暗号鍵１９０７で暗号化通信データ１９０５を復号し、通信データを得る（Ｓ６１１）。
【００９８】
Ｓ６１２からＳ６１３までの処理は、図７に示すＳ２１０からＳ２１１までの処理と同様であるため、説明を省略する。
【００９９】
次に、実施の形態３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図２１は、実施の形態３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図である。図２１に示す端末装置は、図８に示す端末装置が備える機能に加え、暗号鍵変換部８１６を備える。
【０１００】
暗号鍵変換部８１６は、バーナム暗号鍵記憶部８１３からバーナム暗号鍵を取得し、取得したバーナム暗号鍵から処理装置によりブロック暗号鍵を生成してブロック暗号鍵記憶部８１４に記憶する。
【０１０１】
以上のように、実施の形態３に係る暗号化システム１では、残存しているバーナム暗号鍵からブロック暗号鍵を生成する。これにより、実施の形態２のように、事前にブロック暗号鍵を共有することなく、バーナム暗号鍵による暗号通信からブロック暗号による暗号通信へ切り替えることができる。
【０１０２】
なお、上記説明では、バーナム暗号鍵が不足した場合に、残存するバーナム暗号鍵からブロック暗号鍵を生成した。この場合、バーナム暗号鍵が不足した時点において、ブロック暗号鍵を生成するために必要な量以上、バーナム暗号鍵が残存することが前提となる。
そこで、バーナム暗号鍵が不足する前に、残存するバーナム暗号鍵からブロック暗号鍵を生成してもよい。例えば、端末装置が鍵共有装置からバーナム暗号鍵を取得した時点で、残存するバーナム暗号鍵からブロック暗号鍵を生成してもよい。この場合、ブロック暗号鍵を生成するために必要な量以上、バーナム暗号鍵が残存しており、残存するバーナム暗号鍵からブロック暗号鍵を生成できないということがない。
【０１０３】
実施の形態４．
実施の形態４では、ブロック暗号鍵を複数保持しておき、暗号通信に利用しているブロック暗号鍵を定期的に破棄し、新しいブロック暗号鍵を使って暗号通信を行うことについて説明する。これにより、ブロック暗号による暗号通信をより安全な通信として実現する。
以下の説明では、一例として実施の形態１に上記の機能を追加したものを示す。
【０１０４】
まず、実施の形態４において、端末装置同士がバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要について説明する。
図２２は、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号用の暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の動作概要を示す図である。図２２に示す処理では、実施の形態１における図４の処理に加えて、利用したブロック暗号鍵を破棄し、次のブロック暗号鍵を設定する処理が行われる。
なお、暗号通信の事前準備として、端末装置Ａ１０２はバーナム暗号用のバーナム暗号鍵２２０１と複数のブロック暗号鍵２２０２〜２２０４（ブロック暗号鍵１〜ｎ）を保有している。また、端末装置Ｂ１０３もバーナム暗号鍵２２０５と複数のブロック暗号鍵２２０６〜２２０８（ブロック暗号鍵１〜ｎ）を保有している。実施の形態４においては、バーナム暗号鍵２２０１とバーナム暗号鍵２２０５とは同一のものであり、ブロック暗号鍵２２０２〜２２０４とブロック暗号鍵２２０６〜２２０８とも、それぞれ同一のものである。
なお、ブロック暗号鍵の１〜ｎの値は、ブロック暗号鍵を識別する識別番号（識別情報）である。
【０１０５】
処理の開始から、端末装置Ｂ１０３がブロック暗号切替了承メッセージ２２１３を端末装置Ａ１０２へ送信するまでの処理は、図４に示す処理と同様であるため、説明を省略する。
ブロック暗号切替了承メッセージ２２１３を受信した端末装置Ａ１０２は、通信データをブロック暗号鍵２２０２で暗号化し、暗号化通信データ２２１４を生成し、端末装置Ｂ１０３へ送信する。
暗号化通信データ２２１４を受信した端末装置Ｂ１０３は、ブロック暗号鍵２２０６で暗号化通信データ２２１４を復号し、通信データを得る。
端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、ブロック暗号鍵２２０２、ブロック暗号鍵２２０６を破棄する。そして、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、次にブロック暗号鍵による暗号化を行う場合には、それぞれブロック暗号鍵２２０３、ブロック暗号鍵２２０７を用いるように設定する。
【０１０６】
次に、図２２の通信処理について詳しく説明する。図２３及び図２４は、図２２の通信処理の流れを示すフローチャートである。図２３及び図２４に示す処理では、実施の形態１における図５に示す処理に加えて、利用したブロック暗号鍵を破棄し、次のブロック暗号鍵を設定する処理が行われる。
【０１０７】
Ｓ７０１からＳ７１７までの処理は、図５に示すＳ１０１からＳ１１７までの処理と同様であるため、説明を省略する。
【０１０８】
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ２２１３を受信すると、通信データのうち単位データ量分のデータをブロック暗号鍵２２０２で暗号化して暗号化通信データ２２１４を生成する（Ｓ７１８）。そして、端末装置Ａ１０２は、暗号化通信データ２２１４を端末装置Ｂ１０３へ送信する（Ｓ７１９）。
端末装置Ｂ１０３は、暗号化通信データ２２１４を受信する（Ｓ７２０）。すると、端末装置Ｂ１０３は、ブロック暗号鍵２２０６で暗号化通信データ２２１４を復号し、通信データを得る（Ｓ７２１）。
【０１０９】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ７２２）。未送信の通信データがなければ（Ｓ７２２でＮＯ）、端末装置Ａ１０２はブロック暗号鍵２２０２を破棄し、次にブロック暗号鍵による暗号化を行う場合には、ブロック暗号鍵２２０３を用いるように設定する（Ｓ７２３）。そして、端末装置Ａ１０２は、処理を終了する（Ｓ７２４）。一方、未送信の通信データがあれば（Ｓ７２２でＹＥＳ）、端末装置Ａ１０２はＳ７１８へ処理を戻す。
同様に、端末装置Ｂ１０３は、未受信の通信データの有無を確認する（Ｓ７２５）。なお、例えば、端末装置Ｂ１０３は、端末装置Ａ１０２から所定の時間内に次の通信データを受信しない場合、未受信の通信データがないと判定する。未受信の通信データがなければ（Ｓ７２５でＮＯ）、端末装置Ａ１０２はブロック暗号鍵２２０６を破棄し、次にブロック暗号鍵による暗号化を行う場合には、ブロック暗号鍵２２０７を用いるように設定する（Ｓ７２６）。そして、端末装置Ｂ１０３は、処理を終了する（Ｓ７２７）。一方、未受信の通信データがあれば（Ｓ７２５でＹＥＳ）、端末装置Ｂ１０３はＳ７２０へ処理を戻す。
【０１１０】
次に、実施の形態４において、通信開始時点でバーナム暗号鍵が不足しており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図２５は、端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、バーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図である。図２５に示す処理では、実施の形態１における図６の処理に加えて、利用したブロック暗号鍵を破棄し、次のブロック暗号鍵を設定する処理が行われる。
なお、暗号通信の事前準備として、端末装置Ａ１０２は複数のブロック暗号鍵２５０１〜２５０３（ブロック暗号鍵１〜ｎ）を保有している。また、端末装置Ｂ１０３も複数のブロック暗号鍵２５０４〜２５０６（ブロック暗号鍵１〜ｎ）を保有している。端末装置Ａ１０２が保有するブロック暗号鍵２５０１〜２５０３と、端末装置Ｂ１０３が保有するブロック暗号鍵２５０４〜２５０６とは、それぞれ同一のものであるとする。
【０１１１】
処理の開始から、端末装置Ｂ１０３がブロック暗号切替了承メッセージ２５０８を端末装置Ａ１０２へ送信するまでの処理は、図６に示す処理と同様であるため、説明を省略する。
ブロック暗号通信了承メッセージ２５０８を受信した端末装置Ａ１０２は、ブロック暗号鍵２５０１を用いて、通信データにブロック暗号による暗号化を施し、暗号化通信データ２５０９を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ２５０９を端末装置Ｂ１０３へ送信する。
暗号化通信データ２５０９を受信した端末装置Ｂ１０３は、ブロック暗号鍵２５０４で暗号化通信データ２５０９を復号し、通信データを得る。
暗号通信の終了後、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれブロック暗号鍵２５０１、ブロック暗号鍵２５０４を破棄し、次にブロック暗号鍵による暗号化を行う場合には、それぞれブロック暗号鍵２５０２、ブロック暗号鍵２５０５を用いるように設定する。
端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、ブロック暗号鍵２５０１、ブロック暗号鍵２５０４を破棄する。そして、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、次にブロック暗号鍵による暗号化を行う場合には、それぞれブロック暗号鍵２５０２、ブロック暗号鍵２５０５を用いるように設定する。
【０１１２】
次に、図２５の通信処理について詳しく説明する。図２６は、図２５の通信処理の流れを示すフローチャートである。図２６に示す処理では、実施の形態１における図７に示す処理に加えて、利用したブロック暗号鍵を破棄し、次のブロック暗号鍵を設定する処理が行われる。
【０１１３】
Ｓ８０１からＳ８０５までの処理は、図７に示すＳ２０１からＳ２０５までの処理と同様であるため、説明を省略する。
【０１１４】
端末装置Ａ１０２は、端末装置Ｂ１０３からブロック暗号通信了承メッセージ２５０８を受信すると、通信データのうち単位データ量分のデータをブロック暗号鍵２５０１で暗号化して、暗号化通信データ２５０９を生成する（Ｓ８０６）。そして、端末装置Ａ１０２は、暗号化通信データ２５０９を端末装置Ｂ１０３へ送信する（Ｓ８０７）。
端末装置Ｂ１０３は、暗号化通信データ２５０９を受信する（Ｓ８０８）。すると、端末装置Ｂ１０３は、ブロック暗号鍵２５０４で暗号化通信データ２５０９を復号し、通信データを得る（Ｓ８０９）。
【０１１５】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ８１０）。未送信の通信データがなければ（Ｓ８１０でＮＯ）、端末装置Ａ１０２はブロック暗号鍵２５０１を破棄し、次にブロック暗号鍵による暗号化を行う場合には、ブロック暗号鍵２５０２を用いるように設定する（Ｓ８１１）。そして、端末装置Ａ１０２は、処理を終了する（Ｓ８１２）。一方、未送信の通信データがあれば（Ｓ８１０でＹＥＳ）、端末装置Ａ１０２はＳ８０６へ処理を戻す。
同様に、端末装置Ｂ１０３は、未受信の通信データの有無を確認する（Ｓ８１３）。なお、例えば、端末装置Ｂ１０３は、端末装置Ａ１０２から所定の時間内に次の通信データを受信しない場合、未受信の通信データがないと判定する。未受信の通信データがなければ（Ｓ８１３でＮＯ）、端末装置Ｂ１０３はブロック暗号鍵２５０４を破棄し、次にブロック暗号鍵による暗号化を行う場合には、ブロック暗号鍵２５０５を用いるように設定する（Ｓ８１４）。そして、端末装置Ｂ１０３は、処理を終了する（Ｓ８１５）。一方、未受信の通信データがあれば（Ｓ８１３でＹＥＳ）、端末装置Ａ１０２はＳ８０８へ処理を戻す。
【０１１６】
次に、実施の形態４における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図２７は、実施の形態４における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図である。図２７に示す端末装置は、図８に示す端末装置が備える機能に加え、ブロック暗号鍵更新部８１７を備える。
【０１１７】
ブロック暗号鍵更新部８１７は、ブロック暗号鍵記憶部８１４から現在使われているブロック暗号鍵を削除し、次のブロック暗号鍵を設定する。
【０１１８】
以上のように、実施の形態４に係る暗号化システム１では、ブロック暗号鍵を複数保持しておき、暗号通信に利用しているブロック暗号鍵を定期的に破棄し、新しいブロック暗号鍵を使って暗号通信を行う。これにより、ブロック暗号による暗号通信の安全性を高めることができる。
【０１１９】
なお、ここでは、ブロック暗号鍵を定期的に破棄し、新しいブロック暗号鍵を使って暗号通信を行う機能を実施の形態１に係る暗号化システム１に追加した場合について説明した。しかし、ブロック暗号鍵を定期的に破棄し、新しいブロック暗号鍵を使って暗号通信を行う機能を実施の形態３に係る暗号化システム１に追加してもよい。この場合、暗号鍵変換部８１６（図２１参照）は、バーナム暗号鍵から複数のブロック暗号鍵を生成する。例えば、残存するバーナム暗号鍵を、所定のビット毎に分割して複数のブロック暗号鍵とする。つまり、ブロック暗号鍵が２５６ビットである場合、残存するバーナム暗号鍵（の一部）を、２５６ビット毎に分割して複数のブロック暗号鍵とする。
【０１２０】
実施の形態５．
実施の形態５では、実施の形態４において、ブロック暗号鍵が残り１つとなった時点でブロック暗号による暗号化を行う場合には、現在のブロック暗号鍵をハッシュ関数などのランダム化によって更新することについて説明する。これにより、同じブロック暗号鍵を繰り返し用いることによる安全性の低下を防ぐ技術について説明する。
【０１２１】
バーナム暗号鍵が不足しており、ブロック暗号鍵の残りが１つしかない時に端末装置間でブロック暗号による暗号通信を行うと、次回以降のブロック暗号による暗号通信においても同じブロック暗号鍵を用いることになる。そのため、暗号通信を行うほど、暗号通信の安全性が低下していくことになる。
そこで、実施の形態５では、ブロック暗号鍵の残りが１つしかない時にブロック暗号による暗号通信を行った場合、そのブロック暗号鍵をハッシュ関数などを用いたランダム化によって更新する。
【０１２２】
まず、通信開始時点でバーナム暗号鍵が不足しており、かつ、ブロック暗号鍵の残りが１つである時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図２８は、端末装置Ａ１０２と端末装置Ｂ１０３とが暗号通信を開始する時点で、バーナム暗号鍵が不足しており、かつ、ブロック暗号鍵の残りが１つしかない場合の動作概要を示す図である。
なお、端末装置Ａ１０２はブロック暗号用のブロック暗号鍵２８０３を保有している。また、端末装置Ｂ１０３もブロック暗号鍵２８０５を保有している。端末装置Ａ１０２が保有するブロック暗号鍵２８０３と、端末装置Ｂ１０３が保有するブロック暗号鍵２８０５とは、それぞれ同一のものであるとする。
【０１２３】
処理の開始から、端末装置Ｂ１０３がブロック暗号切替了承メッセージ２８０２を端末装置Ａ１０２へ送信するまでの処理は、図６に示す処理と同様であるため、説明を省略する。
ブロック暗号通信了承メッセージ２８０２を受信した端末装置Ａ１０２は、ブロック暗号鍵２８０３を用いて、通信データにブロック暗号による暗号化を施し、暗号化通信データ２８０４を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ２８０４を端末装置Ｂ１０３へ送信する。
暗号化通信データ２８０４を受信した端末装置Ｂ１０３は、ブロック暗号鍵２８０５で暗号化通信データ２８０４を復号し、通信データを得る。
暗号通信の終了時、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、ブロック暗号鍵２８０３、ブロック暗号鍵２８０５にハッシュ関数などによるランダム化を施し、ブロック暗号鍵２８０６、ブロック暗号鍵２８０７を生成する。そして、端末装置Ａ１０２と端末装置Ｂ１０３とは、次にブロック暗号鍵による暗号化を行う場合には、それぞれブロック暗号鍵２８０６、ブロック暗号鍵２８０７を用いるように設定する。このとき、端末装置Ａ１０２と端末装置Ｂ１０３とは、それぞれ、ブロック暗号鍵２８０３、２８０５を削除する。
【０１２４】
次に、図２８の通信処理について詳しく説明する。図２９は、図２８の通信処理の流れを示すフローチャートである。図２９に示す処理では、実施の形態１における図７に示す処理に加えて、利用したブロック暗号鍵を更新する処理が行われる。
【０１２５】
Ｓ９０１からＳ９０５までの処理は、図７に示すＳ２０１からＳ２０５までの処理と同様であるため、説明を省略する。
【０１２６】
端末装置Ａ１０２は、端末装置Ｂ１０３からブロック暗号通信了承メッセージ２８０２を受信すると、通信データのうち単位データ量分のデータをブロック暗号鍵２８０３で暗号化して、暗号化通信データ２８０４を生成する（Ｓ９０６）。そして、端末装置Ａ１０２は、暗号化通信データ２８０４を端末装置Ｂ１０３へ送信する（Ｓ９０７）。
端末装置Ｂ１０３は、暗号化通信データ２８０４を受信する（Ｓ９０８）。すると、端末装置Ｂ１０３は、ブロック暗号鍵２８０５で暗号化通信データ２８０４を復号し、通信データを得る（Ｓ９０９）。
【０１２７】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ９１０）。未送信の通信データがなければ（Ｓ９１０でＮＯ）、端末装置Ａ１０２はブロック暗号鍵２８０３にハッシュ関数などによるランダム化を施し、ブロック暗号鍵２８０６を生成する（Ｓ９１１）。そして、端末装置Ａ１０２は、次回の暗号通信にブロック暗号鍵２８０６を設定し、ブロック暗号鍵２８０３を破棄して（Ｓ９１２）、処理を終了する（Ｓ９１３）。一方、未送信の通信データがあれば（Ｓ９１０でＹＥＳ）、端末装置Ａ１０２はＳ９０６へ処理を戻す。
同様に、端末装置Ｂ１０３は、未受信の通信データの有無を確認する（Ｓ９１４）。なお、例えば、端末装置Ｂ１０３は、端末装置Ａ１０２から所定の時間内に次の通信データを受信しない場合、未受信の通信データがないと判定する。未受信の通信データがなければ（Ｓ９１４でＮＯ）、端末装置Ａ１０２はブロック暗号鍵２８０５にハッシュ関数などによるランダム化を施し、ブロック暗号鍵２８０７を生成する（Ｓ９１５）。なお、端末装置Ｂ１０３がランダム化に用いるハッシュ関数などは、Ｓ９１１で端末装置Ａ１０２が用いたものと同じものである。したがって、ここで、生成されるブロック暗号鍵２８０７と、Ｓ９１１で生成されるブロック暗号鍵２８０６とは同じである。そして、端末装置Ｂ１０３は、処理を終了する（Ｓ８１５）。一方、未受信の通信データがあれば（Ｓ９１４でＹＥＳ）、端末装置Ｂ１０３は処理をＳ９０８へ戻す。
【０１２８】
次に、実施の形態５における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図３０は、実施の形態５における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を説明する機能ブロック図である。図３０に示す端末装置は、図２７に示す端末装置が備える機能に加え、ハッシュ関数処理部８１８（ブロック暗号鍵生成部）を備える。また、ブロック暗号鍵更新部８１７の処理が異なる。
【０１２９】
ブロック暗号鍵更新部８１７は、ブロック暗号鍵記憶部８１４から現在使われているブロック暗号鍵を削除し、次のブロック暗号鍵を設定する。
但し、ブロック暗号鍵の残りが１つしかなく、次のブロック暗号鍵が存在しない場合は、ブロック暗号鍵更新部８１７は、現在使われているブロック暗号鍵をハッシュ関数処理部に渡す。そして、ブロック暗号鍵更新部８１７は、ハッシュ関数処理部８１８から新しいブロック暗号鍵を受け取り、ブロック暗号鍵記憶部８１４に記憶する。
【０１３０】
ハッシュ関数処理部８１８は、ブロック暗号鍵更新部８１７からブロック暗号鍵を受け取る。ハッシュ関数処理部８１８は、受け取ったブロック暗号鍵にハッシュ関数などによるランダム化を施し、新しいブロック暗号鍵を生成する。そして、生成したブロック暗号鍵をブロック暗号鍵更新部８１７に渡す。
【０１３１】
以上のように、実施の形態５に係る暗号化システム１では、ブロック暗号鍵の残りが１つである場合、現在使われているブロック暗号鍵から新しいブロック暗号鍵を生成する。これにより、ブロック暗号による暗号通信の安全性を高めることができる。
【０１３２】
なお、上記に示したような、現在使われているブロック暗号鍵から新しいブロック暗号鍵を生成する処理は、ブロック暗号鍵の残りが１つである状態が継続している限り、暗号通信を行うたびに行われる。
【０１３３】
実施の形態６．
実施の形態６では、実施の形態１〜５において、バーナム暗号鍵の残量が一定量よりも少なくなった時点で、残存するバーナム暗号鍵を増大することについて説明する。これにより、バーナム暗号鍵が不足することを防止する。
以下の説明では、一例として、実施の形態１に上記の機能を追加したものを示す。
【０１３４】
バーナム暗号を行うためには、暗号化の対象となるデータと同量の暗号鍵が必要である。そのため、暗号化対象のデータが膨大である場合、暗号鍵の消費もそれに比例して膨大となる。そこで、実施の形態６においては、バーナム暗号鍵の残量が事前に決められた量よりも少なくなった場合に、残存しているバーナム暗号鍵に増大処理を施し、バーナム暗号鍵の分量を増大させる。
例えば、バーナム暗号鍵が半分になった時点で、残っているバーナム暗号鍵に増大処理を施し、２倍の長さにすれば、元の長さと同じだけのバーナム暗号鍵が確保できる。
【０１３５】
しかし、鍵共有装置から取得したバーナム暗号鍵に対して、何度も増大処理を行うと、バーナム暗号鍵の安全性が低下する虞がある。例えば、鍵共有装置から取得したバーナム暗号鍵が真性乱数である場合に、後の実施の形態で説明するように、擬似乱数を用いてバーナム暗号鍵を増大させると、バーナム暗号鍵の安全性が低下する虞がある。
そこで、実施の形態６においては、鍵共有装置から取得したバーナム暗号鍵に対して増大処理を実行する回数を制限する。
【０１３６】
まず、実施の形態６において、端末装置同士がバーナム暗号による暗号通信を開始し、バーナム暗号鍵の残量が事前に決められた量よりも少なくなった時点で、バーナム暗号鍵に増大処理を施す場合の動作概要について説明する。
図３１は、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号鍵の残量が事前に決められた量よりも少なくなった時点で、バーナム暗号鍵に増大処理を施す場合の動作概要を示す図である。
暗号通信の事前準備として、端末装置Ａ１０２はバーナム暗号用のバーナム暗号鍵３１０１を保有している。また、端末装置Ｂ１０３もバーナム暗号鍵３１０２を保有している。バーナム暗号鍵３１０１とバーナム暗号鍵３１０２とは同一のものであるとする。
また、端末装置Ａ１０２はブロック暗号用のブロック暗号鍵３１１３を保有している。また、端末装置Ｂ１０３もブロック暗号鍵３１１５を保有している。端末装置Ａ１０２が保有するブロック暗号鍵３１１３と、端末装置Ｂ１０３が保有するブロック暗号鍵３１１５とは同一のものであるとする。
【０１３７】
処理の開始から、端末装置Ｂ１０３がバーナム暗号により生成した暗号化通信データ３１０５から通信データを得るまでの処理は、図４に示す処理と同様であるため、説明を省略する。
もし、暗号化通信データ３１０５を生成することでバーナム暗号鍵の残量が事前に決められた量より少なくなった場合、端末装置Ａ１０２はバーナム暗号鍵増大要求メッセージ３１０６を端末装置Ｂ１０３へ送信する。
バーナム暗号鍵増大要求メッセージ３１０６を受信した端末装置Ｂ１０３は、バーナム暗号鍵増大了承メッセージ３１０７を端末装置Ａ１０２へ送信する。
バーナム暗号鍵増大了承メッセージ３１０７を受信した端末装置Ａ１０２は、バーナム暗号鍵３１０１に増大処理を施し、新たなバーナム暗号鍵３１０８を生成する。端末装置Ａ１０２は、生成したバーナム暗号鍵３１０８で通信データを暗号化し、暗号化通信データ３１０９を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ３１０９を端末装置Ｂ１０３へ送信する。
暗号化通信データ３１０９を受信した端末装置Ｂ１０３は、バーナム暗号鍵３１０２に増大処理を施し、新たなバーナム暗号鍵３１１０を生成する。端末装置Ｂ１０３は、生成したバーナム暗号鍵３１１０で暗号化通信データ３１０９を復号し、通信データを得る。
なお、端末装置Ａ１０２と端末装置Ｂ１０３とは、予め共有された同一の方法により、バーナム暗号鍵を増大させるものとする。
【０１３８】
端末装置Ａ１０２と端末装置Ｂ１０３とは、事前に決められた回数までは、現在のバーナム暗号鍵の残量が事前に決められた量より少なくなる度に、同様の増大処理を行う。一方、事前に決められた回数だけ増大処理を行った場合、バーナム暗号鍵が事前に決められた量より少なくなっても増大処理は行わず、以降に示す処理を実行する。
【０１３９】
もし、端末装置Ａ１０２における暗号化通信データ３１０９の生成時にバーナム暗号を行うことができるデータ通信量を超えて、暗号化を行う必要がある場合、端末装置Ａ１０２はブロック暗号切替要求メッセージ３１１１を端末装置Ｂ１０３へ送信する。
ブロック暗号切替要求メッセージ３１１１を受信した端末装置Ｂ１０３は、ブロック暗号切替了承メッセージ３１１２を端末装置Ａ１０２へ送信する。
ブロック暗号切替了承メッセージ３１１２を受信した端末装置Ａ１０２は、通信データをブロック暗号鍵３１１３で暗号化し、暗号化通信データ３１１４を生成する。そして、端末装置Ａ１０２は、生成した暗号化通信データ３１１４を端末装置Ｂ１０３へ送信する。
暗号化通信データ３１１４を受信した端末装置Ｂ１０３は、ブロック暗号鍵３１１５で暗号化通信データ３１１４を復号し、通信データを得る。
【０１４０】
次に、図３１の通信処理について詳しく説明する。図３２から図３４は、図３１の通信処理の流れを示すフローチャートである。図３２から図３４に示す処理では、実施の形態１における図５の処理に加えて、バーナム暗号鍵を増大するための処理が行われる。
【０１４１】
Ｓ１００１からＳ１０１２までの処理は、図５に示すＳ１０１からＳ１１２までの処理と同様であるため、説明を省略する。
【０１４２】
未送信の通信データがあった場合（Ｓ１０１１でＹＥＳ）、端末装置Ａ１０２は、バーナム暗号鍵の残量が事前に決められた量より少ないかを確認する（Ｓ１０１３）。残量が事前に決められた量以上の場合（Ｓ１０１３でＮＯ）、Ｓ１００７へ処理を戻す。一方、残量が事前に決められた量より少ない場合（Ｓ１０１３でＹＥＳ）、Ｓ１０１４へ処理を進める。
そして、端末装置Ａ１０２は、今までにバーナム暗号鍵の増大処理を行った回数が事前に決められた制限回数より少ないかを確認する（Ｓ１０１４）。増大処理を行った回数が事前に定められた回数以上の場合（Ｓ１０１４でＮＯ）、Ｓ１０２５へ処理を進める。一方、増大処理を行った回数が事前に定められた回数より少ない場合（Ｓ１０１４でＹＥＳ）、端末装置Ａ１０２は、バーナム暗号鍵増大要求メッセージ３１０６を端末装置Ｂ１０３へ送信する（Ｓ１０１５）。
【０１４３】
端末装置Ｂ１０３は、バーナム暗号鍵増大要求メッセージ３１０６を受信する（Ｓ１０１６）。すると、端末装置Ｂ１０３は、バーナム暗号鍵増大了承メッセージ３１０７を端末装置Ａ１０２へ送信する（Ｓ１０１７）。
端末装置Ａ１０２は、バーナム暗号鍵増大了承メッセージ３１０７を受信する（Ｓ１０１８）。すると、バーナム暗号鍵３１０１に増大処理を施し、新たなバーナム暗号鍵３１０８を生成する（Ｓ１０１９）。端末装置Ａ１０２は、生成したバーナム暗号鍵３１０８で通信データのうち単位データ量分のデータを暗号化し、暗号化通信データ３１０９を生成する（Ｓ１０２０）。そして、端末装置Ａ１０２は、暗号化通信データ３１０９を端末装置Ｂ１０３へ送信する（Ｓ１０２１）。
端末装置Ｂ１０３は、暗号化通信データ３１０９を受信する（Ｓ１０２２）。すると、端末装置Ｂ１０３は、バーナム暗号鍵３１０２に増大処理を施し、新たなバーナム暗号鍵３１１０を生成する（Ｓ１０２３）。端末装置Ｂ１０３は、生成したバーナム暗号鍵３１１０で暗号化通信データ３１０９を復号し、通信データを得る（Ｓ１０２４）。
Ｓ１０２１で暗号化通信データ３１０９を端末装置Ｂ１０３へ送信した後、端末装置Ａ１０２はＳ１０１１へ処理を戻す。
【０１４４】
増大処理を行った回数が事前に定められた回数以上の場合（Ｓ１０１４でＮＯ）、端末装置Ａ１０２は、引き続き通信データをバーナム暗号で暗号化する（Ｓ１０２５）。
Ｓ１０２６からＳ１０４１までの処理は、図５に示すＳ１０８からＳ１２３までの処理と同様であるため、説明を省略する。
【０１４５】
次に、実施の形態６における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図３５は、実施の形態６における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を示す機能ブロック図である。図３５に示す端末装置は、図８に示す端末装置が備える機能に加え、バーナム暗号鍵増大部８１９を備える。
【０１４６】
バーナム暗号鍵増大部８１９は、バーナム暗号鍵記憶部８１３から残存しているバーナム暗号鍵を取得し、増大処理を行う。増大処理を行った結果として得られたバーナム暗号鍵をバーナム暗号鍵記憶部８１３に渡す。
【０１４７】
以上のように、実施の形態６に係る暗号化システムでは、バーナム暗号鍵の残量が所定量より少なくなると、残りのバーナム暗号鍵に対して増大処理を実行して、バーナム暗号鍵の残量を増大させる。これにより、バーナム暗号鍵が不足することを防止する。
また、鍵共有装置から取得したバーナム暗号鍵に対して、増大処理を実行する回数を制限することにより、バーナム暗号鍵の安全性が所定以上に低下することを防止している。
【０１４８】
実施の形態７．
実施の形態７では、実施の形態６で説明したバーナム暗号鍵の増大方法の一例について説明する。
実施の形態７では、残存するバーナム暗号鍵に一定の割合で擬似乱数を混ぜることによりバーナム暗号鍵を増大させる。これにより、バーナム暗号鍵の乱数性を維持しつつ、バーナム暗号鍵の不足を防止する。
【０１４９】
図３６は、実施の形態７におけるバーナム暗号鍵増大部８１９の処理を説明する図である。
バーナム暗号鍵増大部８１９は、内部に擬似乱数生成器３６０１を有する。バーナム暗号鍵増大部８１９は、バーナム暗号鍵３６０２が入力されると、小さな単位、例えば１ビットごとに分解する。そして、バーナム暗号鍵増大部８１９は、擬似乱数生成器３６０１から受け取った擬似乱数３６０３を分解したバーナム暗号鍵３６０２の間に挿入する。
この処理により、バーナム暗号鍵増大部８１９は、入力されたバーナム暗号鍵３６０２から新しいバーナム暗号鍵３６０４を生成し、出力する。この例では、新しいバーナム暗号鍵３６０４の長さは、入力されたバーナム暗号鍵３６０２長さの２倍となる。
【０１５０】
実施の形態８．
実施の形態８では、実施の形態６で説明したバーナム暗号鍵の増大方法の、実施の形態７とは異なる例について説明する。
実施の形態８では、残存するバーナム暗号鍵を種として、ハッシュ関数や暗号方式による擬似乱数生成を行い、得られた擬似乱数を新しいバーナム暗号鍵とする。これにより、バーナム暗号鍵の乱数性を維持しつつ、バーナム暗号鍵の枯渇を防止する。
【０１５１】
図３７は、実施の形態８におけるバーナム暗号鍵増大部８１９の処理を説明する図である。
バーナム暗号鍵増大部８１９は、内部に擬似乱数生成器３７０１とハッシュ関数３７０２を有する。バーナム暗号鍵増大部８１９は、バーナム暗号鍵３７０３が入力されると、擬似乱数生成器３７０１から受け取った擬似乱数３７０４とバーナム暗号鍵３７０３とを組み合わせ、ハッシュ関数３７０２に入力する。擬似乱数３７０４とバーナム暗号鍵３７０３とを組み合わせるとは、例えば、バーナム暗号鍵３７０３の前又は後に擬似乱数３７０４を付加することである。そして、ハッシュ関数３７０２でランダム化されたものを新しいバーナム暗号鍵３７０５として出力する。
この処理により、バーナム暗号鍵増大部８１９は、入力されたバーナム暗号鍵３７０３から新しいバーナム暗号鍵３７０５を生成し、出力する。この例では、新しいバーナム暗号鍵３７０５の長さは、ハッシュ関数３７０２によって元のバーナム暗号鍵の長さと同じになる。
【０１５２】
実施の形態９．
実施の形態１〜８においては、端末装置が鍵共有装置と接続されていることを前提として説明した。しかし、例えば、端末装置が携帯電話等の携帯端末である場合には、端末装置と鍵共有装置が接続されていない状況も起こりうる。この場合、鍵共有装置から端末装置へのバーナム暗号鍵又はブロック暗号鍵の転送処理を行う時期が、端末装置間で一致していないことにより、端末装置間で保有している暗号鍵の量が異なっている場合が起こりえる。
例えば、ある時点で端末装置Ａ１０２が鍵共有装置Ｃ１０４からバーナム暗号鍵を取得したとする。その後、鍵共有装置Ｃ１０４と鍵共有装置Ｄ１０５との間で新たなバーナム暗号鍵が共有されたとする。そして、端末装置Ｂ１０３が鍵共有装置Ｄ１０５からバーナム暗号鍵を取得したとする。すると、端末装置Ｂ１０３は端末装置Ａ１０２が保有していないバーナム暗号鍵を保有していることになる。この場合、端末装置Ａ１０２と端末装置Ｂ１０３との間で暗号通信を行う場合、端末装置Ａ１０２のバーナム暗号鍵が先に不足することになる。
そこで、実施の形態９では、暗号通信を行う前に端末装置間で互いの保有しているバーナム暗号鍵の情報を共有し、互いの保有しているバーナム暗号鍵の状況に応じて暗号通信を切り替えることを説明する。
【０１５３】
まず、実施の形態９において、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の処理について説明する。
図３８及び図３９は、実施の形態９における図４の通信処理の流れを示すフローチャートである。図３８及び図３９に示す処理では、実施の形態１における図５の処理に加えて、事前にバーナム暗号鍵の残量を端末装置間で共有する処理が行われる。
【０１５４】
端末装置Ａ１０２は、保有しているバーナム暗号鍵４０１の量を確認し（Ｓ１１０１）、バーナム暗号通信要求メッセージ４０３をバーナム暗号鍵４０１の残量値と共に端末装置Ｂ１０３へ送信する（Ｓ１１０２）。
端末装置Ｂ１０３は、端末装置Ａ１０２からバーナム暗号通信要求メッセージ４０３を受信する（Ｓ１１０３）。すると、端末装置Ｂ１０３は、保有しているバーナム暗号鍵４０２の量を確認し（Ｓ１１０４）、バーナム暗号で暗号通信を行うことができるデータ量を算出する（Ｓ１１０５）。そして、端末装置Ｂ１０３は、バーナム暗号通信了承メッセージ４０４をバーナム暗号鍵４０２の残量値と共に端末装置Ａ１０２へ送信する（Ｓ１１０６）。
端末装置Ａ１０２は、端末装置Ｂ１０３からバーナム暗号通信了承メッセージ４０４を受信する（Ｓ１１０７）。すると、端末装置Ａ１０２は、バーナム暗号で暗号通信を行うことができるデータ量を算出する（Ｓ１１０８）。また、端末装置Ａ１０２は、通信データのうち単位データ量分のデータにバーナム暗号鍵４０１を用いた暗号化を施して、暗号化通信データ４０５を生成する（Ｓ１１０９）。そして、端末装置Ａ１０２は、暗号化通信データ４０５を端末装置Ｂ１０３へ送信する（Ｓ１１１０）。
端末装置Ｂ１０３は、端末装置Ａ１０２から暗号化通信データ４０５を受信する（Ｓ１１１１）。すると、端末装置Ｂ１０３は、バーナム暗号鍵４０２を用いて暗号化通信データ４０５を復号して通信データを得る（Ｓ１１１２）。
【０１５５】
続いて、端末装置Ａ１０２は、未送信の通信データの有無を確認する（Ｓ１１１３）。未送信の通信データがなければ（Ｓ１１１３でＮＯ）、端末装置Ａ１０２は処理を終了する（Ｓ１１１４）。一方、未送信の通信データがあれば（Ｓ１１１３でＹＥＳ）、端末装置Ａ１０２はＳ１１１５へ処理を進める。
【０１５６】
端末装置Ａ１０２は、バーナム暗号で暗号化通信を行うことができるデータ量が、１度に暗号化する単位データ量以上かを確認する（Ｓ１１１５）。この際、端末装置Ａ１０２は、（Ｓ１１０８）で算出したデータ量から、現時点で端末装置Ａ１０２がバーナム暗号で暗号通信を行うことができるデータ量を算出する。また、端末装置Ａ１０２は、バーナム暗号通信了承メッセージ４０４とともに受信した端末装置Ｂ１０３が保有するバーナム暗号鍵の残量から、現時点で端末装置Ｂ１０３がバーナム暗号で暗号通信を行うことができるデータ量を算出する。そして、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号で暗号通信を行うことができるデータ量のうち、少ない方のデータ量が、１度に暗号化する単位データ量を超えているかを確認する。
少ない方のデータ量が単位データ量以上であれば（Ｓ１１１５でＹＥＳ）、端末装置Ａ１０２はＳ１１０９へ処理を戻す。一方、少ない方のデータ量が単位データ量未満であれば（Ｓ１１１５でＮＯ）、端末装置Ａ１０２はブロック暗号切替要求メッセージ４０６を端末装置Ｂ１０３へ送信する（Ｓ１１１６）。
【０１５７】
Ｓ１１１７からＳ１１２５までの処理は、図５に示すＳ１１５からＳ１２３までの処理と同様であるため、説明を省略する。
【０１５８】
次に、通信開始時点で受信側端末装置のバーナム暗号鍵が不足しており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図４０は、実施の形態９において、端末装置Ａ１０２と端末装置Ｂ１０３が暗号通信を開始する時点で、端末装置Ｂ１０３のバーナム暗号鍵が不足しているため、ブロック暗号による暗号通信を開始する場合の動作概要を示す図である。
なお、端末装置Ａ１０２はバーナム暗号鍵４００１とブロック暗号鍵４００２とを保有しており、端末装置Ｂ１０３はバーナム暗号鍵を保有せず、ブロック暗号鍵４００３を保有しているとする。つまり、端末装置Ｂ１０３はバーナム暗号鍵が枯渇している状態であるとする。
【０１５９】
まず、端末装置Ａ１０２は、保有しているバーナム暗号鍵４００１の量を確認し、端末装置Ｂ１０３にバーナム暗号通信要求メッセージ４００４を送信する。
バーナム暗号通信要求メッセージ４００４を受信した端末装置Ｂ１０３は、バーナム暗号鍵が枯渇していることを確認し、バーナム暗号通信拒否メッセージ４００５を送信する。
バーナム暗号通信拒否メッセージ４００５を受信した端末装置Ａ１０２は、端末装置Ｂ１０３にブロック暗号通信要求メッセージ４００６を送信する。
ブロック暗号通信要求メッセージ４００６を受信した端末装置Ｂ１０３は、端末装置Ａ１０２にブロック暗号通信了承メッセージ４００７を送信する。
以降の処理は、図６に示す処理と同様であるため、説明を省略する。
【０１６０】
次に、図４０の通信処理について詳しく説明する。図４１は、図４０の通信処理の流れを示すフローチャートである。
【０１６１】
まず、端末装置Ａ１０２は、保有しているバーナム暗号鍵４００１の量を確認し（Ｓ１２０１）、端末装置Ｂ１０３にバーナム暗号通信要求メッセージ４００４を送信する（Ｓ１２０２）。
端末装置Ｂ１０３は、バーナム暗号通信要求メッセージ４００４を受信する（Ｓ１２０３）。すると、端末装置Ｂ１０３は、保有しているバーナム暗号鍵の量を確認し（Ｓ１２０４）、バーナム暗号による暗号通信が可能なデータ量が不足していることを算出する（Ｓ１２０５）。そして、端末装置Ｂ１０３は、バーナム暗号通信拒否メッセージ４００５を端末装置Ａ１０２へ送信する（Ｓ１２０６）。
端末装置Ａ１０２は、バーナム暗号通信拒否メッセージ４００５を受信する（Ｓ１２０７）。すると、端末装置Ａ１０２は、ブロック暗号通信要求メッセージ４００６を端末装置Ｂ１０３へ送信する（Ｓ１２０８）。
【０１６２】
Ｓ１２０９からＳ１２１７までの処理は、図７に示すＳ２０３からＳ２１１までの処理と同様であるため、説明を省略する。
【０１６３】
次に、送信側の端末装置である端末装置Ａ１０２の処理について詳しく説明する。
図４２は、実施の形態９における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャートである。
【０１６４】
送信制御部８０３は、バーナム暗号鍵管理部８０５からバーナム暗号鍵の残量が不足しているか否かを示す残量情報を取得する（Ｓ１３０１）。そして、送信制御部８０３は、バーナム暗号鍵の残量が不足していなければ（Ｓ１３０２でＮＯ）、Ｓ１３０３に処理を進め、残量が不足していれば（Ｓ１３０２でＹＥＳ）、Ｓ１３１２に処理を進める（Ｓ１３０２）。
【０１６５】
送信制御部８０３は、通信インターフェイス８０２を介して、バーナム暗号通信要求メッセージを端末装置Ｂ１０３へ送信し（Ｓ１３０３）、端末装置Ｂ１０３からメッセージを受信する（Ｓ１３０４）。そして、送信制御部８０３は、受信したメッセージがバーナム暗号通信了承メッセージであれば、処理をＳ１３０６へ進め、バーナム暗号通信拒否メッセージであれば、処理をＳ１３１２へ進める。
【０１６６】
Ｓ１３０６からＳ１３１６までの処理は、図９に示すＳ３０５からＳ３１５までの処理と同様であるため、説明を省略する。
【０１６７】
次に、受信側の端末装置である端末装置Ｂ１０３の処理について詳しく説明する。
図４３は、実施の形態９における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャートである。
【０１６８】
受信制御部８０４は、バーナム暗号通信要求メッセージ、又は、ブロック暗号通信要求メッセージを端末装置Ａ１０２から通信インターフェイス８０２を介して受信する（Ｓ１４０１）。受信制御部８０４は、バーナム暗号要求メッセージを受信した場合はＳ１４０３に処理を進め、ブロック暗号要求メッセージを受信した場合はＳ１４１２に処理を進める（Ｓ１４０２）。
【０１６９】
受信制御部８０４は、バーナム暗号鍵管理部８０５からバーナム暗号鍵の残量が不足しているか否かを示す残量情報を取得する（Ｓ１４０３）。受信制御部８０４は、バーナム暗号鍵の残量が不足していれば（Ｓ１４０３でＹＥＳ）、処理をＳ１４０４へ進め、バーナム暗号鍵の残量が不足していなければ（Ｓ１４０３でＮＯ）、処理をＳ１４０５へ進める。
バーナム暗号鍵の残量が不足していた場合、受信制御部８０４は、バーナム暗号通信拒否メッセージを端末装置Ａ１０２へ送信し（Ｓ１４０４）、処理をＳ１４１３へ進める。
【０１７０】
Ｓ１４０５からＳ１４１５までの処理は、図１０に示すＳ４０３からＳ４１３までの処理と同様であるため、説明を省略する。
【０１７１】
以上のように、実施の形態９に係る暗号化システム１では、端末装置間で互いの保有しているバーナム暗号鍵の残量を共有することで、保有するバーナム暗号鍵に差異がある場合であっても、暗号方式の切り替えを行うことができる。
【０１７２】
なお、上記説明では、単に、端末装置Ａ１０２と端末装置Ｂ１０３とのうち、バーナム暗号鍵の残量の少ない方に合わせて、暗号方式の切り替えを行った。
しかし、端末装置Ａ１０２と端末装置Ｂ１０３とで保有するバーナム暗号鍵にずれがある場合も考えられる。つまり、端末装置Ａ１０２が保有しているバーナム暗号鍵のうち、一部を端末装置Ｂ１０３が保有しておらず、端末装置Ｂ１０３が保有しているバーナム暗号鍵のうち、一部を端末装置Ａ１０２が保有していない場合が考えられる。この場合、端末装置Ａ１０２と端末装置Ｂ１０３とが共通して保有しているバーナム暗号鍵の残量に応じて、暗号方式を切り替える必要がある。
【０１７３】
この場合、例えば、端末装置は、鍵共有装置からバーナム暗号鍵を取得する場合、バーナム暗号鍵のビット数をカウントしておく。例えば、初めに、端末装置が鍵共有装置から１０００ビットのバーナム暗号鍵を取得した場合、端末装置は１ビット目から１０００ビット目までのバーナム暗号鍵を取得したとカウントする。次に、端末装置が鍵共有装置から５００ビットのバーナム暗号鍵を取得した場合、端末装置は１００１ビット目から１５００ビット目までのバーナム暗号鍵を取得したとカウントする。
また、端末装置は、使用したバーナム暗号鍵のビット数もカウントしておく。例えば、初めに１００ビットのバーナム暗号鍵を使用したのであれば、１ビット目から１００ビット目までのバーナム暗号鍵を使用したとカウントする。
したがって、端末装置は、現在何ビット目から何ビット目までのバーナム暗号鍵が使用できる状態で残っているかを知ることができる。
【０１７４】
この場合、端末装置Ａ１０２は、バーナム暗号鍵の残量を確認する代わりに、何ビット目から何ビット目までのバーナム暗号鍵が使用できる状態で残っているか確認する。そして、バーナム暗号通信要求メッセージとともに、何ビット目から何ビット目までのバーナム暗号鍵が使用できる状態で残っているかを示す情報を端末装置Ｂ１０３へ送信する。
端末装置Ｂ１０３は、何ビット目から何ビット目までのバーナム暗号鍵が使用できる状態で残っているか確認する。そして、端末装置Ａ１０２が保有するバーナム暗号鍵と端末装置Ｂ１０３が保有するバーナム暗号鍵との共通部分を特定する。共通部分で暗号通信できるデータ量が１度に暗号化する単位データ量を超えていれば、端末装置Ｂ１０３は、バーナム暗号通信了承メッセージとともに、何ビット目から何ビット目までのバーナム暗号鍵が使用できる状態で残っているかを示す情報を端末装置Ａ１０２へ送信する。一方、共通部分が１度に暗号化する単位データ量を超えていなければ、端末装置Ｂ１０３は、バーナム暗号通信拒否メッセージを返す。
端末装置Ａ１０２は、バーナム暗号通信了承メッセージを受信した場合、端末装置Ａ１０２が保有するバーナム暗号鍵と端末装置Ｂ１０３が保有するバーナム暗号鍵との共通部分を特定する。そして、特定した共通部分のバーナム暗号鍵で通信データのうち単位データ量分のデータを暗号化して、暗号化データを生成し、端末装置Ｂ１０３へ送信する。
また、端末装置Ａ１０２は、未送信の通信データがある場合、共通部分のバーナム暗号鍵の残りで暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量を超えているかを確認する。超えていれば、バーナム暗号による暗号通信を行い、超えていなければ、ブロック暗号による暗号通信に切り替える。
【０１７５】
実施の形態１０．
実施の形態４では、ブロック暗号鍵を複数保持しておき、暗号通信に利用しているブロック暗号鍵を定期的に破棄し、新しいブロック暗号鍵を使って暗号通信を行うことについて説明した。実施の形態４においては、端末装置が鍵共有装置と接続されていることを前提として説明した。
しかし、実施の形態９で説明したように、例えば、端末装置が携帯端末である場合では、端末装置と鍵共有装置が接続されていない状況も起こりうる。この場合、鍵共有装置から端末装置へのバーナム暗号鍵又はブロック暗号鍵の転送処理を行う時期や頻度が、端末装置間で一致していないことにより、端末装置間で保有している暗号鍵が異なっている場合があり得る。また、端末装置間での通信エラーなどにより、バーナム暗号鍵及びブロック暗号鍵の消費にずれが生じる可能性もある。そのため、通信開始時に暗号通信に用いる暗号鍵を確定させておく必要がある。
そこで、実施の形態１０では、暗号通信を行う前に端末装置間で互いの保有しているブロック暗号鍵の個数を共有し、互いの保有しているブロック暗号鍵の状況に応じて暗号通信の切り替えを行うことについて説明する。
【０１７６】
まず、実施の形態１０において、端末装置Ａ１０２と端末装置Ｂ１０３とがバーナム暗号による暗号通信を開始し、バーナム暗号鍵が不足した時点からブロック暗号による暗号通信に方式の切り替えを行う場合の処理について説明する。
図４４及び図４５は、実施の形態１０における図２２の通信処理の流れを示すフローチャートである。図４４及び図４５に示す処理では、実施の形態４における図２３及び図２４の処理に加えて、事前にブロック暗号鍵の情報を端末装置間で共有する処理が行われる。
なお、実施の形態１０では、実施の形態４と同様、図２２に示すように、各ブロック暗号鍵は識別番号により識別されるものとする。
【０１７７】
Ｓ１５０１からＳ１５１３までの処理は、図２３に示すＳ７０１からＳ７１３までの処理（図５に示すＳ１０１からＳ１１３までの処理）と同様であるため、説明を省略する。
【０１７８】
バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量を超えている場合（Ｓ１５１３でＹＥＳ）、端末装置Ａ１０２は識別番号何番から何番までのブロック暗号鍵を保有しているかを確認する（Ｓ１５１４）。そして、端末装置Ａ１０２は、ブロック暗号切替要求メッセージ２２１２と共に、保有しているブロック暗号鍵の識別番号を端末装置Ｂ１０３へ送信する（Ｓ１５１５）。
端末装置Ｂ１０３は、ブロック暗号切替要求メッセージ２２１２とブロック暗号鍵の識別番号とを受信する（Ｓ１５１６）。すると、端末装置Ｂ１０３は、保有しているブロック暗号鍵の識別番号を確認し（Ｓ１５１７）、暗号通信で利用するブロック暗号鍵を確定する（Ｓ１５１８）。例えば、端末装置Ｂ１０３は、端末装置Ａ１０２と端末装置Ｂ１０３との両方が保有しているブロック暗号鍵のうち、最も識別番号の小さいブロック暗号鍵を暗号通信で利用するブロック暗号鍵として確定する。そして、端末装置Ｂ１０３は、ブロック暗号切替了承メッセージ２２１３とともに、確定したブロック暗号鍵の識別番号を端末装置Ａ１０２へ送信する（Ｓ１５１９）。
【０１７９】
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ２２１３と、確定したブロック暗号鍵の識別番号とを受信する（Ｓ１５２０）。すると、端末装置Ａ１０２は、受信した識別番号が示すブロック暗号鍵で通信データを暗号化して、暗号化通信データ２２１４を生成する（Ｓ１５２１）。そして、端末装置Ａ１０２は、暗号化通信データ２２１４を端末装置Ｂ１０３へ送信する（Ｓ１５２２）。
端末装置Ｂ１０３は、暗号化通信データ２２１４を受信する（Ｓ１５２３）。すると、端末装置Ｂ１０３は、（Ｓ１５１８）で確定した識別番号のブロック暗号鍵で暗号化通信データ２２１４を復号し、通信データを得る（Ｓ１５２４）。
【０１８０】
Ｓ１５２５からＳ１５３０までの処理は、Ｓ７２２からＳ７２７までの処理と同様であるため、説明を省略する。
【０１８１】
次に、通信開始時点で受信側端末装置のバーナム暗号鍵が不足しており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図４６は、実施の形態１０における図２５の通信処理の流れを示すフローチャートである。図４６に示す処理では、実施の形態４における図２６の処理に加えて、事前にブロック暗号鍵の情報を端末装置間で共有する処理が行われる。
【０１８２】
端末装置Ａ１０２は、保有しているバーナム暗号鍵の量を確認し、バーナム暗号鍵が不足していることを把握する（Ｓ１６０１）。なお、バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量未満である場合に、バーナム暗号鍵が不足していると判定する。すると、端末装置Ａ１０２は、端末装置Ａ１０２は識別番号何番から何番までのブロック暗号鍵を保有しているかを確認する（Ｓ１６０２）。そして、端末装置Ａ１０２は、ブロック暗号切替要求メッセージ２５０７と共に、保有しているブロック暗号鍵の識別番号を端末装置Ｂ１０３へ送信する（Ｓ１６０３）。
端末装置Ｂ１０３は、ブロック暗号切替要求メッセージ２５０７とブロック暗号鍵の識別番号とを受信する（Ｓ１６０４）。すると、端末装置Ｂ１０３は、保有しているブロック暗号鍵の識別番号を確認し（Ｓ１６０５）、暗号通信で利用するブロック暗号鍵を確定する（Ｓ１６０６）。例えば、端末装置Ｂ１０３は、端末装置Ａ１０２と端末装置Ｂ１０３との両方が保有しているブロック暗号鍵のうち、最も識別番号の小さいブロック暗号鍵を暗号通信で利用するブロック暗号鍵として確定する。そして、端末装置Ｂ１０３は、ブロック暗号切替了承メッセージ２５０８とともに、確定したブロック暗号鍵の識別番号を端末装置Ａ１０２へ送信する（Ｓ１６０７）。
【０１８３】
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ２５０８と、確定したブロック暗号鍵の識別番号とを受信する（Ｓ１６０８）。すると、端末装置Ａ１０２は、受信した識別番号が示すブロック暗号鍵で通信データを暗号化して、暗号化通信データ２５０９を生成する（Ｓ１６０９）。そして、端末装置Ａ１０２は、暗号化通信データ２５０９を端末装置Ｂ１０３へ送信する（Ｓ１６１０）。
端末装置Ｂ１０３は、暗号化通信データ２５０９を受信する（Ｓ１６１１）。すると、端末装置Ｂ１０３は、（Ｓ１６０６）で確定した識別番号のブロック暗号鍵で暗号化通信データ２５０９を復号し、通信データを得る（Ｓ１６１２）。
【０１８４】
Ｓ１６１３からＳ１６１８までの処理は、図２６のＳ８１０からＳ８１５までの処理と同様であるため、説明を省略する。
【０１８５】
次に、送信側の端末装置である端末装置Ａ１０２の処理について詳しく説明する。
図４７は、実施の形態１０における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャートである。
【０１８６】
Ｓ１７０１からＳ１７０８までの処理は、図９に示すＳ３０１からＳ３０８までの処理と同様であるため、説明を省略する。
【０１８７】
Ｓ１７０９〜１７１１の処理について説明する。
送信制御部８０３は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を確認する（Ｓ１７０９）。送信制御部８０３は、通信インターフェイス８０２を介して、ブロック暗号切替要求メッセージとともに、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を端末装置Ｂ１０３へ送信する（Ｓ１７１０）。そして、送信制御部８０３は、端末装置Ｂ１０３から、ブロック暗号切替了承メッセージとともに、暗号通信で利用するブロック暗号鍵の識別番号を受信し（Ｓ１７１１）、Ｓ１７１５に処理を進める。
【０１８８】
Ｓ１７１２からＳ１７１４の処理について説明する。
送信制御部８０３は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を確認する（Ｓ１７１２）。送信制御部８０３は、通信インターフェイス８０２を介して、ブロック暗号通信要求メッセージとともに、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を端末装置Ｂ１０３へ送信する（Ｓ１７１３）。そして、送信制御部８０３は、端末装置Ｂ１０３から、ブロック暗号通信了承メッセージとともに、暗号通信で利用するブロック暗号鍵の識別番号を受信し（Ｓ１７１４）、Ｓ１７１５に処理を進める。
【０１８９】
Ｓ１７１５以降の処理について説明する。
送信制御部８０３は、Ｓ１７１１やＳ１７１４で受信した識別番号のブロック暗号鍵で、ブロック暗号化部８０８に通信データのうち単位データ量分のデータを暗号化させ、暗号化通信データを取得する（Ｓ１７１５）。そして、送信制御部８０３は、暗号化通信データを端末装置Ｂ１０３へ送信する（Ｓ１７１６）。
続いて、送信制御部８０３は、未送信の通信データの有無を確認する（Ｓ１７１７）。未送信の通信データがなければ（Ｓ１７１７でＮＯ）、送信制御部８０３は処理を終了する。一方、未送信の通信データがあれば（Ｓ１７１７でＹＥＳ）、送信制御部８０３はＳ１７１５へ処理を戻す。
【０１９０】
次に、受信側の端末装置である端末装置Ｂ１０３の処理について詳しく説明する。
図４８は、実施の形態１０における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャートである。
【０１９１】
Ｓ１８０１からＳ１８０７までの処理は、図１０に示すＳ４０１からＳ４０７までの処理と同様であるため、説明を省略する。
【０１９２】
Ｓ１８０８〜１８１１の処理について説明する。
受信制御部８０４は、端末装置Ａ１０２からブロック暗号切替要求メッセージと、端末装置Ａ１０２が保有するブロック暗号鍵の識別番号とを受信する（Ｓ１８０８）。受信制御部８０４は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を確認する（Ｓ１８０９）。受信制御部８０４は、（Ｓ１８０８）で受信した端末装置Ａ１０２が保有するブロック暗号鍵の識別番号と、（Ｓ１８０９）で確認した端末装置Ｂ１０３が保有するブロック暗号鍵の識別番号とから暗号通信で用いるブロック暗号鍵を確定する（Ｓ１８１０）。そして、受信制御部８０４は、通信インターフェイス８０２を介して、ブロック暗号切替了承メッセージとともに、確定したブロック暗号鍵の識別番号を端末装置Ａ１０２へ送信し（Ｓ１８１１）、Ｓ１８１５に処理を進める。
【０１９３】
Ｓ１８１２からＳ１８１４の処理について説明する。
受信制御部８０４は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の識別番号を確認する（Ｓ１８１２）。受信制御部８０４は、（Ｓ１８０２）で受信した端末装置Ａ１０２が保有するブロック暗号鍵の識別番号と、（Ｓ１８１２）で確認した端末装置Ｂ１０３が保有するブロック暗号鍵の識別番号とから暗号通信で用いるブロック暗号鍵を確定する（Ｓ１８１３）。そして、受信制御部８０４は、通信インターフェイス８０２を介して、ブロック暗号通信了承メッセージとともに、確定したブロック暗号鍵の識別番号を端末装置Ａ１０２へ送信し（Ｓ１８１４）、Ｓ１８１５に処理を進める。
【０１９４】
Ｓ１８１５以降の処理について説明する。
受信制御部８０４は、端末装置Ａ１０２から暗号化通信データを受信する（Ｓ１８１５）。受信制御部８０４は、受信した暗号化通信データをブロック復号部８０９に送信して、Ｓ１８１０やＳ１８１３で確定した識別番号のブロック暗号鍵で復号させ通信データを生成させる（Ｓ１８１６）。生成された通信データは、受信データ記憶部８１２に記憶される。
続いて、受信制御部８０４は、未受信の通信データの有無を確認する（Ｓ１８１７）。未受信の通信データがなければ（Ｓ１８１７でＮＯ）、受信制御部８０４は処理を終了する。一方、未受信の通信データがあれば（Ｓ１８１７でＹＥＳ）、受信制御部８０４はＳ１８１５へ処理を戻す。
【０１９５】
以上のように、実施の形態１０に係る暗号化システム１では、端末装置間で互いの保有しているブロック暗号鍵の分量を共有することで、保有するブロック暗号鍵に差異がある場合であっても、暗号方式の切り替えを行うことができる。
【０１９６】
実施の形態１１．
実施の形態５では、ブロック暗号鍵が残り１つとなった時点でブロック暗号による暗号化を行う場合には、現在のブロック暗号鍵をハッシュ関数などのランダム化によって更新することについて説明した。実施の形態５においては、通信エラーなどにより、ブロック暗号鍵の更新回数が同期しなくなった場合に暗号通信が行えなくなる。
そこで、実施の形態１１では、暗号通信を行う前に端末装置間で互いの保有しているブロック暗号鍵の更新回数を共有し、互いの保有しているブロック暗号鍵の更新回数を同期することについて説明する。
【０１９７】
まず、通信開始時点で受信側端末装置のバーナム暗号鍵が不足しており、バーナム暗号による暗号通信が開始できない時に、ブロック暗号による暗号通信を開始する場合の動作概要について説明する。
図４９は、実施の形態１１における図２８の通信処理の流れを示すフローチャートである。図４９に示す処理では、実施の形態５における図２９の処理に加えて、事前にブロック暗号鍵の更新回数を端末装置間で共有する処理が行われる。
【０１９８】
端末装置Ａ１０２は、保有しているバーナム暗号鍵の量を確認し、バーナム暗号鍵が不足していることを把握する（Ｓ１９０１）。なお、バーナム暗号で暗号通信を行うことができるデータ量が、１度に暗号化する単位データ量未満である場合に、バーナム暗号鍵が不足していると判定する。すると、端末装置Ａ１０２は、保有しているブロック暗号鍵の更新回数を確認する（Ｓ１９０２）。そして、端末装置Ａ１０２は、ブロック暗号通信要求メッセージ２８０１とともに、ブロック暗号鍵の更新回数を端末装置Ｂ１０３へ送信する（Ｓ１９０３）。
端末装置Ｂ１０３は、端末装置Ａ１０２からブロック暗号通信要求メッセージ２８０１と、ブロック暗号鍵の更新回数とを受信する（Ｓ１９０４）。すると、端末装置Ｂ１０３は、保有しているブロック暗号鍵の更新回数を確認する（Ｓ１９０５）。端末装置Ｂ１０３は、暗号通信で用いるブロック暗号鍵の更新回数を確定する（Ｓ１９０６）。例えば、端末装置Ｂ１０３は、ブロック暗号鍵について、端末装置Ａ１０２における更新回数と端末装置Ｂ１０３における更新回数とのうち、多いほうの更新回数を、暗号通信で利用するブロック暗号鍵の更新回数として確定する。そして、端末装置Ｂ１０３は、ブロック暗号通信了承メッセージ２８０４とともに、確定したブロック暗号鍵の更新回数を端末装置Ａ１０２へ送信する（Ｓ１９０７）。
また、端末装置Ｂ１０３は、（Ｓ１９０６）で確定したブロック暗号鍵について、確定した更新回数になっていない場合、確定した更新回数になるまで更新処理を繰り返し実行する（Ｓ１９０８）。これにより、ブロック暗号鍵が暗号通信で使用する状態になる。なお、確定した更新回数になっていない場合とは、確定した更新回数よりも、更新回数が少ない場合という意味である。
【０１９９】
端末装置Ａ１０２は、ブロック暗号切替了承メッセージ２８０４と、確定したブロック暗号鍵の更新回数とを受信する（Ｓ１９０９）。端末装置Ａ１０２は、ブロック暗号鍵が受信した更新回数になっていない場合、受信した更新回数になるまで更新処理を繰り返し実行する（Ｓ１９１０）。これにより、ブロック暗号鍵が暗号通信で使用する状態になる。なお、受信した更新回数になっていない場合とは、受信した更新回数よりも、更新回数が少ない場合という意味である。端末装置Ａ１０２は、暗号通信で使用する状態のブロック暗号鍵で通信データを暗号化して、暗号化通信データ２８０４を生成する（Ｓ１９１１）。そして、端末装置Ａ１０２は、暗号化通信データ２８０４を端末装置Ｂ１０３へ送信する（Ｓ１９１２）。
端末装置Ｂ１０３は、暗号化通信データ２８０４を受信する（Ｓ１９１３）。すると、端末装置Ｂ１０３は、暗号通信で使用する状態のブロック暗号鍵で暗号化通信データ２８０４を復号し、通信データを得る（Ｓ１９１４）。
【０２００】
Ｓ１９１５からＳ１９２２までの処理は、図２９に示すＳ９１０からＳ９１７までの処理と同様であるため、説明を省略する。
【０２０１】
次に、送信側の端末装置である端末装置Ａ１０２の処理について詳しく説明する。
図５０は、実施の形態１１における端末装置８０１の送信制御部８０３の処理の流れを示すフローチャートである。
【０２０２】
Ｓ２００１からＳ２００８までの処理は、図９に示すＳ３０１からＳ３０８までの処理と同様であるため、説明を省略する。
【０２０３】
送信制御部８０３は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数とを確認する（Ｓ２００９）。送信制御部８０３は、通信インターフェイス８０２を介して、ブロック暗号切替要求メッセージとともに、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数を端末装置Ｂ１０３へ送信する（Ｓ２０１０）。そして、送信制御部８０３は、端末装置Ｂ１０３から、ブロック暗号切替了承メッセージとともに、暗号通信で利用するブロック暗号鍵の更新回数を受信し（Ｓ２０１１）、Ｓ２０１５に処理を進める。
【０２０４】
Ｓ２０１２からＳ２０１４の処理について説明する。
送信制御部８０３は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数とを確認する（Ｓ２０１２）。送信制御部８０３は、通信インターフェイス８０２を介して、ブロック暗号通信要求メッセージとともに、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数を端末装置Ｂ１０３へ送信する（Ｓ２０１３）。そして、送信制御部８０３は、端末装置Ｂ１０３から、ブロック暗号通信了承メッセージとともに、暗号通信で利用するブロック暗号鍵の更新回数を受信し（Ｓ２０１４）、Ｓ２０１５に処理を進める。
【０２０５】
Ｓ２０１５以降の処理について説明する。
送信制御部８０３は、ブロック暗号鍵について、Ｓ２０１１やＳ２０１４で受信した更新回数になっていない場合、受信した更新回数になるまで更新処理を繰り返し実行する（Ｓ２０１５）。これにより、ブロック暗号鍵が暗号通信で使用する状態になる。送信制御部８０３は、暗号通信で使用する状態のブロック暗号鍵で、ブロック暗号化部８０８に通信データのうち単位データ量分のデータを暗号化させ、暗号化通信データを取得する（Ｓ２０１６）。そして、送信制御部８０３は、暗号化通信データを端末装置Ｂ１０３へ送信する（Ｓ２０１７）。
続いて、送信制御部８０３は、未送信の通信データの有無を確認する（Ｓ２０１８）。未送信の通信データがなければ（Ｓ２０１８でＮＯ）、送信制御部８０３は処理を終了する。一方、未送信の通信データがあれば（Ｓ２０１８でＹＥＳ）、送信制御部８０３はＳ２０１６へ処理を戻す。
【０２０６】
次に、受信側の端末装置である端末装置Ｂ１０３の処理について詳しく説明する。
図５１は、実施の形態１１における端末装置８０１の受信制御部８０４の処理の流れを示すフローチャートである。
【０２０７】
Ｓ２１０１からＳ２１０７までの処理は、図１０に示すＳ４０１からＳ４０７までの処理と同様であるため、説明を省略する。
【０２０８】
Ｓ２１０８〜２１１１の処理について説明する。
受信制御部８０４は、端末装置Ａ１０２からブロック暗号切替要求メッセージと、端末装置Ａ１０２が保有するブロック暗号鍵の更新回数とを受信する（Ｓ２１０８）。受信制御部８０４は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数を確認する（Ｓ２１０９）。受信制御部８０４は、（Ｓ２１０８）で受信した端末装置Ａ１０２が保有するブロック暗号鍵の更新回数と、（Ｓ２１０９）で確認した端末装置Ｂ１０３が保有するブロック暗号鍵の更新回数とから暗号通信で用いるブロック暗号鍵及びその更新回数を確定する（Ｓ２１１０）。そして、受信制御部８０４は、通信インターフェイス８０２を介して、ブロック暗号切替了承メッセージとともに、確定したブロック暗号鍵の更新回数を端末装置Ａ１０２へ送信し（Ｓ２１１１）、Ｓ２１１５に処理を進める。
【０２０９】
Ｓ２１１２からＳ２１１４の処理について説明する。
受信制御部８０４は、ブロック暗号鍵記憶部８１４が記憶したブロック暗号鍵の更新回数を確認する（Ｓ２１１２）。受信制御部８０４は、（Ｓ２１０２）で受信した端末装置Ａ１０２が保有するブロック暗号鍵の更新回数と、（Ｓ２１１２）で確認した端末装置Ｂ１０３が保有するブロック暗号鍵の更新回数とから暗号通信で用いるブロック暗号鍵及びその更新回数を確定する（Ｓ２１１３）。そして、受信制御部８０４は、通信インターフェイス８０２を介して、ブロック暗号通信了承メッセージとともに、確定したブロック暗号鍵の更新回数を端末装置Ａ１０２へ送信し（Ｓ２１１４）、Ｓ２１１５に処理を進める。
【０２１０】
Ｓ２１１５以降の処理について説明する。
受信制御部８０４は、ブロック暗号鍵について、Ｓ２１１０やＳ２１１３で確定した更新回数になっていない場合、確定した更新回数になるまで更新処理を繰り返し実行する（Ｓ２１１５）。これにより、ブロック暗号鍵が暗号通信で使用する状態になる。受信制御部８０４は、端末装置Ａ１０２から暗号化通信データを受信する（Ｓ２１１６）。受信制御部８０４は、受信した暗号化通信データをブロック復号部８０９に送信して、暗号通信で使用する状態のブロック暗号鍵で復号させ通信データを生成させる（Ｓ２１１７）。生成された通信データは、受信データ記憶部８１２に記憶される。
続いて、受信制御部８０４は、未受信の通信データの有無を確認する（Ｓ２１１８）。未受信の通信データがなければ（Ｓ２１１８でＮＯ）、受信制御部８０４は処理を終了する。一方、未受信の通信データがあれば（Ｓ２１１８でＹＥＳ）、受信制御部８０４はＳ２１１６へ処理を戻す。
【０２１１】
以上のように、実施の形態１１に係る暗号化システム１では、端末装置間で互いの保有しているブロック暗号鍵の更新回数を共有することで、保有するブロック暗号鍵の更新回数に差異がある場合であっても、暗号方式の切り替えを行うことができる。
【０２１２】
実施の形態１２．
通常、バーナム暗号鍵及びブロック暗号鍵は未使用時には不揮発性メモリなどに保存されている。実施の形態１２では、バーナム暗号鍵及びブロック暗号鍵を、使用する直前にＲＡＭなどの揮発性メモリにロードし、不揮発性メモリからは消去する。これにより、不正な電源遮断などによって、すでに使用したバーナム暗号鍵及びブロック暗号鍵を取り出されることを防止する。
【０２１３】
通常、バーナム暗号鍵及びブロック暗号鍵（以下、この実施の形態においては暗号鍵と呼ぶ）は、装置の電源が遮断された場合でも、装置内で保持されている必要がある。そのため、未使用の暗号鍵はＨＤＤ等の不揮発性の記憶装置に保存されることになる。
【０２１４】
実施の形態１２においては、暗号化通信データを不正者により復号されることを防ぐため、暗号鍵による暗号化もしくは復号が完了した後、暗号化や復号に使用した暗号鍵を消去し、再度同じ装置内で同じ暗号鍵を用いないこととする。
ところが、暗号化もしくは復号処理が開始されてから完了する前に、装置の電源を遮断すると、暗号鍵の消去処理が正常に行われない場合がある。特に、この場合、暗号化通信データが通信路を流れており、かつ、装置内に暗号鍵が残る状態が発生し得る。この状態では、装置から暗号鍵を不正に抜き取られ、暗号化通信データを復号されてしまう危険性がある。
【０２１５】
図５２は、実施の形態１２における端末装置の動作の説明図である。
図５２に示すように、端末装置は、未使用時にはＨＤＤ等の不揮発性の記憶装置に保存している暗号鍵を、使用する直前に揮発性メモリにロードし、ＨＤＤや不揮発性メモリにある暗号鍵を消去する。これにより、装置の電源を遮断されたとしても装置内には暗号鍵が残留することがないため、不正な抜き取りによって暗号鍵が露見することがなく、暗号化通信データを復号される危険性がない。
【０２１６】
例えば、バーナム暗号鍵記憶部８１３やブロック暗号鍵記憶部８１４は、ＨＤＤ等の不揮発性の記憶装置である。
送信制御部８０３や受信制御部８０４から暗号化や復号の指示を受けたバーナム暗号化部８０６、バーナム復号部８０７、ブロック暗号化部８０８、ブロック復号部８０９は、バーナム暗号鍵記憶部８１３やブロック暗号鍵記憶部８１４から暗号鍵を取得する。すると、バーナム暗号化部８０６、バーナム復号部８０７、ブロック暗号化部８０８、ブロック復号部８０９は、取得した暗号鍵をＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶装置に記憶するとともに、取得した暗号鍵をバーナム暗号鍵記憶部８１３やブロック暗号鍵記憶部８１４から削除する。そして、バーナム暗号化部８０６、バーナム復号部８０７、ブロック暗号化部８０８、ブロック復号部８０９は、揮発性の記憶装置に記憶した暗号鍵で暗号化や復号を行う。
【０２１７】
実施の形態１３．
実施の形態１３では、バーナム暗号鍵及びブロック暗号鍵の残量や、現在の暗号通信に使われている暗号方式や、暗号方式が切り替わる時を通知することについて説明する。これにより、端末装置の利用者が現在の暗号通信及び暗号鍵の状況を直感的に把握することを可能にする。
【０２１８】
通常、バーナム暗号鍵及びブロック暗号鍵（以下、この実施の形態においては暗号鍵と呼ぶ）は、端末装置内で保有されているため、その情報を利用者が把握することは容易ではない。また、暗号通信における暗号化処理、復号処理についても端末装置内で行われるものである。そのため、例えば、バーナム暗号鍵の不足によって、バーナム暗号による暗号通信からブロック暗号による暗号通信に切り替わった時に、暗号方式の切り替えを利用者が把握することは容易ではない。
暗号方式の切り替えは、暗号通信の安全性が変化することを意味している。また、暗号鍵の残量は暗号方式の切り替えが起こるまでの期間を示す指標となるものである。そのため、これらの情報を利用者が把握できることは重要である。そこで、実施の形態１３では、暗号通信中に、現在の暗号鍵の残量と暗号方式とを画面表示、音及び端末の振動によって、利用者に通知する。
【０２１９】
まず、実施の形態１３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能について説明する。
図５３は、実施の形態１３における端末装置Ａ１０２及び端末装置Ｂ１０３の機能構成を説明する機能ブロック図である。図５３に示す端末装置は、図８に示す端末装置が備える機能に加え、暗号鍵残量通知制御部８２０（残量通知部）、暗号方式通知制御部８２１（残量通知部）、画面表示制御部８２２、音声出力制御部８２３、振動制御部８２４、ディスプレイ８２５、スピーカー８２６及び振動装置８２７を備える。
【０２２０】
暗号鍵残量通知制御部８２０は、バーナム暗号鍵記憶部８１３からバーナム暗号鍵の残量情報を取得し、ブロック暗号鍵記憶部８１４からブロック暗号鍵の残量情報を取得する。そして、暗号鍵残量通知制御部８２０は、取得したバーナム暗号鍵の残量情報とブロック暗号鍵の残量情報とを、利用者に暗号鍵の残量を通知するための通知情報に処理装置により変換して、画面表示制御部８２２、音声出力制御部８２３、振動制御部８２４に送る。
【０２２１】
暗号方式通知制御部８２１は、送信制御部８０３、受信制御部８０４から、現在使用している暗号方式を示す情報を取得する。そして、暗号方式通知制御部８２１は、取得した暗号方式を示す情報を、利用者に暗号方式を通知するための情報に変換して、画面表示制御部８２２、音声出力制御部８２３、振動制御部８２４に送る。また、暗号方式通知制御部８２１は、暗号方式が切り替わった場合には、暗号方式が切り替わったことを示す情報を画面表示制御部８２２、音声出力制御部８２３、振動制御部８２４に送る。
【０２２２】
画面表示制御部８２２は、暗号鍵残量通知制御部８２０及び暗号方式通知制御部８２１から受け取った情報より、ディスプレイ８２５に対して、画面表示を指示する。
音声出力制御部８２３は、暗号鍵残量通知制御部８２０及び暗号方式通知制御部８２１から受け取った情報より、スピーカー８２６に対して、音声出力を指示する。
振動制御部８２４は、暗号鍵残量通知制御部８２０及び暗号方式通知制御部８２１から受け取った情報より、振動装置８２７に対して、端末を振動させるように指示する。
ディスプレイ８２５は、液晶ディスプレイなどの画面に絵や文字を表示することができる機器である。
スピーカー８２６は、音声出力が可能な機器である。
振動装置８２７は、端末を振動させることができる装置である。
【０２２３】
例えば、暗号鍵残量通知制御部８２０は、バーナム暗号鍵の残量やブロック暗号鍵の残量を、常時、数値等によりディスプレイ８２５に表示させておく。そして、暗号鍵残量通知制御部８２０は、バーナム暗号鍵が事前に決められた所定の量より少なくなり、実施の形態６で説明した増大処理が実行された場合、そのことを示す情報をディスプレイ８２５に表示するとともに、スピーカー８２６から音を出力させ、振動装置８２７を振動させる。また、暗号方式通知制御部８２１は、バーナム暗号からブロック暗号に暗号方式が切り替えられた場合、そのことを示す情報をディスプレイ８２５に表示するとともに、スピーカー８２６から音を出力させ、振動装置８２７を振動させる。さらに、暗号鍵残量通知制御部８２０は、最後の１つのブロック暗号鍵が使用され、実施の形態５で説明したブロック暗号鍵のランダム化が行われた場合、そのことを示す情報をディスプレイ８２５に表示するとともに、スピーカー８２６から音を出力させ、振動装置８２７を振動させる。
つまり、暗号鍵残量通知制御部８２０と暗号方式通知制御部８２１とは、暗号鍵の変換や暗号方式の切り替えが行われ、暗号通信の安全性が低下する度に、そのことを利用者へ通知する。
例えば、暗号鍵の変換や暗号方式の切り替えが行われる度に、使用される暗号鍵や暗号方式に応じて、ディスプレイ８２５に表示させる情報の色や表示させる文字、記号、図形や、音の種類、音の長さや、振動の種類、振動の間隔を変化させてもよい。
【０２２４】
なお、暗号鍵残量通知制御部８２０と暗号方式通知制御部８２１とは、暗号鍵の変換や暗号方式の切り替えが行われ、暗号通信の安全性が低下する前に、もうすぐ暗号鍵の変換や暗号方式の切り替えが行われることを利用者へ通知してもよい。これにより、例えば、利用者にバーナム暗号鍵を鍵共有装置から取得するように促すことができる。
【０２２５】
実施の形態１４．
実施の形態１４では、上述した実施の形態における暗号通信の実現方法について説明する。
【０２２６】
実装の形態１〜１３における、暗号通信を行う前までの通信処理は、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）で実現できる。
具体的には、ＳＩＰのシーケンスに従い、バーナム暗号通信要求メッセージ、ブロック暗号通信要求メッセージをＩＮＶＩＴＥメッセージで行い、暗号鍵の情報などはＳＤＰ（Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）で記述する。バーナム暗号通信了承メッセージ、ブロック暗号通信了承メッセージは２００  ＯＫを示す応答メッセージで行い、ＩＮＶＩＴＥメッセージと同様に暗号鍵の情報などはＳＤＰで記述する。一方、バーナム暗号通信拒否メッセージは、４８８  Ｎｏｔ  Ａｃｃｅｐｔａｂｌｅを示す応答メッセージで行う。
また、暗号通信及び暗号通信中の暗号方式の切り替えなどはＳＲＴＰ（Ｓｅｃｕｒｅ  Ｒｅａｌ−Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）で実現できる。
つまり、ＳＩＰに従ったネゴシエーションにより、開始する暗号方式と暗号鍵を決定し、ＳＲＴＰに従った通信により、暗号通信と暗号方式の切り替えを実現することができる。
【０２２７】
以上の実施の形態における端末装置８０１のハードウェア構成について説明する。
図５４は、端末装置８０１のハードウェア構成の一例を示す図である。
図５４に示すように、端末装置８０１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ディスプレイ８２５、キーボード９０２（Ｋ／Ｂ）、スピーカー８２６、振動装置８２７、通信ボード９１５（通信インターフェイス８０２の一例）、磁気ディスク装置９２０（ＨＤＤ，固定ディスク装置）と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【０２２８】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【０２２９】
プログラム群９２３には、上記の説明において「送信制御部８０３」、「受信制御部８０４」、「バーナム暗号鍵管理部８０５」、「バーナム暗号化部８０６」、「バーナム復号部８０７」、「ブロック暗号化部８０８」、「ブロック復号部８０９」、「バーナム暗号鍵取得部８１０」、「ブロック暗号鍵取得部８１５」、「暗号鍵変換部８１６」、「ブロック暗号鍵更新部８１７」、「ハッシュ関数処理部８１８」、「バーナム暗号鍵増大部８１９」、「暗号鍵残量通知制御部８２０」、「暗号方式通知制御部８２１」、「画面表示制御部８２２」、「音声出力制御部８２３」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「送信データ記憶部８１１」、「受信データ記憶部８１２」、「バーナム暗号鍵記憶部８１３」、「ブロック暗号鍵記憶部８１４」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【０２３０】
なお、鍵共有装置１１０１も、端末装置８０１と同様に、プログラムを実行するＣＰＵ９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５（通信インターフェイス１１０２の一例）、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
【０２３１】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【０２３２】
プログラム群９２３には、上記の説明において「バーナム暗号鍵共有部１１０３」、「バーナム暗号鍵転送部１１０４」、「ブロック暗号鍵共有部１１０６」、「ブロック暗号鍵転送部１１０７」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。
ファイル群９２４には、上記の説明において「バーナム暗号鍵記憶部１１０５」、「ブロック暗号鍵記憶部１１０８」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。
【０２３３】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組合せ、さらには、ファームウェアとの組合せで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【０２３４】
１０１，１０６  ネットワーク、１０２  端末装置Ａ、１０３  端末装置Ｂ、１０４  鍵共有装置Ｃ、１０５  鍵共有装置Ｄ、１０７，１０８  通信ケーブル、６０４  暗号化通信データ、８０１  端末装置、８０２  通信インターフェイス、８０３  送信制御部、８０４  受信制御部、８０５  バーナム暗号鍵管理部、８０６  バーナム暗号化部、８０７  バーナム復号部、８０８  ブロック暗号化部、８０９  ブロック復号部、８１０  バーナム暗号鍵取得部、８１１  送信データ記憶部、８１２  受信データ記憶部、８１３  バーナム暗号鍵記憶部、８１４  ブロック暗号鍵記憶部、８１５  ブロック暗号鍵取得部、８１６  暗号鍵変換部、８１７  ブロック暗号鍵更新部、８１８  ハッシュ関数処理部、８１９  バーナム暗号鍵増大部、８２０  暗号鍵残量通知制御部、８２１  暗号方式通知制御部、８２２  画面表示制御部、８２３  音声出力制御部、８２４  振動制御部、８２５  ディスプレイ、８２６  スピーカー、８２７  振動装置、１１０１  鍵共有装置、１１０２  通信インターフェイス、１１０３  バーナム暗号鍵共有部、１１０４  バーナム暗号鍵転送部、１１０５  バーナム暗号鍵記憶部、１１０６  ブロック暗号鍵共有部、１１０７  ブロック暗号鍵転送部、１１０８  ブロック暗号鍵記憶部。
【図１】
2012025988.tif 000003
【図２】
2012025988.tif 000004
【図３】
2012025988.tif 000005
【図４】
2012025988.tif 000006
【図５】
2012025988.tif 000007
【図６】
2012025988.tif 000008
【図７】
2012025988.tif 000009
【図８】
2012025988.tif 000010
【図９】
2012025988.tif 000011
【図１０】
2012025988.tif 000012
【図１１】
2012025988.tif 000013
【図１２】
2012025988.tif 000014
【図１３】
2012025988.tif 000015
【図１４】
2012025988.tif 000016
【図１５】
2012025988.tif 000017
【図１６】
2012025988.tif 000018
【図１７】
2012025988.tif 000019
【図１８】
2012025988.tif 000020
【図１９】
2012025988.tif 000021
【図２０】
2012025988.tif 000022
【図２１】
2012025988.tif 000023
【図２２】
2012025988.tif 000024
【図２３】
2012025988.tif 000025
【図２４】
2012025988.tif 000026
【図２５】
2012025988.tif 000027
【図２６】
2012025988.tif 000028
【図２７】
2012025988.tif 000029
【図２８】
2012025988.tif 000030
【図２９】
2012025988.tif 000031
【図３０】
2012025988.tif 000032
【図３１】
2012025988.tif 000033
【図３２】
2012025988.tif 000034
【図３３】
2012025988.tif 000035
【図３４】
2012025988.tif 000036
【図３５】
2012025988.tif 000037
【図３６】
2012025988.tif 000038
【図３７】
2012025988.tif 000039
【図３８】
2012025988.tif 000040
【図３９】
2012025988.tif 000041
【図４０】
2012025988.tif 000042
【図４１】
2012025988.tif 000043
【図４２】
2012025988.tif 000044
【図４３】
2012025988.tif 000045
【図４４】
2012025988.tif 000046
【図４５】
2012025988.tif 000047
【図４６】
2012025988.tif 000048
【図４７】
2012025988.tif 000049
【図４８】
2012025988.tif 000050
【図４９】
2012025988.tif 000051
【図５０】
2012025988.tif 000052
【図５１】
2012025988.tif 000053
【図５２】
2012025988.tif 000054
【図５３】
2012025988.tif 000055
【図５４】
2012025988.tif 000056
【手続補正書】
【提出日】平成25年7月10日(2013.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド暗号鍵を記憶するワンタイムパッド暗号鍵記憶部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化部と、
ブロック暗号で使用するブロック暗号鍵を記憶するブロック暗号鍵記憶部と、
前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が所定の増大ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、外部からワンタイムパッド暗号鍵を受信することなく前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵のビット数を増大させるワンタイムパッド暗号鍵増大部と、
通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御する暗号化制御部であって、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の残りビット数が所定のビット数より少なく、かつ、前記ワンタイムパッド暗号鍵増大部がワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上である場合、前記ブロック暗号化部に暗号化させる暗号化制御部と
を備えることを特徴とする暗号化装置。
【請求項２】
前記暗号化制御部は、通信データを所定の単位データ毎に順次前記ワンタイムパッド暗号化部に暗号化させている場合に、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵のビット数が次に暗号化させる単位データのビット数より少なくなり、かつ、前記ワンタイムパッド暗号鍵増大部がワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上になると、通信データを前記ブロック暗号化部に暗号化させるように切り替える
ことを特徴とする請求項１に記載の暗号化装置。
【請求項３】
前記暗号化制御部は、通信データを前記ブロック暗号化部に暗号化させている場合に、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が前記単位データのビット数よりも多い所定の第１ビット数以上になると、通信データを前記ワンタイムパッド暗号化部に暗号化させるように切り替える
ことを特徴とする請求項２に記載の暗号化装置。
【請求項４】
前記暗号化制御部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が通信開始時に前記単位データ量以上である場合、通信データを前記ワンタイムパッド暗号化部に暗号化させ、通信開始時に前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が前記単位データ量よりも少なく、かつ、前記ワンタイムパッド暗号鍵増大部がワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上である場合、通信データを前記ブロック暗号化部に暗号化させる
ことを特徴とする請求項２又は３に記載の暗号化装置。
【請求項５】
前記暗号化制御部は、さらに、通信データの送信先の端末が記憶したワンタイムパッド暗号鍵の残りビット数に応じて、通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御する
ことを特徴とする請求項１から４までのいずれかに記載の暗号化装置。
【請求項６】
前記ワンタイムパッド暗号鍵増大部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵に対して、所定のビット毎に乱数値を挿入する方法により、ワンタイムパッド暗号鍵のビット数を増大させる
ことを特徴とする請求項１から４までのいずれかに記載の暗号化装置。
【請求項７】
前記ワンタイムパッド暗号鍵増大部は、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵を入力として、所定の乱数発生関数を計算する方法により発生した乱数値を新たなワンタイムパッド暗号鍵とする
ことを特徴とする請求項１から４までのいずれかに記載の暗号化装置。
【請求項８】
前記暗号化装置は、さらに、
通信データの送信先の端末と予め共有した方法により、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵からブロック暗号鍵を生成する暗号鍵変換部
を備え、
前記ブロック暗号鍵記憶部は、前記暗号鍵変換部が生成したブロック暗号鍵を記憶する
ことを特徴とする請求項１から７までのいずれかに記載の暗号化装置。
【請求項９】
前記ブロック暗号鍵記憶部は、複数のブロック暗号鍵を記憶し、
前記暗号化装置は、さらに、
前記ブロック暗号化部が暗号化に用いた使用済のブロック暗号鍵を前記ブロック暗号鍵記憶部から削除するブロック暗号鍵更新部
を備えることを特徴とする請求項１から８までのいずれかに記載の暗号化装置。
【請求項１０】
前記暗号化装置は、さらに、
通信データの送信先の端末と予め共有した方法により、前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵から新たなブロック暗号鍵を生成するブロック暗号鍵生成部
を備えることを特徴とする請求項１から９までのいずれかに記載の暗号化装置。
【請求項１１】
前記暗号化制御部は、前記ブロック暗号化部に暗号化させる場合に、通信データの送信先端末との間で、どのブロック暗号鍵を使用するかを確定し、確定したブロック暗号鍵を用いて前記ブロック暗号化部に暗号化させる
ことを特徴とする請求項９又は１０に記載の暗号化装置。
【請求項１２】
前記ワンタイムパッド暗号鍵記憶部は、ワンタイムパッド暗号鍵を記憶する不揮発性の記憶装置であり、
前記ワンタイムパッド暗号化部は、ワンタイムパッド暗号鍵を前記ワンタイムパッド暗号鍵記憶部から揮発性の記憶装置へコピーするとともに、コピー元のワンタイムパッド暗号鍵を前記ワンタイムパッド暗号鍵記憶部から削除した上で、前記揮発性の記憶装置にコピーしたワンタイムパッド暗号鍵を用いて通信データを暗号化する
ことを特徴とする請求項１から１１までのいずれかに記載の暗号化装置。
【請求項１３】
前記暗号化装置は、さらに、
前記暗号化制御部が用いる暗号化方式を切り替えた場合に、ユーザへ通知する通知部
を備えることを特徴とする請求項１から１２までのいずれかに記載の暗号化装置。
【請求項１４】
暗号化装置と復号装置とを備える暗号化システムであり、
前記暗号化装置は、
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド暗号鍵を記憶するワンタイムパッド暗号鍵記憶部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化部と、
ブロック暗号で使用するブロック暗号鍵を記憶するブロック暗号鍵記憶部と、
前記ブロック暗号鍵記憶部が記憶したブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化部と、
前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵が所定の増大ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、外部からワンタイムパッド暗号鍵を受信することなく前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵のビット数を増大させるワンタイムパッド暗号鍵増大部と、
通信データを前記ワンタイムパッド暗号化部に暗号化させるか、前記ブロック暗号化部に暗号化させるかを制御するとともに、前記ワンタイムパッド暗号化部と前記ブロック暗号化部とのどちらに暗号化させるかを示すメッセージを前記復号装置へ通知する暗号化制御部であって、前記ワンタイムパッド暗号鍵記憶部が記憶したワンタイムパッド暗号鍵の残りビット数が所定のビット数より少なく、かつ、前記ワンタイムパッド暗号鍵増大部がワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上である場合、前記ブロック暗号化部に暗号化させる暗号化制御部と
を備え、
前記復号装置は、
ワンタイムパッド暗号で使用する、複数ビットからなるワンタイムパッド復号鍵を記憶するワンタイムパッド復号鍵記憶部と、
前記ワンタイムパッド復号鍵記憶部が記憶したワンタイムパッド復号鍵の一部を順に用いて、暗号化データをワンタイムパッド暗号により復号して通信データを生成するワンタイムパッド復号部と、
ブロック暗号で使用するブロック復号鍵を記憶するブロック復号鍵記憶部と、
前記ブロック復号鍵記憶部が記憶したブロック復号鍵を用いて、暗号化データをブロック暗号により復号して通信データを生成するブロック復号部と、
前記ワンタイムパッド復号鍵記憶部が記憶したワンタイムパッド復号鍵が所定の増大ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、外部からワンタイムパッド復号鍵を受信することなく前記ワンタイムパッド復号鍵記憶部が記憶したワンタイムパッド復号鍵のビット数を増大させるワンタイムパッド復号鍵増大部と、
前記暗号化制御部から通知されたメッセージに応じて、暗号化データを前記ワンタイムパッド復号部に復号させるか、前記ブロック復号部に復号させるかを制御する復号制御部と
を備えることを特徴とする暗号化システム。
【請求項１５】
処理装置が、記憶装置に記憶された複数ビットからなるワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化工程と、
処理装置が、記憶装置に記憶されたブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化工程と、
処理装置が、記憶装置に記憶されたワンタイムパッド暗号鍵が所定の増大ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、外部からワンタイムパッド暗号鍵を受信することなく記憶装置に記憶されたワンタイムパッド暗号鍵のビット数を増大させるワンタイムパッド暗号鍵増大工程と、
処理装置が、通信データを前記ワンタイムパッド暗号化工程でワンタイムパッド暗号により暗号化させるか、前記ブロック暗号化工程でブロック暗号により暗号化させるかを制御する暗号化制御工程であって、記憶装置に記憶されたワンタイムパッド暗号鍵の残りビット数が所定のビット数より少なく、かつ、前記ワンタイムパッド暗号鍵増大工程でワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上である場合、前記ブロック暗号化工程でブロック暗号により暗号化させる暗号化制御工程と
を備えることを特徴とする暗号化方法。
【請求項１６】
記憶装置に記憶された複数ビットからなるワンタイムパッド暗号鍵の一部を順に用いて、通信データをワンタイムパッド暗号により暗号化して暗号化データを生成するワンタイムパッド暗号化処理と、
記憶装置に記憶されたブロック暗号鍵を用いて、通信データをブロック暗号により暗号化して暗号化データを生成するブロック暗号化処理と、
記憶装置に記憶されたワンタイムパッド暗号鍵が所定の増大ビット数よりも少なくなった場合に、通信データの送信先の端末と予め共有した方法により、外部からワンタイムパッド暗号鍵を受信することなく記憶装置に記憶されたワンタイムパッド暗号鍵のビット数を増大させるワンタイムパッド暗号鍵増大処理と、
通信データを前記ワンタイムパッド暗号化処理でワンタイムパッド暗号により暗号化させるか、前記ブロック暗号化処理でブロック暗号により暗号化させるかを制御する暗号化制御処理であって、記憶装置に記憶されたワンタイムパッド暗号鍵の残りビット数が所定のビット数より少なく、かつ、前記ワンタイムパッド暗号鍵増大処理でワンタイムパッド暗号鍵のビット数を増大させる処理を実行した回数が所定の回数以上である場合、前記ブロック暗号化処理でブロック暗号により暗号化させる暗号化制御処理と
をコンピュータに実行させることを特徴とする暗号化プログラム。
【国際調査報告】
2012025988.tif 000057
2012025988.tif 000058