(57)【特許請求の範囲】
【請求項１】
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における第１秘密部と第１公開部との組、および、第２秘密部と第２公開部との組を用いる暗号通信システムであって、
第１通信装置の第１セキュリティチップ（ＴＰＭ:Trusted Platform Module)において、通信相手である第２通信装置から伝送された前記第２公開部を用いて前記第１セキュリティチップに保持された前記第１秘密部により第１共通鍵を生成し、前記第１共通鍵に基づいて平文を暗号化して暗号文を生成する暗号文生成手段と、
前記第２通信装置の第２セキュリティチップにおいて、通信相手である前記第１通信装置から伝送された前記第１公開部を用いて前記第２セキュリティチップに保持された前記第２秘密部により第２共通鍵を生成し、前記第２共通鍵に基づいて、前記第１通信装置から受信した前記暗号文を復号して平文を生成する復号手段と、
を備え、
前記暗号文生成手段は、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成して、暗号化に使用し、
前記復号手段は、さらに、前記初期ベクタを、前記第２秘密部の初期ベクタ用の部分と、前記第１公開部の初期ベクタ用の部分とから生成して、復号に使用し、
前記第１セキュリティチップを前記暗号文生成手段として機能させるために、
前記第１秘密部を受信して保持する第１秘密部保持手段と、
前記第１秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第１共通鍵を生成する第１共通鍵生成手段と、
平文と前記第２公開部とが添付された暗号化コマンドを受信して、前記第１共通鍵生成手段に前記第１共通鍵を生成させ、前記第１共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を前記第１セキュリティチップに付与する第１機能付与手段と、
前記第２セキュリティチップを前記復号手段として機能させるために、
前記第２秘密部を受信して保持する第２秘密部保持手段と、
前記第２秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第２共通鍵を生成する第２共通鍵生成手段と、
暗号文と前記第１公開部とが添付された復号コマンドを受信して、前記第２共通鍵生成手段に前記第２共通鍵を生成させ、前記第２共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御手段と、
を前記第２セキュリティチップに付与する第２機能付与手段と、
をさらに備える暗号通信システム。
【請求項２】
前記暗号文生成制御手段は、前記第１共通鍵に基づく暗号化の後、前記第１共通鍵を破棄し、
前記復号制御手段は、前記第２共通鍵に基づく復号の後、前記第２共通鍵を破棄する、請求項１に記載の暗号通信システム。
【請求項３】
前記暗号鍵事前配布方式における前記第１秘密部と前記第１公開部との組のうち、前記第１秘密部を第１セキュリティチップに保持すると共に、前記第１公開部を前記第２通信装置に伝送する第１運用準備手段と、
前記暗号鍵事前配布方式における前記第２秘密部と前記第２公開部との組のうち、前記第２秘密部を前記第２セキュリティチップに保持すると共に、前記第２公開部を前記第２通信装置に伝送する第２運用準備手段と、
をさらに備える請求項１または２に記載の暗号通信システム。
【請求項４】
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における第１秘密部と第１公開部との組、および、第２秘密部と第２公開部との組を用いる暗号通信方法であって、
第１通信装置の第１セキュリティチップ（ＴＰＭ:Trusted Platform Module)において、通信相手である第２通信装置から伝送された前記第２公開部を用いて前記第１セキュリティチップに保持された前記第１秘密部により第１共通鍵を生成し、前記第１共通鍵に基づいて平文を暗号化して暗号文を生成する暗号文生成ステップと、
前記第２通信装置の第２セキュリティチップにおいて、通信相手である前記第１通信装置から伝送された前記第１公開部を用いて前記第２セキュリティチップに保持された前記第２秘密部により第２共通鍵を生成し、前記第２共通鍵に基づいて、前記第１通信装置から受信した前記暗号文を復号して平文を生成する復号ステップと、
を含み、
前記暗号文生成ステップにおいては、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成して、暗号化に使用し、
前記復号ステップにおいては、さらに、前記初期ベクタを、前記第２秘密部の初期ベクタ用の部分と、前記第１公開部の初期ベクタ用の部分とから生成して、復号に使用し、
前記第１セキュリティチップに前記暗号文生成ステップを実行させるために、
前記第１秘密部を受信して第１秘密部保持手段に保持する第１秘密部保持ステップと、
前記第１秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第１共通鍵を生成する第１共通鍵生成ステップと、
平文と前記第２公開部とが添付された暗号化コマンドを受信して、前記第１共通鍵生成ステップにおいて前記第１共通鍵を生成させ、前記第１共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
を記憶させる第１機能付与ステップと、
前記第２セキュリティチップに前記復号ステップを実行させるために、
前記第２秘密部を受信して第２秘密部保持手段に保持する第２秘密部保持ステップと、
前記第２秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第２共通鍵を生成する第２共通鍵生成ステップと、
暗号文と前記第１公開部とが添付された復号コマンドを受信して、前記第２共通鍵生成ステップにおいて前記第２共通鍵を生成させ、前記第２共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御ステップと、
を記憶させる第２機能付与ステップと、
をさらに含む暗号通信方法。
【請求項５】
前記暗号文生成制御ステップにおいて、前記第１共通鍵に基づく暗号化の後、前記第１共通鍵が破棄され、
前記復号制御ステップにおいて、前記第２共通鍵に基づく復号の後、前記第２共通鍵が破棄される、請求項４に記載の暗号通信方法。
【請求項６】
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置であって、
前記セキュリティチップが、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記秘密部により共通鍵を生成する共通鍵生成手段と、
平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を備え、
前記セキュリティチップが、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記通信装置が、前記セキュリティチップに、前記秘密部保持手段と、前記共通鍵生成手段と、前記暗号文生成制御手段と、前記初期ベクタ生成手段とを付与する機能付与手段をさらに備える通信装置。
【請求項７】
前記暗号文生成制御手段は、前記共通鍵に基づく暗号化の後、前記共通鍵を破棄する、請求項６に記載の通信装置。
【請求項８】
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御方法であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
を含み、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記暗号文生成制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
を含む通信装置の制御方法。
【請求項９】
セキュリティチップ（ＴＭＰ:Trusted Platform Module)を有する通信装置の制御プログラムであって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
をコンピュータに実行させ、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記暗号文生成制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をコンピュータに実行させる通信装置の制御プログラム。
【請求項１０】
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置であって、
前記セキュリティチップが、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成手段と、
暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御手段と、
を備え、
前記セキュリティチップが、さらに、復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記通信装置が、前記セキュリティチップに、前記秘密部保持手段と、前記共通鍵生成手段と、前記復号制御手段と、前記初期ベクタ生成手段とを付与する機能付与手段をさらに備える通信装置。
【請求項１１】
前記復号制御手段は、前記共通鍵に基づく復号の後、前記共通鍵を破棄する、請求項１０に記載の通信装置。
【請求項１２】
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御方法であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御ステップと、
を含み、
復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記復号制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をさらに含む通信装置の制御方法。
【請求項１３】
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御プログラムであって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御ステップと、
をコンピュータに実行させ、
復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記復号制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をさらにコンピュータに実行させる通信装置の制御プログラム。
【請求項１４】
通信装置が有するセキュリティチップ（ＴＰＭ:Trusted Platform Module)であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
前記保持された秘密部と通信相手から伝送された前記暗号鍵事前配布方式における公開部とに基づいて、前記暗号鍵事前配布方式にしたがって共通鍵を生成する共通鍵生成手段と、
平文と前記通信相手から伝送された公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、該共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を備え、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記セキュリティチップには、外部の機能付与手段により、前記秘密部保持手段と、前記共通鍵生成手段と、前記暗号文生成制御手段と、前記初期ベクタ生成手段とが付与されるセキュリティチップ。
【請求項１５】
前記暗号文生成制御手段は、前記共通鍵に基づく暗号化の後、前記共通鍵を破棄する、請求項１４に記載のセキュリティチップ。
【請求項１６】
暗号文と前記通信相手から伝送された公開部とが添付された復号コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、該共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御手段、
をさらに備え、
前記セキュリティチップには、前記機能付与手段により、前記復号制御手段が付与される請求項１４または１５に記載のセキュリティチップ。
【請求項１７】
前記復号制御手段、は、前記共通鍵に基づく復号の後、前記共通鍵を破棄する、請求項１６に記載のセキュリティチップ。
【請求項１８】
通信装置が有するセキュリティチップ（ＴＰＭ:Trusted Platform Module)であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
前記保持された秘密部と通信相手から伝送された前記暗号鍵事前配布方式における公開部とに基づいて、前記暗号鍵事前配布方式にしたがって共通鍵を生成する共通鍵生成手段と、
暗号文と前記通信相手から伝送された公開部とが添付された復号コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、該共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御手段、
を備え、
さらに、復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記セキュリティチップには、外部の機能付与手段により、前記秘密部保持手段と、前記共通鍵生成手段と、前記復号制御手段と、前記初期ベクタ生成手段とが付与されるセキュリティチップ。
【請求項１９】
前記復号制御手段は、前記共通鍵に基づく復号の後、前記共通鍵を破棄する、請求項１８に記載のセキュリティチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラムに関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、ＴＰＭ(Trusted Platform Module)に公開鍵とその公開鍵に対応する秘密鍵を埋め込んで、情報が不用意に漏洩することのない技術が開示されている。また、非特許文献１の１３頁には、データを保護するため共通鍵をＴＰＭ内の公開鍵で暗号化（wrapping)し、復号（unwrapping)のための秘密鍵をＴＰＭ内に保管する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３５４４９号公報
【非特許文献】
【０００４】
【非特許文献１】「ＴＰＭを活用したセキュリティ最前線(The security frontier levelaged by TPM)」、社団法人  電子情報産業協会(Japan Electronics and Information Technology Industries Association)  ＴＣＧ専門委員会、2007/10/3、http://home.jeita.or.jp/is/committee/infopolicy/tcg/d20071003.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記文献に記載の技術では、共通鍵による暗号化や復号時に共通鍵がＴＰＭの外で使用される、あるいは、ＴＰＭ内に生成された共通鍵が常駐することにより、共通鍵の漏洩を防ぐことができなかった。
【０００６】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る暗号通信システムは、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における第１秘密部と第１公開部との組、および、第２秘密部と第２公開部との組を用いる暗号通信システムであって、
第１通信装置の第１セキュリティチップ（ＴＰＭ:Trusted Platform Module)において、通信相手である第２通信装置から伝送された前記第２公開部を用いて前記第１セキュリティチップに保持された前記第１秘密部により第１共通鍵を生成し、前記第１共通鍵に基づいて平文を暗号化して暗号文を生成する暗号文生成手段と、
前記第２通信装置の第２セキュリティチップにおいて、通信相手である前記第１通信装置から伝送された前記第１公開部を用いて前記第２セキュリティチップに保持された前記第２秘密部により第２共通鍵を生成し、前記第２共通鍵に基づいて、前記第１通信装置から受信した前記暗号文を復号して平文を生成する復号手段と、
を備え、
前記暗号文生成手段は、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成して、暗号化に使用し、
前記復号手段は、さらに、前記初期ベクタを、前記第２秘密部の初期ベクタ用の部分と、前記第１公開部の初期ベクタ用の部分とから生成して、復号に使用し、
前記第１セキュリティチップを前記暗号文生成手段として機能させるために、
前記第１秘密部を受信して保持する第１秘密部保持手段と、
前記第１秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第１共通鍵を生成する第１共通鍵生成手段と、
平文と前記第２公開部とが添付された暗号化コマンドを受信して、前記第１共通鍵生成手段に前記第１共通鍵を生成させ、前記第１共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を前記第１セキュリティチップに付与する第１機能付与手段と、
前記第２セキュリティチップを前記復号手段として機能させるために、
前記第２秘密部を受信して保持する第２秘密部保持手段と、
前記第２秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第２共通鍵を生成する第２共通鍵生成手段と、
暗号文と前記第１公開部とが添付された復号コマンドを受信して、前記第２共通鍵生成手段に前記第２共通鍵を生成させ、前記第２共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御手段と、
を前記第２セキュリティチップに付与する第２機能付与手段と、
をさらに備える。
【０００８】
上記目的を達成するため、本発明に係る暗号通信方法は、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における第１秘密部と第１公開部との組、および、第２秘密部と第２公開部との組を用いる暗号通信方法であって、
第１通信装置の第１セキュリティチップ（ＴＰＭ:Trusted Platform Module)において、通信相手である第２通信装置から伝送された前記第２公開部を用いて前記第１セキュリティチップに保持された前記第１秘密部により第１共通鍵を生成し、前記第１共通鍵に基づいて平文を暗号化して暗号文を生成する暗号文生成ステップと、
前記第２通信装置の第２セキュリティチップにおいて、通信相手である前記第１通信装置から伝送された前記第１公開部を用いて前記第２セキュリティチップに保持された前記第２秘密部により第２共通鍵を生成し、前記第２共通鍵に基づいて、前記第１通信装置から受信した前記暗号文を復号して平文を生成する復号ステップと、
を含み、
前記暗号文生成ステップにおいては、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成して、暗号化に使用し、
前記復号ステップにおいては、さらに、前記初期ベクタを、前記第２秘密部の初期ベクタ用の部分と、前記第１公開部の初期ベクタ用の部分とから生成して、復号に使用し、
前記第１セキュリティチップに前記暗号文生成ステップを実行させるために、
前記第１秘密部を受信して第１秘密部保持手段に保持する第１秘密部保持ステップと、
前記第１秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第１共通鍵を生成する第１共通鍵生成ステップと、
平文と前記第２公開部とが添付された暗号化コマンドを受信して、前記第１共通鍵生成ステップにおいて前記第１共通鍵を生成させ、前記第１共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
を記憶させる第１機能付与ステップと、
前記第２セキュリティチップに前記復号ステップを実行させるために、
前記第２秘密部を受信して第２秘密部保持手段に保持する第２秘密部保持ステップと、
前記第２秘密部と前記第２公開部とに基づいて、前記暗号鍵事前配布方式にしたがって前記第２共通鍵を生成する第２共通鍵生成ステップと、
暗号文と前記第１公開部とが添付された復号コマンドを受信して、前記第２共通鍵生成ステップにおいて前記第２共通鍵を生成させ、前記第２共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御ステップと、
を記憶させる第２機能付与ステップと、
をさらに含む。
【０００９】
上記目的を達成するため、本発明に係る通信装置は、
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置であって、
前記セキュリティチップが、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記秘密部により共通鍵を生成する共通鍵生成手段と、
平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を備え、
前記セキュリティチップが、さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記通信装置が、前記セキュリティチップに、前記秘密部保持手段と、前記共通鍵生成手段と、前記暗号文生成制御手段と、前記初期ベクタ生成手段とを付与する機能付与手段をさらに備える。
【００１０】
上記目的を達成するため、本発明に係る通信装置の制御方法は、
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御方法であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
を含み、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記暗号文生成制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
を含む。
【００１１】
上記目的を達成するため、本発明に係る通信装置の制御プログラムは、
セキュリティチップ（ＴＭＰ:Trusted Platform Module)を有する通信装置の制御プログラムであって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、平文と前記公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記平文を暗号化して暗号文を生成する暗号文生成制御ステップと、
をコンピュータに実行させ、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記第１秘密部の初期ベクタ用の部分と、前記第２公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記暗号文生成制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をコンピュータに実行させる。
【００１２】
上記目的を達成するため、本発明に係る通信装置は、
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置であって、
前記セキュリティチップが、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成手段と、
暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御手段と、
を備え、
前記セキュリティチップが、さらに、復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記通信装置が、前記セキュリティチップに、前記秘密部保持手段と、前記共通鍵生成手段と、前記復号制御手段と、前記初期ベクタ生成手段とを付与する機能付与手段をさらに備える。
【００１３】
上記目的を達成するため、本発明に係る通信装置の制御方法は、
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御方法であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御ステップと、
を含み、
復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記復号制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をさらに含む。
【００１４】
上記目的を達成するため、本発明に係る通信装置の制御プログラムは、
セキュリティチップ（ＴＰＭ:Trusted Platform Module)を有する通信装置の制御プログラムであって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を、前記セキュリティチップの秘密部保持手段に保持する秘密部保持ステップと、
前記セキュリティチップにおいて、通信相手から伝送された暗号鍵事前配布方式における公開部を用いて、前記保持された秘密部により共通鍵を生成する共通鍵生成ステップと、
前記セキュリティチップにおいて、暗号文と前記公開部とが添付された復号コマンドを受信して、前記共通鍵生成ステップにおいて前記共通鍵を生成させ、前記共通鍵に基づいて、前記暗号文を復号して平文を生成する復号制御ステップと、
をコンピュータに実行させ、
復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成ステップと、
前記セキュリティチップに、前記秘密部保持ステップと、前記共通鍵生成ステップと、前記復号制御ステップと、前記初期ベクタ生成ステップとを記憶させる機能付与ステップと、
をさらにコンピュータに実行させる。
【００１５】
上記目的を達成するため、本発明に係るセキュリティチップは、
通信装置が有するセキュリティチップ（ＴＰＭ:Trusted Platform Module)であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
前記保持された秘密部と通信相手から伝送された前記暗号鍵事前配布方式における公開部とに基づいて、前記暗号鍵事前配布方式にしたがって共通鍵を生成する共通鍵生成手段と、
平文と前記通信相手から伝送された公開部とが添付された暗号化コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、該共通鍵に基づいて前記平文を暗号化して暗号文を生成する暗号文生成制御手段と、
を備え、
さらに、暗号化をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記セキュリティチップには、外部の機能付与手段により、前記秘密部保持手段と、前記共通鍵生成手段と、前記暗号文生成制御手段と、前記初期ベクタ生成手段とが付与される。
【００１６】
上記目的を達成するため、本発明に係るセキュリティチップは、
通信装置が有するセキュリティチップ（ＴＰＭ:Trusted Platform Module)であって、
暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における秘密部を保持する秘密部保持手段と、
前記保持された秘密部と通信相手から伝送された前記暗号鍵事前配布方式における公開部とに基づいて、前記暗号鍵事前配布方式にしたがって共通鍵を生成する共通鍵生成手段と、
暗号文と前記通信相手から伝送された公開部とが添付された復号コマンドを受信して、前記共通鍵生成手段に前記共通鍵を生成させ、該共通鍵に基づいて前記暗号文を復号して平文を生成する復号制御手段、
を備え、
さらに、復号をブロックごとに行なう場合の初期ベクタ（ＩＶ:Initialization Vector)を、前記秘密部の初期ベクタ用の部分と、前記公開部の初期ベクタ用の部分とから生成する初期ベクタ生成手段を備え、
前記セキュリティチップには、外部の機能付与手段により、前記秘密部保持手段と、前記共通鍵生成手段と、前記復号制御手段と、前記初期ベクタ生成手段とが付与される。
【発明の効果】
【００１７】
本発明によれば、共通鍵の漏洩を防いで、通信情報の秘匿性を高めることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態に係る暗号通信システムの構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係る暗号通信システムの運用準備処理の動作手順を示すシーケンス図である。
【図２Ｂ】本発明の第２実施形態に係る暗号通信システムの暗号化処理の動作手順を示すシーケンス図である。
【図２Ｃ】本発明の第２実施形態に係る暗号通信システムの復号処理の動作手順を示すシーケンス図である。
【図３Ａ】本発明の第２実施形態に係る暗号通信システムの概略構成を示すブロック図である。
【図３Ｂ】本発明の第２実施形態に係る通信装置の概略構成を示すブロック図である。
【図３Ｃ】本発明の第２実施形態に係る通信装置のソフトウェアレイヤ構成を示すブロック図である。
【図４Ａ】本発明の第２実施形態に係る通信装置のハードウェア構成を示すブロック図である。
【図４Ｂ】本発明の第２実施形態に係る通信装置の運用準備処理の手順を示すフローチャートである。
【図４Ｃ】本発明の第２実施形態に係る通信装置の暗号文送信処理の手順を示すフローチャートである。
【図４Ｄ】本発明の第２実施形態に係る通信装置の平文復号処理の手順を示すフローチャートである。
【図５Ａ】本発明の第２実施形態に係るセキュリティチップ（ＴＭＰ）のハードウェア構成を示すブロック図である。
【図５Ｂ】本発明の第２実施形態に係るセキュリティチップ（ＴＭＰ）の秘密部埋込処理の手順を示すフローチャートである。
【図５Ｃ】本発明の第２実施形態に係るセキュリティチップ（ＴＭＰ）の暗号化処理の手順を示すフローチャートである。
【図５Ｄ】本発明の第２実施形態に係るセキュリティチップ（ＴＭＰ）の復号処理の手順を示すフローチャートである。
【図６Ａ】前提技術に係る暗号通信システムの暗号化処理の動作手順を示すシーケンス図である。
【図６Ｂ】前提技術に係る暗号通信システムの復号処理の動作手順を示すシーケンス図である。
【図６Ｃ】前提技術に係るセキュリティチップ（ＴＭＰ）のハードウェア構成を示すブロック図である。
【図６Ｄ】前提技術に係る暗号鍵事前配布方式（ＫＰＳ）のアルゴリズムの一例を示す図である。
【図７Ａ】本発明の第３実施形態に係る暗号通信システムの運用準備処理の動作手順を示すシーケンス図である。
【図７Ｂ】本発明の第３実施形態に係る暗号通信システムの暗号化処理の動作手順を示すシーケンス図である。
【図７Ｃ】本発明の第３実施形態に係る暗号通信システムの復号処理の動作手順を示すシーケンス図である。
【図８Ａ】本発明の第３実施形態に係る通信装置のハードウェア構成を示すブロック図である。
【図８Ｂ】本発明の第３実施形態に係る通信装置の運用準備処理の手順を示すフローチャートである。
【図９Ａ】本発明の第３実施形態に係るセキュリティチップ（ＴＭＰ）のハードウェア構成を示すブロック図である。
【図９Ｂ】本発明の第３実施形態に係るセキュリティチップ（ＴＭＰ）の秘密部埋込処理の手順を示すフローチャートである。
【図１０】本発明の第４実施形態に係る暗号通信システムの運用準備処理の動作手順を示すシーケンス図である。
【図１１Ａ】本発明の第４実施形態に係る通信装置に記憶される公開情報テーブルの構成を示す図である。
【図１１Ｂ】本発明の第４実施形態に係る通信装置の運用準備処理の手順を示すフローチャートである。
【図１１Ｃ】本発明の第４実施形態に係る通信装置の暗号文送信処理の手順を示すフローチャートである。
【図１１Ｄ】本発明の第４実施形態に係る通信装置の平文復号処理の手順を示すフローチャートである。
【図１２】本発明の第５実施形態に係る暗号通信システムのアプリケーションのダウンロード処理の動作手順を示すシーケンス図である。
【発明を実施するための形態】
【００１９】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００２０】
［第１実施形態］
本発明の第１実施形態としての暗号通信システム１００について、図１を用いて説明する。暗号通信システム１００は、暗号鍵事前配布方式（ＫＰＳ:Key Predistribution System)における第１秘密部と第１公開部との組、および、第２秘密部と第２公開部との組を用いる通信装置間で暗号通信を行なうシステムである。
【００２１】
図１に示すように、暗号通信システム１００は、暗号文生成部１０１と、復号部１０２と、を含む。暗号文生成部１０１は、第１通信装置１１０の第１セキュリティチップ（ＴＭＰ:Trusted Platform Module)１１１において、通信相手である第２通信装置１２０から伝送された第２公開部１１３を用いて第１セキュリティチップ１１１に保持された第１秘密部１１２により共通鍵１３０を生成し、第１セキュリティチップ１１１において共通鍵１３０に基づいて平文を暗号化して暗号文を生成する。復号部１０２は、第２通信装置１２０の第２セキュリティチップ１２１において、通信相手である第１通信装置１１０から伝送された第１公開部１２３を用いて第２セキュリティチップ１２１に保持された第２秘密部１２２により共通鍵１３０を生成し、第２セキュリティチップ１２１において共通鍵１３０に基づいて、第１通信装置１１０から受信した暗号文を復号して平文を生成する。  本実施形態によれば、第１通信装置では暗号化時にＴＰＭ内で第１秘密部および第２公開部から共通鍵を生成して、ＴＰＭ内で暗号化を行ない、第２通信装置では復号時にＴＰＭ内で第２秘密部および第１公開部から共通鍵を生成して、ＴＰＭ内で復号を行なうことで、共通鍵の漏洩を防いで、通信情報の秘匿性を高めることができる。
【００２２】
［第２実施形態］
次に、本発明の第２実施形態に係る暗号通信システムについて説明する。本実施形態に係る暗号通信システムは、配布される暗号鍵事前配布方式における秘密部をＴＰＭに埋め込んで公開部を通信相手に伝送する。そして、暗号化や復号時にＴＰＭ内で共通鍵を生成して、ＴＰＭ内で暗号化や復号を行ない、終了後には共通鍵を破棄する。
【００２３】
《前提技術》
まず、図６Ａ〜図６Ｄを参照して、前提技術の構成および動作を簡単に説明する。
【００２４】
（暗号化処理シーケンス）
図６Ａは、前提技術に係る暗号通信システム６００の暗号化処理の動作手順を示すシーケンス図である。
【００２５】
暗号側装置６１０の暗号側ＣＰＵ６１１は、ステップＳ６１１において、暗号側ＴＰＭ６１２に対して共通鍵のロードを要求する。暗号側装置６１０の暗号側ＴＰＭ６１２は、ステップＳ６１３において、共通鍵を暗号側ＣＰＵ６１１に渡す。
【００２６】
この時点で、共通鍵は暗号側ＣＰＵ６１１に公開されたことになる。暗号側ＣＰＵ６１１は、ステップＳ６１５において、ロードした共通鍵により平文メッセージを暗号化する。そして、暗号側ＣＰＵ６１１は、ステップＳ６１７において、暗号化されたメッセージを復号側装置６２０の復号側ＣＰＵ６２１に送信する。暗号側ＣＰＵ６１１は、ステップＳ６１９において、ロードした共通鍵を破棄する。この間（図６Ａの６０１参照）、共通鍵は暗号側ＣＰＵ６１１に生存し続けるので、共通鍵の漏洩確率が増大する。
【００２７】
（復号処理シーケンス）
図６Ｂは、前提技術に係る暗号通信システム６００の復号処理の動作手順を示すシーケンス図である。
【００２８】
暗号側装置６１０の暗号側ＣＰＵ６１１は、上記ステップＳ６１７において、暗号化されたメッセージを復号側装置６２０の復号側ＣＰＵ６２１に送信する。
【００２９】
復号側装置６２０の復号側ＣＰＵ６２１は、暗号化されたメッセージを受信して、ステップＳ６２１において、復号側ＴＰＭ６２２に対して共通鍵のロードを要求する。復号側装置６２０の復号側ＴＰＭ６２２は、ステップＳ６２３において、共通鍵を復号側ＣＰＵ６２１に渡す。
【００３０】
この時点で、共通鍵は復号側ＣＰＵ６２１に公開されたことになる。復号側ＣＰＵ６２１は、ステップＳ６２５において、ロードした共通鍵により暗号文メッセージを復号する。そして、復号側ＣＰＵ６２１は、ステップＳ６２７において、ロードした共通鍵を破棄する。この間（図６Ｂの６０２参照）、共通鍵は復号側ＣＰＵ６２１に生存し続けるので、共通鍵の漏洩確率が増大する。
【００３１】
（セキュリティチップの構成）
図６Ｃは、前提技術に係るセキュリティチップ（ＴＭＰ）６３０／６４０のハードウェア構成を示すブロック図である。
【００３２】
図６Ｃは、ＴＣＧ(Trusted Computing Group)によるＴＰＭv1.2仕様の構成６３０と、ＴＰＭv2.0仕様の構成６４０と、である。なお、本実施形態においては、かかる構成にさらに、ＫＰＳ秘密部の不揮発メモリへの保持機能と、暗号化コマンドEncryptによる共通鍵生成および暗号化機能と、復号コマンドDecryptによる共通鍵生成および復号機能と、を付加している。
【００３３】
（暗号鍵事前配布方式のアルゴリズム例）
図６Ｄは、前提技術に係る暗号鍵事前配布方式（ＫＰＳ）のアルゴリズム６５０の一例を示す図である。なお、図６Ｄに示した暗号鍵事前配布方式（ＫＰＳ）のアルゴリズム６５０はBlomアルゴリズムと呼ばれる一例であり、本実施形態で使用可能な暗号鍵事前配布方式（ＫＰＳ）のアルゴリズムは図６Ｄに限定されない。
【００３４】
図６Ｄの上半分（理論）は、Blomアルゴリズムに基づいて、（ＫＰＳ公開部，ＫＰＳ秘密部）との多数の組が生成されることを証明するものである。すなわち、暗号鍵事前配布方式（ＫＰＳ）のアルゴリズム６５０においては、ＫＳＰ公開部に対応してＫＰＳ秘密部が算出され、このＫＳＰ公開部を通信先に伝送することによって、送信元と送信先において同じ共通鍵が算出されるものである。
【００３５】
図６Ｄの下半分（具体例）には、簡単な具体的値に従ってBlomアルゴリズムに基づいて、上記理論が正しいことが示されている。ここでは、例えば、（γu=12, γv=7, γw=1）６５１が装置Ｕ，Ｖ，ＷのＫＰＳ公開部（公開値）である。このＫＰＳ公開部に対応して、ＫＰＳ秘密部（秘密値）が生成される。図６Ｄにおいては、(αu，βu)＝(７，１４）、(αv，βv)＝(６，４）、(αw，βw)＝(１５，９）、がＫＰＳ秘密部（秘密値）である。かかるＫＰＳ秘密部（秘密値）により、ｇu(x)＝７＋１４ｘ、ｇv(x)＝６＋４ｘ、ｇw(x)＝１５＋９ｘ、となり、互いの共通鍵はＵＶ間で“３”、ＵＷ間で“４”、ＶＷ間で“１０”となり、機密性が維持された暗号通信が可能となる。
【００３６】
《本実施形態の説明》
以下、図２Ａ〜図６Ｄにしたがって、本実施形態の構成および動作を詳細に説明する。
【００３７】
《暗号通信システム》
まず、図２Ａ〜図３Ａを参照して、本実施形態の暗号通信システム２００について説明する。
【００３８】
（運用準備処理シーケンス）
図２Ａは、本実施形態に係る暗号通信システム２００の運用準備処理の動作手順を示すシーケンス図である。
【００３９】
ＫＰＳの（公開部，秘密部）の組を配布する配布装置２３０は、ステップＳ２０１において、暗号側装置２１０（以下、Aliceとも略す）の暗号側ＣＰＵ２１１と、復号側装置２２０（以下、Bobとも略す）の復号側ＣＰＵ２２１と、にＫＰＳの（公開部，秘密部）の組を配布する。なお、図２Ａにおいては、配布装置２３０からＫＰＳの（公開部，秘密部）の組を配布する例を示したが、暗号側ＣＰＵ２１１または復号側ＣＰＵ２２１から公開部を送信し、秘密部を受領してもよい。
【００４０】
暗号側ＣＰＵ２１１は、ステップＳ２１１において、暗号側ＴＰＭ２１２に対して受領したＫＰＳ秘密部を埋め込んで秘密部保持するように指示する。暗号側ＴＰＭ２１２は、ステップＳ２１３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【００４１】
また、暗号側ＣＰＵ２１１は、ステップＳ２１５において、受領したＫＰＳ公開部を復号側ＣＰＵ２２１に対して伝送し、復号側ＣＰＵ２２１から伝送された復号側のＫＰＳ公開部を受信する。そして、暗号側ＣＰＵ２１１は、ステップＳ２１７において、受信した復号側のＫＰＳ公開部を記憶する。
【００４２】
一方、復号側ＣＰＵ２２１は、ステップＳ２２１において、復号側ＴＰＭ２２２に対して受領したＫＰＳ秘密部を埋め込むように指示する。復号側ＴＰＭ２２２は、ステップＳ２２３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【００４３】
また、復号側ＣＰＵ２２１は、ステップＳ２２５において、受領したＫＰＳ公開部を暗号側ＣＰＵ２１１に対して伝送し、暗号側ＣＰＵ２１１から伝送された暗号側のＫＰＳ公開部を受信する。そして、復号側ＣＰＵ２２１は、ステップＳ２２７において、受信した暗号側のＫＰＳ公開部を記憶する。
【００４４】
（暗号化処理シーケンス）
図２Ｂは、本実施形態に係る暗号通信システム２００の暗号化処理の動作手順を示すシーケンス図である。
【００４５】
暗号側ＣＰＵ２１１は、ステップＳ２３１において、記憶している復号側の公開情報（公開部）を読み出す。暗号側ＣＰＵ２１１は、ステップＳ２３３において、平文メッセージを取得して暗号側ＴＰＭ２１２にインプットする。すなわち、暗号側ＣＰＵ２１１は、ステップＳ２３５において、平文および復号側の公開情報を添付した暗号化コマンドEncrypt(平文，復号側の公開情報)を暗号側ＴＰＭ２１２に送信する。
【００４６】
暗号側ＴＰＭ２１２は、受信した暗号化コマンドEncrypt(平文，復号側の公開情報)を解析して、“添付された復号側の公開情報を用いて暗号側ＴＰＭ２１２に保持された秘密部により共通鍵を生成し、その共通鍵で添付された平文を暗号化し、暗号文を暗号側ＣＰＵ２１１に返す”と判定する。そして、暗号側ＴＰＭ２１２は、ステップＳ２３７において、暗号鍵事前配布方式（ＫＰＳ）に従い共通鍵を生成し、ステップＳ２３９において、この共通鍵で平文を暗号化して暗号文を生成する。
【００４７】
暗号側ＴＰＭ２１２は、ステップＳ２４１において、共通鍵で暗号化した暗号文と暗号側ＴＰＭ２１２での処理のステータスとを添付した暗号化応答コマンドEncrypt(暗号文，ステータス）を暗号側ＣＰＵ２１１に返す。また、暗号側ＴＰＭ２１２は、ステップＳ２４３において、暗号化のために生成した共通鍵を破棄する。
【００４８】
暗号側ＣＰＵ２１１は、ステップＳ２４５において、暗号側ＴＰＭ２１２から返された暗号文を復号側装置２２０の復号側ＣＰＵ２２１に伝送する。暗号文の伝送は、ステップＳ２４７において、暗号化されたメッセージとして復号側ＣＰＵ２２１に伝送される。
【００４９】
（復号処理シーケンス）
図２Ｃは、本実施形態に係る暗号通信システム２００の復号処理の動作手順を示すシーケンス図である。
【００５０】
復号側ＣＰＵ２２１は、ステップＳ２５１において、暗号側ＣＰＵ２１１からステップＳ２４７で伝送された暗号化されたメッセージから暗号文を受信する。復号側ＣＰＵ２２１は、ステップＳ２５３において、記憶している暗号側の公開情報（公開部）を読み出す。復号側ＣＰＵ２２１は、ステップＳ２５５において、暗号文および暗号側の公開情報を添付した復号コマンドDecrypt(暗号文，暗号側の公開情報)を復号側ＴＰＭ２２２に送信する。
【００５１】
復号側ＴＰＭ２２２は、受信した復号コマンドEncrypt(暗号文，暗号側の公開情報)を解析して、“添付された暗号側の公開情報を用いて復号側ＴＰＭ２２２に保持された秘密部により共通鍵を生成し、その共通鍵で添付された暗号文を復号し、平文を復号側ＣＰＵ２２１に返す”と判定する。そして、復号側ＴＰＭ２２２は、ステップＳ２５７において、暗号鍵事前配布方式（ＫＰＳ）に従い共通鍵を生成し、ステップＳ２５９において、この共通鍵で暗号文を復号して平文を生成する。
【００５２】
復号側ＴＰＭ２２２は、ステップＳ２６１において、共通鍵で復号した平文と復号側ＴＰＭ２２２での処理のステータスとを添付した復号応答コマンドDecrypt(平文，ステータス）を復号側ＣＰＵ２２１に返す。また、復号側ＴＰＭ２２２は、ステップＳ２６３において、復号のために生成した共通鍵を破棄する。
【００５３】
（システム構成）
図３Ａは、本実施形態に係る暗号通信システム２００の概略構成を示すブロック図である。なお、図３Ａには、各通信装置における通信制御外の構成については省略している。
【００５４】
暗号側装置２１０は、前述のＣＰＵ２１１とＴＰＭ２１２とを備える。ＣＰＵ２１１は、アプリケーション３１１と、暗号機能モジュール３１２と、Ｉ２Ｃ(Inter Integrated Circuit)３１３と、を有する。ここで、アプリケーション３１１は、主に、復号側装置２２０との通信を含むサービスを提供するソフトウェアからなる。また、暗号機能モジュール３１２は、アプリケーション３１１の動作に従って、ＴＰＭ２１２を使用して暗号化処理を行なうためのソフトウェアを含む。また、Ｉ２Ｃ３１３は、ＴＰＭ２１２とシリアルインタフェースで接続されるＧＰＩＯ(General Purpose Input/Output)として動作する。
【００５５】
また、復号側装置２２０は、前述のＣＰＵ２２１とＴＰＭ２２２とを備える。ＣＰＵ２２１は、アプリケーション３２１と、復号機能モジュール３２２と、Ｉ２Ｃ３２３と、を有する。ここで、アプリケーション３２１は、主に、暗号側装置２１０との通信を含むサービスを提供するソフトウェアからなる。また、復号機能モジュール３２２は、アプリケーション３２１の動作に従って、ＴＰＭ２２２を使用して復号処理を行なうためのソフトウェアを含む。また、Ｉ２Ｃ３２３は、ＴＰＭ２２２と２本の信号線（ＳＣＬ:Serial ClockとＳＤＡ:Serial Data）によるシリアルインタフェースで接続されるＧＰＩＯとして動作する。
【００５６】
《通信装置》
図３Ｂ〜図４Ｄを参照して、本実施形態の暗号側装置２１０および復号側装置２２０を含む通信装置について説明する。
【００５７】
（概略構成）
図３Ｂは、本実施形態に係る通信装置２１０／２２０の概略構成を示すブロック図である。なお、図３Ｂは、ＴＰＭ２１２／２２２を搭載する通信装置の一般的な構成を示し、本実施形態の通信装置は図３Ｂの構成に限定されない。
【００５８】
通信装置２１０／２２０は、ＣＰＵ２１１／２２１と、ＲＯＭ３２０と、ＲＡＭ３４０と、制御部(Controller)３６０と、表示部(Display)３６１と、操作部(Keyboard)３６２と、を有する。なお、他の図示された構成については詳説を省略する。
【００５９】
ＣＰＵ２１１／２２１は、通信装置２１０／２２０を制御する中央処理装置である。ＲＯＭ３２０は、ブートプログラムや固定値を不揮発に保持する記憶部である。ＲＡＭ３４０は、ＣＰＵ２１１／２２１が書換可能な一時記憶として使用する記憶部である。制御部(Controller)３６０は、ＣＰＵバスとＩＯバスとを接続して周辺装置（ＩＤデバイス）を制御する。
【００６０】
（ソフトウェア構成）
図３Ｃは、本実施形態に係る通信装置２１０／２２０のソフトウェアレイヤ構成を示すブロック図である。なお、図３Ｃは、ＴＰＭ２１２／２２２を搭載する通信装置の一般的なソフトウェア構成を示し、本実施形態の通信装置は図３Ｃのソフトウェアレイヤ構成に限定されない。
【００６１】
通信装置２１０／２２０のソフトウェア構成は、概略、図３Ａに示したように、アプリケーション(Application)３１１／３２１と、暗号機能モジュール３１２／復号機能モジュール３２２と、を含む。暗号機能モジュール３１２／復号機能モジュール３２２は、アプリケーション３１１／３２１とＴＳＰＩ(TCG Service Provider Interface)を介して接続するＴＳＰ(TCG Service Provider)を有する。また、暗号機能モジュール３１２／復号機能モジュール３２２は、ＴＳＰとＴＣＳＩ(TSS Core Services Interface)を介して接続するＴＣＳ(TSS Core Services)を有する。また、暗号機能モジュール３１２／復号機能モジュール３２２は、ＴＣＳＩとＴＤＤＬＩ(TPM Device Driver Library Interface)を介して接続するＴＤＤＬ(TCG Device Driver Library)を有する。また、暗号機能モジュール３１２／復号機能モジュール３２２は、ＴＰＭ２１２／２２２を駆動制御するＴＤＤ(TPM Device Driver)を有する。
【００６２】
（ハードウェア構成）
図４Ａは、本実施形態に係る通信装置２１０／２２０のハードウェア構成を示すブロック図である。
【００６３】
図４Ａで、ＣＰＵ２１１／２２１は演算制御用のプロセッサであり、プログラムを実行することで図３Ａ乃至図３Ｃの機能構成部を実現する。ＲＯＭ３２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。通信制御部４３０は、ネットワークを介してサーバや他の通信装置との通信を制御する。入出力インタフェース３６０は、表示部や操作部などの入出力を制御する。
【００６４】
ＲＡＭ３４０は、ＣＰＵ２１１／２２１が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ３４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。平文は、暗号側装置２１０の場合の暗号前の文である。変分からの暗号文は、暗号側装置２１０の場合に平文から本実施形態の暗号化処理により生成された暗号化後の文である。受信した暗号文は、復号側装置２２０の場合の暗号側装置２１０から伝送された暗号化された文である。暗号文から復号した平文は、復号側装置２２０の場合の本実施形態の復号処理により暗号文から復号された文である。送受信データは、通信制御部４３０を介してサーバや他の通信装置とやり取りするメッセージデータである。入出力データは、入出力インタフェース３６０を介して入出力デバイスとやり取りするデータである。
【００６５】
ストレージ４５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。通信相手の公開情報保持部４５１は、通信相手の通信装置から伝送され、暗号化または復号時に共有鍵を生成するために使用されるＫＰＳ公開部を保持する。ストレージ４５０には、以下のプログラムが保持される。通信装置制御プログラムは、通信装置２１０／２２０の全体を制御するプログラムである。ＫＰＳ秘密部埋込モジュールは、配布されたＫＰＳ秘密部をＴＭＰに埋め込むためのモジュールである。ＫＰＳ公開部伝送モジュールは、配布されたＫＰＳ公開部を通信相手の通信装置に伝送するためのモジュールである。なお、ＫＰＳ秘密部埋込モジュールとＫＰＳ公開部伝送モジュールとを、まとめて運用準備モジュールとしてもよい。暗号文送信モジュールは、ＴＰＭ内においてＫＰＳ秘密鍵および通信相手から伝送されたＫＰＳ公開鍵から共通鍵を生成して、平文をこの共通鍵で暗号化し、通信相手の通信装置に暗号文を送信するモジュールである。平文復号モジュールは、ＴＰＭ内においてＫＰＳ秘密鍵および通信相手から伝送されたＫＰＳ公開鍵から共通鍵を生成して、通信相手から受信した暗号文をこの共通鍵で復号し、元の平文を生成するモジュールである。
【００６６】
入出力インタフェース３６０には、表示部３６１と、操作部３６２と、ＴＰＭ２１２／２２２と、が接続される。なお、ＴＰＭ２１２／２２２は、別のインタフェースにより接続されてもよい。
【００６７】
なお、図４ＡのＲＡＭ３４０やストレージ４５０には、通信装置２１０／２２０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【００６８】
（運用準備処理手順）
図４Ｂは、本実施形態に係る通信装置２１０／２２０の運用準備処理の手順を示すフローチャートである。このフローチャートは、図４ＡのＣＰＵ２１１／２２１がＲＡＭ３４０を使用して実行し、図３Ａ〜図３Ｃの機能構成部を実現する。なお、以下の通信装置２１０／２２０の処理手順は、通信装置２１０／２２０が暗号化および復号の両処理機能を備えたものとして説明するが、実際には、暗号側装置専用または復号側装置専用の装置もあり、これらも含むものである。
【００６９】
通信装置２１０／２２０は、ステップＳ４１１において、ＫＰＳにおける（公開部，秘密部）の組を取得する。なお、前述した如く、公開部に基づいて秘密部を取得してもよい。通信装置２１０／２２０は、ステップＳ４１３において、ＴＰＭに対してＫＰＳ秘密部の埋め込みを指示する。通信装置２１０／２２０は、ステップＳ４１５において、通信相手のＣＰＵに対してＫＰＳ公開部を伝送する。
【００７０】
通信装置２１０／２２０は、ステップＳ４１７において、通信相手からのＫＰＳ公開部の受信を待って、ＫＰＳ公開部の受信があれば、ステップＳ４１９において、受信した通信相手のＫＰＳ公開部を記憶する。
【００７１】
（暗号文送信処理手順）
図４Ｃは、本実施形態に係る通信装置２１０／２２０の暗号文送信処理の手順を示すフローチャートである。このフローチャートは、図４ＡのＣＰＵ２１１／２２１がＲＡＭ３４０を使用して実行し、図３Ａ〜図３Ｃの機能構成部を実現する。
【００７２】
通信装置２１０／２２０は、ステップＳ４２１において、暗号化対象の平文メッセージがあるか否かを判定する。暗号化対象の平文メッセージがあれば、通信装置２１０／２２０は、ステップＳ４２３において、記憶していた送信先の公開情報（公開部）を読み出す。そして、通信装置２１０／２２０は、ステップＳ４２５において、平文と公開情報とを添付した暗号化コマンドEncryptをＴＰＭに送付する。
【００７３】
通信装置２１０／２２０は、ステップＳ４２７において、ＴＰＭからの暗号文の返信を待って、ＴＰＭからの暗号文の返信があれば、ステップＳ４２９において、暗号文を送信先に送付する。
【００７４】
（平文復号処理手順）
図４Ｄは、本２実施形態に係る通信装置２１０／２２０の平文復号処理の手順を示すフローチャートである。このフローチャートは、図４ＡのＣＰＵ２１１／２２１がＲＡＭ３４０を使用して実行し、図３Ａ〜図３Ｃの機能構成部を実現する。
【００７５】
通信装置２１０／２２０は、ステップＳ４３１において、復号対象の暗号文メッセージがあるか否かを判定する。復号対象の暗号文メッセージがあれば、通信装置２１０／２２０は、ステップＳ４３３において、記憶していた送信元の公開情報（公開部）を読み出す。そして、通信装置２１０／２２０は、ステップＳ４３５において、暗号文と公開情報とを添付した復号コマンドDecryptをＴＰＭに送付する。
【００７６】
通信装置２１０／２２０は、ステップＳ４３７において、ＴＰＭからの平文の返信を待って、ＴＰＭからの平文の返信があれば、ステップＳ４３９において、平文を出力する。
【００７７】
《セキュリティチップ》
図５Ａ〜図５Ｄを参照して、本実施形態のセキュリティチップ（ＴＭＰ）２１２／２２２の構成および動作を説明する。
【００７８】
（ハードウェア構成）
図５Ａは、本実施形態に係るセキュリティチップ（ＴＭＰ）２１２／２２２のハードウェア構成を示すブロック図である。なお、図５Ａは、本実施形態のセキュリティチップ（ＴＭＰ）２１２／２２２の構成例でありこれに限定されない。すなわち、さらに種々の機能が追加可能である。
【００７９】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ＴＭＰ用ＣＰＵ５１０と、不揮発メモリ５２０と、入出力インタフェース（Ｉ／Ｏ）５３０と、ＲＡＭ５４０と、プログラム５５０と、を備える。
【００８０】
ＴＭＰ用ＣＰＵ５１０は、ＴＭＰ全体を制御して各機能を実現する。不揮発メモリ５２０は電源なしでも記憶内容を維持するメモリであり、ＫＰＳ秘密部５２１の記憶領域が確保されている。なお、ＫＰＳ秘密部５２１の記憶領域は、暗号化や復号時に読み出し可能であれば固定であっても変化してもよい。入出力インタフェース（Ｉ／Ｏ）５３０は、ＴＭＰと装置のＣＰＵ２１１／２２１とを接続するためのインタフェースである。ＲＡＭ５４０は、ＴＭＰ用ＣＰＵ５１０が一時記憶のために使用する記憶部である。プログラム５５０は、ＴＭＰが実現する機能に対応するプログラムを保持し、本実施形態においては、ＫＰＳ演算モジュール５５１と、秘密部埋込モジュール５５２と、暗号化モジュールおよび復号モジュール５５３と、を保持する。
【００８１】
ＫＰＳ演算モジュール５５１は、暗号化コマンドや復号コマンドを受信して、通信相手の公開部を用いて秘密部により共通鍵を生成するモジュールである。秘密部埋込モジュール５５２は、装置ＣＰＵからの指示に従ってＫＰＳ秘密部を不揮発メモリに保持するモジュールである。暗号化モジュールおよび復号モジュール５５３は、ＫＰＳ演算モジュール５５１により生成された共通鍵を用いて、平文を暗号文に、暗号文を平文にするモジュールである。
【００８２】
なお、上記参照符号を付して説明した以外の構成要素は、ＴＰＭが一般に備える機能を示すブロックであり、ここでは説明を省略する。
【００８３】
（秘密部埋込処理手順）
図５Ｂは、本実施形態に係るセキュリティチップ（ＴＭＰ）２１２／２２２の秘密部埋込処理の手順を示すフローチャートである。このフローチャートは、図５ＡのＴＭＰ用ＣＰＵ５１０がＲＡＭ５４０を用いて実行し、図５Ａの機能構成部を実現する。なお、以下のセキュリティチップ（ＴＭＰ）２１２／２２２の処理手順は、セキュリティチップ（ＴＭＰ）２１２／２２２が暗号化および復号の両処理機能を備えた通信装置で使用されているとして説明するが、実際には、暗号側装置専用または復号側装置専用のセキュリティチップ（ＴＭＰ）もあり、これらも含むものである。
【００８４】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５１１において、ＫＰＳ秘密部の埋込コマンドの受信を待つ。ＫＰＳ秘密部の埋込コマンドを受信した場合、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５１３において、埋込コマンドのからＫＰＳ秘密部を取得する。そして、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５１５において、取得されたＫＰＳ秘密部を不揮発メモリに保存する。
【００８５】
（暗号化処理手順）
図５Ｃは、本実施形態に係るセキュリティチップ（ＴＭＰ）２１２／２２２の暗号化処理の手順を示すフローチャートである。このフローチャートは、図５ＡのＴＭＰ用ＣＰＵ５１０がＲＡＭ５４０を用いて実行し、図５Ａの機能構成部を実現する。
【００８６】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５２１において、暗号化コマンドEncryptの受信を待つ。暗号化コマンドEncryptの受信があると、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５２３において、暗号化コマンドから添付された平文と公開情報（公開部）とを取得する。そして、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５２５において、取得した公開情報を用いてＴＭＰ内のＫＳＰ秘密部に基づき共通鍵を算出する。
【００８７】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５２７において、算出した共通鍵により取得した平文を暗号化する。セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５２９において、算出した共通鍵を破棄する。そして、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５３１において、暗号文とステータスとを添付して装置ＣＰＵからの暗号化コマンドに返信する。
【００８８】
（復号処理の手順）
図５Ｄは、本実施形態に係るセキュリティチップ（ＴＭＰ）２１２／２２２の復号処理の手順を示すフローチャートである。このフローチャートは、図５ＡのＴＭＰ用ＣＰＵ５１０がＲＡＭ５４０を用いて実行し、図５Ａの機能構成部を実現する。
【００８９】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５４１において、復号コマンドDecryptの受信を待つ。復号コマンドDecryptの受信があると、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５４３において、復号コマンドから添付された暗号文と公開情報（公開部）とを取得する。そして、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５４５において、取得した公開情報を用いてＴＭＰ内のＫＳＰ秘密部に基づき共通鍵を算出する。
【００９０】
セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５４７において、算出した共通鍵により取得した暗号文を復号する。セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５４９において、算出した共通鍵を破棄する。そして、セキュリティチップ（ＴＭＰ）２１２／２２２は、ステップＳ５５１において、平文とステータスとを添付して装置ＣＰＵからの復号コマンドに返信する。
【００９１】
本発明によれば、暗号化や復号時にＴＰＭ内で共通鍵を生成して、ＴＰＭ内で暗号化や復号を行ない、終了後には共通鍵を破棄することにより、共通鍵の漏洩を防いで、通信情報の秘匿性を高めることができる。
【００９２】
［第３実施形態］
次に、本発明の第３実施形態に係る暗号通信システムについて説明する。本実施形態に係る暗号通信システムは、上記第２実施形態と比べると、さらに、共通鍵暗号のＣＢＣモード(Cipher Block Chaining Mode)、あるいは、ＣＦＢモード(Cipher Feedback Mode)で使用される初期ベクタ(ＩＶ：Initialization Vector)の共有のために、初期ベクタ用のＫＰＳの秘密アルゴリズム部分をＴＰＭ内に隠ぺいし、公開部は自由に公開する点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９３】
《暗号通信システム》
図７Ａ〜図７Ｃを参照して、本実施形態の暗号通信システム７００の構成および動作について説明する。
【００９４】
（運用準備処理シーケンス）
図７Ａは、本実施形態に係る暗号通信システム７００の運用準備処理の動作手順を示すシーケンス図である。なお、図７Ａにおける各ステップは、図２ＡにおけるＫＰＳ公開部およびＫＰＳ秘密部を、初期値ベクタ（ＩＶ）の共有にまで拡張したものである。
【００９５】
初期値ベクタ（ＩＶ）に対しても、ＫＰＳの（公開部，秘密部）の組を配布する配布装置７３０は、ステップＳ７０１において、暗号側装置７１０の暗号側ＣＰＵ７１１と、復号側装置７２０の復号側ＣＰＵ７２１と、にＫＰＳの（公開部，秘密部）の組を配布する。なお、図７Ａにおいては、配布装置７３０からＫＰＳの（公開部，秘密部）の組を配布する例を示したが、暗号側ＣＰＵ７１１または復号側ＣＰＵ７２１から公開部を送信し、秘密部を受領してもよい。
【００９６】
暗号側ＣＰＵ７１１は、ステップＳ７１１において、暗号側ＴＰＭ７１２に対して受領したＫＰＳ秘密部を埋め込むように指示する。暗号側ＴＰＭ７１２は、ステップＳ７１３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【００９７】
また、暗号側ＣＰＵ７１１は、ステップＳ７１５において、受領したＫＰＳ公開部を復号側ＣＰＵ７２１に対して伝送し、復号側ＣＰＵ７２１から伝送された復号側のＫＰＳ公開部を受信する。そして、暗号側ＣＰＵ７１１は、ステップＳ７１７において、受信した復号側のＫＰＳ公開部を記憶する。
【００９８】
一方、復号側ＣＰＵ７２１は、ステップＳ７２１において、復号側ＴＰＭ７２２に対して受領したＫＰＳ秘密部を埋め込むように指示する。復号側ＴＰＭ７２２は、ステップＳ７２３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【００９９】
また、復号側ＣＰＵ７２１は、ステップＳ７２５において、受領したＫＰＳ公開部を暗号側ＣＰＵ７１１に対して伝送し、暗号側ＣＰＵ７１１から伝送された暗号側のＫＰＳ公開部を受信する。そして、復号側ＣＰＵ７２１は、ステップＳ７２７において、受信した暗号側のＫＰＳ公開部を記憶する。
【０１００】
（暗号化処理シーケンス）
図７Ｂは、本実施形態に係る暗号通信システム７００の暗号化処理の動作手順を示すシーケンス図である。なお、図７Ｂにおける各ステップは、図２ＢにおけるＫＰＳ公開部およびＫＰＳ秘密部を、初期値ベクタ（ＩＶ）の共有にまで拡張したものである。また、図７Ｂにおいて、図２Ｂと同様のステップには同じステップ番号を付している。
初期値ベクタ（ＩＶ）に対しても、暗号側ＣＰＵ７１１は、ステップＳ７３１において、記憶している復号側の公開情報（公開部）を読み出す。暗号側ＣＰＵ７１１は、ステップＳ７３３において、平文メッセージを取得して暗号側ＴＰＭ７１２にインプットする。すなわち、暗号側ＣＰＵ７１１は、ステップＳ７３５において、平文および復号側の公開情報を添付した暗号化コマンドEncrypt(平文，復号側の鍵用公開情報，復号側のIV用公開情報)を暗号側ＴＰＭ７１２に送信する。
【０１０１】
暗号側ＴＰＭ７１２は、受信した暗号化コマンドEncrypt(平文，復号側の鍵用公開情報，復号側のIV用公開情報)を解析して、“添付された復号側の鍵用公開情報およびIV用公開情報を用いて暗号側ＴＰＭ７１２に保持された秘密部により共通鍵を生成し、その共通鍵で添付された平文をブロックごとに繰り返し暗号化し、暗号文を暗号側ＣＰＵ７１１に返す”と判定する。そして、暗号側ＴＰＭ７１２は、ステップＳ７３７において、暗号鍵事前配布方式（ＫＰＳ）に従い共通鍵を生成し、ステップＳ７３９において、この共通鍵で平文を暗号化して暗号文を生成する。
【０１０２】
暗号側ＴＰＭ７１２は、ステップＳ２４１において、共通鍵で暗号化した暗号文と暗号側ＴＰＭ７１２での処理のステータスとを添付した暗号化応答コマンドEncrypt(暗号文，ステータス）を暗号側ＣＰＵ７１１に返す。また、暗号側ＴＰＭ７１２は、ステップＳ７４３において、暗号化のために生成した共通鍵を破棄する。
【０１０３】
暗号側ＣＰＵ７１１は、ステップＳ２４５において、暗号側ＴＰＭ７１２から返された暗号文を復号側装置７２０の復号側ＣＰＵ７２１に伝送する。暗号文の伝送は、ステップＳ２４７において、暗号化されたメッセージとして復号側ＣＰＵ７２１に伝送される。
【０１０４】
（復号処理シーケンス）
図７Ｃは、本実施形態に係る暗号通信システム７００の復号処理の動作手順を示すシーケンス図である。なお、図７Ｃにおける各ステップは、図２ＢにおけるＫＰＳ公開部およびＫＰＳ秘密部を、初期値ベクタ（ＩＶ）の共有にまで拡張したものである。また、図７Ｃにおいて、図２Ｃと同様のステップには同じステップ番号を付している。
復号側ＣＰＵ７２１は、ステップＳ２５１において、暗号側ＣＰＵ２１１からステップＳ２４７で伝送された暗号化されたメッセージから暗号文を受信する。復号側ＣＰＵ７２１は、ステップＳ７５３において、記憶している暗号側の公開情報（公開部）を読み出す。復号側ＣＰＵ７２１は、ステップＳ７５５において、暗号文および暗号側の公開情報を添付した復号コマンドDecrypt(暗号文，暗号側の鍵用公開情報，暗号側のIV用公開情報)を復号側ＴＰＭ７２２に送信する。
【０１０５】
復号側ＴＰＭ７２２は、受信した復号コマンドEncrypt(暗号文，暗号側の鍵用公開情報，暗号側のIV用公開情報)を解析して、“添付された暗号側の鍵用公開情報およびIV用公開情報を用いて復号側ＴＰＭ７２２に保持された秘密部により共通鍵を生成し、その共通鍵で添付された暗号文を復号し、平文を復号側ＣＰＵ７２１に返す”と判定する。そして、復号側ＴＰＭ７２２は、ステップＳ７５７において、暗号鍵事前配布方式（ＫＰＳ）に従い共通鍵を生成し、ステップＳ７５９において、この共通鍵で暗号文を復号して平文を生成する。
【０１０６】
復号側ＴＰＭ７２２は、ステップＳ２６１において、共通鍵で復号した平文と復号側ＴＰＭ２２２での処理のステータスとを添付した復号応答コマンドDecrypt(平文，ステータス）を復号側ＣＰＵ７２１に返す。また、復号側ＴＰＭ７２２は、ステップＳ７６３において、復号のために生成した共通鍵を破棄する。
【０１０７】
《通信装置》
図８Ａおよび図８Ｂを参照して、本実施形態の通信装置７１０／７２０の構成および動作について説明する。
【０１０８】
（ハードウェア構成）
図８Ａは、本実施形態に係る通信装置７１０／７２０のハードウェア構成を示すブロック図である。なお、図８Ａにおいて、図４Ａと同様の構成要素には同じ参照番号を付して、説明を省略する。
【０１０９】
図８Ａで、ＣＰＵ７１１／７２１は演算制御用のプロセッサであり、プログラムを実行することで図７Ａ乃至図７Ｃの機能構成部を実現する。
【０１１０】
ストレージ８５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。通信相手の鍵用公開情報保持部８５１は、通信相手の通信装置から伝送され、暗号化または復号時に共有鍵を生成するために使用される共通鍵生成用のＫＰＳ公開部を保持する。通信相手のIV用公開情報保持部８５２は、通信相手の通信装置から伝送され、暗号化または復号時に共有鍵を生成するために使用されるＩＶ生成用のＫＰＳ公開部を保持する。
【０１１１】
入出力インタフェース３６０には、ＴＰＭ７１２／７２２と、が接続される。なお、ＴＰＭ７１２／７２２は、別のインタフェースにより接続されてもよい。
【０１１２】
なお、図８ＡのＲＡＭ３４０やストレージ８５０には、通信装置７１０／７２０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。  （運用準備処理手順）
図８Ｂは、本実施形態に係る通信装置７１０／７２０の運用準備処理の手順を示すフローチャートである。このフローチャートは、図８ＡのＣＰＵ７１１／７２１がＲＡＭ３４０を使用して実行し、図７Ａ〜図７Ｃの機能構成部を実現する。なお、以下の通信装置７１０／７２０の処理手順は、通信装置７１０／７２０が暗号化および復号の両処理機能を備えたものとして説明するが、実際には、暗号側装置専用または復号側装置専用の装置もあり、これらも含むものである。また、図８Ｂにおける各ステップは、図４ＢにおけるＫＰＳ公開部およびＫＰＳ秘密部を、初期値ベクタ（ＩＶ）の共有にまで拡張したものである。
【０１１３】
通信装置７１０／７２０は、ステップＳ８１１において、初期値ベクタ（ＩＶ）も含むＫＰＳにおける（公開部，秘密部）の組を取得する。なお、前述した如く、公開部に基づいて秘密部を取得してもよい。通信装置７１０／７２０は、ステップＳ８１３において、ＴＰＭに対してＫＰＳ秘密部の埋め込みを指示する。通信装置７１０／７２０は、ステップＳ８１５において、通信相手のＣＰＵに対してＫＰＳ公開部を伝送する。
【０１１４】
通信装置７１０／７２０は、ステップＳ８１７において、通信相手からのＫＰＳ公開部の受信を待って、ＫＰＳ公開部の受信があれば、ステップＳ８１９において、受信した通信相手のＫＰＳ公開部を記憶する。
【０１１５】
《セキュリティチップ》
図９Ａおよび図９Ｂを参照して、本実施形態のセキュリティチップ（ＴＭＰ）７１２／７２２の構成および動作について説明する。
【０１１６】
（ハードウェア構成）
図９Ａは、本実施形態に係るセキュリティチップ（ＴＭＰ）７１２／７２２のハードウェア構成を示すブロック図である。なお、図９Ａにおいて、図５Ａと同様な機能構成部には同じ参照番号を付して、重複する説明を省略する。
【０１１７】
不揮発メモリ９２０は、鍵用ＫＰＳ秘密部９２１とIV用ＫＰＳ秘密部９２２とを保持する。また、プログラム９５０は、ＴＭＰが実現する機能に対応するプログラムを保持し、本実施形態においては、ＫＰＳ演算モジュール９５１と、秘密部埋込モジュール９５２と、暗号化モジュールおよび復号モジュール９５３と、を保持する。
【０１１８】
ＫＰＳ演算モジュール９５１は、暗号化コマンドや復号コマンドを受信して、通信相手の公開部を用いて秘密部により共通鍵およびＩＶを生成するモジュールである。秘密部埋込モジュール９５２は、装置ＣＰＵからの指示に従って共通鍵およびＩＶを生成するＫＰＳ秘密部を不揮発メモリに保持するモジュールである。暗号化モジュールおよび復号モジュール９５３は、ＫＰＳ演算モジュール９５１により生成された共通鍵およびＩＶを用いて、平文を暗号文に、暗号文を平文にするモジュールである。
【０１１９】
（秘密部埋込処理手順）
図９Ｂは、本実施形態に係るセキュリティチップ（ＴＭＰ）７１２／７２２の秘密部埋込処理の手順を示すフローチャートである。このフローチャートは、図９ＡのＴＭＰ用ＣＰＵ５１０がＲＡＭ５４０を用いて実行し、図９Ａの機能構成部を実現する。なお、以下のセキュリティチップ（ＴＭＰ）７１２／７２２の処理手順は、セキュリティチップ（ＴＭＰ）７１２／７２２が暗号化および復号の両処理機能を備えた通信装置で使用されているとして説明するが、実際には、暗号側装置専用または復号側装置専用のセキュリティチップ（ＴＭＰ）もあり、これらも含むものである。また、図９Ａにおける各ステップは、図５ＢにおけるＫＰＳ公開部およびＫＰＳ秘密部を、初期値ベクタ（ＩＶ）の共有にまで拡張したものである。
【０１２０】
セキュリティチップ（ＴＭＰ）７１２／７２２は、ステップＳ９１１において、初期値ベクタ（ＩＶ）も含むＫＰＳ秘密部の埋込コマンドの受信を待つ。ＫＰＳ秘密部の埋込コマンドを受信した場合、セキュリティチップ（ＴＭＰ）７１２／７２２は、ステップＳ９１３において、埋込コマンドのからＫＰＳ秘密部を取得する。そして、セキュリティチップ（ＴＭＰ）７１２／７２２は、ステップＳ９１５において、取得された共通鍵およびＩＶ用のＫＰＳ秘密部を不揮発メモリに保存する。
【０１２１】
なお、本実施形態では説明しなかったが、２ブロック目以降の暗号化ないし復号に用いる初期ベクタは、ＣＢＣモード、ＣＦＢモードにより、ＴＰＭ内で更新するものとする。
【０１２２】
本実施形態によれば、さらに、共通鍵暗号のＣＢＣモード、あるいは、ＣＦＢモードで使用される初期ベクタ(ＩＶ）の漏洩を防いで、通信情報の秘匿性を高めることができる。
【０１２３】
［第４実施形態］
次に、本発明の第４実施形態に係る暗号通信システムについて説明する。本実施形態に係る暗号通信システムは、上記第２実施形態および第３実施形態と比べると、３つ以上の通信装置間で秘密部とお互いの公開部とから共通鍵あるいは初期化ベクタを生成する点で異なる。その他の構成および動作は、第２実施形態または第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１２４】
（運用準備処理シーケンス）
図１０は、本実施形態に係る暗号通信システムの運用準備処理の動作手順を示すシーケンス図である。なお、図１０における各ステップは、図２ＡにおけるＫＰＳ公開部およびＫＰＳ秘密部を、３つ以上の通信装置間での互いの共有にまで拡張したものである。また、図１０においては、る配布装置２３０によるＫＰＳの（公開部，秘密部）の組を各通信装置のＣＰＵに配布するステップは、重複を避けるため図示していない。
【０１２５】
装置ＵのＣＰＵ１０１１は、ステップＳ１０１１において、装置ＵのＴＰＭ１０１２に対して受領したＫＰＳ秘密部を埋め込むように指示する。装置ＵのＴＰＭ１０１２は、ステップＳ１０１３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【０１２６】
また、装置ＵのＣＰＵ１０１１は、ステップＳ１０１５において、受領したＫＰＳ公開部を装置ＶのＣＰＵ１０２１に対して伝送し、装置ＶのＣＰＵ１０２１から伝送された装置ＶのＫＰＳ公開部を受信する。そして、装置ＵのＣＰＵ１０１１は、ステップＳ１０１７において、受信した装置ＶのＫＰＳ公開部を記憶する。
【０１２７】
一方、装置ＶのＣＰＵ１０２１は、ステップＳ１０３１において、装置ＶのＴＰＭ１０２２に対して受領したＫＰＳ秘密部を埋め込むように指示する。装置ＶのＴＰＭ１０２２は、ステップＳ１０３３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【０１２８】
また、装置ＶのＣＰＵ１０２１は、ステップＳ１０３５において、受領したＫＰＳ公開部を装置ＵのＣＰＵ１０１１に対して伝送し、装置ＵのＣＰＵ１０１１から伝送された装置ＵのＫＰＳ公開部を受信する。そして、装置ＶのＣＰＵ１０２１は、ステップＳ１０３７において、受信した装置ＵのＫＰＳ公開部を記憶する。
【０１２９】
また、装置ＶのＣＰＵ１０２１は、ステップＳ１０３９において、受領したＫＰＳ公開部を装置ＷのＣＰＵ１０３１に対して伝送し、装置ＷのＣＰＵ１０３１から伝送された装置ＷのＫＰＳ公開部を受信する。そして、装置ＶのＣＰＵ１０２１は、ステップＳ１０４１において、受信した装置ＷのＫＰＳ公開部を記憶する。
【０１３０】
一方、装置ＷのＣＰＵ１０３１は、ステップＳ１０５１において、装置ＷのＴＰＭ１０３２に対して受領したＫＰＳ秘密部を埋め込むように指示する。装置ＷのＴＰＭ１０３２は、ステップＳ１０５３において、ＫＰＳ秘密部をセキュアに不揮発メモリの所定位置に保持する。
【０１３１】
また、装置ＷのＣＰＵ１０３１は、ステップＳ１０５５において、受領したＫＰＳ公開部を装置ＶのＣＰＵ１０２１に対して伝送し、装置ＶのＣＰＵ１０２１から伝送された装置ＶのＫＰＳ公開部を受信する。そして、装置ＷのＣＰＵ１０３１は、ステップＳ１０５７において、受信した暗号側のＫＰＳ公開部を記憶する。
【０１３２】
また、装置ＵのＣＰＵ１０１１は、ステップＳ１０１９において、受領したＫＰＳ公開部を装置ＷのＣＰＵ１０３１に対して伝送し、装置ＷのＣＰＵ１０３１から伝送された装置ＷのＫＰＳ公開部を受信する。そして、装置ＵのＣＰＵ１０１１は、ステップＳ１０２１において、受信した装置ＷのＫＰＳ公開部を記憶する。
【０１３３】
一方、装置ＷのＣＰＵ１０３１は、ステップＳ１０５９において、受領したＫＰＳ公開部を装置ＵのＣＰＵ１０１１に対して伝送し、装置ＵのＣＰＵ１０１１から伝送された装置ＵのＫＰＳ公開部を受信する。そして、装置ＷのＣＰＵ１０３１は、ステップＳ１０６１において、受信した装置ＵのＫＰＳ公開部を記憶する。
【０１３４】
《通信装置》
図１１Ａ〜図１１Ｄを参照して、本実施形態の通信装置Ｕ／Ｖ／Ｗの構成および動作について説明する。
【０１３５】
（公開情報テーブル）
図１１Ａは、本実施形態に係る通信装置Ｕ／Ｖ／Ｗに記憶される公開情報テーブル１１１０／１１２０／１１３０の構成を示す図である。ここで、公開情報テーブル１１１０は装置Ｕが保持する。公開情報テーブル１１２０は装置Ｖが保持する。公開情報テーブル１１３０は装置Ｗが保持する。なお、図１１Ａにおける具体値は、図６Ｄに示したBlomアルゴリズムの具体例に対応している。
【０１３６】
公開情報テーブル１１１０は、送信相手の装置ＩＤ１１１１に対応付けて、送信相手から伝送された送信相手の公開情報（公開部）１１１２を記憶する。すなわち、公開情報テーブル１１１０においては、装置Ｖと装置Ｗとから公開情報（公開部）１１１２を伝送され、送信相手と対応付けて記憶している。装置Ｕにおいて、平文を暗号化して暗号文を送信する、あるいは、受信した暗号文を復号して平文を生成する場合に、その通信相手が装置Ｖの場合には公開部としてγv=7が使用され、その通信相手が装置Ｗの場合には公開部としてγw=1が使用されることにより、ＴＰＭに保持された同じ秘密部を使用して通信相手と同じ共通鍵が生成される。
【０１３７】
公開情報テーブル１１２０は、送信相手の装置ＩＤ１１２１に対応付けて、送信相手から伝送された送信相手の公開情報（公開部）１１２２を記憶する。すなわち、公開情報テーブル１１２０においては、装置Ｕと装置Ｗとから公開情報（公開部）１１２２を伝送され、送信相手と対応付けて記憶している。また、公開情報テーブル１１３０は、送信相手の装置ＩＤ１１３１に対応付けて、送信相手から伝送された送信相手の公開情報（公開部）１１３２を記憶する。すなわち、公開情報テーブル１１３０においては、装置Ｕと装置Ｖとから公開情報（公開部）１１３２を伝送され、送信相手と対応付けて記憶している。
【０１３８】
なお、公開情報テーブル１１２０を使用した装置Ｖの処理、および、公開情報テーブル１１３０を使用した装置Ｗの処理は、公開情報テーブル１１１０を使用した装置Ｕの処理と同様であるので、説明を省略する。
【０１３９】
（運用準備処理手順）
図１１Ｂは、本実施形態に係る通信装置Ｕ／Ｖ／Ｗの運用準備処理の手順を示すフローチャートである。なお、図１１Ｂにおいて、図４Ｂと同様のステップには同じステップ番号を付して、重複する説明を省略する。
【０１４０】
通信装置Ｕ／Ｖ／Ｗは、ステップＳ１１１９において、通信相手の装置ＩＤと、受信した通信相手のＫＰＳ公開部とを対応付けて、公開情報テーブルに記憶する。
【０１４１】
（暗号文送信処理手順）
図１１Ｃは、本実施形態に係る通信装置Ｕ／Ｖ／Ｗの暗号文送信処理の手順を示すフローチャートである。なお、図１１Ｃにおいて、図４Ｃと同様のステップには同じステップ番号を付して、重複する説明を省略する。
【０１４２】
通信装置Ｕ／Ｖ／Ｗは、ステップＳ１１２３において、暗号文の送信先に対応付いた公開情報を公開情報テーブルから読み出す。
【０１４３】
（平文復号処理手順）
図１１Ｄは、本実施形態に係る通信装置Ｕ／Ｖ／Ｗの平文復号処理の手順を示すフローチャートである。なお、図１１Ｄにおいて、図４Ｄと同様のステップには同じステップ番号を付して、重複する説明を省略する。
【０１４４】
通信装置Ｕ／Ｖ／Ｗは、ステップＳ１１３３において、暗号文の送信元に対応付いた公開情報を公開情報テーブルから読み出す。
【０１４５】
本実施形態によれば、３台以上の通信装置間でお互いに共通鍵方式で暗号通信する場合に、各通信装置において暗号化や復号時にＴＰＭ内で共通鍵を生成して、ＴＰＭ内で暗号化や復号を行ない、終了後には共通鍵を破棄することにより、共通鍵の漏洩を防いで、通信情報の秘匿性を高めることができる。
【０１４６】
［第５実施形態］
次に、本発明の第５実施形態に係る暗号通信システムについて説明する。本実施形態に係る暗号通信システムは、上記第２実施形態から第４実施形態と比べると、ＴＰＭがアプリケーションに対応する記憶を有しない点で異なる。本実施形態においては、サーバあるいは記憶媒体からダウンロードされたアプリケーションにより、ＴＰＭが上記実施形態の機能を獲得する。その他の構成および動作は、第２実施形態から第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１４７】
（アプリケーションのダウンロード処理シーケンス）
図１２は、本実施形態に係る暗号通信システム１２００のアプリケーションのダウンロード処理の動作手順を示すシーケンス図である。図１２において、通信装置１２１０は本実施形態に従った暗号通信機能を有しないとする。特に、ＴＰＭ１２１２が本実施形態に従った暗号通信機能を有しない場合に対応する。なお、図１２において、図２Ａと同様のステップには同じステップ番号を付して、重複する説明を省略する。
【０１４８】
通信装置１２１０のＣＰＵ１２１１は、ステップＳ１２０１において、本実施形態に従った暗号通信のアプリケーションを提供するサーバあるいは記憶媒体１２２０に対してログインし、本実施形態に従った暗号通信のアプリケーションをダウンロードする。
【０１４９】
通信装置１２１０のＣＰＵ１２１１は、ステップＳ１２０３において、ＴＰＭ１２１２に用意されてない新たなコマンドフォーマットの埋込指示を行なう。ＴＰＭ１２１２は、ステップＳ１２０５において、新たなコマンドフォーマットを不揮発メモリに記憶する。
【０１５０】
通信装置１２１０のＣＰＵ１２１１は、ステップＳ１２０７において、ＴＰＭ１２１２に用意されてない新たな処理プログラムの埋込指示を行なう。ＴＰＭ１２１２は、ステップＳ１２０９において、新たな処理プログラムをプログラム領域に記憶する。
【０１５１】
以降は、ＴＰＭ１２１２が、本実施形態のEncryptコマンドやDecryptコマンドに対応して、処理プログラムに従った、秘密部の保持、共通鍵生成、暗号化および復号、を実現できるようになる。
【０１５２】
本実施形態によれば、あらかじめ通信装置またはＴＰＭが本実施形態の実現に必要な機能を有しなくとも、それら機能付与を通信装置またはＴＰＭにダウンロードすることにより、実現することができる。
【０１５３】
［他の実施形態］
なお、上記実施形態においては、通信装置が配布されたＫＰＳ秘密部をＴＭＰに埋め込む構成を示したが、あらかじめＴＭＰの製造時にＫＰＳ秘密部が埋め込まれており、対応するＫＳＰ公開部を取得して通信相手に伝送する構成であっても、本発明と同様の効果を奏することができる。
【０１５４】
また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１５５】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを保持した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【図１】
0006728799.tif 000002
【図２Ａ】
0006728799.tif 000003
【図２Ｂ】
0006728799.tif 000004
【図２Ｃ】
0006728799.tif 000005
【図３Ａ】
0006728799.tif 000006
【図３Ｂ】
0006728799.tif 000007
【図３Ｃ】
0006728799.tif 000008
【図４Ａ】
0006728799.tif 000009
【図４Ｂ】
0006728799.tif 000010
【図４Ｃ】
0006728799.tif 000011
【図４Ｄ】
0006728799.tif 000012
【図５Ａ】
0006728799.tif 000013
【図５Ｂ】
0006728799.tif 000014
【図５Ｃ】
0006728799.tif 000015
【図５Ｄ】
0006728799.tif 000016
【図６Ａ】
0006728799.tif 000017
【図６Ｂ】
0006728799.tif 000018
【図６Ｃ】
0006728799.tif 000019
【図６Ｄ】
0006728799.tif 000020
【図７Ａ】
0006728799.tif 000021
【図７Ｂ】
0006728799.tif 000022
【図７Ｃ】
0006728799.tif 000023
【図８Ａ】
0006728799.tif 000024
【図８Ｂ】
0006728799.tif 000025
【図９Ａ】
0006728799.tif 000026
【図９Ｂ】
0006728799.tif 000027
【図１０】
0006728799.tif 000028
【図１１Ａ】
0006728799.tif 000029
【図１１Ｂ】
0006728799.tif 000030
【図１１Ｃ】
0006728799.tif 000031
【図１１Ｄ】
0006728799.tif 000032
【図１２】
0006728799.tif 000033