"クライアントに接続可能なサーバであって、前記サーバが保有する2以上の整数であるN個のメッセージのうち前記クライアントにより指定されたインデックスのメッセージを前記クライアントに取得させるサーバであって、前記N個のメッセージを内容毎にM個の分類済メッセージに分類する分類部と、前記M個の分類済メッセージのそれぞれを暗号化するメッセージ暗号化部と、前記M個の暗号化された分類済メッセージを前記クライアントへと供給するメッセージ供給部と、前記クライアントにより指定されたインデックスのメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、紛失通信により前記クライアントに送信する鍵送信部と、を有するサーバ。前記クライアントは、指定したインデックスのメッセージに対応する前記メッセージ鍵を紛失通信により前記サーバから受信する鍵受信部と、受信した前記メッセージ鍵により、前記サーバから供給されたM個の暗号化された分類済メッセージのうち対応する分類済メッセージを復号するメッセージ復号部と、を有する請求項1に記載のサーバ。前記鍵送信部は、前記M個の暗号化された分類済メッセージのうち前記クライアントに送信した前記メッセージ鍵により復号できる前記分類済メッセージを指し示すポインタを、前記メッセージ鍵とともに紛失通信により前記クライアントに送信する請求項2に記載のサーバ。前記鍵受信部は、前記メッセージ鍵とともに前記ポインタを受信し、前記メッセージ復号部は、受信した前記メッセージ鍵により、前記ポインタにより指し示される前記分類済メッセージを復号する請求項3に記載のサーバ。前記メッセージ供給部は、前記M個の暗号化された分類済メッセージをネットワークを介して前記クライアントに送信する請求項1に記載のサーバ。前記メッセージ供給部は、前記M個の暗号化された分類済メッセージを、前記クライアントによるインデックスの指定に先立って前記クライアントに送信する請求項5に記載のサーバ。前記メッセージ供給部は、前記M個の暗号化された分類済メッセージをデータサイズの小さい順に並べて前記クライアントに供給する請求項1に記載のサーバ。前記メッセージ供給部は、前記M個の暗号化された分類済メッセージを、前記N個のメッセージの順次に対してランダム化した順序に並べて前記クライアントに供給する請求項1に記載のサーバ。前記クライアントは、前記M個の暗号化された分類済メッセージを、インデックスの指定の前に予め記憶している分類済メッセージ記憶部を更に有する請求項1に記載のサーバ。請求項1から9の何れか1項に記載のサーバおよびクライアントを備えるシステム。請求項10に記載のシステムに備えられるクライアント。サーバが保有する2以上の整数であるN個のメッセージのうちクライアントにより指定されたインデックスのメッセージを前記クライアントに取得させる方法であって、前記サーバが、前記N個のメッセージを内容毎にM個の分類済メッセージに分類する分類ステップと、前記M個の分類済メッセージのそれぞれを暗号化するメッセージ暗号化ステップと、前記M個の暗号化された分類済メッセージを前記クライアントへと供給するメッセージ供給ステップと、前記クライアントにより指定されたインデックスのメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、紛失通信により前記クライアントに送信する鍵送信ステップと、を実行する方法。前記クライアントが、指定したインデックスのメッセージに対応する前記メッセージ鍵を紛失通信により前記サーバから受信する鍵受信ステップと、受信した前記メッセージ鍵により、前記サーバから供給されたM個の暗号化された分類済メッセージのうち対応する分類済メッセージを復号するメッセージ復号ステップと、を実行する請求項12に記載の方法。コンピュータを請求項1から9の何れか1項に記載のサーバとして機能させるためのプログラム。コンピュータを請求項11に記載のクライアントとして機能させるためのプログラム。このような紛失通信での通信量は、送信側装置から受信側装置へと暗号化したN個のメッセージを送信することから、N個のメッセージの合計データ量にほぼ比例した量となる。従って、紛失通信では、N個のメッセージの合計データ量が大きいほど、通信量が多くなってしまう。また、N個のメッセージの中には、内容が重複したメッセージが含まれている場合もある。しかし、紛失通信では、重複したメッセージのそれぞれを送信側装置から受信側装置へと送信しなければならなく、重複したメッセージが多い場合には通信の冗長性が高くなってしまっていた。本発明の第1の態様においては、ライアントに接続可能なサーバであって、前記サーバが保有する2以上の整数であるN個のメッセージのうち前記クライアントにより指定されたインデックスのメッセージを前記クライアントに取得させるサーバであって、前記N個のメッセージを内容毎にM個の分類済メッセージに分類する分類部と、前記M個の分類済メッセージのそれぞれを暗号化するメッセージ暗号化部と、前記M個の暗号化された分類済メッセージを前記クライアントへと供給するメッセージ供給部と、前記クライアントにより指定されたインデックスのメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、紛失通信により前記クライアントに送信する鍵送信部と、を有するサーバを提供する。また、このようなサーバおよびクライアントを備えるシステム、このシステムに備えられるクライアント、このようなサーバおよびクライアントとしてコンピュータを機能させるためのプログラム、並びに、このようなシステムに関連する方法を提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。図1は、本実施形態に係る情報提供システム10の機能ブロック図を示す。本実施形態に係る情報提供システム10は、サーバ20と、クライアント30とを備える。本実施形態に係る情報提供システム10は、サーバ20が保有するN個のメッセージのうち、クライアント30により指定されたインデックスのメッセージをクライアント30に取得させる。なお、Nは、2以上の整数である。ここで、N個のメッセージのそれぞれは、例えば、テキストデータ、画像データ、音楽データおよびプログラムデータ等のどのようなデータおよびファイル等であってもよい。N個のメッセージには、それぞれに固有のインデックスが付けられている。従って、情報提供システム10では、1つのインデックスが指定されることにより、N個のメッセージのうちの1つのメッセージが特定される。サーバ20は、メッセージ記憶部40と、分類部42と、メッセージ暗号化部44と、メッセージ供給部46と、鍵送信部48とを有する。また、クライアント30は、メッセージ取得部52と、分類済メッセージ記憶部54と、鍵受信部56と、メッセージ復号部58とを有する。サーバ20のメッセージ記憶部40は、N個のメッセージを記憶する。N個のメッセージは、一例として、サーバ20の管理者等により書き込まれる。サーバ20の分類部42は、N個のメッセージを内容毎にM個の分類済メッセージに分類する。ここで、Mは、1以上N以下の整数である。分類部42は、一例として、メッセージの重複を無くすように、N個のメッセージのうち他と同一の内容例えば同一データのメッセージを削除してM個の分類済メッセージを生成する。また、この場合において、分類部42は、N個のメッセージのそれぞれが、M個の分類済メッセージの何れに対応するかを指し示すポインタも生成する。分類部42は、M個の分類済メッセージをメッセージ暗号化部44へと受け渡す。また、分類部42は、ポインタを鍵送信部48へと受け渡す。サーバ20のメッセージ暗号化部44は、M個の分類済メッセージのそれぞれを暗号化する。メッセージ暗号化部44は、M個の暗号化された分類済メッセージをメッセージ供給部46へと受け渡す。また、メッセージ暗号化部44は、M個の分類済メッセージのそれぞれを復号するためのM個のメッセージ鍵を鍵送信部48へと受け渡す。サーバ20のメッセージ供給部46は、M個の暗号化された分類済メッセージをクライアント30へと供給する。メッセージ供給部46は、一例として、クライアント30によるインデックスの指定に先立ってオフラインで、M個の暗号化された分類済メッセージをクライアント30へと供給する。また、メッセージ供給部46は、クライアント30によるインデックスの指定がされたことに応じてオンラインで、M個の暗号化された分類済メッセージをクライアント30へと供給してもよい。クライアント30のメッセージ取得部52は、サーバ20のメッセージ供給部46から供給されたM個の暗号化された分類済メッセージを取得する。メッセージ取得部52は、一例として、ユーザ等からのインデックスの指定に先立って、M個の暗号化された分類済メッセージを取得する。また、メッセージ取得部52は、一例として、ユーザ等によるインデックスの指定がされたことに応じて、M個の暗号化された分類済メッセージを取得してもよい。クライアント30の分類済メッセージ記憶部54は、メッセージ取得部52により取得されたM個の暗号化された分類済メッセージを記憶する。クライアント30は、インデックスの指定がされたことに応じてM個の暗号化された分類済メッセージを取得する場合には、分類済メッセージ記憶部54を有さない構成であってもよい。サーバ20の鍵送信部48は、M個のメッセージ鍵、および、N個のメッセージのそれぞれがM個の分類済メッセージの何れに対応するかを指し示すポインタを受け取る。また、クライアント30の鍵受信部56は、ユーザ等から、N個のメッセージのうちの取得を希望するメッセージのインデックスの指定を受ける。そして、サーバ20の鍵送信部48は、M個のメッセージ鍵のうちクライアント30により指定されたインデックスのメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、紛失通信によりクライアント30に送信する。また、クライアント30の鍵受信部56は、指定したインデックスのメッセージに対応するメッセージ鍵を紛失通信によりサーバ20から受信する。即ち、鍵送信部48および鍵受信部56は、指定されたインデックスに対応するメッセージ鍵以外のメッセージ鍵をクライアント30が取得できず且つ指定されたインデックスをサーバ20に特定させないプロトコルで、対応するメッセージ鍵をサーバ20からクライアント30へと受け渡す。なお、紛失通信での具体的な処理方法の一例については詳細を後述する。また、鍵送信部48は、メッセージ鍵とともに、指定されたインデックスに対応する分類済メッセージを指し示すポインタを紛失通信によりクライアント30に送信してもよい。この場合において、鍵送信部48は、メッセージ鍵の一部にポインタを含めて送信してもよい。そして、鍵受信部56は、ポインタを、メッセージ鍵とともに紛失通信により受信する。これにより、クライアント30は、受信したメッセージ鍵を用いて、M個の暗号化された分類済メッセージのうち何れを復号できるかを特定することができる。メッセージ復号部58は、鍵受信部56が受信したメッセージ鍵により、サーバ20から供給されたM個の暗号化された分類済メッセージのうち、指定されたインデックスのメッセージに対応する分類済メッセージを復号する。この場合において、メッセージ復号部58は、鍵受信部56がメッセージ鍵とともにポインタを受信していれば、受信したポインタに指し示された分類済メッセージを復号する。また、メッセージ復号部58は、鍵受信部56がポインタを受信していない場合においては、M個の分類済メッセージの全てについて復号処理を実行してみて、復号できた1つの分類済メッセージを取得してもよい。このように復号した分類済メッセージは、サーバ20が保有するN個のメッセージのうちの指定されたインデックスのメッセージと同一である。従って、情報提供システム10は、指定されたインデックスのメッセージ以外のメッセージをクライアント30が取得できず且つ指定されたインデックスをサーバ20に特定させずに、指定したインデックスのメッセージをクライアント30に取得させることができる。図2は、本実施形態に係る情報提供システム10におけるサーバ20からクライアント30へのメッセージの受け渡し処理のフローを示す。まず、サーバ20は、N個のメッセージを保有している。本例においては、サーバ20は、1~Nのインデックスが付けられたN個のメッセージであるX1、X2、X3、...、Xi、...、XNを保有している。なお、Xはメッセージを表し、Xの下付けの数字はメッセージのインデックスを表す。また、iは、1以上、N以下の任意の整数を表す。ステップS11において、サーバ20の分類部42は、N個のメッセージを内容毎にM個の分類済メッセージに分類する。本例においては、分類部42は、N個のメッセージであるX1、X2、X3、...、Xi、...、XNから重複したメッセージ例えば内容が同一であるメッセージを削除して、M個の分類済メッセージであるC1、C2、...、Cj、...、CMを生成する。なお、Cは分類済メッセージを表し、Cの下付け数字は分類済メッセージのインデックス分類インデックスを表す。また、ステップS11において、サーバ20の分類部42は、N個のメッセージのそれぞれが、M個の分類済メッセージの何れに対応するのかを指し示すポインタを生成する。本例においては、N個のメッセージのうちのインデックスiのメッセージXiが、分類インデックスjの分類済メッセージCjに対応している。従って、サーバ20の分類部42は、インデックスiのメッセージXiについては、分類インデックスjの分類済メッセージCjに対応していることを指し示すポインタを生成する。続いて、ステップS12において、サーバ20のメッセージ暗号化部44は、M個の分類済メッセージC1、C2、...、Cj、...、CMのそれぞれを暗号化してM個の暗号文を生成する。生成されたM個の暗号文のそれぞれは、互いに異なるM個のメッセージ鍵k1~kMのそれぞれを用いて復号することができる。本例においては、サーバ20のメッセージ暗号化部44は、M個の暗号文であるEk1,C1、Ek2,C2、...、Ekj,Cj、...、EkM,CMを生成する。なお、Ek、Cは、分類済メッセージCをメッセージ鍵kにより暗号化した暗号文を表す。続いて、ステップS13において、サーバ20のメッセージ供給部46は、M個の暗号化された分類済メッセージをクライアント30へと供給する。本例においては、メッセージ供給部46は、M個の暗号化された分類済メッセージを、クライアント30によるインデックスの指定に先立ってオフラインで、クライアント30へと供給する。また、オフラインの場合において、サーバ20のメッセージ供給部46は、M個の暗号化された分類済メッセージをネットワークを介してクライアント30へと送信してもよいし、M個の暗号化された分類済メッセージを記憶媒体に書き込んでクライアント30に受け渡してもよい。また、この場合、サーバ20のメッセージ供給部46は、M個の暗号化された分類済メッセージを、N個のメッセージの順次に対してランダム化した順序でクライアント30に供給してもよい。これにより、サーバ20は、メッセージの位置をクライアント30のユーザ等に推測させないことができる。また、オフラインでの処理に代えて、サーバ20のメッセージ供給部46は、ユーザ等によるインデックスの指定がされたことに応じてオンラインで、M個の暗号化された分類済メッセージをネットワークを介してクライアント30に送信してもよい。この場合、サーバ20のメッセージ供給部46は、M個の暗号化された分類済メッセージをデータサイズの小さい順に並べてクライアント30に送信してもよい。これにより、クライアント30は、指定されたインデックスのメッセージに対応する分類済メッセージが比較的に小さいデータサイズであれば、M個の暗号化された分類済メッセージの送信中における比較的に早い段階で目的のメッセージを取得することができる。続いて、ステップS14において、クライアント30のメッセージ取得部52は、サーバ20のメッセージ供給部46から供給されたM個の暗号化された分類済メッセージを取得する。クライアント30のメッセージ取得部52は、インデックスの指定に先立ってオフラインで、M個の暗号化された分類済メッセージをネットワークを介してサーバ20から取得してもよいし、サーバ20により書き込まれたM個の暗号化された分類済メッセージを記録媒体から読み出して取得してもよい。そして、クライアント30の分類済メッセージ記憶部54は、取得したM個の暗号化された分類済メッセージを内部に記憶する。なお、クライアント30のメッセージ取得部52は、オフラインでの処理に代えて、後述のステップS15でインデックスの指定がされたことに応じてオンラインで、M個の暗号化された分類済メッセージをネットワークを介してサーバ20から受信してもよい。続いて、ステップS15において、クライアント30の鍵受信部56は、例えばユーザから、サーバ20が保有するN個のメッセージのうちの取得すべきメッセージのインデックスの指定を受ける。本例においては、サーバ20の鍵受信部56は、インデックスとしてiの指定を受ける。そして、サーバ20の鍵送信部48およびクライアント30の鍵受信部56は、紛失通信をして、指定されたインデックスに対応するメッセージ鍵をサーバ20からクライアント30へと受け渡す。より具体的には、サーバ20の鍵送信部48は、M個のメッセージ鍵のうちクライアント30により指定されたインデックスのメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、紛失通信によりクライアント30に送信する。一方、クライアント30の鍵受信部56は、指定したインデックスのメッセージに対応するメッセージ鍵を紛失通信によりサーバ20から受信する。これにより、鍵送信部48および鍵受信部56は、指定されたインデックスに対応するメッセージ鍵以外のメッセージ鍵をクライアント30が取得できず且つ指定されたインデックスをサーバ20に特定させずに、指定されたインデックスに対応するメッセージ鍵を受け渡すことができる。本例においては、サーバ20の鍵送信部48およびクライアント30の鍵受信部56は、インデックスiの指定を受けたことに応じて、インデックスiのメッセージXiに対応する分類済メッセージCjを復号するためのメッセージ鍵kjを、紛失通信により、サーバ20からクライアント30へと受け渡す。これにより、本例においては、鍵送信部48および鍵受信部56は、指定されたインデックスiに対応するメッセージ鍵kj以外のメッセージ鍵をクライアント30が取得できず且つ指定されたインデックスiをサーバ20に特定させずに、メッセージ鍵kjを受け渡すことができる。なお、サーバ20の鍵送信部48は、メッセージ鍵とともに、指定されたインデックスのメッセージに対応する分類済メッセージを指し示すポインタ例えば分類インデックスを紛失通信によりクライアント30に送信してもよい。この場合において、サーバ20の鍵送信部48は、メッセージ鍵の一部に含めて送信してもよい。そして、鍵受信部56は、ポインタをメッセージ鍵とともに紛失通信により受信する。これにより、クライアント30の鍵受信部56は、M個の暗号化された分類済メッセージのうち、受信したメッセージ鍵により何れを復号できるかを特定することができる。続いて、ステップS16において、クライアント30のメッセージ復号部58は、鍵受信部56が受信したメッセージ鍵により、サーバ20から供給されたM個の暗号化された分類済メッセージのうち、指定されたインデックスのメッセージに対応する分類済メッセージを復号する。この場合において、クライアント30のメッセージ復号部58は、鍵受信部56がメッセージ鍵とともにポインタを受信していれば、受信したポインタに示された分類済メッセージを復号する。また、クライアント30のメッセージ復号部58は、ポインタを受信していない場合においては、M個の分類済メッセージの全てについて復号処理を実行してみて、1つの分類済メッセージを復号してもよい。本例においては、クライアント30のメッセージ復号部58は、分類済メッセージCjを復号することができる。ここで、分類済メッセージCjは、サーバ20が保有するN個のメッセージのうちの指定されたインデックスiのメッセージXiと同一である。従って、情報提供システム10は、指定されたインデックスiのメッセージXi以外のメッセージをクライアント30が取得できず且つ指定されたインデックスiをサーバ20に特定させずに、指定したインデックスiのメッセージXiをクライアント30に受け取らせることができる。以上のように本実施形態に係る情報提供システム10によれば、重複したメッセージをサーバ20からクライアント30へと供給しなくてもよいので、冗長性の低い紛失通信を実現することができる。これにより、情報提供システム10は、N個のメッセージの紛失通信を実行する場合において、効率良く通信を行うことができる。図3は、サーバ20とクライアント30との間におけるメッセージ鍵の紛失通信による受け渡し処理のフローを示す。図4は、図3に続くフローを示す。図5は、図4に続くフローを示す。以下、図3、図4および図5を参照して、ステップS15で実行される紛失通信の通信処理の一例を説明する。なお、本実施形態において行われる紛失通信は、以下に説明する処理に限らず、他の処理により実現してもよい。まず、ステップS21において、サーバ20は、rを生成する。続いて、ステップS22において、サーバ20は、gにrを冪乗して、grを生成する。ここで、gは、位数qの生成元を表す。なお、qは、任意の素数である。また、gは、サーバ20およびクライアント30の両者で共通に定められた値である。また、rは、位数qの巡回群Zqからランダムに選択された値である。また、後述するr1およびr2も、位数qの巡回群Zqからランダムに選択された値である。続いて、ステップS23において、サーバ20は、T2,T3,T4,...,TNを生成する。T2,T3,T4,...,TNは、N-1個の任意の整数であり、2からNまでのインデックスが付けられている。続いて、ステップS24において、サーバ20は、grおよびT2,T3,T4,...,TNをクライアント30へと送信する。なお、クライアント30は、離散対数の性質から、grからrを算出することはきわめて困難である。従って、rは、クライアント30に対して秘匿されているといえる。続いて、ステップS25において、クライアント30は、N個のメッセージのうちのユーザが取得を希望するメッセージを特定するためのインデックスの指定を受け取る。本例においては、クライアント30は、インデックスとしてiの指定を受ける。ここで、iは、1以上N以下の任意の整数である。続いて、ステップS26において、クライアント30は、T2,T3,T4,...,TNの中から、i番目のインデックスに対応するTiを選択する。なお、指定されたインデックスiが1の場合i=1の場合には、クライアント30は、ステップS26において値を選択しない。続いて、ステップS27において、クライアント30は、r2を生成する。続いて、ステップS28において、クライアント30は、gにr2を冪乗して、gr2を生成する。続いて、ステップS29において、クライアント30は、PK1を算出する。具体的には、クライアント30は、i=1の場合には、gr2をPK1とするPK1=gr2。また、クライアント30は、i≠1の場合には、Ti/gr2を算出し、算出したTi/gr2をPK1とするPK1=Ti/gr2。続いて、ステップS30において、クライアント30は、PK1をサーバ20へと送信する。なお、サーバ20は、離散対数の性質から、gr2からr2を算出することはきわめて困難である。従って、r2は、サーバ20に対して秘匿されているといえる。続いて、ステップS31において、サーバ20は、rおよびT2,T3,T4,...,TN、並びに、受信したPK1に基づき、下記の式1のように、PK1r、PK2r、...、PKir、...、PKNrを算出する。なお、ここで、PKirは、下記の式2のように、gr2rとなる。続いて、ステップS32において、サーバ20は、r1を生成する。続いて、ステップS33において、サーバ20は、下記の式3に示すように、N個の暗号鍵S1,S2,...,Si,...,SNを生成する。なお、下記の式3において、Hx,y,zは、x、y、zを変数としたハッシュ関数を表す。続いて、ステップS34において、サーバ20は、M個の分類済メッセージのそれぞれを復号するためのM個のメッセージ鍵k1,k2,...,kMを、N個のメッセージのインデックス順に再配置する。この場合において、サーバ20は、N個のメッセージのそれぞれが、M個の分類済メッセージの何れに対応するのかを指し示すポインタを参照して、メッセージ鍵を再配置する。続いて、ステップS35において、サーバ20は、N個のメッセージのインデックス順に再配置されたN個のメッセージ鍵のそれぞれを、ステップS33で生成したN個の暗号鍵S1,S2,...,Si,...,SNのそれぞれにより暗号化する。即ち、サーバ20は、1番目のメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、1番目の暗号鍵S1により暗号化する。また、サーバ20は、i番目のメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、i番目の暗号鍵Siにより暗号化する。また、サーバ20は、N番目のメッセージに対応する分類済メッセージを復号するためのメッセージ鍵を、N番目の暗号鍵SNにより暗号化する。これにより、サーバ20は、下記の式4に示すようなN個の暗号文を生成することができる。なお、この場合において、サーバ20は、N個のメッセージ鍵のそれぞれとともに、当該メッセージ鍵により復号ができる分類済メッセージを指し示すポインタ例えば、分類インデックスを暗号化する。この場合において、サーバ20は、メッセージ鍵の一部にポインタを含めてもよい。続いて、ステップS36において、サーバ20は、生成したN個の暗号文をクライアント30へと送信する。続いて、ステップS37において、サーバ20は、r1をクライアント30へと送信する。一方、ステップS38において、クライアント30は、grにr2を冪乗したgrr2を算出する。ここで、PKirは、式2で示したように、gr2rとなる。即ち、ステップS38でクライアント30が算出したgrr2は、PKirを表す。続いて、ステップS39において、クライアント30は、PKir、r1及びiを用いて、インデックスiに対応した暗号鍵Siを生成する。なお、クライアント30は、PKir以外の値例えばPK1r、PK2r、及びPKMr等を生成することはできないので、インデックスiに対応した暗号鍵Si以外の暗号鍵を生成することはできない。従って、クライアント30は、インデックスiのメッセージに対応した分類済メッセージを復号するためのメッセージ鍵kj以外のメッセージ鍵を取得することはできない。続いて、ステップS40において、クライアント30は、暗号文ESi,kjから、ステップS39で生成した暗号鍵Siを用いてメッセージ鍵kjを復号する。これにより、クライアント30は、インデックスiのメッセージXiに対応した分類済メッセージCjを復号するためのメッセージ鍵kjを取得することができる。また、この場合において、クライアント30は、暗号文Si,kjにポインタが含まれていれば、ポインタも復号して取得する。以上のように、サーバ20およびクライアント30は、指定されたインデックスiに対応するメッセージ鍵kj以外のメッセージ鍵をクライアント30が取得できず且つ指定されたインデックスiをサーバ20に特定させずに、指定されたインデックスiに対応するメッセージ鍵kjを受け渡すことができる。図6は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホストコントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィックコントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホストコントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD-ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスクドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。ホストコントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィックコントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ2075は、CPU2000等がRAM2020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィックコントローラ2075は、CPU2000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。入出力コントローラ2084は、ホストコントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD-ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD-ROMドライブ2060は、CD-ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。また、入出力コントローラ2084には、ROM2010と、フレキシブルディスクドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブートプログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスクドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD-ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。コンピュータ1900にインストールされ、コンピュータ1900を、サーバ20として機能させるプログラムは、メッセージ記憶モジュールと、分類モジュールと、メッセージ暗号化モジュールと、メッセージ供給モジュールと、鍵送信モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、メッセージ記憶部40、分類部42、メッセージ暗号化部44、メッセージ供給部46および鍵送信部48としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、メッセージ記憶部40、分類部42、メッセージ暗号化部44、メッセージ供給部46および鍵送信部48として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のサーバ20が構築される。コンピュータ1900にインストールされ、コンピュータ1900を、クライアント30として機能させるプログラムは、メッセージ取得モジュールと、分類済メッセージ記憶モジュールと、鍵受信モジュールと、メッセージ復号モジュールと、を備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、メッセージ取得部52、分類済メッセージ記憶部54、鍵受信部56およびメッセージ復号部58としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、メッセージ取得部52、分類済メッセージ記憶部54、鍵受信部56およびメッセージ復号部58として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のクライアント30が構築される。一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD-ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMAダイレクトメモリアクセス方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。また、CPU2000は、ハードディスクドライブ2040、CD-ROMドライブ2060CD-ROM2095、フレキシブルディスクドライブ2050フレキシブルディスク2090等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合又は不成立であった場合に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD-ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段より前に、先立って等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上まず、、次に、等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。"