"メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムであって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバは、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算部と、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算部と、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信部と、を備え、前記端末は、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離部と、前記分離部により得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算部と、前記分離部により分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算部により得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得部と、を備える一方向通信システム。前記固有データは、乱数を含むデータである請求項1に記載の一方向通信システム。前記固有データは、前記端末におけるメッセージの管理コードを含む請求項1又は請求項2に記載の一方向通信システム。前記サーバ側ハッシュ演算部は、前記固有データ及び前記第1のメッセージを連接した値から、前記一方向性ハッシュ関数により第3のハッシュ値を演算し、前記送信部は、前記固有データ、前記スクランブル値に基づくデータ及び前記第3のハッシュ値を連接したパケットを、前記端末へ送信し、前記分離部は、前記パケットから、前記固有データ、前記スクランブル値に基づくデータ及び前記第3のハッシュ値を分離し、前記端末側ハッシュ演算部は、前記分離部により得られた前記固有データ及び前記メッセージ取得部により得られた前記第2のメッセージから、前記一方向性ハッシュ関数により第4のハッシュ値を演算し、前記端末は、前記第3のハッシュ値及び前記第4のハッシュ値が一致するか否かを判定することにより、前記第2のメッセージが前記第1のメッセージと一致するか否かを検証する検証部を備える請求項1から請求項3のいずれか1項に記載の一方向通信システム。前記サーバ及び前記端末は、予め秘密鍵を共有しており、前記サーバは、前記秘密鍵を用いて前記スクランブル値を暗号化して、暗号化メッセージを取得する暗号化部を備え、前記送信部は、前記固有データ、及び前記暗号化メッセージを連接したパケットを、前記端末へ送信し、前記分離部は、前記パケットから、前記固有データ、及び前記暗号化メッセージを分離し、前記端末は、前記秘密鍵を用いて前記暗号化メッセージを復号化して、前記スクランブル値を取得する復号化部を備える請求項1から請求項4のいずれか1項に記載の一方向通信システム。前記暗号化部は、前記秘密鍵を用いた鍵付きハッシュ関数の値との排他的論理和により、前記暗号化メッセージを取得し、前記復号化部は、前記鍵付きハッシュ関数の値との排他的論理和により、前記スクランブル値を取得する請求項5に記載の一方向通信システム。メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムにおける通信方法であって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバが、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算ステップと、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算ステップと、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信ステップと、を実行し、前記端末が、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得ステップと、を実行する通信方法。メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムが実行する通信プログラムであって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバに、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算ステップと、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算ステップと、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信ステップと、を実行させ、前記端末に、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得ステップと、を実行させるための通信プログラム。ところで、メッセージを送信するサーバと受信する端末との間では、サーバへの負荷集中を抑制するために、端末からサーバへのアップリンクを有さない一方向通信が用いられる場合がある。一方向通信は、例えば、放送ブロードキャスト、マルチキャスト、C2DMCloudtoDeviceMessaging、SMSShortMessageService等のプッシュ型のサービスで用いられる。この一方向通信では、サーバは、送信先である端末を指定してメッセージを送信するが、送信先端末は事前に登録されており、この登録情報に従ってメッセージを送信する。したがって、サーバと端末との間に信頼関係がなくても、サーバに端末が登録済みであれば、メッセージの送受信ができてしまう。すると、例えば、流れているパケットから個人情報が収集されたり、入手されたパケットのコピーが大量送信されたりといった、中間者攻撃を受けるおそれがあった。また、前述の相互認証を用いる場合、認証時に端末からサーバへのアップリンクが必要となるため、一方向通信への適用は難しかった。本発明は、一方向通信において通信相手の正当性を検証できる一方向通信システム、方法及びプログラムを提供することを目的とする。本発明では、以下のような解決手段を提供する。1メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムであって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバは、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算部と、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算部と、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信部と、を備え、前記端末は、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離部と、前記分離部により得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算部と、前記分離部により分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算部により得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得部と、を備える一方向通信システム。このような構成によれば、当該一方向通信システムにおいて、第1のハッシュ値と第2のハッシュ値とが等しい、すなわち、予め共有された識別データが等しい正当な端末でのみ、第1のメッセージと等しい第2のメッセージが復元され、不正な端末では復元されない。したがって、サーバは、一方向通信でありながら、通信相手である端末の正当性を検証し、端末の信頼性を保証してメッセージを送信できる。2前記固有データは、乱数を含むデータである1に記載の一方向通信システム。このような構成によれば、当該一方向通信システムにおいて、サーバは、固有データに乱数を含めてメッセージをスクランブル化するので、メッセージの秘匿性を高められる。3前記固有データは、前記端末におけるメッセージの管理コードを含む1又は2に記載の一方向通信システム。このような構成によれば、当該一方向通信システムにおいて、サーバは、固有データに端末におけるメッセージの管理コード、例えばカウンタ値又は時刻情報を含める。しがたって、端末は、この管理コードをリプレイアタック防止用のコードとして用い、受信したメッセージの正当性を確認して不正なメッセージを排除したり、さらに、メッセージの保管量を低減して管理負荷を低減したりできる。4前記サーバ側ハッシュ演算部は、前記固有データ及び前記第1のメッセージを連接した値から、前記一方向性ハッシュ関数により第3のハッシュ値を演算し、前記送信部は、前記固有データ、前記スクランブル値に基づくデータ及び前記第3のハッシュ値を連接したパケットを、前記端末へ送信し、前記分離部は、前記パケットから、前記固有データ、前記スクランブル値に基づくデータ及び前記第3のハッシュ値を分離し、前記端末側ハッシュ演算部は、前記分離部により得られた前記固有データ及び前記メッセージ取得部により得られた前記第2のメッセージから、前記一方向性ハッシュ関数により第4のハッシュ値を演算し、前記端末は、前記第3のハッシュ値及び前記第4のハッシュ値が一致するか否かを判定することにより、前記第2のメッセージが前記第1のメッセージと一致するか否かを検証する検証部を備える1から3のいずれか1項に記載の一方向通信システム。このような構成によれば、当該一方向通信システムにおいて、第3のハッシュ値と第4のハッシュ値とが一致すれば、第1のメッセージと第2のメッセージとが同一であることが保証され、端末にて正しくメッセージが復元される。すなわち、識別データが等しい正当な端末でのみ、第2のメッセージが復元され、さらに、復元されたメッセージが第1のメッセージと同一であることが保証される。一方、不正な端末では、少なくとも同一のメッセージは復元されない。したがって、サーバは、一方向通信でありながら、通信相手である端末の正当性を検証し、端末の信頼性を保証して正しいメッセージを送信できる。5前記サーバ及び前記端末は、予め秘密鍵を共有しており、前記サーバは、前記秘密鍵を用いて前記スクランブル値を暗号化して、暗号化メッセージを取得する暗号化部を備え、前記送信部は、前記固有データ、及び前記暗号化メッセージを連接したパケットを、前記端末へ送信し、前記分離部は、前記パケットから、前記固有データ、及び前記暗号化メッセージを分離し、前記端末は、前記秘密鍵を用いて前記暗号化メッセージを復号化して、前記スクランブル値を取得する復号化部を備える1から4のいずれか1項に記載の一方向通信システム。このような構成によれば、当該一方向通信システムにおいて、サーバは、スクランブル値をさらに暗号化して送信するので、メッセージの秘匿性を高めることができる。6前記暗号化部は、前記秘密鍵を用いた鍵付きハッシュ関数の値との排他的論理和により、前記暗号化メッセージを取得し、前記復号化部は、前記鍵付きハッシュ関数の値との排他的論理和により、前記スクランブル値を取得する5に記載の一方向通信システム。このような構成によれば、当該一方向通信システムは、鍵付きハッシュ関数を用いて、暗号化及び復号化を行うので、メッセージのスクランブル化と同様の処理により容易に実現され、処理負荷が低減される。7メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムにおける通信方法であって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバが、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算ステップと、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算ステップと、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信ステップと、を実行し、前記端末が、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得ステップと、を実行する通信方法。このような構成によれば、当該通信方法を一方向通信システムが実行することにより、1と同様の効果が期待できる。8メッセージを送信するサーバと、当該メッセージを受信する端末とを有する一方向通信システムが実行する通信プログラムであって、前記サーバ及び前記端末は、予め前記端末の識別データを共有しており、前記サーバに、少なくとも前記識別データを含むデータ列から、一方向性ハッシュ関数により第1のハッシュ値を演算するサーバ側ハッシュ演算ステップと、第1のメッセージ及び前記第1のハッシュ値の排他的論理和により、スクランブル値を算出するスクランブル演算ステップと、前記データ列から前記識別データを除いた固有データ、及び前記スクランブル値に基づくデータを連接したパケットを、前記端末へ送信する送信ステップと、を実行させ、前記端末に、前記パケットから、前記固有データ、及び前記スクランブル値に基づくデータを分離する分離ステップと、前記分離ステップで得られた前記固有データ及び前記識別データからなる前記データ列から、前記一方向性ハッシュ関数により第2のハッシュ値を演算する端末側ハッシュ演算ステップと、前記分離ステップで分離されたデータから得られた前記スクランブル値、及び前記端末側ハッシュ演算ステップで得られた前記第2のハッシュ値の排他的論理和により、第2のメッセージを取得するメッセージ取得ステップと、を実行させるための通信プログラム。このような構成によれば、当該通信プログラムを一方向通信システムに実行させることにより、1と同様の効果が期待できる。本発明によれば、一方向通信において通信相手の正当性が検証される。<第1実施形態>以下、本発明の第1実施形態について説明する。本実施形態に係る一方向通信システム1は、サーバ10及び端末20を有し、サーバ10から端末20へメッセージを一方向に送信する。図1は、本実施形態に係る一方向通信システム1が有するサーバ10及び端末20の機能構成を示すブロック図である。サーバ10は、制御部11と、記憶部12と、通信部13とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。制御部11は、サーバ10の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部11は、CPUCentralProcessingUnitであってよい。なお、制御部11が備える各部の機能は後述する。記憶部12は、ハードウェア群をサーバ10として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクHDDであってよい。具体的には、記憶部12には、本実施形態の各種機能を制御部11に実行させるプログラムの他、端末20の識別データである端末ID121を記憶する。通信部13は、ネットワークを介して所定のプロトコル例えば、無線通信プロトコルにより、外部装置とデータ通信を行うネットワークアダプタである。通信部13は、端末20との間で通信を確立し、パケットデータを送信する。また、制御部11は、固有データ生成部111と、ハッシュ演算部112サーバ側ハッシュ演算部と、スクランブル演算部113と、送信部114とを備える。固有データ生成部111は、メッセージMを送信する度に、所定の桁数からなる乱数R、及び端末20におけるメッセージMの管理コードDを生成する。管理コードは、リプレイアタックを防止するためのコードであり、カウンタ値若しくは時刻情報のいずれか、又は双方であることが好ましい。ハッシュ演算部112は、少なくとも端末ID121IDを含むデータ列、具体的には、乱数R、管理コードD及び端末IDからなるデータ列R∥D∥IDから、一方向性ハッシュ関数Hにより第1のハッシュ値H1=HR∥D∥IDを演算する。なお、記号∥は、前後の値を連接する二項演算子である。スクランブル演算部113は、第1のメッセージM1及び第1のハッシュ値HR∥D∥IDの排他的論理和により、スクランブル値M1HR∥D∥IDを算出する。なお、記号は、前後の値の排他的論理和を計算する二項演算子である。送信部114は、データ列R∥D∥IDから端末ID121IDを除いた固有データR及びD、及びスクランブル値M1HR∥D∥IDを連接したパケットP=R∥D∥M1HR∥D∥IDを、通信部13を介して端末20へ送信する。端末20は、制御部21と、記憶部22と、通信部23とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。制御部21は、端末20の全体を制御する部分であり、記憶部22に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部21は、CPUCentralProcessingUnitであってよい。なお、制御部21が備える各部の機能は後述する。記憶部22は、ハードウェア群を端末20として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクHDDであってよい。具体的には、記憶部22には、本実施形態の各種機能を制御部21に実行させるプログラムの他、サーバ10から受信したメッセージMを、対応する管理コードDと関連付けて記憶する。また、記憶部22は、端末20の識別データである端末ID221を記憶する。ここで、端末ID221は、所定のハードウェア部品の識別コードとして、ユーザ操作では知り得ない領域にて管理されているものとする。なお、端末ID221は、サーバ10の記憶部12に記憶される端末ID121と同一である。通信部23は、ネットワークを介して所定のプロトコル例えば、無線通信プロトコルにより、外部装置とデータ通信を行うネットワークアダプタである。通信部23は、サーバ10との間で通信を確立し、パケットデータを受信する。また、制御部21は、分離部211と、ハッシュ演算部212端末側ハッシュ演算部と、メッセージ取得部213とを備える。分離部211は、サーバ10から通信部23を介して受信したパケットPから、固有データR及びD、及びスクランブル値M1HR∥D∥IDを分離する。ハッシュ演算部212は、分離部211により得られた固有データ、及び記憶部22に記憶されている端末ID221からなるデータ列R∥D∥IDから、一方向性ハッシュ関数Hにより第2のハッシュ値H2=HR∥D∥IDを演算する。メッセージ取得部213は、分離部211により分離されたデータから得られたスクランブル値M1HR∥D∥ID、及びハッシュ演算部212により得られた第2のハッシュ値HR∥D∥IDの排他的論理和により、第2のメッセージM2=M1HR∥D∥IDHR∥D∥ID=M1を取得する。ここで、第1のハッシュ値と第2のハッシュ値が等しければ、M2=M1となり、端末20にて正しくメッセージが復元される。すなわち、端末ID121と端末ID221が等しい正当な端末20でのみ、第1のメッセージM1が復元され、不正な端末では復元されない。したがって、サーバ10は、一方向通信でありながら、端末20の信頼性を保証してメッセージを送信できる。また、制御部21は、メッセージ取得部213により得られたメッセージを、分離部211により得られた管理コードDと関連付けて記憶部22に記憶する。このとき、管理コードDがカウンタ値である場合、同一のカウンタ値が既に記憶されていれば、制御部21は、得られたメッセージが不正なものとして排除できる。なお、メッセージの数又は容量が所定数を超える場合、古いメッセージから順に削除されることとしてよい。また、管理コードDが有効期限を示す時刻情報である場合、制御部21は、有効期限までのメッセージのみを記憶部22に記憶し、有効期限が切れたメッセージは削除されることとしてよい。図2は、本実施形態に係る一方向通信システム1において、サーバ10から端末20へメッセージを送信する処理を示すシーケンス図である。まず、事前準備として、ステップS1において、端末20の端末ID221IDがサーバ10に登録される。なお、事前準備は、ローカル通信やオフライン等、安全な通信チャネルで行われる。これにより、サーバ10及び端末20で、端末20の端末ID221IDが共有される。ステップS11において、サーバ10固有データ生成部111は、乱数R及び管理コードDを生成する。ステップS12において、サーバ10ハッシュ演算部112は、第1のハッシュ値H1=HR∥D∥IDを算出する。ステップS13において、サーバ10スクランブル演算部113は、スクランブル値MH1を算出する。ステップS14において、サーバ10送信部114は、パケットP=R∥D∥MH1を、端末20へ送信する。ステップS15において、端末20分離部211は、ステップS14で受信したパケットPから、乱数R、管理コードD及びスクランブル値MH1を分離する。ステップS16において、端末20ハッシュ演算部212は、第2のハッシュ値H2=HR∥D∥IDを算出する。ステップS17において、端末20メッセージ取得部213は、ステップS15で取得したスクランブル値MH1、及びステップS16で取得した第2のハッシュ値H2の排他的論理和MH1H2により、メッセージMを取得する。<第2実施形態>以下、本発明の第2実施形態について説明する。本実施形態は、第1実施形態のパケットPを、より厳密に確認するための構成である。なお、第1実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。図3は、本実施形態に係る一方向通信システム1aが有するサーバ10a及び端末20aの機能構成を示すブロック図である。一方向通信システム1aは、第1実施形態と比べて、制御部11aのハッシュ演算部112a及び送信部114aの機能、並びに制御部21aの分離部211a及びハッシュ演算部212aの機能が異なり、さらに、端末20aの制御部21aは、検証部214を備える。ハッシュ演算部112aは、第1のハッシュ値HR∥D∥IDを演算すると共に、固有データR及びD及び第1のメッセージM1を連接した値から、一方向性ハッシュ関数Hにより第3のハッシュ値H3=HR∥D∥M1を演算する。送信部114aは、固有データR及びD、スクランブル値M1HR∥D∥ID及び第3のハッシュ値HR∥D∥M1を連接したパケットP=R∥D∥M1HR∥D∥ID∥HR∥D∥M1を、通信部13を介して端末20aへ送信する。分離部211aは、サーバ10aから通信部23を介して受信したパケットPから、固有データR及びD、スクランブル値M1HR∥D∥ID及び第3のハッシュ値HR∥D∥M1を分離する。ハッシュ演算部212aは、第2のハッシュ値HR∥D∥IDを演算すると共に、分離部211aにより得られた固有データR及びD及びメッセージ取得部213により得られた第2のメッセージM2から、一方向性ハッシュ関数Hにより第4のハッシュ値H4=HR∥D∥M2を演算する。検証部214は、第3のハッシュ値HR∥D∥M1及び第4のハッシュ値HR∥D∥M2が一致するか否かを判定することにより、第2のメッセージM2が第1のメッセージM1と一致するか否かを検証する。ここで、第3のハッシュ値と第4のハッシュ値が等しければ、M2=M1であることが保証され、端末20aにて正しくメッセージが復元される。すなわち、端末ID121と端末ID221が等しい正当な端末20aでのみ、第2のメッセージM2が復元され、さらに、復元されたメッセージが第1のメッセージM1と同一であることが保証される。一方、不正な端末では、少なくとも同一のメッセージは復元されない。したがって、サーバ10aは、一方向通信でありながら、端末20aの信頼性を保証して正しいメッセージを送信できる。図4は、本実施形態に係る一方向通信システム1aにおいて、サーバ10aから端末20aへメッセージを送信する処理を示すシーケンス図である。まず、事前準備として、ステップS1において、端末20aの端末ID221IDがサーバ10aに登録される。なお、事前準備は、ローカル通信やオフライン等、安全な通信チャネルで行われる。これにより、サーバ10a及び端末20aで、端末20aの端末ID221IDが共有される。ステップS21において、サーバ10a固有データ生成部111は、乱数R及び管理コードDを生成する。ステップS22において、サーバ10aハッシュ演算部112aは、第1のハッシュ値H1=HR∥D∥IDを算出する。ステップS23において、サーバ10aスクランブル演算部113は、スクランブル値MH1を算出する。ステップS24において、サーバ10aハッシュ演算部112aは、第3のハッシュ値H3=HR∥D∥Mを算出する。ステップS25において、サーバ10a送信部114aは、パケットP=R∥D∥MH1∥H3を、端末20aへ送信する。ステップS26において、端末20a分離部211aは、ステップS25で受信したパケットPから、乱数R、管理コードD、スクランブル値MH1及び第3のハッシュ値H3を分離する。ステップS27において、端末20aハッシュ演算部212aは、第2のハッシュ値H2=HR∥D∥IDを算出する。ステップS28において、端末20aメッセージ取得部213は、ステップS26で取得したスクランブル値MH1、及びステップS27で取得した第2のハッシュ値H2の排他的論理和MH1H2により、メッセージMを取得する。ステップS29において、端末20aハッシュ演算部212aは、ステップS26で取得した乱数R及び管理コードD、並びにステップS28で取得したメッセージMを用いて、第4のハッシュ値H4=HR∥D∥Mを算出する。ステップS30において、端末20a検証部214は、ステップS26で取得した第3のハッシュ値H3と、ステップS29で算出した第4のハッシュ値H4とが一致するか否かを検証する。<第3実施形態>以下、本発明の第3実施形態について説明する。本実施形態は、第1実施形態のメッセージMを、より秘匿性を高めて送信するための構成である。なお、第1実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。図5は、本実施形態に係る一方向通信システム1bが有するサーバ10b及び端末20bの機能構成を示すブロック図である。一方向通信システム1bは、第1実施形態と比べて、制御部11bにおける送信部114bの機能、及び制御部21bにおける分離部211bの機能が異なる。さらに、サーバ10b制御部11bは、暗号化部115を備え、端末20bの制御部21bは、復号化部215を備える。また、サーバ10bの記憶部12bは、秘密鍵122を記憶し、端末20bの記憶部22bは、秘密鍵222を記憶している。これらは、サーバ10bと端末20bとで共有される同一の秘密鍵Keyであり、メッセージの暗号化及び復号化に利用される。暗号化部115は、秘密鍵122を用いてスクランブル値MH1を暗号化して、暗号化メッセージEncKey,MH1を取得する。なお、Enca,bは、鍵a=Keyでb=MH1を暗号化する関数である。また、簡易的には、暗号化部115は、秘密鍵122及び乱数R1を用いた鍵付きハッシュ関数の値との排他的論理和により、暗号化メッセージを取得してもよいEnca,b=KeyedHasha,R1b=b’。これにより、処理負荷が低減される。送信部114bは、固有データR及びD、及び暗号化メッセージEncKey,MH1を連接したパケットP=R∥D∥EncKey,MH1を、通信部13を介して端末20bへ送信する。分離部211bは、サーバ10bから通信部23を介して受信したパケットPから、固有データR及びD、及び暗号化メッセージEncKey,MH1を分離する。復号化部215は、秘密鍵222を用いて暗号化メッセージEncKey,MH1を復号化してDecKey,EncKey,MH1=MH1、スクランブル値MH1を取得する。なお、Deca,b’は、鍵aでb’を復号化する関数であり、Enca,bと対になる。また、暗号化部115により、鍵付きハッシュ関数が用いられた場合、復号化部215は、同様に、鍵付きハッシュ関数の値との排他的論理和により暗号化メッセージを復号化してスクランブル値を取得するDeca,b’=b’KeyedHasha,R1=b。これにより、処理負荷が低減される。図6は、本実施形態に係る一方向通信システム1bにおいて、サーバ10bから端末20bへメッセージを送信する処理を示すシーケンス図である。まず、事前準備として、ステップS1において、端末20bの端末ID221IDがサーバ10bに登録される。また、ステップS2において、サーバ10bと端末20bとの間で共通の秘密鍵が通知され、双方に記憶される。なお、事前準備は、ローカル通信やオフライン等、安全な通信チャネルで行われる。これにより、サーバ10a及び端末20bで、端末20bの端末ID221ID及び秘密鍵Keyが共有される。ステップS31において、サーバ10b固有データ生成部111は、乱数R及び管理コードDを生成する。ステップS32において、サーバ10bハッシュ演算部112は、第1のハッシュ値H1=HR∥D∥IDを算出する。ステップS33において、サーバ10bスクランブル演算部113は、スクランブル値MH1を算出する。ステップS34において、サーバ10b暗号化部115は、スクランブル値を暗号化して、暗号化メッセージEncKey,MH1を算出する。ステップS35において、サーバ10b送信部114bは、パケットP=R∥D∥EncKey,MH1を、端末20bへ送信する。ステップS36において、端末20b分離部211bは、ステップS35で受信したパケットPから、乱数R、管理コードD及び暗号化メッセージEncKey,MH1を分離する。ステップS37において、端末20b復号化部215は、暗号化メッセージを復号化しDecKey,EncKey,MH1、スクランブル値MH1を算出する。ステップS38において、端末20bハッシュ演算部212は、第2のハッシュ値H2=HR∥D∥IDを算出する。ステップS39において、端末20bメッセージ取得部213は、ステップS37で取得したスクランブル値MH1、及びステップS38で取得した第2のハッシュ値H2の排他的論理和MH1H2により、メッセージMを取得する。<第4実施形態>以下、本発明の第4実施形態について説明する。本実施形態は、第3実施形態のパケットPを、第2実施形態と同様に、より厳密に確認するための構成である。なお、第2実施形態又は第3実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。図7は、本実施形態に係る一方向通信システム1cが有するサーバ10c及び端末20cの機能構成を示すブロック図である。一方向通信システム1cは、第3実施形態と比べて、制御部11cのハッシュ演算部112c及び送信部114cの機能、並びに制御部21cの分離部211c及びハッシュ演算部212cの機能が異なり、さらに、端末20cの制御部21cは、第2実施形態と同様の検証部214を備える。ハッシュ演算部112cは、第1のハッシュ値H1を演算すると共に、固有データR及びD及び第1のメッセージM1を連接した値から、一方向性ハッシュ関数Hにより第3のハッシュ値H3=HR∥D∥M1を演算する。送信部114cは、固有データR及びD、暗号化メッセージEncKey,MH1及び第3のハッシュ値H3を連接したパケットP=R∥D∥EncKey,MH1∥H3を、通信部13を介して端末20cへ送信する。分離部211cは、サーバ10cから通信部23を介して受信したパケットPから、固有データR及びD、暗号化メッセージEncKey,MH1及び第3のハッシュ値H3を分離する。ハッシュ演算部212cは、第2のハッシュ値H2を演算すると共に、分離部211cにより得られた固有データR及びD及びメッセージ取得部213により得られた第2のメッセージM2から、一方向性ハッシュ関数Hにより第4のハッシュ値H4=HR∥D∥M2を演算する。検証部214は、第3のハッシュ値H3及び第4のハッシュ値H4が一致するか否かを判定することにより、第2のメッセージM2が第1のメッセージM1と一致するか否かを検証する。図8は、本実施形態に係る一方向通信システム1cにおいて、サーバ10cから端末20cへメッセージを送信する処理を示すシーケンス図である。まず、事前準備として、ステップS1において、端末20cの端末ID221IDがサーバ10cに登録される。また、ステップS2において、サーバ10cと端末20cとの間で共通の秘密鍵が通知され、双方に記憶される。なお、事前準備は、ローカル通信やオフライン等、安全な通信チャネルで行われる。これにより、サーバ10c及び端末20cで、端末20cの端末ID221ID及び秘密鍵Keyが共有される。ステップS41において、サーバ10c固有データ生成部111は、乱数R及び管理コードDを生成する。ステップS42において、サーバ10cハッシュ演算部112cは、第1のハッシュ値H1=HR∥D∥IDを算出する。ステップS43において、サーバ10cスクランブル演算部113は、スクランブル値MH1を算出する。ステップS44において、サーバ10c暗号化部115は、スクランブル値を暗号化して、暗号化メッセージEncKey,MH1を算出する。ステップS45において、サーバ10cハッシュ演算部112cは、第3のハッシュ値H3=HR∥D∥Mを算出する。ステップS46において、サーバ10c送信部114cは、パケットP=R∥D∥EncKey,MH1∥H3を、端末20cへ送信する。ステップS47において、端末20c分離部211cは、ステップS46で受信したパケットPから、乱数R、管理コードD、暗号化メッセージEncKey,MH1及び第3のハッシュ値H3を分離する。ステップS48において、端末20c復号化部215は、暗号化メッセージを復号化しDecKey,EncKey,MH1、スクランブル値MH1を算出する。ステップS49において、端末20cハッシュ演算部212cは、第2のハッシュ値H2=HR∥D∥IDを算出する。ステップS50において、端末20cメッセージ取得部213は、ステップS48で取得したスクランブル値MH1、及びステップS49で取得した第2のハッシュ値H2の排他的論理和MH1H2により、メッセージMを取得する。ステップS51において、端末20cハッシュ演算部212cは、ステップS47で取得した乱数R及び管理コードD、並びにステップS50で取得したメッセージMを用いて、第4のハッシュ値H4=HR∥D∥Mを算出する。ステップS52において、端末20c検証部214は、ステップS47で取得した第3のハッシュ値H3と、ステップS51で算出した第4のハッシュ値H4とが一致するか否かを検証する。以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。前述のサーバ10及び端末20は、メッセージを送受信する装置の一例であり、サーバ装置、PCPersonalComputer又は携帯端末等、様々な情報処理装置コンピュータであってよく、前述の各機能は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、上記情報処理装置にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。また、送信側の装置サーバ10と受信側の装置端末20とで共有される受信側の装置の識別データは、端末ID221のほか、端末20の利用者のユーザID又は指紋データ等、様々なデータが利用可能である。"