(57)【要約】【課題】一方向通信において通信相手の正当性を検証できる一方向通信システム、方法及びプログラムを提供すること。【解決手段】サーバ１０は、共有鍵を用いて、第１のメッセージを含む第１のデータ列から第１の暗号化メッセージを生成し、パスワードを含む第２のデータ列から第１のハッシュ値を演算し、第１の暗号化メッセージ及び第１のハッシュ値からスクランブル値を生成し、第２のデータ列からパスワードを除いた固有データ、サーバＩＤ及びスクランブル値を連接したパケットを端末２０へ送信する。端末２０は、パケットから、固有データ、サーバＩＤ及びスクランブル値を分離し、第２のデータ列から第２のハッシュ値を演算し、スクランブル値及び第２のハッシュ値から第２の暗号化メッセージを取得し、共有鍵を用いて第２の暗号化メッセージを復号化して第３のデータ列を取得し、第３のデータ列から第２のメッセージを分離する。【選択図】図１
2013042331.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムであって、
前記サーバは、
前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部と、
前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化部と、
少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算部と、
前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算部と、
前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信部と、を備え、
前記端末は、
前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部と、
前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離部と、
前記分離部により得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算部と、
前記分離部により得られた前記スクランブル値、及び前記端末側ハッシュ演算部により得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除部と、
前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化部と、
前記第３のデータ列から第２のメッセージを分離するメッセージ取得部と、を備える一方向通信システム。
【請求項２】
前記端末は、所定の鍵生成関数を用いて、前記端末情報から前記共有鍵を生成する鍵生成部を備える請求項１に記載の一方向通信システム。
【請求項３】
前記固有データは、乱数を含むデータである請求項１又は請求項２に記載の一方向通信システム。
【請求項４】
前記固有データは、前記端末におけるメッセージの管理コードを含む請求項１から請求項３のいずれか１項に記載の一方向通信システム。
【請求項５】
前記サーバ側ハッシュ演算部は、前記第１のデータ列から、前記一方向性ハッシュ関数により第３のハッシュ値を演算し、
前記送信部は、前記固有データ、前記サーバＩＤ、前記スクランブル値及び前記第３のハッシュ値を連接したパケットを、前記端末へ送信し、
前記分離部は、前記パケットから、前記固有データ、前記サーバＩＤ、前記スクランブル値及び前記第３のハッシュ値を分離し、
前記端末側ハッシュ演算部は、前記復号化部により得られた前記第３のデータ列から、前記一方向性ハッシュ関数により第４のハッシュ値を演算し、
前記端末は、前記第３のハッシュ値及び前記第４のハッシュ値が一致するか否かを判定することにより、前記第２のメッセージが前記第１のメッセージと一致するか否かを検証する検証部を備える請求項１から請求項４のいずれか１項に記載の一方向通信システム。
【請求項６】
前記暗号化部は、前記共有鍵を用いた鍵付きハッシュ関数の値との排他的論理和により、前記第１の暗号化メッセージを生成し、
前記復号化部は、前記鍵付きハッシュ関数の値との排他的論理和により、前記第３のデータ列を取得する請求項１から請求項５のいずれか１項に記載の一方向通信システム。
【請求項７】
メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムにおける通信方法であって、
前記サーバは、前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部を備え、
前記端末は、前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部を備え、
前記サーバが、
前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化ステップと、
少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算ステップと、
前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算ステップと、
前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信ステップと、を実行し、
前記端末が、
前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離ステップと、
前記分離ステップで得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算ステップと、
前記分離ステップで得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除ステップと、
前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化ステップと、
前記第３のデータ列から第２のメッセージを分離するメッセージ取得ステップと、を実行する通信方法。
【請求項８】
メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムが実行する通信プログラムであって、
前記サーバは、前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部を備え、
前記端末は、前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部を備え、
前記サーバに、
前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化ステップと、
少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算ステップと、
前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算ステップと、
前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信ステップと、を実行させ、
前記端末に、
前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離ステップと、
前記分離ステップで得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算ステップと、
前記分離ステップで得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除ステップと、
前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化ステップと、
前記第３のデータ列から第２のメッセージを分離するメッセージ取得ステップと、を実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバから端末へメッセージを送信する一方向通信システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、データを送信するサーバと受信する端末との間では、データ通信の信頼性を確保するために、相互認証が行われることが多い。すなわち、端末に向けてメッセージを送信するサーバは、送信先が特定の端末であることを認証した上でメッセージを送信し、メッセージを受信する端末は、送信元が特定のサーバであることを認証した上でメッセージを受信する。
【０００３】
この相互認証には、通信を行う装置や通信種別に応じて、様々な方法が提案されている（例えば、特許文献１、２及び３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３０６２９６号公報
【特許文献２】特開平８−１３０５３６号公報
【特許文献３】再表２００８／０４４２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、メッセージを送信するサーバと受信する端末との間では、サーバへの負荷集中を抑制するために、端末からサーバへのアップリンクを有さない一方向通信が用いられる場合がある。一方向通信は、例えば、放送（ブロードキャスト）、マルチキャスト、Ｃ２ＤＭ（Ｃｌｏｕｄ  ｔｏ  Ｄｅｖｉｃｅ  Ｍｅｓｓａｇｉｎｇ）、ＳＭＳ（Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ）等のプッシュ型のサービスで用いられる。
【０００６】
この一方向通信では、サーバは、送信先である端末を指定してメッセージを送信するが、送信先端末は事前に登録されており、この登録情報に従ってメッセージを送信する。したがって、サーバと端末との間に信頼関係がなくても、サーバに端末が登録済みであれば、メッセージの送受信ができてしまう。すると、例えば、流れているパケットから個人情報が収集されたり、入手されたパケットのコピーが大量送信されたりといった、中間者攻撃を受けるおそれがあった。
【０００７】
また、前述の相互認証を用いる場合、認証時に端末からサーバへのアップリンクが必要となるため、一方向通信への適用は難しかった。
【０００８】
本発明は、一方向通信において通信相手の正当性を検証できる一方向通信システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、以下のような解決手段を提供する。
【００１０】
（１）メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムであって、前記サーバは、前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部と、前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化部と、少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算部と、前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算部と、前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信部と、を備え、前記端末は、前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部と、前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離部と、前記分離部により得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算部と、前記分離部により得られた前記スクランブル値、及び前記端末側ハッシュ演算部により得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除部と、前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化部と、前記第３のデータ列から第２のメッセージを分離するメッセージ取得部と、を備える一方向通信システム。
【００１１】
このような構成によれば、当該一方向通信システムにおいて、パスワードに基づく第１のハッシュ値と第２のハッシュ値とが等しければ、第２の暗号化メッセージは、第１の暗号化メッセージと等しい。さらに、鍵生成部により共有鍵が正しく生成されれば、第２の暗号化メッセージは正しく復号化され、第３のデータ列は第１のデータ列と等しくなる。したがって、第２のメッセージは第１のメッセージと等しくなり、端末にて正しくメッセージが復元される。
【００１２】
すなわち、端末が記憶しているパスワードと等しいパスワードを用いて送信されたパケットについてのみ、メッセージが復元されるので、端末は、一方向通信でありながら、特定のサーバからの送信であることを保証してメッセージを受信できる。
【００１３】
また、固有の端末情報を有する正当な端末でのみ、第１のメッセージが復元され、不正な端末では復元されない。したがって、サーバは、一方向通信でありながら、特定の端末の信頼性を保証してメッセージを送信できる。
【００１４】
（２）前記端末は、所定の鍵生成関数を用いて、前記端末情報から前記共有鍵を生成する鍵生成部を備える（１）に記載の一方向通信システム。
【００１５】
このような構成によれば、当該一方向通信システムにおいて、共有鍵は、端末情報から所定の関数を用いて生成される。したがって、端末情報そのものを共有するのに比べて、安全性が向上する。
【００１６】
（３）前記固有データは、乱数を含むデータである（１）又は（２）に記載の一方向通信システム。
【００１７】
このような構成によれば、当該一方向通信システムにおいて、サーバは、固有データに乱数を含めてメッセージをスクランブル化するので、メッセージの秘匿性を高められる。
【００１８】
（４）前記固有データは、前記端末におけるメッセージの管理コードを含む（１）から（３）のいずれか１項に記載の一方向通信システム。
【００１９】
このような構成によれば、当該一方向通信システムにおいて、サーバは、固有データに端末におけるメッセージの管理コード、例えばカウンタ値又は時刻情報を含める。しがたって、端末は、この管理コードをリプレイアタック防止用のコードとして用い、受信したメッセージの正当性を確認して不正なメッセージを排除したり、さらに、メッセージの保管量を低減して管理負荷を低減したりできる。
【００２０】
（５）前記サーバ側ハッシュ演算部は、前記第１のデータ列から、前記一方向性ハッシュ関数により第３のハッシュ値を演算し、前記送信部は、前記固有データ、前記サーバＩＤ、前記スクランブル値及び前記第３のハッシュ値を連接したパケットを、前記端末へ送信し、前記分離部は、前記パケットから、前記固有データ、前記サーバＩＤ、前記スクランブル値及び前記第３のハッシュ値を分離し、前記端末側ハッシュ演算部は、前記復号化部により得られた前記第３のデータ列から、前記一方向性ハッシュ関数により第４のハッシュ値を演算し、前記端末は、前記第３のハッシュ値及び前記第４のハッシュ値が一致するか否かを判定することにより、前記第２のメッセージが前記第１のメッセージと一致するか否かを検証する検証部を備える（１）から（４）のいずれか１項に記載の一方向通信システム。
【００２１】
このような構成によれば、当該一方向通信システムにおいて、第３のハッシュ値と第４のハッシュ値が等しければ、スクランブル解除と復号化とを経て復元された第２のメッセージがサーバにより送信された第１のメッセージと等しいことが保証され、端末にて正しくメッセージが復元される。
【００２２】
すなわち、サーバが記憶しているパスワードに基づく第１のハッシュ値と、端末が記憶しているパスワードに基づく第２のハッシュ値とが等しく、かつ、サーバで記憶されている共有鍵と同一の共有鍵が鍵生成部により正しく生成された場合にのみ、第２のメッセージが復元される。さらに、復元された第２のメッセージが第１のメッセージと同一であることが保証される。一方、不正な端末では、少なくとも同一のメッセージは復元されない。したがって、サーバは、一方向通信でありながら、特定の端末の信頼性を保証して正しいメッセージを送信できる。
【００２３】
また、端末が記憶しているパスワードと等しいパスワードを用いて送信されたパケットについてのみ、メッセージが正しく復元されるので、端末は、一方向通信でありながら、特定のサーバからの送信であることを保証してメッセージを受信できる。
【００２４】
（６）前記暗号化部は、前記共有鍵を用いた鍵付きハッシュ関数の値との排他的論理和により、前記第１の暗号化メッセージを生成し、前記復号化部は、前記鍵付きハッシュ関数の値との排他的論理和により、前記第３のデータ列を取得する（１）から（５）のいずれか１項に記載の一方向通信システム。
【００２５】
このような構成によれば、一方向通信システムは、鍵付きハッシュ関数を用いて、暗号化及び復号化を行うので、メッセージのスクランブル化と同様の処理により容易に実現され、処理負荷が低減される。
【００２６】
（７）メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムにおける通信方法であって、前記サーバは、前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部を備え、前記端末は、前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部を備え、前記サーバが、前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化ステップと、少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算ステップと、前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算ステップと、前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信ステップと、を実行し、前記端末が、前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除ステップと、前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化ステップと、前記第３のデータ列から第２のメッセージを分離するメッセージ取得ステップと、を実行する通信方法。
【００２７】
このような構成によれば、当該通信方法を一方向通信システムが実行することにより、（１）と同様の効果が期待できる。
【００２８】
（８）メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムが実行する通信プログラムであって、前記サーバは、前記端末に固有の端末情報に基づく共有鍵と、当該サーバを識別するためのサーバＩＤ及び当該サーバＩＤに対応するパスワードとを記憶するサーバ側記憶部を備え、前記端末は、前記サーバＩＤ及び前記パスワードを記憶する端末側記憶部を備え、前記サーバに、前記共有鍵を用いて、少なくとも第１のメッセージを含む第１のデータ列を暗号化して、第１の暗号化メッセージを生成する暗号化ステップと、少なくとも前記パスワードを含む第２のデータ列から、一方向性ハッシュ関数により第１のハッシュ値を演算するサーバ側ハッシュ演算ステップと、前記第１の暗号化メッセージ及び前記第１のハッシュ値の排他的論理和により、スクランブル値を生成するスクランブル演算ステップと、前記第２のデータ列から前記パスワードを除いた固有データ、前記サーバＩＤ及び前記スクランブル値を連接したパケットを、前記端末へ送信する送信ステップと、を実行させ、前記端末に、前記パケットから、前記固有データ、前記サーバＩＤ及び前記スクランブル値を分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記パスワードからなる前記第２のデータ列から、前記一方向性ハッシュ関数により第２のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第２のハッシュ値の排他的論理和により、第２の暗号化メッセージを取得するスクランブル解除ステップと、前記端末情報に基づく共有鍵を用いて前記第２の暗号化メッセージを復号化し、第３のデータ列を取得する復号化ステップと、前記第３のデータ列から第２のメッセージを分離するメッセージ取得ステップと、を実行させるための通信プログラム。
【００２９】
このような構成によれば、当該通信プログラムを一方向通信システムに実行させることにより、（１）と同様の効果が期待できる。
【発明の効果】
【００３０】
本発明によれば、一方向通信において通信相手の正当性が検証される。
【図面の簡単な説明】
【００３１】
【図１】第１実施形態に係る一方向通信システムの機能構成を示すブロック図である。
【図２】第１実施形態に係るメッセージを送信する処理を示すシーケンス図である。
【図３】第２実施形態に係る一方向通信システムの機能構成を示すブロック図である。
【図４】第２実施形態に係るメッセージを送信する処理を示すシーケンス図である。
【発明を実施するための形態】
【００３２】
＜第１実施形態＞
以下、本発明の第１実施形態について説明する。
本実施形態に係る一方向通信システム１は、サーバ１０及び端末２０を有し、サーバ１０から端末２０へメッセージを一方向に送信する。
【００３３】
図１は、本実施形態に係る一方向通信システム１が有するサーバ１０及び端末２０の機能構成を示すブロック図である。
【００３４】
サーバ１０は、制御部１１と、記憶部１２と、通信部１３とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。
【００３５】
制御部１１は、サーバ１０の全体を制御する部分であり、記憶部１２に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。なお、制御部１１が備える各部の機能は後述する。
【００３６】
記憶部１２は、ハードウェア群をサーバ１０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部１２には、本実施形態の各種機能を制御部１１に実行させるプログラムの他、端末２０と共有する共有鍵１２１、サーバ１０の識別情報であるサーバＩＤ、及びこのサーバＩＤに対応するパスワードを記憶する。
【００３７】
通信部１３は、ネットワークを介して所定のプロトコル（例えば、無線通信プロトコル）により、外部装置とデータ通信を行うネットワーク・アダプタである。通信部１３は、端末２０との間で通信を確立し、パケットデータを送信する。
【００３８】
また、制御部１１は、固有データ生成部１１１と、ハッシュ演算部１１２（サーバ側ハッシュ演算部）と、暗号化部１１３と、スクランブル演算部１１４と、送信部１１５とを備える。
【００３９】
固有データ生成部１１１は、メッセージ（Ｍ）を送信する度に、所定の桁数からなる乱数（Ｒ）、及び端末２０におけるメッセージ（Ｍ）の管理コード（Ｄ）を生成する。管理コードは、リプレイアタックを防止するためのコードであり、カウンタ値若しくは時刻情報のいずれか、又は双方であることが好ましい。
【００４０】
ハッシュ演算部１１２は、少なくともパスワード１２３（Ｗ）を含むデータ列、具体的には、乱数（Ｒ）、管理コード（Ｄ）及びパスワード１２３（Ｗ）からなる第２のデータ列（Ｒ‖Ｄ‖Ｗ）から、一方向性ハッシュ関数（Ｈ）により第１のハッシュ値（Ｈ１＝Ｈ（Ｒ‖Ｄ‖Ｗ））を演算する。
【００４１】
暗号化部１１３は、共有鍵１２１（Ｋ）を用いて、少なくとも第１のメッセージ（Ｍ１）を含むデータ列、具体的には、乱数（Ｒ）、管理コード（Ｄ）及び第１のメッセージ（Ｍ１）からなる第１のデータ列（Ｒ‖Ｄ‖Ｍ１）を暗号化して、第１の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１））を生成する。
なお、記号「‖」は、前後の値を連接する二項演算子である。
また、「Ｅｎｃ（ａ，ｂ）」は、鍵ａ（＝Ｋ）でｂ（＝Ｒ‖Ｄ‖Ｍ）を暗号化する関数である。
【００４２】
また、簡易的には、暗号化部１１３は、共有鍵１２１及び乱数Ｒ１を用いた鍵付きハッシュ関数の値との排他的論理和により、第１の暗号化メッセージを取得してもよい（Ｅｎｃ（ａ，ｂ）＝ＫｅｙｅｄＨａｓｈ（ａ，Ｒ１）＋ｂ＝ｂ’）。これにより、処理負荷が低減される。
【００４３】
スクランブル演算部１１４は、第１の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１））及び第１のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｗ））の排他的論理和により、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））を生成する。
なお、記号「＋」は、前後の値の排他的論理和を計算する二項演算子である。
【００４４】
送信部１１５は、第２のデータ列（Ｒ‖Ｄ‖Ｗ）からパスワード（Ｗ）を除いた固有データ（Ｒ及びＤ）、サーバＩＤ１２２（ＩＤｓ）及びスクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））を連接したパケット（Ｐ＝Ｒ‖Ｄ‖ＩＤｓ‖（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ）））を、通信部１３を介して端末２０へ送信する。
【００４５】
端末２０は、制御部２１と、記憶部２２と、通信部２３とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。
【００４６】
制御部２１は、端末２０の全体を制御する部分であり、記憶部２２に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部２１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。なお、制御部２１が備える各部の機能は後述する。
【００４７】
記憶部２２は、ハードウェア群を端末２０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部２２には、本実施形態の各種機能を制御部２１に実行させるプログラムの他、サーバ１０から受信したメッセージ（Ｍ）を、対応する管理コード（Ｄ）と関連付けて記憶する。
【００４８】
また、記憶部２２は、端末２０に固有の識別情報である端末ＩＤ２２１（ＩＤｍ）を記憶する。ここで、端末ＩＤ２２１は、所定のハードウェア部品の識別コードとして、ユーザ操作では知り得ない領域にて管理されているものとする。なお、サーバ１０と共有される共有鍵１２１は、この端末ＩＤ２２１に基づいて、後述の鍵生成部２１４によって生成される。
さらに、記憶部２２は、サーバＩＤ２２２及びパスワード２２３を記憶している。なお、サーバＩＤ２２２は、サーバ１０のサーバＩＤ１２２と等しく、パスワード２２３は、サーバ１０のパスワード１２３と等しい。
【００４９】
通信部２３は、ネットワークを介して所定のプロトコル（例えば、無線通信プロトコル）により、外部装置とデータ通信を行うネットワーク・アダプタである。通信部２３は、サーバ１０との間で通信を確立し、パケットデータを受信する。
【００５０】
また、制御部２１は、分離部２１１と、ハッシュ演算部２１２（端末側ハッシュ演算部）と、スクランブル解除部２１３と、鍵生成部２１４と、復号化部２１５と、メッセージ取得部２１６とを備える。
【００５１】
分離部２１１は、サーバ１０から通信部２３を介して受信したパケット（Ｐ）から、固有データ（Ｒ及びＤ）、サーバＩＤ１２２（ＩＤｓ）及び前記スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））を分離する。
【００５２】
ハッシュ演算部２１２は、分離部２１１により得られた固有データ（Ｒ及びＤ）、及び記憶部２２に記憶されているパスワード２２３（Ｗ）からなる第２のデータ列（Ｒ‖Ｄ‖Ｗ）から、一方向性ハッシュ関数（Ｈ）により第２のハッシュ値（Ｈ２＝Ｈ（Ｒ‖Ｄ‖Ｗ））を演算する。
【００５３】
スクランブル解除部２１３は、分離部２１１により得られたスクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））、及びハッシュ演算部２１２により得られた第２のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｗ））の排他的論理和により、第２の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ）＋Ｈ（Ｒ‖Ｄ‖Ｗ）＝Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１））を取得する。
【００５４】
鍵生成部２１４は、所定の鍵生成関数を用いて、端末ＩＤ２２１（ＩＤｍ）から共有鍵（Ｋ）を生成する（Ｋ＝Ｋｅｙ−Ｇｅｎ（ＩＤｍ））。
【００５５】
復号化部２１５は、端末ＩＤ２２１（ＩＤｍ）に基づく共有鍵（Ｋ）を用いて第２の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１））を復号化し、第３のデータ列（Ｄｅｃ（Ｋ，Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１））＝Ｒ‖Ｄ‖Ｍ２）を取得する。ここで、正しく復号化されれば、「Ｍ２＝Ｍ１」である。
なお、「Ｄｅｃ（ａ，ｂ’）」は、鍵ａでｂ’を復号化する関数であり、「Ｅｎｃ（ａ，ｂ）」と対になる。
【００５６】
また、暗号化部１１３により、鍵付きハッシュ関数が用いられた場合、復号化部２１５は、同様に、鍵付きハッシュ関数の値との排他的論理和により第２の暗号化メッセージを復号化して第３のデータ列を取得する（Ｄｅｃ（ａ，ｂ’）＝ｂ’＋ＫｅｙｅｄＨａｓｈ（ａ，Ｒ１）＝ｂ）。これにより、処理負荷が低減される。
【００５７】
メッセージ取得部２１６は、第３のデータ列（Ｒ‖Ｄ‖Ｍ２）から第２のメッセージ（Ｍ２）を分離する。
【００５８】
ここで、パスワード１２３に基づく第１のハッシュ値と、パスワード２２３に基づく第２のハッシュ値とが等しければ、スクランブル解除部２１３により得られる第２の暗号化メッセージは、サーバ１０で生成された第１の暗号化メッセージと等しい。さらに、鍵生成部２１４により共有鍵（Ｋ）が正しく生成されれば、第２の暗号化メッセージは正しく復号化され、第３のデータ列は第１のデータ列と等しくなる。したがって、「Ｍ２＝Ｍ１」となり、端末２０にて正しくメッセージが復元される。
【００５９】
すなわち、端末２０が記憶しているパスワード２２３（Ｗ）と等しいパスワード１２３を用いて送信されたパケットについてのみ、メッセージが復元されるので、端末２０は、一方向通信でありながら、特定のサーバ１０からの送信であることを保証してメッセージを受信できる。
また、端末ＩＤ２２１（ＩＤｍ）を有する正当な端末２０でのみ、第１のメッセージ（Ｍ１）が復元され、不正な端末では復元されない。したがって、サーバ１０は、一方向通信でありながら、特定の端末２０の信頼性を保証してメッセージを送信できる。
【００６０】
また、制御部２１は、メッセージ取得部２１６により得られたメッセージを、分離部２１１により得られた管理コード（Ｄ）と関連付けて記憶部２２に記憶する。
【００６１】
このとき、管理コード（Ｄ）がカウンタ値である場合、同一のカウンタ値が既に記憶されていれば、制御部２１は、得られたメッセージが不正なものとして排除できる。なお、メッセージの数又は容量が所定数を超える場合、古いメッセージから順に削除されることとしてよい。
また、管理コード（Ｄ）が有効期限を示す時刻情報である場合、制御部２１は、有効期限までのメッセージのみを記憶部２２に記憶し、有効期限が切れたメッセージは削除されることとしてよい。
【００６２】
図２は、本実施形態に係る一方向通信システム１において、サーバ１０から端末２０へメッセージを送信する処理を示すシーケンス図である。
【００６３】
まず、事前準備として、ステップＳ１において、端末２０の端末ＩＤ２２１（ＩＤｍ）から鍵生成部２１４により生成される共有鍵１２１（Ｋ＝Ｋｅｙ−Ｇｅｎ（ＩＤｍ））がサーバ１０に登録される。
また、ステップＳ２において、サーバ１０のサーバＩＤ１２２（ＩＤｓ）及びパスワード１２３（Ｗ）が端末２０に、サーバＩＤ２２２及びパスワード２２３として登録される。
なお、事前準備は、ローカル通信やオフライン等、安全な通信（チャネル）で行われる。これにより、サーバ１０と端末２０との間で、共有鍵（Ｋ）、サーバＩＤ（ＩＤｓ）及びパスワード（Ｗ）が共有される。
【００６４】
ステップＳ１１において、サーバ１０（固有データ生成部１１１）は、乱数（Ｒ）及び管理コード（Ｄ）を生成する。
【００６５】
ステップＳ１２において、サーバ１０（ハッシュ演算部１１２）は、第２のデータ列（Ｒ‖Ｄ‖Ｗ）から第１のハッシュ値（Ｈ１＝Ｈ（Ｒ‖Ｄ‖Ｗ））を算出する。
【００６６】
ステップＳ１３において、サーバ１０（暗号化部１１３）は、第１のデータ列（Ｒ‖Ｄ‖Ｍ）を暗号化して、第１の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ））を算出する。
【００６７】
ステップＳ１４において、サーバ１０（スクランブル演算部１１４）は、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）を算出する。
【００６８】
ステップＳ１５において、サーバ１０（送信部１１５）は、パケット（Ｐ＝Ｒ‖Ｄ‖ＩＤｓ‖（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１））を、端末２０へ送信する。
【００６９】
ステップＳ１６において、端末２０（分離部２１１）は、ステップＳ１５で受信したパケット（Ｐ）から、乱数（Ｒ）、管理コード（Ｄ）、サーバＩＤ１２２（ＩＤｓ）及びスクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）を分離する。
【００７０】
ステップＳ１７において、端末２０（ハッシュ演算部２１２）は、第２のデータ列（Ｒ‖Ｄ‖Ｗ）から第２のハッシュ値（Ｈ２＝Ｈ（Ｒ‖Ｄ‖Ｗ））を算出する。
【００７１】
ステップＳ１８において、端末２０（スクランブル解除部２１３）は、ステップＳ１６で取得したスクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）、及びステップＳ１７で取得した第２のハッシュ値（Ｈ２）の排他的論理和（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１＋Ｈ２）により、第２の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ））を取得する。
【００７２】
ステップＳ１９において、端末２０（鍵生成部２１４）は、端末ＩＤ２２１（ＩＤｍ）から共有鍵（Ｋ＝Ｋｅｙ−Ｇｅｎ（ＩＤｍ））を生成する。
【００７３】
ステップＳ２０において、端末２０（復号化部２１５）は、第２の暗号化メッセージを復号化し（Ｄｅｃ（Ｋ，Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）））、第３のデータ列（Ｒ‖Ｄ‖Ｍ）を算出する。
【００７４】
ステップＳ２１において、端末２０（メッセージ取得部２１６）は、ステップＳ２０で取得した第３のデータ列（Ｒ‖Ｄ‖Ｍ）から、第２のメッセージ（Ｍ）を分離する。
【００７５】
＜第２実施形態＞
以下、本発明の第２実施形態について説明する。
本実施形態は、第１実施形態のパケット（Ｐ）を、より厳密に確認するための構成である。なお、第１実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。
【００７６】
図３は、本実施形態に係る一方向通信システム１ａが有するサーバ１０ａ及び端末２０ａの機能構成を示すブロック図である。
一方向通信システム１ａは、第１実施形態と比べて、制御部１１ａのハッシュ演算部１１２ａ及び送信部１１５ａの機能、並びに制御部２１ａの分離部２１１ａ及びハッシュ演算部２１２ａの機能が異なり、さらに、端末２０ａの制御部２１ａは、検証部２１７を備える。
【００７７】
ハッシュ演算部１１２ａは、第１のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｗ））を演算すると共に、固有データ（Ｒ及びＤ）及び第１のメッセージ（Ｍ１）を連接した第１のデータ列（Ｒ‖Ｄ‖Ｍ１）から、一方向性ハッシュ関数（Ｈ）により第３のハッシュ値（Ｈ３＝Ｈ（Ｒ‖Ｄ‖Ｍ１））を演算する。
【００７８】
送信部１１５ａは、固有データ（Ｒ及びＤ）、サーバＩＤ１２２（ＩＤｓ）、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））及び第３のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｍ１））を連接したパケット（Ｐ＝Ｒ‖Ｄ‖ＩＤｓ‖（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））‖Ｈ（Ｒ‖Ｄ‖Ｍ１））を、通信部１３を介して端末２０ａへ送信する。
【００７９】
分離部２１１ａは、サーバ１０ａから通信部２３を介して受信したパケット（Ｐ）から、固有データ（Ｒ及びＤ）、サーバＩＤ１２２（ＩＤｓ）、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ１）＋Ｈ（Ｒ‖Ｄ‖Ｗ））及び第３のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｍ１））を分離する。
【００８０】
ハッシュ演算部２１２ａは、第２のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｗ））を演算すると共に、復号化部２１５により得られた第３のデータ列（Ｒ‖Ｄ‖Ｍ２）から、一方向性ハッシュ関数（Ｈ）により第４のハッシュ値（Ｈ４＝Ｈ（Ｒ‖Ｄ‖Ｍ２））を演算する。
【００８１】
検証部２１７は、第３のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｍ１））及び第４のハッシュ値（Ｈ（Ｒ‖Ｄ‖Ｍ２））が一致するか否かを判定することにより、第２のメッセージ（Ｍ２）が第１のメッセージ（Ｍ１）と一致するか否かを検証する。
【００８２】
ここで、第３のハッシュ値と第４のハッシュ値が等しければ、スクランブル解除と復号化とを経て復元された第２のメッセージ（Ｍ２）がサーバ１０により送信された第１のメッセージ（Ｍ１）と等しいことが保証され、端末２０ａにて正しくメッセージが復元される。
【００８３】
すなわち、サーバ１０ａのパスワード１２３に基づく第１のハッシュ値と、端末２０ａのパスワード２２３に基づく第２のハッシュ値とが等しく、かつ、サーバ１０ａで記憶されている共有鍵１２１と同一の共有鍵（Ｋ）が鍵生成部２１４により正しく生成された場合にのみ、第２のメッセージ（Ｍ２）が復元される。さらに、復元された第２のメッセージ（Ｍ２）が第１のメッセージ（Ｍ１）と同一であることが保証される。一方、不正な端末では、少なくとも同一のメッセージは復元されない。したがって、サーバ１０ａは、一方向通信でありながら、特定の端末２０ａの信頼性を保証して正しいメッセージを送信できる。
【００８４】
また、端末２０ａが記憶しているパスワード２２３（Ｗ）と等しいパスワード１２３を用いて送信されたパケットについてのみ、メッセージが正しく復元されるので、端末２０ａは、一方向通信でありながら、特定のサーバ１０ａからの送信であることを保証してメッセージを受信できる。
【００８５】
図４は、本実施形態に係る一方向通信システム１ａにおいて、サーバ１０ａから端末２０ａへメッセージを送信する処理を示すシーケンス図である。
【００８６】
まず、事前準備として、第１実施形態と同様に、ステップＳ１及びステップＳ２において、共有鍵（Ｋ）、サーバＩＤ（ＩＤｓ）及びパスワード（Ｗ）がサーバ１０ａと端末２０ａとの間で共有される。
【００８７】
ステップＳ３１において、サーバ１０ａ（固有データ生成部１１１）は、乱数（Ｒ）及び管理コード（Ｄ）を生成する。
【００８８】
ステップＳ３２において、サーバ１０ａ（ハッシュ演算部１１２ａ）は、第２のデータ列（Ｒ‖Ｄ‖Ｗ）から第１のハッシュ値（Ｈ１＝Ｈ（Ｒ‖Ｄ‖Ｗ））を算出する。
【００８９】
ステップＳ３３において、サーバ１０ａ（暗号化部１１３）は、第１のデータ列（Ｒ‖Ｄ‖Ｍ）を暗号化して、第１の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ））を算出する。
【００９０】
ステップＳ３４において、サーバ１０ａ（スクランブル演算部１１４）は、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）を算出する。
【００９１】
ステップＳ３５において、サーバ１０ａ（ハッシュ演算部１１２ａ）は、第３のハッシュ値（Ｈ３＝Ｈ（Ｒ‖Ｄ‖Ｍ））を算出する。
【００９２】
ステップＳ３６において、サーバ１０ａ（送信部１１５ａ）は、パケット（Ｐ＝Ｒ‖Ｄ‖ＩＤｓ‖（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）‖Ｈ３）を、端末２０ａへ送信する。
【００９３】
ステップＳ３７において、端末２０ａ（分離部２１１ａ）は、ステップＳ３６で受信したパケット（Ｐ）から、乱数（Ｒ）、管理コード（Ｄ）、サーバＩＤ１２２（ＩＤｓ）、スクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）及び第３のハッシュ値（Ｈ３）を分離する。
【００９４】
ステップＳ３８において、端末２０ａ（ハッシュ演算部２１２ａ）は、第２のデータ列（Ｒ‖Ｄ‖Ｗ）から第２のハッシュ値（Ｈ２＝Ｈ（Ｒ‖Ｄ‖Ｗ））を算出する。
【００９５】
ステップＳ３９において、端末２０ａ（スクランブル解除部２１３）は、ステップＳ３７で取得したスクランブル値（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１）、及びステップＳ３８で取得した第２のハッシュ値（Ｈ２）の排他的論理和（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）＋Ｈ１＋Ｈ２）により、第２の暗号化メッセージ（Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ））を取得する。
【００９６】
ステップＳ４０において、端末２０ａ（鍵生成部２１４）は、端末ＩＤ２２１（ＩＤｍ）から共有鍵（Ｋ＝Ｋｅｙ−Ｇｅｎ（ＩＤｍ））を生成する。
【００９７】
ステップＳ４１において、端末２０ａ（復号化部２１５）は、第２の暗号化メッセージを復号化し（Ｄｅｃ（Ｋ，Ｅｎｃ（Ｋ，Ｒ‖Ｄ‖Ｍ）））、第３のデータ列（Ｒ‖Ｄ‖Ｍ）を算出する。
【００９８】
ステップＳ４２において、端末２０ａ（ハッシュ演算部２１２ａ）は、ステップＳ４１で取得した第３のデータ列（Ｒ‖Ｄ‖Ｍ）を用いて、第４のハッシュ値（Ｈ４＝Ｈ（Ｒ‖Ｄ‖Ｍ））を算出する。
【００９９】
ステップＳ４３において、端末２０ａ（検証部２１７）は、ステップＳ３７で取得した第３のハッシュ値（Ｈ３）と、ステップＳ４２で算出した第４のハッシュ値（Ｈ４）とが一致するか否かを検証する。
【０１００】
ステップＳ４４において、端末２０ａ（メッセージ取得部２１６）は、ステップＳ４１で取得した第３のデータ列（Ｒ‖Ｄ‖Ｍ）から、第２のメッセージ（Ｍ）を分離する。
【０１０１】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【０１０２】
前述のサーバ１０及び端末２０は、メッセージを送受信する装置の一例であり、サーバ装置、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）又は携帯端末等、様々な情報処理装置（コンピュータ）であってよく、前述の各機能は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、上記情報処理装置にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【０１０３】
また、送信側の装置（サーバ１０）と受信側の装置（端末２０）とで共有される共有鍵を生成するための受信側の装置に固有の端末情報は、端末ＩＤ２２１のほか、端末２０の利用者のユーザＩＤ又は指紋データ等、様々なデータが利用可能である。
【符号の説明】
【０１０４】
１、１ａ  一方向通信システム
１０、１０ａ  サーバ
１２  記憶部（サーバ側記憶部）
２０、２０ａ  端末
２２  記憶部（端末側記憶部）
１１１  固有データ生成部
１１２、１１２ａ  ハッシュ演算部（サーバ側ハッシュ演算部）
１１３  暗号化部
１１４  スクランブル演算部
１１５、１１５ａ  送信部
２１１、２１１ａ  分離部
２１２、２１２ａ  ハッシュ演算部（端末側ハッシュ演算部）
２１３  スクランブル解除部
２１４  鍵生成部
２１５  復号化部
２１６  メッセージ取得部
２１７  検証部
【図１】
2013042331.tif 000003
【図２】
2013042331.tif 000004
【図３】
2013042331.tif 000005
【図４】
2013042331.tif 000006