(57)【特許請求の範囲】
【請求項１】
対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が前記真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果、および、前記対象文字に対応する対象符号と前記パターン文字に対応するパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果、が秘匿化された秘匿化判定結果を得る第１演算部と、
（１）前記第１条件を満たし、かつ、特殊符号と前記パターン符号とが一致するか、または、（２）前記第２条件を満たし、かつ、前記特殊符号と前記パターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果に応じた秘匿化情報を得る第２演算部と、
を有する秘匿パターンマッチング装置。
【請求項２】
請求項１の秘匿パターンマッチング装置であって、
前記第１判定結果は、前記第１条件を満たす場合に真となり、前記第１条件を満たさない場合に偽となり、
前記第２判定結果は、前記第２条件を満たす場合に真となり、前記第２条件を満たさない場合に偽となり、
第５判定結果が、前記特殊符号と前記パターン符号とが一致する場合に真となり、前記特殊符号と前記パターン符号とが異なる場合に偽となり、
前記第３判定結果は、（３）前記第１判定結果が真であり、かつ、前記第５判定結果が真であるか、または、（４）前記第２判定結果が真であり、かつ、前記第５判定結果が偽である場合に真となり、それ以外の場合に偽となる、秘匿パターンマッチング装置。
【請求項３】
対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が前記真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果、前記対象文字の内容を表す対象符号と前記パターン文字の内容を表すパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果、および、前記対象文字の表記が特定の種別に該当するか否かを表す対象文字種別情報と前記パターン文字の表記が前記特定の種別に該当するか否かを表すパターン文字種別情報とが一致し、かつ、前記対象符号と前記パターン符号とが一致する、という第４条件を満たすか否かを表す第４判定結果、が秘匿化された秘匿化判定結果を得る第１演算部と、
（１）前記第１条件を満たし、かつ、特殊符号と前記パターン符号とが一致するか、または、（２）第６条件を満たし、かつ、前記特殊符号と前記パターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果に応じた秘匿化情報を得る第２演算部と、を有し、
前記第６条件は、（３）前記第４条件を満たし、かつ、判定条件が表記の種別を区別することを表すか、または、（４）前記第２条件を満たし、かつ、前記判定条件が表記の種別を区別しないことを表す場合に満たされる、秘匿パターンマッチング装置。
【請求項４】
請求項３の秘匿パターンマッチング装置であって、
前記第１判定結果は、前記第１条件を満たす場合に真となり、前記第１条件を満たさない場合に偽となり、
前記第２判定結果は、前記第２条件を満たす場合に真となり、前記第２条件を満たさない場合に偽となり、
前記第４判定結果は、前記第４条件を満たす場合に真となり、前記第４条件を満たさない場合に偽となり、
前記判定条件は、表記の種別を区別する場合に真となり、表記の種別を区別しない場合に偽となり、
第６判定結果が、（３）前記第４判定結果が真であり、かつ、前記判定条件が真であるか、または、（４）前記第２判定結果が真であり、かつ、前記判定条件が偽である場合に真となり、それ以外の場合に偽となり、
第５判定結果が、前記特殊符号と前記パターン符号とが一致する場合に真となり、前記特殊符号と前記パターン符号とが異なる場合に偽となり、
前記第３判定結果は、（１）前記第１判定結果が真であり、かつ、前記第５判定結果が真であるか、または、（２）前記第６判定結果が真であり、かつ、前記第５判定結果が偽である場合に真となり、それ以外の場合に偽となる、秘匿パターンマッチング装置。
【請求項５】
パターン文字が文字集合の特定の真部分集合に対応するか否か表すパターン文字集合情報を得る第１処理部と、
前記パターン文字に対応するパターン符号を得る第２処理部と、
前記パターン文字集合情報および前記パターン符号に対応する秘匿化情報を得る第３処理部と、を有し、
前記パターン符号は、前記パターン文字自体を表す符号か、または、前記真部分集合に対応する特殊符号である、端末装置。
【請求項６】
第１演算部において、対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が前記真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果、および、前記対象文字に対応する対象符号と前記パターン文字に対応するパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果、が秘匿化された秘匿化判定結果を得るステップと、
第２演算部において、（１）前記第１条件を満たし、かつ、特殊符号と前記パターン符号とが一致するか、または、（２）前記第２条件を満たし、かつ、前記特殊符号と前記パターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果に応じた秘匿化情報を得るステップと、
を有する秘匿パターンマッチング方法。
【請求項７】
第１処理部において、パターン文字が文字集合の特定の真部分集合に対応するか否か表すパターン文字集合情報を得るステップと、
第２処理部において、前記パターン文字に対応するパターン符号を得るステップと、
第３処理部において、前記パターン文字集合情報および前記パターン符号に対応する秘匿化情報を得るステップと、を有し、
前記パターン符号は、前記パターン文字自体を表す符号か、または、前記真部分集合に対応する特殊符号である、秘匿パターンマッチング方法。
【請求項８】
請求項１から４の何れかの秘匿パターンマッチング装置としてコンピュータを機能させるためのプログラム。
【請求項９】
請求項５の端末装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号応用技術に関し、特に入力データを明かすことなくデータ処理を行う秘密計算技術に関する。
【背景技術】
【０００２】
秘匿された文字列に対するパターンマッチング技術として非特許文献１に記載された手法がある。この手法では、パターンマッチングの対象文字列とパターンの両方を秘匿した状態でパターンマッチングを行い、秘匿化されたパターンマッチングの結果を得る。この手法では任意の文字に対応したワイルドカードを使うこともできる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】濱田浩気，桐淵直人，五十嵐大，“ラウンド効率のよい秘密計算パターンマッチング”，Computer Security Symposium 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来手法は、文字集合の特定の真部分集合を指定して行うパターンマッチングに適応していない。
本発明の課題は、文字集合の特定の真部分集合を指定して行うパターンマッチングを秘密計算で行うことである。
【課題を解決するための手段】
【０００５】
対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が前記真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果、および、前記対象文字に対応する対象符号と前記パターン文字に対応するパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果、が秘匿化された秘匿化判定結果を得、（１）前記第１条件を満たし、かつ、特殊符号と前記パターン符号とが一致するか、または、（２）前記第２条件を満たし、かつ、前記特殊符号と前記パターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果に応じた秘匿化情報を得る。
【発明の効果】
【０００６】
これにより、文字集合の特定の真部分集合を指定して行うパターンマッチングを秘密計算で実現できる。
【図面の簡単な説明】
【０００７】
【図１】図１は実施形態の秘匿パターンマッチングシステムの構成を例示したブロック図である。
【図２】図２は実施形態の秘匿パターンマッチング装置の機能構成を例示したブロック図である。
【図３】図３Ａは実施形態の端末装置の機能構成を例示したブロック図であり、図３Ｂは実施形態のデータベース装置の機能構成を例示したブロック図である。
【図４】図４Ａは実施形態の端末装置の処理を例示するためのフロー図であり、図４Ｂは実施形態の秘匿パターンマッチング装置の処理を例示するためのフロー図である。
【図５】図５は、対象文字またはパターン文字と、対象文字種別情報またはパターン文字種別情報の例（大文字フラグおよび小文字フラグ）と、対象文字集合情報またはパターン文字種別情報の例（数字フラグ）と、対象符号およびパターン符号の例（符号点）との関係を例示するための図である。
【図６】図６Ａは、第１判定結果の例（判定結果Ｘｍ）を例示した図である。図６Ｂは、第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。
【図７】図７Ａは、第１判定結果の例（判定結果Ｘｍ）を例示した図である。図７Ｂは、第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。
【図８】図８Ａは、第１判定結果の例（判定結果Ｘｍ）を例示した図である。図８Ｂは、第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。
【図９】図９Ａは、第１判定結果の例（判定結果Ｘｍ）を例示した図である。図９Ｂは、第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。
【図１０】図１０Ａは、第１判定結果の例（判定結果Ｘｍ）を例示した図である。図１０Ｂは、第２判定結果の例（一致判定結果Ｙｍ）を例示した図である。
【図１１】図１１Ａおよび図１１Ｂは、各文字の結果に基づくパターンマッチング結果を例示した図である。
【図１２】図１２Ａは、第２実施形態の秘匿一致判定部の機能構成を例示したブロック図である。図１２Ｂは、第２実施形態の秘匿一致判定部の処理を例示するためのフロー図である。
【図１３】図１３Ａは、対象符号およびパターン符号の例（変換後の符号点）を示した図である。図１３Ｂは、対象文字またはパターン文字と、対象文字種別情報またはパターン文字種別情報の例（大文字フラグおよび小文字フラグ）と、対象文字集合情報またはパターン文字種別情報の例（数字フラグ）と、対象符号およびパターン符号の例（変換後の符号点）との関係を例示するための図である。
【図１４】図１４Ａおよび図１４Ｂは、対象文字種別情報とパターン文字種別情報とが一致し、かつ、対象符号とパターン符号とが一致する、という条件を満たすか否かを表す結果II（ｘｍ）を示した図である。図１４Ｃおよび図１４Ｄは、対象符号とパターン符号とが一致するという条件を満たすか否かを表す結果III（ｙｍ）を示した図である。
【図１５】図１５Ａおよび図１５Ｂは、対象文字種別情報とパターン文字種別情報とが一致し、かつ、対象符号とパターン符号とが一致する、という条件を満たすか否かを表す結果II（ｘｍ）を示した図である。図１５Ｃおよび図１５Ｄは、対象符号とパターン符号とが一致するという条件を満たすか否かを表す結果III（ｙｍ）を示した図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。
［用語］
各実施形態で使用する用語を定義する。
「文字」とは、可視的表現を持ち、符号化表現が可能な記号を意味する。「文字」は、言語を伝達し記録するために線や点を使って形作られた記号（非図形文字）であってもよいし、それに準ずる記号（図形文字）であってもよい。「文字」の例は、文字コード規格で定められた符号化文字である。
【０００９】
「パターンマッチング」とは、「対象文字列（対象情報）」が「パターン文字列（パターン情報）」の条件を満たすかを判定する演算を意味する。「対象文字列」および「パターン文字列」は、ともに１個または２個以上の文字を含む。「対象文字列」に含まれる各文字を「対象文字」と呼び、「パターン文字列」に含まれる各文字を「パターン文字」と呼ぶ。「対象文字」はテキストデータ（文書データ、数値データなど）に含まれた「通常の文字」であるが、「パターン文字」は「通常の文字」または「特殊文字」である。「特殊文字」とは、「文字集合の特定の真部分集合」に属するか否かのパターンマッチングを行うことを表すために特別に割り当てられた文字である。
【００１０】
「文字集合」とは、定義された文字の集合を意味する。「文字集合」の例は、特定の文字コード規格で定められた全ての符号化文字を要素とする集合である。「文字集合の特定の真部分集合」は、特定の文字クラス（単数または複数の文字クラス）の文字を要素とする集合であってもよいし、特定の文字コードの範囲（例えば、半角文字の範囲、または全角文字の範囲など）の文字を要素とする集合であってもよいし、その他の特定の範囲の文字を要素とする集合であってもよい。「文字クラス」とは文字の分類を意味し、その例は、数字、アルファベット、ギリシャ文字、漢字、図形文字等である。「対象文字集合情報」とは、対象文字が文字集合の特定の真部分集合に対応するか否か表す情報（フラグ）を意味する。対象文字が特定の真部分集合に対応する場合、その「対象文字集合情報」の値は真（Ｔ）（有効）であり、対象文字が特定の真部分集合に対応しない場合、その「対象文字集合情報」の値は偽（Ｆ）（無効）である。「対象文字が特定の真部分集合に対応する」とは、例えば、「対象文字」が「特定の真部分集合」に属することであってもよいし、「対象文字」が「特定の真部分集合」を表すことであってもよい。例えば、「特定の真部分集合」が「数字」である場合、対象文字「５」の「対象文字集合情報」の値は真（Ｔ）（有効）であり、対象文字「Ａ」の「対象文字集合情報」の値は偽（Ｆ）（無効）である。「パターン文字集合情報」とは、パターン文字が文字集合の特定の真部分集合に対応するか否か表す情報（フラグ）である。パターン文字が文字集合の特定の真部分集合に対応する場合、その「パターン文字集合情報」の値は真（Ｔ）（有効）であり、パターン文字が文字集合の特定の真部分集合に対応しない場合、その「パターン文字集合情報」の値は偽（Ｆ）（無効）である。「パターン文字が特定の真部分集合に対応する」とは、例えば、「パターン文字」が「特定の真部分集合」に属することであってもよいし、「対象文字」が「特定の真部分集合」を表すことであってもよい。例えば、「特定の真部分集合」が「数字」である場合、パターン文字「５」の「パターン文字集合情報」の値は真（Ｔ）（有効）である。また「数字」という範囲を表すパターン文字の「パターン文字集合情報」の値も真（Ｔ）（有効）であり、パターン文字「Ａ」の「パターン文字集合情報」の値は偽（Ｆ）（無効）である。
【００１１】
「種別（クラス）」とは、文字の表記の種別を意味する。例えば、「種別」の例は大文字、小文字、半角、全角、特定のフォントなどである。「文字種別情報」とは、文字の表記が特定の種別に該当するか否かを表す情報（フラグ）を意味する。文字の表記が特定の種別に該当する場合、その「文字種別情報」の値は真（Ｔ）（有効）であり、文字の表記が特定の種別に該当しない場合、その「文字種別情報」の値は偽（Ｆ）（無効）である。例えば、文字「Ａ」の場合、「大文字」という文字種別情報は真（Ｔ）（有効）であり、「小文字」という文字種別情報は偽（Ｆ）（無効）である。「対象文字」の「文字種別情報」を「対象文字種別情報」と呼び、「パターン文字」の「文字種別情報」を「パターン文字種別情報」と呼ぶ。
【００１２】
「対象符号」とは「対象文字」に対応する符号であり、「パターン符号」とは「パターン文字」に対応する符号である。「対象符号」は「対象文字」自体を表す。一方、「パターン符号」は「パターン文字」自体を表すか、「文字集合の特定の真部分集合」に属するか否かのパターンマッチングを行うことを表すために特別に割り当てられた「特殊符号」である。「特殊符号」は「特殊文字」に対応する。「特殊符号」は、「特定の真部分集合」を識別するもの（「特定の真部分集合」に対応する「特殊符号」、すなわち「特定の真部分集合」を表す符号）であってもよいし、「特定の真部分集合」を識別しないもの（「特定の真部分集合」を表さず、「特定の真部分集合」に属するか否かのパターンマッチングを行うことのみを表す符合）であってもよい。
【００１３】
「文字の内容」とは「文字」が表す概念を意味する。例えば、大文字の「Ａ」と小文字の「ａ」とは同じ概念（アルファベットの最初の文字）を表し、「Ａ」の内容と「ａ」の内容とは同一である。
【００１４】
［第１実施形態］
以下、第１実施形態を説明する。
＜構造＞
図１に例示するように、本形態の秘匿パターンマッチングシステム１は、端末装置１２、秘匿パターンマッチング装置１１１−１１Ｎ、およびデータベース装置１３１−１３Ｎを有する。ただし、Ｎは１以上の整数である。例えば、本システムで秘密分散方式や秘匿回路方式に基づく秘密計算を行う場合にはＮ≧２であり、準同型性暗号方式に基づく秘密計算を行う場合にはＮ＝１である。
【００１５】
図２に例示するように、本形態の秘匿パターンマッチング装置１１ｎ（ただし、ｎ∈｛１，・・・，Ｎ｝）は、入力部１１１ｎ、秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝、Ｓは２以上の整数）、秘匿論理和演算部１１３ｎ、秘匿一致判定部１１４ｎ，１１５ｎ、秘匿論理演算部１１６ｎ、秘匿論理積演算部１１７ｎ、出力部１１８ｎ、および制御部１１９ｎを有する。ここで、秘匿論理積演算部１１２ｎ−ｓ、秘匿論理和演算部１１３ｎ、および秘匿一致判定部１１４ｎ，１１５ｎは、第１演算部の例であり、秘匿論理演算部１１６ｎは第２演算部の例である。説明の便宜上、各部を独立な部位として記述しているが、それらが独立の部位である必要はない。例えば、秘匿論理積演算部１１２ｎ−１，・・・，１１２ｎ−Ｓが同一の部位であってもよいし、秘匿一致判定部１１４ｎ，１１５ｎが同一の部位であってもよい。
【００１６】
図３Ａに例示するように、本形態の端末装置１２は、入力部１２１，１２７、文字種別情報取得部１２２、文字集合情報取得部１２３（第１処理部）、符号点設定部１２４（第２処理部）、秘匿化部１２５（第３処理部）、出力部１２６、復元部１２８、および制御部１２９を有する。図３Ｂに例示するように、本形態のデータベース装置１３ｎ（ただし、ｎ∈｛１，・・・，Ｎ｝）は、記憶部１３１ｎ、抽出部１３２ｎ、出力部１３３ｎ、入力部１３４ｎ、復元部１３５ｎ、および制御部１３６ｎを有する。
【００１７】
各装置は、例えば、通信器やＣＰＵ（central processing unit）等のプロセッサ（ハードウェア・プロセッサ）やＲＡＭ（random-access memory）・ＲＯＭ（read-only memory）等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは１個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めＲＯＭ等に記録されていてもよい。また、ＣＰＵのようにプログラムが読み込まれることで機能構成を実現する電子回路（circuitry）ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。１個の装置を構成する電子回路が複数のＣＰＵを含んでいてもよい。また、各装置はそれぞれの制御部１１９ｎ，１２９，１３６ｎの制御に基づいて各処理を行う。
【００１８】
＜事前処理＞
事前処理では、テキストデータの暗号文Ｃのデータベースと、これらの各テキストデータに含まれた「対象文字列」に対応する「秘匿化データベース」がデータベース装置１３ｎ（図３Ｂ）の記憶部１３１ｎに格納される。「秘匿化データベース」は、単数または複数の秘匿化レコード［ｄ］ｎを含む。秘匿化レコード［ｄ］ｎは、対象文字列（対象情報）ｄ＝（ｄ１，・・・，ｄＭ）（ただし、Ｍは正の整数）に含まれた各対象文字ｄｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）と、当該対象文字ｄｍの表記が特定の種別に該当するか否かを表す対象文字種別情報（フラグ）ｄｆｍ，ｋ∈｛Ｔ，Ｆ｝（ただし、ｋ∈｛１，・・・，Ｋ｝、Ｋは１以上Ｓ未満の整数）と、対象文字ｄｍが文字集合の特定の真部分集合に対応するか否か（属するか否か）を表す対象文字集合情報（フラグ）ｄｆｍ，ｉ∈｛Ｔ，Ｆ｝（ただし、ｉ∈｛Ｋ＋１，・・・，Ｓ｝）と、当該対象文字ｄｍに対応する対象符号ｄｃｍと、が対応付けられたデータ構造の秘匿化情報である。対象文字種別情報ｄｆｍ，ｋおよび対象文字集合情報ｄｆｍ，ｉの構成に限定はない。例えばＫ＝２、Ｓ＝３とし、対象文字ｄｍが大文字であるか否かを表す対象文字種別情報を大文字フラグｄｆｍ，１∈｛Ｔ，Ｆ｝とし、小文字であるか否かを表す対象文字種別情報を小文字フラグｄｆｍ，２∈｛Ｔ，Ｆ｝とし、対象文字ｄｍが数字であるか否かを表す対象文字集合情報を数字フラグｄｆｍ，３∈｛Ｔ，Ｆ｝する。例えば、「Ａ」の大文字フラグｄｆｍ，１は「Ｔ」、小文字フラグｄｆｍ，２は「Ｆ」、数字フラグｄｆｍ，３は「Ｆ」であり、「ａ」の大文字フラグｄｆｍ，１は「Ｆ」、小文字フラグｄｆｍ，２は「Ｔ」、数字フラグｄｆｍ，３は「Ｆ」であり、「Ｂ」の大文字フラグｄｆｍ，１は「Ｔ」、小文字フラグｄｆｍ，２を「Ｆ」、数字フラグｄｆｍ，３は「Ｆ」であり、「ｂ」の大文字フラグｄｆｍ，１は「Ｆ」、小文字フラグｄｆｍ，２は「Ｔ」、数字フラグｄｆｍ，３は「Ｆ」であり、「５」大文字フラグｄｆｍ，１は「Ｆ」、小文字フラグｄｆｍ，２を「Ｆ」、数字フラグｄｆｍ，３は「Ｔ」である（図５）。対象符号ｄｃｍの構成にも限定はない。対象符号ｄｃｍが表記の種別の違いにかかわらず対象文字ｄｍの内容のみに対応するものであってもよいし、対象符号ｄｃｍが対象文字ｄｍの内容および表記の種別の両方に対応するものであってもよい。対象符号ｄｃｍの例はユニコード等の符号点である。例えば、「Ａ」「ａ」「Ｂ」「ｂ」「５」の対象符号ｄｃｍは、それぞれ「Ｕ＋００４１」「Ｕ＋００６１」「Ｕ＋００４２」「Ｕ＋００６２」「Ｕ＋００３５」である（図５）。また、各対象文字種別情報ｄｆｍ，ｋ，対象文字集合情報ｄｆｍ，ｉ，対象符号ｄｃｍについて秘密計算が可能なのであれば、対象文字種別情報ｄｆｍ，ｋ，対象文字集合情報ｄｆｍ，ｉ，対象符号ｄｃｍが個々に独立して秘匿化されてもよいし、これらがまとめて秘匿化されていてもよいし、その他の単位でまとめて秘匿化されてもよい。秘匿化方式にも限定はなく、秘密計算による一致判定（等号判定）および論理演算（論理和、論理積、論理否定）が可能であれば、秘密分散方式（Shamir秘密分散方式等）、秘匿回路方式、準同型性暗号方式など、どのような方式が用いられてもよい。例えば、非特許文献１や参考文献１（Damgard, I., Fitzi, M., Kiltz, E., Nielsen, J. B., & Toft, T. (2006), “Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation,” In Theory of Cryptography (pp. 285-304). Springer Berlin Heidelberg.）などに記載された方式を用いてもよい。
【００１９】
＜パターンマッチング処理＞
図４Ａに例示するように、端末装置１２（図３Ａ）の入力部１２１に、パターン文字列（パターン情報）ｐ＝（ｐ１，・・・，ｐＭ）が入力される。パターン文字列ｐはＭ個のパターン文字ｐ１，・・・，ｐＭを含む。パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）は、「通常の文字」であってもよいし、「特殊文字」であってもよい。例えば、パターン文字ｐｍは、「Ａ」「ａ」「Ｂ」「ｂ」「５」のような「通常の文字」であってもよいし、「［：ｄｉｇｉｔ：］」のような「文字集合の特定の真部分集合（この例では『数字』）」に対応する特殊文字であってもよい（図５）。パターン文字列ｐは、文字種別情報取得部１２２、文字集合情報取得部１２３、および符号点設定部１２４に送られる（ステップＳ１２１）。
【００２０】
文字種別情報取得部１２２は、パターン文字列ｐが含む各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）の表記が特定の種別に該当するか否かを表すパターン文字種別情報（フラグ）ｐｆｍ，ｋ∈｛Ｔ，Ｆ｝（ただし、ｋ∈｛１，・・・，Ｋ｝）を得て出力する。パターン文字種別情報ｐｆｍ，ｋは対象文字種別情報ｄｆｍ，ｋと同じ基準（図５）に従って生成される。例えばＫ＝２とし、パターン文字ｐｍが大文字であるか否かを表すパターン文字種別情報を大文字フラグｐｆｍ，１∈｛Ｔ，Ｆ｝とし、小文字であるか否かを表すパターン文字種別情報を小文字フラグｐｆｍ，２∈｛Ｔ，Ｆ｝とする（ステップＳ１２２）。
【００２１】
文字集合情報取得部１２３は、パターン文字列ｐが含む各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）が文字集合の特定の真部分集合に対応するか否か表すパターン文字集合情報（フラグ）ｐｆｍ，ｉ∈｛Ｔ，Ｆ｝（ただし、ｉ∈｛Ｋ＋１，・・・，Ｓ｝）を得て出力する。パターン文字ｐｍが「通常の文字」の場合、パターン文字集合情報ｐｆｍ，ｉは対象文字集合情報ｄｆｍ，ｉと同じ基準に従って生成される。例えばＫ＝２、Ｓ＝３とし、パターン文字ｐｍが数字であるか否かを表すパターン文字集合情報を数字フラグｐｆｍ，３∈｛Ｔ，Ｆ｝する。例えば、「Ａ」の数字フラグｐｆｍ，３は「Ｆ」であり、「５」の数字フラグｐｆｍ，３は「Ｔ」である（図５）。一方、パターン文字ｐｍが「特殊文字」の場合、パターン文字ｐｍが「文字集合の特定の真部分集合」に対応するか否か表す情報（フラグ）をパターン文字集合情報ｐｆｍ，ｉとする。例えば、パターン文字ｐｍが数字に対応するか否か表すパターン文字集合情報を数字フラグｐｆｍ，３∈｛Ｔ，Ｆ｝する。例えば、パターン文字「［：ｄｉｇｉｔ：］」の数字フラグｐｆｍ，３は「Ｔ」である（図５）（ステップＳ１２３）。
【００２２】
符号点設定部１２４は、パターン文字列ｐが含む各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）に対応するパターン符号ｐｃｍを得て出力する。パターン文字ｐｍが「通常の文字」の場合、パターン符号ｐｃｍは対象符号ｄｃｍと同じ基準に従って生成される。例えば、「Ａ」「ａ」「Ｂ」「ｂ」「５」のパターン符号ｐｃｍは、それぞれ「Ｕ＋００４１」「Ｕ＋００６１」「Ｕ＋００４２」「Ｕ＋００６２」「Ｕ＋００３５」である（図５）。一方、パターン文字ｐｍが「特殊文字」の場合、「特殊符号」がパターン符号ｐｃｍとして生成される。例えば、パターン文字「［：ｄｉｇｉｔ：］」に対しては特殊符号「Ｐ（［：ｄｉｇｉｔ：］）」が生成される（ステップＳ１２４）。
【００２３】
秘匿化部１２５は、前述の「秘匿化データベース」と同じ秘匿化方法を用い、各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）のパターン文字種別情報ｐｆｍ，１，・・・，ｐｆｍ，Ｋ、パターン文字集合情報ｐｆｍ，Ｋ＋１，・・・，ｐｆｍ，Ｓ、およびパターン符号ｐｃｍに対応する、秘匿化情報を含む秘匿化クエリ［ｐ］ｎを得て出力する。各パターン文字種別情報ｐｆｍ，ｋ，パターン文字集合情報ｐｆｍ，ｉ，パターン符号ｐｃｍについて秘密計算が可能なのであれば、パターン文字種別情報ｐｆｍ，ｋ，パターン文字集合情報ｐｆｍ，ｉ，パターン符号ｐｃｍが個々に独立して秘匿化されてもよいし、これらがまとめて秘匿化されていてもよいし、その他の単位でまとめて秘匿化されてもよい（ステップＳ１２４）。
【００２４】
秘匿化クエリ［ｐ］ｎは出力部１２６に送られ、出力部１２６は秘匿化クエリ［ｐ］ｎを、秘匿パターンマッチング装置１１ｎ（ただし、ｎ∈｛１，・・・，Ｎ｝）に送信する（ステップＳ１２６）。
【００２５】
図４Ｂに例示するように、秘匿化クエリ［ｐ］ｎは、秘匿パターンマッチング装置１１ｎ（図２）の入力部１１１ｎに入力される（ステップＳ１１０ｎ）。制御部１１９ｎは、秘匿化レコードの送信要求を生成して出力部１１８ｎから送信する。送信要求はデータベース装置１３ｎ（図３Ｂ）の入力部１３４に入力され、抽出部１３２ｎに送られる。抽出部１３２ｎは、記憶部１３１ｎから秘匿化データベースの何れかの秘匿化レコード［ｄ］ｎを抽出し、出力部１３３ｎから送信する。秘匿化レコード［ｄ］ｎは、秘匿パターンマッチング装置１１ｎ（図２）の入力部１１１ｎに入力される（ステップＳ１１１ｎ）。
【００２６】
秘匿化クエリ［ｐ］ｎおよび秘匿化レコード［ｄ］ｎは、秘匿パターンマッチング装置１１ｎ（図２）の秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）、および秘匿一致判定部１１４ｎ，１１５ｎに送られる。秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）、秘匿論理和演算部１１３ｎ、秘匿一致判定部１１４ｎ，１１５ｎ、および秘匿論理演算部１１６ｎは、ｍ∈｛１，・・・，Ｍ｝について、以下のステップＳ１１２ｎ〜Ｓ１１６ｎの処理を実行する。これらの処理は各ｍについて順番に実行されてもよいし、複数のｍについて同時に実行されてもよい。
【００２７】
≪Ｓ１１２ｎ≫
秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）は、秘密計算による論理積演算により、ｄｆｍ，ｓとｐｆｍ，ｓとの論理積（ｄｆｍ，ｓ）ＡＮＤ（ｐｆｍ，ｓ）である判定結果ｒｆｍ，ｓ∈｛Ｔ，Ｆ｝の秘匿化情報［ｒｆｍ，ｓ］ｎを得て出力する。「ＡＮＤ」は論理積を表す。例えばＴ＝１であり、かつ、Ｆ＝０であり、このような秘密計算による論理積演算は、非特許文献１等に記載された方法によって実現できる（ステップＳ１１２ｎ）。
【００２８】
≪Ｓ１１３ｎ≫
秘匿論理和演算部１１３ｎは、判定結果ｒｆｍ，ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）を入力とし、秘密計算による論理和演算により、ｒｆｍ，１，・・・，ｒｆｍ，Ｓの論理和（ｒｆｍ，１）ＯＲ・・・ＯＲ（ｒｆｍ，Ｓ）である判定結果Ｘｍ∈｛Ｔ，Ｆ｝の秘匿化情報［Ｘｍ］ｎを得て出力する。「ＯＲ」は論理和を表す。判定結果Ｘｍは「対象文字集合情報が、『対象文字が文字集合の特定の真部分集合に対応する』ことを表し、かつ、パターン文字集合情報が、『パターン文字が真部分集合に対応すること』を表す、という第１条件を満たすか否かを表す第１判定結果」に相当し、第１判定結果は、第１条件を満たす場合に真となり、第１条件を満たさない場合に偽となる。図６Ａの例では、対象文字ｄｍ＝「５」について、大文字フラグｄｆｍ，１＝Ｆ、小文字フラグｄｆｍ，２＝Ｆ、数字フラグｄｆｍ，３＝Ｔであり、パターン文字ｐｍ＝「［：ｄｉｇｉｔ：］」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｆ、数字フラグｐｆｍ，３＝Ｔであるため、ｒｆｍ，１＝Ｆ、ｒｆｍ，２＝Ｆ、ｒｆｍ，３＝Ｔとなり、Ｘｍ＝Ｔとなる。図７Ａの例では、対象文字ｄｍ＝「Ａ」について、大文字フラグｄｆｍ，１＝Ｔ、小文字フラグｄｆｍ，２＝Ｆ、数字フラグｄｆｍ，３＝Ｆであり、パターン文字ｐｍ＝「ｂ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔ、数字フラグｐｆｍ，３＝Ｆであるため、ｒｆｍ，１＝Ｆ、ｒｆｍ，２＝Ｆ、ｒｆｍ，３＝Ｆとなり、Ｘｍ＝Ｆとなる。図８Ａの例では、対象文字ｄｍ＝「ｂ」について、大文字フラグｄｆｍ，１＝Ｆ、小文字フラグｄｆｍ，２＝Ｔ、数字フラグｄｆｍ，３＝Ｆであり、パターン文字ｐｍ＝「ｂ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔ、数字フラグｐｆｍ，３＝Ｆであるため、ｒｆｍ，１＝Ｆ、ｒｆｍ，２＝Ｔ、ｒｆｍ，３＝Ｆとなり、Ｘｍ＝Ｔとなる。図９Ａの例では、対象文字ｄｍ＝「ａ」について、大文字フラグｄｆｍ，１＝Ｆ、小文字フラグｄｆｍ，２＝Ｔ、数字フラグｄｆｍ，３＝Ｆであり、パターン文字ｐｍ＝「ｂ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔ、数字フラグｐｆｍ，３＝Ｆであるため、ｒｆｍ，１＝Ｆ、ｒｆｍ，２＝Ｔ、ｒｆｍ，３＝Ｆとなり、Ｘｍ＝Ｔとなる。図１０Ａの例では、対象文字ｄｍ＝「Ａ」について、大文字フラグｄｆｍ，１＝Ｔ、小文字フラグｄｆｍ，２＝Ｆ、数字フラグｄｆｍ，３＝Ｆであり、パターン文字ｐｍ＝「［：ｄｉｇｉｔ：］」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｆ、数字フラグｐｆｍ，３＝Ｔであるため、ｒｆｍ，１＝Ｆ、ｒｆｍ，２＝Ｆ、ｒｆｍ，３＝Ｆとなり、Ｘｍ＝Ｆとなる。例えばＴ＝１であり、かつ、Ｆ＝０であり、このような秘密計算による論理和演算は、非特許文献１等に記載された方法によって実現できる（ステップＳ１１３ｎ）。
【００２９】
≪Ｓ１１４ｎ≫
秘匿一致判定部１１４ｎは、秘密計算による一致判定（等号判定）により、対象符号ｄｃｍとパターン符号ｐｃｍとが一致する場合（ｄｃｍ＝ｐｃｍ）に真（Ｔ）となり、一致しない場合（ｄｃｍ≠ｐｃｍ）に偽（Ｆ）となる一致判定結果Ｙｍ∈｛Ｔ，Ｆ｝の秘匿化情報［Ｙｍ］ｎを得て出力する。一致判定結果Ｙｍは、「対象文字に対応する対象符号とパターン文字に対応するパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果」に相当する。第２判定結果は、第２条件を満たす場合に真となり、第２条件を満たさない場合に偽となる。図６Ｂの例では、ｄｃｍ＝「Ｕ＋００３５」であり、ｐｃｍ＝Ｐ（［：ｄｉｇｉｔ：］）であるため、Ｙｍ＝Ｆとなる。図７Ｂの例では、ｄｃｍ＝「Ｕ＋００４１」であり、ｐｃｍ＝「Ｕ＋００６２」であるため、Ｙｍ＝Ｆとなる。図８Ｂの例では、ｄｃｍ＝「Ｕ＋００６２」であり、ｐｃｍ＝「Ｕ＋００６２」であるため、Ｙｍ＝Ｔとなる。図９Ｂの例では、ｄｃｍ＝「Ｕ＋００６１」であり、ｐｃｍ＝「Ｕ＋００６２」であるため、Ｙｍ＝Ｆとなる。図１０Ｂの例では、ｄｃｍ＝「Ｕ＋００４１」であり、ｐｃｍ＝Ｐ（［：ｄｉｇｉｔ：］）であるため、Ｙｍ＝Ｆとなる。例えばＴ＝１であり、かつ、Ｆ＝０である場合、ｄｃｍとｐｃｍとの一致判定は、ｄｃｍとｐｃｍとの排他的論理和の否定となる。このような秘密計算による一致判定は、例えば、参考文献１等に記載された方法によって実現できる（ステップＳ１１４ｎ）。
【００３０】
≪Ｓ１１５ｎ≫
秘匿一致判定部１１５ｎは、秘密計算による一致判定により、特殊符号Ｐ（［：ｄｉｇｉｔ：］）とパターン符号ｐｃｍとが一致する場合（Ｐ（［：ｄｉｇｉｔ：］＝ｐｃｍ）に真（Ｔ）となり、一致しない場合（Ｐ（［：ｄｉｇｉｔ：］≠ｐｃｍ）に偽（Ｆ）となる一致判定結果Ｚｍ∈｛Ｔ，Ｆ｝の秘匿化情報［Ｚｍ］ｎを得て出力する。一致判定結果Ｚｍは「第５判定結果」に相当し、特殊符号とパターン符号とが一致する場合に真となり、特殊符号とパターン符号とが異なる場合に偽となる。例えば、図６Ａの例ではＺｍ＝Ｔであり、図７Ａの例ではＺｍ＝Ｆである（ステップＳ１１５ｎ）。
【００３１】
≪Ｓ１１６ｎ≫
秘匿論理演算部１１６ｎは［Ｘｍ］ｎ、［Ｙｍ］ｎ、および［Ｚｍ］ｎを入力とし、秘密計算による論理演算により、｛（Ｘｍ＝Ｔ）ＡＮＤ（Ｚｍ＝Ｔ）｝ＯＲ｛（Ｙｍ＝Ｔ）ＡＮＤ（Ｚｍ＝Ｆ）｝のときに真（Ｔ）となり、それ以外の場合に偽（Ｆ）となる判定結果Ｗｍ∈｛Ｔ，Ｆ｝の秘匿化情報［Ｗｍ］ｎを得て出力する。判定結果Ｗｍ∈｛Ｔ，Ｆ｝は、「（１）第１条件を満たし、かつ、特殊符号とパターン符号とが一致するか、または、（２）第２条件を満たし、かつ、特殊符号とパターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果」に相当し、（３）第１判定結果が真であり、かつ、第５判定結果が真であるか、または、（４）第２判定結果が真であり、かつ、第５判定結果が偽である場合に真となり、それ以外の場合に偽となる。また、秘匿化情報［Ｗｍ］ｎは「第３判定結果に応じた秘匿化情報」に相当する。図６Ａおよび図６Ｂの例では、Ｘｍ＝Ｔ、Ｙｍ＝Ｆ、Ｚｍ＝Ｔであるため、Ｗｍ＝Ｔとなる。図７Ａおよび図７Ｂの例では、Ｘｍ＝Ｆ、Ｙｍ＝Ｆ、Ｚｍ＝Ｆであるため、Ｗｍ＝Ｆとなる。図８Ａおよび図８Ｂの例では、Ｘｍ＝Ｔ、Ｙｍ＝Ｔ、Ｚｍ＝Ｆであるため、Ｗｍ＝Ｔとなる。図９Ａおよび図９Ｂの例では、Ｘｍ＝Ｔ、Ｙｍ＝Ｆ、Ｚｍ＝Ｆであるため、Ｗｍ＝Ｆとなる。図１０Ａおよび図１０Ｂの例では、Ｘｍ＝Ｆ、Ｙｍ＝Ｆ、Ｚｍ＝Ｔであるため、Ｗｍ＝Ｆとなる。例えばＴ＝１であり、かつ、Ｆ＝０である場合、Ｗｍ＝（Ｘｍ  ＡＮＤ  Ｚｍ）ＯＲ（Ｙｍ  ＡＮＤ  （１−Ｚｍ））となる。このような秘密計算による論理演算は、非特許文献１等に記載された方法によって実現できる（ステップＳ１１６ｎ）。
【００３２】
ｍ∈｛１，・・・，Ｍ｝について、以下のステップＳ１１２ｎ〜Ｓ１１６ｎの処理が終了すると、秘匿論理積演算部１１７ｎは［Ｗｍ］ｎ（ただし、ｍ∈｛１，・・・，Ｍ｝）を入力とし、秘密計算による論理積演算により、Ｗ１，・・・，ＷＭの論理積であるパターンマッチングの結果Ｒ∈｛Ｔ，Ｆ｝の秘匿化情報［Ｒ］ｎを得て出力する。図１１Ａおよび図１１ＢはＭ＝３の例である。図１１Ａの例では、Ｗ１＝Ｗ２＝Ｗ３＝Ｔであり、Ｒ＝Ｔとなる。図１１Ａの例では、Ｗ１＝Ｗ３＝ＴかつＷ２＝Ｆであり、Ｒ＝Ｆとなる（ステップＳ１１７ｎ）。［Ｒ］ｎは出力部１１８ｎから送信される（ステップＳ１１８ｎ）。
【００３３】
［Ｒ］ｎは何れかのデータベース装置１３ｎに送信され、データベース装置１３ｎ（図３Ｂ）の入力部１３４ｎに入力される。［Ｒ］ｎは復元部１３５ｎに送られて復元値Ｒが得られる。復元値Ｒは抽出部１３２ｎに送られる。Ｒ＝Ｔであった場合、復元値ＲはステップＳ１１１ｎで抽出された秘匿化レコード［ｄ］ｎに対応するテキストデータの暗号文Ｃを記憶部１３１ｎから抽出し、出力部１３３ｎから送信する。暗号文Ｃは、端末装置１２の入力部１２７に入力され、復元部１２８でテキストデータｍに復元されて出力される。一方、Ｒ＝Ｆであった場合、復元値Ｒは記憶部１３１ｎから新たな秘匿化レコード［ｄ］ｎを抽出し、前述のステップＳ１１１ｎ以降の処理が繰り返される。記憶部１３１ｎに新たな秘匿化レコード［ｄ］ｎが存在しない場合にはエラーメッセージを返してもよい。
【００３４】
以上のように、本形態では文字集合の特定の真部分集合を指定して行うパターンマッチングを行うことができ、また各処理は秘密計算による一致判定や論理演算によって実現できる。これにより、文字集合の特定の真部分集合を指定して行うパターンマッチングを秘密計算で実現できる。
【００３５】
［第２実施形態］
本形態は第１実施形態の変形であり、さらに表記の種別の区別の有無を指定可能なものである。以下では、第１実施形態との相違点を中心に説明し、すでに説明した事項については上述と同じ参照番号を引用して説明を簡略化する。
【００３６】
＜構造＞
図１に例示するように、本形態の秘匿パターンマッチングシステム２は、端末装置２２、秘匿パターンマッチング装置２１１−２１Ｎ、およびデータベース装置２３ｎを有する。
【００３７】
図２に例示するように、本形態の秘匿パターンマッチング装置２１ｎ（ただし、ｎ∈｛１，・・・，Ｎ｝）は、入力部２１１ｎ、秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝、Ｓは２以上の整数）、秘匿論理和演算部１１３ｎ、秘匿一致判定部２１４ｎ，１１５ｎ、秘匿論理演算部１１６ｎ、秘匿論理積演算部１１７ｎ、出力部１１８ｎ、および制御部１１９ｎを有する。図１２Ａに例示するように、秘匿一致判定部２１４ｎは、秘匿一致判定部２１４１ｎ−ｋ（ただし、ｋ∈｛１，・・・，Ｋ｝、秘匿一致判定部２１４２ｎ、秘匿論理積演算部２１４３ｎ、および秘匿論理演算部２１４４ｎを有する。ここで、秘匿論理積演算部１１２ｎ−ｓ、秘匿論理和演算部１１３ｎ、および秘匿一致判定部２１４ｎ，１１５ｎは、第１演算部の例であり、秘匿論理演算部１１６ｎは第２演算部の例である。説明の便宜上、各部を独立な部位として記述しているが、それらが独立の部位である必要はない。例えば、秘匿論理積演算部１１２ｎ−１，・・・，１１２ｎ−Ｓが同一の部位であってもよいし、秘匿一致判定部２１４ｎ，１１５ｎが同一の部位であってもよい。
【００３８】
図３Ａに例示するように、本形態の端末装置２２は、入力部２２１，１２７、文字種別情報取得部１２２、文字集合情報取得部１２３（第１処理部）、符号点設定部２２４（第２処理部）、秘匿化部２２５（第３処理部）、出力部２２６、復元部１２８、および制御部１２９を有する。図３Ｂに例示するように、本形態のデータベース装置２３ｎは、記憶部２３１ｎ、抽出部１３２ｎ、出力部１３３ｎ、入力部１３４ｎ、復元部１３５ｎ、および制御部１３６ｎを有する。
【００３９】
各装置は、例えば、前述のコンピュータが所定のプログラムを実行することで構成されてもよいし、電子回路を用いて一部またはすべての処理部が構成されてもよい。
【００４０】
＜事前処理＞
事前処理では、テキストデータの暗号文Ｃのデータベースと、これらの各テキストデータに含まれた「対象文字列」に対応する「秘匿化データベース」がデータベース装置２３ｎ（図３Ｂ）の記憶部２３１ｎに格納される。「秘匿化データベース」は、単数または複数の秘匿化レコード［ｄ］ｎを含む。［ｄ］ｎの構成は、対象符号ｄｃｍが対象文字ｄｍの内容を表す符号である以外、第１実施形態と同じである。対象文字ｄｍの内容を表す符号である限り、対象符号ｄｃｍの構成に限定はない。例えば、対象文字ｄｍが小文字である場合、その元の符号点（ユニコード等）をその大文字の符号点（変換後符号点）に変換し、その「変換後符号点」を対象符号ｄｃｍにする。また例えば、対象文字ｄｍが大文字である場合、その元の符号点をそのまま「変換後符号点」として対象符号ｄｃｍにする。また、大文字および小文字の区別がない文字についても、その元の符号点をそのまま「変換後符号点」として対象符号ｄｃｍにする。例えば、「Ａ」の元の符号点「Ｕ＋００４１」を「Ａ」および「ａ」の対象符号ｄｃｍとし、「Ｂ」の元の符号点「Ｕ＋００４２」を「Ｂ」および「ｂ」の対象符号ｄｃｍとし、「５」の符号点「Ｕ＋００３５」を対象符号ｄｃｍとする（図１３Ａおよび図１３Ｂ）。
【００４１】
＜パターンマッチング処理＞
図４Ａに例示するように、端末装置２２（図３Ａ）の入力部１２１に、記の種別を区別するか否かを表す判定条件ａ∈｛Ｔ，Ｆ｝、およびパターン文字列（パターン情報）ｐ＝（ｐ１，・・・，ｐＭ）が入力される。判定条件ａは「表記の種別を区別する」ことを表す「真（Ｔ）」であるか、「表記の種別を区別しない」ことを表す「偽（Ｆ）」である。判定条件ａは、秘匿化部２２５に送られ、パターン文字列ｐは、文字種別情報取得部１２２、文字集合情報取得部１２３、および符号点設定部２２４に送られる（ステップＳ２２１）。
【００４２】
その後、第１実施形態で説明したステップＳ１２２およびＳ１２３の処理が実行される。次に、符号点設定部２２４は、パターン文字列ｐが含む各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）に対応するパターン符号ｐｃｍを得て出力する。パターン文字ｐｍが「通常の文字」の場合、パターン符号ｐｃｍは対象符号ｄｃｍと同じ基準に従って生成される。すなわち、パターン符号ｐｃｍはパターン文字ｐｍの内容を表す。例えば、「Ａ」「ａ」「Ｂ」「ｂ」「５」のパターン符号ｐｃｍは、それぞれ「Ｕ＋００４１」「Ｕ＋００４１」「Ｕ＋００４２」「Ｕ＋００４２」「Ｕ＋００３５」である（図１３Ａおよび図１３Ｂ）。一方、パターン文字ｐｍが「特殊文字」の場合、「特殊符号」がパターン符号ｐｃｍとして生成される。例えば、パターン文字「［：ｄｉｇｉｔ：］」に対しては特殊符号「Ｐ（［：ｄｉｇｉｔ：］）」が生成される（ステップＳ２２４）。
【００４３】
秘匿化部２２５は、前述の「秘匿化データベース」と同じ秘匿化方法を用い、判定条件ａに対応する秘匿化情報（判定条件ａが秘匿化された秘匿化判定条件）［ａ］ｎ、ならびに、各パターン文字ｐｍ（ただし、ｍ∈｛１，・・・，Ｍ｝）のパターン文字種別情報ｐｆｍ，１，・・・，ｐｆｍ，Ｋ、パターン文字集合情報ｐｆｍ，Ｋ＋１，・・・，ｐｆｍ，Ｓ、およびパターン符号ｐｃｍに対応する秘匿化情報［ｐ］ｎを含む秘匿化クエリ［ａ］ｎ，［ｐ］ｎを得て出力する（ステップＳ２２５）。
【００４４】
秘匿化クエリ［ａ］ｎ，［ｐ］ｎは出力部２２６に送られ、出力部２２６は秘匿化クエリ［ａ］ｎ，［ｐ］ｎを、秘匿パターンマッチング装置２１ｎ（ただし、ｎ∈｛１，・・・，Ｎ｝）に送信する（ステップＳ２２６）。
【００４５】
図４Ｂに例示するように、秘匿化クエリ［ａ］ｎ，［ｐ］ｎは、秘匿パターンマッチング装置２１ｎ（図２）の入力部２１１ｎに入力される（ステップＳ２１０ｎ）。制御部１１９ｎは、秘匿化レコードの送信要求を生成して出力部１１８ｎから送信する。送信要求はデータベース装置２３ｎ（図３Ｂ）の入力部１３４ｎに入力され、抽出部１３２ｎに送られる。抽出部１３２ｎは、記憶部２３１ｎから秘匿化データベースの何れかの秘匿化レコード［ｄ］ｎを抽出し、出力部１３３ｎから送信する。秘匿化レコード［ｄ］ｎは、秘匿パターンマッチング装置２１ｎ（図２）の入力部２１１ｎに入力される（ステップＳ２１１ｎ）。
【００４６】
［ｐ］ｎおよび［ｄ］ｎは、秘匿パターンマッチング装置１１ｎ（図２）の秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）、および秘匿一致判定部２１４ｎ，１１５ｎに送られ、［ａ］ｎは秘匿一致判定部２１４ｎに送られる。秘匿論理積演算部１１２ｎ−ｓ（ただし、ｓ∈｛１，・・・，Ｓ｝）、秘匿論理和演算部１１３ｎ、秘匿一致判定部２１４ｎ，１１５ｎ、および秘匿論理演算部１１６ｎは、ｍ∈｛１，・・・，Ｍ｝について、ステップＳ１１２ｎ，Ｓ１１３ｎ，Ｓ２１４ｎ，Ｓ１１５ｎ，Ｓ１１６ｎの処理を実行する。
【００４７】
≪Ｓ１１２ｎ，Ｓ１１３ｎ≫
Ｓ１１２ｎ，Ｓ１１３ｎは第１実施形態と同じである。
【００４８】
≪Ｓ２１４ｎ≫
図１２に例示するように、ステップＳ２１４１ｎはＳ２１４１ｎ−Ｓ２１４４ｎを有する。
【００４９】
≪Ｓ２１４１ｎ≫
秘匿一致判定部２１４１ｎ−ｋ（ただし、ｋ∈｛１，・・・，Ｋ｝）は、秘密計算による一致判定により、ｄｆｍ，ｋとｐｆｍ，ｋとが一致する場合（ｄｆｍ，ｋ＝ｐｆｍ，ｋ）に真（Ｔ）となり、一致しない場合（ｄｆｍ，ｋ≠ｐｆｍ，ｋ）に偽（Ｆ）となる一致判定結果ａｆｍ，ｋ∈｛Ｔ，Ｆ｝の秘匿化情報［ａｆｍ，ｋ］ｎを得て出力する。図１４Ａの例では、対象文字ｄｍ＝「Ａ」について、大文字フラグｄｆｍ，１＝Ｔ、小文字フラグｄｆｍ，２＝Ｆであり、パターン文字ｐｍ＝「ａ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔであるため、ａｆｍ，１＝Ｆ、ａｆｍ，２＝Ｆとなる。図１４Ｂの例では、対象文字ｄｍ＝「ａ」について、大文字フラグｄｆｍ，１＝Ｆ、小文字フラグｄｆｍ，２＝Ｔであり、パターン文字ｐｍ＝「ａ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔであるため、ａｆｍ，１＝Ｔ、ａｆｍ，２＝Ｔとなる。図１５Ａの例では、対象文字ｄｍ＝「Ｂ」について、大文字フラグｄｆｍ，１＝Ｔ、小文字フラグｄｆｍ，２＝Ｆであり、ｐｍ＝「ａ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔであるため、ａｆｍ，１＝Ｆ、ａｆｍ，２＝Ｆとなる（結果I）。図１５Ｂの例では、ｄｍ＝「ｂ」について、大文字フラグｄｆｍ，１＝Ｆ、小文字フラグｄｆｍ，２＝Ｔであり、パターン文字ｐｍ＝「ａ」について、大文字フラグｐｆｍ，１＝Ｆ、小文字フラグｐｆｍ，２＝Ｔであるため、ａｆｍ，１＝Ｔ、ａｆｍ，２＝Ｔとなる（結果I）。
【００５０】
秘匿一致判定部２１４２ｎは、秘密計算による一致判定により、対象符号ｄｃｍとパターン符号ｐｃｍとが一致する場合（ｄｃｍ＝ｐｃｍ）に真（Ｔ）となり、一致しない場合（ｄｃｍ≠ｐｃｍ）に偽（Ｆ）となる一致判定結果ｙｍ∈｛Ｔ，Ｆ｝の秘匿化情報［ｙｍ］ｎを得て出力する。ただし、本形態では、対象符号ｄｃｍは対象文字ｄｍの内容を表し、パターン符号ｐｃｍはパターン文字ｐｍの内容または特殊符号を表す。対象符号ｄｃｍとパターン符号ｐｃｍとが同じ内容を表すとき、それらは互いに同一である。一方、たとえ「種別」が同一であっても、対象符号ｄｃｍとパターン符号ｐｃｍとが異なる内容を表すとき、それらは互いに異なる。図１４Ａ−図１４Ｄの例では、ｄｃｍ＝ｐｃｍ＝「Ｕ＋００４１」となるため、ｙｍ＝Ｔとなる（結果I）。図１５Ａ−図１５Ｄの例では、ｄｃｍ＝「Ｕ＋００４２」であり、ｐｃｍ＝「Ｕ＋００４１」となるため、ｙｍ＝Ｆとなる（結果Iおよび結果III）。一致判定結果ｙｍは「対象文字の内容を表す対象符号とパターン文字の内容を表すパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果」に相当する（ステップＳ２１４１ｎ）。
【００５１】
《Ｓ２１４２ｎ》
秘匿論理積演算部２１４３ｎは、［ａｆｍ，ｋ］ｎ（ただし、ｋ∈｛１，・・・，Ｋ｝）および［ｙｍ］ｎを入力とし、秘密計算による論理積により、（ａｆｍ，１＝Ｔ）ＡＮＤ（ａｆｍ，２＝Ｔ）ＡＮＤ・・・ＡＮＤ（ａｆｍ，Ｋ＝Ｔ）ＡＮＤ（ｙｍ＝Ｔ）のときに真（Ｔ）となり、そうでない場合に偽（Ｆ）となる判定結果ｘｍ∈｛Ｔ，Ｆ｝の秘匿化情報［ｘｍ］ｎ（ただし、ｍ∈｛１，・・・，Ｍ｝）を得て出力する。図１４Ａの例ではｘｍ＝Ｆとなり、図１４Ｂの例ではｘｍ＝Ｔとなり、図１５Ａの例ではｘｍ＝Ｆとなり、図１５Ｂの例ではｘｍ＝Ｆとなる（結果II）。例えば「Ｔ」を１とし、「Ｆ」を０とすると、ｘｍ＝（ａｆｍ，１）ＡＮＤ（ａｆｍ，２）ＡＮＤ・・・ＡＮＤ（ａｆｍ，Ｋ）ＡＮＤ（ｙｍ）となる。判定結果ｘｍは「対象文字の表記が特定の種別に該当するか否かを表す対象文字種別情報とパターン文字の表記が特定の種別に該当するか否かを表すパターン文字種別情報とが一致し、かつ、対象符号とパターン符号とが一致する、という第４条件を満たすか否かを表す第４判定結果」に相当する（ステップＳ２１４２ｎ）。
【００５２】
《Ｓ２１４３ｎ》
秘匿論理演算部２１４４ｎは、［ａ］ｎ，［ｘｍ］ｎ，［ｙｍ］ｎを入力とし、秘密計算による論理演算により、判定条件ａ＝Ｔの場合（表記の種別を区別することを表す場合）にｘｍに基づき、判定条件ａ＝Ｆの場合（表記の種別を区別しないことを表す場合）にｙｍに基づく結果ｒｍに応じた秘匿化情報［ｒｍ］ｎを得て出力する。例えば、判定条件ａ＝Ｔの場合にｒｍ＝ｘｍとなり、判定条件ａ＝Ｆの場合にｒｍ＝ｙｍとなる結果ｒｍが秘匿化された秘匿化情報［ｒ］ｎを得て出力する。例えば、秘匿論理演算部２１４４ｎは、｛（ｘｍ＝Ｔ）ＡＮＤ（ａ＝Ｔ）｝ＯＲ｛（ｙｍ＝Ｔ）ＡＮＤ（ａ＝Ｆ）｝のときに真（Ｔ）となり、そうでない場合に偽（Ｆ）となる論理演算値ｒｍ∈｛Ｔ，Ｆ｝が秘匿化された秘匿化情報［ｒｍ］ｎを得て出力する。例えば「Ｔ」を１とし、「Ｆ」を０とすると、ｒｍ＝（ｘｍ  ＡＮＤ  ａ）ＯＲ（ｙｍ  ＡＮＤ  （１−ａ））となり、［ｒｍ］ｎ＝［（ｘｍ  ＡＮＤ  ａ）  ＯＲ  （ｙｍ  ＡＮＤ  （１−ａ））］ｎとなる（ステップＳ２１４３ｎ）。
【００５３】
《Ｓ２１４４ｎ》
秘匿論理演算部２１４４ｎは、［Ｙｍ］ｎ＝［ｒｍ］ｎとして出力する（ステップＳ２１４４ｎ）
【００５４】
≪Ｓ１１５ｎ，Ｓ１１６ｎ≫
Ｓ１１５ｎ，Ｓ１１６ｎは第１実施形態と同じである。ただし秘匿論理演算部１１６ｎは、［Ｘｍ］ｎ、［Ｙｍ］ｎ＝［ｒｍ］ｎ、および［Ｚｍ］ｎを入力とし、秘密計算による論理演算により、｛（Ｘｍ＝Ｔ）ＡＮＤ（Ｚｍ＝Ｔ）｝ＯＲ｛（Ｙｍ＝Ｔ）ＡＮＤ（Ｚｍ＝Ｆ）｝のときに真（Ｔ）となり、それ以外のときに偽（Ｆ）となる判定結果Ｗｍの秘匿化情報［Ｗｍ］ｎを得て出力する。ここで、Ｙｍは｛（ｘｍ＝Ｔ）ＡＮＤ（ａ＝Ｔ）｝ＯＲ｛（ｙｍ＝Ｔ）ＡＮＤ（ａ＝Ｆ）｝のときに真（Ｔ）となり、そうでない場合に偽（Ｆ）となる論理演算値ｒｍである。そのため、本形態では、文字集合の特定の真部分集合を指定して行うパターンマッチングを行うことができるだけではなく、判定条件ａによって表記の種別の区別の有無を指定してパターンマッチングを行うこともできる。また各処理は秘密計算による一致判定や論理演算によって実現できる。これにより、文字集合の特定の真部分集合の指定や表記の種別の区別の有無を指定したパターンマッチングを秘密計算で実現できる。
【００５５】
なお［Ｘｍ］ｎは、秘匿論理和演算部１１３ｎから出力されたものであり、「対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果」の秘匿化情報に相当する。また判定結果Ｗｍは「（１）第１条件を満たし、かつ、特殊符号とパターン符号とが一致するか、または、（２）第６条件を満たし、かつ、特殊符号とパターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果」に相当する。またＹｍ＝Ｔとなることが「第６条件」を満たすことに相当する。前述のようにＹｍ＝Ｔ（すなわちｒｍ＝Ｔ）となるのは、｛（ｘｍ＝Ｔ）ＡＮＤ（ａ＝Ｔ）｝ＯＲ｛（ｙｍ＝Ｔ）ＡＮＤ（ａ＝Ｆ）｝のときである。すなわち第６条件は、（３）第４条件を満たし（ｘｍ＝Ｔ）、かつ、判定条件が表記の種別を区別することを表す（ａ＝Ｔ）か、または、（４）第２条件を満たし（ｙｍ＝Ｔ）、かつ、判定条件が表記の種別を区別しないことを表す（ａ＝Ｆ）場合に満たされる。第１判定結果Ｘｍは、第１条件を満たす場合に真（Ｘｍ＝Ｔ）となり、第１条件を満たさない場合に偽（Ｘｍ＝Ｆ）となり、第２判定結果ｙｍは、第２条件を満たす場合に真（ｙｍ＝Ｔ）となり、第２条件を満たさない場合に偽（ｙｍ＝Ｆ）となり、第４判定結果ｘｍは、第４条件を満たす場合に真（ｘｍ＝Ｔ）となり、第４条件を満たさない場合に偽（ｘｍ＝Ｆ）となり、判定条件ａは、表記の種別を区別する場合に真（ａ＝Ｔ）となり、表記の種別を区別しない場合に偽（ａ＝Ｆ）となり、第６判定結果Ｙｍが、（３）第４判定結果が真（ｘｍ＝Ｔ）であり、かつ、判定条件が真（ａ＝Ｔ）であるか、または、（４）第２判定結果が真（ｙｍ＝Ｔ）であり、かつ、判定条件が偽（ａ＝Ｆ）である場合に真（Ｙｍ＝Ｔ）となり、それ以外の場合に偽（Ｙｍ＝Ｆ）となり、第５判定結果Ｚｍが、特殊符号とパターン符号とが一致する場合に真（Ｚｍ＝Ｔ）となり、特殊符号とパターン符号とが異なる場合に偽（Ｚｍ＝Ｆ）となり、第３判定結果Ｗｍは、（１）第１判定結果が真（Ｘｍ＝Ｔ）であり、かつ、第５判定結果が真（Ｚｍ＝Ｔ）であるか、または、（２）第６判定結果が真（Ｙｍ＝Ｔ）であり、かつ、第５判定結果が偽（Ｚｍ＝Ｆ）である場合に真（Ｗｍ＝Ｔ）となり、それ以外の場合に偽（Ｗｍ＝Ｆ）となる。
【００５６】
［その他の変形例等］
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の実施形態では、秘密計算によって、テキストデータに含まれた対象文字列ｄ＝（ｄ１，・・・，ｄＭ）とパターン文字列ｐ＝（ｐ１，・・・，ｐＭ）とのパターンマッチングを行った。すなわち、テキストデータの全部または部分である対象文字列ｄとパターン文字列ｐとのパターンマッチングを行った。この変形例として、テキストデータの全部または部分である文字列と、パターン文字および特殊記号を含むパターンと、のパターンマッチングを行ってもよい。特殊記号とは、前述の「特殊文字」とは異なる概念であり、どのような対象文字もマッチすることにするものである。特殊記号の例は、１個の任意の対象文字にマッチすることにする「ワイルドカード」や、０個以上の任意の対象文字にマッチすることにする「無限長ギャップ」などである。このようなパターンマッチングは、特殊記号を含むパターンでパターンマッチングを行う公知手法（例えば、非特許文献１等）でのパターン文字との一致判定を、文字ごと（Ｍ＝１）のステップＳ１１２ｎ−Ｓ１１６ｎの処理に置換することで実現できる。
【００５７】
第１実施形態においてｋ＝０とし、対象文字種別情報ｄｆｍ，ｋおよびパターン文字種別情報ｐｆｍ，ｋを省略してもよい。この場合には、秘匿論理積演算部１１２ｎ−１〜１１２ｎ−Ｋが不要となる。
【００５８】
Ｍ＝１の場合、秘匿論理積演算部１１７ｎを省略し、秘匿論理演算部１１６ｎで得られた［Ｗｍ］ｎをそのまま［Ｒ］ｎとしてもよい。
【００５９】
第２実施形態では、パターン文字列ｐ＝（ｐ１，・・・，ｐＭ）に対して１個の判定条件ａが設定されたが、パターン文字ｐｍごとに判定条件ａｍ∈｛Ｔ，Ｆ｝が設定されてもよい。この場合には判定条件ａをａｍに置換した処理を行えばよい。また｛ｐ１，・・・，ｐＭ｝の部分集合ｓｕｂｊ⊂｛１，・・・，Ｍ｝（ただし、ｊは２以上の整数）ごとに判定条件ａ（ｓｕｂｊ）∈｛Ｔ，Ｆ｝が設定されてもよい。この場合には、ｍ∈ｓｕｂｊについて判定条件ａをａ（ｓｕｂｊ）に置換した処理を行えばよい。
【００６０】
判定条件ａ、パターン文字列ｐ＝（ｐ１，・・・，ｐＭ）、および対象文字列ｄ＝（ｄ１，・・・，ｄＭ）の組が複数組存在し、各組について上述の処理を行ってもよい。または、それぞれの組についての結果ｒの論理演算結果（論理積など）が秘匿化された秘匿化情報が出力されてもよい。各組の判定条件ａやＭは同一であってもよいし、異なっていてもよい。
【００６１】
パターン文字列ｐおよび対象文字列ｄの両方が互いに同一または異なるテキストデータに含まれたものであってもよい。パターン文字列ｐおよび対象文字列ｄの両方が入力テキストであってもよい。上述のようなテキストを抽出するためではなく、テキストからパターン文字列ｐにマッチングする対象文字列ｄを抽出するために本方式が用いられてもよい。
【００６２】
各実施形態では、データベース装置１３ｎおよび２３ｎが復元部１３５ｎを含み、入力された［Ｒ］ｎから復元値Ｒを復元し、復元値Ｒに応じ、新たな秘匿化レコード［ｄ］ｎまたはテキストデータの暗号文Ｃを抽出した。しかしながら、データベース装置１３ｎまたは２３ｎが復元部１３５ｎを持たず、記憶部１３１ｎまたは２３１ｎが、テキストデータの暗号文Ｃに代え、秘密計算可能なテキストデータの秘匿化情報を保持していてもよい。この場合には抽出部１３２ｎが［Ｒ］ｎをそのまま用い、秘密計算によって新たな秘匿化レコード［ｄ］ｎまたはテキストデータの秘匿化情報を抽出してもよい。
【００６３】
各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、端末装置とデータベース装置とが同一の装置であってもよいし、データベース装置と秘匿パターンマッチング装置とが同一の装置であってもよい。
【００６４】
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００６５】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００６６】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。
【００６８】
対象文字が文字集合の特定の真部分集合に対応するか否かを表す対象文字集合情報と当該対象文字に対応する対象符号とが対応付けられた情報の秘匿化情報を含むデータ構造を流通させてもよい。この流通は可搬型記録媒体を販売、譲渡、貸与等したり、ネットワークを介して転送したりすることによって行う。このようなデータ構造は、第１演算部において、対象文字集合情報が、対象文字が文字集合の特定の真部分集合に対応することを表し、かつ、パターン文字集合情報が、パターン文字が前記真部分集合に対応することを表す、という第１条件を満たすか否かを表す第１判定結果、および、前記対象文字に対応する対象符号と前記パターン文字に対応するパターン符号とが一致するという第２条件を満たすか否かを表す第２判定結果、が秘匿化された秘匿化判定結果を得、第２演算部において、（１）前記第１条件を満たし、かつ、特殊符号と前記パターン符号とが一致するか、または、（２）前記第２条件を満たし、かつ、前記特殊符号と前記パターン符号とが異なる、という第３条件を満たすか否かを表す第３判定結果に応じた秘匿化情報を得るために用いられる。
【００６９】
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【産業上の利用可能性】
【００７０】
上述した技術は、例えば、クラウド上での秘密計算によるデータベース検索などに利用できる。
【符号の説明】
【００７１】
１，２  秘匿パターンマッチングシステム
１１ｎ，２１ｎ  秘匿パターンマッチング装置
１２，２２  端末装置
１３ｎ，２３ｎ  データベース装置
【図１】
0006274669.tif 000002
【図２】
0006274669.tif 000003
【図３】
0006274669.tif 000004
【図４】
0006274669.tif 000005
【図５】
0006274669.tif 000006
【図６】
0006274669.tif 000007
【図７】
0006274669.tif 000008
【図８】
0006274669.tif 000009
【図９】
0006274669.tif 000010
【図１０】
0006274669.tif 000011
【図１１】
0006274669.tif 000012
【図１２】
0006274669.tif 000013
【図１３】
0006274669.tif 000014
【図１４】
0006274669.tif 000015
【図１５】
0006274669.tif 000016