JP5846577B2 - クライアントの状態が予め定められた状態に一致するかを検出するシステム - Google Patents

クライアントの状態が予め定められた状態に一致するかを検出するシステム Download PDF

Info

Publication number
JP5846577B2
JP5846577B2 JP2011276198A JP2011276198A JP5846577B2 JP 5846577 B2 JP5846577 B2 JP 5846577B2 JP 2011276198 A JP2011276198 A JP 2011276198A JP 2011276198 A JP2011276198 A JP 2011276198A JP 5846577 B2 JP5846577 B2 JP 5846577B2
Authority
JP
Japan
Prior art keywords
client
state
server
unit
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011276198A
Other languages
English (en)
Other versions
JP2013127665A (ja
Inventor
渡邊 裕治
裕治 渡邊
孝彰 立石
孝彰 立石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011276198A priority Critical patent/JP5846577B2/ja
Priority to US13/707,705 priority patent/US9178779B2/en
Publication of JP2013127665A publication Critical patent/JP2013127665A/ja
Application granted granted Critical
Publication of JP5846577B2 publication Critical patent/JP5846577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、クライアントの状態がサーバに記憶された予め定められた状態に一致するかを検出するシステム、サーバ、クライアント、方法及びプログラムに関する。
例えばサーバがクライアントの状態を監視し、予め定められた状態となった場合に警告を発生するようなシステムがある。例えば、金融トランザクションを監視して、特定のアカウントへのアクセスが予め定められた回数以上連続した場合等に警告を発生するような場合がある。このような場合、サーバは、クライアントの状態を定期的に取得して、クライアントの状態が予め定められた状態であるかどうかを判断しなければならない。
[先行技術文献]
[特許文献]
特許文献1 特開2004−334362号公報
[非特許文献]
非特許文献1 Michael J. Freedman, Kobbi Nissim and Benny Pinkas、 "Efficient Private Matching and Set Intersection"、 Advances in Cryptology EUROCRYPT 2004、Lecture Notes in Computer Science、2004年
しかし、サーバがクライアントの状態を定期的に取得して監視した場合、クライアントがどのような状態に遷移しているのかがサーバ側に推測されてしまう可能性がある。
また、クライアントが保有する文字列が、サーバが保有するオートマトンに受理されるか否かを認証する方法として、秘匿状態検知と呼ばれる方法がある。この秘匿状態検知と呼ばれる方法では、クライアントが保有する文字列をサーバに開示せず且つサーバが保有するオートマトンをクライアントに開示せずに認証処理を実行する。このような認証方法を用いれば、クライアントの状態がサーバに対して秘匿されるので、クライアントの状態が推測されてしまうことはない。
しかしながら、秘匿状態検知は、毎回、オートマトンを初期状態に戻し、順次にオートマトンの状態を遷移させながら認証処理を実行しなければならない。従って、定期的にクライアントの状態を監視する場合には、時間が経過する毎に遷移量(処理量)が多くなってしまい、処理負担が大きくなってしまう。
本発明の第1の態様においては、順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを判定する判定部とを有するサーバ、このようなサーバにおける情報処理の方法、および、プログラムを提供する。
本発明の第2の態様においては、順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、予め定められた状態を含む集合を記憶する集合記憶部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、を有し、前記サーバ側通信部が、前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを前記クライアントの判定部に判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するサーバ、このようなサーバにおける情報処理の方法、および、プログラムを提供する。
本発明の第3の態様においては、予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、前記秘匿共通集合計算プロトコルに従って前記サーバから受け取った暗号文に基づき、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定する判定部と、を有するクライアントを提供する。
本発明の第4の態様においては、予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、順次に遷移する当該クライアントの状態を管理する状態管理部と、互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、を有し、前記クライアント側通信部は、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定するために、前記秘匿共通集合計算プロトコルに従って暗号文を送信するクライアントを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
図1は、本実施形態に係る検出システム10の機能ブロック図を示す。 図2は、クライアント20の状態がサーバの30が記憶する集合に含まれる複数の状態の何れかに一致するか否かを判断するタイミングを示す。 図3は、本実施形態に係る検出システム10における、秘匿共通集合計算プロトコルによる通信処理の一例を示す。 図4は、第1変形例に係る検出システム10の機能ブロック図を示す。 図5は、第1変形例に係る検出システム10における、秘匿共通集合計算プロトコルによる通信処理の一例を示す。 図6は、本実施形態の第2変形例に係る検出システム10の構成を示す。 図7は、本変形例に係る状態管理部42およびサーバ側検知部52を示す。 図8は、本変形例に係るクライアント20の状態管理部42およびサーバ30のサーバ側検知部52のそれぞれの機能ブロック構成を示す。 図9は、本変形例に係るクライアント20の送信時の処理のフローチャートを示す。 図10は、第1暗号化方式により生成される暗号文の一例を示す。 図11は、本変形例に係るサーバ30による処理のフローチャートを示す。 図12は、本変形例に係るサーバ30が有するオートマトンの遷移表の一例を示す。 図13は、ある文字が入力された場合の複数の前状態のそれぞれに対応する前状態鍵の鍵表を示す。 図14は、ある文字が入力された場合の複数の後状態のそれぞれに対応する後状態鍵の鍵表を示す。 図15は、本変形例に係るサーバ30における、交換データの生成処理のフローチャートを示す。 図16は、本変形例に係るクライアント20における復号処理のフローチャートを示す。 図17は、本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図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は、qを初期状態とし、順次に、q→q→q→…qといったように状態が遷移する。
そして、サーバ30の判定部50は、例えば予め設定されたタイミングにおいて、クライアント20の状態がサーバ30の集合記憶部46が記憶する集合に含まれるかを判定する。例えば、図2に示されるように、判定部50は、予め設定されたタイミングにおいて、当該タイミングにおけるクライアント20の状態"q"が、予め定められた複数の状態"f,f,f,…,f"の何れかに一致するかを判定する。
また、クライアント20は、クライアント20の状態が集合に含まれるかの判定がされてから、更に状態が遷移する。例えば図2に示されるように、クライアント20は、qから順次に、qN+1→qN+2→qN+3→…qといったように状態が遷移する。
そして、判定部50は、クライアント20の状態が集合に含まれるかの判定をしてから、クライアント20の状態が少なくとも1回以上遷移した後において、秘匿共通集合計算プロトコルによりクライアント20の状態が集合に含まれるかを再度判定する。例えば図2に示されるように、判定部50は、前回判定がされてから一定時間経過後におけるクライアント20の状態"q"が、予め定められた複数の状態"f,f,f,…,f"の何れかに一致するかを判定する。
以後、クライアント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のような値を予め記憶しているとする。
Figure 0005846577
まず、ステップS11において、サーバ30は、多項式P(x)を生成する。多項式P(x)は、変数xに、サーバ30が記憶する集合に含まれる複数の状態を表す値が代入されると、0となるような関数である。即ち、サーバ30は、下記の数2に示されるような、集合に含まれる複数の状態を表す値を変数xの解とする多項式P(x)を生成する。
Figure 0005846577
続いて、ステップS12において、サーバ30は、下記の数3に示されるように、多項式P(x)の全ての次数の係数のそれぞれを、準同型性(例えば加法準同型性)を有する暗号化方式により暗号化した複数の送信暗号文を生成する。サーバ30は、一例として、拡張エルガマル暗号により各係数を暗号化する。
Figure 0005846577
ここで、加法準同型性を有する暗号化方式により暗号化された暗号文は、下記の数4に示されるような特徴を有する。なお、m、m、mは、平文を表す。
Figure 0005846577
即ち、加法準同型性を有する暗号化方式では、2つの暗号文E(m)、E(m)が与えられたときに、暗号文同士の加算結果(E(m)・E(m))が、平文同士を加算した後に暗号化した暗号文(E(m+m))と同一となる。また、暗号文を任意の数値kで冪乗した結果((E(m)))が、平文を任意の数値kで乗算した後に暗号化した暗号文(E(k・m))と同一となる。
続いて、ステップS13において、サーバ30は、生成した複数の送信暗号文をクライアント20に送信する。この場合において、サーバ30は、何れの次数の係数に対応する暗号文なのかをクライアント20が特定できるように、各送信暗号文を送信する。
一方、クライアント20は、当該クライアント20の状態を表す値(例えば、q)を記憶している。また、クライアント20は、複数の状態を並行に管理している場合には、下記の数5に示されるような、複数の状態のそれぞれを表す値を記憶していてもよい。
Figure 0005846577
ステップS14において、クライアント20は、サーバ30から受け取った複数の送信暗号文、および、当該クライアント20の状態を表す値qから、数4に示した準同型性の暗号文の特性を利用して、応答暗号文E(r・P(q))を生成する。ここで、応答暗号文E(r・P(q))は、多項式P(x)の変数xに当該クライアント20の状態を表す値qを代入した結果を表す値P(q)に対して乱数r乗算した値を、準同型性を有する暗号化方式で暗号化した暗号文である。
即ち、クライアント20は、当該クライアント20の状態を表す値qに、多項式に含まれる変数の次数のそれぞれを冪乗する。そして、クライアント20は、対応する次数を冪乗したクライアント20の状態を表す値のそれぞれを、数3に示される、対応する次数の送信暗号文に対して冪乗する。そして、クライアント20は、これらを加算合成し、加算合成した結果に乱数を冪乗することにより、応答暗号文E(r・P(q))を生成することができる。
また、この場合、クライアント20が複数の状態を並行して管理している場合には、クライアント20は、下記の数6に示すように、複数の状態を表す値q、q、q、…のそれぞれについて、応答暗号文を生成する。なお、数6において、r、r、rは、乱数を表す。
Figure 0005846577
続いて、ステップS15において、クライアント20は、生成した各応答暗号文をサーバ30へと送信する。続いて、ステップS16において、サーバ30は、各応答暗号文を復号する。この場合において、サーバ30は、ステップS12で用いた暗号鍵に応じた復号鍵で応答暗号文を復号する。
続いて、ステップS17において、サーバ30は、何れかの応答暗号文を復号した結果に"0"が含まれているか否かを判断する。ここで、多項式P(x)の解は、サーバ30が記憶している集合に含まれる複数の状態を表す値f、f、f、…、fである。従って、多項式P(x)に代入したクライアント20の状態を表す値q、q、q、…と、集合に含まれる複数の状態を表す値f、f、f、…、fの何れかが一致している場合、復号結果は0となる。反対に、多項式P(x)に代入したクライアント20の状態を表す値q、q、q、…が、集合に含まれる複数の状態を表す値f、f、f、…、fの何れとも一致していなければ、復号結果は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は、複数の状態のそれぞれを表す値q、q、q、…を記憶している。まず、ステップS21において、クライアント20は、多項式P(x)を生成する。多項式P(x)は、変数xに、クライアント20の状態を表す値q、q、qが代入されると、0となるような関数である。
続いて、ステップS22において、クライアント20は、生成した多項式P(x)の全ての次数の係数のそれぞれを、準同型性(例えば加法準同型性)を有する暗号化方式により暗号化した複数の送信暗号文を生成する。クライアント20は、一例として、拡張エルガマル暗号により各係数を暗号化する。
続いて、ステップS23において、クライアント20は、生成した複数の送信暗号文をサーバ30に送信する。この場合において、クライアント20は、何れの次数の係数に対応する暗号文なのかをサーバ30が特定できるように、各送信暗号文を送信する。
一方、サーバ30は、集合に含まれる複数の状態を表す値f、f、f、…、fを記憶している。ステップS24において、サーバ30は、クライアント20から受け取った複数の送信暗号文、および、集合に含まれる複数の状態を表す値f、f、f、…、fから、準同型性の暗号文の特性を利用して、応答暗号文E(r・P(f))を生成する。ここで、応答暗号文E(r・P(f))は、多項式P(x)の変数xに、集合に含まれる複数の状態を表す値f、f、f、…、fを代入した結果を表す値P(f)、P(f)、…、P(f)のそれぞれに乱数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´を生成する。
Figure 0005846577
なお、bは、配列に含まれるインデックス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)に示されるような暗号配列を生成する。
Figure 0005846577
即ち、本変形例においては、クライアント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は、任意の文字が与えられた場合において、現在の状態(前状態)から遷移する次の状態(後状態)を特定することができる。
本変形例において、オートマトンは、例えば、q〜q|Q|−1で表される(|Q|)個の状態を有する。また、本変形例において、オートマトンは、xからx|Σ|−1までの(|Σ|)個の文字を受け取ることができる。そして、本変形例において、オートマトンは、i番目の前状態qにおいて、σ番目の文字xσが与えられたことに応じて、j番目の後状態qに遷移する。なお、i、jは、0から状態数(|Q|−1)までの間の整数である。
続いて、ステップS123において、サーバ30は、複数の前状態のそれぞれに対応する複数の前状態鍵を読み出す。本変形例においては、サーバ30は、図13に示されるように、複数の前状態q〜q|Q|−1のそれぞれに対応して前状態鍵S〜S|Q|−1を記憶しており、これらを読み出す。なお、これらの前状態鍵は、直前の文字に対応する後状態鍵と同一であり、文字を入力する毎に異なる値となる。また、最初の文字に対応する前状態鍵は、予め生成されている。本変形例においては、サーバ30は、ある文字が入力された場合、i番目の前状態qに対応して前状態鍵Sを読み出す。
続いて、ステップS124において、サーバ30は、複数の後状態のそれぞれに対応する複数の後状態鍵を発生する。ここで、後状態鍵は、オートマトンにおける複数の後状態のそれぞれに対応付けられた乱数である。本変形例においては、サーバ30は、図14に示されるように、複数の後状態q〜q|Q|−1のそれぞれに対応した後状態鍵r〜r|Q|−1を発生する。なお、これらの後状態鍵は、文字を入力する毎に異なる値となる。本変形例においては、例えば、サーバ30は、ある文字が入力された場合、j番目の後状態qに対応して後状態鍵rを読み出す。
続いて、ステップS125からステップS128において、サーバ30は、前状態毎にループ処理を実行する。本変形例においては、サーバ30は、複数の前状態q〜q|Q|−1のそれぞれ毎に、ステップS126およびステップS127の処理を実行する。
ステップS126において、サーバ30は、当該前状態から、当該暗号配列に対応する文字が入力されたことに応じて遷移する後状態に対応する後状態鍵を、第1暗号化方式により暗号化した交換データを生成する。例えば、前状態がqであり、受信した暗号配列に対応する文字がXσである(即ち、受信した暗号配列が文字Xσから生成された)とする。この場合、前状態qにおいて文字Xσが入力されたことに応じて遷移する後状態は、図12に示されるように、qである。また、後状態qに対応する後状態鍵は、図14に示されるように、rである。
従って、サーバ30は、下記の式(14)に示されるように、前状態がqであり、受信した暗号配列に対応する文字がXσである場合には、rを第1暗号化方式で暗号化した暗号文を、交換データCとして生成する。なお、交換データの生成方法の詳細については図15を参照して更に説明する。
Figure 0005846577
続いて、ステップS127において、サーバ30は、生成した交換データを、対応する前状態鍵で暗号化する。この場合において、サーバ30は、メッセージ認証コード(MAC)付きの秘密鍵暗号化方式で、交換データを暗号化する。本変形例においては、サーバ30は、一例として、ディフィー・ヘルマン鍵を用いて交換データを暗号化する。
ステップS128において、サーバ30は、全ての前状態についてステップS126およびステップS127の処理を終了したと判定すると、ループを抜けて処理をステップS130に進める。
続いて、ステップS130において、サーバ30は、全ての前状態のそれぞれについて生成した暗号化した複数の交換データをクライアント20へと送信する。この場合において、サーバ30は、オートマトンの複数の前状態のそれぞれに対応して暗号化した複数の交換データを、暗号配列毎に、例えばランダムに並べ替えて送信する。また、この場合において、サーバ30は、受信した暗号配列に対応付けられている文字順序がわかるように、暗号化した複数の交換データをクライアント20へと送信する。サーバ30は、一例として、文字順序を示すインデックスまたは対応する暗号配列を特定する情報を付加して、暗号化した複数の交換データをクライアント20に送信する。
本変形例においては、前状態q〜q|Q|−1のそれぞれに対応して、複数の交換データC〜C|Q|−1が生成されるとする。この場合、サーバ30は、下記の式(15)に示すように、複数の交換データC〜C|Q|−1のそれぞれを、前状態鍵S〜S|Q|−1のそれぞれにより暗号化する。なお、Enc(x,y)は、ディフィー・ヘルマン鍵xで、データyを暗号化することを表す。
Figure 0005846577
サーバ30は、文字列の最後の文字について処理を終えると、当該フローを終了する。文字列の最後の文字以外の文字について処理を終えた場合には、このステップS130において、サーバ30は、複数の後状態q〜q|Q|−1のそれぞれに対応した複数の後状態鍵r〜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は、処理対象となっている前状態がqであるとする。この場合、サーバ30は、前状態qから文字Xσが入力されたことに応じて遷移する後状態として、オートマトンの遷移表(例えば図12の遷移表)を参照してqを特定する。
続いて、ステップS134において、サーバ30は、特定した後状態qに対応する後状態鍵を、ステップS124において発生された複数の後状態鍵の中から選択する。ここでは、サーバ30は、後状態qに対応する後状態鍵として、発生した複数の後状態鍵の表(例えば図14の表)の中からrを選択する。
続いて、ステップS135において、サーバ30は、対象の要素に対して、選択した後状態鍵rを冪乗する。ここでは、サーバ30は、式(16)に示されるように、σ番目の要素E(bσ)に後状態鍵rを冪乗する。
Figure 0005846577
この結果は、第1暗号化方式の特徴(加法準同型性)から、当該要素の第1暗号化方式により暗号化する前の値(bσ)に後状態鍵rを乗算した値(bσ×r)に対して、第1暗号化方式により暗号化した暗号文と同一となる。
続いて、ステップS136において、サーバ30は、暗号配列に含まれる全ての要素についてステップS132〜ステップS135の処理を終了したと判定すると、ループを抜けて処理をステップS137に進める。
ステップS137において、サーバ30は、後状態鍵を冪乗した要素のそれぞれを、第1暗号化方式に対応する演算により結合する。サーバ30は、このように結合した結果を、当該前状態に対応する交換データとする。
本変形例においては、第1暗号化方式が加法準同型性を有する暗号化方式であるので、サーバ30は、加法演算により後状態鍵を冪乗した要素のそれぞれを結合する。なお、サーバ30は、第1暗号化方式が乗法準同型性を有する暗号化方式であれば、乗法演算により結合する。
ここでは、式(17)に示されるように、0番目から(|Σ|−1)番目までの各要素について、加法演算をして結合して交換データを生成する。なお、b、b、…、bσ、…、b(|Σ|−1)は、第1暗号化方式により暗号化する前の要素の値を表す。また、rΔ(q、x)、rΔ(q、x)、…、rΔ(q、xσ)、…、rΔ(q、x|Σ|−1)は、複数の要素のそれぞれに冪乗された後状態鍵を表す。
Figure 0005846577
ここで、暗号配列は、文字を特定する要素が第1暗号化方式により非単位元を暗号化した値とされ、文字を特定する要素以外の要素が第1暗号化方式により単位元を暗号化した値とされている。例えば、暗号配列Vは、下記の式(18)に示されるように、第1暗号化方式が加法準同型性を有し、文字Xσに対応する要素bσが加法演算の非単位元である"1"、文字Xσに対応する要素bσ以外の要素が加法演算の単位元である"0"とされている。
Figure 0005846577
従って、式(17)に式(18)の要素を代入すると、交換データは、下記の式(19)に示されるように変換される。即ち、文字Xσに対応する要素以外の要素は、全て0となり、文字Xσに対応する要素は、後状態鍵の値となる。この結果、交換データは、前状態qから、暗号配列に対応する文字Xσが入力されたことに応じて遷移する後状態qに対応する後状態鍵rを、第1暗号化方式により暗号化した暗号文(E(r))となる。
Figure 0005846577
以上のように、サーバ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ドライブ2060(CD−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に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 検出システム
20 クライアント
30 サーバ
42 状態管理部
44 クライアント側通信部
46 集合記憶部
48 サーバ側通信部
50 判定部
52 サーバ側検知部
132 文字入力部
134 配列化部
136 第1暗号化部
138 クライアント側送信部
140 クライアント側受信部
142 クライアント側鍵記憶部
144 第2復号部
146 第1復号部
148 状態記憶部
152 サーバ側受信部
154 オートマトン記憶部
156 鍵発生部
158 サーバ側鍵記憶部
160 交換データ生成部
162 第2暗号化部
164 サーバ側送信部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM

Claims (14)

  1. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、
    予め定められた状態を含む集合を記憶する集合記憶部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、
    前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを判定する判定部と
    を有し、
    前記クライアントは、前記クライアントの状態が前記集合に含まれるかの判定がされてから、更に状態が遷移し、
    前記判定部は、前記クライアントの状態が前記集合に含まれるかの判定をしてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定する、
    サーバ。
  2. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、
    予め定められた状態を含む集合を記憶する集合記憶部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、
    前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを判定する判定部と
    を有し、
    前記クライアントは、発生するイベントに応じて状態を順次に遷移させ、
    前記判定部は、前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれる場合、前記クライアントに異常が発生したと検知する、
    サーバ。
  3. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、
    予め定められた状態を含む集合を記憶する集合記憶部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、を有し、
    前記サーバ側通信部が、前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを前記クライアントの判定部に判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信し、
    前記クライアントは、前記クライアントの状態が前記集合に含まれるかの判定がされてから、更に状態が遷移し、
    前記判定部は、前記クライアントの状態が前記集合に含まれるかの判定をしてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定する、
    サーバ。
  4. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバであって、
    予め定められた状態を含む集合を記憶する集合記憶部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信するサーバ側通信部と、を有し、
    前記サーバ側通信部が、前記クライアントの状態が前記集合記憶部が記憶する前記集合に含まれるかを前記クライアントの判定部に判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信し
    前記クライアントは、発生するイベントに応じて状態を順次に遷移させ、
    前記判定部は、前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれる場合、前記クライアントに異常が発生したと検知する、
    サーバ。
  5. 受け取ったイベントに応じて状態が遷移するオートマトンを有するサーバ側検知部を有し、
    前記クライアントが順次に遷移する当該クライアントの状態を管理する状態管理部を有し、前記状態管理部は、前記クライアントにおいて発生するイベントを入力し、入力したイベントを前記サーバに開示しないで、入力したイベントに応じて遷移した状態を表した値であって前記クライアントに対して秘匿された秘匿状態値を前記サーバ側検知部から取得し、
    前記サーバ側検知部は、前記クライアントに対して前記オートマトンを開示しないで、前記入力したイベントに応じて状態を遷移させ、遷移した状態に対応した前記秘匿状態値を前記状態管理部に送信し、
    前記状態管理部は、取得した前記秘匿状態値を前記クライアントの状態として管理し、
    前記集合記憶部は、前記オートマトンにおける複数の状態のそれぞれに対応する複数の秘匿状態値のうちの一部を前記集合に含まれる状態として記憶する
    請求項1または3に記載のサーバ。
  6. 前記サーバ側通信部は、前記集合に含まれる複数の状態のそれぞれを表す値を解とする多項式の係数のそれぞれを、準同型性を有する暗号化方式で暗号化した送信暗号文を前記クライアントに送信し、
    前記サーバ側通信部は、前記送信暗号文および前記クライアントの状態を表す値に基づき、前記多項式の変数に対して前記クライアントの状態を表す値を代入した結果を前記準同型性を有する暗号化方式で暗号化した応答暗号文を前記クライアントから受信し、
    前記サーバ側通信部は、前記応答暗号文を復号し、
    前記判定部は、前記応答暗号文の復号結果から、前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれるかを判定する
    請求項1または2に記載のサーバ。
  7. 前記サーバ側通信部は、前記クライアントの複数の状態のそれぞれを表す値を解とする多項式の係数のそれぞれを、準同型性を有する暗号化方式で暗号化した送信暗号文を前記クライアントから受信し、
    前記サーバ側通信部は、前記クライアントに応答暗号文を復号させ、前記判定部に、前記応答暗号文の復号結果から前記クライアントの状態が前記サーバの前記集合記憶部が記憶する前記集合に含まれるかを判定させるために、前記送信暗号文および前記サーバの前記集合記憶部が記憶する前記集合に含まれる複数の状態のそれぞれを表す値に基づき、前記多項式の変数に対して前記集合に含まれる複数の状態のそれぞれを表す値を代入した結果を前記準同型性を有する暗号化方式で暗号化した前記応答暗号文を生成して、前記クライアントに送信する
    請求項3または4に記載のサーバ。
  8. 予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、
    順次に遷移する当該クライアントの状態を管理する状態管理部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、
    前記秘匿共通集合計算プロトコルに従って前記サーバから受け取った暗号文に基づき、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定する判定部と、
    を有
    前記クライアントは、前記クライアントの状態が前記集合に含まれるかの判定がされてから、更に状態が遷移し、
    前記判定部は、前記クライアントの状態が前記集合に含まれるかの判定をしてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定する、
    クライアント。
  9. 予め定められた状態を含む集合を記憶するサーバに接続可能であるクライアントであって、
    順次に遷移する当該クライアントの状態を管理する状態管理部と、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記サーバと通信をするクライアント側通信部と、
    前記秘匿共通集合計算プロトコルに従って前記サーバから受け取った暗号文に基づき、前記クライアントの状態が前記サーバが記憶する前記集合に含まれるかを判定する判定部と、
    を有し、
    前記クライアントは、発生するイベントに応じて状態を順次に遷移させ、
    前記判定部は、前記クライアントの状態が前記サーバが記憶する前記集合に含まれる場合、前記クライアントに異常が発生したと検知する、
    クライアント。
  10. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバにおける情報処理の方法であって、
    予め定められた状態を含む集合を記憶し、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信し、
    前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が記憶する前記集合に含まれるかを判定し、
    前記クライアントの状態が前記集合に含まれるかの判定をしてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定する、
    方法。
  11. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバにおける情報処理の方法であって、
    予め定められた状態を含む集合を記憶し、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信し、
    前記秘匿共通集合計算プロトコルに従って受けとった暗号文に基づき前記クライアントの状態が記憶する前記集合に含まれるかを判定し、
    発生するイベントに応じて状態が遷移した後の前記クライアントの状態が前記サーバが記憶する前記集合に含まれる場合、前記クライアントに異常が発生したと検知する、
    方法。
  12. 順次に遷移する状態を管理することができるクライアントに接続可能なサーバにおける情報処理の方法であって、
    予め定められた状態を含む集合を記憶し、
    互いの集合の要素を秘匿しつつ互いの集合間に共通の要素を含むかを検出する秘匿共通集合計算プロトコルにより前記クライアントと通信し、
    前記クライアントの状態が記憶する前記集合に含まれるかを判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を送信し、
    前記クライアントの状態が前記集合に含まれるかの判定がされてから、前記クライアントの状態が少なくとも1回以上遷移した後において、前記秘匿共通集合計算プロトコルにより前記クライアントの状態が前記集合に含まれるかを再度判定させるために、前記秘匿共通集合計算プロトコルに従って暗号文を再度送信する、
    方法。
  13. コンピュータを請求項1から4のいずれか1項に記載のサーバとして機能させるためのプログラム。
  14. コンピュータを請求項8または9に記載のクライアントとして機能させるためのプログラム。
JP2011276198A 2011-12-16 2011-12-16 クライアントの状態が予め定められた状態に一致するかを検出するシステム Active JP5846577B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011276198A JP5846577B2 (ja) 2011-12-16 2011-12-16 クライアントの状態が予め定められた状態に一致するかを検出するシステム
US13/707,705 US9178779B2 (en) 2011-12-16 2012-12-07 System for detecting whether client state matches predetermined state

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011276198A JP5846577B2 (ja) 2011-12-16 2011-12-16 クライアントの状態が予め定められた状態に一致するかを検出するシステム

Publications (2)

Publication Number Publication Date
JP2013127665A JP2013127665A (ja) 2013-06-27
JP5846577B2 true JP5846577B2 (ja) 2016-01-20

Family

ID=48695876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011276198A Active JP5846577B2 (ja) 2011-12-16 2011-12-16 クライアントの状態が予め定められた状態に一致するかを検出するシステム

Country Status (2)

Country Link
US (1) US9178779B2 (ja)
JP (1) JP5846577B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649756B2 (en) * 2014-11-26 2020-05-12 Ebay Inc. Centralized client application management
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US11178117B2 (en) * 2018-12-18 2021-11-16 International Business Machines Corporation Secure multiparty detection of sensitive data using private set intersection (PSI)
CN111177762B (zh) * 2019-12-30 2022-11-08 北京同邦卓益科技有限公司 一种数据处理方法、装置、服务器及联邦学习***
JP7458805B2 (ja) * 2020-02-03 2024-04-01 日本放送協会 情報処理装置、情報処理システム、及びプログラム
CN111931207B (zh) * 2020-08-07 2024-04-09 北京百度网讯科技有限公司 获得隐私集合交集的方法、装置、设备及存储介质
US11937078B2 (en) * 2020-08-25 2024-03-19 Crypto Lab Inc. Mobile device for detecting route overlap and methods thereof
CN112217639B (zh) * 2020-09-30 2022-12-20 招商局金融科技有限公司 数据的加密共享方法、装置、电子设备及计算机存储介质
CN112600886B (zh) * 2020-12-04 2022-08-26 支付宝(杭州)信息技术有限公司 端云结合的隐私保护方法、装置以及设备
CN113179150B (zh) * 2021-04-26 2022-07-01 杭州宇链科技有限公司 一种基于保序函数的同态隐私集合求交方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596632A (en) * 1995-08-16 1997-01-21 Mci Communications Corporation Message-based interface for phone fraud system
US6411969B1 (en) * 1999-08-13 2002-06-25 Unisys Corporation Enhanced system and method for management of system database utilities
US6374267B1 (en) * 1999-08-13 2002-04-16 Unisys Corporation Database backup system and method utilizing numerically identified files for incremental dumping
JP2002092186A (ja) * 2000-09-18 2002-03-29 Nidek Co Ltd 医療情報共有化方法及び医療情報共有化システム
US20040172305A1 (en) * 2001-03-09 2004-09-02 Soerensen Jesper Leck Method and appartus for delivering healthcare
EP1246113A1 (en) * 2001-03-09 2002-10-02 Pihl Limited Method & apparatus for delivering healthcare
US20040044628A1 (en) * 2002-08-27 2004-03-04 Microsoft Corporation Method and system for enforcing online identity consent polices
JP2004334362A (ja) 2003-05-01 2004-11-25 Hitachi Eng Co Ltd アクセスログ管理方法
US20050193201A1 (en) * 2004-02-26 2005-09-01 Mahfuzur Rahman Accessing and controlling an electronic device using session initiation protocol
WO2006081177A2 (en) * 2005-01-24 2006-08-03 Decode Biostructures, Inc. Gene synthesis software
US8825815B2 (en) * 2008-01-08 2014-09-02 Amdocs Software Systems Limited System and method for client synchronization for a communication device
US9143649B2 (en) * 2011-06-06 2015-09-22 Konica Minolta, Inc. Image forming system and image forming device for performing control in accordance with user authentication information
US8601108B1 (en) * 2011-06-29 2013-12-03 Emc Corporation Credential authentication and authorization in a server device

Also Published As

Publication number Publication date
US20130173787A1 (en) 2013-07-04
JP2013127665A (ja) 2013-06-27
US9178779B2 (en) 2015-11-03

Similar Documents

Publication Publication Date Title
JP5846577B2 (ja) クライアントの状態が予め定められた状態に一致するかを検出するシステム
JP6941183B2 (ja) データのトークン化
JP5593458B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
US9021259B2 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
US20120170740A1 (en) Content protection apparatus and content encryption and decryption apparatus using white-box encryption table
US20140355756A1 (en) Search system, search method, and program
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
US7986780B2 (en) Privacy-preserving substring creation
JP5843261B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
CN112784284B (zh) 加密处理***、加密处理方法以及记录介质
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密***及方法
JPH11317734A (ja) デ―タの暗号化復号化方法および、それを用いたネットワ―クシステム
KR20230141845A (ko) 임계값 키 교환
US20080165954A1 (en) System for encrypting and decrypting data using derivative equations and factors
JP2007114494A (ja) 秘匿計算方法及び装置
CN112149166B (zh) 非常规密码保护方法及银行智能机器
US20220311605A1 (en) Sensitive Data Management System
CN114205144A (zh) 数据传输方法、装置、设备、存储介质及程序产品
JP2017129644A (ja) 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体
CN113158203A (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
CN113064761B (zh) 数据恢复方法、服务器、加密机、终端及介质
JPH1155244A (ja) 鍵回復方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20151028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R150 Certificate of patent or registration of utility model

Ref document number: 5846577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150