(57)【要約】【課題】複数の通信装置間で用いられる共通鍵を更新する場合でも、共通鍵を用いた暗号通信の通信精度の低下を抑制できる通信システムを提供する。【解決手段】通信システムにおける第１の通信装置は、共通鍵を記憶し、第１の通信装置と第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、記憶された共通鍵を更新し、更新された共通鍵を用いて、第２の通信装置との間で暗号通信する。通信システムにおける第２の通信装置は、共通鍵を記憶し、更新値に基づいて、記憶された共通鍵を更新し、更新された共通鍵を用いて、第１の通信装置との間で暗号通信する。【選択図】図１
2016025532.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置及び第２の通信装置がネットワークを介して接続された通信システムであって、
前記第１の通信装置は、
前記第１の通信装置と前記第２の通信装置とが共有する共通鍵を記憶する第１の記憶部と、
前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記第１の記憶部に記憶された共通鍵を更新する第１の共通鍵更新部と、
前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信する第１の通信部と、
を備え、
前記第２の通信装置は、
前記共通鍵を記憶する第２の記憶部と、
前記更新値に基づいて、前記第２の記憶部に記憶された共通鍵を更新する第２の共通鍵更新部と、
前記更新された共通鍵を用いて、前記第１の通信装置との間で暗号通信する第２の通信部と、
を備える通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記第１の通信装置は、第１の乱数を生成する第１の乱数生成部を備え、
前記第２の通信装置は、第２の乱数を生成する第２の乱数生成部を備え、
前記第１の通信部は、前記生成された第１の乱数を前記第２の通信装置に送信し、前記第２の通信装置から前記第２の乱数を受信し、
前記第２の通信部は、前記生成された第２の乱数を前記第１の通信装置に送信し、前記第１の通信装置から前記第１の乱数を受信し、
前記第１の共通鍵更新部は、前記第１の乱数及び前記第２の乱数に基づいて、前記第１の記憶部に記憶された共通鍵を更新し、
前記第２の共通鍵更新部は、前記第１の乱数及び前記第２の乱数に基づいて、前記第２の記憶部に記憶された共通鍵を更新する、通信システム。
【請求項３】
請求項１に記載の通信システムであって、
前記第１の通信装置は、前記更新値を取得する第１の更新値取得部を備え、
前記第２の通信装置は、前記第１の更新値取得部により取得された更新値と略同一の前記更新値を取得する第２の更新値取得部を備える、通信システム。
【請求項４】
請求項３に記載の通信システムであって、
前記更新値は、現在時刻の情報を含む、通信システム。
【請求項５】
請求項１ないし４のいずれか１項に記載の通信システムであって、
前記第１の共通鍵更新部は、前記第１の通信部によりデータが通信される度に、前記第１の記憶部に記憶された共通鍵を更新し、
前記第２の共通鍵更新部は、前記第２の通信部によりデータが通信される度に、前記第２の記憶部に記憶された共通鍵を更新する、通信システム。
【請求項６】
請求項１ないし５のいずれか１項に記載の通信システムであって、
前記第２の通信装置は、耐タンパ性を有するセキュア領域を有し、
前記第２の記憶部及び前記第２の共通鍵更新部は、前記セキュア領域に配置された、通信システム。
【請求項７】
他の通信装置との間で通信する通信装置であって、
当該通信装置と前記他の通信装置とが共有する共通鍵を記憶する記憶部と、
当該通信装置と前記他の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新する共通鍵更新部と、
前記更新された共通鍵を用いて、前記他の通信装置との間で暗号通信する通信部と、
を備える通信装置。
【請求項８】
第１の通信装置と第２の通信装置とが共有する共通鍵を記憶する記憶部を備え、前記第２の通信装置とネットワークを介して接続された第１の通信装置における通信方法であって、
前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新するステップと、
前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信するステップと、
を有する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置、及び通信方法に関する。
【背景技術】
【０００２】
従来、複数の通信装置間でデータを通信する場合、双方の通信装置が共通鍵を用いる共通鍵暗号方式で暗号通信することが知られている。
【０００３】
また、任意のデータに対してハッシュ関数を反復して適用するハッシュチェーン方式が知られている。ハッシュチェーン方式は、例えば、複数の通信装置間で用いられる鍵の更新、又は多数のワンタイムパスワードの生成に用いられる。
【０００４】
共通鍵暗号方式で用いられる鍵をハッシュチェーン方式で更新する方法として、以下のタグ情報検証方法が知られている（例えば、特許文献１参照）。このタグ情報検証方法では、タグ装置ｍが、タグ情報Ｅｍ，ｉを送信する。タグ情報Ｅｍ，ｉは、タグ装置ｍに対応する識別情報ｉｄｍと、秘密情報ｋｍとタグ情報の送信回数に応じたカウント値ｉとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算地Ｖｍ，ｉと、を含む。セキュリティサーバ装置が、タグ装置ｍからのタグ情報Ｅｍ，ｉを受信し、タグ情報Ｅｍ，ｉの正当性を検証する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５６４８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のタグ情報検証方法では、複数の通信装置間で用いられる共通鍵を更新する場合、この共通鍵を用いた暗号通信の通信精度が低下することがあった。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、複数の通信装置間で用いられる共通鍵を更新する場合でも、共通鍵を用いた暗号通信の通信精度の低下を抑制できる通信システム、通信装置、及び通信方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の通信システムは、第１の通信装置及び第２の通信装置がネットワークを介して接続された通信システムであって、前記第１の通信装置は、前記第１の通信装置と前記第２の通信装置とが共有する共通鍵を記憶する第１の記憶部と、前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記第１の記憶部に記憶された共通鍵を更新する第１の共通鍵更新部と、前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信する第１の通信部と、を備え、前記第２の通信装置は、前記共通鍵を記憶する第２の記憶部と、前記更新値に基づいて、前記第２の記憶部に記憶された共通鍵を更新する第２の共通鍵更新部と、前記更新された共通鍵を用いて、前記第１の通信装置との間で暗号通信する第２の通信部と、を備える。
【０００９】
本発明の通信装置は、他の通信装置との間で通信する通信装置であって、当該通信装置と前記他の通信装置とが共有する共通鍵を記憶する記憶部と、当該通信装置と前記他の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新する共通鍵更新部と、前記更新された共通鍵を用いて、前記他の通信装置との間で暗号通信する通信部と、を備える。
【００１０】
本発明の通信方法は、第１の通信装置と第２の通信装置とが共有する共通鍵を記憶する記憶部を備え、前記第２の通信装置とネットワークを介して接続された第１の通信装置における通信方法であって、前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新するステップと、前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信するステップと、を有する。
【発明の効果】
【００１１】
本発明によれば、複数の通信装置間で用いられる共通鍵を更新する場合でも、共通鍵を用いた暗号通信の通信精度の低下を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態における通信システムの構成例を示すブロック図
【図２】第１の実施形態における通信システムの各部における通信処理の動作例を説明するための模式図
【図３】第１の実施形態における各端末間の通信の流れの一例を示すシーケンス図
【図４】第１の実施形態における一方の端末の動作手順の一例を示すフローチャート
【図５】第１の実施形態における他方の端末の動作手順の一例を示すフローチャート
【図６】第２の実施形態における通信システムの構成例を示すブロック図
【図７】第２の実施形態における各端末間の通信の流れの一例を示すシーケンス図
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を用いて説明する。
【００１４】
（本発明の一形態を得るに至った経緯）
【００１５】
共通鍵を用いて暗号通信する通信装置は、情報漏洩を防ぐために、通信装置の耐タンパエリアにおいて共通鍵を生成することがある。耐タンパエリアは、耐タンパ性を有するエリアである。耐タンパエリアでは、例えば、耐タンパエリアに格納されたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）に対してプローブを介して電気信号が入力された場合、ＩＣが保持するデータが壊れ、耐タンパエリアが破壊されるとデータが消去される。
【００１６】
一方、耐タンパエリアであっても、サイドチャネル攻撃に対する耐性は不十分である。サイドチャネル攻撃は、例えば、タイミング攻撃、故障利用攻撃、電力解析攻撃、電磁波解析攻撃、キャッシュ攻撃、音響解析攻撃を含む。サイドチャネル攻撃を受けることで、共通鍵が耐タンパエリアから漏洩することがあり得る。
【００１７】
サイドチャネル攻撃への対策として、共通鍵を順次更新する特許文献１に記載された技術が知られている。
【００１８】
しかし、特許文献１に記載された技術では、タグ装置とセキュリティサーバ装置との間の通信環境が悪化すると、タグ装置によるタグ情報の送信回数と、セキュリティサーバ装置によるタグ情報の受信回数と、にずれが生じることがある。この場合、タグ装置とセキュリティサーバ装置との間に同期ずれが発生し、送信回数に基づくカウント値ｉを用いたタグ情報の正当性の判断結果に対する信頼性が低下する。従って、複数の通信装置間で用いられる共通鍵を更新することにより、各通信装置が保持する共通鍵が一致せず、暗号通信ができない、つまり暗号通信の通信精度が低下することがあった。
【００１９】
以下、複数の通信装置間で用いられる共通鍵を更新する場合でも、共通鍵を用いた暗号通信の通信精度の低下を抑制できる通信システム、通信装置、及び通信方法について説明する。
【００２０】
以下の実施形態の通信システムは、例えば、２つの端末がネットワークを介して共通鍵暗号方式により暗号通信する通信システムに適用される。
【００２１】
（第１の実施形態）
図１は、第１の実施形態における通信システム１０の構成例を示すブロック図である。通信システム１０は、第１の端末３０（第１の通信装置の一例）と第２の端末５０（第２の通信装置の一例）とが、ネットワーク７０を介して接続された構成を有する。ここで、説明を分かり易くするために、第１の端末３０を「端末１」とも表記し、第２の端末５０を「端末２」とも表記する。端末１は、例えばサーバ装置又は携帯端末であり、端末２は、例えば携帯端末である。
【００２２】
端末１は、例えば、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）／ＰＨＹ（Ｐｈｙｓｉｃａｌ  ｌａｙｅｒ）部３１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）／ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）部３７、及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）部３３を有する。
【００２３】
ＭＡＣ／ＰＨＹ部３１は、ネットワーク７０におけるデータ転送を制御する。ＭＡＣ／ＰＨＹ部３１は、ネットワーク７０を介して端末２との間で通信する通信部３２としての機能を有する。
【００２４】
ＨＤＤ部３３は、各種データ（例えば平文データ）を記憶するデータ記憶部３６としての機能を有する。ここではＨＤＤを例示するが、ＨＤＤ以外の記憶媒体（例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリ）でもよい。
【００２５】
ＣＰＵ／ＲＡＭ部３７は、例えば、ＣＰＵ及びＲＡＭを内蔵し、乱数生成部３４、共通鍵更新部３８、共通鍵記憶部３５及び共通鍵暗号復号処理部３９としての機能を有する。
【００２６】
乱数生成部３４は、乱数を生成する。共通鍵更新部３８は、共通鍵記憶部３５に記憶された共通鍵（例えば、端末１と端末２とが共有する鍵Ａ）を更新する。共通鍵記憶部３５は、共通鍵（例えば鍵Ａ）を記憶する。共通鍵記憶部３５は、第１の記憶部の一例である。鍵Ａは、オリジナルの共通鍵の一例である。共通鍵記憶部３５に記憶された共通鍵を、「端末１の鍵」ともいう。
【００２７】
共通鍵暗号復号処理部３９は、更新前又は更新後の共通鍵を用いて、データを暗号化又復号する。共通鍵暗号復号処理部３９による暗号方式及び複号方式は、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号、を含む。
【００２８】
端末２は、ＭＡＣ／ＰＨＹ部５１、ＣＰＵ／ＲＡＭ部５８、及びＨＤＤ部５３を有する。
【００２９】
ＭＡＣ／ＰＨＹ部５１は、ネットワーク７０におけるデータ転送を制御する。ＭＡＣ／ＰＨＹ部５１は、ネットワーク７０を介して端末１との間で通信する通信部５２としての機能を有する。
【００３０】
ＣＰＵ／ＲＡＭ部５８は、例えば、ＣＰＵ及びＲＡＭを内蔵し、乱数生成部５４、共通鍵更新部５６、及び共通鍵暗号復号処理部５９としての機能を有する。
【００３１】
乱数生成部５４は、乱数を生成する。共通鍵更新部５６は、共通鍵（例えば、端末１と端末２とが共有する鍵Ａ）を更新する。
【００３２】
共通鍵暗号復号処理部５９は、更新前又は更新後の共通鍵を用いて、データを暗号化又は復号化する。共通鍵暗号復号処理部５９による暗号方式及び複号方式は、例えば、ＡＥＳ暗号、ＤＥＳ暗号、を含む。
【００３３】
ＨＤＤ部５３は、例えば、共通鍵（例えば鍵Ａ）を記憶する共通鍵記憶部５７、及び、各種データ（例えば平文データ）を記憶するデータ記憶部５５、としての機能を有する。共通鍵記憶部５７は、第２の記憶部の一例である。共通鍵記憶部５７に記憶された共通鍵を、「端末２の鍵」ともいう。
【００３４】
共通鍵記憶部５７は、例えば、耐タンパエリア６１に設けられる。また、共通鍵更新部５６及び共通鍵暗号復号処理部５９は、例えば、耐タンパエリア６２に設けられる。耐タンパエリア６１，６２は、耐タンパエリア６１，６２の外部から一定の行為があった場合、例えば、耐タンパエリア６１，６２内のデータを消去し、又は回路を破壊する。これにより、耐タンパエリア６１，６２から不正に情報が読み取られることを抑制し、セキュリティを強化できる。尚、外部からの一定の行為は、例えば、プローブで回路基板に電気信号が加えられること、電気素子が外されること、を含む。耐タンパエリア６１，６２は、耐タンパ性を有するセキュア領域の一例である。
【００３５】
ここでは、端末１としてサーバ装置を想定し、端末２として携帯端末を想定したので、端末１，２の構成は異なることを例示した。尚、端末１の構成を、耐タンパエリアが設けられた端末２と同様の構成としてもよい。
【００３６】
次に、通信システム１０の動作例について説明する。
【００３７】
図２は、通信システム１０内の各部における通信処理の動作例を説明するための模式図である。図３は、端末１と端末２との間の通信の流れの一例を示すシーケンス図である。
【００３８】
端末１では、乱数生成部３４は、乱数Ｒ１を生成し、乱数Ｒ１を通信部３２及び共通鍵更新部３８に渡す（Ｔ１）。通信部３２は、端末２に乱数Ｒ１を送信する（Ｔ２）。なお、端末１は、乱数を送信する時点で、端末２に鍵更新を行うこと（鍵更新フェーズに入ること）を通知しておくものとする。例えば、端末１は、あらかじめコマンドで鍵更新の旨を通知する、又は、乱数Ｒ１のヘッダに鍵更新の旨の通知コマンドを付加する。これは以下の説明でも同様である。また、端末２側も同様である。
【００３９】
端末２では、通信部５２は、端末１から受信した乱数Ｒ１を共通鍵更新部５６に渡す。乱数生成部５４は、乱数Ｒ２を生成し、乱数Ｒ２を通信部５２及び共通鍵更新部５６に渡す（Ｔ３）。
【００４０】
共通鍵更新部５６は、共通鍵記憶部５７に記憶された端末１と同じ鍵Ａと、乱数生成部５４により生成された乱数Ｒ２と、端末１からの乱数Ｒ１と、を加算した値（鍵Ａ＋乱数Ｒ１＋乱数Ｒ２）を生成する。共通鍵更新部５６は、生成された値を、一方向性関数に代入し、共通鍵としての鍵Ａを、端末１との間で共有する共通鍵Ｈａｓｈ（鍵Ａ＋乱数Ｒ１＋乱数Ｒ２）に更新する（Ｔ４）。更新された共通鍵は、所定のタイミング（例えば暗号通信する際）において、共通鍵暗号復号処理部５９に渡される。尚、乱数Ｒ１，Ｒ２は、共通鍵を更新するための更新値の一例である。
【００４１】
図２では、一方向性関数としてハッシュ関数が用いられ、共通鍵としてハッシュ値を得ることを例示している。尚、ハッシュ関数に代入される値として、鍵Ａと乱数Ｒ１と乱数Ｒ２とを加算した値に限られず、他の値でもよい。共通鍵更新部５６は、例えば、ハッシュ関数に代入される値として、鍵Ａと乱数Ｒ１と乱数Ｒ２との排他的論理和、減算、乗算、除算、連結の計算を行ってもよい。このような値が代入されたハッシュ関数を用いて、共通鍵が生成されてもよい。
【００４２】
端末２では、通信部５２は、乱数生成部５４からの乱数Ｒ２を端末１に送信する（Ｔ５）。
【００４３】
端末１では、通信部３２は、端末２から受信した乱数Ｒ２を共通鍵更新部３８に渡す。共通鍵更新部３８は、共通鍵記憶部３５に記憶された端末２と同じ鍵Ａと、乱数生成部３４により生成された乱数Ｒ１と、端末２から送信された乱数Ｒ２と、を加算した値（鍵Ａ＋Ｒ１＋Ｒ２）を生成する。共通鍵更新部３８は、生成された値を、一方向性関数に代入し、共通鍵としての鍵Ａを、端末２との間で共有する共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）に更新する（Ｔ６）。更新された共通鍵は、所定のタイミング（例えば暗号通信する際）において、共通鍵暗号復号処理部３９に渡される。
【００４４】
図２では、端末２と同様、一方向性関数としてハッシュ関数が用いられ、共通鍵としてハッシュ値が得られることを例示している。尚、ハッシュ関数に代入される値として、鍵Ａと乱数Ｒ１と乱数Ｒ２とを加算した値に限られず、他の値でもよい。共通鍵更新部３８は、例えば、ハッシュ関数に代入される値として、鍵Ａと乱数Ｒ１と乱数Ｒ２との排他的論理和、減算、乗算、除算、連結の計算を行ってもよい。このような値が導入されたハッシュ関数を用いて、共通鍵が生成されてもよい。
【００４５】
端末１，２において共通鍵が更新されると、端末１及び端末２は、同じ値に更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）を用いて、共通鍵暗号方式に従って暗号通信する（Ｔ７）。
【００４６】
Ｔ７の暗号通信では、端末１が端末２にデータを送信する場合、共通鍵暗号復号処理部３９は、データ記憶部３６に記憶された平文データを読み出す。そして、共通鍵暗号復号処理部３９は、共通鍵更新部３８により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）を用いて、この平文データを暗号化し、暗号化されたデータ（暗号データ）を通信部３２に渡す。通信部３２は、暗号データを端末２に送信する。
【００４７】
端末２では、共通鍵暗号復号処理部５９は、通信部５２により受信された暗号データを取得し、共通鍵更新部５６により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）を用いて、この暗号データを復号化する。そして、共通鍵暗号復号処理部５９は、データ記憶部５５に、この平文データを記憶させる等の処理を行う。
【００４８】
Ｔ７の暗号通信では、端末２が端末１にデータを送信する場合、共通鍵暗号復号処理部５９は、データ記憶部５５に記憶された平文データを読み出す。そして、共通鍵暗号復号処理部３９は、共通鍵更新部５６により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）を用いて、この平文データを暗号化し、暗号化されたデータ（暗号データ）を通信部５２に渡す。通信部５２は、暗号データを端末１に送信する。
【００４９】
端末１では、共通鍵暗号復号処理部３９は、通信部３２により受信された暗号データを取得し、共通鍵更新部３８により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）を用いて、この暗号データを復号化する。そして、共通鍵暗号復号処理部３９は、データ記憶部３６に、この平文データを記憶させる等の処理を行う。
【００５０】
尚、端末１と端末２との間で送受信される平文データは、セッション鍵でもよい。
【００５１】
図２，図３に示した通信システム１０の動作例によれば、共通鍵の値が端末１，２の間の通信回数に依存しないので、端末１，２の間の通信状況により端末１，２が保持する共通鍵に不一致が生じる可能性を低減できる。また、毎回同じ共通鍵が使用されることを抑制し、適宜共通鍵が更新されるので、仮にサイドチャネル攻撃により共通鍵の情報が漏洩しても、共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【００５２】
図４は、端末１（一方の端末）の動作手順の一例を示すフローチャートである。
【００５３】
乱数生成部３４は、乱数Ｒ１を生成する（Ｓ１）。通信部３２は、乱数Ｒ１を端末２に送信する（Ｓ２）。
【００５４】
通信部３２は、端末２から乱数Ｒ２を受信するまで待機する（Ｓ３）。尚、一旦鍵更新フェーズ（ネゴシエーションモード）に入ると、受信データは乱数とみなされる。乱数Ｒ２を受信すると、共通鍵更新部３８は、例えば前述した手順に従って、共通鍵を、共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）に更新する（Ｓ４）。
【００５５】
通信部３２は、データ記憶部３６に記憶された送信データ（平文データ）があるか否かを判別する（Ｓ５）。
【００５６】
送信データがある場合、共通鍵暗号復号処理部３９は、データ記憶部３６に記憶された平文データを読み出し、更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）で暗号化する（Ｓ６）。通信部３２は、この暗号データを端末２に送信する。
【００５７】
データの送信後又はＳ５において送信データが無い場合、通信部３２は、端末２からの受信データ（暗号データ）があるか否かを判別する（Ｓ７）。
【００５８】
受信データがある場合、共通鍵暗号復号処理部３９は、通信部３２から受信データを取得し、受信データを、更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）で復号化し、復号化されたデータ（平文データ）をデータ記憶部３６に記憶する等の処理を行う（Ｓ８）。
【００５９】
データの記憶後又はＳ７において受信データが無い場合、共通鍵更新部３８は、共通鍵を更新するか否かを判別する（Ｓ９）。鍵の更新は、例えば、通信が遮断された後に通信を復帰させる場合、別の端末と新たに接続する場合に、又は送信データの送信毎に実行される。
【００６０】
共通鍵を更新しない場合、Ｓ５の処理に戻り、端末１は、同様の処理（Ｓ５〜Ｓ９の処理）を繰り返す。一方、共通鍵を更新する場合、Ｓ１の処理に戻り、端末１は、同様の処理（Ｓ１〜Ｓ９の処理）を繰り返す。
【００６１】
図５は、端末２（他方の端末）の動作手順の一例を示すフローチャートである。
【００６２】
通信部５２は、端末１から乱数Ｒ１を受信するまで待機する（Ｓ１１）。乱数Ｒ１を受信すると、乱数生成部５４は、乱数Ｒ２を生成する（Ｓ１２）。通信部５２は、乱数Ｒ２を端末１に送信する（Ｓ１３）。
【００６３】
共通鍵更新部５６は、例えば前述した手順に従って、共通鍵を、共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）に更新する（Ｓ１４）。
【００６４】
通信部５２は、データ記憶部５５に記憶された送信データ（平文データ）があるか否かを判別する（Ｓ１５）。
【００６５】
送信データがある場合、共通鍵暗号復号処理部５９は、データ記憶部５５に記憶された平文データを読み出し、更新された共通鍵共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）で暗号化する（Ｓ１６）。通信部５２は、この暗号データを端末１に送信する。
【００６６】
データの送信後又はＳ１５において送信データが無い場合、通信部５２は、端末１からの受信データがあるか否かを判別する（Ｓ１７）。
【００６７】
受信データがある場合、通信部５２は、受信データが乱数Ｒ１であるか否かを判別する（Ｓ１８）。例えば、通信部５２は、鍵交換（鍵更新）のコマンドが付加されたデータか否かで、乱数データか否かを判断する。
【００６８】
受信データが乱数Ｒ１である場合、通信部５２は、共通鍵の更新の指示であると判別し、Ｓ１２の処理に戻る。そして、端末２は、同様の処理（Ｓ１２〜Ｓ１８の処理）を繰り返す。
【００６９】
受信データが乱数Ｒ１でない場合、共通鍵暗号復号処理部５９は、通信部５２から渡された受信データを、更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｒ１＋Ｒ２）で復号化し、復号化されたデータ（平文データ）をデータ記憶部３６に記憶する等の処理を行う（Ｓ１９）。この後、Ｓ１５の処理に戻り、端末２は、同様の処理（Ｓ１５〜Ｓ１９の処理）を繰り返す。
【００７０】
図４，図５に示した端末１，２の動作例によれば、共通鍵の値が端末１，２の間の通信回数に依存しないので、端末１，２の間の通信状況により端末１，２が保持する共通鍵に不一致が生じる可能性を低減できる。また、乱数を用いて毎回同じ共通鍵が使用されることを抑制し、適宜共通鍵が更新されるので、仮にサイドチャネル攻撃により共通鍵の情報が漏洩しても、共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【００７１】
通信システム１０によれば、鍵を更新する場合、端末１及び端末２がそれぞれ生成した乱数Ｒ１，Ｒ２を相互に交換し、同じ共通鍵に更新する。この場合、共通鍵の値は、端末１，２の間での通信回数に依存しないので、例えば端末１，２間の通信環境が劣悪でも、更新された共通鍵が異なることを抑制できる。つまり、共通鍵を更新する際に、端末１，２の間で同期ずれが発生することを抑制でき、端末１，２の間での通信の通信精度の低下を抑制できる。
【００７２】
また、端末２の耐タンパエリア６１，６２に、共通鍵記憶部５７、共通鍵更新部５６及び共通鍵暗号復号処理部５９が設けられてもよい。この場合、耐タンパ性を有することにより、耐タンパエリア６１，６２にプローブ等が接続された場合や、物理的に耐タンパエリア６１，６２が破壊された場合でも、共通鍵の漏洩を抑制できる。また、仮に、耐タンパエリア６１，６２がサイドチャネル攻撃を受け、仮に共通鍵が漏洩した場合でも、適宜共通鍵は更新されるので、更新された共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【００７３】
また、共通鍵更新部３８，５６は、例えば新たに通信する毎（例えば送信データを送信する毎）に、共通鍵を更新してもよい。この場合、仮に、端末１，２が反復してサイドチャネル攻撃を受け、共通鍵が取得されても、毎回異なる鍵が取得されるので、共通鍵を用いた通信の安全性を向上できる。
【００７４】
このように、例えば、成りすましの端末が、サイドチャネル攻撃により端末１，２から共通鍵を取得しても、共通鍵は、乱数生成により順次更新される。よって、例えば、ユーザが、端末１，２を保持して電車に乗った際に、攻撃者がユーザに接近し、近距離通信により共通鍵が漏洩しても、共通鍵の使用時には他の値に変更されている可能性が高いので、セキュリティを強化できる。近距離通信には、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信、Ｆｅｌｉｃａ（登録商標）通信、が含まれる。
【００７５】
（第２の実施形態）
第１の実施形態では、端末１，２の間で乱数Ｒ１，Ｒ２が通信されることを例示したが、第２の実施形態では、乱数Ｒ１，Ｒ２が通信されず、乱数の代わりに、端末１と端末２との間で同期した値を用いる場合を示す。
【００７６】
図６は、第２の実施形態における通信システム１０Ａの構成例を示すブロック図である。図６の通信システム１０Ａは、図１の通信システム１０とほぼ同一の構成を有する。図６の通信システム１０Ａにおいて、図１の通信システム１０と同一の構成要素については、同一の符号を付し、その説明を省略又は簡略化する。第１の実施形態と同様、第２の実施形態における第１の端末３０Ａを「端末１」と表記し、第２の端末５０Ａを「端末２」と表記する。
【００７７】
ここでは、端末１，２により取得される同期した値の一例として、時刻情報が用いられることを例示する。尚、時刻情報のうち、例えば、日付のみ、時間のみが用いられてもよい。
【００７８】
端末１は、乱数生成部３４の代わりに、時刻情報取得部１３４を有する。時刻情報取得部１３４は、端末２と同期した値として、現在の時刻Ｄの情報を取得する。
【００７９】
端末２は、乱数生成部５４の代わりに、時刻情報取得部１５４を有する。時刻情報取得部１５４は、端末１と同期した値として、現在の時刻Ｄの情報を取得する。
【００８０】
尚、時刻情報取得部１３４により取得された時刻Ｄと、時刻情報取得部１５４により取得された時刻Ｄとは、略同一の値である。また、時刻Ｄは、共通鍵を更新するための更新値の一例である。
【００８１】
時刻情報取得部１３４、１５４には、例えば、ＲＴＣ（ｒｅａｌ  ｔｉｍｅ  ｃｌｏｃｋ）が用いられる。同期した値として、時刻Ｄの情報に日付が用いられた場合、日付が変わる度に、端末１，２によりそれぞれ生成される共通鍵は、同じように変化する。時刻情報取得部１３４、１５４は、日付ではなく、定期的に又は不定期に、所定の時刻において、時刻Ｄを取得し、共通鍵更新部３８，５６が、共通鍵を更新してもよい。
【００８２】
共通鍵更新部３８は、共通鍵記憶部３５に記憶された端末２と同じ鍵Ａと、時刻情報取得部１３４により取得された時刻Ｄと、を加算した値（鍵Ａ＋時刻Ｄ）を生成する。共通鍵更新部３８は、一方向性関数（例えばハッシュ関数）に代入して、ハッシュ値である共通鍵Ｈａｓｈ（鍵Ａ＋時刻Ｄ）を得る。
【００８３】
共通鍵更新部５６は、共通鍵記憶部５７に記憶された端末１と同じ鍵Ａと、時刻情報取得部１５４により取得された時刻Ｄと、を加算した値（鍵Ａと時刻Ｄ）を生成する。共通鍵更新部５６は、一方向性関数（例えばハッシュ関数）に代入して、ハッシュ値である共通鍵Ｈａｓｈ（鍵Ａ＋時刻Ｄ）を得る。
【００８４】
次に、通信システム１０Ａの動作例について説明する。
図７は、端末１と端末２との間の通信の流れの一例を示すシーケンス図である。
【００８５】
端末１では、時刻情報取得部１３４は、現在時刻の情報（例えば日付の情報）である時刻Ｄを取得し、時刻Ｄを共通鍵更新部３８に渡す（Ｔ１１）。
【００８６】
端末２では、時刻情報取得部１５４は、端末１と同様、現在時刻の情報（例えば日付の情報）である時刻Ｄを取得し、時刻Ｄを共通鍵更新部５６に渡す（Ｔ１２）。
【００８７】
端末１では、共通鍵更新部３８は、共通鍵記憶部３５に記憶された端末２と同じ鍵Ａと、時刻情報取得部１３４で取得した時刻Ｄと、を加算した値（鍵Ａ＋Ｄ）を生成する。共通鍵更新部３８は、生成された値を、一方向性関数に代入し、共通鍵を、共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）に更新する（Ｔ１３）。更新された共通鍵は、所定のタイミング（例えば暗号通信する際）において、共通鍵暗号復号処理部３９に渡される。
【００８８】
図７では、一方向性関数としてハッシュ関数が用いられ、共通鍵としてハッシュ値を得ることを例示している。尚、ハッシュ関数に代入される値として、鍵Ａと時刻Ｄとを加算した値に限られず、他の値でもよい。共通鍵更新部３８は、例えば、ハッシュ関数に代入される値として、鍵Ａと時刻Ｄとの排他的論理和、減算、乗算、除算、連結の計算を行ってもよい。このような値が代入されたハッシュ関数を用いて、共通鍵が生成されてもよい。
【００８９】
端末２では、共通鍵更新部５６は、共通鍵記憶部５７に記憶された端末１と同じ鍵Ａと、時刻情報取得部１５４により取得された時刻Ｄと、を加算した値（鍵Ａ＋Ｄ）を生成する。共通鍵更新部５６は、生成された値を、一方向性関数に代入し、共通鍵を、共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）に更新する（Ｔ１４）。更新された共通鍵は、所定のタイミング（例えば暗号通信する際）において、共通鍵暗号復号処理部５９に渡される。
【００９０】
図７では、端末１と同様、一方向性関数としてハッシュ関数が用いられ、共通鍵としてハッシュ値を得ることを例示している。尚、ハッシュ関数に代入される値として、鍵Ａと時刻Ｄとを加算した値に限られず、他の値でもよい。共通鍵更新部５６は、例えば、ハッシュ関数に代入される値として、鍵Ａと時刻Ｄとの排他的論理和、減算、乗算、除算、連結の計算を行ってもよい。このような値が代入されたハッシュ関数を用いて、共通鍵が生成されてもよい。
【００９１】
Ｔ１３，Ｔ１４の処理後、端末１，２の間で、同じ値に更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）を用いて、共通鍵暗号方式に従って暗号通信する（Ｔ１５）。
【００９２】
Ｔ１５の暗号通信では、端末１が端末２にデータを送信する場合、共通鍵暗号復号処理部３９は、データ記憶部３６に記憶された平文データを読み出す。そして、共通鍵暗号復号処理部３９は、共通鍵更新部３８により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）を用いて、この平文データを暗号化し、この暗号データを通信部５２に渡す。通信部３２は、暗号データを端末２に送信する。
【００９３】
端末２では、共通鍵暗号復号処理部５９は、通信部５２により受信された暗号データを取得し、共通鍵更新部５６により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）を用いて、この暗号データを復号化する。そして、共通鍵暗号復号処理部５９は、データ記憶部５５に、この平文データを記憶する等の処理を行う。
【００９４】
Ｔ１５の暗号通信では、端末２が端末１にデータを送信する場合、共通鍵暗号復号処理部５９は、データ記憶部５５に記憶された平文データを読み出す。そして、共通鍵暗号復号処理部５９は、共通鍵更新部５６により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）を用いて、この平文データを暗号化し、この暗号データを通信部５２に渡す。通信部５２は、暗号データを端末１に送信する。
【００９５】
端末１では、共通鍵暗号復号処理部３９は、通信部３２により受信された暗号データを取得し、共通鍵更新部３８により更新された共通鍵Ｈａｓｈ（鍵Ａ＋Ｄ）を用いて、この暗号データを復号化する。そして、共通鍵暗号復号処理部３９は、データ記憶部３６に、この平文データを記憶する等の処理を行う。
【００９６】
尚、端末１と端末２との間で送受信される平文データは、セッション鍵でもよい。
【００９７】
通信システム１０Ａによれば、時刻情報を用いて共通鍵を更新する場合、端末１と端末２との間で、鍵の生成に必要な値（更新値の少なくとも一部）を事前に通信することを省略でき、通信処理を簡素化できる。
【００９８】
この場合、共通鍵の値は、端末１，２の間での通信回数に依存しないので、例えば端末１，２間の通信環境が劣悪でも、更新された共通鍵が異なることを抑制できる。よって、端末１，２の間での通信の通信精度の低下を抑制できる。また、仮に、端末１，２が反復してサイドチャネル攻撃を受け、共通鍵が取得されても、毎回異なる鍵が取得されるので、共通鍵を用いた通信の安全性を向上できる。
【００９９】
尚、本実施形態では、端末１，２により取得される同期した値として、ＲＴＣが計時する時刻情報を用いることを例示したが、順次変化する値であれば、時刻情報に限られない。同期した値として、例えば、端末１，２が外部サーバと通信して入手可能な情報（例えば、為替情報、端末１，２の位置情報（例えばＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）の情報））、が含まれてもよい。同期した値は、更新値の一例である。
【０１００】
以上、図面を参照しながら各種の実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１０１】
上記実施形態では、共通鍵で暗号化された暗号データを送信することを例示したが、暗号データを公開鍵で暗号化してから送信してもよい。これにより、端末１，２の間での通信のセキュリティを向上できる。
【０１０２】
（本発明の一態様の概要）
本発明の一態様の通信システムは、第１の通信装置及び第２の通信装置がネットワークを介して接続された通信システムであって、前記第１の通信装置は、前記第１の通信装置と前記第２の通信装置とが共有する共通鍵を記憶する第１の記憶部と、前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記第１の記憶部に記憶された共通鍵を更新する第１の共通鍵更新部と、前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信する第１の通信部と、を備え、前記第２の通信装置は、前記共通鍵を記憶する第２の記憶部と、前記更新値に基づいて、前記第２の記憶部に記憶された共通鍵を更新する第２の共通鍵更新部と、前記更新された共通鍵を用いて、前記第１の通信装置との間で暗号通信する第２の通信部と、を備える。
【０１０３】
この構成によれば、共通鍵の値が第１の通信装置と第２の通信装置との通信回数に依存しないので、例えば第１の通信装置と第２の通信装置との間の通信環境が劣悪でも、更新された共通鍵が異なることを抑制できる。よって、共通鍵更新において同期ずれの発生を抑制でき、通信精度の低下を抑制できる。また、仮に、サイドチャネル攻撃等により共通鍵が漏洩しても、適宜共通鍵は更新されるので、更新された共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【０１０４】
本発明の一態様の通信システムは、前記第１の通信装置が、第１の乱数を生成する第１の乱数生成部を備え、前記第２の通信装置が、第２の乱数を生成する第２の乱数生成部を備え、前記第１の通信部が、前記生成された第１の乱数を前記第２の通信装置に送信し、前記第２の通信装置から前記第２の乱数を受信し、前記第２の通信部が、前記生成された第２の乱数を前記第１の通信装置に送信し、前記第１の通信装置から前記第１の乱数を受信し、前記第１の共通鍵更新部が、前記第１の乱数及び前記第２の乱数に基づいて、前記第１の記憶部に記憶された共通鍵を更新し、前記第２の共通鍵更新部は、前記第１の乱数及び前記第２の乱数に基づいて、前記第２の記憶部に記憶された共通鍵を更新する。
【０１０５】
この構成によれば、共通鍵を乱数に基づいて更新することで、共通鍵が規則的に更新されることを抑制でき、更新アルゴリズムの類推を困難にできる。従って、仮に、サイドチャネル攻撃等により共通鍵が漏洩しても、漏洩後に更新された共通鍵の類推は困難であり、更新された共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【０１０６】
本発明の一態様の通信システムは、前記第１の通信装置が、前記更新値を取得する第１の更新値取得部を備え、前記第２の通信装置が、前記第１の更新値取得部により取得された更新値と略同一の前記更新値を取得する第２の更新値取得部を備える。
【０１０７】
この構成によれば、第１の通信装置及び第２の通信装置が自主的に更新値を生成せず、更新値の少なくとも一部を相互に通信することを省略できる。従って、第１の通信装置及び第２の通信装置による通信処理を簡素化できる。
【０１０８】
本発明の一態様の通信システムは、前記更新値が、現在時刻の情報を含む。
【０１０９】
この構成によれば、通信ネットワークを経由して、又は、第１の通信装置及び第２の通信装置の自装置内で、容易に更新値を取得できる。
【０１１０】
本発明の一態様の通信システムは、前記第１の共通鍵更新部が、前記第１の通信部によりデータが通信される度に、前記第１の記憶部に記憶された共通鍵を更新し、前記第２の共通鍵更新部が、前記第２の通信部によりデータが通信される度に、前記第２の記憶部に記憶された共通鍵を更新する。
【０１１１】
この構成によれば、仮に、端末１，２が反復してサイドチャネル攻撃を受け、共通鍵が取得されても、通信毎に毎回異なる鍵が取得されるので、共通鍵の更新を類推することが困難であり、共通鍵を用いた通信の安全性を向上できる。
【０１１２】
本発明の一態様の通信システムは、前記第２の通信装置が、耐タンパ性を有するセキュア領域を有し、前記第２の記憶部及び前記第２の共通鍵更新部が、前記セキュア領域に配置される。
【０１１３】
この構成によれば、耐タンパ性とともにサイドチャネル攻撃に対する耐性を向上できる。
【０１１４】
本発明の一態様の通信装置は、他の通信装置との間で通信する通信装置であって、当該通信装置と前記他の通信装置とが共有する共通鍵を記憶する記憶部と、当該通信装置と前記他の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新する共通鍵更新部と、前記更新された共通鍵を用いて、前記他の通信装置との間で暗号通信する通信部と、を備える。
【０１１５】
この構成によれば、共通鍵の値が通信装置と他の通信装置との通信回数に依存しないので、例えば通信装置と他の通信装置との間の通信環境が劣悪でも、更新された共通鍵が異なることを抑制できる。よって、共通鍵更新において同期ずれの発生を抑制でき、通信精度の低下を抑制できる。また、仮に、サイドチャネル攻撃等により共通鍵が漏洩しても、適宜共通鍵は更新されるので、更新された共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【０１１６】
本発明の一態様の通信方法は、第１の通信装置と第２の通信装置とが共有する共通鍵を記憶する記憶部を備え、前記第２の通信装置とネットワークを介して接続された第１の通信装置における通信方法であって、前記第１の通信装置と前記第２の通信装置とにより共通に用いられ、順次変化する更新値に基づいて、前記記憶部に記憶された共通鍵を更新するステップと、前記更新された共通鍵を用いて、前記第２の通信装置との間で暗号通信するステップと、を有する。
【０１１７】
この方法によれば、共通鍵の値が第１の通信装置と第２の通信装置との通信回数に依存しないので、例えば第１の通信装置と第２の通信装置との間の通信環境が劣悪でも、更新された共通鍵が異なることを抑制できる。よって、共通鍵更新において同期ずれの発生を抑制でき、通信精度の低下を抑制できる。また、仮に、サイドチャネル攻撃等により共通鍵が漏洩しても、適宜共通鍵は更新されるので、更新された共通鍵を用いた暗号通信の安全性が低下することを抑制できる。
【産業上の利用可能性】
【０１１８】
本発明は、複数の通信装置間で用いられる共通鍵を更新する場合でも、共通鍵を用いた暗号通信の通信精度の低下を抑制できる通信システム、通信装置、及び通信方法等に有用である。
【符号の説明】
【０１１９】
１０、１０Ａ  通信システム
３０、３０Ａ  端末
３１、５１  ＭＡＣ／ＰＨＹ部
３２、５２  通信部
３３、５３  ＨＤＤ部
３４、５４  乱数記憶部
３５、５７  共通鍵記憶部
３６、５５  データ記憶部
３７、５８  ＣＰＵ／ＲＡＭ部
３８、５６  共通鍵更新部
３９、５９  共通鍵暗号復号処理部
５０、５０Ａ  端末
６１、６２  耐タンパエリア
７０  ネットワーク
１３４、１５４  時刻情報取得部
【図１】
2016025532.tif 000003
【図２】
2016025532.tif 000004
【図３】
2016025532.tif 000005
【図４】
2016025532.tif 000006
【図５】
2016025532.tif 000007
【図６】
2016025532.tif 000008
【図７】
2016025532.tif 000009