JP2015079228A - Detection device, detection method, computer, and program - Google Patents

Detection device, detection method, computer, and program Download PDF

Info

Publication number
JP2015079228A
JP2015079228A JP2013217903A JP2013217903A JP2015079228A JP 2015079228 A JP2015079228 A JP 2015079228A JP 2013217903 A JP2013217903 A JP 2013217903A JP 2013217903 A JP2013217903 A JP 2013217903A JP 2015079228 A JP2015079228 A JP 2015079228A
Authority
JP
Japan
Prior art keywords
data
array
pattern
information processing
processing unit
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.)
Pending
Application number
JP2013217903A
Other languages
Japanese (ja)
Inventor
弘毅 原田
Hiroki Harada
弘毅 原田
佐久間 淳
Atsushi Sakuma
淳 佐久間
博紀 有村
Hironori Arimura
博紀 有村
裕人 笹川
Hirohito Sasakawa
裕人 笹川
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.)
Hokkaido University NUC
University of Tsukuba NUC
Original Assignee
Hokkaido University NUC
University of Tsukuba NUC
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 Hokkaido University NUC, University of Tsukuba NUC filed Critical Hokkaido University NUC
Priority to JP2013217903A priority Critical patent/JP2015079228A/en
Publication of JP2015079228A publication Critical patent/JP2015079228A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To solve the problem that indeterminative finite automaton could not be used directly.SOLUTION: A detection device according to the present invention detects whether or not a predetermined pattern to be detected is included in an input data string, the detection device comprising: an inspection array storage unit for storing an inspection array indicating, in correspondence to each data position of the pattern to be detected, whether or not a pattern part up to the data position in the pattern to be detected is being detected; a data correspondence pattern generation unit for generating, for each type of data, a data correspondence pattern indicating whether or not each data position of the pattern to be detected is the relevant type of data; an update unit for updating the inspection array on the basis of the data correspondence pattern corresponding to next input data; and a determination unit for determining, on the basis of an element of the inspection array corresponding to a tail end data position of the pattern to be detected, whether or not the pattern to be detected is included in the input data string.

Description

本発明は、検出装置、検出方法、コンピュータ、及び、プログラムに関する。   The present invention relates to a detection device, a detection method, a computer, and a program.

近年の個人情報保護の必要性の高まりにより、保護が必要なデータを開示せずに入力データ列中に特定の検出対象パターンが含まれているか否かを検出する秘密パターン照合の重要性が高まっている(非特許文献1〜3)。
[非特許文献1] J. R. Troncoso-Pastoriza, S. Katzenbeisser, and M. Celik. Privacy preserving error resilient dna searching through oblivious automata. In Proc. Comput. Commun. Security (CCS'07), pages 519{528. ACM, 2007.
[非特許文献2] K. B. Frikken. Practical private dna string searching and matching through efficient oblivious automata evaluation. In Data and Applications Security XXIII, pages 81-94. Springer, 2009.
[非特許文献3] 渡邊裕治,立石孝彰. 通信回数を低減した紛失オートマトン計算. In 暗号と情報セキュリティシンポジウム(SCIS2012) 予稿集, 2012 年.
Due to the recent increase in the need for personal information protection, the importance of secret pattern matching that detects whether a specific detection target pattern is included in the input data string without disclosing data that needs to be protected has increased. (Non-Patent Documents 1 to 3).
[Non-Patent Document 1] JR Troncoso-Pastoriza, S. Katzenbeisser, and M. Celik. Privacy preserving error resilient dna searching through oblivious automata. In Proc. Comput. Commun. Security (CCS'07), pages 519 {528. ACM , 2007.
[Non-Patent Document 2] KB Frikken. Practical private dna string searching and matching through efficient oblivious automata evaluation. In Data and Applications Security XXIII, pages 81-94. Springer, 2009.
[Non-Patent Document 3] Yuji Watanabe and Takaaki Tateishi. Lost Automata Calculation with Reduced Communication Frequency. In Cryptography and Information Security Symposium (SCIS2012) Proceedings, 2012.

上記非特許文献1〜3においては、いずれも決定性有限オートマトン(DFA:Deterministic Finite Automaton)を想定しており、非決定性有限オートマトン(NFA:Non−deterministic Finite Automaton)を直接使用することができなかった。   In the non-patent documents 1 to 3, any definite finite automaton (DFA) is assumed, and the non-deterministic finite automaton (NFA) cannot be used directly. .

本発明の第1の態様においては、入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出装置であって、前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶部と、データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成部と、次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新部と、前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定部と、を備える検出装置を提供する。   According to a first aspect of the present invention, there is provided a detection device for detecting whether or not a predetermined detection target pattern is included in an input data string, and corresponding to each data position of the detection target pattern, In the input data sequence, a test array storage unit that stores a test array indicating whether or not a pattern portion up to the data position in the detection target pattern is being detected, and each data position of the detection target pattern for each type of data A data-corresponding pattern generation unit that generates a data-corresponding pattern indicating whether or not the data is of the type, an update unit that updates the test array based on the data-corresponding pattern corresponding to the next input data, and the detection target Whether or not the detection target pattern is included in the input data string based on the element of the inspection array corresponding to the data position at the end of the pattern A determining unit, for providing a detection device comprising a.

本発明の第2の態様においては、入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出方法であって、前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶段階と、データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成段階と、次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新段階と、前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定段階と、を備える検出方法を提供する。   According to a second aspect of the present invention, there is provided a detection method for detecting whether or not a predetermined detection target pattern is included in an input data string, wherein each of the data positions of the detection target pattern corresponds to the data position described above. A test sequence storage stage for storing a test sequence indicating whether or not a pattern portion up to the data position in the detection target pattern in the input data sequence is being detected, and each data position of the detection target pattern for each type of data. A data correspondence pattern generation stage for generating a data correspondence pattern indicating whether or not the data is of the type, an update stage for updating the inspection array based on the data correspondence pattern corresponding to the next input data, and the detection target Based on the element of the inspection array corresponding to the data position at the end of the pattern, the detection target pattern is included in the input data string To provide a detection method and a determination step determining whether.

本発明の第3の態様においては、入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出装置としてコンピュータを機能させるプログラムであって、前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶部と、データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成部と、次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新部と、前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定部と、して機能させるプログラムを提供する。   In the third aspect of the present invention, there is provided a program that causes a computer to function as a detection device that detects whether or not a predetermined detection target pattern is included in an input data string, and each data position of the detection target pattern Corresponding to the test sequence storage unit for storing a test sequence indicating whether or not a pattern portion up to the data position in the detection target pattern in the input data sequence is being detected, and for each type of data, the detection target A data-corresponding pattern generation unit that generates a data-corresponding pattern indicating whether each data position of the pattern is the type of data, and an update that updates the inspection array based on the data-corresponding pattern corresponding to the next input data And the input data string based on the elements of the inspection array corresponding to the last data position of the detection target pattern Wherein a determination section for determining whether or not the detection target pattern included to provide a program to function in the.

なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。   The summary of the invention does not enumerate all the features of the present invention. In addition, a sub-combination of these feature groups can also be an invention.

検出装置10の全体構成図である。1 is an overall configuration diagram of a detection device 10. FIG. 検出方法の全体の流れを説明するフローチャートである。It is a flowchart explaining the whole flow of a detection method. 図2に示す検出方法で生成されるデータ対応パターンMTiを説明する図である。It is a figure explaining the data corresponding | compatible pattern MTi produced | generated with the detection method shown in FIG. ステップSs208の状態配列Sの更新処理のフローチャートである。It is a flowchart of updating of the state array S i step Ss208. 更新処理によって更新される状態配列Sを説明する図及び表である。Diagrams and tables describing the state array S i to be updated by the updating process. ステップSp110及びSs210の照合結果の判定処理のフローチャートである。It is a flowchart of the determination process of the collation result of steps Sp110 and Ss210. ステップSp110及びSs210の照合結果の判定処理のフローチャートである。It is a flowchart of the determination process of the collation result of steps Sp110 and Ss210. 状態配列の更新処理を変更した検出装置10の全体構成図である。It is a whole block diagram of the detection apparatus 10 which changed the update process of the state arrangement | sequence. セルフループの出力を説明する図である。It is a figure explaining the output of a self loop. 変更した状態配列の更新処理のフローチャートである。It is a flowchart of the update process of the changed state arrangement | sequence. 上述した実施形態の効果を説明する表である。It is a table | surface explaining the effect of embodiment mentioned above. 本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。2 shows an exemplary hardware configuration of a computer 1900 according to the present embodiment.

以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。   Hereinafter, the present invention will be described through embodiments of the invention, but the following embodiments do not limit the invention according to the claims. In addition, not all the combinations of features described in the embodiments are essential for the solving means of the invention.

図1は、検出装置10の全体構成図である。検出装置10は、入力データ列T中に予め定められた検出対象パターンPが含まれるか否かを検出する。本実施形態においては、検出装置10は、入力データ列Tを取得・保持・管理する第1情報処理部12(SH:String Holderとも示す。)と、検出対象パターンPを保持・管理する第2情報処理部14(PH:Pattern Holderとも示す。)とを備え、第1情報処理部12および第2情報処理部14の間で入力データ列Tおよび検査対象パターンPを互いに秘匿しつつ、入力データ列T中に検出対象パターンPを検出する秘密パターン照合を実現する。ここで、第1情報処理部12および第2情報処理部14は、一例としてプログラムを実行可能なコンピュータまたは情報処理装置であってよく、有線または無線ネットワークを介して互いに接続される。   FIG. 1 is an overall configuration diagram of the detection apparatus 10. The detection device 10 detects whether or not a predetermined detection target pattern P is included in the input data string T. In the present embodiment, the detection apparatus 10 includes a first information processing unit 12 (also referred to as “SH: String Holder”) that acquires, holds, and manages the input data string T, and a second that holds and manages the detection target pattern P. The information processing unit 14 (also referred to as “Pattern Holder”) is provided, and the input data string T and the inspection target pattern P are concealed from each other between the first information processing unit 12 and the second information processing unit 14, and the input data Secret pattern matching for detecting the detection target pattern P in the column T is realized. Here, the first information processing unit 12 and the second information processing unit 14 may be a computer or an information processing apparatus that can execute a program as an example, and are connected to each other via a wired or wireless network.

尚、以下においては、第1情報処理部12および第2情報処理部14間で入力データ列Tおよび検出対象パターンPを秘匿する秘密パターン照合を中心に示すが、第1情報処理部12および第2情報処理部14間で秘密を持たないパターン照合については以下における暗号処理を除くことで実現できる。   In the following, the secret pattern matching for concealing the input data string T and the detection target pattern P between the first information processing unit 12 and the second information processing unit 14 will be mainly described. (2) Pattern matching that does not have a secret between the information processing units 14 can be realized by excluding the following cryptographic processing.

第1情報処理部12は、複数のデータを含む入力データ列Tの一例として、複数の文字Tiを含む文字列Tを管理する。ここで、第1情報処理部12は、オフラインで文字列T全体を取得してパターン照合に供してもよく、オンラインで文字列Tの各文字を順次取得し、順次パターン照合に供してもよい。以下においては、第1情報処理部12が、文字列Tとして、1文字目からn文字までの文字T1からTnを順次入力していくオンライン処理を中心に示す。第1情報処理部12は、検査配列記憶部20と、更新部22と、第1判定部24とを有する。   The first information processing unit 12 manages a character string T including a plurality of characters Ti as an example of an input data string T including a plurality of data. Here, the first information processing unit 12 may acquire the entire character string T offline and use it for pattern matching, or may sequentially acquire each character of the character string T online and use it for sequential pattern matching. . In the following, an online process in which the first information processing unit 12 sequentially inputs the characters T1 to Tn from the first character to the n characters as the character string T will be mainly described. The first information processing unit 12 includes a test array storage unit 20, an update unit 22, and a first determination unit 24.

検査配列記憶部20は、検出対象パターンPの各データ位置(文字位置)に対応して、文字列Tにおいて検出対象パターンPにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列の一例である状態配列を記憶する。ここで本実施形態においては、検出対象パターンPのパターン長をmとする。検査配列記憶部20は、i−1番目の文字Ti−1(1≦i≦n)までの照合を終えた状態において、検出対象パターンPの各データ位置j(0≦j≦m)に対応して、当該データ位置jまでのパターン部分(すなわちP[1]〜P[j]の部分)を検出中である場合に検出中を示す値0となる配列要素Si−1[j]を有する状態配列Si−1を記憶する。すなわち、状態配列Si−1の配列要素Si−1[j]は、文字列Tのi−1文字目の文字Ti−1までを読み込んだ状態において、検出対象パターンPのj番目のパターン要素までの一致を検出しているかどうかを表す遷移状態を示す。本実施形態においては、Si−1[j]=0ならばactive(すなわちj番目のパターン要素までの一致を検出していること)、Si−1[j]≠0ならばinactive(すなわちj番目のパターン要素までの一致を検出していないこと)とする。 The inspection array storage unit 20 indicates, in correspondence with each data position (character position) of the detection target pattern P, an inspection array indicating whether or not a pattern portion up to the data position in the detection target pattern P in the character string T is being detected. Is stored as a state array. Here, in the present embodiment, the pattern length of the detection target pattern P is m. The inspection array storage unit 20 is arranged at each data position j (0 ≦ j ≦ m) of the detection target pattern P in a state where the collation up to the ( i−1 ) th character T i-1 (1 ≦ i ≦ n) is completed. Correspondingly, an array element S i-1 [j] that has a value of 0 indicating that it is being detected when the pattern portion up to the data position j (that is, the portion of P [1] to P [j]) is being detected. Is stored. That is, the array element S i-1 [j] of the state array S i-1 is the j -th element of the detection target pattern P in the state where the character T i-1 of the character string T is read up to the i- 1th character. A transition state indicating whether a match up to a pattern element is detected is shown. In this embodiment, if S i−1 [j] = 0, it is active (that is, a match up to the jth pattern element is detected), and if S i−1 [j] ≠ 0, it is inactive (that is, a match up to the jth pattern element is not detected).

尚、検査配列記憶部20は、秘密パターン照合を実現するために、第2情報処理部14の第2公開鍵pkPHにより状態配列Sを暗号化し、暗号化状態配列SEiとして記憶する。 The check array storage unit 20 encrypts the state array S i with the second public key pk PH of the second information processing unit 14 and stores it as an encrypted state array S Ei in order to realize secret pattern matching.

更新部22は、後述する第2情報処理部14のデータ対応パターン生成部32が生成した、文字列Tの次の文字Tに対応するデータ対応パターンMTiに基づいて、状態配列Si−1を更新し、更新された状態配列Sとする。例えば、更新部22は、状態配列Si−1の各データ位置j−1に対応する要素の一例である配列要素Si−1[j−1]の値と、文字列Tの次の文字Tiに対応するデータ対応パターンMTiにおける次のデータ位置jに対応する要素の一例であるパターン要素MTi[j]とに基づいて、状態配列Sの次のデータ位置jに対応する配列要素S[j]を算出する。これにより、更新部22は、i−1番目の文字Ti−1まで入力された状態で検出対象パターンPのj−1番目のパターン部分までの一致を検出しており(Si−1[j−1]が検出中を示す値であり)、かつ、i番目の文字Tに対応するデータ対応パターンMTiのj番目の要素MTi[j]が検査対象パターンPのj番目のパターン要素に文字Tが含まれることを示す場合に、状態配列Si[j]をj番目のパターン部分までの一致を検出していることを示す値に更新することができる。なお、本実施形態に係る更新部22は、上記更新処理を暗号化された状態配列である暗号化状態配列SEiに対して行うが、この処理については後述する。 Updater 22, the data corresponding pattern generating portion 32 of the second information processing unit 14 to be described later is generated based on the data corresponding pattern M Ti corresponding to the next character T i of the string T, the state sequence S i- 1 is updated to the updated state array S i . For example, the update unit 22 determines the value of the array element S i−1 [j−1], which is an example of the element corresponding to each data position j−1 of the state array S i−1 , and the next character of the character string T. An array element corresponding to the next data position j of the state array S i based on the pattern element M Ti [j] which is an example of an element corresponding to the next data position j in the data corresponding pattern M Ti corresponding to Ti S i [j] is calculated. Thereby, the update part 22 has detected the coincidence to the j-1st pattern part of the detection target pattern P in a state where the (i-1) th character T i-1 is input (S i-1 [ j-1] is a value indicating that detection is in progress), and the j-th element M Ti [j] of the data corresponding pattern M Ti corresponding to the i-th character T i is the j-th pattern of the inspection target pattern P. to indicate that it contains the letter T i in the element, it is possible to update the state sequence Si [j] to a value indicating that detects a match to the j-th pattern portion. Note that the update unit 22 according to the present embodiment performs the update process on the encrypted state array S Ei that is an encrypted state array, which will be described later.

第1判定部24は、第2情報処理部14の第2判定部34と協働して、検出対象パターンPの末尾のデータ位置mに対応する状態配列S[m]に基づいて、文字列T中に検査対象パターンPが含まれているか否かを判定する。本実施形態に係る第1判定部24は、状態配列S[m]を暗号化した暗号化状態配列SEi[m]に基づく判定を行う。尚、mの一例は、検出対象パターンPの文字数である。 The first determination unit 24 cooperates with the second determination unit 34 of the second information processing unit 14 based on the state array S i [m] corresponding to the last data position m of the detection target pattern P. It is determined whether or not the inspection target pattern P is included in the column T. The first determination unit 24 according to the present embodiment performs determination based on the encrypted state array S Ei [m] obtained by encrypting the state array S i [m]. An example of m is the number of characters of the detection target pattern P.

第2情報処理部14は、検出対象パターンPを管理する。第2情報処理部14は、データ対応パターン生成部32と、第2判定部34を有する。   The second information processing unit 14 manages the detection target pattern P. The second information processing unit 14 includes a data correspondence pattern generation unit 32 and a second determination unit 34.

データ対応パターン生成部32は、データの種類の一例である文字Tiの種類毎に、検出対象パターンPの各データ位置jが当該種類のデータか否かを示すデータ対応パターンMTiを生成する。ここで、文字Tiの種類は、文字列Tを構成する文字集合Σの要素であり、例えばa、b等のアルファベット、数字、日本語文字、および、データ要素の値等であってよい。例えば、データ対応パターン生成部32は、データの文字Tiの種類毎に、検出対象パターンPの各データ位置jが当該種類の文字である場合に文字が検出対象パターンPの対応するパターン要素に含まれることを示す値0となる要素MTi[j]を有するデータ対応パターンMTiを生成する。 For each type of character Ti, which is an example of the type of data, the data corresponding pattern generation unit 32 generates a data corresponding pattern MTi indicating whether or not each data position j of the detection target pattern P is that type of data. Here, the type of the character Ti is an element of the character set Σ constituting the character string T, and may be, for example, alphabets such as a and b, numbers, Japanese characters, and values of data elements. For example, for each type of data character Ti, the data corresponding pattern generation unit 32 includes a character in the corresponding pattern element of the detection target pattern P when each data position j of the detection target pattern P is a character of that type. A data corresponding pattern M Ti having an element M Ti [j] with a value 0 indicating that the data is to be generated is generated.

データ対応パターン生成部32は、文字Tiの種類毎のデータ対応パターンMTiを、第2情報処理部14の第2公開鍵pkPHにより暗号化して、暗号化データ対応パターンMETiを第1情報処理部12へと送信する。 Data corresponding pattern generating unit 32, the data corresponding pattern M Ti of each type of character Ti, encrypted by the second public key pk PH of the second information processing unit 14, the first information encrypted data corresponding pattern M ETi Transmit to the processing unit 12.

第2判定部34は、第1情報処理部12の第1判定部24と協働して、検出対象パターンPの末尾のデータ位置mに対応する状態配列Sの配列要素S[m]に基づいて、文字列T中に検出対象パターンPが含まれたか否かを判定する。本実施形態に係る第2判定部34は、状態配列S[m]を暗号化した暗号化状態配列SEi[m]に基づく判定を行う。 The second determination unit 34 cooperates with the first determination unit 24 of the first information processing unit 12 to arrange the array element S i [m] of the state array S i corresponding to the last data position m of the detection target pattern P. Based on the above, it is determined whether or not the detection target pattern P is included in the character string T. The second determination unit 34 according to the present embodiment performs determination based on the encrypted state array S Ei [m] obtained by encrypting the state array S i [m].

次に、検査方法について説明する。   Next, the inspection method will be described.

各検査方法における暗号化は、加法準同型性公開鍵暗号による。加法準同型性公開鍵暗号の一例は、Paillier暗号である。Paillier暗号は、"P. Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Advances in cryptology EUROCRYPT'99, pages 223-238. Springer, 1999."に記載されている。加法準同型性公開鍵暗号は、同一の公開鍵で暗号化された暗号文同士の積が対応する平文同士の和の暗号文となり、式(1)の関係を満たす。暗号については、Encを用いる。従って、例えば、平文tを暗号化して暗号cにする場合、c=Enc(t)と表記する。白丸○は、暗号同士の積の演算子とする。t1、t2は平文である。r1、r2は、乱数である。r1、r2は、暗号の安全性を保つため暗号化毎に変更することが好ましい。尚、説明の簡略化のため乱数r1、r2は省略して表記する。また、復号については、Decを用いる。従って、例えば、暗号cを復号して平文tにする場合、t=Dec(c)と表記する。

Figure 2015079228
Encryption in each inspection method is based on additive homomorphic public key cryptography. An example of an additive homomorphic public key cipher is the Paillier cipher. The Paillier cipher is described in "P. Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Advances in cryptology EUROCRYPT '99, pages 223-238. Springer, 1999." In additive homomorphic public key cryptography, the product of ciphertexts encrypted with the same public key becomes the ciphertext of the sum of the corresponding plaintexts, and satisfies the relationship of equation (1). For encryption, Enc is used. Therefore, for example, when plaintext t is encrypted to be encrypted c, it is expressed as c = Enc (t). A white circle ○ is an operator of products of ciphers. t1 and t2 are plaintext. r1 and r2 are random numbers. It is preferable to change r1 and r2 for each encryption in order to maintain encryption security. For simplicity of explanation, the random numbers r1 and r2 are omitted. In addition, Dec is used for decoding. Therefore, for example, when decrypting the cipher c into plaintext t, it is expressed as t = Dec (c).
Figure 2015079228

また、次に示す式(2)により、同一の平文を持つ異なる暗号文を生成する再暗号化もできる。

Figure 2015079228
Further, re-encryption for generating different ciphertexts having the same plaintext can be performed by the following equation (2).
Figure 2015079228

図2は、検出方法の全体の流れを説明するフローチャートである。図2に示す検出方法は、第1情報処理部12及び第2情報処理部14がプログラムを読み込むことによって実行される。図2に示す検査方法は、入力された検査対象パターンPからそれを受理する非決定性有限オートマトンを構築して文字列T上でその遷移を模倣することで照合を実行する。本実施形態では、更に、ビット並列パターン照合方法を準同型性暗号上の秘密計算へを実施可能とすべく、配列と加法のみを用いる。尚、Shift−OR法を配列上で実行するアルゴリズムを配列Shift−OR法とする。図3は、図2に示す検出方法で生成されるデータ対応パターンMTiを説明する図である。本実施形態では、文字列Tが第1情報処理部12に入力されている。また、検出対象パターンPが第2情報処理部14に入力されている。実施形態では、検出対象パターンP=ababbとして、文字列T=abababbとする。 FIG. 2 is a flowchart for explaining the entire flow of the detection method. The detection method illustrated in FIG. 2 is executed by the first information processing unit 12 and the second information processing unit 14 reading a program. The inspection method shown in FIG. 2 executes collation by constructing a nondeterministic finite automaton that accepts the inputted inspection target pattern P and imitating the transition on the character string T. In the present embodiment, furthermore, only the array and the addition are used so that the bit parallel pattern matching method can be executed for the secret calculation on the homomorphic encryption. Note that an algorithm for executing the Shift-OR method on an array is referred to as an array Shift-OR method. FIG. 3 is a diagram for explaining the data correspondence pattern MTi generated by the detection method shown in FIG. In the present embodiment, the character string T is input to the first information processing unit 12. Further, the detection target pattern P is input to the second information processing unit 14. In the embodiment, the detection target pattern P = ababb is assumed to be a character string T = abababb.

図2に示す検査方法では、第2情報処理部14において、データ対応パターン生成部32が、第2情報処理部14の公開鍵及び秘密鍵として第2秘密鍵skPH及び第2公開鍵pkPHを生成する(Sp102)。次に、データ対応パターン生成部32は、公開鍵pkPHを第1情報処理部12へと送信する(Sp104)。データ対応パターン生成部32は、式(3)によって、データ対応パターンMTiを生成する。データ対応パターン生成部32は、検出対象パターンP=ababbの文字種"a"についてのデータ対応パターンMaを生成する場合、式(3)に基づいて、検出対象パターンPの1番目及び3番目はaなので、Ma[1]=Ma[3]=0となる。一方、検出対象パターンPの2番目、4番目及び5番目はbなので、Ma[2]=Ma[4]=Ma[5]=1となる。これにより、データ対応パターン生成部32は、式(3)によって、図3に示す検出対象パターンP=ababbのデータ対応パターンMTiを生成する。

Figure 2015079228
In the inspection method illustrated in FIG. 2, in the second information processing unit 14, the data correspondence pattern generation unit 32 uses the second secret key sk PH and the second public key pk PH as the public key and secret key of the second information processing unit 14. Is generated (Sp102). Next, the data corresponding pattern generation unit 32 transmits the public key pk PH to the first information processing unit 12 (Sp104). Data corresponding pattern generating unit 32, by the equation (3), generates data corresponding pattern M Ti. When the data correspondence pattern generation unit 32 generates the data correspondence pattern Ma for the character type “a” of the detection target pattern P = ababbb, the first and third detection target patterns P are a based on the equation (3). Therefore, Ma [1] = Ma [3] = 0. On the other hand, since the second, fourth and fifth of the detection target pattern P are b, Ma [2] = Ma [4] = Ma [5] = 1. Thus, the data corresponding pattern generating unit 32, by the equation (3), generates data corresponding pattern M Ti of the detected object pattern P = ababb shown in FIG.
Figure 2015079228

データ対応パターン生成部32は、文字Tiの種類毎にデータ対応パターンMTiの各パターン要素METi[j]を暗号化して、暗号化パターン要素METi[j]を生成する(Sp106)。例えば、データ対応パターン生成部32は、生成した第2公開鍵pkPH及び第2公開鍵skPHのうち、当該第2公開鍵pkPHを用いて加法準同型性暗号によりデータ対応パターンMTiを暗号化してもよい。データ対応パターン生成部32は、暗号化パターン要素METi[j]を含む暗号化データ対応パターンMETiを第1情報処理部12へと送信する(Sp108)。 The data corresponding pattern generation unit 32 encrypts each pattern element M ETi [j] of the data corresponding pattern M Ti for each type of character Ti, and generates an encrypted pattern element M ETi [j] (Sp106). For example, data corresponding pattern generating unit 32, of the second public key pk PH and the second public key sk PH generated, the data corresponding pattern M Ti by additive homomorphism encryption by using the second public key pk PH It may be encrypted. The data correspondence pattern generation unit 32 transmits the encrypted data correspondence pattern M ETi including the encryption pattern element M ETi [j] to the first information processing unit 12 (Sp108).

第1情報処理部12では、検査配列記憶部20が、第2情報処理部14から送信された公開鍵pkPH、及び、暗号化されたデータ対応パターンMTiを受信する(Ss202、Ss204)。 In the first information processing unit 12, the inspection sequence storage unit 20, the public key pk PH transmitted from the second information processing unit 14, and receives the encrypted data corresponding pattern M Ti (Ss202, Ss204).

第1情報処理部12では、更新部22は、式(4)によって、状態配列Sの初期値Sが暗号化された暗号化状態配列SE0を生成して、検査配列記憶部20に記憶させる(Ss206)。

Figure 2015079228
In the first information processing unit 12, the updating unit 22 generates an encrypted state array S E0 in which the initial value S 0 of the state array S i is encrypted by the equation (4), and stores the encrypted state array S E0 in the check array storage unit 20. Store (Ss206).
Figure 2015079228

次に、更新部22は、後述する暗号化状態配列SEiの更新処理によって、状態配列Sが暗号化された暗号化状態配列SEiの各配列要素SEi[j]を生成して、順次、暗号化状態配列SEiを更新する(Ss208)。第1判定部24は、後述する照合結果の判定処理を実行する(Ss210)。この後、更新部22及び第1判定部24は、それぞれステップSs208及びSs210をそれぞれn回繰り返す。尚、nの一例は、文字列Tの文字数である。 Next, the update unit 22 generates each array element S Ei [j] of the encrypted state array S Ei in which the state array S i is encrypted by an update process of the encrypted state array S Ei described later. Sequentially, the encryption state array S Ei is updated (Ss208). The first determination unit 24 performs a verification result determination process described later (Ss210). Thereafter, the update unit 22 and the first determination unit 24 repeat Steps Ss208 and Ss210, respectively, n times. An example of n is the number of characters in the character string T.

第2情報処理部14では、第2判定部34が、第1判定部24の照合結果の判定処理と連動して、後述する照合結果の判定処理(Sp110)をn回繰り返す。尚、第2判定部34が、検査対象パターンPが文字列Tを含むか否かを判定する場合、照合結果ΓPHをn回出力して、当該判定を実行する。 In the second information processing unit 14, the second determination unit 34 repeats a collation result determination process (Sp110) described later n times in conjunction with the collation result determination process of the first determination unit 24. When the second determination unit 34 determines whether or not the inspection target pattern P includes the character string T, the verification result Γ PH is output n times and the determination is executed.

図4は、ステップSs208の状態配列Sの更新処理のフローチャートである。更新処理のフローチャートに先立って、第1情報処理部12に文字列T、暗号化データ対応パターンMETi、暗号化状態配列SEi−1が入力されている。図5は、更新処理によって更新される状態配列Sを説明する図及び表である。図5の上図は、検出対象パターンP=ababbを受け付けた非決定性有限オートマトンによる状態遷移の図である。図5の上図における各丸の中の数字は、データ位置jを示す。図5の下図において、最上位の行は、データ位置jを示す。各行は、文字列Tのi文字目の文字を読み込んだ場合に生成される状態配列Sを示す。状態配列Sの初期値である状態配列Sの各要素は、S[0]=0と、及び、S[j]=1、j∈{1、2、・・・、m}、S[0]=0に初期設定されている。各セルは、配列要素S[j]を示す。配列要素S[j]は、値が0の場合、activeであって、値が0でない場合、inactiveである。尚、本実施形態では、更新された状態配列Sが暗号化された状態配列SEiを生成する。 FIG. 4 is a flowchart of the update process of the state array S i in step Ss208. Prior to the flowchart of the update process, a character string T, an encrypted data correspondence pattern M ETi , and an encrypted state array S Ei-1 are input to the first information processing unit 12. Figure 5 is a diagram and table illustrating a state sequence S i to be updated by the updating process. The upper diagram of FIG. 5 is a diagram of state transition by a nondeterministic finite automaton that has received the detection target pattern P = ababb. The number in each circle in the upper diagram of FIG. 5 indicates the data position j. In the lower diagram of FIG. 5, the uppermost row indicates the data position j. Each row shows a state array S i generated when the i-th character of the character string T is read. Each element of the state array S 0 which is an initial value of the state array S i is S 0 [0] = 0 and S 0 [j] = 1, j∈ {1, 2,..., M} , S i [0] = 0. Each cell indicates an array element S i [j]. The array element S i [j] is active when the value is 0, and inactive when the value is not 0. In the present embodiment, the state array S Ei in which the updated state array S i is encrypted is generated.

図4に示すように、状態配列SEiの更新処理では、更新部22は、j=0の配列要素S[0]の値として予め定められた0を、第2公開鍵pkPHを用いて加法準同型性暗号により暗号化して、暗号化状態配列SEiの暗号化配列要素SEi[0]を生成する(Ss220)。換言すれば、更新部22は、j=0の配列要素S[0]の値を、iの値に関わらず0とし、文字Tiが入力される度にデータ対応パターンMの先頭からのマッチングを開始させる。 As shown in FIG. 4, in the update process of the state array S Ei , the update unit 22 uses the second public key pk PH as 0 that is predetermined as the value of the array element S i [0] where j = 0. Then, the encrypted array element S Ei [0] of the encrypted state array S Ei is generated by encryption using additive homomorphic encryption (Ss220). In other words, the update unit 22 sets the value of the array element S i [0] of j = 0 to 0 regardless of the value of i, and matches from the beginning of the data correspondence pattern M every time the character Ti is input. To start.

次に、更新部22は、暗号化配列要素SEi[j]を更新する(Ss222)。ここで、更新部22は、暗号化されていない状態で示すと、配列要素S[j]を式(5)によって算出する。具体的には、更新部22は、状態配列Si−1の各データ位置j−1に対応する配列要素Si−1[j−1]の値、および、文字列Tの次の文字Tiに対応するデータ対応パターンMTiにおける次のデータ位置jに対応するパターン要素MTi[j]の値が共に0であることに応じて、状態配列Sの次のデータ位置jに対応する配列要素S[j]を0とする。例えば、更新部22は、状態配列Si−1の各データ位置j−1に対応する配列要素Si−1[j−1]の値と、文字列Tの次の文字Tiに対応するデータ対応パターンMTiにおける次のデータ位置jに対応するパターン要素MTi[j]の値とを加算して、状態配列Sの次のデータ位置jに対応する配列要素S[j]とする。 Next, the update unit 22 updates the encrypted array element S Ei [j] (Ss222). Here, the update unit 22 calculates the array element S i [j] according to the equation (5) when shown in an unencrypted state. Specifically, the update unit 22 determines the value of the array element S i-1 [j-1] corresponding to each data position j-1 of the state array S i-1 and the next character Ti of the character string T. The array corresponding to the next data position j of the state array S i in response to the values of the pattern elements M Ti [j] corresponding to the next data position j in the data corresponding pattern M Ti corresponding to The element S i [j] is set to 0. For example, the update unit 22 uses the value of the array element S i-1 [j-1] corresponding to each data position j-1 of the state array S i-1 and the data corresponding to the next character Ti of the character string T. by adding the value of the corresponding pattern M pattern elements corresponding to the next data position j in Ti M Ti [j], the array element S i corresponding to the next data position j of the state array S i [j] .

例えば、i=6、j=1の配列要素S[1]の値は、配列要素S[0]の値が0であって、図3に示すようにMT6[1]=Mb[1]の値が1なので、それぞれを足して1となる。i=7、j=5の配列要素S[5]の値は、配列要素S[4]の値が0であって、MT6[5]=Mb[5]の値が0なので、それぞれを足して0となる。

Figure 2015079228
For example, the value of the array element S 6 [1] with i = 6 and j = 1 is 0, and the value of the array element S 5 [0] is 0, and M T6 [1] = Mb [ Since the value of 1] is 1, each is added to be 1. The value of the array element S 7 [5] with i = 7 and j = 5 is 0 because the value of the array element S 6 [4] is 0 and the value of M T6 [5] = Mb [5] is 0. Add each to zero.
Figure 2015079228

本実施形態において、更新部22は、パターン要素MTi[j]ではなく、暗号化された暗号化パターン要素METi[j]を第2情報処理部14から受信している。従って、更新部22は、次の文字列Tに対応する暗号化データ対応パターンMETiに基づいて、加法準同型性の性質より自明の下記の式(6)によって、暗号化状態配列SEiの配列要素SEi[j]を算出して更新する。具体的には、更新部22は、1つ前の暗号化状態配列SEi−1の各データ位置j−1に対応する配列要素SEi−1[j−1]の値、および、次の文字列Tに対応する暗号化データ対応パターンMETiにおける次のデータ位置jに対応する暗号化パターン要素METi[j]の値との積、即ち、加法準同型性暗号における加法に基づき暗号化状態配列SEiを算出して更新する。

Figure 2015079228
In the present embodiment, the update unit 22 receives the encrypted encrypted pattern element M ETi [j] from the second information processing unit 14 instead of the pattern element M Ti [j]. Therefore, the update unit 22 uses the following equation (6), which is obvious from the nature of the additive homomorphism, based on the encrypted data correspondence pattern M ETi corresponding to the next character string T, to store the encrypted state array S Ei . The array element S Ei [j] is calculated and updated. Specifically, the update unit 22 determines the value of the array element S Ei−1 [j−1] corresponding to each data position j−1 of the previous encryption state array S Ei−1 , and Encryption based on the product of the value of the encryption pattern element M ETi [j] corresponding to the next data position j in the encrypted data corresponding pattern M ETi corresponding to the character string T, that is, the addition in the additive homomorphic encryption The state array S Ei is calculated and updated.
Figure 2015079228

更新部22は、ステップSs222を、m回繰り返すまで続ける。ここでいうmは、検出対象パターンP=ababbに含まれる文字数であって、本実施形態では5個である。上述した図2に示すように、更新部22は、更新処理のステップSs208をn回繰り返す。これにより、更新部22は、図5に示すn個の状態配列Sが暗号化された暗号化状態配列SEiを生成することになる。これにより、状態配列の更新処理が終了する。 The updating unit 22 continues step Ss222 until it is repeated m times. Here, m is the number of characters included in the detection target pattern P = ababb, and is 5 in this embodiment. As shown in FIG. 2 described above, the update unit 22 repeats step Ss208 of the update process n times. Thereby, the update unit 22 generates an encrypted state array S Ei obtained by encrypting the n state arrays S i shown in FIG. As a result, the state array update processing ends.

図6は、ステップSp110及びSs210の照合結果の判定処理のフローチャートである。照合結果の判定処理のフローチャートに先立って、第1情報処理部12に第2公開鍵pkPHが入力され、第2情報処理部14には第2秘密鍵skPHが入力されている。尚、図6に示す照合結果の判定処理は、第2情報処理部14が照合結果を判定する場合である。尚、データ対応パターンMTiが暗号化されている場合、第2判定部34は、暗号化検出対象パターンPの末尾のデータ位置mに対応する暗号化状態配列SEiの暗号化配列要素SEi[m]に基づいて、文字列T中に検出対象パターンPが含まれたか否かを判定する。以下、判定処理について詳細に説明する。 FIG. 6 is a flowchart of the collation result determination process in steps Sp110 and Ss210. Prior to the verification result determination processing flowchart, the second public key pk PH is input to the first information processing unit 12, and the second secret key sk PH is input to the second information processing unit 14. 6 is a case where the second information processing unit 14 determines the collation result. In the case where the data corresponding pattern M Ti is encrypted, the second determination unit 34, the coding sequence element of the encrypted state sequence S Ei corresponding to the end of the data position m of the encrypted detected pattern P E S Based on Ei [m], it is determined whether or not the detection target pattern P is included in the character string T. Hereinafter, the determination process will be described in detail.

図6に示すように、照合結果の判定処理では、第1情報処理部12の第1判定部24が第1乱数V[i]及び第3乱数W[i]を生成する(Ss230)。尚、乱数は、i毎、即ち、文字列Tの文字毎に生成される。第1判定部24が、式(7)によって、第1乱数V[i]によりべき乗した暗号化配列要素SEi[m]が、公開鍵pkPHによって暗号化された第3乱数W[i]によって、ランダム化された検査用データZ[i]を算出する(Ss232)。尚、暗号化配列要素SEi[m]は、検出対象パターンPの末尾のデータ位置mに対応する暗号化状態配列Sの要素である。

Figure 2015079228
As shown in FIG. 6, in the verification result determination process, the first determination unit 24 of the first information processing unit 12 generates a first random number V [i] and a third random number W [i] (Ss230). A random number is generated for each i, that is, for each character of the character string T. The first determination unit 24 uses the expression (7) to encrypt the encrypted array element S Ei [m] raised to the power of the first random number V [i] with the public key pk PH , and the third random number W [i]. The randomized inspection data Z E [i] is calculated by (Ss232). The encrypted array element S Ei [m] is an element of the encrypted state array S E corresponding to the last data position m of the detection target pattern P.
Figure 2015079228

第1判定部24は、検査用データZ[i]を第2情報処理部14へと送信する(Ss234)。 The first determination unit 24 transmits the inspection data Z E [i] to the second information processing unit 14 (Ss234).

第2情報処理部14では、第2判定部34が、検査用データZ[i]を受信する(Sp120)。第2判定部34は、受信した検査用データZ[i]を公開鍵pkPHによって復号して、検査用データZ[i]を生成する(Sp122)。 In the second information processing unit 14, the second determination unit 34 receives the inspection data Z E [i] (Sp120). The second determination unit 34 decrypts the received inspection data Z E [i] with the public key pk PH , and generates inspection data Z [i] (Sp122).

第1判定部24は、第3乱数W[i]を第2情報処理部14へと送信する。(Ss236)。   The first determination unit 24 transmits the third random number W [i] to the second information processing unit 14. (Ss236).

第2判定部34は、第3乱数W[i]を受信する(Sp124)。第2判定部34は、検査用データZ[i]を第2情報処理部14の秘密鍵である第2秘密鍵skPHにより復号化する。第2判定部34は、式(8)に基づいて、復号した検査用データZ[i]と、受信した第3乱数W[i]との和によって、末尾のデータ位置mの状態配列Sの配列要素S[m]を第1乱数V[i]によりべき乗した値である照合結果ΓPH[i]として算出する(Sp126)。尚、第3乱数W[i]は省略してもよい。

Figure 2015079228
The second determination unit 34 receives the third random number W [i] (Sp124). The second determination unit 34 decrypts the inspection data Z E [i] with the second secret key sk PH that is the secret key of the second information processing unit 14. Based on the equation (8), the second determination unit 34 calculates the state array S i of the last data position m based on the sum of the decrypted test data Z [i] and the received third random number W [i]. Is calculated as a collation result Γ PH [i], which is a value obtained by raising the array element S i [m] to the power of the first random number V [i] (Sp126). Note that the third random number W [i] may be omitted.
Figure 2015079228

第2判定部34は、照合結果ΓPH[i]の値が0か否かに基づいて文字列T中に検出対象パターンPを検出したか否かを判定する。(Sp128)。換言すれば、第2判定部34は、暗号化検出対象パターンPの末尾のデータ位置mに対応する暗号化状態配列SEiの暗号化配列要素SEi[m]に基づいて、文字列T中に検出対象パターンPが含まれたか否かを判定する。具体的には、第2判定部34は、照合結果ΓPH[i]が"0"の場合、検出対象パターンPが文字列Tに含まれていると判定して、それ以外は検出対象パターンPが文字列Tに含まれていないと判定する。例えば、第2判定部34は、図5の例では、i=7において、Si[5]=0(active)を検出して、文字列Tの7文字目が、合致した検査対象パターンPの末尾であると判定する。これにより、照合結果の判定処理が終了する。尚、第1判定部24を有する第1情報処理部12は、何らの結果も得ることはない。換言すれば、第2情報処理部14は、第1情報処理部12に何らの情報を与えることなく、検出対象パターンPが文字列Tに含まれているか否かを検出できる。 The second determination unit 34 determines whether or not the detection target pattern P is detected in the character string T based on whether or not the value of the matching result Γ PH [i] is 0. (Sp128). In other words, the second determination unit 34 determines the character string T based on the encrypted array element S Ei [m] of the encrypted state array S Ei corresponding to the last data position m of the encryption detection target pattern P E. It is determined whether or not the detection target pattern P is included therein. Specifically, the second determination unit 34 determines that the detection target pattern P is included in the character string T when the matching result Γ PH [i] is “0”, and otherwise the detection target pattern. It is determined that P is not included in the character string T. For example, in the example of FIG. 5, the second determination unit 34 detects Si [5] = 0 (active) at i = 7, and the seventh character of the character string T is the matching inspection target pattern P. It is determined that it is the end. As a result, the verification result determination process ends. In addition, the 1st information processing part 12 which has the 1st determination part 24 does not obtain any result. In other words, the second information processing unit 14 can detect whether or not the detection target pattern P is included in the character string T without giving any information to the first information processing unit 12.

図7は、ステップSp110及びSs210の照合結果の判定処理のフローチャートである。照合結果の判定処理のフローチャートに先立って、第1情報処理部12に第2公開鍵pkPHが入力され、第2情報処理部14には第2秘密鍵skPHが入力されている。尚、図7に示す照合結果の判定処理は、第1情報処理部12の第1判定部24が照合結果を判定する場合である。図7の処理において、点線で囲まれたステップが図6と異なる。図6と同じ処理には、同じステップ番号を付与して説明を省略する。 FIG. 7 is a flowchart of the collation result determination process in steps Sp110 and Ss210. Prior to the verification result determination processing flowchart, the second public key pk PH is input to the first information processing unit 12, and the second secret key sk PH is input to the second information processing unit 14. The collation result determination process shown in FIG. 7 is a case where the first determination unit 24 of the first information processing unit 12 determines the collation result. In the process of FIG. 7, the steps surrounded by a dotted line are different from those in FIG. The same processing as that in FIG. 6 is assigned the same step number and description thereof is omitted.

本実施形態においては、第2判定部34は、検出対象パターンPの末尾のデータ位置mに対応する状態配列Sの配列要素S[m]に基づいて、文字列T中に検出対象パターンPが含まれたか否かを判定する。 In the present embodiment, the second determination unit 34 detects the detection target pattern in the character string T based on the array element S i [m] of the state array S i corresponding to the last data position m of the detection target pattern P. It is determined whether or not P is included.

第1情報処理部12の第1判定部24は、検出対象パターンP]の末尾のデータ位置mに対応する暗号化状態配列SEiの配列要素SEi[m]を第1乱数V[i]によりべき乗した値に基づく検査用データZ[i]を第2情報処理部14へと送信する。 The first determination unit 24 of the first information processing unit 12 uses the array element S Ei [m] of the encryption state array S Ei corresponding to the data position m at the end of the detection target pattern P] as the first random number V [i]. The test data Z E [i] based on the value raised to the power of is transmitted to the second information processing unit 14.

例えば、第1判定部24は、検出対象パターンPの末尾のデータ位置mに対応する暗号化状態配列SEiの配列要素SEi[m]を第1乱数V[i]によりべき乗した値と第3乱数W[i]を第2公開鍵pkPHにより暗号化した値とを加法準同型性暗号における加法により加えた検査用データZ[i]と、第3乱数W[i]を第1公開鍵pkSHにより暗号化した乱数交換データRDとを第2情報処理部14へと送信してもよい。 For example, the first determination unit 24 calculates a value obtained by raising the array element S Ei [m] of the encryption state array S Ei corresponding to the data position m at the end of the detection target pattern P to the power of the first random number V [i]. The test data Z [i] obtained by adding the value obtained by encrypting the three random numbers W [i] with the second public key pk PH to the additive homomorphic encryption and the third random number W [i] are first disclosed. The random number exchange data RD encrypted with the key pk SH may be transmitted to the second information processing unit 14.

第1判定部24は、後述する第2情報処理部14から返信された検査用応答データZ' [i]を復号化したデータの値が0か否かに基づいて文字列Tに検出対象パターンPを検出したか否かを判定する。 The first determination unit 24 detects a character string T based on whether or not the value of data obtained by decoding the inspection response data Z ′ E [i] returned from the second information processing unit 14 described later is 0. It is determined whether or not the pattern P is detected.

第2情報処理部14の第2判定部34は、検査用データZ[i]を第2情報処理部14の秘密鍵である第2秘密鍵skPHにより復号化したデータに基づく値を第1情報処理部12の公開鍵である第1公開鍵pkSHにより暗号化したデータを第2乱数W' [i]によりべき乗した値を求め、検査用応答データZ'[i]として第1情報処理部12へと返信する。例えば、第1判定部24は、検査用データZ[i]を第2秘密鍵skPHにより復号化し第1公開鍵pkSHにより暗号化した値に乱数交換データRDを加えたデータを第2乱数W' [i]によりべき乗して検査用応答データZ'[i]として返信する。 The second determination unit 34 of the second information processing unit 14 sets a value based on data obtained by decrypting the inspection data Z E [i] with the second secret key sk PH that is the secret key of the second information processing unit 14. 1 Obtain a value obtained by raising the data encrypted by the first public key pk SH, which is the public key of the information processing unit 12, to the power of the second random number W ′ [i], and obtain the first as response data for inspection Z ′ E [i]. A reply is sent to the information processing unit 12. For example, the first determination unit 24 decrypts the inspection data Z [i] with the second secret key sk PH and encrypts the data with the first public key pk SH and adds the random number exchange data RD to the second random number. The test response data Z ′ E [i] is returned as a power by W ′ [i].

図7に示すように、第1情報処理部12では、第1判定部24が、秘密鍵skSH、及び、公開鍵pkSHを生成する(Ss240)。次に、第1判定部24は、式(9)によって、第3乱数W[i]を暗号化した第3乱数W[i]を算出する(Ss242)。

Figure 2015079228
As shown in FIG. 7, in the first information processing unit 12, the first determination unit 24 generates a secret key sk SH and a public key pk SH (Ss240). Next, the first determination unit 24 calculates a third random number W E [i] obtained by encrypting the third random number W [i] using Equation (9) (Ss242).
Figure 2015079228

第1判定部24は、第1公開鍵pkSH、及び、第3乱数W[i]を第2情報処理部14へ送信する(Ss244)。 The first determination unit 24 transmits the first public key pk SH and the third random number W E [i] to the second information processing unit 14 (Ss244).

第2情報処理部14では、第2判定部34が、第1公開鍵pkSH、及び、第3乱数W[i]を受信する(Sp130)。第2判定部34は、新たに第2乱数W'[i]を生成する(Sp132)。第2判定部34は、式(10)によって、照合結果を秘密にしつつシェアするために暗号化検査用データZ[i]をランダム化した検査用応答データZ' [i]を算出する(Sp134)。

Figure 2015079228
In the second information processing unit 14, the second determination unit 34 receives the first public key pk SH and the third random number W E [i] (Sp130). The second determination unit 34 newly generates a second random number W ′ E [i] (Sp132). The second determination unit 34 calculates the inspection response data Z ′ E [i] obtained by randomizing the encrypted inspection data Z E [i] in order to keep the collation result secret while using the formula (10). (Sp134).
Figure 2015079228

第2判定部34は、第2乱数W'[i]及び検査用応答データZ' [i]を第1情報処理部12へと送信する(Sp136)。 The second determination unit 34 transmits the second random number W ′ E [i] and the inspection response data Z ′ E [i] to the first information processing unit 12 (Sp136).

第1判定部24は、第2判定部34が送信した第2乱数W'[i]及び検査用応答データZ' [i]を受信する(Ss246)。次に、第1判定部24は、式(11)によって、照合結果ΓSH[i]を算出する(Ss248)。

Figure 2015079228
The first determination unit 24 receives the second random number W ′ E [i] and the inspection response data Z ′ E [i] transmitted by the second determination unit 34 (Ss246). Next, the first determination unit 24 calculates the collation result Γ SH [i] using Equation (11) (Ss248).
Figure 2015079228

第1判定部24は、照合結果ΓSH[i]の結果で、パターンPが文字列Tに含まれているか否かを判定する。具体的には、第1判定部24は、照合結果ΓSH[i]が"0"の場合、検出対象パターンPが文字列Tに含まれていると判定して、それ以外は検出対象パターンPが文字列Tに含まれていないと判定する。これにより、照合結果の判定処理が終了する。尚、第2判定部34を有する第2情報処理部14は、何らの結果も得ることはない。換言すれば、第1情報処理部12は、第2情報処理部14に何らの情報を与えることなく、検出対象パターンPが文字列Tに含まれているか否かを検出できる。 The first determination unit 24 determines whether or not the pattern P is included in the character string T based on the result of the matching result Γ SH [i]. Specifically, the first determination unit 24 determines that the detection target pattern P is included in the character string T when the collation result Γ SH [i] is “0”, and otherwise the detection target pattern. It is determined that P is not included in the character string T. As a result, the verification result determination process ends. In addition, the 2nd information processing part 14 which has the 2nd determination part 34 does not obtain any result. In other words, the first information processing unit 12 can detect whether or not the detection target pattern P is included in the character string T without giving any information to the second information processing unit 14.

次に、上述した実施形態の状態配列の更新処理を変更した形態について説明する。図8は、状態配列の更新処理を変更した検出装置10の全体構成図である。図9は、セルフループの出力を説明する図である。本実施形態は、セルフループの遷移処理を含む場合に有効である。   Next, the form which changed the update process of the state arrangement | sequence of embodiment mentioned above is demonstrated. FIG. 8 is an overall configuration diagram of the detection apparatus 10 in which the state array update process is changed. FIG. 9 is a diagram for explaining self-loop output. This embodiment is effective when including a self-loop transition process.

図8に示す検査配列記憶部20は、検出対象パターンPの各データ位置に対応して、検出対象パターンPにおける当該データ位置までのパターン部分を検出中である場合に0となる要素を有する状態配列Sを暗号化した暗号化状態配列SEiを記憶する。 The test array storage unit 20 illustrated in FIG. 8 has an element that corresponds to each data position of the detection target pattern P and has an element that becomes 0 when the pattern portion up to the data position in the detection target pattern P is being detected. An encrypted state array S Ei obtained by encrypting the array S i is stored.

予め定められたデータ位置Lにおける値を複数回繰り返すセルフループを許容する検出対象パターンPの場合、例えば、更新部22は、状態配列Si−1の各データ位置jに対応する配列要素Si−1[j]と、状態配列Si−1の次のデータ位置jに対応する配列要素S[j]と、次の文字列Tに対応するデータ対応パターンMTiにおける次のデータ位置j+1に対応するパターン要素MTi[j]とに基づいて、状態配列Sの次のデータ位置j+1に対応する配列要素S[j+1]を算出する。尚、セルフループとは、現在の状態への遷移である。セルフループによって、パターンから生成される非決定性有限オートマトンでは無現ギャップが実現される。 In the case of a detection target pattern P that allows a self-loop that repeats a value at a predetermined data position L a plurality of times, for example, the update unit 22 includes an array element S i corresponding to each data position j of the state array S i−1. −1 [j], the array element S i [j] corresponding to the next data position j of the state array S i−1 , and the next data position j + 1 in the data corresponding pattern M Ti corresponding to the next character string T The array element S i [j + 1] corresponding to the next data position j + 1 of the state array S i is calculated based on the pattern element M Ti [j] corresponding to. The self loop is a transition to the current state. The self-loop realizes an infinite gap in a nondeterministic finite automaton generated from a pattern.

セルフループによる遷移は、状態配列Sを図9に示す関係に基づいて、更新する。尚、図9の出力は、上述の式(5)により文字の遷移を実行した後、次の式(12)の処理によって得られる。尚、式(12)は、ループのある状態については、文字の遷移以前の状態との積をとることでセルフループ遷移を実現して、ループのない状態に関しては何も実行しない。

Figure 2015079228
In the transition by the self-loop, the state array S i is updated based on the relationship shown in FIG. The output of FIG. 9 is obtained by the processing of the following equation (12) after the character transition is executed by the above equation (5). In equation (12), the self-loop transition is realized by taking the product of the state with the loop and the state before the character transition, and nothing is executed for the state without the loop.
Figure 2015079228

更新部22は、式(5)及び文字列Tの次に入力される文字に対応する暗号化データ対応パターンMEi−1及び暗号化状態配列SEi−1に基づいて、パターン部分の一致を各データ位置j−1から次のデータ位置jへと伝搬させるための暗号化伝搬配列SEiを生成して、暗号化伝搬配列SEiに基づく第1配列S'Eiの要素S'Ei[j]および暗号化状態配列SEi−1に基づく第2配列S' Ei−1の要素S' Ei−1[j]を第2情報処理部14に送信する。 The updating unit 22 performs pattern pattern matching based on the encrypted data corresponding pattern M Ei-1 and the encrypted state array S Ei-1 corresponding to the character input next to the formula (5) and the character string T. from each data position j-1 to generate an encrypted transmission sequence S Ei for propagating to the next data position j, 'the Ei elements S' first sequence S based on the encryption propagation sequence S Ei Ei [j ] And the element S ′ Ei−1 [j] of the second array S ′ Ei−1 based on the encryption state array S Ei−1 are transmitted to the second information processing unit 14.

第2情報処理部14は、更新補助部36を更に備える。更新補助部36は、第1配列S' Eiおよび第2配列S' Ei−1に基づいて、予め定められたセルフループのデータ位置L以外のデータ位置においては暗号化伝搬配列SEiの対応する要素SEi[j]を更新部22に取得させ、予め定められたデータ位置Lにおいては暗号化状態配列SEi−1および暗号化伝搬配列SEiの対応する要素SEi[j]の積を更新部22に取得させるための返信用配列S Eiを生成して第1情報処理部12へと返信する。 The second information processing unit 14 further includes an update assisting unit 36. Based on the first array S ′ Ei and the second array S ′ Ei−1 , the update assisting unit 36 corresponds to the encrypted propagation array S Ei at a data position other than the predetermined self-loop data position L. The element S Ei [j] is acquired by the update unit 22, and at a predetermined data position L, the product of the element S Ei [j] corresponding to the encrypted state array S Ei-1 and the encrypted propagation array S Ei is calculated. A reply array S * Ei to be acquired by the update unit 22 is generated and returned to the first information processing unit 12.

更新部22は、返信用配列S Eiに基づいて状態配列SEiを更新する。 The update unit 22 updates the state array S Ei based on the reply array S * Ei .

第1情報処理部の更新部22は、暗号化伝搬配列SEiの各データおよび第4乱数R[j]を第2公開鍵pkPHにより暗号化した値同士を加法準同型性暗号の加法により加えた各要素S' Ei[j]を有する第1配列S' Eiと、暗号化状態配列SEiの各データおよび第5乱数Q[j]を第2公開鍵pkPHにより暗号化した値同士を加法準同型性暗号の加法により加えた各要素S' Ei−1[j]を有する第2配列S' Ei−1と、暗号化状態配列SEiの各データを第4乱数R[j]によりべき乗した値と、第4乱数R[j]および第5乱数Q[j]の積を第2公開鍵pkPHにより暗号化した値と、暗号化伝搬配列SEiを第5乱数Q[j]および第6乱数K[j]の積によりべき乗した値と、第7乱数U[j]を第2公開鍵pkPHにより暗号化した値とを、加法準同型性暗号の加法により加えた各要素を有する第3配列ΔEiとを第2情報処理部14に送信する。 The updating unit 22 of the first information processing unit adds the values obtained by encrypting each data of the encrypted propagation array S Ei and the fourth random number R i [j] with the second public key pk PH, and adding the homomorphic encryption The first array S ′ Ei having each element S ′ Ei [j] added by the above and each data of the encrypted state array S Ei and the fifth random number Q i [j] are encrypted by the second public key pk PH . The second array S ′ Ei−1 having each element S ′ Ei−1 [j] obtained by adding values to each other by the addition of additive homomorphic encryption, and each data of the encrypted state array S Ei are used as the fourth random number R i. [J] is a value obtained by encrypting the product of the fourth random number R i [j] and the fifth random number Q i [j] with the second public key pk PH, and the encrypted propagation array S Ei A value raised to the power of the product of the 5 random numbers Q i [j] and the sixth random number K i [j], and the seventh random number A value obtained by encrypting the number U i [j] with the second public key pk PH and the third array ΔEi having elements added by addition of the additive homomorphic encryption are transmitted to the second information processing unit 14. To do.

第2情報処理部の更新補助部36は、予め定められたデータ位置Lにおいては、第1配列S' Eiの要素S' Ei[j]を復号化した値および第2配列S' Ei−1の要素S' Ei−1[j]を復号化した値の積を第2公開鍵pkPHにより暗号化した値を要素とし、予め定められたデータ位置L以外のデータ位置においては第3配列ΔEiの要素ΔEi[j]を第2公開鍵pkPHにより暗号化し直した値を要素とする返信用配列S Eiと、予め定められたデータ位置Lにおいては第2公開鍵pkPHにより0を暗号化した値の要素を暗号化零EEi[j]とし、予め定められたデータ位置L以外においては第2公開鍵pkPHにより1を暗号化した値を要素EEi[j]とする第4配列EEiとを第1情報処理部12に返信する。 Updating the auxiliary unit of the second information processing unit 36, in the data position L to a predetermined, 'element Ei S' first sequence S Ei value decoding the [j] and the second sequence S 'Ei-1 The element obtained by encrypting the product of the values obtained by decrypting the element S ′ Ei−1 [j] with the second public key pk PH is used as the element, and the third array Δ at the data position other than the predetermined data position L and reply sequence S * Ei to a value re encryption elements by Ei elements delta Ei [j] a second public key pk PH, in the predetermined data position L by the second public key pk PH 0 The element of the encrypted value of E is encrypted zero E Ei [j], and the value obtained by encrypting 1 with the second public key pk PH except the predetermined data position L is defined as element E Ei [j]. The fourth array E Ei is returned to the first information processing unit 12. .

更新部22は、返信用配列S Eiの各要素S Ei[j]と、暗号化状態配列SEiを第4乱数R[j]のマイナス値によりべき乗した値と、第4乱数R[j]および第5乱数Q[j]を第2公開鍵pkPHにより暗号化した値の逆元と、暗号化伝搬配列SEiを第5乱数Q[j]のマイナス値によりべき乗した値と、第4配列EEiを第7乱数U[j]のマイナス値によりべき乗した値とを、加法準同型性暗号の加法により加えた各要素により状態配列Sを更新する。 The updating unit 22 uses each element S * Ei [j] of the reply array S * Ei, a value obtained by raising the encryption state array S Ei to the power of the negative value of the fourth random number R i [j], and the fourth random number R The inverse element of the value obtained by encrypting i [j] and the fifth random number Q i [j] with the second public key pk PH, and the encrypted propagation array S Ei to the power by the negative value of the fifth random number Q i [j] The state array S i is updated with each element obtained by adding the obtained value and the value obtained by raising the fourth array E Ei to the power of the minus value of the seventh random number U i [j] by the additive homomorphic encryption.

図10は、変更した状態配列の更新処理のフローチャートである。状態配列の更新処理の当該フローチャートでは、第1情報処理部12に文字列T、暗号化データ対応パターンMETi、暗号化状態配列Si−1、及び、第2公開鍵pkPHが入力されている。第2情報処理部14には、セルフループのデータ位置L、第2秘密鍵skPH、第2公開鍵pkPHが入力されている。本フローチャートは、無限長ギャップを含むパターンへの拡張を行った拡張配列Shift−OR法である。尚、図10に示す処理は、図4に示す処理の後に継続して実行される。また、Lはセルフループを行う予め定められた処理の番号であって、L⊂{1、・・・・、m}である。 FIG. 10 is a flowchart of the update process of the changed state array. In the flowchart of the state array update process, a character string T, an encrypted data correspondence pattern M ETi , an encrypted state array S i-1 , and a second public key pk PH are input to the first information processing unit 12. Yes. The second information processing unit 14 receives the data position L of the self-loop, the second secret key sk PH , and the second public key pk PH . This flowchart is an extended array Shift-OR method in which an extension to a pattern including an infinite length gap is performed. The process shown in FIG. 10 is continuously executed after the process shown in FIG. L is a predetermined process number for performing the self-loop and is L⊂ {1,..., M}.

図4に示すステップSs220からSs222が実行される。次に、更新部22は、乱数K[j]、R[j]、Q[j]、U[j]を生成する(Ss260)。尚、更新部22は、一例として、1からNまでの整数から乱数K[j]、R[j]、Q[j]、U[j]を抽出する。更新部22は、式(13)及び生成した乱数から、第1配列S'Eiの要素S'Ei[j]、第2配列S'Ei−1の要素S'Ei−1[j]、及び、第3配列ΔEiの要素ΔEi[j]を算出する(Ss262)。

Figure 2015079228
Steps Ss220 to Ss222 shown in FIG. 4 are executed. Next, the update unit 22 generates random numbers K i [j], R [j], Q i [j], and U i [j] (Ss260). For example, the updating unit 22 extracts random numbers K i [j], R [j], Q i [j], and U i [j] from integers from 1 to N. The updating unit 22 calculates the element S ′ Ei [j] of the first array S ′ Ei , the element S ′ Ei−1 [j] of the second array S ′ Ei−1 from the equation (13) and the generated random number, and Then, the element Δ Ei [j] of the third array Δ Ei is calculated (Ss262).
Figure 2015079228

更新部22は、算出した第1配列S'Ei、第2配列S'Ei−1、及び、第3配列ΔEiを第2情報処理部14へと送信する(Ss264)。更新部22は、ステップSs260からS264をm回繰り返す。 Updater 22, the first sequence S 'Ei, second sequence S' calculated Ei-1, and transmits a third sequence delta Ei to the second information processing unit 14 (Ss264). The updating unit 22 repeats steps Ss260 to S264 m times.

第2情報処理部14では、更新補助部36が、第1情報処理部12から送信された第1配列S'Ei、第2配列S'Ei、及び、第3配列ΔEiを受信する(Sp140)。 In the second information processing unit 14, the update assisting unit 36 receives the first array S ′ Ei , the second array S ′ Ei , and the third array Δ Ei transmitted from the first information processing unit 12 (Sp140). ).

次に、更新補助部36は、今回の処理対象のデータ位置jがセルフループのデータ位置Lに含まれるか否かを判断する(Sp144)。更新補助部36は、データ位置jがデータ位置Lに含まれると判断すると(Sp144:Yes)、式(14)によって、返信用配列S Eiの各要素S Ei[j]を算出するとともに、式(15)によって、暗号化零EEi[j]を算出する(Sp146)。

Figure 2015079228
Figure 2015079228
Next, the update assistant unit 36 determines whether or not the data position j to be processed this time is included in the data position L of the self-loop (Sp144). When determining that the data position j is included in the data position L (Sp144: Yes), the update assisting unit 36 calculates each element S * Ei [j] of the reply array S * Ei according to the equation (14). Then, the encryption zero E Ei [j] is calculated by the equation (15) (Sp146).
Figure 2015079228
Figure 2015079228

一方、更新補助部36は、データ位置jがデータ位置Lに含まれないと判断すると(Sp144:No)、式(16)によって、返信用配列S Eiの各要素S Ei[j]を算出するとともに、式(17)によって、暗号化零EEi[j]を算出する(Sp148)。ここで、本実施形態では、第7乱数Uを用いることによって、S[j]=0の場合であっても、式(16)の関係においても、式(18)に示すように第7乱数U[j]が残るので、S[j]=0であることが第2情報処理部14にはわからない。

Figure 2015079228
Figure 2015079228
Figure 2015079228
On the other hand, when the update assisting unit 36 determines that the data position j is not included in the data position L (Sp144: No), each element S * Ei [j] of the reply array S * Ei is determined by Expression (16). At the same time, encryption zero E Ei [j] is calculated according to equation (17) (Sp148). Here, in the present embodiment, by using the seventh random number U, even if S i [j] = 0, the relationship between Expression (16) and the seventh expression is as shown in Expression (18). Since the random number U i [j] remains, the second information processing unit 14 does not know that S i [j] = 0.
Figure 2015079228
Figure 2015079228
Figure 2015079228

更新補助部36は、算出した返信用配列S Eiの各要素S Ei[j]、及び、暗号化零EEi[j]を第1情報処理部12へ送信する(Sp150)。更新補助部36は、ステップSp144からSp150をm回繰り返す。 The update assisting unit 36 transmits each element S * Ei [j] of the calculated reply array S * Ei and the encrypted zero E Ei [j] to the first information processing unit 12 (Sp150). The update assistant unit 36 repeats steps Sp144 to Sp150 m times.

更新部22は、第2情報処理部14から送信された返信用配列S Ei[j]、及び、暗号化零EEi[j]を受信する(Ss266)。更新部22は、式(18)によって、状態配列SEiの各要素SEi[j]を算出して更新する(Ss268)。

Figure 2015079228
The update unit 22 receives the reply array S * Ei [j] and the encrypted zero E Ei [j] transmitted from the second information processing unit 14 (Ss266). The updating unit 22 calculates and updates each element S Ei [j] of the state array S Ei according to Expression (18) (Ss268).
Figure 2015079228

図11は、上述した実施形態の効果を説明する表である。表中のSPM1の列は、図4に示す実施形態の性能を示す。表中のSPM2の列は、図10に示す実施形態の性能を示す。   FIG. 11 is a table for explaining the effects of the above-described embodiment. The column of SPM1 in the table shows the performance of the embodiment shown in FIG. The column of SPM2 in the table shows the performance of the embodiment shown in FIG.

上述の非特許文献は、事前処理では文字列の文字数nに依存するとともに、更新処理では文字列が含みうる文字種(いわゆるアルファベット等)の数Σに依存する。これにより、各非特許文献は、それぞれの処理における計算量が増加する。一方、図11に示すように、本実施形態は、事前処理では文字列の文字数nに依存せず、更新処理では文字列が含みうる文字種の数Σに依存しないので、それぞれの処理における計算量を低減できる。特に、本実施形態は、文字数n及び文字種の数Σが大きくなる日本語テキスト及び購買ログ等において、より計算量の増加を各非特許文献に比べて、抑制することができる。   The above-mentioned non-patent literature depends on the number n of characters in the character string in the pre-processing, and depends on the number Σ of character types (so-called alphabets) that can be included in the character string in the update processing. Thereby, each nonpatent literature increases the amount of calculation in each processing. On the other hand, as shown in FIG. 11, the present embodiment does not depend on the number n of characters in the character string in the pre-processing, and does not depend on the number Σ of character types that can be included in the character string in the update processing. Can be reduced. In particular, according to the present embodiment, an increase in the amount of calculation can be further suppressed as compared with each non-patent document in Japanese text and purchase logs in which the number of characters n and the number of character types Σ are large.

次に、上述した実施形態を具体的に適用する例を示す。   Next, an example in which the above-described embodiment is specifically applied will be described.

例えば、上述した実施形態は、購買履歴の検出に適用してもよい。この場合、検出装置10は、入力データ列として商品の広告履歴データおよび商品の購買履歴データの少なくとも一方を含む履歴データ列が入力される。検出装置10は、出力部を更に備えることが好ましい。出力部は、履歴データ列中に検出対象パターンPが検出されたことに応じて、広告を発行すべきことを示すトリガ情報を出力する。   For example, the above-described embodiment may be applied to purchase history detection. In this case, the detection device 10 is input with a history data string including at least one of the advertisement history data of the product and the purchase history data of the product as the input data string. The detection device 10 preferably further includes an output unit. The output unit outputs trigger information indicating that an advertisement should be issued in response to detection of the detection target pattern P in the history data string.

また、例えば、上述した実施形態は、遺伝子配列の検出に適用してもよい。この場合、検出装置10は、入力データ列として遺伝子配列が入力される。検出装置10は、出力部を更に備えることが好ましい。出力部は、遺伝子配列中に検出対象パターンが検出されたか否かを出力する。   Further, for example, the above-described embodiment may be applied to detection of a gene sequence. In this case, the detection apparatus 10 receives a gene sequence as an input data string. The detection device 10 preferably further includes an output unit. The output unit outputs whether or not the detection target pattern is detected in the gene sequence.

上述したように、検出装置10は、非決定性有限オートマトンを直接評価することにより、非決定性有限オートマトンを決定性有限オートマトンに変換した場合に、文字列Tの文字数及び検出対象パターンの文字数の増加に伴う状態数の増加を低減して、通信量及び計算量を低減できる。更に、検出装置10は、文字列T及び検査対象パターンPを、加法準同型性を満たす暗号により暗号化することによって、文字列T及び検査対象パターンPを相手に知られることなく、上述の効果を実現できる。   As described above, when the non-deterministic finite automaton is directly converted into the deterministic finite automaton by directly evaluating the non-deterministic finite automaton, the detection apparatus 10 accompanies an increase in the number of characters in the character string T and the number of characters in the detection target pattern. The increase in the number of states can be reduced to reduce the amount of communication and the amount of calculation. Furthermore, the detection device 10 encrypts the character string T and the inspection target pattern P with a cipher that satisfies the additive homomorphism, so that the above-described effects can be obtained without the character string T and the inspection target pattern P being known to the other party. Can be realized.

上述した実施形態は、一例であって、各実施形態における構成、値、データの種類等は適宜変更してよい。また、各実施形態を適切に組み合わせてもよい。   The above-described embodiment is an example, and the configuration, value, data type, and the like in each embodiment may be changed as appropriate. Moreover, you may combine each embodiment appropriately.

例えば、検出対象パターンPのh番目の要素P[h]が複数の文字を含む集合である文字種Aである場合、各文字σ∈Σに対して、マスク配列Mσ[h]を式(19)によって生成してもよい。

Figure 2015079228
For example, when the h-th element P [h] of the detection target pattern P is a character type A that is a set including a plurality of characters, the mask array Mσ [h] is expressed by Expression (19) for each character σ∈Σ. May be generated.
Figure 2015079228

上述の実施形態では、入力データ列を文字列としたが、入力データ列は文字列以外のデータ列であってもよい。   In the above embodiment, the input data string is a character string, but the input data string may be a data string other than the character string.

以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。   As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above-described embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.

特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。   The order of execution of each process such as operations, procedures, steps, and stages in the apparatus, system, program, and method shown in the claims, the description, and the drawings is particularly “before” or “prior to”. It should be noted that the output can be realized in any order unless the output of the previous process is used in the subsequent process. Regarding the operation flow in the claims, the description, and the drawings, even if it is described using “first”, “next”, etc. for convenience, it means that it is essential to carry out in this order. It is not a thing.

図12は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、第1情報処理部12及び第2情報処理部14の一例である。コンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示部2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、及び、ハードディスクドライブ2040を有する入出力部と、入出力コントローラ2084に接続されるROM2010、メモリドライブ2050及び入出力チップ2070を有するレガシー入出力部とを備える。   FIG. 12 shows an example of a hardware configuration of a computer 1900 according to this embodiment. A computer 1900 according to the present embodiment is an example of the first information processing unit 12 and the second information processing unit 14. The computer 1900 includes a CPU peripheral unit having a CPU 2000, a RAM 2020, a graphic controller 2075, and a display unit 2080 that are connected to each other by a host controller 2082, and a communication interface 2030 that is connected to the host controller 2082 by an input / output controller 2084. And an input / output unit having a hard disk drive 2040 and a legacy input / output unit having a ROM 2010, a memory drive 2050 and an input / output chip 2070 connected to the input / output controller 2084.

ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示部2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。   The host controller 2082 connects the RAM 2020 to the CPU 2000 and the graphic controller 2075 that access the RAM 2020 at a high transfer rate. The CPU 2000 operates based on programs stored in the ROM 2010 and the RAM 2020 and controls each unit. The graphic controller 2075 acquires image data generated by the CPU 2000 or the like on a frame buffer provided in the RAM 2020 and displays it on the display unit 2080. Instead of this, the graphic controller 2075 may include a frame buffer for storing image data generated by the CPU 2000 or the like.

入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用する表示プログラム等のプログラム及びデータを格納する。   The input / output controller 2084 connects the host controller 2082 to the communication interface 2030 and the hard disk drive 2040 that are relatively high-speed input / output devices. The communication interface 2030 communicates with other devices via a network. The hard disk drive 2040 stores programs and data such as a display program used by the CPU 2000 in the computer 1900.

また、入出力コントローラ2084には、ROM2010と、メモリドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。メモリドライブ2050は、メモリカード2090から例えば表示プログラム等のプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、メモリドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。   The input / output controller 2084 is connected to the ROM 2010, the memory drive 2050, and the relatively low-speed input / output device of the input / output chip 2070. The ROM 2010 stores a boot program that the computer 1900 executes at startup and / or a program that depends on the hardware of the computer 1900. The memory drive 2050 reads a program or data such as a display program from the memory card 2090 and provides it to the hard disk drive 2040 via the RAM 2020. The input / output chip 2070 connects the memory drive 2050 to the input / output controller 2084, and also connects various input / output devices to the input / output controller 2084 via, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like. Connect to.

RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、メモリカード2090、又はICカード等の記録媒体に格納されて利用者によって提供される。表示プログラム等のプログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。   A program provided to the hard disk drive 2040 via the RAM 2020 is stored in a recording medium such as a memory card 2090 or an IC card and provided by a user. A program such as a display program is read from a recording medium, installed in the hard disk drive 2040 in the computer 1900 via the RAM 2020, and executed by the CPU 2000.

コンピュータ1900にインストールされ、コンピュータ1900を検出装置10として機能させるプログラムは、検査配列記憶モジュール、データ対応パターン生成モジュール、更新モジュール、及び、判定モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、検査配列記憶モジュール、データ対応パターン生成モジュール、更新モジュール、及び、判定モジュールとしてそれぞれ機能させる。   A program that is installed in the computer 1900 and causes the computer 1900 to function as the detection apparatus 10 includes a test array storage module, a data correspondence pattern generation module, an update module, and a determination module. These programs or modules work with the CPU 2000 or the like to cause the computer 1900 to function as a test array storage module, a data correspondence pattern generation module, an update module, and a determination module, respectively.

これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である検査配列記憶モジュール、データ対応パターン生成モジュール、更新モジュール、及び、判定モジュールとして機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検出装置10が構築される。   The information processing described in these programs is read into the computer 1900, whereby a test arrangement storage module, a data correspondence pattern generation module, which is a specific means in which the software and the various hardware resources described above cooperate, It functions as an update module and a determination module. And the specific detection apparatus 10 according to the intended use is constructed | assembled by implement | achieving the calculation or processing of the information according to the intended use of the computer 1900 in this embodiment by these specific means.

一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、又はメモリカード2090等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。   As an example, when communication is performed between the computer 1900 and an external device or the like, the CPU 2000 executes a communication program loaded on the RAM 2020 and executes a communication interface based on the processing content described in the communication program. A communication process is instructed to 2030. Under the control of the CPU 2000, the communication interface 2030 reads transmission data stored in a transmission buffer area or the like provided on a storage device such as the RAM 2020, the hard disk drive 2040, or the memory card 2090, and transmits it to the network. The reception data received from the network is written into a reception buffer area or the like provided on the storage device. As described above, the communication interface 2030 may transfer transmission / reception data to / from the storage device by a DMA (direct memory access) method. Instead, the CPU 2000 transfers the storage device or the communication interface 2030 as a transfer source. The transmission / reception data may be transferred by reading the data from the data and writing the data to the communication interface 2030 or the storage device of the transfer destination.

また、CPU2000は、ハードディスクドライブ2040、メモリドライブ2050(メモリカード2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。   Further, the CPU 2000 causes the RAM 2020 to read all or necessary portions from the files or databases stored in the external storage device such as the hard disk drive 2040 and the memory drive 2050 (memory card 2090) into the RAM 2020 by DMA transfer or the like. Various processes are performed on the data on the RAM 2020. Then, CPU 2000 writes the processed data back to the external storage device by DMA transfer or the like. In such processing, since the RAM 2020 can be regarded as temporarily holding the contents of the external storage device, in the present embodiment, the RAM 2020 and the external storage device are collectively referred to as a memory, a storage unit, or a storage device. Various types of information such as various programs, data, tables, and databases in the present embodiment are stored on such a storage device and are subjected to information processing. Note that the CPU 2000 can also store a part of the RAM 2020 in the cache memory and perform reading and writing on the cache memory. Even in such a form, the cache memory bears a part of the function of the RAM 2020. Therefore, in the present embodiment, the cache memory is also included in the RAM 2020, the memory, and / or the storage device unless otherwise indicated. To do.

また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。   In addition, the CPU 2000 performs various operations, such as various operations, information processing, condition determination, information search / replacement, etc., described in the present embodiment, specified for the data read from the RAM 2020 by the instruction sequence of the program. Is written back to the RAM 2020. For example, when performing the condition determination, the CPU 2000 determines whether the various variables shown in the present embodiment satisfy the conditions such as large, small, above, below, equal, etc., compared to other variables or constants. When the condition is satisfied (or not satisfied), the program branches to a different instruction sequence or calls a subroutine. Further, the CPU 2000 can search for information stored in a file or database in the storage device.

以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード2090の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。   The program or module shown above may be stored in an external recording medium. As the recording medium, in addition to the memory card 2090, an optical recording medium such as DVD or CD, a magneto-optical recording medium such as MO, a tape medium, a semiconductor memory such as an IC card, or the like can be used. Further, a storage device such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the computer 1900 via the network.

10 検出装置
12 第1情報処理部
14 第2情報処理部
20 検査配列記憶部
22 更新部
24 第1判定部
32 データ対応パターン生成部
34 第2判定部
36 更新補助部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 メモリドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示部
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 メモリカード
DESCRIPTION OF SYMBOLS 10 Detection apparatus 12 1st information processing part 14 2nd information processing part 20 Test arrangement | sequence memory | storage part 22 Update part 24 1st determination part 32 Data corresponding | compatible pattern generation part 34 2nd determination part 36 Update assistance part 1900 Computer 2000 CPU
2010 ROM
2020 RAM
2030 Communication interface 2040 Hard disk drive 2050 Memory drive 2070 Input / output chip 2075 Graphic controller 2080 Display unit 2082 Host controller 2084 Input / output controller 2090 Memory card

Claims (19)

入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出装置であって、
前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶部と、
データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成部と、
次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新部と、
前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定部と、
を備える検出装置。
A detection device for detecting whether or not a predetermined detection target pattern is included in an input data string,
Corresponding to each data position of the detection target pattern, a test sequence storage unit that stores a test sequence indicating whether or not a pattern portion up to the data position in the detection target pattern is being detected in the input data sequence;
A data-corresponding pattern generation unit that generates a data-corresponding pattern indicating whether or not each data position of the detection target pattern is data of the kind for each data type;
An update unit that updates the inspection array based on the data correspondence pattern corresponding to the next input data;
A determination unit that determines whether or not the detection target pattern is included in the input data sequence based on an element of the inspection array corresponding to a data position at the end of the detection target pattern;
A detection device comprising:
前記更新部は、前記検査配列の各データ位置に対応する要素の値と、次の入力データに対応する前記データ対応パターンにおける次のデータ位置に対応する要素の値とに基づいて、前記検査配列の次のデータ位置に対応する要素の値を算出する請求項1に記載の検出装置。   The update unit, based on the value of the element corresponding to each data position of the inspection array and the value of the element corresponding to the next data position in the data corresponding pattern corresponding to the next input data The detection device according to claim 1, wherein a value of an element corresponding to the next data position is calculated. 前記検査配列記憶部は、前記検出対象パターンの各データ位置に対応して、当該データ位置までのパターン部分を検出中である場合に0となる要素を有する前記検査配列を記憶し、
前記データ対応パターン生成部は、データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータである場合に0となる要素を有する前記データ対応パターンを生成し、
前記更新部は、前記検査配列の各データ位置に対応する要素の値、および、次の入力データに対応するデータ対応パターンにおける次のデータ位置に対応する要素の値が共に0であることに応じて、前記検査配列の次のデータ位置に対応する要素を0とする請求項2に記載の検出装置。
The inspection array storage unit stores the inspection array having an element that is 0 when a pattern portion up to the data position is being detected, corresponding to each data position of the detection target pattern,
The data correspondence pattern generation unit generates, for each type of data, the data correspondence pattern having an element that becomes 0 when each data position of the detection target pattern is data of the type,
The update unit responds to the fact that both the value of the element corresponding to each data position of the inspection array and the value of the element corresponding to the next data position in the data corresponding pattern corresponding to the next input data are 0. The detection apparatus according to claim 2, wherein an element corresponding to a next data position of the inspection array is set to zero.
前記更新部は、前記検査配列の各データ位置に対応する要素の値と、次の入力データに対応するデータ対応パターンにおける次のデータ位置に対応する要素の値とを加算して、前記検査配列の次のデータ位置に対応する要素の値とする請求項3に記載の検出装置。   The update unit adds the value of the element corresponding to each data position of the inspection array and the value of the element corresponding to the next data position in the data corresponding pattern corresponding to the next input data, and The detection device according to claim 3, wherein a value of an element corresponding to the next data position is set. 予め定められたデータ位置における値を複数回繰り返すことを許容する前記検出対象パターンについて、前記更新部は、前記検査配列の各データ位置に対応する要素の値と、前記検査配列の次のデータ位置に対応する要素の値と、次の入力データに対応するデータ対応パターンにおける次のデータ位置に対応する要素の値とに基づいて、前記検査配列の次のデータ位置に対応する要素の値を算出する請求項2から4のいずれか一項に記載の検出装置。   For the detection target pattern that allows a value at a predetermined data position to be repeated a plurality of times, the update unit includes a value of an element corresponding to each data position of the test array, and a next data position of the test array The value of the element corresponding to the next data position of the inspection array is calculated based on the value of the element corresponding to, and the value of the element corresponding to the next data position in the data corresponding pattern corresponding to the next input data The detection device according to any one of claims 2 to 4. 前記検査配列記憶部および前記更新部を有し、前記入力データ列を管理する第1情報処理部と、
前記データ対応パターン生成部を有し、前記検出対象パターンを管理する第2情報処理部と、
を備え、
前記データ対応パターン生成部は、データの種類毎のデータ対応パターンを暗号化した暗号化データ対応パターンを前記第2情報処理部へと送信し、
前記検査配列記憶部は、前記検査配列を暗号化した暗号化検査配列を記憶し、
前記更新部は、次の入力データに対応する前記暗号化データ対応パターンに基づいて、前記暗号化検査配列を更新し、
前記判定部は、暗号化された前記検出対象パターンの末尾のデータ位置に対応する前記暗号化検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する
請求項1から5のいずれか一項に記載の検出装置。
A first information processing unit that includes the test array storage unit and the update unit and manages the input data string;
A second information processing unit having the data corresponding pattern generation unit and managing the detection target pattern;
With
The data correspondence pattern generation unit transmits an encrypted data correspondence pattern obtained by encrypting a data correspondence pattern for each type of data to the second information processing unit,
The test sequence storage unit stores an encrypted test sequence obtained by encrypting the test sequence,
The update unit updates the encryption check array based on the encrypted data correspondence pattern corresponding to the next input data,
The determination unit determines whether or not the detection target pattern is included in the input data string based on an element of the encryption check array corresponding to the last data position of the encrypted detection target pattern The detection device according to any one of claims 1 to 5.
前記データ対応パターン生成部は、前記第2情報処理部の公開鍵である第2公開鍵を用いて加法準同型性暗号により前記データ対応パターンを暗号化し、
前記更新部は、前記第2公開鍵を用いて加法準同型性暗号により前記検査配列を暗号化して、前記暗号化検査配列の各データ位置に対応する要素の値、および、次の入力データに対応する前記暗号化データ対応パターンにおける次のデータ位置に対応する要素の値の、加法準同型性暗号における加法に基づき暗号化された前記検査配列を更新する
請求項6に記載の検出装置。
The data correspondence pattern generation unit encrypts the data correspondence pattern by additive homomorphic encryption using a second public key that is a public key of the second information processing unit,
The update unit encrypts the check array by additive homomorphic encryption using the second public key, and sets the element value corresponding to each data position of the encrypted check array and the next input data. The detection device according to claim 6, wherein the check array encrypted based on the addition in the additive homomorphic encryption of the value of the element corresponding to the next data position in the corresponding encrypted data correspondence pattern is updated.
前記第2情報処理部は、前記判定部を更に有し、
前記第1情報処理部は、前記検出対象パターンの末尾のデータ位置に対応する前記暗号化検査配列の要素を第1乱数によりべき乗した値に基づく検査用データを前記第2情報処理部へと送信し、
前記第2情報処理部の前記判定部は、前記検査用データを前記第2情報処理部の秘密鍵である第2秘密鍵により復号化して前記検査配列の要素を乱数によりべき乗した値を求め、当該値が0か否かに基づいて前記入力データ列中に前記検出対象パターンを検出したか否かを判定する請求項7に記載の検出装置。
The second information processing unit further includes the determination unit,
The first information processing unit transmits inspection data based on a value obtained by raising the element of the encrypted inspection array corresponding to the last data position of the detection target pattern by a first random number to the second information processing unit. And
The determination unit of the second information processing unit obtains a value obtained by decrypting the inspection data with a second secret key that is a secret key of the second information processing unit, and powering the elements of the inspection array with a random number, The detection device according to claim 7, wherein it is determined whether or not the detection target pattern is detected in the input data string based on whether or not the value is 0.
前記第1情報処理部は、前記判定部を更に有し、
前記第1情報処理部は、前記検出対象パターンの末尾のデータ位置に対応する前記暗号化検査配列の要素を第1乱数によりべき乗した値に基づく検査用データを前記第2情報処理部へと送信し、
前記第2情報処理部は、前記検査用データを前記第2情報処理部の秘密鍵である第2秘密鍵により復号化したデータに基づく値を前記第1情報処理部の公開鍵である第1公開鍵により暗号化したデータを第2乱数によりべき乗した値を求め、検査用応答データとして前記第1情報処理部へと返信し、
前記第1情報処理部の判定部は、前記検査用応答データを復号化したデータの値が0か否かに基づいて前記入力データ列に前記検出対象パターンを検出したか否かを判定する
請求項7に記載の検出装置。
The first information processing unit further includes the determination unit,
The first information processing unit transmits inspection data based on a value obtained by raising the element of the encrypted inspection array corresponding to the last data position of the detection target pattern by a first random number to the second information processing unit. And
The second information processing unit uses a value based on data obtained by decrypting the inspection data with a second secret key that is a secret key of the second information processing unit as a public key of the first information processing unit. A value obtained by raising the power encrypted by the second random number to the data encrypted by the public key is returned to the first information processing unit as test response data;
The determination unit of the first information processing unit determines whether or not the detection target pattern is detected in the input data sequence based on whether or not a value of data obtained by decoding the inspection response data is 0. Item 8. The detection device according to Item 7.
前記第1情報処理部は、前記検出対象パターンの末尾のデータ位置に対応する前記暗号化検査配列の要素を前記第1乱数によりべき乗した値と第3乱数を前記第2公開鍵により暗号化した値とを加法準同型性暗号における加法により加えた前記検査用データと、前記第3乱数を前記第1公開鍵により暗号化した乱数交換データとを前記第2情報処理部へと送信し、
前記第2情報処理部は、前記検査用データを前記第2秘密鍵により復号化し前記第1公開鍵により暗号化した値に前記乱数交換データを加えたデータを前記第2乱数によりべき乗して前記検査用応答データとして返信する
請求項9に記載の検出装置。
The first information processing unit encrypts a value obtained by raising a power of the element of the encryption check array corresponding to the last data position of the detection target pattern by the first random number and a third random number using the second public key. Transmitting the test data obtained by adding the value by addition in additive homomorphic encryption and the random number exchange data obtained by encrypting the third random number with the first public key to the second information processing unit,
The second information processing unit powers the data obtained by decrypting the inspection data with the second secret key and adding the random number exchange data to the value encrypted with the first public key, using the second random number. The detection device according to claim 9, which returns a response as inspection response data.
前記検査配列記憶部は、前記検出対象パターンの各データ位置に対応して、前記検出対象パターンにおける当該データ位置までのパターン部分を検出中である場合に0となる要素を有する前記検査配列を暗号化した前記暗号化検査配列を記憶し、
前記検出対象パターンは、予め定められたデータ位置における値を複数回繰り返すことを許容するものであり、
前記更新部は、次の入力データに対応する前記暗号化データ対応パターン及び前記暗号化検査配列に基づいて、パターン部分の一致を各データ位置から次のデータ位置へと伝搬させるための暗号化伝搬配列を生成して、前記暗号化伝搬配列に基づく第1配列および前記暗号化検査配列に基づく第2配列を前記第2情報処理部に送信し、
前記第2情報処理部は、前記第1配列および前記第2配列に基づいて、前記予め定められたデータ位置以外のデータ位置においては前記暗号化伝搬配列の対応する要素を前記更新部に取得させ、前記予め定められたデータ位置においては前記暗号化検査配列および前記暗号化伝搬配列の対応する要素の積を前記更新部に取得させるための返信用配列を生成して前記第1情報処理部へと返信する更新補助部を更に備え、
前記更新部は、前記返信用配列に基づいて前記検査配列を更新する
請求項7から10のいずれか一項に記載の検出装置。
The inspection array storage unit encrypts the inspection array having an element that corresponds to each data position of the detection target pattern and has an element that is 0 when a pattern portion up to the data position in the detection target pattern is being detected. Storing the encrypted verification check sequence,
The detection target pattern allows a value at a predetermined data position to be repeated a plurality of times,
The update unit is configured to transmit an encryption propagation for propagating a pattern part match from each data position to the next data position based on the encrypted data corresponding pattern corresponding to the next input data and the encryption check array. Generating an array, and transmitting the first array based on the encrypted propagation array and the second array based on the encryption check array to the second information processing unit,
The second information processing unit causes the updating unit to acquire a corresponding element of the encrypted propagation array at a data position other than the predetermined data position based on the first array and the second array. , Generating a reply array for causing the update unit to acquire a product of corresponding elements of the encryption check array and the encryption propagation array at the predetermined data position, and to the first information processing unit And an update assistant unit that replies
The detection device according to any one of claims 7 to 10, wherein the update unit updates the inspection array based on the reply array.
前記第1情報処理部の前記更新部は、
前記暗号化伝搬配列の各データおよび第4乱数を前記第2公開鍵により暗号化した値同士を加法準同型性暗号の加法により加えた各要素を有する前記第1配列と、
前記暗号化検査配列の各データおよび第5乱数を前記第2公開鍵により暗号化した値同士を加法準同型性暗号の加法により加えた各要素を有する前記第2配列と、
前記暗号化検査配列の各データを前記第4乱数によりべき乗した値と、前記第4乱数および前記第5乱数の積を前記第2公開鍵により暗号化した値と、前記暗号化伝搬配列を前記第5乱数および第6乱数の積によりべき乗した値と、第7乱数を前記第2公開鍵により暗号化した値とを、加法準同型性暗号の加法により加えた各要素を有する第3配列と、
を前記第2情報処理部に送信し、
前記第2情報処理部の前記更新補助部は、
前記予め定められたデータ位置においては、前記第1配列の要素を復号化した値および前記第2配列の要素を復号化した値の積を前記第2公開鍵により暗号化した値を要素とし、前記予め定められたデータ位置以外のデータ位置においては前記第3配列の要素を前記第2公開鍵により暗号化し直した値を要素とする前記返信用配列と、
前記予め定められたデータ位置においては前記第2公開鍵により0を暗号化した値を要素とし、前記予め定められたデータ位置以外においては前記第2公開鍵により1を暗号化した値を要素とする第4配列と、
を前記第1情報処理部に返信する
請求項11に記載の検出装置。
The updating unit of the first information processing unit is
The first array having elements obtained by adding each data of the encrypted propagation array and a value obtained by encrypting a fourth random number with the second public key by an additive homomorphic encryption;
The second array having each element obtained by adding each data of the encryption check array and a value obtained by encrypting a fifth random number with the second public key by an additive homomorphic encryption;
A value obtained by raising each data of the encryption check array by the fourth random number, a value obtained by encrypting a product of the fourth random number and the fifth random number by the second public key, and the encrypted propagation array A third array having elements obtained by adding a value raised to the power of the product of the fifth random number and the sixth random number and a value obtained by encrypting the seventh random number with the second public key by addition of additive homomorphic encryption; ,
To the second information processing unit,
The update assisting unit of the second information processing unit is
At the predetermined data position, an element is a value obtained by encrypting a product of a value obtained by decrypting an element of the first array and a value obtained by decrypting an element of the second array using the second public key, The reply array having a value obtained by re-encrypting the element of the third array with the second public key at a data position other than the predetermined data position;
A value obtained by encrypting 0 with the second public key is an element at the predetermined data position, and a value obtained by encrypting 1 with the second public key is an element other than the predetermined data position. A fourth arrangement to:
The detection apparatus according to claim 11, which is returned to the first information processing unit.
前記更新部は、前記返信用配列の各要素と、前記暗号化検査配列を前記第4乱数のマイナス値によりべき乗した値と、前記第4乱数および前記第5乱数を前記第2公開鍵により暗号化した値の逆元と、前記暗号化伝搬配列を前記第5乱数のマイナス値によりべき乗した値と、前記第4配列を前記第7乱数のマイナス値によりべき乗した値とを、加法準同型性暗号の加法により加えた各要素により前記検査配列を更新する
請求項12に記載の検出装置。
The update unit encrypts each element of the reply array, a value obtained by raising the encryption check array by a negative value of the fourth random number, and the fourth random number and the fifth random number with the second public key. An inverse element of the digitized value, a value obtained by raising the encrypted propagation array by a negative value of the fifth random number, and a value obtained by raising the fourth array by a negative value of the seventh random number. The detection apparatus according to claim 12, wherein the inspection array is updated with each element added by cryptographic addition.
当該検出装置は、前記入力データ列として商品の広告履歴データおよび商品の購買履歴データの少なくとも一方を含む履歴データ列を入力し、
前記履歴データ列中に前記検出対象パターンが検出されたことに応じて、広告を発行すべきことを示すトリガ情報を出力する出力部を更に備える
請求項1から13のいずれか一項に記載の検出装置。
The detection device inputs a history data string including at least one of product advertisement history data and product purchase history data as the input data string,
The output part which outputs the trigger information which shows that an advertisement should be issued according to the said detection target pattern being detected in the said log | history data row | line | column is further provided. Detection device.
当該検出装置は、前記入力データ列として遺伝子配列を入力し、
前記遺伝子配列中に前記検出対象パターンが検出されたか否かを出力する出力部を更に備える
請求項1から13のいずれか一項に記載の検出装置。
The detection apparatus inputs a gene sequence as the input data string,
The detection apparatus according to any one of claims 1 to 13, further comprising an output unit that outputs whether or not the detection target pattern is detected in the gene sequence.
入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出方法であって、
前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶段階と、
データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成段階と、
次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新段階と、
前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定段階と、
を備える検出方法。
A detection method for detecting whether or not a predetermined detection target pattern is included in an input data string,
Corresponding to each data position of the detection target pattern, a test sequence storage step for storing a test sequence indicating whether or not a pattern portion up to the data position in the detection target pattern is being detected in the input data sequence;
For each data type, a data corresponding pattern generation stage for generating a data corresponding pattern indicating whether or not each data position of the detection target pattern is the type of data;
An update stage for updating the test array based on the data correspondence pattern corresponding to the next input data;
A determination step of determining whether or not the detection target pattern is included in the input data sequence based on an element of the inspection array corresponding to a data position at the end of the detection target pattern;
A detection method comprising:
入力データ列に予め定められた検出対象パターンが含まれるか否かを検出する検出装置としてコンピュータを機能させるプログラムであって、
前記検出対象パターンの各データ位置に対応して、前記入力データ列において前記検出対象パターンにおける当該データ位置までのパターン部分を検出中か否かを示す検査配列を記憶する検査配列記憶部と、
データの種類毎に、前記検出対象パターンの各データ位置が当該種類のデータか否かを示すデータ対応パターンを生成するデータ対応パターン生成部と、
次の入力データに対応する前記データ対応パターンに基づいて、前記検査配列を更新する更新部と、
前記検出対象パターンの末尾のデータ位置に対応する前記検査配列の要素に基づいて、前記入力データ列中に前記検出対象パターンが含まれたか否かを判定する判定部と、
して機能させるプログラム。
A program that causes a computer to function as a detection device that detects whether or not a predetermined detection target pattern is included in an input data string,
Corresponding to each data position of the detection target pattern, a test sequence storage unit that stores a test sequence indicating whether or not a pattern portion up to the data position in the detection target pattern is being detected in the input data sequence;
A data-corresponding pattern generation unit that generates a data-corresponding pattern indicating whether or not each data position of the detection target pattern is data of the kind for each data type;
An update unit that updates the inspection array based on the data correspondence pattern corresponding to the next input data;
A determination unit that determines whether or not the detection target pattern is included in the input data sequence based on an element of the inspection array corresponding to a data position at the end of the detection target pattern;
Program to make it work.
請求項6から13のいずれか1項に記載の前記第1情報処理部または前記第2情報処理部として機能するコンピュータ。   A computer that functions as the first information processing unit or the second information processing unit according to any one of claims 6 to 13. 請求項6から13のいずれか1項に記載の前記第1情報処理部または前記第2情報処理部としてコンピュータを機能させるプログラム。   A program that causes a computer to function as the first information processing unit or the second information processing unit according to any one of claims 6 to 13.
JP2013217903A 2013-10-18 2013-10-18 Detection device, detection method, computer, and program Pending JP2015079228A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013217903A JP2015079228A (en) 2013-10-18 2013-10-18 Detection device, detection method, computer, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013217903A JP2015079228A (en) 2013-10-18 2013-10-18 Detection device, detection method, computer, and program

Publications (1)

Publication Number Publication Date
JP2015079228A true JP2015079228A (en) 2015-04-23

Family

ID=53010654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013217903A Pending JP2015079228A (en) 2013-10-18 2013-10-18 Detection device, detection method, computer, and program

Country Status (1)

Country Link
JP (1) JP2015079228A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010225137A (en) * 2009-02-27 2010-10-07 Fujitsu Ltd Retrieval program and retrieval method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010225137A (en) * 2009-02-27 2010-10-07 Fujitsu Ltd Retrieval program and retrieval method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
原田 弘毅 ほか: "準同型性暗号を用いた拡張文字列の秘匿パターン照合", CSS2013コンピュータセキュリティシンポジウム2013論文集, vol. 2013, no. 4, JPN6017028745, 14 October 2013 (2013-10-14), JP, pages 801 - 808, ISSN: 0003611915 *

Similar Documents

Publication Publication Date Title
Suhail et al. On the role of hash-based signatures in quantum-safe internet of things: Current solutions and future directions
US9215068B2 (en) Search system, search method, and program
US9397986B2 (en) Authenticating acceptance of a string using an automaton
US20180287779A1 (en) White-box cryptography method and apparatus for preventing side channel analysis
Hamza et al. Towards secure big data analysis via fully homomorphic encryption algorithms
JP5843261B2 (en) A system that authenticates whether a string is accepted by an automaton
CN111259440B (en) Privacy protection decision tree classification method for cloud outsourcing data
CN111291122B (en) Bidding method and device based on block chain
US20200026583A1 (en) Automatic correction of cryptographic application program interfaces
Schlögl et al. eNNclave: Offline inference with model confidentiality
Murugan et al. Cloud storage security scheme using DNA computing with morse code and zigzag pattern
CN112508200A (en) Method, apparatus, device, medium, and program for processing machine learning model file
JP5972181B2 (en) Tamper detection device, tamper detection method, and program
Arslan et al. A study on the use of quantum computers, risk assessment and security problems
EP3483867B1 (en) System, device, method, and program for indexing a secret-shared array with secure multiparty computations
CN113055153A (en) Data encryption method, system and medium based on fully homomorphic encryption algorithm
WO2013153628A1 (en) Calculation processing system and calculation result authentication method
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
JP5737788B2 (en) A system for sending messages via lost communication
Sumaryanti et al. Improvement security in e-business systems using hybrid algorithm
JP2015079228A (en) Detection device, detection method, computer, and program
CN107667368A (en) Non- extending obfuscator for sparse functions
Raj et al. A security architecture for cloud data using hybrid security scheme
JP6212377B2 (en) Arithmetic device, arithmetic method and computer program
US11874950B1 (en) Protecting membership for secure computation and communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180220