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