(実施例1)
本発明を具体的に説明する前に、まず概要を述べる。実施例1は、送信装置と受信装置で構成される通信システムに関する。通信システムでは、通信のセキュリティを確保するために暗号化されたデータが伝送されるので、送信装置には暗号化装置が含まれ、受信装置には復号装置が含まれる。暗号化および復号において使用される暗号鍵が漏洩すると通信のセキュリティが確保されなくなるので、暗号鍵の漏洩を防止するために、暗号鍵は固定されず変更される方が好ましい。その際、予め決められた場所や時間の条件で暗号鍵を切り替えることなく、暗号鍵の切り替えのタイミングを第三者に特定されにくくすることが必要とされる。
これに対応するために本実施例における復号装置は、暗号化装置に応答を出力したタイミングからタイマを開始し、所定の期間が満了したときの時刻を取得すると、当該時刻に対応した暗号鍵を設定する。一方、暗号化装置は、復号装置からの応答を入力したタイミングからタイマを開始し、所定の期間が満了したときの時刻を取得すると、当該時刻に対応した暗号鍵を設定する。暗号化装置と復号装置は、GPS(Global Positioning System)の時刻や電波時計の時刻を使用するので、両者において時刻は同期されている。
図1は、実施例1に係る通信システム100の構成を示す。通信システム100は、送信装置10、受信装置12を含む。また、送信装置10は、暗号化装置20、通信部22を含み、受信装置12は、復号装置30、通信部32を含む。暗号化装置20は、データに対して暗号化を実行し、通信部22は、暗号化装置20において暗号化されたデータを受信装置12に送信する。また、通信部32は、送信装置10からのデータであって、かつ暗号化されたデータを受信し、復号装置30は、通信部32において受信したデータを復号する。このような送信装置10と受信装置12とは、複数回のデータの送受信で構成される「通信」処理を実行する。暗号化されたデータは、送信装置10から受信装置12の方向に送信されるが、それ以外の情報は、受信装置12から送信装置10の方向に送信されることもある。以下の説明では、暗号化装置20と復号装置30に着目する。
図2は、暗号化装置20と復号装置30の構成を示す。暗号化装置20は、暗号化部40、出力部42、入力部44、IF部46、暗号鍵制御部48、記憶部50を含み、復号装置30は、復号部60、入力部62、出力部64、IF部66、暗号鍵制御部68、記憶部70を含む。ここでは、説明を明瞭にするために、暗号化装置20と復号装置30は、直接接続されているが、実際には図1のように通信部22、通信部32を介して接続されている。
通信システム100での通信が開始されると、暗号化装置20のIF部46は、初回のデータを入力する。IF部46は、初回のデータを暗号化部40に出力する。暗号化部40は、IF部46から入力した初回のデータを暗号化する。ここでは、一例として、共通鍵方式が使用されており、暗号化部40は、暗号鍵として、初回用の共通鍵K0でデータを暗号化する。共通鍵K0は、初回のデータ入力で毎回使用する暗号鍵であり、かつ予め定められた暗号鍵である。なお、「初回」のデータ入力か否かを復号装置30に知らせるために、暗号化部40は、「初回」のデータ入力であるか否かを示す情報をデータに含ませる。なお、「「初回」のデータ入力であるか否かを示す情報」は、暗号化されずに、「共通鍵K0で暗号化されたデータ」とは別フィールド(ヘッダ等)で、一緒に復号装置30に出力される。
あるいは、暗号化装置20と復号装置30が共通のルールに基づいて、「初回」のデータであるか否かを判定してもよい。例えば、暗号化装置20が前回データを送信してから所定時間経過後に新たなデータを送信する場合には、「初回」データの扱いとし、復号装置30が前回データを入力してから所定時間経過後に、新たなデータを入力する場合に、「初回」データ扱いとするルールを用いればよい。暗号化部40は、共通鍵K0で暗号化されたデータを出力部42に出力し、出力部42は、共通鍵K0で暗号化されたデータ(以下、「信号」という)を復号装置30に出力する。
復号装置30の入力部62は、暗号化装置20からの信号を入力する。前述のごとく、信号は、予め定められた暗号鍵である共通鍵K0により暗号化されている。入力部62は、入力した信号を復号部60に出力する。復号部60は、入力部62から入力した信号を復号する。その際、復号部60は、信号から、「初回」のデータ入力であるか否かを示す情報を抽出し、当該情報により「初回」のデータ入力であることを認識するので、暗号鍵として、初回用の共通鍵K0で信号を復号する。復号部60は、復号した信号をIF部66に出力するとともに、信号の入力を暗号鍵制御部68に通知する。IF部66は、復号された信号を出力する。暗号鍵制御部68は、復号部60からの通知を受けつけると、信号に対する応答(ACK)を生成して出力部64に出力するとともに、タイマを作動させる。出力部64は、応答を暗号化装置20に出力する。
暗号化装置20の入力部44は、復号装置30からの応答を入力する。入力部44は、応答の入力を暗号鍵制御部48に通知する。暗号鍵制御部48は、入力部44からの通知を受けつけると、タイマを作動させる。暗号化装置20の暗号鍵制御部48と、復号装置30の暗号鍵制御部68は、タイマの作動が開始されてから所定の期間が満了するまで、タイマを作動させる。ここで、所定の期間は、暗号鍵制御部48と暗号鍵制御部68において共通に設定されており、固定値である。暗号鍵制御部48と暗号鍵制御部68は、所定の期間が満了したときの時刻を取得する。時刻には、GPS(Global Positioning System)の時刻や電波時計の時刻が使用される。
暗号化装置20の記憶部50と、復号装置30の記憶部70は、時刻と暗号鍵との対応関係が示されたテーブルを記憶する。図3は、記憶部50、記憶部70に記憶されるテーブルのデータ構造を示す。テーブルは、時刻欄200、暗号鍵欄202を含む。時刻欄200には、例えば、「T1〜T2」のような時刻の範囲が示される。この時刻は日付を含んでいても含んでいなくてもよい。また、暗号鍵欄202には、時刻の範囲に対応した暗号鍵が示される。暗号鍵は、例えば、共通鍵K1、K2のように示される。なお、共通鍵がテーブルに100種類含まれている場合、時刻の日付・時間・分を整数値にして、それを100で割った余りが時刻の範囲として示されてもよい。ここで、時刻の範囲の単位を適宜調整し、送信装置10と受信装置12との間の通信における伝送遅延による影響を受けにくくすることが望ましい。例えば、秒単位を無視して分単位で時刻の範囲が示される。図2に戻る。
暗号鍵制御部48は、記憶部50に記憶したテーブルから時刻(所定の期間が満了したときの時刻)をもとにして暗号鍵を取得し、暗号鍵制御部68は、記憶部70に記憶したテーブルから時刻(所定の期間が満了したときの時刻)をもとにして暗号鍵を取得する。暗号鍵制御部48は、取得した暗号鍵を暗号化部40に設定させ、暗号鍵制御部68は、取得した暗号鍵を復号部60に設定させる。つまり、暗号鍵が切り替えられる。
暗号化装置20のIF部46は、入力部44が応答を入力してから所定の期間経過後に、データを入力する。IF部46は、データを暗号化部40に出力する。暗号化部40は、暗号鍵制御部48に設定された暗号鍵を使用して、データを暗号化する。暗号化部40は、暗号鍵で暗号化されたデータを出力部42に出力し、出力部42は、暗号鍵で暗号化されたデータ(以下、これもまた「データ」という)を復号装置30に出力する。
復号装置30の入力部62は、暗号化装置20からのデータを入力する。入力部62は、入力したデータを復号部60に出力する。復号部60は、出力部64が応答を出力してから所定の期間経過後に、暗号化されたデータを入力した場合、暗号鍵制御部68に設定された暗号鍵を使用して当該データを復号する。復号部60は、復号したデータをIF部66に出力し、IF部66は、復号されたデータを出力する。通信システム100における通信が継続する限り、切り替えられた暗号鍵を使用した暗号化および復号が実行される。一方、通信システム100における通信が終了すると、暗号鍵制御部48と暗号鍵制御部68は、タイマをリセットして、暗号鍵を共通鍵K0に戻す。
この構成は、ハードウェア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
以上の構成による暗号化装置20と復号装置30の動作を説明する。図4は、暗号化装置20と復号装置30による処理手順を示すシーケンス図である。暗号化装置20は、共通鍵K0で暗号化を実行する(S10)。暗号化装置20は信号を復号装置30に出力する(S12)。復号装置30は、共通鍵K0で復号を実行する(S14)。復号装置30は、応答を暗号化装置20に出力する(S16)。暗号化装置20はタイマを開始する(S18)とともに、復号装置30はタイマを開始する(S20)。暗号化装置20において所定の期間が経過し(S22)、復号装置30において所定の期間が経過する(S24)。暗号化装置20は、暗号鍵として共通鍵K1を取得し(S26)、復号装置30は、暗号鍵として共通鍵K1を取得する(S28)。暗号化装置20は、共通鍵K1で暗号化を実行する(S30)。暗号化装置20はデータを復号装置30に出力する(S32)。復号装置30は、共通鍵K1で復号を実行する(S34)。
図5は、復号装置30による復号手順を示すフローチャートである。入力部62は、信号あるいはデータを入力する(S50)。入力が初回である場合(S52のY)、復号部60は、暗号鍵として共通鍵K0を設定する(S54)。復号部60は、暗号鍵を使用して信号を復号する(S56)。出力部64は応答を出力する(S58)。暗号鍵制御部68はタイマを開始する(S60)。入力が初回でない場合(S52のN)、復号部60は、時刻もとに取得した暗号鍵を使用してデータを復号する(S62)。
図6は、復号装置30による切替手順を示すフローチャートである。所定の期間が経過していなければ(S100のN)、暗号鍵制御部68は待機する。所定の期間が経過すれば(S100のY)、暗号鍵制御部68は現在時刻を取得する(S102)。暗号鍵制御部68は現在時刻をもとに暗号鍵を切り替える(S104)。
本実施例によれば、応答を出力してから所定の期間を経過したときの時刻をもとに取得した暗号鍵を使用してデータを復号するので、暗号鍵の変更を意識せずに自動的に暗号鍵を変更できる。また、暗号鍵の変更を意識せずに自動的に暗号鍵が変更されるので、適切な暗号鍵を設定できる。また、応答を出力してから所定の期間を経過したときの時刻をもとに取得した暗号鍵を使用してデータを復号するので、暗号鍵の切り替えのタイミングを第三者に特定されにくくできる。また、暗号鍵の切り替えのタイミングが第三者に特定されにくくなるので、適切な暗号鍵を設定できる。また、初回の信号は、予め定められた暗号鍵によって暗号化されているので、処理を簡易にできる。また、時刻と暗号鍵との対応関係が示されたテーブルを記憶し、テーブルから時刻をもとにして暗号鍵を取得するので、処理を簡易にできる。また、所定の期間は固定値であるので、処理を簡易にできる。
また、応答を入力してから所定の期間を経過したときの時刻をもとに取得した暗号鍵を使用してデータを暗号化するので、暗号鍵の変更を意識せずに自動的に暗号鍵を変更できる。また、暗号鍵の変更を意識せずに自動的に暗号鍵が変更されるので、適切な暗号鍵を設定できる。また、応答を入力してから所定の期間を経過したときの時刻をもとに取得した暗号鍵を使用してデータを暗号化するので、暗号鍵の切り替えのタイミングを第三者に特定されにくくできる。また、暗号鍵の切り替えのタイミングが第三者に特定されにくくなるので、適切な暗号鍵を設定できる。
(実施例2)
次に、実施例2を説明する。実施例2は、実施例1と同様の通信システムに関し、送信装置には暗号化装置が含まれ、受信装置には復号装置が含まれる。ここでは、復号装置と暗号化装置との間の伝送遅延の影響をさらに低減することを目的とする。実施例2の復号装置は、タイマを作動させた時刻である開始時刻を暗号化装置に出力し、暗号化装置は、復号装置から入力した開始時刻と、自らのタイマの開始時刻との差異を考慮した時刻で暗号鍵を選択する。実施例2に係る通信システム100は図1と同様のタイプであり、暗号化装置20、復号装置30は図2と同様のタイプである。ここでは実施例1との差異を中心に説明する。
復号装置30の入力部62は、暗号化装置20からの信号を入力する。復号部60は、入力部62から入力した信号を初回用の共通鍵K0で復号する。復号部60は、復号した信号をIF部66に出力するとともに、信号の入力を暗号鍵制御部68に通知する。暗号鍵制御部68は、復号部60からの通知を受けつけると、信号に対する応答(ACK)を生成して出力部64に出力するとともに、タイマを作動させる。さらに、暗号鍵制御部68は、タイマを作動させた開始時刻、つまり所定の期間の起点となる開始時刻も出力部64に出力する。出力部64は、応答を暗号化装置20に出力するとともに、開始時刻も暗号化装置20に出力する。その際、開始時刻は共通鍵K0によって暗号化される。また、応答と開始時刻は、1つの信号に集約されてから出力されてもよいし、別々に出力されてもよい。ここで、別々に出力される場合は、基本的に、所定の期間内に出力する必要がある。
暗号化装置20の入力部44は、復号装置30からの応答と開始時刻を入力する。入力部44は、応答の入力を暗号鍵制御部48に通知する。暗号鍵制御部48は、入力部44からの通知を受けつけると、タイマを作動させる。一方、開始時刻は共通鍵K0によって復号されてから暗号鍵制御部48に入力される。この開始時刻は復号装置30におけるタイマの開始時刻に相当する。暗号鍵制御部48は、作動させたタイマの開始時刻と、復号装置30における開始時刻との差分により所定の期間を調節する。例えば、暗号化装置20のタイマの開始時刻と、復号装置30におけるタイマの開始時刻とを比べ、復号装置30のタイマの開始時刻が1秒早い場合、暗号鍵制御部48(暗号化装置20)は、所定の期間を通常より1秒短く設定する。暗号鍵制御部48は、タイマの作動が開始されてから、調節した所定の期間が満了するまで、タイマを作動させる。暗号鍵制御部48は、調節した所定の期間が満了したときの時刻を取得する。一方、復号装置30の暗号鍵制御部68は、実施例1と同様に、所定の期間が満了したときの時刻を取得する。これに続く、暗号化装置20と復号装置30の処理は実施例1と同様である。
以上の構成による暗号化装置20と復号装置30の動作を説明する。図7は、実施例2に係る暗号化装置20と復号装置30による処理手順を示すシーケンス図である。暗号化装置20は、共通鍵K0で暗号化を実行する(S150)。暗号化装置20は信号を復号装置30に出力する(S152)。復号装置30は、共通鍵K0で復号を実行する(S154)。復号装置30は、応答と開始時刻を暗号化装置20に出力する(S156)。暗号化装置20はタイマを開始する(S158)とともに、復号装置30はタイマを開始する(S160)。暗号化装置20は、所定の期間を調節する(S162)。復号装置30において所定の期間が経過し(S164)、暗号化装置20において所定の期間が経過する(S166)。暗号化装置20は、暗号鍵として共通鍵K1を取得し(S168)、復号装置30は、暗号鍵として共通鍵K1を取得する(S170)。暗号化装置20は、共通鍵K1で暗号化を実行する(S172)。暗号化装置20はデータを復号装置30に出力する(S174)。復号装置30は、共通鍵K1で復号を実行する(S176)。
これまでの説明において、暗号化装置20は、復号装置30からの応答を入力するとともに、復号装置30からのタイマの開始時刻も入力している。しかしながら、復号装置30からの応答を入力しても、復号装置30からのタイマの開始時刻は入力されなくてもよい。例えば、暗号化装置20が予め伝送遅延を測定しておき、伝送遅延をもとに所定の期間が調節されてもよい。以下では、そのための暗号化装置20の構成を説明する。図8は、実施例2に係る暗号化装置20の別の構成を示す。暗号化装置20は、図2の暗号化装置20に対して測定部52が含まれる。測定部52は、復号装置30における時刻が含まれた信号を入力させるための指示を出力部42経由で復号装置30に出力する。復号装置30は、暗号化装置20からの指示を入力した場合、出力時刻が含まれた信号を暗号化装置20に出力する。測定部52は、入力部44経由で復号装置30からの信号を入力する。その際、測定部52は、入力部44における信号の入力時刻も受けつける。測定部52は、信号に含まれた出力時刻と、入力部44から受けつけた入力時刻との差分により伝送遅延を測定する。このような伝送遅延の測定が複数回実行され、測定部52は、複数の測定結果を平均することによって伝送遅延を取得してもよい。測定部52は、伝送遅延を暗号鍵制御部48に出力する。暗号鍵制御部48は、測定部52において測定した伝送遅延をもとに、所定の期間を調節する。例えば、暗号化装置20と復号装置30との間の伝送遅延が1秒である場合、暗号鍵制御部48(暗号化装置20)は、所定の期間を通常より1秒短く設定する。このように設定すると、2つの装置でタイマの終点(タイマの終了時刻)を合せることができる。
本実施例によれば、所定の期間の起点となる開始時刻も暗号化装置に出力するので、2つの装置におけるタイマの終点を合わせることができる。また、タイマの終点を合わせるので、暗号鍵を取得するための時刻を合わせることができる。また、時刻を合わせるので、暗号鍵を一致させることができる。また、所定の期間の起点となる開始時刻も復号装置から入力するので、タイマの終点を合わせることができる。また、タイマの終点を合わせるので、暗号鍵を取得するための時刻を合わせることができる。また、時刻を合わせるので、暗号鍵を一致させることができる。また、復号装置との伝送遅延を測定し、所定の期間を調節するので、暗号鍵を取得するための時刻を復号装置に合わせることができる。
(実施例3)
次に、実施例3を説明する。実施例3は、これまでと同様の通信システムに関し、送信装置には暗号化装置が含まれ、受信装置には復号装置が含まれる。ここでは、復号装置が暗号化装置に通知を出力した時刻を取得して暗号鍵を選択するとともに、暗号化装置が復号装置からの通知を入力した時刻を取得して暗号鍵を選択する。復号装置から暗号化装置への伝送路には伝送遅延が存在するので、復号装置において取得した時刻と暗号化装置において取得した時刻にはタイムラグが存在する。一方、これまでのように時刻をもとに暗号鍵を選択する場合、暗号鍵は切替タイミングにおいて変更される。そのため、タイムラグによって、復号装置において取得した時刻と暗号化装置において取得した時刻との間に選択される暗号鍵の切替タイミングが含まれると、復号装置において選択した暗号鍵と暗号化装置において選択した暗号鍵とが異なってしまう。そのため、タイムラグが存在する環境下においても、暗号鍵を安全に切り替えることが要求される。
これに対応するために、復号装置は、2回連続で同じ暗号鍵を選択可能になる時刻のそれぞれにおいて、通知(以下、「第1種の通知」という)を暗号化装置に出力する。ここで、第1種の通知を出力する間隔はタイムラグよりも長く設定される。また、復号装置は、複数の第1種の通知を出力した後、終了を示すための通知(以下、「第2種の通知」という)も暗号化装置に出力する。一方、暗号化装置は、第2種の通知を暗号化装置から入力した場合、最後から2番目の第1種の通知を入力した時刻を取得し、取得した時刻をもとに暗号鍵を選択する。実施例3に係る通信システム100は図1と同様のタイプである。ここではこれまでとの差異を中心に説明する。
図9は、実施例3に係る暗号化装置20と復号装置30の構成を示す。暗号化装置20は図2と同様に構成され、復号装置30は、復号部60、入力部62、IF部66、暗号鍵制御部68、記憶部70、第1出力部72、第2出力部74を含む。
復号装置30の暗号鍵制御部68は、2つの第1種の通知を生成し、第1出力部72は、2つの第1種の通知を異なった時刻に暗号化装置20に出力する。ここで、第1種の通知が出力される時間間隔は「Q」とされ、記憶部50および記憶部70に記憶されたテーブルにおいて暗号鍵が切り替わる間隔よりも短い。具体的には、「Q」は暗号鍵が切り替わる間隔の半分未満にされる。また、第1種の通知が出力される間隔はタイムラグよりも長く設定される。典型的にはQは固定値(一定の周期)であるが、上記の条件を満たせば、第1種の通知を出力するごとに異なった間隔を用いてもよい。つまり、Qはその時々で変わる可変値であってもよい。暗号鍵制御部68は、第1出力部72から1回目の第1種の通知を出力した時刻を取得するとともに、第1出力部72から2回目の第1種の通知を出力した時刻を取得する。
一方、記憶部70には前述のテーブルが記憶されており、暗号鍵制御部68は時刻をもとに暗号鍵を取得可能である。暗号鍵制御部68は、1回目の時刻と2回目の時刻から取得可能な暗号鍵が同一であるか否かを判定する。同一である場合、暗号鍵制御部68は、2回目の第1種の通知で第1種の通知を終了する。一方、同一でない場合、暗号鍵制御部68は、3回目の第1種の通知を生成し、第1出力部72は、3回目の第1種の通知を暗号化装置20に出力し、第1種の通知を終了する。つまり、第1出力部72において複数の第1種の通知のそれぞれが出力される時刻をもとに取得可能な暗号鍵が連続して同一にされる。
暗号鍵制御部68は、第1種の通知の出力を終了した場合、つまり第1出力部72において複数の第1種の通知のそれぞれが出力される時刻をもとに取得可能な暗号鍵が連続して同一である場合、第2種の通知を生成する。第2種の通知は、第1種の通知の出力が終了したことを暗号化装置20に知らせるための通知である。第2出力部74は、第2種の通知を暗号化装置20に出力する。暗号鍵制御部68は、記憶部70に記憶したテーブルから時刻をもとにして暗号鍵を取得する。ここでの時刻は、連続して同一となる暗号鍵を取得可能な時刻である。暗号鍵制御部68は、取得した暗号鍵を復号部60に設定させる。つまり、暗号鍵が切り替えられる。
暗号化装置20の入力部44は、復号装置30から出力された複数の第1種の通知を異なった時刻に入力するとともに、復号装置30から出力された第2種の通知を入力する。例えば、複数の第1種の通知はQ間隔で入力される。暗号鍵制御部48は、入力部44が第2種の通知を入力した場合、入力部44において入力した複数の第1種の通知のうち、最後から2番目の第1種の通知を入力した時刻を取得する。また、暗号鍵制御部48は、記憶部50に記憶したテーブルから、その時刻をもとにして暗号鍵を取得する。暗号鍵制御部48は、取得した暗号鍵を暗号化部40に設定させる。つまり、暗号鍵が切り替えられる。
暗号化装置20のIF部46は、入力部44が第2種の通知を入力した後に、データを入力する。IF部46は、データを暗号化部40に出力する。暗号化部40は、暗号鍵制御部48に設定された暗号鍵を使用して、データを暗号化する。暗号化部40は、暗号鍵で暗号化されたデータを出力部42に出力する。
復号装置30の入力部62は、第2出力部74が第2種の通知を出力した後に、暗号化装置20からのデータを入力する。入力部62は、入力したデータを復号部60に出力する。復号部60は、暗号鍵制御部68に設定された暗号鍵を使用して当該データを復号する。復号部60は、復号したデータをIF部66に出力する。
以上の構成による暗号化装置20と復号装置30の動作を説明する。図10は、暗号化装置20と復号装置30による処理手順を示すシーケンス図である。復号装置30は、1回目の第1種の通知を暗号化装置20に出力する(S200)。復号装置30は、1回目の第1種の通知を出力してから時間Q(Q1)が経過した後に、2回目の第1種の通知を暗号化装置20に出力する(S202)。ここでは、1回目の第1種の通知と2回目の第1種の通知との間に選択される暗号鍵の切替タイミングが存在する。そのため、復号装置30は、1回目の第1種の通知を出力した時刻において共通鍵K1を取得可能であり、2回目の第1種の通知を出力した時刻において共通鍵K2を取得可能であり、両者は異なる。
そこで、復号装置30は、2回目の第1種の通知を出力してから時間Q(Q2)が経過した後に、3回目の第1種の通知を暗号化装置20に出力する(S204)。復号装置30は、3回目の第1種の通知を出力した時刻において共通鍵K2を取得可能である。復号装置30は、第2種の通知を暗号化装置20に出力する(S206)。暗号化装置20は、最後から2番目の第1種の通知を入力した時刻をもとに、暗号鍵として共通鍵K2を取得し(S208)、復号装置30は、暗号鍵として共通鍵K2を取得する(S210)。暗号化装置20は、共通鍵K2で暗号化を実行する(S212)。暗号化装置20はデータを復号装置30に出力する(S214)。復号装置30は、共通鍵K2で復号を実行する(S216)。
図11は、暗号化装置20と復号装置30による別の処理手順を示すシーケンス図である。復号装置30は、1回目の第1種の通知を暗号化装置20に出力する(S250)。復号装置30は、1回目の第1種の通知を出力してから時間Qが経過した後に、2回目の第1種の通知を暗号化装置20に出力する(S252)。ここでは、2回目の第1種の通知の伝送中に切替タイミングが存在する。そのため、復号装置30は、1回目の第1種の通知を出力した時刻において共通鍵K1を取得可能であり、2回目の第1種の通知を出力した時刻において共通鍵K1を取得可能であり、両者は同一である。
そこで、復号装置30は、第2種の通知を暗号化装置20に出力する(S254)。暗号化装置20は、最後から2番目の第1種の通知を入力した時刻をもとに、暗号鍵として共通鍵K1を取得し(S256)、復号装置30は、暗号鍵として共通鍵K1を取得する(S258)。暗号化装置20は、共通鍵K1で暗号化を実行する(S260)。暗号化装置20はデータを復号装置30に出力する(S262)。復号装置30は、共通鍵K1で復号を実行する(S264)。なお、復号装置30は、第1種の通知の時間間隔Qを調整することにより、出力する第1の通知の数を調整してもよい。例えば、第1種の通知の数がなるべく2個になるように、時間間隔Qを調整してもよい。
本実施例によれば、暗号化装置が第2種の通知を入力(受信)した場合、入力した複数の第1種の通知のうち、最後から2番目の第1種の通知を入力した時刻をもとに取得した暗号鍵を使用して、データを暗号化するので、タイムラグが存在する環境下においても、復号装置と暗号鍵を一致させることができる。また、タイムラグが存在する環境下においても、暗号化装置の暗号鍵と復号装置の暗号鍵とを一致させるので、暗号鍵を安全に切り替えることができる。また、タイムラグが存在する環境下においても、暗号化装置の暗号鍵と復号装置の暗号鍵とを一致させるので、適切な暗号鍵を設定できる。また、複数の第1種の通知を入力する間隔は、暗号鍵が切り替わる間隔よりも短いので、最後から2番目の第1種の通知を入力した時刻をもとに取得した暗号鍵の選択によって、復号装置と暗号鍵を一致させることができる。
また、複数の第1種の通知のそれぞれが出力される時刻をもとに取得可能な暗号鍵が連続して同一である場合に、当該暗号鍵を使用してデータを復号するので、タイムラグが存在する環境下においても、暗号化装置と暗号鍵を一致させることができる。また、タイムラグが存在する環境下においても、暗号化装置と暗号鍵を一致させるので、暗号鍵を安全に切り替えることができる。また、タイムラグが存在する環境下においても、暗号化装置と暗号鍵を一致させるので、適切な暗号鍵を設定できる。また、複数の第1種の通知を出力する間隔は、暗号鍵が切り替わる間隔よりも短いので、連続して同一である暗号鍵の選択によって、暗号化装置と暗号鍵を一致させることができる。
(実施例4)
次に、実施例4を説明する。実施例4は、これまでと同様の通信システムに関し、送信装置には暗号化装置が含まれ、受信装置には復号装置が含まれる。ここでは、復号装置が暗号化装置に通知を出力した時刻を取得して暗号鍵を選択するとともに、暗号化装置が復号装置からの通知を入力した時刻を取得して暗号鍵を選択する。復号装置から暗号化装置への伝送路には伝送遅延が存在するので、復号装置において取得した時刻と暗号化装置において取得した時刻にはタイムラグが存在する。この伝送遅延は固定ではなく変動する。例えば、伝送遅延は、第1遅延時間「a」から第2遅延時間「b」の間で変動する。
一方、これまでのように時刻をもとに暗号鍵を選択する場合、暗号鍵は切替タイミングにおいて変更される。そのため、第1遅延時間「a」であれば、復号装置において選択した暗号鍵と暗号化装置において選択した暗号鍵とが同一であるが、第2遅延時間「b」であれば、復号装置において選択した暗号鍵と暗号化装置において選択した暗号鍵とが異なる状況が生じる。このような伝送遅延が変動する環境下においても、暗号鍵を安全に切り替えることが要求される。なお、実施例4は、最大の遅延時間となる第2遅延時間「b」よりも「切替タイミング」の間隔が長いことを前提にする。つまり、第2遅延時間「b」の間に「切替タイミング」が2つ以上発生することはない。
これに対応するために、第1遅延時間と第2遅延時間との間に切替タイミングが含まれる場合、復号装置は、切り替わる前後の両方の暗号鍵を使用し、復号を実行する。実施例4に係る通信システム100は図1と同様のタイプであり、暗号化装置20、復号装置30は図2と同様のタイプである。ここではこれまでとの差異を中心に説明する。
図2において、前述のごとく、復号装置30から暗号化装置20への伝送遅延は、第1遅延時間「a」から第2遅延時間「b」の間で変動するものとする。ここで、第1遅延時間「a」は最小の伝送遅延に相当し、第2遅延時間「b」は最大の伝送遅延に相当する。そのため、第2遅延時間は第1遅延時間よりも長い。なお、第1遅延時間と第2遅延時間は予め測定されており、復号装置30は、第1遅延時間と第2遅延時間を保持する。第1遅延時間と第2遅延時間の測定には公知の技術が使用されればよいので、ここでは説明を省略する。
復号装置30の暗号鍵制御部68は、信号を生成し、出力部64は、信号を暗号化装置20に出力する。暗号鍵制御部68は、出力部64から信号を出力した時刻(以下、「出力時刻」という)を取得する。暗号鍵制御部68は、暗号化装置20との伝送遅延として想定される第1遅延時間「a」を出力時刻に加算することによって第1時刻を導出する。また、暗号鍵制御部68は、暗号化装置20との伝送遅延として想定される第2遅延時間「b」を出力時刻に加算することによって第2時刻を導出する。
一方、記憶部70には前述のテーブルが記憶されており、暗号鍵制御部68は時刻をもとに暗号鍵を取得可能である。暗号鍵制御部68は、第1時刻と第2時刻から取得可能な暗号鍵が同一であるか否かを判定する。その際、暗号鍵制御部68は、第1時刻と第2時刻から暗号鍵を取得し、取得した暗号鍵が同一であるか否かを判定してもよい。暗号鍵制御部68は、同一であるか否かに応じて暗号鍵を取得する。同一である場合、暗号鍵制御部68は、第1時刻あるいは第2時刻をもとに暗号鍵を取得する。暗号鍵制御部68は、取得した1つの暗号鍵を復号部60に設定する。これは、第1時刻と第2時刻との間に切替タイミングが存在しない場合に相当する。一方、同一でない場合、暗号鍵制御部68は、第1時刻をもとに暗号鍵を取得するとともに、第2時刻をもとに暗号鍵を取得する。暗号鍵制御部68は、取得した2つの暗号鍵を復号部60に設定する。これは、第1時刻と第2時刻との間に切替タイミングが存在する場合に相当する。
暗号化装置20の入力部44は、復号装置30から出力された信号を入力する。暗号鍵制御部48は、入力部44が信号を入力した時刻を取得する。また、暗号鍵制御部48は、記憶部50に記憶したテーブルから時刻をもとにして暗号鍵を取得する。暗号鍵制御部48は、取得した暗号鍵を暗号化部40に設定させる。つまり、暗号鍵が切り替えられる。IF部46は、入力部44が信号を入力した後に、データを入力する。IF部46は、データを暗号化部40に出力する。暗号化部40は、暗号鍵制御部48に設定された暗号鍵を使用して、データを暗号化する。暗号化部40は、暗号鍵で暗号化されたデータを出力部42に出力する。
復号装置30の入力部62は、出力部64が信号を出力した後に、暗号化装置20からのデータを入力する。入力部62は、入力したデータを復号部60に出力する。復号部60は、暗号鍵制御部68に設定された暗号鍵を使用して当該データを復号する。ここで、復号部60に1つの暗号鍵が設定されている場合、復号部60は、当該1つの暗号鍵を復号に使用する。一方、復号部60に2つの暗号鍵が設定されている場合、復号部60は、当該2つの暗号鍵のうち、第1時刻をもとに取得した暗号鍵を使用して復号を実行する。復号できた場合、復号部60は、第1時刻をもとに取得した暗号鍵の使用継続を決定する。復号できなかった場合、復号部60は、第2時刻をもとに取得した暗号鍵を使用して復号を実行するとともに、第2時刻をもとに取得した暗号鍵の使用継続を決定する。復号部60は、復号したデータをIF部66に出力する。
以上の構成による暗号化装置20と復号装置30の動作を説明する。図12は、暗号化装置20と復号装置30による処理手順を示すシーケンス図である。復号装置30は、暗号化装置20に対して信号を出力する。暗号化装置20は、第1遅延時間「a」(S300)から第2遅延時間「b」(S300’)までの範囲の遅延時間で信号を入力する。本図に示す例では、第1遅延時間「a」での伝送の間に切替タイミングが存在する。そのため、第1時刻において共通鍵「K2」が取得され、第2時刻において共通鍵「K2」が取得される。
図13は、暗号化装置20と復号装置30による別の処理手順を示すシーケンス図である。復号装置30は、暗号化装置20に対して信号を出力し、暗号化装置20は、第1遅延時間「a」(S310)から第2遅延時間「b」(S310’)までの範囲の遅延時間で信号を入力する。本図に示す例では、暗号化装置20が第2遅延時間「b」で信号を入力した後に切替タイミングが存在する。そのため、第1時刻において共通鍵「K1」が取得され、第2時刻において共通鍵「K1」が取得される。
図14は、暗号化装置20と復号装置30によるさらに別の処理手順を示すシーケンス図である。復号装置30は、暗号化装置20に対して信号を出力し、暗号化装置20は、第1遅延時間「a」(S320)から第2遅延時間「b」(S320’)までの範囲の遅延時間で信号を入力する。本図に示す例では、第2遅延時間「b」での伝送の間に切替タイミングが存在する。そのため、第1時刻において共通鍵「K1」が取得され、第2時刻において共通鍵「K2」が取得される。
図15は、復号装置30による復号手順を示すフローチャートである。出力部64は、信号を出力する(S350)。暗号鍵制御部68は、現在時刻Tnを取得する。第1時刻「Tn+a」での共通鍵F(Tn+a)と、第2時刻「Tn+b」での共通鍵F(Tn+b)とが同一である場合(S354のY)、復号部60は、暗号鍵に共通鍵F(Tn+a)を設定する(S356)。一方、第1時刻「Tn+a」での共通鍵F(Tn+a)と、第2時刻「Tn+b」での共通鍵F(Tn+b)とが同一でない場合(S354のN)、復号部60は、暗号鍵に共通鍵F(Tn+a)と共通鍵F(Tn+b)を設定する(S358)。
これまでの説明において、復号装置30が、復号装置30から暗号化装置20への伝送遅延の変動の影響を低減している。一方、暗号化装置20が、復号装置30から暗号化装置20への伝送遅延の変動の影響を低減してもよい。この場合、暗号化装置20が、第1遅延時間と第2遅延時間を保持する。図2において暗号化装置20の入力部44は、復号装置30から信号を入力する。暗号鍵制御部48は、入力部44が信号を入力した時刻(以下、「入力時刻」という)を取得する。暗号鍵制御部48は、復号装置30との伝送遅延として想定される第1遅延時間「a」を入力時刻から減算することによって第1時刻を導出する。また、暗号鍵制御部48は、復号装置30との伝送遅延として想定される第2遅延時間「b」を入力時刻から減算することによって第2時刻を導出する。
一方、記憶部50には前述のテーブルが記憶されており、暗号鍵制御部48は時刻をもとに暗号鍵を取得可能である。暗号鍵制御部48は、第1時刻と第2時刻から取得可能な暗号鍵が同一であるか否かを判定する。その際、暗号鍵制御部48は、第1時刻と第2時刻から暗号鍵を取得し、取得した暗号鍵が同一であるか否かを判定してもよい。暗号鍵制御部48は、同一であるか否かに応じて暗号鍵を取得する。同一である場合、暗号鍵制御部48は、第1時刻あるいは第2時刻をもとに暗号鍵を取得する。暗号鍵制御部48は、取得した1つの暗号鍵を暗号化部40に設定する。これは、第1時刻と第2時刻との間に切替タイミングが存在しない場合に相当する。一方、同一でない場合、暗号鍵制御部48は、第1時刻をもとに暗号鍵を取得するとともに、第2時刻をもとに暗号鍵を取得する。暗号鍵制御部48は、取得した2つの暗号鍵を暗号化部40に設定する。これは、第1時刻と第2時刻との間に切替タイミングが存在する場合に相当する。
IF部46は、入力部44が信号を入力した後に、データを入力する。IF部46は、データを暗号化部40に出力する。暗号化部40は、暗号鍵制御部48に設定された暗号鍵を使用して、データを暗号化する。ここで、暗号化部40に1つの暗号鍵が設定されている場合、暗号化部40は、当該1つの暗号鍵を暗号化に使用する。一方、暗号化部40に2つの暗号鍵が設定されている場合、復号部60は、2つの暗号鍵のそれぞれを使用して暗号化を実行する。暗号化部40は、暗号鍵で暗号化されたデータを出力部42に出力する。
本実施例によれば、第1時刻をもとに取得可能な暗号鍵と第2時刻をもとに取得可能な暗号鍵とが同一であるか否かに応じて取得した暗号鍵を使用してデータを復号するので、伝送遅延が変動する環境下においても、暗号化装置と暗号鍵を一致させることができる。また、伝送遅延が変動する環境下においても、暗号化装置と暗号鍵を一致させるので、暗号鍵を安全に切り替えることができる。また、伝送遅延が変動する環境下においても、暗号化装置と暗号鍵を一致させるので、適切な暗号鍵を設定できる。また、第1時刻をもとに取得した暗号鍵と第2時刻をもとに取得した暗号鍵とが同一であるか否かに応じて取得した暗号鍵を使用してデータを復号するので、伝送遅延が変動する環境下においても、暗号化装置と暗号鍵を一致させることができる。
また、暗号鍵が同一である場合に、第1時刻あるいは第2時刻をもとに取得した暗号鍵を使用するので、暗号鍵を特定できる。また、暗号鍵が異なる場合に、第1時刻をもとに取得した暗号鍵と、第2時刻をもとに取得した暗号鍵とを使用するので、切り替わる前後のどちらの暗号鍵で暗号化したのかが分からなくてもデータを復号できる。
また、第1時刻をもとに取得可能な暗号鍵と第2時刻をもとに取得可能な暗号鍵とが同一であるか否かに応じて取得した暗号鍵を使用してデータを暗号化するので、伝送遅延が変動する環境下においても、復号装置と暗号鍵を一致させることができる。また、伝送遅延が変動する環境下においても、復号装置と暗号鍵を一致させるので、暗号鍵を安全に切り替えることができる。また、伝送遅延が変動する環境下においても、復号装置と暗号鍵を一致させるので、適切な暗号鍵を設定できる。また、第1時刻をもとに取得した暗号鍵と第2時刻をもとに取得した暗号鍵とが同一であるか否かに応じて取得した暗号鍵を使用してデータを暗号化するので、伝送遅延が変動する環境下においても、復号装置と暗号鍵を一致させることができる。
また、暗号鍵が同一である場合に、第1時刻あるいは第2時刻をもとに取得した暗号鍵を使用するので、暗号鍵を特定できる。また、暗号鍵が異なる場合に、第1時刻をもとに取得した暗号鍵と、第2時刻をもとに取得した暗号鍵とを使用するので、切り替わる前後のどちらの暗号鍵で復号されるのかが分からなくてもデータを符号化できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例1において、初回の信号に対して、暗号化部40と復号部60は、予め定められた共通鍵K0を使用している。しかしながらこれに限らず例えば、初回の信号に対して、前回の通信において暗号化部40がデータの暗号化に使用した暗号鍵が使用されてもよい。本変形例によれば、初回の信号に対して使用する暗号鍵が通信ごとに変更されるので、セキュリティを向上できる。
実施例1において、暗号鍵制御部48と暗号鍵制御部68とにおける所定の期間は固定値である。しかしながらこれに限らず例えば、暗号鍵制御部48と暗号鍵制御部68とにおける所定の期間が可変値であってもよい。その際、所定の期間は、暗号鍵制御部48と暗号鍵制御部68とにおいて共有されている規則に応じて調節される。例えば、記憶部50および記憶部70に図16に示す形式の期間テーブルを記憶させる。図16は、実施例1の変形例の記憶部50および記憶部70に記憶される期間テーブルのデータ構造を示す。このテーブルは、時刻欄204、所定の期間欄206を含む。時刻欄204には、「T1’〜T2’」のような時刻の範囲が示されるが、この時刻の範囲は、図3に示すテーブルの時刻欄200と同じであっても、異なっていてもよい。また、図16に示す期間テーブルの行数は、図3に示すテーブルの行数と同じであっても異なっていてもよい。また、各々の所定の期間欄206には、異なる値(少なくとも一部の行で異なる値)を設定しておく。そして、時刻をもとに暗号鍵を取得するのと同様に、時刻をもとに所定の期間を取得して用いればよい。また、図16に示す形式のテーブルを記憶させる方法とは異なる方法を用いることもできる。例えば、時刻を入力とし、所定の期間を出力とする関数を用いて、時刻をもとに所定の期間を取得してもよい。本変形例によれば、所定の期間が変更されるので、セキュリティを向上できる。
実施例1から4において、暗号化装置20と復号装置30は、共通鍵方式を使用している。しかしながらこれに限らず例えば、暗号化装置20と復号装置30が公開鍵方式を使用してもよい。その際、暗号鍵制御部48は公開鍵を選択し、暗号化部40は公開鍵を使用するとともに、暗号鍵制御部68は秘密鍵を選択し、記憶部50は秘密鍵を使用する。この秘密鍵は公開鍵と対となっている。本変形例によれば、構成の自由度を向上できる。
実施例1から4の任意の組合せも有効である。本変形例によれば、実施例1から4を任意に組み合わせた効果を得ることができる。