"順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを判定する判定部とを有するサーバ。順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、を有し、前記サーバ側通信部が、前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを前記クライアントの判定部に判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するサーバ。前記クライアントは、前記クライアントの状態が前記集合に含まれるかの判定がされてから、更に状態が遷移し、前記判定部は、前記クライアントの状態が前記集合に含まれるかの判定をしてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定する請求項1または2に記載のサーバ。受け取ったイベントに応じて状態が遷移するオートマトンを有するサーバ側検知部を有し、前記クライアントが順次に遷移する当該クライアントの状態を管理する状態管理部を有し、前記状態管理部は、前記クライアントにおいて発生するイベントを入力し、入力したイベントを前記サーバに開示しないで、入力したイベントに応じて遷移した状態を表した値であって前記クライアントに対して秘匿された秘匿状態値を前記サーバ側検知部から取得し、前記サーバ側検知部は、前記クライアントに対して前記オートマトンを開示しないで、前記入力したイベントに応じて状態を遷移させ、遷移した状態に対応した前記秘匿状態値を前記状態管理部に送信し、前記状態管理部は、取得した前記秘匿状態値を前記クライアントの状態として管理し、前記集合記憶部は、前記オートマトンにおける複数の状態のそれぞれに対応する複数の秘匿状態値のうちの一部を前記集合に含まれる状態として記憶する請求項3に記載のサーバ。前記サーバ側通信部は、前記集合に含まれる複数の状態のそれぞれを表す値を解とする多項式の係数のそれぞれを、準同型性を有する暗号化方式で暗号化した送信暗号文を前記クライアントに送信し、前記サーバ側通信部は、前記送信暗号文および前記クライアントの状態を表す値に基づき、前記多項式の変数に対して前記クライアントの状態を表す値を代入した結果を前記準同型性を有する暗号化方式で暗号化した応答暗号文を前記クライアントから受信し、前記サーバ側通信部は、前記応答暗号文を復号し、前記判定部は、前記応答暗号文の復号結果から、前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれるかを判定する請求項1に記載のサーバ。前記サーバ側通信部は、前記クライアントの複数の状態のそれぞれを表す値を解とする多項式の係数のそれぞれを、準同型性を有する暗号化方式で暗号化した送信暗号文を前記クライアントから受信し、前記サーバ側通信部は、前記クライアントに応答暗号文を復号させ、前記判定部に、前記応答暗号文の復号結果から前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれるかを判定させるために、前記送信暗号文および前記サーバの前記集合記憶部が記憶する前記集合に含まれる複数の状態のそれぞれを表す値に基づき、前記多項式の変数に対して前記集合に含まれる複数の状態のそれぞれを表す値を代入した結果を前記準同型性を有する暗号化方式で暗号化した前記応答暗号文を生成して、前記クライアントに送信する請求項2に記載のサーバ。前記クライアントは、発生するイベントに応じて状態を順次に遷移させ、前記判定部は、前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれる場合、前記クライアントに異常が発生したと検知する請求項1または2に記載のサーバ。予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、前記秘匿共通集合計算プロトコルに従って前記サーバから受け取った暗号文に基づき、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定する判定部と、を有するクライアント。予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、を有し、前記クライアント側通信部は、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定するために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するクライアント。順次に遷移する状態を管理することができるクライアントに接続可能なサーバにおける情報処理の方法であって、予め定められた状態を含む集合を記憶し、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信し、前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が記憶する前記集合に含まれるかを判定する方法。順次に遷移する状態を管理することができるクライアントに接続可能なサーバにおける情報処理の方法であって、予め定められた状態を含む集合を記憶し、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信し、前記クライアントの状態が記憶する前記集合に含まれるかを判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信する方法。コンピュータを請求項1または2に記載のサーバとして機能させるためのプログラム。コンピュータを請求項8または9に記載のクライアントとして機能させるためのプログラム。しかし、サーバがクライアントの状態を定期的に取得して監視した場合、クライアントがどのような状態に遷移しているのかがサーバ側に推測されてしまう可能性がある。また、クライアントが保有する文字列が、サーバが保有するオートマトンに受理されるか否かを認証する方法として、秘匿状態検知と呼ばれる方法がある。この秘匿状態検知と呼ばれる方法では、クライアントが保有する文字列をサーバに開示せず且つサーバが保有するオートマトンをクライアントに開示せずに認証処理を実行する。このような認証方法を用いれば、クライアントの状態がサーバに対して秘匿されるので、クライアントの状態が推測されてしまうことはない。しかしながら、秘匿状態検知は、毎回、オートマトンを初期状態に戻し、順次にオートマトンの状態を遷移させながら認証処理を実行しなければならない。従って、定期的にクライアントの状態を監視する場合には、時間が経過する毎に遷移量処理量が多くなってしまい、処理負担が大きくなってしまう。本発明の第1の態様においては、順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを判定する判定部とを有するサーバ、このようなサーバにおける情報処理の方法、および、プログラムを提供する。本発明の第2の態様においては、順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、を有し、前記サーバ側通信部が、前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを前記クライアントの判定部に判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するサーバ、このようなサーバにおける情報処理の方法、および、プログラムを提供する。本発明の第3の態様においては、予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、前記秘匿共通集合計算プロトコルに従って前記サーバから受け取った暗号文に基づき、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定する判定部と、を有するクライアントを提供する。本発明の第4の態様においては、予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、を有し、前記クライアント側通信部は、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定するために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するクライアントを提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。図1は、本実施形態に係る検出システム10の機能ブロック図を示す。本実施形態に係る検出システム10は、クライアント20と、サーバ30とを備える。検出システム10は、順次に遷移するクライアント20の状態が、サーバ30が記憶する予め定められた状態に一致するか否かを例えば定期的に検出する。この場合において、検出システム10は、クライアント20の状態をサーバ30に特定させず且つサーバ30が記憶する予め定められた状態をクライアント20に特定させずに、検出処理を実行する。クライアント20は、状態管理部42と、クライアント側通信部44とを有する。サーバ30は、集合記憶部46と、サーバ側通信部48と、判定部50とを有する。クライアント20の状態管理部42は、順次に遷移する当該クライアント20の状態を管理する。状態管理部42は、例えば、当該クライアント20の状態を、イベントの発生に応じて遷移させる。状態管理部42は、一例として、オートマトンを有し、当該クライアント20において発生される様々なイベントに応じてオートマトンの状態を遷移させる。例えばクライアント20が金融トランザクションを管理する装置であれば、状態管理部42は、出金処理、入金処理および振込処理等のイベントを取得し、取得したイベントに応じて当該クライアント20の状態を遷移させる。また、状態管理部42は、ユーザが入力した文字例えばパスワードをイベントとして取得し、取得した文字に応じてオートマトンの状態を遷移させ、入力された文字列がオートマトンにより受理できるか否かパスワードが正しいか否かを検知してもよい。また、状態管理部42は、他の機器例えばサーバ30がオートマトンを保有しており、状態の遷移処理を他の機器に実行させて、他の機器から検出結果を取得してもよい。この場合において、状態管理部42は、発生したイベントの内容例えば文字列を他の機器に対して秘匿し且つ他の機器の保有するオートマトンの内容を当該クライアント20に対して秘匿したプロトコル秘匿状態検知プロトコルにより、他の機器から当該クライアント20の状態を取得してもよい。さらに、この場合において、状態管理部42は、状態を表す値として、クライアント20に対して秘匿された秘匿状態値例えば、サーバ30によって発生された乱数または暗号値を取得してもよい。なお、状態管理部42が、当該クライアント20の状態として秘匿状態値を管理する例については詳細を後述する。サーバ30の集合記憶部46は、予め定められた複数の状態を含む集合を記憶する。例えばクライアント20が金融トランザクションを管理する装置であれば、状態管理部42は、特定の口座例えばブラックアカウントへの振込処理が一定期間内に予め定められた数以上実行された場合に遷移する状態、および、不正処理と推定されるような特定の挙動を示す振込処理等が実行された場合に遷移する状態等を含む集合を記憶する。また、状態管理部42は、パスワードを一定回数以上連続して間違って入力した場合に遷移する状態を含む集合を記憶してもよい。判定部50は、クライアント側通信部44およびサーバ側通信部48に互いに通信をさせて、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれるかを判定する。判定部50は、一例として、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれる場合、クライアント20に異常が発生したと検知する。反対に、判定部50は、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれていなかった場合に、クライアント20に異常が発生したと検知してもよい。クライアント20のクライアント側通信部44は、サーバ30のサーバ側通信部48とネットワークを介して通信をする。サーバ30のサーバ側通信部48は、クライアント20のクライアント側通信部44とネットワークを介して通信をする。ここで、クライアント側通信部44およびサーバ側通信部48は、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより互いに通信をする。秘匿共通集合計算プロトコルについては、例えば、上述の非特許文献1に記載がある。なお、秘匿共通集合計算プロトコルによる通信処理の詳細については、図3を参照して説明する。図2は、クライアント20の状態がサーバの30が記憶する集合に含まれる複数の状態の何れかに一致するか否かを判断するタイミングを示す。クライアント20は、イベントが発生したことに応じて状態を遷移させる。例えば、図2に示されるように、クライアント20は、q0を初期状態とし、順次に、q0→q1→q2→...qNといったように状態が遷移する。そして、サーバ30の判定部50は、例えば予め設定されたタイミングにおいて、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれるかを判定する。例えば、図2に示されるように、判定部50は、予め設定されたタイミングにおいて、当該タイミングにおけるクライアント20の状態qNが、予め定められた複数の状態f1,f2,f3,...,fkの何れかに一致するかを判定する。また、クライアント20は、クライアント20の状態が集合に含まれるかの判定がされてから、更に状態が遷移する。例えば図2に示されるように、クライアント20は、qNから順次に、qN1→qN2→qN3→...qXといったように状態が遷移する。そして、判定部50は、クライアント20の状態が集合に含まれるかの判定をしてから、クライアント20の状態が少なくとも1回以上遷移した後において、秘匿共通集合計算プロトコルによりクライアント20の状態が集合に含まれるかを再度判定する。例えば図2に示されるように、判定部50は、前回判定がされてから一定時間経過後におけるクライアント20の状態qXが、予め定められた複数の状態f1,f2,f3,...,fkの何れかに一致するかを判定する。以後、クライアント20は、時間の経過に応じて更に状態が遷移する。そして、判定部50は、例えば一定期間毎に繰り返して、秘匿共通集合計算プロトコルによりクライアント20の状態がサーバ30に記憶されている集合に含まれるかを判定する。これにより、判定部50は、クライアント20の状態をサーバ30に対して秘匿し且つサーバ30が記憶する状態をクライアント20に対して秘匿しながら、クライアント20の状態がサーバ30が記憶する集合に含まれる複数の状態の何れかに一致するかを判定することができる。さらに、判定部50は、クライアント20の状態の遷移が進んだ場合であっても、処理量を増加させずに、クライアント20の状態がサーバ30が記憶する集合に含まれる複数の状態の何れかに一致するかを判定することができる。図3は、本実施形態に係る検出システム10における、秘匿共通集合計算プロトコルによる通信処理の一例を示す。クライアント20およびサーバ30は、秘匿共通集合計算プロトコルによりクライアント20の状態がサーバ30が記憶する集合に含まれるかを判定する場合、下記のステップS11からステップS17の処理を実行する。サーバ30は、集合に含まれる複数の状態を表す値として、下記の数1のような値を予め記憶しているとする。まず、ステップS11において、サーバ30は、多項式Pxを生成する。多項式Pxは、変数xに、サーバ30が記憶する集合に含まれる複数の状態を表す値が代入されると、0となるような関数である。即ち、サーバ30は、下記の数2に示されるような、集合に含まれる複数の状態を表す値を変数xの解とする多項式Pxを生成する。続いて、ステップS12において、サーバ30は、下記の数3に示されるように、多項式Pxの全ての次数の係数のそれぞれを、準同型性例えば加法準同型性を有する暗号化方式により暗号化した複数の送信暗号文を生成する。サーバ30は、一例として、拡張エルガマル暗号により各係数を暗号化する。ここで、加法準同型性を有する暗号化方式により暗号化された暗号文は、下記の数4に示されるような特徴を有する。なお、m1、m2、mは、平文を表す。即ち、加法準同型性を有する暗号化方式では、2つの暗号文Em1、Em2が与えられたときに、暗号文同士の加算結果Em1Em2が、平文同士を加算した後に暗号化した暗号文Em1m2と同一となる。また、暗号文を任意の数値kで冪乗した結果Emkが、平文を任意の数値kで乗算した後に暗号化した暗号文Ekmと同一となる。続いて、ステップS13において、サーバ30は、生成した複数の送信暗号文をクライアント20に送信する。この場合において、サーバ30は、何れの次数の係数に対応する暗号文なのかをクライアント20が特定できるように、各送信暗号文を送信する。一方、クライアント20は、当該クライアント20の状態を表す値例えば、qを記憶している。また、クライアント20は、複数の状態を並行に管理している場合には、下記の数5に示されるような、複数の状態のそれぞれを表す値を記憶していてもよい。ステップS14において、クライアント20は、サーバ30から受け取った複数の送信暗号文、および、当該クライアント20の状態を表す値qから、数4に示した準同型性の暗号文の特性を利用して、応答暗号文ErPqを生成する。ここで、応答暗号文ErPqは、多項式Pxの変数xに当該クライアント20の状態を表す値qを代入した結果を表す値Pqに対して乱数r乗算した値を、準同型性を有する暗号化方式で暗号化した暗号文である。即ち、クライアント20は、当該クライアント20の状態を表す値qに、多項式に含まれる変数の次数のそれぞれを冪乗する。そして、クライアント20は、対応する次数を冪乗したクライアント20の状態を表す値のそれぞれを、数3に示される、対応する次数の送信暗号文に対して冪乗する。そして、クライアント20は、これらを加算合成し、加算合成した結果に乱数を冪乗することにより、応答暗号文ErPqを生成することができる。また、この場合、クライアント20が複数の状態を並行して管理している場合には、クライアント20は、下記の数6に示すように、複数の状態を表す値qa、qb、qc、...のそれぞれについて、応答暗号文を生成する。なお、数6において、r1、r2、r3は、乱数を表す。続いて、ステップS15において、クライアント20は、生成した各応答暗号文をサーバ30へと送信する。続いて、ステップS16において、サーバ30は、各応答暗号文を復号する。この場合において、サーバ30は、ステップS12で用いた暗号鍵に応じた復号鍵で応答暗号文を復号する。続いて、ステップS17において、サーバ30は、何れかの応答暗号文を復号した結果に0が含まれているか否かを判断する。ここで、多項式Pxの解は、サーバ30が記憶している集合に含まれる複数の状態を表す値f1、f2、f3、...、fkである。従って、多項式Pxに代入したクライアント20の状態を表す値qa、qb、qc、...と、集合に含まれる複数の状態を表す値f1、f2、f3、...、fkの何れかが一致している場合、復号結果は0となる。反対に、多項式Pxに代入したクライアント20の状態を表す値qa、qb、qc、...が、集合に含まれる複数の状態を表す値f1、f2、f3、...、fkの何れとも一致していなければ、復号結果は0以外の値となる。従って、サーバ30は、応答暗号文を復号した結果に0が含まれていれば、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれると判定することができる。反対に、サーバ30は、応答暗号文を復号した結果に0が含まれていなければ、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれていないと判定することができる。以上のようにサーバ30では、クライアント20の状態をサーバ30に対して秘匿し且つサーバ30が記憶する集合の内容をクライアント20に秘匿しながら、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれているか否かを判定することができる。図4は、本実施形態の第1変形例に係る検出システム10の構成を示す。本変形例に係る検出システム10は、図1に示した本実施形態に係る検出システム10と略同一の構成および機能を有する。従って、本変形例については、図1に示した部材と略同一の機能および構成を有する部材については、相違点を除き説明を省略する。本変形例に係るクライアント20は、判定部50を更に有する。また、本変形例に係るサーバ30は、判定部50を有していない。即ち、本変形例において、判定部50は、サーバ30に代えて、クライアント20に備えられている。本変形例において、判定部50は、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれるかの判定結果を、クライアント20のユーザに対して出力する。図5は、第1変形例における、秘匿共通集合計算プロトコルによる通信処理の一例を示す。本変形例において、サーバ30およびクライアント20は、秘匿共通集合計算プロトコルによりサーバ30の状態がクライアント20が記憶する集合に含まれるかを判定する場合、下記のステップS21からステップS27の処理を実行する。クライアント20は、複数の状態のそれぞれを表す値qa、qb、qc、...を記憶している。まず、ステップS21において、クライアント20は、多項式Pxを生成する。多項式Pxは、変数xに、クライアント20の状態を表す値qa、qb、qcが代入されると、0となるような関数である。続いて、ステップS22において、クライアント20は、生成した多項式Pxの全ての次数の係数のそれぞれを、準同型性例えば加法準同型性を有する暗号化方式により暗号化した複数の送信暗号文を生成する。クライアント20は、一例として、拡張エルガマル暗号により各係数を暗号化する。続いて、ステップS23において、クライアント20は、生成した複数の送信暗号文をサーバ30に送信する。この場合において、クライアント20は、何れの次数の係数に対応する暗号文なのかをサーバ30が特定できるように、各送信暗号文を送信する。一方、サーバ30は、集合に含まれる複数の状態を表す値f1、f2、f3、...、fkを記憶している。ステップS24において、サーバ30は、クライアント20から受け取った複数の送信暗号文、および、集合に含まれる複数の状態を表す値f1、f2、f3、...、fkから、準同型性の暗号文の特性を利用して、応答暗号文ErPfを生成する。ここで、応答暗号文ErPfは、多項式Pxの変数xに、集合に含まれる複数の状態を表す値f1、f2、f3、...、fkを代入した結果を表す値Pf1、Pf2、...、Pfkのそれぞれに乱数rを乗算した値を、準同型性を有する暗号化方式で暗号化した暗号文である。続いて、ステップS25において、サーバ30は、生成した応答暗号文をクライアント20へと送信する。続いて、ステップS26において、クライアント20は、応答暗号文を復号する。この場合において、クライアント20は、ステップS22で用いた暗号鍵に応じた復号鍵で応答暗号文を復号する。続いて、ステップS27において、クライアント20は、何れかの応答暗号文を復号した結果に0が含まれているか否かを判断する。クライアント20は、応答暗号文を復号した結果に0が含まれていれば、サーバ30の状態がクライアント20の集合記憶部46が記憶する集合に含まれると判定することができる。反対に、サーバ30は、応答暗号文を復号した結果に0が含まれていなければ、サーバ30の状態がクライアント20の集合記憶部46が記憶する集合に含まれていないと判定することができる。以上のように、本変形例において、クライアント20では、サーバ30に記憶された集合に含まれる複数の状態をクライアント20に対して秘匿し且つクライアント20の状態をサーバ30に秘匿しながら、サーバ30の状態がクライアント20の集合記憶部46が記憶する集合に含まれているか否かを判定することができる。図6は、本実施形態の第2変形例に係る検出システム10の構成を示す。本変形例に係る検出システム10は、図1に示した本実施形態に係る検出システム10と略同一の構成および機能を有する。従って、本変形例については、図1に示した部材と略同一の機能および構成を有する部材については、相違点を除き説明を省略する。なお、本変形例を図4に示す第1変形例に係る検出システム10に適用してもよい。本変形例に係るサーバ30は、サーバ側検知部52を更に有する。本変形例に係る状態管理部42は、当該クライアント20において発生する入力する。サーバ側検知部52は、状態管理部42が受け取ったイベントに応じて状態が遷移するオートマトンを保有する。このような状態管理部42およびサーバ側検知部52は、発生したイベントの内容をサーバ30に対して秘匿し且つサーバ30が保有するオートマトンをクライアント20に対して秘匿したプロトコル秘匿状態検知プロトコルにより、クライアント20の状態を状態管理部42に取得させる。この場合において、入力したイベントに応じて遷移した状態を表す秘匿状態値をサーバ側検知部52から取得する。この秘匿状態値は、当該クライアント20に対して秘匿された値である。より具体的には、秘匿状態値は、サーバ30によって生成された乱数である。従って、クライアント20は、この乱数である秘匿状態値に対して、恣意的に何らかの変更を加えて他の状態であるように見せかけることはできない。また、サーバ側検知部52は、秘匿状態検知プロトコルにより状態管理部42と通信をして、クライアント20に対してオートマトンを開示しないで、状態管理部42が入力したイベントに応じてオートマトンの状態を遷移させる。そして、サーバ側検知部52は、秘匿状態検知プロトコルにより、遷移した状態に対応した秘匿状態値を状態管理部42に送信する。また、本変形例において、状態管理部42は、取得した秘匿状態値をクライアントの状態として管理する。また、本変形例において、集合記憶部46は、オートマトンにおける複数の状態のそれぞれに対応する複数の秘匿状態値のうちの、予め定められた一部の状態に対応する秘匿状態値を含む集合を記憶する。そして、本変形例において、クライアント側通信部44およびサーバ側通信部48は、秘匿共通集合計算プロトコルにより、状態管理部42が取得した秘匿状態値と、集合記憶部46が記憶する複数の秘匿状態値を含む集合との一致を検出する。これにより、本変形例に係るサーバ30では、クライアント20の状態をサーバ30に対して秘匿し且つサーバ30が記憶する集合の内容をクライアント20に秘匿しながら、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれているか否かを判定することができる。以下、図7から図16を参照して、秘匿状態検知プロトコルの一例を説明する。図7は、本変形例に係る状態管理部42およびサーバ側検知部52を示す。本変形例に係る検出システム10は、イベントとして文字列を入力する。検出システム10は、クライアント20の状態管理部42に入力された文字列によって、サーバ30のサーバ側検知部52が保有するオートマトンを遷移させる。そして、検出システム10は、オートマトンがいずれの状態に遷移したかを表す秘匿状態値を、クライアント20の状態として出力する。状態管理部42は、外部から文字列を入力する。文字列に含まれる文字は、どのような文字であってもよい。例えば文字は、0、1の2値の文字であってもよいし、1バイトで表現される文字であってもよい。サーバ側検知部52は、受け取った文字に応じて状態が遷移するオートマトンを有する。オートマトンが受け取る文字は、状態管理部42に入力される文字である。オートマトンは、予め登録された文字列の集合文字列群の正規表現を表す。オートマトンは、文字列に含まれる各文字を先頭から順次に受け取り、先頭の文字から1文字ずつ順次に状態を遷移させる。状態管理部42は、入力された文字列の文字毎に、入力された文字に対応する暗号配列を生成して、サーバ側検知部52へと送信する。なお、暗号配列の詳細は後述する。サーバ側検知部52は、状態管理部42から暗号配列を受信したことに応じて、暗号化された複数の交換データを生成して状態管理部42に返信する。なお、交換データの詳細は後述する。状態管理部42およびサーバ側検知部52は、暗号配列および暗号化された複数の交換データのやり取りを、入力された文字列の文字数分繰り返す。そして、状態管理部42は、複数の文字のそれぞれに対応して受信した暗号化された複数の交換データを、先頭の文字から順次に復号する。状態管理部42は、最後の文字に対応する交換データまで復号すると、オートマトンが何れの状態に遷移したかを表す後状態鍵を取得することができる。状態管理部42は、取得した後状態鍵を、当該クライアント20の状態を表す秘匿状態値として出力する。なお、後状態鍵の詳細は後述する。図8は、本変形例に係るクライアント20の状態管理部42およびサーバ30のサーバ側検知部52のそれぞれの機能ブロック構成を示す。クライアント20の状態管理部42は、文字入力部132と、配列化部134と、第1暗号化部136と、クライアント側送信部138と、クライアント側受信部140と、クライアント側鍵記憶部142と、第2復号部144と、第1復号部146と、状態記憶部148とを有する。また、サーバ30のサーバ側検知部52は、サーバ側受信部152と、オートマトン記憶部154と、鍵発生部156と、サーバ側鍵記憶部158と、交換データ生成部160と、第2暗号化部162と、サーバ側送信部164とを有する。文字入力部132は、文字列に含まれる各文字を先頭から1つずつ入力する。配列化部134は、文字入力部132が入力した文字に対応して、当該文字を特定する1つの要素が非単位元とされ、文字を特定する要素以外の要素が単位元とされた配列を生成する。なお、配列については詳細を図9等を参照して更に説明する。第1暗号化部136は、配列化部134により生成された配列に含まれる複数の要素のそれぞれを、準同型性を有する第1暗号化方式により暗号化して暗号配列を生成する。なお、第1暗号化方式および暗号配列については詳細を図9等を参照して更に説明する。クライアント側送信部138は、それぞれの文字に対応付けて、第1暗号化部136により生成された暗号配列をサーバ側検知部52に送信する。このように、状態管理部42は、文字に対応して、文字を特定する要素が準同型性を有する第1暗号化方式により非単位元を暗号化した値とされ、文字を特定する要素以外の要素が第1暗号化方式により単位元を暗号化した値とされた暗号配列を、サーバ側検知部52に送信する。サーバ側受信部152は、暗号配列を状態管理部42から受信する。オートマトン記憶部154は、状態管理部42に入力された文字列を受理するか否かを判定するためのオートマトンを記憶する。鍵発生部156は、状態管理部42に入力される文字列の各文字に対応して、オートマトンにおける複数の後状態のそれぞれに対応する後状態鍵を発生する。なお、後状態鍵については詳細を図11等を参照して更に説明する。サーバ側鍵記憶部158は、オートマトンにおける複数の後状態のそれぞれに対応付けられた後状態鍵を、次の文字が入力された場合の複数の前状態のそれぞれに対応する複数の前状態鍵として記憶する。なお、前状態鍵については詳細を図11等を参照して更に説明する。交換データ生成部160は、暗号配列を受信したことに応じて、オートマトンにおける複数の前状態のそれぞれに対応して、受信した暗号配列の各要素のそれぞれに、当該前状態から当該要素により特定される文字が入力されたことに応じて遷移する後状態に対応する後状態鍵を冪乗する。そして、交換データ生成部160は、後状態鍵を冪乗した複数の要素を第1暗号化方式に対応する演算により結合することにより、第1暗号化方式により後状態鍵を暗号化した交換データを生成する。なお、交換データの生成方法については詳細を図15等を参照して更に説明する。第2暗号化部162は、オートマトンにおける複数の前状態のそれぞれに対応して生成された複数の交換データのそれぞれを、対応する前状態鍵により暗号化する。なお、複数の交換データのそれぞれの暗号化処理については詳細を図11等を参照して更に説明する。サーバ側送信部164は、暗号配列の受信に応じて、暗号化された複数の交換データを状態管理部42に送信する。このように、サーバ側検知部52は、暗号配列を受信したことに応じて、オートマトンの複数の前状態のそれぞれに対応して、暗号配列に基づいて第1暗号化方式により後状態鍵を暗号化した交換データを生成し、対応する前状態鍵で交換データを暗号化して状態管理部42に送信する。クライアント側受信部140は、文字に対応する暗号配列を送信したことに応じて、サーバ側検知部52から暗号化された複数の交換データを受信する。クライアント側鍵記憶部142は、文字列の各文字に対応して、1つの前状態鍵を記憶している。より詳しくは、クライアント側鍵記憶部142は、文字列の先頭の文字に対応して予め1つの前状態鍵を取得して記憶する。また、クライアント側鍵記憶部142は、文字列の先頭以外の各文字のそれぞれに対応して、第1復号部146により復号された前の文字に対応する後状態鍵を、前状態鍵として記憶する。第2復号部144は、クライアント側受信部140により受信された暗号化された複数の交換データのそれぞれに対して、クライアント側鍵記憶部142に記憶された対応する文字の前状態鍵により復号処理を実行する。第2復号部144は、当該文字が正しい場合には、複数の交換データのうち1つの交換データを復号できる。第1復号部146は、複数の交換データのうち第2復号部144が復号できた1つの交換データから、第1暗号化方式により後状態鍵を復号する。即ち、第1復号部146は、第2復号部144が復号できた1つの交換データから、第1暗号化部136によって当該文字に対応する配列の各要素を第1暗号化方式で暗号化する場合に用いた暗号鍵に対応する復号鍵を用いて、後状態鍵を復号する。状態記憶部148は、第1復号部146が文字列に含まれる最後の文字に対応する復号処理を実行したことによって復号された後状態鍵を、秘匿状態値として記憶する。状態記憶部148は、秘匿共通集合計算プロトコルによる判断時において、記憶した秘匿状態値をクライアント側通信部44に受け渡す。このように、クライアント20の状態管理部42は、複数の文字のそれぞれに対応して受信した暗号化された複数の交換データを、先頭の文字から順次に復号する。そして、クライアント20の状態管理部42は、最後の文字に対応する交換データまで復号した後に、復号された後状態鍵を秘匿状態値として記憶する。図9は、本変形例に係るクライアント20の状態管理部42の送信時の処理のフローチャートを示す。図10は、第1暗号化方式により生成される暗号文の一例を示す。クライアント20は、文字列が入力されると、入力された文字列に含まれる文字を1つずつ順次に選択し、それぞれの文字についてステップS111からステップS114の処理を実行する。まず、ステップS111において、クライアント20は、文字を入力する。本変形例においては、入力可能な文字の集合Σのうちのσ番目インデックスσで特定される文字Xσを入力する。例えば、クライアント20は、1バイトで表現される文字であれば、0番目から255番目までの何れか1つの文字を入力する。続いて、ステップS112において、クライアント20は、入力した文字を配列V′に変換する。より具体的には、クライアント20は、入力可能な文字の集合Σに含まれる複数の文字の数|Σ|の要素を含む配列を準備する。例えば、1バイトで表現される文字を入力する場合には、256個の要素を含む配列を準備する。準備された配列は、複数の要素のそれぞれが、集合Σに含まれる複数の文字のそれぞれに一対一に対応する。例えば、1ビットで表現される文字0または1が表現する文字であれば、配列には、2つの要素が含まれ、一番目の要素が0に対応し、二番目の要素が1に対応する。そして、クライアント20は、準備した配列を用いて、文字入力部132が入力した文字に対応して、当該文字を特定する1つの要素が非単位元とされ、文字を特定する要素以外の要素が単位元とされた配列を生成する。ここで、単位元とは、後述する第1暗号化方式に対応する2項演算の単位元をいう。詳細は後述するが、第1暗号化方式が加法準同型性を有する暗号化方式であれば、この単位元は、加法演算の単位元である0となり、非単位元は0以外の予め定められた数値例えば、1となる。また、第1暗号化方式が乗法準同型性を有する暗号化方式であれば、この単位元は、乗法演算の単位元である1となり、非単位元は1以外の予め定められた数値となる。本変形例においては、第1暗号化方式が加法準同型性を有する暗号化方式を採用する。そこで、クライアント20は、下記の式11に示されるように、文字Xσを特定する1つの要素インデックスσの要素bσが1とされ、文字を特定する要素以外の要素インデックスσ以外の要素が0とされた配列V ́を生成する。なお、bxは、配列に含まれるインデックスxの要素の値を表す。xは、0≦x≦|Σ|-1の範囲の整数である。また、σは、文字の集合Σにおける文字Xσを特定するインデックスであり、0≦σ≦|Σ|-1の範囲の整数である。続いて、ステップS113において、クライアント20は、配列化部134により生成された配列に含まれる複数の要素のそれぞれを第1暗号化方式により暗号化して暗号配列Vを生成する。これにより、クライアント20は、文字に対応して、当該文字を特定する要素が第1暗号化方式により非単位元を暗号化した値とされ、文字を特定する要素以外の要素が第1暗号化方式により単位元を暗号化した値とされた暗号配列を生成することができる。第1暗号化方式は、選択平文攻撃に対して識別困難性IND-CPAを満たし、且つ、準同型性加法準同型性または乗法準同型性を有する公開鍵暗号方式である。例えば、加法準同型性を有する暗号化方式の暗号文は、上述した数4に示される特徴を有する。また、更に、第1暗号化方式は、例えば、図10に示されるように、同一の平文を暗号化した場合であっても暗号化処理毎に暗号文が異なる方式である。即ち、第1暗号化方式は、ある平文をある暗号鍵で1回目に暗号化した暗号文と、同一の平文を同一の暗号鍵で2回目に暗号化した暗号文とが異なるが、1回目と2回目の2つの暗号文のそれぞれから同一の平文を復号することができる。これにより、クライアント20は、配列内の各要素が、単位元を暗号化した暗号文であるか、非単位元を暗号化した暗号文であるかを判別できなくすることができる。このような特徴を有する暗号化方式として、拡張エルガマル暗号方式が知られている。本変形例においては、クライアント20は、第1暗号化方式として拡張エルガマル暗号方式を用いて、下記の式13に示されるような暗号配列を生成する。即ち、本変形例においては、クライアント20は、文字Xσを特定する1つの要素インデックスσの要素が1を拡張エルガマル方式で暗号化した暗号文とされ、文字を特定する要素以外の要素インデックスσ以外の要素が0を拡張エルガマル方式で暗号化した暗号文とされた暗号配列Vを生成する。続いて、ステップS114において、クライアント20は、生成した暗号配列をサーバ30へと送信する。この場合において、クライアント20は、文字列中における対応する文字の順番がわかるように、暗号配列を送信する。例えば、クライアント20は、各暗号配列を文字順序に従って送信する。また、クライアント20は、文字順序を示すインデックスとともに暗号配列を送信してもよい。図11は、本変形例に係るサーバ30による処理のフローチャートを示す。図12は、本変形例に係るサーバ30が有するオートマトンの遷移表の一例を示す。図13は、ある文字が入力された場合の複数の前状態のそれぞれに対応する前状態鍵の鍵表を示す。図14は、ある文字が入力された場合の複数の後状態のそれぞれに対応する後状態鍵の鍵表を示す。まず、ステップS121において、サーバ30は、クライアント20から複数の文字のそれぞれに対応した暗号配列を受信する。サーバ30は、受信した1つの暗号配列に対して、ステップS122からステップS130の処理を実行する。この場合において、サーバ30は、先頭の文字に対応する暗号配列から1文字ずつ順番に、ステップS122からステップS130の処理を実行する。例えば、サーバ30は、複数の暗号配列が文字順序にクライアント20から送信される場合には、受信順に、暗号配列に対するステップS122からS130の処理を実行する。また、サーバ30は、文字順序を示すインデックスとともに暗号配列がクライアント20から送信される場合には、インデックス順に暗号配列に対するステップS122からS130の処理を実行する。続いて、ステップS122において、サーバ30は、オートマトンを読み出す。オートマトンには、状態の遷移を表す遷移表、状態群、初期状態および正しい最終状態を含む。オートマトンにおける状態の遷移は、例えば、図12に示されるような遷移表により表させる。この遷移表を参照することにより、サーバ30は、任意の文字が与えられた場合において、現在の状態前状態から遷移する次の状態後状態を特定することができる。本変形例において、オートマトンは、例えば、q0~q|Q|-1で表される|Q|個の状態を有する。また、本変形例において、オートマトンは、x0からx|Σ|-1までの|Σ|個の文字を受け取ることができる。そして、本変形例において、オートマトンは、i番目の前状態qiにおいて、σ番目の文字xσが与えられたことに応じて、j番目の後状態qjに遷移する。なお、i、jは、0から状態数|Q|-1までの間の整数である。続いて、ステップS123において、サーバ30は、複数の前状態のそれぞれに対応する複数の前状態鍵を読み出す。本変形例においては、サーバ30は、図13に示されるように、複数の前状態q0~q|Q|-1のそれぞれに対応して前状態鍵S0~S|Q|-1を記憶しており、これらを読み出す。なお、これらの前状態鍵は、直前の文字に対応する後状態鍵と同一であり、文字を入力する毎に異なる値となる。また、最初の文字に対応する前状態鍵は、予め生成されている。本変形例においては、サーバ30は、ある文字が入力された場合、i番目の前状態qiに対応して前状態鍵Sjを読み出す。続いて、ステップS124において、サーバ30は、複数の後状態のそれぞれに対応する複数の後状態鍵を発生する。ここで、後状態鍵は、オートマトンにおける複数の後状態のそれぞれに対応付けられた乱数である。本変形例においては、サーバ30は、図14に示されるように、複数の後状態q0~q|Q|-1のそれぞれに対応した後状態鍵r0~r|Q|-1を発生する。なお、これらの後状態鍵は、文字を入力する毎に異なる値となる。本変形例においては、例えば、サーバ30は、ある文字が入力された場合、j番目の後状態qjに対応して後状態鍵rjを読み出す。続いて、ステップS125からステップS128において、サーバ30は、前状態毎にループ処理を実行する。本変形例においては、サーバ30は、複数の前状態q0~q|Q|-1のそれぞれ毎に、ステップS126およびステップS127の処理を実行する。ステップS126において、サーバ30は、当該前状態から、当該暗号配列に対応する文字が入力されたことに応じて遷移する後状態に対応する後状態鍵を、第1暗号化方式により暗号化した交換データを生成する。例えば、前状態がqiであり、受信した暗号配列に対応する文字がXσである即ち、受信した暗号配列が文字Xσから生成されたとする。この場合、前状態qiにおいて文字Xσが入力されたことに応じて遷移する後状態は、図12に示されるように、qjである。また、後状態qjに対応する後状態鍵は、図14に示されるように、rjである。従って、サーバ30は、下記の式14に示されるように、前状態がqiであり、受信した暗号配列に対応する文字がXσである場合には、rjを第1暗号化方式で暗号化した暗号文を、交換データCiとして生成する。なお、交換データの生成方法の詳細については図15を参照して更に説明する。続いて、ステップS127において、サーバ30は、生成した交換データを、対応する前状態鍵で暗号化する。この場合において、サーバ30は、メッセージ認証コードMAC付きの秘密鍵暗号化方式で、交換データを暗号化する。本変形例においては、サーバ30は、一例として、ディフィーヘルマン鍵を用いて交換データを暗号化する。ステップS128において、サーバ30は、全ての前状態についてステップS126およびステップS127の処理を終了したと判定すると、ループを抜けて処理をステップS130に進める。続いて、ステップS130において、サーバ30は、全ての前状態のそれぞれについて生成した暗号化した複数の交換データをクライアント20へと送信する。この場合において、サーバ30は、オートマトンの複数の前状態のそれぞれに対応して暗号化した複数の交換データを、暗号配列毎に、例えばランダムに並べ替えて送信する。また、この場合において、サーバ30は、受信した暗号配列に対応付けられている文字順序がわかるように、暗号化した複数の交換データをクライアント20へと送信する。サーバ30は、一例として、文字順序を示すインデックスまたは対応する暗号配列を特定する情報を付加して、暗号化した複数の交換データをクライアント20に送信する。本変形例においては、前状態q0~q|Q|-1のそれぞれに対応して、複数の交換データC0~C|Q|-1が生成されるとする。この場合、サーバ30は、下記の式15に示すように、複数の交換データC0~C|Q|-1のそれぞれを、前状態鍵S0~S|Q|-1のそれぞれにより暗号化する。なお、Encx,yは、ディフィーヘルマン鍵xで、データyを暗号化することを表す。サーバ30は、文字列の最後の文字について処理を終えると、当該フローを終了する。文字列の最後の文字以外の文字について処理を終えた場合には、このステップS130において、サーバ30は、複数の後状態q0~q|Q|-1のそれぞれに対応した複数の後状態鍵r0~r|Q|-1を、次の文字に対応する複数の前状態鍵として、記憶する。そして、サーバ30は、処理を最初に戻し、次の文字に対応付けられた暗号配列に対する処理を実行する。図15は、本変形例に係るサーバ30における、交換データの生成処理のフローチャートを示す。サーバ30は、図11のステップS126の交換データの生成処理として、以下のステップS131からステップS137の処理を実行する。まず、ステップS131からステップS136において、サーバ30は、受信した暗号配列に含まれる複数の要素のそれぞれ毎にループ処理を実行する。本変形例においては、サーバ30は、0番目から|Σ|-1番目までの複数の要素のそれぞれについて、ステップS132からステップS135までの処理を実行する。ステップS132において、サーバ30は、処理対象となっている要素に対応する文字を特定する。例えば、1ビットで表現される文字が入力される場合、暗号配列内に2つの要素が含まれる。この場合、例えば、サーバ30は、暗号配列の一番目の要素について処理をする場合には、当該要素に対応する文字として0を特定し、二番目の要素について処理をする場合には、当該要素に対応する文字として1を特定する。ここでは、サーバ30は、σ番目の要素に対応する文字Xσを特定したとする。続いて、ステップS133において、サーバ30は、処理対象となっている前状態および特定した文字に基づき、当該前状態から当該要素により特定される文字が入力されたことに応じて遷移する後状態を、特定する。ここでは、サーバ30は、処理対象となっている前状態がqiであるとする。この場合、サーバ30は、前状態qiから文字Xσが入力されたことに応じて遷移する後状態として、オートマトンの遷移表例えば図12の遷移表を参照してqjを特定する。続いて、ステップS134において、サーバ30は、特定した後状態qjに対応する後状態鍵を、ステップS124において発生された複数の後状態鍵の中から選択する。ここでは、サーバ30は、後状態qjに対応する後状態鍵として、発生した複数の後状態鍵の表例えば図14の表の中からrjを選択する。続いて、ステップS135において、サーバ30は、対象の要素に対して、選択した後状態鍵rjを冪乗する。ここでは、サーバ30は、式16に示されるように、σ番目の要素Ebσに後状態鍵rjを冪乗する。この結果は、第1暗号化方式の特徴加法準同型性から、当該要素の第1暗号化方式により暗号化する前の値bσに後状態鍵rjを乗算した値bσ×rjに対して、第1暗号化方式により暗号化した暗号文と同一となる。続いて、ステップS136において、サーバ30は、暗号配列に含まれる全ての要素についてステップS132~ステップS135の処理を終了したと判定すると、ループを抜けて処理をステップS137に進める。ステップS137において、サーバ30は、後状態鍵を冪乗した要素のそれぞれを、第1暗号化方式に対応する演算により結合する。サーバ30は、このように結合した結果を、当該前状態に対応する交換データとする。本変形例においては、第1暗号化方式が加法準同型性を有する暗号化方式であるので、サーバ30は、加法演算により後状態鍵を冪乗した要素のそれぞれを結合する。なお、サーバ30は、第1暗号化方式が乗法準同型性を有する暗号化方式であれば、乗法演算により結合する。ここでは、式17に示されるように、0番目から|Σ|-1番目までの各要素について、加法演算をして結合して交換データを生成する。なお、b0、b1、...、bσ、...、b|Σ|-1は、第1暗号化方式により暗号化する前の要素の値を表す。また、rΔqi、x0、rΔqi、x1、...、rΔqi、xσ、...、rΔqi、x|Σ|-1は、複数の要素のそれぞれに冪乗された後状態鍵を表す。ここで、暗号配列は、文字を特定する要素が第1暗号化方式により非単位元を暗号化した値とされ、文字を特定する要素以外の要素が第1暗号化方式により単位元を暗号化した値とされている。例えば、暗号配列Vは、下記の式18に示されるように、第1暗号化方式が加法準同型性を有し、文字Xσに対応する要素bσが加法演算の非単位元である1、文字Xσに対応する要素bσ以外の要素が加法演算の単位元である0とされている。従って、式17に式18の要素を代入すると、交換データは、下記の式19に示されるように変換される。即ち、文字Xσに対応する要素以外の要素は、全て0となり、文字Xσに対応する要素は、後状態鍵の値となる。この結果、交換データは、前状態qiから、暗号配列に対応する文字Xσが入力されたことに応じて遷移する後状態qjに対応する後状態鍵rjを、第1暗号化方式により暗号化した暗号文Erjとなる。以上のように、サーバ30は、ステップS131~ステップS137の処理を実行することにより、当該前状態から、当該暗号配列に対応する文字が入力されたことに応じて遷移する後状態に対応する後状態鍵を、第1暗号化方式により暗号化した交換データを生成することができる。図16は、本変形例に係るクライアント20における復号処理のフローチャートを示す。まず、ステップS141において、クライアント20は、文字列に含まれる文字に対応した暗号配列を送信したことに応じて、サーバ30から暗号化された複数の交換データを受信する。クライアント20は、受信した暗号化された複数の交換データに対して、ステップS142からステップS150の処理を実行する。この場合において、クライアント20は、対応する文字の文字順序に従って、暗号化された複数の交換データに対する処理を実行する。続いて、ステップS142において、クライアント20は、対応する文字に対応付けて記憶されている1つの前状態鍵を読み出す。なお、クライアント20は、文字列の先頭の文字に対応して、例えばサーバ30から予め1つの前状態鍵を受信して記憶している。また、クライアント20は、文字列の先頭以外の各文字のそれぞれに対応して、前の文字に対応する1つの後状態鍵を、1つの前状態鍵として記憶している。続いて、ステップS143からステップS146において、クライアント20は、複数の交換データのそれぞれ毎に、ループ処理を実行する。ステップS144において、クライアント20は、処理対象の暗号化された交換データを、読み出した1つの前状態鍵によって復号処理を実行する。ここで、対応する文字が入力された場合にオートマトンが正しく他の状態に遷移できていれば、クライアント20は、暗号化された複数の交換データのうち何れか1つを復号することができる。また、対応する文字が入力された場合にオートマトンが正しく他の状態に遷移できない場合、クライアント20は、暗号化された複数の交換データの何れも復号することができない。続いて、ステップS145において、クライアント20は、交換データが復号できたか否かを判断するステップS145。クライアント20は、復号できた場合にはステップS145のYes、処理をステップS147に進める。クライアント20は、復号できなかった場合にはステップS145のNo、処理をステップS146に進める。ステップS146において、クライアント20は、複数の交換データの全てについて、ステップS144およびステップS145の処理が終了したか否かを判断する。クライアント20は、複数の交換データの何れかについて未だ処理が終了していない場合には、処理をステップS143に戻し、次の交換データについてステップS144およびステップS145の処理を実行する。クライアント20は、複数の交換データの全てについて処理が終了していれば、即ち、複数の交換データの何れも復号できなかった場合には、入力された文字列によってサーバ30が保有するオートマトンが正しい最終状態に遷移しなかった不受理と判定して、本フローを終了する。一方、交換データが復号できた場合ステップS145のYes、ステップS147において、クライアント20は、復号できた1つの交換データを第1暗号化方式で復号処理をして、後状態鍵を復号する。即ち、クライアント20は復号できた1つの交換データを、当該文字に対応する配列の各要素を第1暗号化方式で暗号化する場合に用いた暗号鍵に対応する復号鍵を用いて後状態鍵を復号する。続いて、ステップS148において、クライアント20は、最後の文字に対応する処理か否かを判断するステップS148。クライアント20は、最後の文字に対応する処理ではないと判断した場合ステップS148のNo、処理をステップS149に進める。ステップS149において、クライアント20は、復号した後状態鍵を、次の文字に対応する前状態鍵として保存する。そして、クライアント20は、ステップS149の処理を終えると、次の文字に対応する処理をするためにステップS141から処理を繰り返す。また、クライアント20は、最後の文字に対応する処理であると判断した場合ステップS149のYes、処理をステップS150に進める。ステップS150において、クライアント20は、復号した後状態鍵を、当該クライアント20の状態を表す秘匿状態値として保存する。そして、クライアント20は、ステップS150の処理を終えると、当該フローを終了する。以上のように、本変形例に係る検出システム10によれば、クライアント20に入力された文字列をサーバ30に開示せず、且つ、サーバ30が保有するオートマトンをクライアント20に開示せずに、入力された文字列によってオートマトンが何れの状態に遷移したかを表す値を取得することができる。さらに、本変形例に係る検出システム10によれば、クライアント20に受け渡す秘匿状態値が、サーバ30によって生成された乱数なので、クライアント20に改ざんさせないようできる。また、本変形例に係る検出システム10では、次の文字列が続けて入力された場合、前の文字列の最後の後状態鍵を、次の文字列の前状態鍵とされる。従って、本変形例に係る検出システム10では、毎回、オートマトンを初期状態に戻し、順次にオートマトンの状態を遷移させる必要がなく、処理量を少なくすることができる。図17は、本実施形態に係るコンピュータ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を、状態管理部42およびクライアント側通信部44としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、状態管理部42およびクライアント側通信部44として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のクライアント20が構築される。コンピュータ1900にインストールされ、コンピュータ1900を、サーバ30として機能させるプログラムは、集合記憶モジュールと、サーバ側通信モジュールと、判定モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、集合記憶部46、サーバ側通信部48および判定部50としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、集合記憶部46、サーバ側通信部48および判定部50として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ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に提供してもよい。以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段より前に、先立って等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上まず、、次に、等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。"