[go: up one dir, main page]

JP2009271584A - 類似情報検索システムおよび類似情報検索プログラム - Google Patents

類似情報検索システムおよび類似情報検索プログラム Download PDF

Info

Publication number
JP2009271584A
JP2009271584A JP2008118871A JP2008118871A JP2009271584A JP 2009271584 A JP2009271584 A JP 2009271584A JP 2008118871 A JP2008118871 A JP 2008118871A JP 2008118871 A JP2008118871 A JP 2008118871A JP 2009271584 A JP2009271584 A JP 2009271584A
Authority
JP
Japan
Prior art keywords
information
search
polynomial
numerical value
registered
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
JP2008118871A
Other languages
English (en)
Inventor
Shogo Shimizu
將吾 清水
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.)
Tokyo Metropolitan Public University Corp
Original Assignee
Tokyo Metropolitan Public University Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Metropolitan Public University Corp filed Critical Tokyo Metropolitan Public University Corp
Priority to JP2008118871A priority Critical patent/JP2009271584A/ja
Publication of JP2009271584A publication Critical patent/JP2009271584A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】管理者および第三者から秘匿された状態で検索情報の類似情報を効率良く検索する。
【解決手段】多項式点集合(R)を記憶する秘匿登録情報記憶手段CD2と、秘匿検索情報(B)に含まれる検索数値(b〜bm−L)が各秘匿登録情報(R〜R)に含まれる数値(a〜a)と同値であるか否かを判別する検索数値判別手段CD4と、多項式点部分集合(Q 〜Q )を演算する多項式点部分集合演算手段CD5と、多項式点部分集合(Q 〜Q )の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段CD6と、(c−L)個以上の点を有する多項式点部分集合(Q 〜Q )に対応する各秘匿登録情報(R〜R)を演算することにより秘匿類似情報(R)を演算する秘匿類似情報演算手段CD7とを備えた類似情報検索システム。
【選択図】図2

Description

本発明は、データベースの外部委託業者としての管理者および第三者から秘匿された状態で前記データベースから検索情報の類似情報を検索する類似情報検索システムおよび類似情報検索プログラムに関する。
従来より、データベースの管理業務について、前記データベースの構築等の技術的な問題や、前記データベースのメンテナンス費や管理費の削減等の経済的な問題から、外部委託をすることが行われている。前記データベースの外部委託のモデルについて、例えば、Database-as-a-Service(DAS、DaaS)モデルが知られている。なお、本願明細書では、以降、「DASモデル」と記載する。
前記DASモデルは、前記データベースに情報(データ)を登録する(格納する)データ所有者としての「登録者」と、前記データベースから前記情報を検索する「検索者」と、前記データベースを管理する「管理者」とによって構成される。なお、前記登録者と前記検索者とは必ずしも同一人物である必要はなく、前記管理者は、いわゆる、外部委託業者であり、前記データベースの管理業務のみ委託されるものとする。
前記DASモデルにおいて、例えば、前記情報が個人情報や機密情報等であった場合には、前記登録者および前記検索者以外の第三者、すなわち、前記登録者および前記検索者と前記データベースとの間の通信路上の第三者から、前記情報を秘匿できることが望ましい。また、この場合、外部委託業者である前記管理者からも、前記第三者と同様に、前記情報を秘匿できることが望ましい。
前記データベースに格納された前記情報を、前記第三者等から秘匿するための技術として、下記の非特許文献1〜4に記載の技術が知られている。
非特許文献1〜3には、DASモデルにおいて、暗号化されたデータである暗号化データが格納されたデータベース、いわゆる、暗号化データベースについての技術が記載されている。非特許文献1〜3には、従来公知のSQL(Structured Query Language)を用いて問い合わせ等の操作が行われる、いわゆる、関係データベース(RDB:Relational Database、リレーショナルデータベース)について、前記SQLにより、前記暗号化データに関する問い合わせ処理を行う技術について記載されている。
なお、非特許文献1〜3において、前記暗号化データは、属性等の情報が付与された、いわゆる、関係データである。このため、前記SQLによる問い合わせ処理は、前記属性に基づいて、効率的に行うことができる。例えば、所定の範囲内の属性の値を有する前記暗号化データのみを抽出するフィルタリング処理等を行うことができる。
また、非特許文献4には、DASモデルとは直接関係ないが、複数のデータ提供者(provider、Bob)およびデータ検索者(querier、Alice)が存在する場合に、前記データ検索者の問い合わせた質問のデータ、いわゆる、クエリ(query)が、前記データ提供者が有するドキュメント(document)のデータベースに含まれるか否かを安全に問い合わせるために、ブルームフィルタ(Bloom filter)を用いた技術が記載されている。ここで、前記ブルームフィルタとは、前記データ提供者の鍵(K)で暗号化された前記ドキュメントおよび前記データ検索者の鍵(K)で暗号化された前記クエリのことである。
非特許文献4では、まず、前記データ提供者が、前記データ提供者のブルームフィルタを公開する。次に、前記データ検索者が、前記データ検索者のブルームフィルタを、信頼できる第三者機関(trusted third party,Ted)に送信する。次に、前記第三者機関が、グループ暗号の原理に基づいて、前記データ検索者のブルームフィルタ、すなわち、前記データ検索者の鍵で暗号化された前記クエリを変換して、前記データ提供者の鍵で暗号化された前記クエリを出力する。そして、前記第三者機関が、前記データ提供者の鍵で暗号化された前記クエリと、公開された前記データ提供者のブルームフィルタとを照合することにより、前記クエリが、前記ドキュメントとして前記データベースに格納されているか否かを判別する。すなわち、非特許文献4には、前記クエリと、前記ドキュメントとを暗号化した状態で照合する技術が記載されている。
ハカン・ハジグィムィシ(Hakan Hacigumus)、他2名、"暗号化されたデータの検索について(Search on Encrypted Data)"、"アドバンシーズ・イン・インフォメーション・セキュリティ(第33巻)セキュア・データ・マネジメント・イン・ディセントラライズド・システムズ(Advances in Information Security / Secure Data Management in Decentralized Systems (Edited by T. Yu and S. Jajodia))"、(米国)、シュプリンガー(Springer)、2007年5月11日、p.383−426 ハカン・ハジグィムィシ(Hakan Hacigumus)、他3名、"データベースサービスプロバイダモデルの暗号化されたデータに対するSQLの実施について(Executing SQL over Encrypted Data in the Database-Service-Provider Model)"、"エスアイジーエムオーディ・カンファレンス(SIGMOD Conference(Edited by M. J. Franklin, B. Moon and A. Ailamaki))"、(米国)、エーシーエム(ACM)、2002年、p.216−227 三浦志保、渡辺知恵美、"管理者に対しても機密を保持できる暗号化データベースの索引構成法"、「online」、2007年、電子情報通信学会第18回データ工学ワークショップ/第5回日本データベース学会年次大会(DEWS2007)、「2008年3月26日検索」、インターネット<URL:http://www.ieice.org/iss/de/DEWS/DEWS2007/pdf/e7-8.pdf> スティーブン・エム・ベロビン(Steven M. Bellovin)、他1名、"暗号化されたブルームフィルタを用いて秘匿性が高められた検索について(Privacy-Enhanced Searches Using Encrypted Bloom Filters)"、(米国)、エーティアンドティ(AT&T)、2004年3月29日 エスコ・ウッコネン(Esko Ukkonen)、"q−gramおよび最大の共通文字列集合に関する類似文字列照合について(Approximate string matching with q-grams and maximal matches)"、セオレシカル・コンピュータ・サイエンス・92(Theoretical Computer Science 92)、(米国)、エルシビアー(Elsevier)、1992年、p.191−211 今井秀樹著、「符号理論」、社団法人電子情報通信学会、1990年、p.47−54,155−160,169−174,179−180 アリ・ジュエルズ(Ari Juels)、他1名、"ファジーボールトについて(A Fuzzy Vault Scheme)"、「online」、2006年、デザインズ・コーズ・アンド・クリプトグラフィ(Designs, Codes and Cryptography)、「2008年4月1日検索」、インターネット<URL:http://www.rsa.com/rsalabs/staff/bios/ajuels/publications/fuzzy-vault/fuzzy_vault.pdf> 大貫泰紀、高橋佑介、「指紋がキーとなる金庫 "Indexed Fuzzy Vault" の開発」、「online」、2008年2月14日、東海大学、「2008年3月7日検索」、インターネット<URL:http://www.cs.dm.u-tokai.ac.jp/DM2007/A1-Kikuchi2.doc> 權娟大、他2名、"GGDB:糖鎖遺伝子データベース検索システム(GGDB: A database system for glycogenes)"、"第2回 糖鎖科学コンソーシアムシンポジウム(The Second Symposium of Japanese Consortium for Glycobiology and Glycotechnology)"、日本糖鎖科学コンソーシアム、2004年、p.42−43 ルイ・ヤン(Rui Yang)、他2名、"木構造データの類似評価について(Similarity Evaluation on Tree-structured Data)"、"エスアイジーエムオーディー・カンファレンス(SIGMOD Conference)"、(米国)、エーシーエム(ACM)、2005年、p.754−765 カリン・カイリング(Karin Kailing)、他3名、"大規模データベースにおける階層データの効果的な類似検索について(Efficient Similarity Search for Hierarchical Data in Large Databases)"、(ギリシャ共和国)、エクステンディング・データベース・テクノロジー(Extending Database Technology)、2004年、p.676−693 アポストロス・エヌ・パラドポウロス(Apostolos N. Papadopoulos)、他1名、"グラフのヒストグラムによる構造化された類似検索について(Structure-Based Similarity Search with Graph Histograms)"、(ギリシャ共和国)、"ディーイーエックスエー・ワークショップ(DEXA Workshop)"、1999年、p.174−178
(従来技術の問題点)
前記DASモデルにおいて、例えば、前記情報がDNA(Deoxyribonucleic acid、デオキシリボ核酸)の塩基配列情報(核酸配列情報)や、蛋白質のアミノ酸配列情報等の、いわゆる、遺伝子情報であった場合、前記データベースは、前記遺伝子情報が格納された遺伝子情報データベースとなる。なお、前記遺伝子情報データベースは、いわゆる、遺伝子解析の分野における研究機関等において利用されている。
ここで、前記遺伝子情報が、疾患等に関わる可能性がある遺伝子、いわゆる、候補遺伝子の情報を含む場合には、経済的・商業的・実用的な用途や価値を有する可能性があり、機密情報として取り扱われることがある。この場合、前記第三者および前記管理者から、前記遺伝子情報を秘匿できることが望ましい。
図9はDASモデルにおける遺伝子情報データベースに従来公知の暗号化データベースの技術を適用した場合の説明図である。
よって、前記遺伝子情報を秘匿するために、図9に示すように、前記非特許文献1〜3に記載された暗号化データベースの技術を適用することが考えられる。
しかしながら、前記非特許文献1〜3の技術では、前記暗号化データを暗号化する際に従来公知の暗号アルゴリズムを使用する場合には、前記登録者および前記検索者が、暗号化された前記関係データや前記問い合わせを生成するための鍵が必要になる。
このため、前記登録者および前記検索者の人数に応じて前記鍵の管理等の問題があった。すなわち、前記登録者および前記検索者の人数に比例して前記鍵の数が多くなるため、鍵管理の安全性(厳格性)やそれに伴う管理コスト等の問題があった。
また、前記非特許文献4の技術については、前記複数のデータ提供者およびデータ検索者と、信頼できる第三者機関とが存在する場合に適用される。すなわち、前記非特許文献4の技術は、前記第三者機関を介した前記各データ提供者と前記各データ検索者との直接通信、いわゆる、P2P(Peer to Peer,peer-to-peer)型の通信に用いられることが想定されている。このため、前記各データ提供者どうしで共有する前記遺伝子情報データベースを構築すること自体が想定されておらず、前記DASモデルを適用できないという問題がある。また、仮に、前記各データ提供者のデータベースを前記遺伝子情報データベースと想定した場合でも、前記非特許文献1〜3と同様に、前記各データ提供者、前記各データ検索者、前記第三者機関が有する鍵について、前記鍵管理の問題があった。
また、前記遺伝子解析では、前記検索者が知得した遺伝子情報が業界内で既知であるか否かを判別するために、前記遺伝子情報に基づく検索情報(問い合わせ情報)から、前記遺伝子情報データベースに格納された遺伝子情報のうち、前記検索情報に類似する前記遺伝子情報である類似情報を検索する類似情報検索処理が頻繁に行われる。例えば、図9に示すように、前記遺伝子情報を塩基配列の文字列情報とした場合に、前記検索情報(「GGCCAGGGCACC」)に対して、前記遺伝子情報データベースに格納された前記類似情報(「GACCGGGGTGCA」)が出力される前記類似情報検索処理が頻繁に行われる。
しかしながら、前記非特許文献1〜3では、前記関係データベースに格納された暗号化データは、前記SQLによる問い合わせ処理に応じた前記属性等の情報が付加された関係データである。このため、前記類似情報検索処理のような類似文字列検索等が想定されておらず、暗号化された前記関係データのままでは効率良く前記類似情報を出力できないという問題があった。例えば、前記暗号化データの完全一致や属性一致による検索等しか行うことができないという問題があった。
また、前記非特許文献4の技術についても、前記類似情報検索処理のような類似文字列検索等が想定されておらず、前記類似情報であるか否かを判別するために、暗号化された前記ブルームフィルタを復号化してから照合する必要があるため、効率的に前記類似情報を出力できないという問題があった。
本発明は、前述の事情に鑑み、管理者および第三者から秘匿された状態で検索情報の類似情報を効率良く検索することを技術的課題とする。
前記技術的課題を解決するために、請求項1記載の発明の類似情報検索システムは、
登録対象の情報である登録情報を記憶する記憶装置と、
前記記憶装置と情報の送受信が可能に接続され、前記記憶装置に対して、前記登録情報を登録させる登録装置と、
前記記憶装置と情報の送受信が可能に接続され、前記記憶装置に対して、記憶された前記登録情報のうち、検索対象の情報である検索情報と同一または類似する前記登録情報である類似情報を検索させる検索装置と、
を有する類似情報検索システムであって、
自然数をそれぞれc,d,k,L,n,m,q,rとし、前記検索情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であり、且つ、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧L,r≧nがそれぞれ成立するものとした場合に、
前記登録装置は、
前記登録情報に基づいて、(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式を演算する多項式演算手段と、
前記登録情報に基づいて、前記登録情報を復元可能なn個の前記部分情報である登録部分情報を抽出する登録部分情報抽出手段と、
抽出されたn個の前記登録部分情報に基づいて、n種類の数値である登録数値を要素とする集合である登録集合を演算する登録集合演算手段と、
前記登録数値が代入された前記多項式の数値である登録代入値を演算する登録代入値演算手段と、
前記登録数値以外の数値である(r−n)種類の擬似数値を演算する擬似数値演算手段と、
前記擬似数値が代入された前記多項式の数値以外の数値である擬似代入値を演算する擬似代入値演算手段と、
前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、前記擬似数値および前記擬似数値に対応する前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を演算することにより、前記登録情報が秘匿化された秘匿登録情報を演算する秘匿登録情報演算手段と、
演算された前記秘匿登録情報を、前記記憶装置に対して送信する秘匿登録情報送信手段と、
を有し、
前記記憶装置は、
前記秘匿登録情報送信手段により送信された前記秘匿登録情報を受信する秘匿登録情報受信手段と、
受信した前記秘匿登録情報を記憶する秘匿登録情報記憶手段と、
を有し、
前記検索装置は、
前記検索情報に基づいて、前記検索情報を復元可能なm個の前記部分情報である検索部分情報を抽出する検索部分情報抽出手段と、
抽出されたm個の前記検索部分情報に基づいて、m種類の数値である検索数値を要素とする集合である検索集合を演算する検索集合演算手段と、
演算された前記検索集合を記憶する検索集合記憶手段と、
m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を演算することにより、前記検索情報が秘匿化された秘匿検索情報を演算する秘匿検索情報演算手段と、
演算された前記秘匿検索情報を、前記記憶装置に対して送信する秘匿検索情報送信手段と、
を有し、
前記記憶装置は、
前記秘匿検索情報送信手段により送信された前記秘匿検索情報を受信する秘匿検索情報受信手段と、
受信した前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段と、
演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段と、
(c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段と、
演算された前記秘匿類似情報を、前記検索装置に対して送信する秘匿類似情報送信手段と、
を有し、
前記検索装置は、
前記秘匿類似情報送信手段により送信された前記秘匿類似情報を受信する秘匿類似情報受信手段と、
記憶した前記検索集合に含まれる前記検索数値が、受信した前記各秘匿類似情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
前記検索数値と同値となる前記登録数値および前記擬似数値を抽出する数値抽出手段と、
抽出された前記登録数値および前記擬似数値がc個以上であるか否かを判別することにより、前記各秘匿類似情報が、前記検索情報に対する前記類似情報として復元可能であるか否かを判別する類似情報復元判別手段と、
抽出された前記登録数値および前記擬似数値がc個以上である場合に、前記登録数値および前記擬似数値に基づいて、前記多項式を演算して前記類似情報を復元する類似情報復元手段と、
を有する
ことを特徴とする。
請求項2に記載の発明は、請求項1に記載の類似情報検索システムにおいて、
前記自然数c,k,nについて、c≧(n+k)/2が成立するものとした場合に、
前記登録装置は、
前記登録情報に基づいて、(k−1)次元で1変数の多項式であって、前記登録情報を復元するために必要な前記多項式上の点が{(n+k)/2}個以上となる前記多項式を演算する多項式演算手段と、
を有する
ことを特徴とする。
前記技術的課題を解決するために、請求項3記載の発明の類似情報検索システムは、
登録対象の情報を登録情報とし、
前記登録情報と同一または類似する情報を類似情報とし、
自然数をそれぞれd,k,n,q,rとし、
前記登録情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記登録情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、r≧nが成立するものとし、
前記登録情報に基づいて抽出された前記登録情報を復元可能なn個の前記部分情報を登録部分情報とし、
抽出されたn個の前記登録部分情報に基づいて演算されたn種類の数値である登録数値を要素とする集合を登録集合とし、
前記登録情報に基づいて演算された(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式に前記登録数値が代入されて演算された数値を登録代入値とし、
前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、
前記登録数値以外の数値である擬似数値および前記擬似数値に対応する擬似代入値であって、前記擬似数値が代入された前記多項式の数値以外の数値である前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、
n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を、前記登録情報が秘匿化された秘匿登録情報として記憶する秘匿登録情報記憶手段と、
検索対象の情報を検索情報とし、
自然数をそれぞれc,L,mとし、
前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であり、且つ、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧Lがそれぞれ成立するものとし、
前記検索情報のうちの前記操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記検索情報に基づいて抽出された前記検索情報を復元可能なm個の前記部分情報を検索部分情報とし、
抽出されたm個の前記検索部分情報に基づいて演算されたm種類の数値である検索数値を要素とする集合を検索集合とし、
m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を、前記検索情報が秘匿化された秘匿検索情報とした場合に、
前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段と、
演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段と、
(c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段と、
を備えたことを特徴とする。
前記技術的課題を解決するために、請求項4記載の発明の類似情報検索プログラムは、
コンピュータを、
登録対象の情報を登録情報とし、
前記登録情報と同一または類似する情報を類似情報とし、
自然数をそれぞれd,k,n,q,rとし、
前記登録情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記登録情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、r≧nが成立するものとし、
前記登録情報に基づいて抽出された前記登録情報を復元可能なn個の前記部分情報を登録部分情報とし、
抽出されたn個の前記登録部分情報に基づいて演算されたn種類の数値である登録数値を要素とする集合を登録集合とし、
前記登録情報に基づいて演算された(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式に前記登録数値が代入されて演算された数値を登録代入値とし、
前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、
前記登録数値以外の数値である擬似数値および前記擬似数値に対応する擬似代入値であって、前記擬似数値が代入された前記多項式の数値以外の数値である前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、
n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を、前記登録情報が秘匿化された秘匿登録情報として記憶する秘匿登録情報記憶手段、
検索対象の情報を検索情報とし、
自然数をそれぞれc,L,mとし、
前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であれば、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧Lがそれぞれ成立するものとし、
前記検索情報のうちの前記操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記検索情報に基づいて抽出された前記検索情報を復元可能なm個の前記部分情報を検索部分情報とし、
抽出されたm個の前記検索部分情報に基づいて演算されたm種類の数値である検索数値を要素とする集合を検索集合とし、
m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を、前記検索情報が秘匿化された秘匿検索情報とした場合に、
前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段、
前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段、
演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段、
(c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段、
として機能させることを特徴とする。
請求項1に記載の発明によれば、前記各装置間で送受信される各情報(登録情報、検索情報、類似情報)が秘匿化されているため、前記各装置のユーザ以外の第三者から前記各情報を秘匿することができる。また、請求項1に記載の発明によれば、前記記憶装置では、前記登録情報が前記秘匿登録情報として秘匿化されており、且つ、前記検索情報が前記秘匿検索情報として秘匿化されているため、前記記憶装置のユーザである管理者からも前記各情報を秘匿することができる。この結果、前記第三者および前記管理者から、前記各情報が秘匿された状態で、前記登録情報の所有者であって前記登録装置のユーザである登録者と、前記検索情報の知得者であって前記検索装置のユーザである検索者と、前記記憶装置の管理業務を委託された外部委託業者としての前記管理者とを有する前記DASモデルを構成できる。
また、請求項1に記載の発明によれば、前記登録装置は、前記登録者ごとの鍵を使用しなくても、前記登録情報を秘匿化できると共に、前記登録装置は、前記検索者ごとの鍵を使用しなくても、前記検索情報を秘匿化できる。この結果、前記各装置との間で送受信される各情報(登録情報、検索情報、類似情報)が、前記鍵を使用せずに秘匿化でき、従来公知の前記暗号化データベースにおける鍵管理の安全性(厳格性)やそれに伴う管理コスト等の問題を解決することができる。
また、請求項1に記載の発明によれば、前記秘匿類似情報を検索する際に、前記秘匿検索情報に含まれる検索数値と、前記各秘匿登録情報に含まれる各数値とを照合するため、暗号化された登録情報や検索情報を復号化してから照合を行う場合に比べ、効率的に前記秘匿類似情報を検索できる。
請求項2に記載の発明によれば、{(n+k)/2}個以上の前記登録多項式点が判明すれば前記多項式が復元できることが保証されており、且つ、cがd,q,n,mに基づいて演算され、且つ、c≧(n+k)/2,c≧Lがそれぞれ成立する。このため、前記検索装置は、受信した前記各秘匿類似情報に含まれるc個以上の前記登録数値または前記擬似数値に、{(n+k)/2}個以上の前記登録数値が含まれていれば、前記各秘匿類似情報から前記各類似情報を常に復元することができる。この結果、前記検索装置は、前記秘匿類似情報を復元する際に、抽出された前記登録数値および前記擬似数値がc個以上であるか否かを判別することにより、前記各秘匿類似情報が、前記検索情報に対する前記類似情報として復元可能であるか否かを適切に判別することができる。また、前記記憶装置は、前記秘匿類似情報を検索する際に、抽出された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別することにより、前記多項式点集合が、前記検索情報に対する前記類似情報として復元可能であるか否かを適切に判別することができる。
請求項3に記載の発明によれば、記憶した前記秘匿登録情報を、前記登録情報に復元されずに秘匿化されたままの状態で検索できる。また、検索対象としての前記検索情報も、前記秘匿検索情報として秘匿化されたままの状態で前記検索が実行できる。したがって、前記検索情報の知得者である検索者以外の第三者から前記各情報(登録情報、検索情報、類似情報)を秘匿することができると共に、前記類似情報検索システムの管理者からも前記各情報を秘匿することができる。
また、請求項3に記載の発明によれば、前記検索者ごとの鍵を使用しなくても、前記検索情報を秘匿化できる。この結果、従来公知の前記暗号化データベースにおける鍵管理の安全性(厳格性)やそれに伴う管理コスト等の問題を解決することができる。
また、請求項3に記載の発明によれば、前記秘匿類似情報を検索する際に、前記秘匿検索情報に含まれる検索数値と、前記各秘匿登録情報に含まれる各数値とを照合するため、暗号化された登録情報や検索情報を復号化してから照合を行う場合に比べ、効率的に前記秘匿類似情報を検索できる。
請求項4に記載の発明によれば、記憶した前記秘匿登録情報を、前記登録情報に復元されずに秘匿化されたままの状態で検索できる。また、検索対象としての前記検索情報も、前記秘匿検索情報として秘匿化されたままの状態で前記検索が実行できる。したがって、前記検索情報の知得者である検索者以外の第三者から前記各情報(登録情報、検索情報、類似情報)を秘匿することができると共に、前記類似情報検索システムの管理者からも前記各情報を秘匿することができる。
また、請求項4に記載の発明によれば、前記検索者ごとの鍵を使用しなくても、前記検索情報を秘匿化できる。この結果、従来公知の前記暗号化データベースにおける鍵管理の安全性(厳格性)やそれに伴う管理コスト等の問題を解決することができる。
また、請求項4に記載の発明によれば、前記秘匿類似情報を検索する際に、前記秘匿検索情報に含まれる検索数値と、前記各秘匿登録情報に含まれる各数値とを照合するため、暗号化された登録情報や検索情報を復号化してから照合を行う場合に比べ、効率的に前記秘匿類似情報を検索できる。
次に図面を参照しながら、本発明の実施の形態の具体例(以下、実施例と記載する)を説明するが、本発明は以下の実施例に限定されるものではない。
なお、以下の図面を使用した説明において、理解の容易のために説明に必要な部材以外の図示は適宜省略されている。
図1は本発明の実施例1の類似情報検索システムの全体説明図である。
図1において、本発明の実施例1の類似情報検索システムSは、登録対象の情報(データ)である登録情報を記憶する記憶装置の一例としてのデータベースサーバ(類似情報検索装置)DSを有する。また、前記類似情報検索システムSは、通信回線の一例としてのインターネット1を介して前記データベースサーバDSと情報の送受信が可能に接続され、前記データベースサーバDSに対して、前記登録情報を登録させる(格納させる)登録装置の一例としての登録用クライアントパソコンPCaを有する。
さらに、前記類似情報検索システムSは、前記インターネット1を介して前記データベースサーバDSと情報の送受信が可能に接続され、前記データベースサーバDSに対して、記憶された前記登録情報のうち、検索対象の情報である検索情報と同一または類似する前記登録情報である類似情報を検索させる検索装置の一例としての検索用クライアントパソコンPCbを有する。
実施例1の前記データベースサーバDSおよび前記各クライアントパソコンPCa,PCbは、コンピュータ本体H1、ディスプレイH2、入力装置であるキーボードH3、マウスH4、図示しないハードディスクドライブ、DVD(Digital Versatile Disc)ドライブ等により構成されている。
(実施例1の制御部の説明)
図2は本発明の実施例1の類似情報検索システムを構成する各装置の機能をブロック図(機能ブロック図)で示した説明図である。
図2において、前記データベースサーバDSおよび前記各クライアントパソコンPCa,PCbのコンピュータ本体H1は、外部との信号の入出力および入出力信号レベルの調節等を行うI/O(入出力インターフェース)、必要な起動処理を行うためのプログラムおよびデータ等が記憶されたROM(リードオンリーメモリ、記録媒体)、必要なデータ及びプログラムを一時的に記憶するためのRAM(ランダムアクセスメモリ、記録媒体)、ROM等に記憶された起動プログラムに応じた処理を行うCPU(中央演算処理装置)、ならびにクロック発振器等を有しており、前記ROM及びRAM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
前記構成の前記データベースサーバDSおよび前記各クライアントパソコンPCa,PCbは、前記ハードディスクやROM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
(登録用クライアントパソコンPCaの制御部の説明)
前記登録用クライアントパソコンPCaのハードディスクドライブには、前記登録用クライアントパソコンPCaの基本動作を制御する基本ソフト(オペレーティングシステム)OSや、アプリケーションプログラムとしての秘匿登録情報送信プログラムAP1、その他の図示しないソフトウェアが記憶されている。
(秘匿登録情報送信プログラムAP1)
前記秘匿登録情報送信プログラムAP1は、下記の機能手段(プログラムモジュール)を有する。
図3は実施例1の登録画像の説明図である。
CA1:登録画像表示手段
登録画像表示手段CA1は、図3に示す、前記登録情報を前記データベースサーバDSに登録させるための登録画像2を前記ディスプレイH2に表示する。実施例1の前記登録画像2は、前記登録情報を入力するための登録情報入力部2aと、入力された前記登録情報を前記データベースサーバDSに登録するための登録ボタン2bとを有する。なお、実施例1では、前記登録情報入力部2aには、図3に示すように、文字列情報により構成された前記登録情報s(例えば、塩基配列の文字列情報である「AGCCGGAAGGCC」)が入力される。
CA2:登録判別手段
登録判別手段CA2は、前記登録情報sを前記データベースサーバDSに登録するか否かを判別する。実施例1の前記登録判別手段CA2は、前記登録情報入力部2aに前記登録情報sが入力されて前記登録ボタン2bが入力されたか否かを判別することにより、前記登録情報sを前記データベースサーバDSに登録するか否かを判別する。
ここで、実施例1の前記類似情報検索システムSでは、類似文字列検索手法であるq−gramの技術と、生体認証やパスワードの復元等に利用されている曖昧照合法であるファジーボールト(Fuzzy Vault、Fuzzy Vault Scheme)の技術とを組み合わせることにより、前記登録情報sが秘匿化された状態で登録・検索等の各処理が実行される。
(q−gramを用いた類似文字列検索手法について)
ここで、類似文字列検索手法とは、ある文字列に対して、文字の挿入・削除・置換の各編集操作の回数である編集距離が、所定の値以下になる文字列を類似文字列として検出する手法をいう。すなわち、2つの文字列を同一にするために必要な前記各編集操作の最小値である前記編集距離に基づいて、データベース内の全ての文字列から前記類似文字列を検索する手法をいう。
また、q−gramとは、0を除いた自然数をqとした場合に、元の文字列の長さqとなる部分文字列のことをいう。例えば、元の文字列を「ABCDEFG」とし、q=4とした場合、前記q−gramは、「ABCD」,「BCDE」,「CDEF」,「DEFG」の4つである。
なお、0を除いた自然数をそれぞれd,n,mとし、長さnの第1の文字列と長さmの第2の文字列との前記編集距離をdとし、前記自然数n,mのうちのいずれか大きい値をmax(n,m)とした場合に、前記第1の文字列と前記第2の文字列とは、少なくとも、{max(n,m)−(d−1)q−1}個の前記q−gramを共通に持つことが保証されている(例えば、非特許文献10参照)。
したがって、q−gramを用いた類似文字列検索手法は、まず、前記文字列をsqgとした場合に、予め設定された前記自然数n,m,q,dの値に基づいて、前記q−gramの共有数の最小値(max(n,m)−(d−1)q−1)を演算し、前記文字列sqgと、前記データベース内の各文字列との各共有数を演算することにより、共有数が前記最小値以下となる前記各文字列を前記類似文字列の候補から排除する、いわゆる、フィルタリング処理を実行する。そして、前記文字列sqgと、前記類似文字列の候補となった前記各文字列との前記編集距離を実際に演算することにより、最終的な解である前記類似文字列を演算する、いわゆる、洗練化処理を実行する。
この結果、q−gramを用いた類似文字列検索手法は、総当りの類似文字列検索手法に比べ、処理を高速化できる。すなわち、長さnの第1の文字列と長さmの第2の文字列との前記編集距離の計算について、計算量を評価するためのランダウの記号(ランダウの記法、O-記法)を用いた場合、総当りの類似文字列検索手法では、前記計算量がO(nm)時間となる。すなわち、n=mとした場合、O(n)時間であるため、計算量がnの二乗関数的に大きくなる。これに対して、前記q−gramを用いた類似文字列検索手法では、前記計算量がO(n+m)時間となる。このため、前記フィルタリング処理を高速化できる。すなわち、n=mとした場合、O(2n)時間であるため、計算量がnの線形関数的に大きくなり、計算量を低減できる。
(ファジーボールトについて)
また、ファジーボールトとは、誤り訂正符号を用いて、秘匿化された情報どうしの曖昧な照合を実行する手法である。ここで、誤り訂正符号とは、冗長性(redundancy)が付加された情報の集合としての符号であって、前記冗長性が前記情報に含まれる誤りの訂正に用いられる符号のことである。このため、前記誤り訂正符号であれば、例えば、送信中にノイズが混入した場合でも、前記冗長性に基づいて、前記ノイズが除去された前記情報を受信できる。
前記ファジーボールトでは、秘密情報を施錠する施錠処理と、施錠された前記秘密情報を開錠する開錠処理とが実行される。
まず、0を除いた自然数をそれぞれk,t,p,rとし、前記自然数pを位数とする有限体(finite field)をFとし、前記有限体Fのk次拡大体をFとし、前記有限体Fのt次拡大体をFとし、前記有限体Fのr次拡大体をFとし、前記k次拡大体Fの部分体としての秘密情報をsfvとし(sfv∈F)、前記t次拡大体Fの部分体としての第1の集合をAとし(A∈F)、前記r次拡大体Fの部分体としての集合、いわゆる、ボールト(vault)をRとし(R∈F)、r>tとした場合に、前記秘密情報sfvと、前記第1の集合Aとに基づいて、前記ボールトRを演算する前記施錠処理を実行する。
そして、前記t次拡大体Fの部分体としての第2の集合をBとし(B∈F)、前記第1の集合Aと前記第2の集合Bとが十分近い場合、例えば、前記各集合A,Bの各要素について、前記各要素の値が8割以上同一である場合に、前記ボールトRと、前記第2の集合Bとに基づいて、前記秘密情報sfvを演算する前記開錠処理を実行する。
なお、体(field)とは、加減乗除の四則演算が定義された集合であって、前記集合の要素である元どうしの前記四則演算が前記集合内で閉じている(演算結果が元として集合に含まれる)場合の前記集合のことをいう。また、有限体とは、前記集合の元の数(位数)が、有限個である体のことであり、前記有限体は、ガロア体(Galois field)とも呼ばれ、特に位数が素数の場合には素体(prime field)とも呼ばれる。また、拡大体とは、前記体を部分集合として含む体のことであり、例えば、実数体(実数全体の集合)は、有理数体(有理数全体の集合)の拡大体である。また、有限体のk次拡大体とは、加減乗除の四則演算が定義された、前記有限体の元を係数とする(k−1)次以下の多項式を元とする集合(多項式集合)のことをいう。さらに、部分体とは、前記体の部分集合であり、前記体で定義されている前記四則演算が成立する前記部分集合のことをいう。
なお、体、有限体、拡大体、部分体等については、例えば、非特許文献6に記載されており、公知であるため、詳細な説明を省略する。
(RS符号を用いたファジーボールトについて)
前記ファジーボールトでは、前記施錠処理および前記開錠処理を実行するために、前記誤り訂正符号として、誤り訂正能力が高いとされている、RS符号(Reed-Solomon符号、リード・ソロモン符号)が利用される場合がある。ここで、前記RS符号とは、前記情報がビットのブロックに分割されて表現され、前記ブロック単位の誤り訂正ができる符号である。なお、前記ブロックは、具体的には、前記有限体(F)のk次拡大体(F)の元である前記多項式上の点である。すなわち、前記RS符号では、所定の数の前記多項式上の点を要素とする集合が、いわゆる、符号語としてビットで表現される。なお、n個の前記多項式上の点からなる集合を前記符号語として表現する場合、前記RS符号は、特に、(n,k)符号((n,k)RS符号)という。
なお、前記RS符号等については、例えば、非特許文献6等に記載されており、公知であるため、詳細な説明を省略する。
前記RS符号を用いたファジーボールトでは、前記施錠処理において、まず、n=t,r>nとした場合に、k個の要素からなる前記秘密情報sfv(sfv∈F)と、n個の要素からなる前記第1の集合A(A∈F)とに基づいて、前記多項式上のn個の点からなる前記(n,k)符号を演算する。次に、前記(n,k)符号に対して、前記多項式上の点以外のランダムな(r−n)点からなる集合であるチャフ(chaff)を前記(n,k)符号に付与する。そして、前記(n,k)符号と、前記チャフとによって構成されたr個の点からなる集合が前記ボールトR(R∈F)として出力される。
また、前記RS符号を用いたファジーボールトでは、前記開錠処理において、前記第1の集合Aのn個以下の要素を有する前記第2の集合B(B∈F)と、r個の点からなる前記ボールトRとに基づいて、前記多項式を復元することにより、前記秘密情報sfvを演算する。
なお、前記RS符号では、前記(n,k)符号における(n−k)/2個以下の点の誤りを訂正できることが保証されている(例えば、非特許文献6、7参照)。すなわち、前記(n,k)符号における{(n+k)/2}個以上の点が判明すれば前記多項式の復元に成功することが知られている(n−{(n−k)/2}=(n+k)/2)。この結果、前記RS符号を用いたファジーボールトでは、前記各集合A,Bの各要素について、{(n+k)/2}個以上の要素が同一である場合には、前記多項式が復元でき、前記秘密情報sfvを演算できることが保証されている。
したがって、前記RS符号を用いたファジーボールトでは、前記チャフを含む前記ボールトRから前記(n,k)符号を特定する問題と、前記(n,k)符号から前記多項式を復元する問題、いわゆる、多項式復元問題との困難性によって、前記秘密情報sfvの秘匿化についての安全性が保証されている。
なお、前記RS符号を用いたファジーボールトについては、例えば、非特許文献7、8等に記載されており、公知であるため、詳細な説明を省略する。
CA3:多項式演算手段
多項式演算手段CA3は、前記登録情報sに基づいて、(k−1)次元で1変数の多項式であって、前記登録情報sを復元するために必要な前記多項式上の点が{(n+k)/2}個以上となる前記多項式を演算する。実施例1の前記多項式演算手段CA3は、前記多項式の変数をxとし、前記多項式のk個の係数をs〜sk−1とし、前記多項式をf(x)として以下の式(1)に示すものとした場合、前記係数s〜sk−1を演算することにより、前記多項式f(x)を演算する。
f(x)=s+sx+s+…+sk−2k−2+sk−1k−1…(1)
すなわち、実施例1の前記多項式演算手段CA3は、前記登録情報sを前記秘密情報sfvとみなして(s=sfv)、前記登録情報sに基づいて、前記RS符号を用いたファジーボールトにおける前記多項式f(x)の係数s〜sk−1を演算する。
実施例1の前記登録情報sは、具体的には、まず、前記登録情報sを前記文字列sqgとみなすことにより(s=sfv=sqg)、(k−1)個の部分文字列を抽出する。ここで、前記登録情報sの長さ(文字数)を‖s‖とした場合、(‖s‖−q+1)個のq−gramが抽出されることが知られている(例えば、非特許文献6等参照)。すなわち、前記登録情報sからn個のq−gramが抽出されるとした場合には、q=‖s‖−n+1が成立する。よって、前記部分文字列をsk(1)〜sk(k−1)とした場合、長さ(‖s‖−(k−1)+1)の前記部分文字列sk(1)〜sk(k−1)が抽出される。そして、前記部分文字列sk(1)〜sk(k−1)を、前記有限体Fの元としての前記係数s〜sk−1(s,s,…,sk−2,sk−1∈F)に対応付けることにより、前記多項式f(x)を演算する。例えば、sk−1=1とし、且つ、予め設定された双方向関数の一例としての可逆関数により、前記部分文字列sk(1)〜sk(k−1)を、前記有限体Fの元となる前記係数s〜sk−2に変換する。
ここで、可逆関数とは、前記部分文字列sk(1)〜sk(k−1)から前記係数s〜sk−1に変換可能、且つ、前記係数s〜sk−1から前記部分文字列sk(1)〜sk(k−1)に変換可能な関数である。例えば、前記登録情報sを「AGCCGGAAGGCC」とし、k=10とし、長さ4(12−(10−1)+1=4)の前記部分文字列sk(1)を「AGCC」とし、s=5とした場合に、前記可逆関数とは、「AGCC」→5が成立する対応関係、いわゆる、写像(map)のことである。また、この場合、前記可逆関数をTとし、前記可逆関数Tの逆関数をT−1とし、前記部分文字列sk(1)を入力した前記可逆関数Tの出力値をT(sk(1))とし、前記係数sを入力した前記逆関数T−1の出力値をT−1(s)とした場合に、T(sk(1))=s=5、T−1(s)=T−1(5)=sk(1)が成立する。
なお、実施例1では、前記登録情報sのq−gramを抽出するために、前記自然数qの値が予め設定されている。よって、前記登録情報入力部2aに前記登録情報sが入力された場合、前記自然数nの値が、n=‖s‖−q+1として設定されている。また、実施例1では、前記登録情報sと前記検索情報との前記編集距離dについての最大値がdmax(d≦dmax)として予め設定されている。さらに、実施例1では、前記自然数(次元数)kの値が、以下の式(2)を前記自然数kについて解いた式(2)′により設定されている。
(n+k)/2=n−(dmax−1)q−1 …(2)
k=n−2(dmax−1)q−2 …(2)′
CA4:登録部分情報抽出手段
登録部分情報抽出手段CA4は、前記登録情報sに基づいて、前記登録情報sを復元可能なn個の部分情報である登録部分情報を抽出する。実施例1の前記登録部分情報抽出手段CA4は、前記登録情報sを前記文字列sqgとみなすことにより(s=sfv=sqg)、n個の前記q−gramを前記登録部分情報として抽出する。実施例1の前記登録部分情報抽出手段CA4は、前記登録部分情報をsq1〜sqnとした場合に、前記多項式演算手段CA3と同様に、n個(n=‖s‖−q+1)の部分文字列である前記登録部分情報sq1〜sqnを抽出する。例えば、q=4とした場合、前記登録情報s(「AGCCGGAAGGCC」)の登録部分情報sq1〜sqnは、sq1(「AGCC」),sq2「GCCG」,…,sqn=sq9「GGCC」の9つである(n=12−4+1=9)。
CA5:登録集合演算手段
登録集合演算手段CA5は、前記登録部分情報抽出手段CA4により抽出されたn個の前記登録部分情報に基づいて、n種類の数値である登録数値を要素とする集合である登録集合を演算する。すなわち、実施例1の前記登録集合演算手段CA5は、前記RS符号を用いたファジーボールトにおける前記第1の集合Aの一例としての前記登録集合Aを演算する(A∈F)。
なお、実施例1の前記登録集合演算手段CA5は、予め設定された一方向関数、いわゆる、ハッシュ関数により、前記登録集合Aを演算する。前記登録集合演算手段CA5は、具体的には、前記ハッシュ関数をHとし、前記ハッシュ関数Hによる前記登録部分情報sq1〜sqnの出力値をH(sq1)〜H(sqn)とし、前記登録数値をa〜aとした場合に(a,a,…,a∈F)、H(sq1)=a,H(sq2)=a,…,H(sqn)=aを演算することにより、前記登録集合Aを演算する(A=(a,a,…,a))。
CA6:登録代入値演算手段
登録代入値演算手段CA6は、前記登録数値a〜aが代入された前記多項式f(x)の数値である登録代入値を演算する。実施例1の前記登録代入値演算手段CA6は、前記式(1)について、x=a,x=a,…,x=aとした場合の前記多項式f(x)の値である前記登録代入値f(a),f(a),…,f(a)を演算する。
CA7:擬似数値演算手段
擬似数値演算手段CA7は、前記登録数値a〜a以外の数値である(r−n)種類の擬似数値を演算する。実施例1の前記擬似数値演算手段CA7は、前記擬似数値をan+1〜aとした場合に、前記有限体Fのp個の要素(元)のうち、前記登録数値a〜a以外の(r−n)個の要素を抽出することにより、前記擬似数値an+1〜aを演算する(an+1,an+2,…,a∈F)。
CA8:擬似代入値演算手段
擬似代入値演算手段CA8は、前記擬似数値が代入された前記多項式f(x)の数値以外の数値である擬似代入値を演算する。実施例1の前記擬似代入値演算手段CA8は、1からrまで値をとる変数をi,jとし、前記擬似数値an+1〜aに対応する前記擬似代入値をf′(an+1)〜f′(a)とした場合に、f′(a)≠f(a)且つf′(a)≠f(a)且つf′(a)≠f′(a)となる前記擬似代入値をf′(an+1)〜f′(a)を演算する。
CA9:秘匿登録情報演算手段
秘匿登録情報演算手段CA9は、前記登録数値a〜aおよび前記登録数値a〜aに対応する前記登録代入値f(a),f(a),…,f(a)を一組とする前記多項式上の点を登録多項式点とし、前記擬似数値an+1〜aおよび前記擬似数値an+1〜aに対応する前記擬似代入値f′(an+1)〜f′(a)を一組とする前記多項式以外の点を擬似多項式点とした場合に、n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を演算することにより、前記登録情報が秘匿化された秘匿登録情報を演算する。すなわち、実施例1の前記秘匿登録情報演算手段CA9は、前記RS符号を用いたファジーボールトにおける前記(n,k)符号の一例としての前記登録多項式点と、前記チャフの一例としての前記擬似多項式点とを有する前記ボールトRの一例としての前記多項式点集合R(秘匿登録情報R)を演算する。
実施例1の前記秘匿登録情報演算手段CA9は、前記登録多項式点を(a,f(a))〜(a,f(a))とし、前記擬似多項式点を(an+1,f′(an+1))〜(a,f′(a))とした場合に、以下の式(3)に示す前記多項式点集合Rを演算する。
R=((a,f(a)),
(a,f(a)),…,
(a,f(a)),
(an+1,f′(an+1)),
(an+2,f′(an+2)),…,
(a,f′(a))) …(3)
なお、実施例1の前記秘匿登録情報演算手段CA9では、前記秘匿登録情報Rは、前記式(3)に示す前記多項式点集合Rの各数値a〜aについて、昇順に並び替えられた状態で出力される(演算される)。
CA10:秘匿登録情報送信手段
秘匿登録情報送信手段CA10は、前記秘匿登録情報演算手段CA9により演算された前記秘匿登録情報Rを、前記データベースサーバDSに対して送信する。
CA11:終了判別手段
終了判別手段CA11は、前記秘匿登録情報送信プログラムAP1を終了する入力がされたか否かを判別する。
(検索用クライアントパソコンPCbの制御部の説明)
前記検索用クライアントパソコンPCbのハードディスクドライブには、前記検索用クライアントパソコンPCbの基本動作を制御する基本ソフト(オペレーティングシステム)OSや、アプリケーションプログラムとしての秘匿検索情報送信プログラムAP2、秘匿類似情報復元プログラムAP3、その他の図示しないソフトウェアが記憶されている。
(秘匿検索情報送信プログラムAP2)
前記秘匿検索情報送信プログラムAP2は、下記の機能手段(プログラムモジュール)を有する。
図4は実施例1の登録画像の説明図である。
CB1:検索画像表示手段
検索画像表示手段CB1は、図4に示す、前記検索情報と同一または類似する前記類似情報を前記データベースサーバDSに検索させるための検索画像3を前記ディスプレイH2に表示する。実施例1の前記登録画像3は、前記検索情報をtとし、前記類似情報をt′とした場合に、前記検索情報t(例えば、「GGCCAGGGCACC」)を入力するための検索情報入力部3aと、入力された前記検索情報tの類似情報t′を、秘匿化した状態で、前記データベースサーバDSに検索させる処理、いわゆる、秘匿類似情報検索処理を開始させるための検索開始ボタン3bと、検索結果としての前記類似情報t′(例えば、「GGCCGGGGTGCA」等)を表示するための類似情報出力部3cとを有する。
CB2:検索判別手段
検索判別手段CB2は、前記データベースサーバDSに前記類似情報検索処理を開始させるか否かを判別する。実施例1の前記検索判別手段CB2は、前記検索情報入力部3aに前記検索情報tが入力されて前記検索開始ボタン3bが入力されたか否かを判別することにより、前記データベースサーバDSに前記秘匿類似情報検索処理を開始させるか否かを判別する。
CB3:検索部分情報抽出手段
検索部分情報抽出手段CB3は、前記検索情報tに基づいて、前記検索情報tを復元可能なm個の前記部分情報である検索部分情報を抽出する。実施例1の前記検索部分情報抽出手段CB3は、前記検索情報tを前記文字列sqgとみなすことにより(t=sqg)、m個の前記q−gramを前記検索部分情報として抽出する。実施例1の前記検索部分情報抽出手段CB3は、前記登録部分情報抽出手段CA4と同様に、前記検索部分情報をtq1〜tqmとし、前記検索情報tの長さ(文字数)を‖t‖とした場合に、m個(m=‖t‖−q+1)の部分文字列である前記検索部分情報tq1〜tqmを抽出する。例えば、q=4とした場合、前記検索情報t(「GGCCAGGGCACC」)の検索部分情報tq1〜gqmは、tq1(「GGCC」),tq2(「GCCA」),…,tqm=tq9(「CACC」)の9つである(m=12−4+1=9)。
CB4:検索集合演算手段
検索集合演算手段CB4は、前記検索部分情報抽出手段CB3により抽出されたm個の前記検索部分情報tq1〜tqmに基づいて、m種類の数値である検索数値を要素とする集合である検索集合を演算する。すなわち、実施例1の前記検索集合演算手段CB4は、前記RS符号を用いたファジーボールトにおける前記第2の集合Bの一例としての前記検索集合Bを演算する(B∈F)。
なお、実施例1の前記検索集合演算手段CB4は、前記ハッシュ関数Hにより、前記検索集合Bを演算する。前記検索集合演算手段CB4は、具体的には、前記ハッシュ関数Hによる前記検索部分情報tq1〜tqmの出力値をH(tq1)〜H(tqm)とし、前記検索数値をb〜bとした場合に(b,b,…,b∈F)、H(tq1)=b,H(tq2)=b,…,H(tqm)=bを演算することにより、前記検索集合Bを演算する(B=(b,b,…,b))。なお、実施例1の前記検索集合演算手段CB4では、前記検索集合Bは、前記検索数値b〜bが、昇順に並び替えられた状態で出力される(演算される)。
CB5:検索集合記憶手段
検索集合記憶手段CB5は、前記検索集合演算手段CB4により演算された前記検索集合B(B=(b,b,…,b))を記憶する。
CB6:秘匿検索情報演算手段
秘匿検索情報演算手段CB6は、自然数をLとし、L<mが成立するとした場合に、m種類の前記検索数値b〜bのうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値(b〜b)を要素とする前記検索集合Bの部分集合である検索部分集合を演算することにより、前記検索情報tが秘匿化された秘匿検索情報を演算する。実施例1の前記秘匿検索情報演算手段CB6は、前記検索部分集合をBとした場合に、前記検索集合Bの検索数値b〜bからL種類の検索数値が除かれた、(m−L)種類の前記検索数値(b〜b)を要素とする前記検索部分集合(秘匿検索情報)Bを演算する。例えば、L=2とし、変数iを1〜3およびm以外の数値とし、前記検索数値b〜bのうちのbおよびbの2種類の数値が除かれた場合、(b,0,b,…,bi−1,0,bi+1,…,b)→(b,b,…,bi−1,bi+1,…,b)=Bを演算する。
CB7:秘匿検索情報送信手段
秘匿検索情報送信手段CB7は、前記秘匿検索情報演算手段CB6により演算された前記秘匿検索情報Bを、前記データベースサーバDSに対して送信する。
CB8:終了判別手段
終了判別手段CB8は、前記秘匿検索情報送信プログラムAP2を終了する入力がされたか否かを判別する。
(秘匿類似情報復元プログラムAP3)
また、前記秘匿類似情報復元プログラムAP3は、下記の機能手段(プログラムモジュール)を有する。
CB9:秘匿類似情報受信手段
秘匿類似情報受信手段CB9は、後述する秘匿類似情報送信手段CD8により送信された前記類似情報t′が秘匿化された秘匿類似情報を受信する。実施例1の前記秘匿類似情報受信手段CB9では、前記秘匿類似情報として、前記データベースサーバDSに登録済の複数の前記多項式点集合Rの一例としてのM個の候補多項式点集合RA1〜RAMを要素とする集合である解候補集合R(R=(RA1,RA2,…,RAM))を前記秘匿類似情報として受信する。なお、前記候補多項式点集合RA1〜RAMおよび前記解候補集合Rについては後述する。
CB10:候補多項式点集合演算手段
候補多項式点集合演算手段CB10は、検索数値判別手段CB10Aと、数値抽出手段CB10Bとを有し、前記類似情報t′を演算可能な多項式点集合の候補としての候補多項式点集合を演算する。実施例1の前記候補多項式点集合演算手段CB10は、前記各候補多項式点集合RA1〜RAMの部分集合となる前記候補多項式点部分集合をQ〜Qとした場合に、前記検索集合記憶手段CB5に記憶した前記検索集合Bに含まれる検索数値b〜bと、前記秘匿類似情報受信手段CB9により受信した前記秘匿類似情報(解候補集合R)に含まれる各候補多項式点集合RA1〜RAMとに基づいて、前記各候補多項式点部分集合Q〜Qを演算する。
CB10A:検索数値判別手段
検索数値判別手段CB10Aは、前記検索数値b〜bが、前記各候補多項式点集合RA1〜RAMに含まれる登録数値a〜aまたは前記擬似数値an+1〜aと同値であるか否かを判別する。実施例1の前記検索数値判別手段CB10Aは、m個の前記検索数値b〜bが、前記各数値a〜aと同値であるか否かを、M個の前記各候補多項式点集合RA1〜RAMについて全て判別する。なお、前記検索数値判別手段CB10Aでは、m個の前記検索数値b〜bと、r個の前記各数値a〜aとが昇順に並べられているため、例えば、b=aが成立する場合には、検索数値bは数値a以降の数値と比較してゆくことにより、処理を高速化できる。
CB10B:数値抽出手段
数値抽出手段CB10Bは、前記検索数値b〜bと同値となる前記登録数値a〜aおよび前記擬似数値an+1〜aを抽出することにより、同値となる各数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))を抽出する。
実施例1の前記数値抽出手段CB10Bは、i=1,2,…,mとし、j=1,2,…,Mとし、変数をx,yとし、変数x,yにより構成された点を(x,y)とした場合に、まず、前記検索情報Bに含まれるi番目の検索数値bが、j番目の候補多項式点集合RAjに含まれる数値a〜aのいずれかと同値である場合には、前記同値の数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))を点(x,y)にセットする(代入する)。例えば、b=aとなる場合には、点(x,y)に多項式点(a,f(a))をセットする。また、i番目の検索数値bが、j番目の候補多項式点集合RAjの数値a〜aと同値でない場合には、点(x,y)に何もセットしない。例えば、b≠a,a,…,aとなる場合には、点(x,y)に点(o,o)をセットする((x,y)=(o,o)=φ)。
すなわち、以下の式(4)に示すように、j番目の候補多項式点集合RAjについてのi番目の検索数値bの射影を演算する。
(b,o)
(x,y)←−−−−−RAj …(4)
そして、前記射影である点(x,y)を、j番目の候補多項式点部分集合Qの要素とする(Q←Q∪(x,y))。
したがって、実施例1の前記候補多項式点集合演算手段CB10は、変数i,jの全ての値について、上記の処理を繰り返して、全ての候補多項式点集合RA1〜RAMの候補多項式点部分集合Q〜Qを演算する。
CB11:解集合演算手段
解集合演算手段CB11は、類似情報復元判別手段CB11Aを有し、前記類似情報t′を復元可能な各候補多項式点部分集合Q〜Qのみを要素とする集合である解集合を演算する。実施例1の前記解集合演算手段CB11は、0を除いた自然数をcとし、前記各候補多項式点部分集合Q〜Qの要素数、すなわち、抽出された多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))の総数をそれぞれ‖Q‖〜‖Q‖とし、前記解集合をRとした場合に、前記要素数‖Q‖〜‖Q‖がc個以上であると判別された前記各候補多項式点部分集合Q〜Qのみを要素とする前記解集合Rを演算する。
CB11A:類似情報復元判別手段
類似情報復元判別手段CB11Aは、0を除いた自然数をcとした場合に、前記数値抽出手段CB10Aにより抽出された前記登録数値a〜aおよび前記擬似数値an+1〜aがc個以上であるか否かを判別することにより、前記各秘匿類似情報が、前記検索情報b〜bに対する前記類似情報t′として復元可能であるか否かを判別する。実施例1の前記類似情報復元判別手段CB11Aは、前記要素数‖Q‖〜‖Q‖がc個以上であるか否かを判別することにより、抽出された前記数値a〜aがc個以上であるか否かを判別する。なお、実施例1の前記類似情報復元判別手段CB12では、前記自然数cの値が、以下の式(5)により設定されている。
c=max(n,m)−(d−1)q−1 …(5)
CB12:類似情報復元手段
類似情報復元手段CB12は、前記解集合演算手段CB11により演算された前記解集合Rに含まれる前記登録数値a〜aおよび前記擬似数値an+1〜aに基づいて、前記多項式f(x)を演算して前記類似情報t′を復元する。なお、実施例1の前記類似情報復元手段CB12では、前記解集合Rの各候補多項式点部分集合(Q〜Q)に含まれる前記登録数値a〜aに対応する登録多項式点(a,f(a))〜(a,f(a))が{(n+k)/2}個以上既知である場合には、従来公知の誤り訂正符号の復号化アルゴリズムに基づいて、前記解集合Rから前記多項式f(x)を復元できる。すなわち、k個の前記係数s〜sk−1が前記解集合Rの各候補多項式点部分集合(Q〜Q)ごとに演算される。このため、前記類似情報復元手段CB12では、まず、前記復号化アルゴリズムに基づいて、前記解集合Rの各候補多項式点部分集合(Q〜Q)を順番に前記多項式f(x)に復元する(係数s〜sk−1を演算する)。そして、前記多項式f(x)を復元できた場合には、演算された前記係数s〜sk−1については、前記逆関数T−1により、前記部分文字列sk(1)〜sk(k−1)に逆変換することにより、前記部分文字列sk(1)〜sk(k−1)に基づく前記類似情報t′(t′=s)を演算する。
この場合、例えば、j番目の候補多項式点部分集合Qから前記多項式f(x)を復元できない場合には、前記候補多項式点部分集合Qには{(n+k)/2}個の前記登録多項式点(a,f(a))〜(a,f(a))が存在しなかったものとみなして、次のj+1番目の候補多項式点部分集合Qj+1の復元処理を実行する。すなわち、{(n+k)/2}個の前記登録多項式点(a,f(a))〜(a,f(a))が存在するか否かの判別ができないため、前記多項式f(x)を復元できた場合のみ、前記類似情報t′を復元する。したがって、例えば、前記多項式f(x)を復元できる候補多項式点部分集合Qが前記解集合Rに1個も含まれていない場合には、前記類似情報t′を1つも復元せずに終了する場合もあり得る。
なお、実施例1の前記類似情報復元手段CB12では、実装が容易であり且つ効率的な前記復号化アルゴリズムの一例としてのBMアルゴリズム(Berlekamp-Masseyアルゴリズム、バーレカンプ・マッシィ法、BM法)により、前記多項式f(x)を演算する。なお、前記BMアルゴリズムについては、例えば、非特許文献6、7等に記載されており、公知であるため、詳細な説明を省略する。
CB13:編集距離演算手段
編集距離演算手段CB13は、前記検索情報入力部3aに入力された前記検索情報tと、前記類似情報復元手段CB12により復元された前記類似情報t′との前記編集距離dを演算する。実施例1の前記編集距離演算手段CB13は、前記検索情報tと、復元された前記解集合Rの各候補多項式点部分集合に対応する各類似情報t′との各編集距離dを全て演算する。
CB14:類似情報表示手段
類似情報表示手段CB14は、編集距離判別手段CB14Aを有し、前記検索情報入力部3aに入力された前記検索情報tと、前記類似情報復元手段CB12により復元された前記類似情報t′との前記編集距離dが予め設定された前記最大値dmax以下である場合に(d≦dmax)、前記各類似情報t′を前記類似情報出力部3cに表示する(図4参照)。実施例1の前記類似情報表示手段CB14は、前記編集距離dが前記最大値dmax以下となる、前記解集合Rの各候補多項式点部分集合に対応する各類似情報t′を一覧表示する。
CB14A:編集距離判別手段
編集距離判別手段CB14Aは、前記検索情報tと、前記解集合Rの各候補多項式点部分集合に対応する各類似情報t′との各編集距離dが、前記最大値dmax以下であるか否かを判別する。
(データベースサーバDSの制御部の説明)
前記データベースサーバDSのハードディスクドライブには、前記データベースサーバDSの基本動作を制御する基本ソフト(オペレーティングシステム)OSや、アプリケーションプログラムとしての秘匿類似情報検索プログラム(類似情報検索プログラム)AP4、その他の図示しないソフトウェアが記憶されている。
(秘匿類似情報検索プログラムAP4)
前記秘匿類似情報検索プログラムAP4は、下記の機能手段(プログラムモジュール)を有する。
CD1:秘匿登録情報受信手段
秘匿登録情報受信手段CD1は、前記秘匿登録情報送信手段CA10により送信された前記秘匿登録情報Rを受信する。
CD2:秘匿登録情報記憶手段
秘匿登録情報記憶手段CD2は、前記秘匿登録情報受信手段CD1により受信した前記秘匿登録情報Rを記憶する。実施例1の前記秘匿登録情報記憶手段CD2は、0を除いた自然数をNとし、受信した前記秘匿登録情報RがN番目に記憶される秘匿登録情報とし、記憶される前記秘匿登録情報(ボールト、多項式点集合)をR,R,…,R,…とした場合に、受信した前記秘匿登録情報RをRとして記憶する。
CD3:秘匿検索情報受信手段
秘匿検索情報受信手段CD3は、前記秘匿検索情報送信手段CB7により送信された前記秘匿検索情報B(例えば、B=(b,b,…,bi−1,bi+1,…,b)、L=2)を受信する。
CD4:検索数値判別手段
検索数値判別手段CD4は、前記秘匿登録情報受信手段CD1により受信した前記秘匿検索情報Bに含まれる(m−L)種類の前記検索数値(b,b,…,bi−1,bi+1,…,b)が、前記秘匿登録情報記憶手段CD2に記憶した前記各秘匿登録情報(各多項式点集合)R〜Rに含まれる前記登録数値a〜aまたは前記擬似数値an+1〜aと同値であるか否かを判別する。実施例1の前記検索数値判別手段CD4は、前記検索数値判別手段CB10Aと同様に、前記検索数値(b,b,…,bi−1,bi+1,…,b)が、前記各多項式点集合R〜Rに含まれる数値a〜aと同値であるか否かを、N個の前記各多項式点集合R〜Rについて全て判別する。
CD5:多項式点部分集合演算手段
多項式点部分集合演算手段CD5は、(m−L)種類の前記検索数値(b,b,…,bi−1,bi+1,…,b)と同値となる前記登録数値a〜aの前記登録多項式点(a,f(a))〜(a,f(a))および前記擬似数値an+1〜aの前記擬似多項式点(an+1,f′(an+1))〜(a,f′(a))を抽出することにより、前記多項式点集合(R〜R)における前記検索数値(b,b,…,bi−1,bi+1,…,b)の前記射影の集合であって、前記多項式点集合R〜Rの部分集合である多項式点部分集合を演算する。実施例1の前記多項式点部分集合演算手段CD5は、前記各多項式点集合R〜Rに対応する前記各多項式点部分集合をQ 〜Q とした場合に、前記各多項式点集合R〜Rから、(m−L)種類の前記検索数値(b,b,…,bi−1,bi+1,…,b)と同値となる数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))が抽出された前記各多項式点部分集合Q 〜Q を演算する。
具体的には、前記多項式点部分集合演算手段CD5は、前記数値抽出手段CB10Bと同様に、i=1,2,…,(m−L)とし、j=1,2,…,Nとし、(m−L)種類の前記検索数値をb〜bm−Lとした場合に、まず、前記検索情報Bに含まれるi番目の検索数値bが、j番目の多項式点集合Rに含まれる数値a〜aのいずれかと同値である場合には、前記同値の数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))を点(x,y)にセットする(代入する)。例えば、b=aとなる場合には、点(x,y)に多項式点(a,f(a))をセットする。また、i番目の検索数値bが、j番目の多項式点集合Rの数値a〜aと同値でない場合には、点(x,y)に何もセットしない。例えば、b≠a,a,…,aとなる場合には、点(x,y)に点(o,o)をセットする((x,y)=(o,o)=φ)。
すなわち、以下の式(4)′に示すように、j番目の多項式点集合Rについてのi番目の検索数値bの射影を演算する。
(b,o)
(x,y)←−−−−−R …(4)′
そして、前記射影である点(x,y)を、j番目の多項式点部分集合Q の要素とする(Q ←Q ∪(x,y))。
したがって、実施例1の前記多項式点部分集合演算手段CD5は、変数i,jの全ての値について、上記の処理を繰り返して、全ての多項式点集合R〜Rの多項式点部分集合Q 〜Q を演算する。
CD6:多項式点部分集合要素数判別手段
多項式点部分集合要素数判別手段CD6は、前記多項式点部分集合演算手段CD5により演算された前記各多項式点部分集合Q 〜Q の点が(c−L)個以上であるか否かを判別する。実施例1の前記多項式点部分集合要素数判別手段CD6は、前記類似情報復元判別手段CB11Aと同様に、前記各多項式点部分集合Q 〜Q の多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))の総数をそれぞれ‖Q ‖〜‖Q ‖とした場合に、前記要素数‖Q ‖〜‖Q ‖が(c−L)個以上であるか否かを判別する。
CD7:秘匿類似情報演算手段
秘匿類似情報演算手段CD7は、(c−L)個以上の点を有する前記各多項式点部分集合(Q 〜Q )に対応する前記各秘匿登録情報(R〜R)を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する。実施例1の前記秘匿類似情報演算手段では、0を除いた自然数をMとし、M≦Nとし、(c−L)個以上の点を有する前記各多項式点部分集合(Q 〜Q )に対応するM個の前記秘匿登録情報(R〜R)を前記類似情報t′が秘匿化された可能性がある候補の多項式点集合である候補多項式点集合RA1〜RAMとし、前記候補多項式点集合RA1〜RAMを要素とする集合である解候補集合をRとした場合に(R=(RA1,RA2,…,RAM))、前記秘匿類似情報である前記解候補集合Rを演算する。
CD8:秘匿類似情報送信手段
秘匿類似情報送信手段CD8は、前記秘匿類似情報演算手段CD7により演算された前記秘匿類似情報(解候補集合R)を、前記検索用クライアントパソコンPCbに対して送信する。
(実施例1のフローチャートの説明)
次に、実施例1の前記各プログラムAP1〜AP4の処理の流れをフローチャートを使用して説明する。
(実施例1の秘匿登録情報送信プログラムAP1の秘匿登録情報送信処理のフローチャートの説明)
図5は実施例1の秘匿登録情報送信プログラムの秘匿登録情報送信処理のフローチャートである。
図5のフローチャートの各ST(ステップ)の処理は、前記登録用クライアントパソコンPCaの制御部のROM等に記憶されたプログラムに従って行われる。また、この処理は前記制御部の他の各種処理と並行してマルチタスクで実行される。
図5に示すフローチャートは、前記秘匿登録情報送信プログラムAP1が起動した場合に開始される。
図5のST101において、登録画像2(図3参照)を表示する。そして、ST102に移る。
ST102において、登録情報入力部2aに登録情報sの入力があったか否かを判別する。イエス(Y)の場合はST103に移り、ノー(N)の場合はST104に移る。
ST103において、登録情報sの入力に応じて登録画像2を更新する。そして、ST102に戻る。
ST104において、登録ボタン2bが入力されたか否かを判別する。ノー(N)の場合はST105に移り、イエス(Y)の場合はST106に移る。
ST105において、秘匿登録情報送信プログラムAP1を終了する入力がされたか否かを判別する。ノー(N)の場合はST102に戻り、イエス(Y)の場合は前記秘匿登録情報送信処理を終了する。
ST106において、登録情報入力部2aに登録情報sが表示されているか否かを判別する。イエス(Y)の場合はST107に移り、ノー(N)の場合はST102に戻る。
ST107において、登録情報sから(k−1)次元1変数多項式fの係数s〜sk−1(式(1)参照)を演算する。すなわち、sk−1=1とし、且つ、予め設定された可逆関数Tにより、登録情報sから抽出された部分文字列sk(1)〜sk(k−1)を、係数s〜sk−2に変換する。そして、ST108に移る。
ST108において、登録情報sから登録部分情報sq1〜sqnを抽出する。そして、ST109に移る。
ST109において、登録部分情報sq1〜sqnと、ハッシュ関数Hとにより、登録集合Aを演算する(A=(a,a,…,a)、H(sq1)=a,H(sq2)=a,…,H(sqn)=a)。そして、ST110に移る。
ST110において、変数xの値を要素とする集合をXとした場合に、以下の(1)〜(3)の処理を実行し、ST111に移る。
(1)変数i,x,yに、1,0,0をセットする(i=1,x=0,y=0)。
(2)集合Xにφをセットする。すなわち、集合Xを空集合とする(X←φ)。
(3)多項式点集合Rにφをセットする。すなわち、多項式点集合Rを空集合とする(R←φ)。
ST111において、次の(1)〜(3)の処理を実行し、ST112に移る。
(1)i番目の登録数値aおよび登録数値aに対応する登録代入値f(a)を一組とする登録多項式点(a,f(a))を演算して、点(x,y)にセットする((x,y)←(a,f(a)))。
(2)変数(点(x,y)のx座標の値)xを、集合Xの要素とする(X←X∪{xi})。
(3)点(x,y)を、多項式点集合Rの要素とする(R←R∪(x,y))
ST112において、変数iに+1を加算する(i=i+1)。そして、ST113に移る。
ST113において、変数iが登録多項式点(a,f(a))の個数であるnより大きくなったか否かを判別する。イエス(Y)の場合はST114に移り、ノー(N)の場合はST111に戻る。
ST114において、次の(1),(2)の処理を実行し、ST115に移る。
(1)i番目の擬似数値aおよび擬似数値aに対応する擬似代入値f′(a)を一組とする擬似多項式点(a,f′(a))を演算して、点(x,y)にセットする((x,y)←(a,f′(a))、x∈F−X、y∈F−{f(x)})。
(2)点(x,y)を、多項式点集合Rの要素とする(R←R∪(x,y)))
ST115において、変数iが多項式点集合Rに含まれる点の個数であるrになったか否かを判別する。ノー(N)の場合はST116に移り、イエス(Y)の場合はST117に移る。
ST116において、変数iに+1を加算する(i=i+1)。そして、ST114に戻る。
ST117において、多項式点集合Rの要素(x,y)を変数x(i=1,2,…,r)の昇順に並び替える。
ST118において、秘匿登録情報である多項式点集合RをデータベースサーバDSに送信する。そして、ST102に戻る。
(実施例1の秘匿検索情報送信プログラムAP2の秘匿検索情報送信処理のフローチャートの説明)
図6は実施例1の秘匿検索情報送信プログラムの秘匿検索情報送信処理のフローチャートである。
図6のフローチャートの各ST(ステップ)の処理は、前記検索用クライアントパソコンPCbの制御部のROM等に記憶されたプログラムに従って行われる。また、この処理は前記制御部の他の各種処理と並行してマルチタスクで実行される。
図6に示すフローチャートは、前記秘匿検索情報送信プログラムAP2が起動した場合に開始される。
図6のST201において、検索画像3(図4参照)を表示する。そして、ST202に移る。
ST202において、検索情報入力部3aに検索情報tの入力があったか否かを判別する。イエス(Y)の場合はST203に移り、ノー(N)の場合はST204に移る。
ST203において、検索情報tの入力に応じて検索画像3を更新する。そして、ST202に戻る。
ST204において、検索開始ボタン3bが入力されたか否かを判別する。ノー(N)の場合はST205に移り、イエス(Y)の場合はST206に移る。
ST205において、秘匿検索情報送信プログラムAP2を終了する入力がされたか否かを判別する。ノー(N)の場合はST202に戻り、イエス(Y)の場合は前記秘匿検索情報送信処理を終了する。
ST206において、検索情報入力部3aに検索情報tが表示されているか否かを判別する。イエス(Y)の場合はST207に移り、ノー(N)の場合はST202に戻る。
ST207において、検索情報tから検索部分情報tq1〜tqmを抽出する。そして、ST208に移る。
ST208において、検索部分情報tq1〜tqmと、ハッシュ関数Hとにより、検索集合Bを演算して記憶する(B=(b,b,…,b)、H(tq1)=b,H(tq2)=b,…,H(tqn)=b)。そして、ST209に移る。
ST209において、検索集合Bの検索数値b〜bのうちのL種類の検索数値を除いて、(m−L)種類の検索数値b〜bm−Lを要素とする検索部分集合Bを演算する(B=(b,b,…,bm−L))。そして、ST210に移る。
ST210において、秘匿検索情報である検索部分集合BをデータベースサーバDSに送信する。そして、ST211に移る。
ST211において、データベースサーバDSから送信された各秘匿類似情報(解候補集合R、R=(RA1,RA2,…,RAM))から対応する各類似情報t′を復元する秘匿類似情報復元処理(後述する図8のフローチャート参照)を実行する。そして、ST202に戻る。
(実施例1の秘匿類似情報検索プログラムAP4の秘匿類似情報検索処理のフローチャートの説明)
図7は実施例1の秘匿類似情報検索プログラムの秘匿類似情報検索処理のフローチャートである。
図7のフローチャートの各ST(ステップ)の処理は、前記データベースサーバDSの制御部のROM等に記憶されたプログラムに従って行われる。また、この処理は前記制御部の他の各種処理と並行してマルチタスクで実行される。
図7に示すフローチャートは、前記秘匿類似情報検索プログラムAP4が起動した場合に開始される。
図7のST301において、秘匿登録情報である多項式点集合Rを受信したか否かを判別する。イエス(Y)の場合はST302に移り、ノー(N)の場合はST303に移る。
ST302において、受信した多項式点集合Rを秘匿登録情報Rとして記憶する。そして、ST301に戻る。
ST303において、秘匿検索情報である検索部分集合Bを受信したか否かを判別する。イエス(Y)の場合はST304に移り、ノー(N)の場合はST301に戻る。
ST304において、以下の(1)〜(3)の処理を実行し、ST305に移る。
(1)変数i,j,x,yに、1,1,0,0をセットする(i=1,j=1,x=0,y=0)。
(2)各多項式点部分集合Q 〜Q にφをセットする。すなわち、各多項式点部分集合Q 〜Q を空集合とする(Q ←φ,Q ←φ,…,Q ←φ)。
(3)解候補集合Rにφをセットする。すなわち、解候補集合Rを空集合とする(R←φ)。
ST305において、以下の(1),(2)の処理を実行し、ST306に移る。
(1)j番目の秘匿登録情報Rについて、i番目の検索数値bの射影を演算する(式(4)′参照)。すなわち、秘匿検索情報Bに含まれるi番目の検索数値bが、j番目の秘匿登録情報Rに含まれる数値a〜aと同値である場合には、点(x,y)に、同値の数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))をセットし、b≠a,a,…,aとなる場合には、点(x,y)に、点(o,o)をセットする((x,y)=(o,o)=φ)。
(2)点(x,y)を、j番目の多項式点部分集合Q の要素とする(Q ←Q ∪(x,y))。
ST306において、変数iが秘匿検索情報Bに含まれる点の個数である(m−L)になったか否かを判別する。ノー(N)の場合はST307に移り、イエス(Y)の場合はST308に移る。
ST307において、変数iに+1を加算する(i=i+1)。そして、ST305に戻る。
ST308において、j番目の多項式点部分集合Q の点が(c−L)個以上であるか否かを判別する(‖Q ‖≧c−L)。イエス(Y)の場合はST309に移り、ノー(N)の場合はST310に移る。
ST309において、j番目の秘匿登録情報Rを、解候補集合Rの要素とする(R←R∪R)。そして、ST310に移る。
ST310において、変数jが秘匿登録情報R〜Rの個数であるNになったか否かを判別する。ノー(N)の場合はST311に移り、イエス(Y)の場合はST312に移る。
ST311において、次の(1),(2)の処理を実行し、ST305に戻る。
(1)変数iに1をセットする(i=1)。
(2)変数jに+1を加算する(j=j+1)。
ST312において、秘匿類似情報である解候補集合R(R=(RA1,RA2,…,RAM),M≦N)を検索用クライアントパソコンPCbに送信する。そして、ST301に戻る。
(実施例1の秘匿類似情報復元プログラムAP3の秘匿類似情報復元処理のフローチャートの説明)
図8は実施例1の秘匿類似情報復元プログラムの秘匿類似情報復元処理のフローチャートであり、図6のST211のサブルーチンの説明図である。
図8のST401において、秘匿類似情報である解候補集合Rを受信したか否かを判別する。イエス(Y)の場合はST402に移り、ノー(N)の場合はST401を繰り返す。
ST402において、以下の(1)〜(3)の処理を実行し、ST403に移る。
(1)変数i,j,x,yに、1,1,0,0をセットする(i=1,j=1,x=0,y=0)。
(2)各候補多項式点部分集合Q〜Qにφをセットする。すなわち、各候補多項式点部分集合Q〜Qを空集合とする(Q←φ,Q←φ,…,Q←φ)。
(3)解集合Rにφをセットする。すなわち、解集合Rを空集合とする(R←φ)。
ST403において、以下の(1),(2)の処理を実行し、ST404に移る。
(1)j番目の候補多項式点集合RAjについて、i番目の検索数値bの射影を演算する(式(4)参照)。すなわち、検索情報Bに含まれるi番目の検索数値bが、j番目の候補多項式点集合RAjに含まれる数値a〜aと同値である場合には、点(x,y)に、同値の数値a〜aに対応する多項式点(a,f(a))〜(a,f(a)),(an+1,f′(an+1))〜(a,f′(a))をセットし、b≠a,a,…,aとなる場合には、点(x,y)に、点(o,o)をセットする((x,y)=(o,o)=φ)。
(2)点(x,y)を、j番目の候補多項式点部分集合Qの要素とする(Q←Q∪(x,y))。
ST404において、変数iが検索情報Bに含まれる点の個数であるmになったか否かを判別する。ノー(N)の場合はST405に移り、イエス(Y)の場合はST406に移る。
ST405において、変数iに+1を加算する(i=i+1)。そして、ST403に戻る。
ST406において、j番目の候補多項式点部分集合Qの点がc個以上であるか否かを判別する(‖Q‖≧c)。イエス(Y)の場合はST407に移り、ノー(N)の場合はST408に移る。
ST407において、j番目の候補多項式点部分集合Qを、解集合Rの要素とする(R←R∪RAj)。そして、ST408に移る。
ST408において、変数jが秘匿登録情報R〜Rの個数であるNになったか否かを判別する。ノー(N)の場合はST409に移り、イエス(Y)の場合はST410に移る。
ST409において、次の(1),(2)の処理を実行し、ST403に戻る。
(1)変数iに1をセットする(i=1)。
(2)変数jに+1を加算する(j=j+1)。
ST410において、解集合Rに含まれる各候補多項式点部分集合Q(‖Qj‖≧c))から、BMアルゴリズムによって前記各多項式f(x)を復元し(係数s〜sk−1を演算し)、前記逆関数T−1によって各類似情報t′(t′=s)を復元する。そして、ST411に移る。
ST411において、復元が成功し、且つ、編集距離dが最大値dmax以下となる各類似情報t′を類似情報出力部3bに一覧表示する(図4参照)。
(実施例1の作用)
前記構成を備えた実施例1の前記類似情報検索システムSでは、前記登録用クライアントパソコンPCaにおいて、前記登録画像2の登録情報入力部2aに前記登録情報sの入力があり、且つ、前記登録ボタン2bが入力された場合に、前記登録情報sが秘匿化された前記秘匿登録情報(多項式点集合R)を演算して、前記データベースサーバDSに送信する前記秘匿登録情報送信処理が実行される(図3、図5のST101〜ST118参照)。
また、実施例1の前記類似情報検索システムSでは、前記検索用クライアントパソコンPCbにおいて、前記検索画像3の検索情報入力部3aに前記検索情報tの入力があり、且つ、前記検索開始ボタン3bが入力された場合に、前記検索情報tが秘匿化された前記秘匿検索情報(検索部分集合B)を演算して、前記データベースサーバDSに送信する前記秘匿検索情報送信処理が実行される(図4、図6のST201〜ST210参照)。
また、実施例1の前記類似情報検索システムSでは、前記データベースサーバDSにおいて、前記秘匿登録情報(多項式点集合R)を受信した場合には、前記秘匿登録情報R(N=1,2,…)として記憶する(図7のST301,ST302参照)。また、前記秘匿検索情報(検索部分集合B)を受信した場合には、前記検索情報tおよび前記類似情報t′を秘匿化した状態で検索する前記秘匿類似情報検索処理が実行される(図7のST303〜ST312参照)。
そして、実施例1の前記類似情報検索システムSでは、前記検索用クライアントパソコンPCbにおいて、検索検索結果としての前記秘匿類似情報(解候補集合R)を受信し、前記類似情報t′を復元して前記類似情報出力部3bに表示する前記秘匿類似情報復元処理が実行される(図6のST211、図8のST401〜ST411参照)。
したがって、実施例1の前記類似情報検索システムSでは、前記インターネット1を介して、前記各クライアントパソコンPCa,PCbと、前記データベースサーバDSとの間で送受信される各情報R,B,Rは、前記登録情報s、前記検索情報t、前記類似情報t′が秘匿化された情報である。このため、前記各クライアントパソコンPCa,PCbおよび前記データベースサーバDSのユーザ以外の第三者から前記各情報s,t,t′を秘匿することができる。
また、前記秘匿類似情報検索処理では、前記登録情報s、前記検索情報t、前記類似情報t′を復元することなく、秘匿化したままの状態で実行される。すなわち、前記秘匿類似情報検索処理では、受信した前記秘匿検索情報(検索部分集合B)に含まれる検索数値b〜bm−Lと、記憶した前記各秘匿登録情報R〜Rに含まれる数値a〜aとが同値であるか否かを判別するため(図7のST305参照)、復元された各情報s,t,t′を特定できないようになっている。
なお、前記データベースサーバDS上では、記憶した前記秘匿登録情報(多項式点集合R〜R)と、受信した前記秘匿検索情報(検索部分集合B)とを、前記登録情報sと、前記検索情報tとに復元できないようになっている。すなわち、前記多項式点集合Rには、前記チャフの一例としての前記擬似多項式点(an+1,f′(an+1))〜(a,f′(a))が含まれている。このため、前記登録集合Aを知らない限り、前記(n,k)符号の一例としての登録多項式点(a,f(a))〜(a,f(a))を完全に特定できない。なお、前記登録集合Aに十分近い前記検索集合Bを知得した場合には(B≒A)、前記登録多項式点(a,f(a))〜(a,f(a))の一部を特定でき、{(n+k)/2}個以上の点を特定できれば、前記多項式点集合Rから前記登録情報sを復元できる。よって、前記検索集合Bを知得していない限り、前記多項式点集合Rから前記登録情報sを復元できない。また、前記検索部分集合Bは、前記検索集合BからL種類の検索数値が除かれている、例えば、B=(b,b,…,b),B=(b,b,…,bm−L)とした場合、L種類の検索数値bm−L+1〜bが除かれている(図6のST209参照)。このため、前記検索集合Bを知らない限り、前記検索数値bm−L+1〜bを特定できず、前記検索部分集合Bから前記検索情報tを復元できない。
したがって、実施例1の前記類似情報検索システムSでは、前記データベースサーバDSのユーザである管理者からも前記各情報s,t,t′を秘匿することができる。
この結果、実施例1の前記類似情報検索システムSは、前記第三者および前記管理者から、前記各情報s,t,t′が秘匿された状態で、前記登録情報sの所有者である登録者と、前記検索情報tの知得者である検索者と、前記データベースサーバDSの管理業務を委託された外部委託業者としての前記管理者とを有する前記DASモデルを構成できる。すなわち、前記登録用クライアントパソコンPCaのユーザである前記登録者と、前記検索用クライアントパソコンPCbのユーザである前記検索者と、前記管理者とにより、前記DASモデルを構成できる。
また、前記構成を備えた実施例1の前記類似情報検索システムSでは、前記登録情報sを秘匿化して登録する際に、まず、q−gramの抽出処理により、前記登録情報sから前記部分文字列sk(1)〜sk(k−1)や前記登録部分情報sq1〜sqnが抽出される(図5のST107,ST108参照)。次に、前記可逆関数Tや前記ハッシュ関数Hにより、前記多項式f(x)の係数s〜sk−1や前記登録集合(第1の集合)A(A=(a,a,…,a))が演算される(図5のST107,ST109参照)。そして、前記ファジーボールトにおける施錠処理と同様に、前記(n,k)符号の一例としての前記登録多項式点(a,f(a))〜(a,f(a))と、前記チャフの一例としての前記擬似多項式点(an+1,f′(an+1))〜(a,f′(a))とを有する前記多項式点集合Rが演算される(図5のST110〜ST117)。したがって、前記抽出処理と、前記各関数T,Hと、前記施錠処理とを組み合わせることにより、前記登録者ごとの鍵を使用しなくても、前記登録情報sを秘匿化できる。
また、前記検索情報tの検索を行う場合、まず、前記登録集合Aと同様に、前記抽出処理と、前記ハッシュ関数Hと、前記施錠処理とにより、前記検索集合(第2の集合)B(B=(b,b,…,b))が演算される(図6のST207,ST208参照)。そして、m種類の検索数値b〜bからL種類の検索数値bm−L+1〜bが除かれた前記検索部分集合Bが演算される(図6のST209参照)。したがって、前記抽出処理と、前記ハッシュ関数Hと、前記施錠処理とを組み合わせることにより、前記検索者ごとの鍵を使用しなくても、前記検索情報tを秘匿化できる。
この結果、実施例1の前記類似情報検索システムSでは、前記インターネット1を介して前記データベースサーバDSが送受信する全ての情報R,B,R(R=(RA1,RA2,…,RAM))が、前記鍵を使用せずに演算できる。なお、前記候補多項式点集合RA1〜RAMは、受信した前記多項式点集合Rを記憶した前記多項式点集合R〜Rの全部または一部である。したがって、従来公知の暗号アルゴリズムで使用される鍵を、ユーザ(登録者、検索者)ごとに設定しなくても、前記第三者および前記管理者から前記各情報s,t,t′を秘匿できる。よって、前記暗号化データベース(図9参照)における鍵管理の安全性(厳格性)やそれに伴う管理コスト等の問題を解決することができる。
(各候補多項式点部分集合Q〜Qから各類似情報t′への復元について)
ここで、L種類の検索数値bm−L+1〜bが除かれた前記検索部分集合Bによって検索された前記解候補集合Rから前記類似情報t′が確実に復元できるか否かが問題となる。すなわち、前記解候補集合Rの各候補多項式点集合RA1〜RAMから演算された各候補多項式点部分集合Q〜Qに対応する各類似情報t′が演算できるか否かが問題となる。
ここで、前記q−gramを用いた類似文字列検索手法において、長さ(文字数)nの文字列と、長さmの文字列とは、少なくとも{max(n,m)−(d−1)q−1}個の前記q−gramを共通に持つことが保証されている。このため、長さ(文字数)‖s‖の文字列(登録情報s)と、長さ‖t‖の文字列(検索情報t)とが、少なくとも{max(‖s‖,‖t‖)−(d−1)q−1}個の前記q−gramを共通に持つことから、以下の式(6)が成立する。
max(‖s‖,‖t‖)−(d−1)q−1
=max(n+q−1,m+q−1)−(d−1)q−1
≧max(n,m)−(d−1)q−1 …(6)
すなわち、前記ハッシュ関数Hによって前記登録情報のq−gramとしての前記登録部分情報sq1〜sqnに対応付けられた前記登録数値a〜aと、前記検索情報のq−gramとしての前記検索部分情報tq1〜tqmに対応付けられた前記検索数値b〜bとの共有数が{max(n,m)−(d−1)q−1}個以上であることが明らかである。
また、前記RS符号を用いたファジーボールトの開錠処理において、前記ボールトRから前記(n,k)符号の{(n+k)/2}個以上の点が判明すれば前記多項式が復元できることが保証されている。
よって、前記各候補多項式点部分集合Q〜Qから各類似情報t′が復元できるか否かを判別するための多項式点の個数の下限値である前記自然数cについて、以下の式(7)が常に成立すると仮定すれば、前記(n,k)符号の{(n+k)/2}個以上の点から前記多項式f(x)の係数s〜sk−1を常に演算できる(図8のST410参照)。
c≧(n+k)/2 …(7)
ここで、前記自然数c,kについて、前記式(2)′,(5)が成立し、且つ、n≧mが成立すると仮定した場合、以下の式(8)が成立する。
‖Q‖≧c(j=1,2,…,M)
≧(n+k)/2
=max(n,m)−(d−1)q−1
=n−(d−1)q−1
≧n−(dmax−1)q−1
=(n+k)/2 …(8)
また、前記自然数c,kについて、前記式(2)′,(5)が成立し、且つ、n<mが成立すると仮定した場合には、以下の式(8)′が成立する。
‖Q‖≧c
=max(n,m)−(d−1)q−1
=m−(d−1)q−1
>n−(d−1)q−1
≧n−(dmax−1)q−1
=(n+k)/2 …(8)′
したがって、実施例1の前記類似情報検索システムSでは、予め設定された前記自然数q,n,m,dの値と、前記式(2)′,(5)とに基づいて、前記自然数c,kの値が設定された場合、前記式(7)が常に成立する。このため、c個以上の多項式点を有する前記各候補多項式点部分集合Q〜Qに、前記(n,k)符号の{(n+k)/2}個以上の点が含まれていれば、前記開錠処理により、前記係数s〜sk−1を常に演算できる。すなわち、実施例1の前記類似情報検索システムSは、前記自然数c,kを、前記式(2)′,(5)に基づいて設定すれば、前記類似情報t′を復元可能か否かを判別するフィルタリング処理(図7のST308、図8のST406参照)を適切に実行することができる。よって、前記類似情報t′が前記検索情報tと完全一致する場合には必ず復元でき、前記類似情報t′が前記検索情報tとの類似度が高いほど(編集距離dが小さいほど)復元できる可能性が高まり、前記類似情報t′が前記検索情報tとの類似度が低いほど(編集距離dが大きいほど)復元できる可能性が低くなると共に、前記フィルタリング処理で除外される可能性が高くなる。
この結果、実施例1の前記類似情報検索システムSでは、前記q−gramを用いた類似文字列検索手法の技術のみでは実現できない情報の秘匿化の問題が解決されていると共に、前記RS符号を用いたファジーボールトの技術のみでは実現できない前記開錠処理のフィルタリング条件の設定についての問題が解決されている。
(秘匿類似情報検索処理の効率について)
また、前記構成を備えた実施例1の前記類似情報検索システムSでは、前記秘匿類似情報(解候補集合R)を検索する際に、前記秘匿検索情報(検索部分集合B)に含まれる検索数値b〜bm−Lと、前記各秘匿登録情報R〜Rに含まれる数値a〜aとを照合する。このため、暗号化された登録情報や検索情報を復号化してから照合を行う場合に比べ、効率的に前記秘匿類似情報(解候補集合R)を検索できる。
また、実施例1の前記類似情報検索システムSでは、前記検索数値b〜bm−Lと、前記数値a〜aとが昇順に並べられている。このため、前記照合により各候補多項式点部分集合Q〜Qを演算する前記計算量が、前記ランダウの記号を用いてO(n+m)時間となる。したがって、総当りで照合して、計算量がO(nm)になる場合に比べ、効率的に前記秘匿類似情報検索処理を実行できる。
(秘匿類似情報復元処理の効率について)
また、実施例1の前記類似情報検索システムSでは、前記秘匿類似情報(解候補集合R)の復元について、前記BMアルゴリズムを用いた前記開錠処理が実行される(図8のST410参照)。前記BMアルゴリズムを用いた前記開錠処理は、誤り訂正可能な点の数をz(z=(n−k)/2)とした場合に、前記計算量が前記ランダウの記号を用いてO(z)時間となることが知られている(例えば、特開2003−168983号公報等参照)。このため、前記O(z)時間以上の開錠処理(例えば、計算量がO(z)時間となるピーターソン(Perterson)法を用いた開錠処理)に比べ、効率的に前記秘匿類似情報復元処理を実行できる。
(総当り攻撃に対する秘匿登録情報の安全性について)
また、前記構成を備えた実施例1の前記類似情報検索システムSでは、例えば、前記第三者や前記管理人が、前記秘匿登録情報(多項式点集合R)から前記多項式f(x)を総当りで復元して、前記登録情報sの解読を試みる可能性がある。ここで、十分に小さい正の値の実数をμとし(μ>0,μ≒0)、前記多項式f(x)の候補となる多項式の総数をNとした場合、前記多項式の総数Nについて、少なくとも(1−μ)の確率で、以下の式(9)が成立することが知られている(例えば、非特許文献7参照)。
=(μ/3)×pk−n×(r/n) …(9)
よって、例えば、前記自然数r,p,n,kについて、r=p=10,n=22,k=14とし、前記実数μについて、μ≒2−188とした場合、N≒286が成立する。すなわち、286通りの多項式のうち、前記登録情報sに対応する1つの多項式f(x)を特定しなければならない。
また、実施例1の前記類似情報検索システムSでは、前記自然数rの値が大きくなるに連れて、前記多項式点集合Rに含まれる前記擬似多項式点(an+1,f′(an+1))〜(a,f′(a))の総数が増えるため、前記登録多項式点(a,f(a))〜(a,f(a))を特定される可能性が低くなる。また、前記自然数rの値が大きければ、前記多項式の総数N自体が大きく、前記多項式f(x)として選択できる多項式の総数も大きくすることができる。この場合、前記秘匿登録情報(多項式点集合R)が解読される可能性がさらに低減され、安全性を高くすることができる。
また、前記編集距離dについて、前記最大値dmaxが大きくなるに連れて、検索される前記解候補集合Rの候補多項式点集合RA1〜RAMの個数が多くなる可能性が高くなる。すなわち、自然数Mの値が大きくなる可能性が高くなる。このため、類似情報検索処理としての利便性が高くなる。しかしながら、この場合、前記自然数k(k=n−2(dmax−1)q−2)の値が小さくなる(式(2)′参照)。このため、前記多項式f(x)の次数(k−1)の値が小さくなり、前記多項式f(x)として選択できる多項式の総数も小さくなり、前記秘匿登録情報(多項式点集合R)が解読される可能性が高くなるため、安全性が低くなってしまう。
すなわち、前記最大値dmaxが大きくなるに連れて、類似情報検索処理としての利便性が向上するが、前記秘匿登録情報(多項式点集合R)の安全性は低くなる。
逆に、前記最大値dmaxが小さくなるに連れて、検索される前記解候補集合Rの候補多項式点集合RA1〜RAMの個数が少なくなる可能性が高くなり(自然数Mの値が小さくなる可能性が低くなり)、類似情報検索処理としての利便性が低くなる。また、この場合、前記自然数kの値が大きくなり、前記多項式f(x)の次数(k−1)の値が大きくなり、前記多項式f(x)として選択できる多項式の総数も大きくなり、前記秘匿登録情報が解読される可能性が低くなるため、安全性が高くなる。
すなわち、前記最大値dmaxが大きくなるに連れて、類似情報検索処理としての利便性が低下するが、前記秘匿登録情報(多項式点集合R)の安全性は高くなる。
この結果、実施例1の前記類似情報検索システムSでは、前記最大値dmaxに基づいて、前記利便性と前記安全性とを調節することができる。
(総当り攻撃に対する秘匿検索情報の安全性について)
また、前記構成を備えた実施例1の前記類似情報検索システムSでは、例えば、前記第三者や前記管理人が、L種類の検索数値bm−L+1〜bを総当りで推測して、前記秘匿検索情報(検索部分集合B)から前記検索集合Bを復元して、前記検索情報tの解読を試みる可能性がある。
ここで、前記自然数Lの値が大きくなるに連れて、L種類の検索数値bm−L+1〜bを特定できる可能性が低くなる。よって、前記検索集合Bを復元して前記検索情報tの解読される可能性が低くなるため、安全性が高くなる。しかしながら、この場合、前記データベースサーバDSに記憶された前記秘匿登録情報R〜Rが前記候補多項式点集合RA1〜RAMであるか否かを判別するための前記要素数‖Q ‖(j=1,2,…,N)の判別値(c−L)の値が小さくなる。このため、前記類似情報t′が復元できる可能性が低いにも関わらず、前記候補多項式点集合RA1〜RAMとして検出される個数が多くなる可能性が高くなる(自然数Mの値が大きくなる可能性が高くなる)。例えば、L=cとした場合、(c−L)=0が成立し、前記データベースサーバDSに記憶された全ての前記秘匿登録情報R〜Rが前記候補多項式点集合RA1〜RANとして検出されてしまう。
すなわち、前記自然数Lの値が大きくなるに連れて、前記秘匿検索情報(検索部分集合Bの安全性は高くなるが、誤検出が多くなり類似情報検索処理としての処理効率が低下する。
逆に、前記自然数Lの値が小さくなるに連れて、L種類の検索数値bm−L+1〜bを特定できる可能性が高くなり、前記検索情報tの解読される可能性が高くなるため、安全性が低くなる。しかしながら、この場合、前記判別値(c−L)の値が小さくなる。このため、前記類似情報t′が復元できる可能性が低い前記候補多項式点集合RA1〜RAMが検出される可能性が低くなる。例えば、L=0とした場合、(c−L)=cが成立し、Q =Q(j=1,2,…,N)が常に成立する前記候補多項式点集合RA1〜RAMが検出される。
すなわち、前記自然数Lの値が小さくなるに連れて、前記秘匿検索情報(検索部分集合Bの安全性は低くなるが、誤検出が低減され類似情報検索処理としての処理効率が向上する。
この結果、実施例1の前記類似情報検索システムSでは、前記自然数Lの値に基づいて、前記安全性と前記処理効率とを調節することができる。
(登録情報の偏りに基づく攻撃に対する類似情報検索システムSの安全性について)
また、前記構成を備えた実施例1の前記類似情報検索システムSでは、例えば、前記登録情報sに文字列としての偏り、すなわち、文字列中の文字やq−gramの出現頻度に偏りが存在する場合がある。この場合、前記第三者や前記管理人が、前記偏りに基づいて、前記係数s〜sk−1を推測したり、前記登録数値a〜aや擬似数値an+1〜aを推測したり、これらの推測を組み合わせたりすることにより、総当りで前記多項式f(x)を復元する場合に比べ、前記多項式f(x)となる候補の多項式を絞り込むことができる可能性がある。
ここで、例えば、前記部分文字列sk(1)〜sk(k−1)に偏りが存在しても、前記係数s〜sk−1(s,s,…,sk−1∈F)の分布が前記k次拡大体F内で一様となるように前記可逆関数Tを設定することにより、前記秘匿登録情報(多項式点集合R)が解読される可能性が低くなる。すなわち、前記部分文字列sk(1)〜sk(k−1)と、前記係数s〜sk−1との相関性が低減されることにより、前記係数s〜sk−1が推測され難くなり、前記秘匿登録情報(多項式点集合R)の安全性が高くなる。また、例えば、前記登録部分情報sq1〜sqnに偏りが存在しても、前記登録数値a〜a(a,a,…,a∈F)の分布が前記n次拡大体F内で一様となるように前記ハッシュ関数Hを設定することにより、前記秘匿登録情報(多項式点集合R)が解読される可能性が低くなる。すなわち、前記登録部分情報sq1〜sqnと、前記登録数値a〜aとの相関性が低減されることにより、前記登録数値a〜aが推測され難くなり、前記秘匿登録情報(多項式点集合R)の安全性が高くなる。
この結果、実施例1の前記類似情報検索システムSでは、前記各関数T,Hが各出力値s〜sk−1,a〜aを一様に分布させる能力、いわゆる、前記各関数T,Hの一様分布性に基づいて、前記秘匿登録情報(多項式点集合R)の安全性を高くすることができる。
また、例えば、前記第三者や前記管理人が、前記偏りに基づいて、前記登録情報sの一部のq−gram等の情報を解読して、前記情報に前記検索情報tと同程度の類似度を有する情報、すなわち、前記編集距離dが最大値dmax以下となる情報を作成して、前記登録情報sを解読しようとする可能性がある。
ここで、例えば、前記データベースサーバDSを、糖転移酵素や糖鎖修飾酵素等の糖鎖合成関連遺伝子、いわゆる、糖鎖遺伝子が前記登録情報sとして格納される糖鎖遺伝子データベース(GGDB:GlycoGene DataBase)とした場合、前記糖鎖遺伝子の種類が約300種類となり、前記糖鎖遺伝子の平均配列長が既知のものに限れば約1200塩基対(bp:base pair)となることが知られている。すなわち、前記データベースサーバDSを前記糖鎖遺伝子データベースとした場合には、N=300,n=1200となることが知られている。なお、前記糖鎖遺伝子データベースについては、例えば、非特許文献9等に記載されており、公知である。
よって、前記偏りが存在しないものとした場合に、一遺伝子あたりの平均文字列空間の大きさ、すなわち、前記一遺伝子の文字列表現の数が、以下の数1の式(10)により示された値以上となる。
…(10)
なお、前記式(10)における分子の底の値(4)は、塩基の種類数(「A」、「T」、「G」、「C」)であり、分母の第2項(Σ演算子付きの項)は、前記編集距離dが最大値dmax以下になる文字列の数(類似文字列の上限値)である。
よって、例えば、dmax=100とした場合に、前記式(10)により示された値は、約21700(21700≒22400/2700)となり、前記秘匿登録情報(多項式点集合R)の安全性は、約1700ビット以上の鍵の安全性に相当することがわかる。この結果、前記偏りが存在しても、最大で約1700ビット以上の鍵の安全性を確保することができ、前記秘匿登録情報(多項式点集合R)の安全性を十分に確保できる。
したがって、実施例1の前記類似情報検索システムSでは、前記自然数n,Nの値および前記最大値dmax,に基づいて、前記秘匿登録情報(多項式点集合R)の安全性を調節することができる。
(変更例)
以上、本発明の実施例を詳述したが、本発明は、前記実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。本発明の変更例(H01)〜(H011)を下記に例示する。
(H01)前記実施例の前記類似情報検索システムSでは、前記各クライアントパソコンPCa,PCbと、前記データベースサーバDSとを別体で構成したが、これに限定されず、例えば、前記各クライアントパソコンPCa,PCbを一体的に構成したり、前記各クライアントパソコンPCa,PCbおよび前記データベースサーバDSを一体的に構成することも可能である。
(H02)前記実施例では、前記インターネット1を介して、前記各クライアントパソコンPCa,PCbと、前記データベースサーバDSとが情報の送受信が可能に接続されているが、これに限定されず、例えば、専用線や、有線・無線のLAN(Local Area Network、構内通信網)環境や、暗号通信網等のその他の通信回線を介して接続されることも可能である。なお、前記通信回線として、前記専用線や、前記暗号通信網等を使用した場合には、前記第三者や前記管理者が前記各情報s,t,t′を解読し難くなる可能性がある。すなわち、内部解析(リバース・エンジニアリング)や改変に対する防護力、いわゆる、耐タンパ性が高くなる可能性がある。
(H03)前記実施例では、前記秘匿類似情報(解候補集合R)の復元する前記秘匿類似情報復元処理(図5のST211、図8のST401〜ST411参照)を、前記検索用クライアントパソコンPCbで実行して、前記類似情報t′を前記第三者や前記管理者に取得されないようにしているが、これに限定されず、例えば、通信回線として前記専用線や前記暗号通信網等を使用して、前記耐タンパ性が高くなった場合には、前記秘匿類似情報復元処理を、前記データベースサーバDSで実行して、復元された前記類似情報t′を前記検索用クライアントパソコンPCbに送信することも可能である。
(H04)前記実施例において、設定された各数値については、前記安全性(厳格性、機密性、秘匿性)、前記処理効率、前記利便性等の条件・仕様・設計等に応じて、任意の数値に変更可能である。例えば、実施例1のように、r>nとして、前記チャフ(擬似多項式点(an+1,f′(an+1))〜(a,f′(a)))を含む前記秘匿登録情報(多項式点集合R)を演算して、前記秘匿登録情報(多項式点集合R)の安全性を確保することが好ましいが、r=nとして、前記多項式点集合Rを、前記チャフを含まない前記(n,k)符号の符号語(登録多項式点(a,f(a))〜(a,f(a))のみの集合)とすることも可能である。また、L>0として、L種類の検索数値bm−L+1〜bが除かれた前記秘匿検索情報(検索部分集合B)を演算して、前記秘匿検索情報(検索部分集合B)の安全性を確保することが好ましいが、L=0として、前記検索部分集合Bを、前記検索集合Bそのものとすることも可能である(B=B)。なお、この場合、通信回線として前記専用線や前記暗号通信網等を使用し、前記耐タンパ性を高くしておくことが好ましい。
(H05)本発明において、一方向関数の一例としての前記ハッシュ関数Hにより、前記数値a〜a,b〜bから前記各部分情報sq1〜sqn,tq1〜tqmを復元して、前記各情報s,tをできないようにすることが好ましいが、これに限定されず、例えば、前記秘匿登録情報(多項式点集合R)の安全性等に応じて、前記ハッシュ関数Hを双方向関数の一例としての可逆関数等に変更することも可能である。
(H06)前記実施例では、前記各情報s,t,t′が、文字列情報により構成されているが、これに限定されず、例えば、順序付き木や、順序無し木、グラフ等の情報により構成することも可能である。ここで、順序付き木の情報とは、前記各情報s,t,t′を、分岐の始点となる節点である根節点と、前記分岐の終点となる節点である葉節点と、前記根節点と前記葉節点との間に設けられた節点である内部節点と、前記根節点と前記内部節点と前記葉節点とを連結する枝となる前記分岐の情報により構成され、且つ、前記各分岐にはそれぞれ順序が付けられた情報のことである。また、順序無し木の情報とは、前記順序付き木の情報に比べ、前記各分岐には順序が付けられていない情報のことである。
これらの情報については、前記情報の構造に基づくヒストグラム(histogram、度数分布図、柱状グラフ)を演算した場合には、前記ヒストグラム間の距離(L1 distance、L距離)に基づいて、解候補のフィルタリング処理を行うことができる。
例えば、順序付き木の情報は、前記根節点および前記内部節点から分岐する枝が2本に限定され、且つ、前記根節点から前記葉節点まで到達するまでの前記分岐の回数である高さが全て同一となる順序付きの完全二分木の構造の情報である順序付完全二分木構造情報に変換することにより、前記順序付完全二分木構造情報を、q−level二分岐の情報(操作単位情報)のヒストグラムのベクトル表現により示すことができる。なお、前記q−level二分岐とは、前記完全二分木の一部の前記節点と前記節点どうしを連結する枝となる前記分岐の情報とにより構成された部分木の構造の情報である部分木構造情報であって、前記部分木における前記高さが(q−1)となる前記部分木構造情報をいう。また、前記q−level二分岐の情報のヒストグラムとは、前記完全二分木における同じ前記q−level二分岐の情報の出現頻度のことをいう。
ここで、2つの前記順序付完全二分木構造情報をU,Vとし、前記q−level二分岐の情報のヒストグラムの種類数(ベクトル空間の大きさ)を|ΓU|,|ΓV|とし、前記q−level二分岐の情報のヒストグラムをu〜u|ΓU|,v〜v|ΓV|として、U=(u,u,…,u|ΓU|),V=(v,v,…,v|ΓV|)が成立するものとした場合に、前記L距離は、前記順序付完全二分木構造情報U,V間のベクトル距離になる。よって、前記L距離に基づいて、順序付完全二分木構造情報U,Vどうしが類似であるか否かを判別することができる。すなわち、解候補のフィルタリング処理を行うことができる。
なお、これらの情報のヒストグラム間のL距離に基づいて、解候補のフィルタリング処理を行う秘匿化なしの類似情報検索処理については、例えば、非特許文献10〜12に記載されており、公知である。また、前記順序付き木の情報を変換した前記順序付完全二分木構造情報U,Vについて、前記順序付完全二分木構造情報U,V間の編集距離をdとした場合に、前記順序付完全二分木構造情報U,V間のL距離が{4×(q−1)+1}×dとなることが知られている(例えば、非特許文献10等参照)。ここで、前記編集距離dとは、前記順序付完全二分木構造情報Vが、前記順序付完全二分木構造情報Uになるまでの前記q−level二分岐の情報の挿入・削除・置換の各編集操作の回数のことである。
よって、前記フィルタリング処理の条件となる前記L距離を、前記ファジーボールトの開錠処理のフィルタリング条件とすることにより、秘匿化された類似情報検索処理を実行することが可能である。例えば、順序付き木の情報は、前記順序付完全二分木構造情報U,Vに基づいて、前記各集合A,Bを演算し、前記秘匿登録情報(多項式点集合R)や前記秘匿検索情報(検索部分集合B)を演算することができる。なお、前記完全二分木構造情報U,Vが有する前記節点の個数、例えば、|U|,|V|とし、|ΓU|=n,|ΓV|=m,n≧mが成立するものとし、前記自然数c,kについて以下の式(11),(12)が成立する場合には、以下の式(13)が成立する。
c=n−{4×(q−1)+1}×d …(11)
(n+k)/2=n−{4×(q−1)+1}×dmax …(12)
‖Q‖≧c
=n−{4×(q−1)+1}×d
≧n−{4×(q−1)+1}×dmax
=(n+k)/2 …(13)
すなわち、c≧(n+k)/2が常に成立するため(式(7)参照)、前記実施例と同様に、前記次数(k−1)を設定して前記多項式f(x)を演算できると共に、前記判別値cに基づいて、秘匿化されたフィルタリング処理を実行できる(図7のST308、図8のST406参照)。この結果、実施例1の前記類似情報検索システムSと同様に、前記自然数c,d,k,L,n,m,q,rの各値に基づいて、前記秘匿類似情報検索処理(図7のST303〜ST312参照)を実行することができる。
(H07)本発明において、前記各情報s,tを入力するための前記各画像2,3を表示することが好ましいが、これに限定されず、例えば、コマンド入力等により前記各情報s,tを入力することにより、前記各画像2,3を省略することも可能である。
(H08)前記実施例では、前記誤り訂正符号の復号化アルゴリズムの一例としてのBMアルゴリズムを用いた前記開錠処理により、前記多項式f(x)の係数s〜sk−1を演算して前記類似情報t′を復元するが(図8のST410参照)、これに限定されず、例えば、前記誤り訂正符号の復号化アルゴリズムの一例としてのピーターソン(Perterson)法やユークリッド法を用いた開錠処理により、前記類似情報t′を復元することも可能である(例えば、特開2003−168983号公報や非特許文献6等参照)。
(H09)本発明において、前記自然数c,d,k,L,n,m,q,rの各値について、予め設定されているか、前記各情報s,t,t′に基づいて自動的に設定されているが、これに限定されず、ユーザが各画像3,4等により設定できるようにすることも可能である。例えば、前記編集距離dの最大値dmaxについて、前記検索画像4に最大値入力部を設けて、前記検索者が設定できるようにすることも可能である。
(H010)本発明において、前記登録情報sに基づいて、前記登録情報sを復元するために必要な点が最小で{(n+k)/2}個となることが保証された(k−1)次元で1変数の多項式f(x)を演算されることが好ましいが(図5のST107参照)、これに限定されず、例えば、{(n+k)/2}個存在しても前記登録情報sを復元できない多項式を演算することも可能である。この場合、前記多項式f(x)として選択できる多項式の総数も大きくすることができ、前記利便性や前記安全性が高くなるが、前記類似情報t′を復元可能か否かを判別するフィルタリング処理(図7のST308、図8のST406参照)の精度が低減されるため、誤検出が多くなり類似情報検索処理としての処理効率が低下する可能性がある。このため、前記多項式f(x)における復元可能な点の個数を、前記利便性と前記安全性と、前記フィルタリング処理の精度に基づく前記処理効率とを、前記類似情報検索システムSの許容範囲に応じて調節することができる。
(H011)本発明において、前記登録情報sに基づいて、前記登録情報sを復元するために必要な点が{(n+k)/2}個以上となる(k−1)次元で1変数の多項式f(x)を演算したが(図5のST107参照)、これに限定されず、例えば、{(n+k)/2}個以下で前記登録情報sを復元可能であることが保証された多項式が存在すれば、そのような前記多項式を演算することも可能である。すなわち、前記誤り訂正符号として、{(n+k)/2}個以上の点が判明すれば前記BMアルゴリズム等により多項式の復元可能な前記(n,k)符号((n,k)RS符号)を利用することに限定されず、{(n+k)/2}個以下の点により多項式の復元可能なその他の前記誤り訂正符号を利用することも可能である。この場合、解読するために知得する必要がある前記登録多項式点(a,f(a))〜(a,f(a))の数が少なくなるため、前記多項式点集合Rの安全性が低下するが、前記多項式点集合Rに含まれる前記登録多項式点(a,f(a))〜(a,f(a))の総数rの値を大きくして、前記擬似多項式点(an+1,f′(an+1))〜(a,f′(a))の総数を増加させることにより、前記安全性を確保することができる。
本発明は、例えば、登録する情報がDNAの塩基配列情報(核酸配列情報)や、蛋白質のアミノ酸配列情報等の遺伝子情報が格納された遺伝子情報データベースの管理業務を、遺伝子解析の分野における研究機関等が外部委託業者に委託するDASモデルを構築する場合に有用である。
図1は本発明の実施例1の類似情報検索システムの全体説明図である。 図2は本発明の実施例1の類似情報検索システムを構成する各装置の機能をブロック図(機能ブロック図)で示した説明図である。 図3は実施例1の登録画像の説明図である。 図4は実施例1の登録画像の説明図である。 図5は実施例1の秘匿登録情報送信プログラムの秘匿登録情報送信処理のフローチャートである。 図6は実施例1の秘匿検索情報送信プログラムの秘匿検索情報送信処理のフローチャートである。 図7は実施例1の秘匿類似情報検索プログラムの秘匿類似情報検索処理のフローチャートである。 図8は実施例1の秘匿類似情報復元プログラムの秘匿類似情報復元処理のフローチャートであり、図6のST211のサブルーチンの説明図である。 図9はDASモデルにおける遺伝子情報データベースに従来公知の暗号化データベースの技術を適用した場合の説明図である。
符号の説明
A…登録集合、AP4…類似情報検索プログラム、a〜a…登録数値、an+1〜a…擬似数値、(a,f(a))〜(a,f(a))…多項式上の点、登録多項式点、(an+1,f′(an+1))〜(a,f′(a))…擬似多項式点、B…検索集合、B…検索部分集合、秘匿検索情報、b〜b…検索数値、c,d,k,L,n,m,q,r…自然数、CA3…多項式演算手段、CA4…登録部分情報抽出手段、CA5…登録集合演算手段、CA6…登録代入値演算手段、CA7…擬似数値演算手段、CA8…擬似代入値演算手段、CA9…秘匿登録情報演算手段、CA10…秘匿登録情報送信手段、CB3…検索部分情報抽出手段、CB4…検索集合演算手段、CB5…検索集合記憶手段、CB6…秘匿検索情報演算手段、CB7…秘匿検索情報送信手段、CB9…秘匿類似情報受信手段、CB10A…検索数値判別手段、CB10B…数値抽出手段、CB11A…類似情報復元判別手段、CB12…類似情報復元手段、CD1…秘匿登録情報受信手段、CD2…秘匿登録情報記憶手段、CD3…秘匿検索情報受信手段、CD4…検索数値判別手段、CD5…多項式点部分集合演算手段、CD6…多項式点部分集合要素数判別手段、CD7…秘匿類似情報演算手段、CD8…秘匿類似情報送信手段、DS…記憶装置、類似情報検索装置、f(x)…多項式、f(a),f(a),…,f(a)…登録代入値、f′(an+1)〜f′(a)…擬似代入値、PCa…登録装置、PCb…検索装置、Q 〜Q …多項式点部分集合、R…多項式点集合、秘匿登録情報、R…秘匿類似情報、H…一方向関数、S…類似情報検索システム、s…登録情報、文字列情報、sq1〜sqn…登録部分情報、部分情報、t…検索情報、文字列情報、tq1〜tqm…検索部分情報、部分情報、t′…類似情報、文字列情報。

Claims (4)

  1. 登録対象の情報である登録情報を記憶する記憶装置と、
    前記記憶装置と情報の送受信が可能に接続され、前記記憶装置に対して、前記登録情報を登録させる登録装置と、
    前記記憶装置と情報の送受信が可能に接続され、前記記憶装置に対して、記憶された前記登録情報のうち、検索対象の情報である検索情報と同一または類似する前記登録情報である類似情報を検索させる検索装置と、
    を有する類似情報検索システムであって、
    自然数をそれぞれc,d,k,L,n,m,q,rとし、前記検索情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であり、且つ、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧L,r≧nがそれぞれ成立するものとした場合に、
    前記登録装置は、
    前記登録情報に基づいて、(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式を演算する多項式演算手段と、
    前記登録情報に基づいて、前記登録情報を復元可能なn個の前記部分情報である登録部分情報を抽出する登録部分情報抽出手段と、
    抽出されたn個の前記登録部分情報に基づいて、n種類の数値である登録数値を要素とする集合である登録集合を演算する登録集合演算手段と、
    前記登録数値が代入された前記多項式の数値である登録代入値を演算する登録代入値演算手段と、
    前記登録数値以外の数値である(r−n)種類の擬似数値を演算する擬似数値演算手段と、
    前記擬似数値が代入された前記多項式の数値以外の数値である擬似代入値を演算する擬似代入値演算手段と、
    前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、前記擬似数値および前記擬似数値に対応する前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を演算することにより、前記登録情報が秘匿化された秘匿登録情報を演算する秘匿登録情報演算手段と、
    演算された前記秘匿登録情報を、前記記憶装置に対して送信する秘匿登録情報送信手段と、
    を有し、
    前記記憶装置は、
    前記秘匿登録情報送信手段により送信された前記秘匿登録情報を受信する秘匿登録情報受信手段と、
    受信した前記秘匿登録情報を記憶する秘匿登録情報記憶手段と、
    を有し、
    前記検索装置は、
    前記検索情報に基づいて、前記検索情報を復元可能なm個の前記部分情報である検索部分情報を抽出する検索部分情報抽出手段と、
    抽出されたm個の前記検索部分情報に基づいて、m種類の数値である検索数値を要素とする集合である検索集合を演算する検索集合演算手段と、
    演算された前記検索集合を記憶する検索集合記憶手段と、
    m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を演算することにより、前記検索情報が秘匿化された秘匿検索情報を演算する秘匿検索情報演算手段と、
    演算された前記秘匿検索情報を、前記記憶装置に対して送信する秘匿検索情報送信手段と、
    を有し、
    前記記憶装置は、
    前記秘匿検索情報送信手段により送信された前記秘匿検索情報を受信する秘匿検索情報受信手段と、
    受信した前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
    前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段と、
    演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段と、
    (c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段と、
    演算された前記秘匿類似情報を、前記検索装置に対して送信する秘匿類似情報送信手段と、
    を有し、
    前記検索装置は、
    前記秘匿類似情報送信手段により送信された前記秘匿類似情報を受信する秘匿類似情報受信手段と、
    記憶した前記検索集合に含まれる前記検索数値が、受信した前記各秘匿類似情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
    前記検索数値と同値となる前記登録数値および前記擬似数値を抽出する数値抽出手段と、
    抽出された前記登録数値および前記擬似数値がc個以上であるか否かを判別することにより、前記各秘匿類似情報が、前記検索情報に対する前記類似情報として復元可能であるか否かを判別する類似情報復元判別手段と、
    抽出された前記登録数値および前記擬似数値がc個以上である場合に、前記登録数値および前記擬似数値に基づいて、前記多項式を演算して前記類似情報を復元する類似情報復元手段と、
    を有する
    ことを特徴とする類似情報検索システム。
  2. 前記自然数c,k,nについて、c≧(n+k)/2が成立するものとした場合に、
    前記登録装置は、
    前記登録情報に基づいて、(k−1)次元で1変数の多項式であって、前記登録情報を復元するために必要な前記多項式上の点が{(n+k)/2}個以上となる前記多項式を演算する多項式演算手段と、
    を有する
    ことを特徴とする請求項1に記載の類似情報検索システム。
  3. 登録対象の情報を登録情報とし、
    前記登録情報と同一または類似する情報を類似情報とし、
    自然数をそれぞれd,k,n,q,rとし、
    前記登録情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記登録情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、r≧nが成立するものとし、
    前記登録情報に基づいて抽出された前記登録情報を復元可能なn個の前記部分情報を登録部分情報とし、
    抽出されたn個の前記登録部分情報に基づいて演算されたn種類の数値である登録数値を要素とする集合を登録集合とし、
    前記登録情報に基づいて演算された(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式に前記登録数値が代入されて演算された数値を登録代入値とし、
    前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、
    前記登録数値以外の数値である擬似数値および前記擬似数値に対応する擬似代入値であって、前記擬似数値が代入された前記多項式の数値以外の数値である前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、
    n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を、前記登録情報が秘匿化された秘匿登録情報として記憶する秘匿登録情報記憶手段と、
    検索対象の情報を検索情報とし、
    自然数をそれぞれc,L,mとし、
    前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であり、且つ、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧Lがそれぞれ成立するものとし、
    前記検索情報のうちの前記操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記検索情報に基づいて抽出された前記検索情報を復元可能なm個の前記部分情報を検索部分情報とし、
    抽出されたm個の前記検索部分情報に基づいて演算されたm種類の数値である検索数値を要素とする集合を検索集合とし、
    m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を、前記検索情報が秘匿化された秘匿検索情報とした場合に、
    前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段と、
    前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段と、
    演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段と、
    (c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段と、
    を備えたことを特徴とする類似情報検索システム。
  4. コンピュータを、
    登録対象の情報を登録情報とし、
    前記登録情報と同一または類似する情報を類似情報とし、
    自然数をそれぞれd,k,n,q,rとし、
    前記登録情報のうちの操作対象となる単位の情報である操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記登録情報が前記類似情報に変換され、且つ、前記登録情報について、q個の前記操作単位情報を有する部分情報をn個以上演算可能であり、且つ、r≧nが成立するものとし、
    前記登録情報に基づいて抽出された前記登録情報を復元可能なn個の前記部分情報を登録部分情報とし、
    抽出されたn個の前記登録部分情報に基づいて演算されたn種類の数値である登録数値を要素とする集合を登録集合とし、
    前記登録情報に基づいて演算された(k−1)次元で1変数の多項式であって、前記登録情報を復元可能な前記多項式に前記登録数値が代入されて演算された数値を登録代入値とし、
    前記登録数値および前記登録数値に対応する前記登録代入値を一組とする前記多項式上の点を登録多項式点とし、
    前記登録数値以外の数値である擬似数値および前記擬似数値に対応する擬似代入値であって、前記擬似数値が代入された前記多項式の数値以外の数値である前記擬似代入値を一組とする前記多項式以外の点を擬似多項式点とした場合に、
    n個の前記登録多項式点と、(r−n)個の前記擬似多項式点とを有するr個の点の集合である多項式点集合を、前記登録情報が秘匿化された秘匿登録情報として記憶する秘匿登録情報記憶手段、
    検索対象の情報を検索情報とし、
    自然数をそれぞれc,L,mとし、
    前記検索情報について、q個の前記操作単位情報を有する部分情報をm個以上演算可能であれば、cがd,q,n,mに基づいて演算され、且つ、c≧L,m≧Lがそれぞれ成立するものとし、
    前記検索情報のうちの前記操作単位情報について、d回の挿入・削除・置換の操作を行うことにより、前記検索情報が前記類似情報に変換され、且つ、前記検索情報に基づいて抽出された前記検索情報を復元可能なm個の前記部分情報を検索部分情報とし、
    抽出されたm個の前記検索部分情報に基づいて演算されたm種類の数値である検索数値を要素とする集合を検索集合とし、
    m種類の前記検索数値のうち、L種類の前記検索数値を除く(m−L)種類の前記検索数値を要素とする前記検索集合の部分集合である検索部分集合を、前記検索情報が秘匿化された秘匿検索情報とした場合に、
    前記秘匿検索情報に含まれる前記検索数値が、記憶した前記各秘匿登録情報に含まれる前記登録数値または前記擬似数値と同値であるか否かを判別する検索数値判別手段、
    前記検索数値と同値となる前記登録数値の前記登録多項式点および前記擬似数値の前記擬似多項式点を抽出することにより、前記多項式点集合における前記検索数値の射影集合であって、前記多項式点集合の部分集合である多項式点部分集合を演算する多項式点部分集合演算手段、
    演算された前記多項式点部分集合の点が(c−L)個以上であるか否かを判別する多項式点部分集合要素数判別手段、
    (c−L)個以上の点を有する前記多項式点部分集合に対応する前記各秘匿登録情報を演算することにより、前記類似情報が秘匿化された秘匿類似情報を演算する秘匿類似情報演算手段、
    として機能させることを特徴とする類似情報検索プログラム。
JP2008118871A 2008-04-30 2008-04-30 類似情報検索システムおよび類似情報検索プログラム Pending JP2009271584A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008118871A JP2009271584A (ja) 2008-04-30 2008-04-30 類似情報検索システムおよび類似情報検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008118871A JP2009271584A (ja) 2008-04-30 2008-04-30 類似情報検索システムおよび類似情報検索プログラム

Publications (1)

Publication Number Publication Date
JP2009271584A true JP2009271584A (ja) 2009-11-19

Family

ID=41438108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008118871A Pending JP2009271584A (ja) 2008-04-30 2008-04-30 類似情報検索システムおよび類似情報検索プログラム

Country Status (1)

Country Link
JP (1) JP2009271584A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146895A (ja) * 2010-01-14 2011-07-28 Mitsubishi Electric Corp 情報処理システム及び管理装置及びサーバ装置及び情報処理装置
JP2013029891A (ja) * 2011-07-26 2013-02-07 Fujitsu Ltd 抽出プログラム、抽出方法及び抽出装置
JP2013145420A (ja) * 2012-01-13 2013-07-25 Hitachi Ltd 暗号化データの高速な類似検索処理システム
WO2014092105A1 (ja) * 2012-12-12 2014-06-19 日本電気株式会社 データベース検索装置、データベース検索方法及びプログラム
EP2924912A2 (en) 2014-03-25 2015-09-30 Fujitsu Limited Ciphertext processing device, ciphertext processing method, ciphertext processing program, and information processing device
US9311494B2 (en) 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
US9418238B2 (en) 2011-02-22 2016-08-16 Mitsubishi Electric Corporation Search system, search method of search system, and information processing device
JPWO2016203555A1 (ja) * 2015-06-16 2018-02-15 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
JP2019512127A (ja) * 2016-02-22 2019-05-09 アリババ グループ ホウルディング リミテッド 文字列距離計算方法及び装置
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
US11870892B2 (en) 2018-10-11 2024-01-09 Nec Corporation Information processing apparatus, secret calculation method, and program

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146895A (ja) * 2010-01-14 2011-07-28 Mitsubishi Electric Corp 情報処理システム及び管理装置及びサーバ装置及び情報処理装置
US9418238B2 (en) 2011-02-22 2016-08-16 Mitsubishi Electric Corporation Search system, search method of search system, and information processing device
JP2013029891A (ja) * 2011-07-26 2013-02-07 Fujitsu Ltd 抽出プログラム、抽出方法及び抽出装置
US9311494B2 (en) 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
JP2013145420A (ja) * 2012-01-13 2013-07-25 Hitachi Ltd 暗号化データの高速な類似検索処理システム
WO2014092105A1 (ja) * 2012-12-12 2014-06-19 日本電気株式会社 データベース検索装置、データベース検索方法及びプログラム
US10339140B2 (en) 2012-12-12 2019-07-02 Nec Corporation Database search device, database search method, and program
EP2924912A2 (en) 2014-03-25 2015-09-30 Fujitsu Limited Ciphertext processing device, ciphertext processing method, ciphertext processing program, and information processing device
US9473302B2 (en) 2014-03-25 2016-10-18 Fujitsu Limited Ciphertext processing device, ciphertext processing method, computer-readable recording medium, and information processing device
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
JPWO2016203555A1 (ja) * 2015-06-16 2018-02-15 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
JP2019512127A (ja) * 2016-02-22 2019-05-09 アリババ グループ ホウルディング リミテッド 文字列距離計算方法及び装置
US11256756B2 (en) 2016-02-22 2022-02-22 Advanced New Technologies Co., Ltd. Character string distance calculation method and device
US11870892B2 (en) 2018-10-11 2024-01-09 Nec Corporation Information processing apparatus, secret calculation method, and program

Similar Documents

Publication Publication Date Title
JP2009271584A (ja) 類似情報検索システムおよび類似情報検索プログラム
US11770250B2 (en) Method and system for ensuring search completeness of searchable public key encryption
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
US9275250B2 (en) Searchable encryption processing system
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
US8837727B2 (en) Method for privacy preserving hashing of signals with binary embeddings
US20180183571A1 (en) Method for providing encrypted data in a database and method for searching on encrypted data
Xu et al. DNA similarity search with access control over encrypted cloud data
Wang et al. PeGraph: A system for privacy-preserving and efficient search over encrypted social graphs
CN104281798B (zh) 秘密数据匹配装置以及秘密数据匹配方法
CN112000632B (zh) 密文的分享方法、介质、分享客户端及系统
US20240135024A1 (en) Method and system for data communication with differentially private set intersection
US20180300497A1 (en) Method for confidentially querying an encrypted database
WO2008135951A1 (en) Method and a system for performing an oblivious query issued by a first party on a string provided by a second party
US20220382900A1 (en) Encrypted text searching
Riazi et al. Sub-linear privacy-preserving near-neighbor search
US12542651B2 (en) Method for processing homomorphic encryption and electronic apparatus
CN110990829A (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
Glaser et al. How to enumerate LWE keys as narrow as in Kyber/Dilithium
CN113849538A (zh) 一种基于模糊搜索多选项的智能提取方法及系统
Yao et al. Verifiable social data outsourcing
Wang et al. FPMRQ: fully privacy-preserving multidimensional range queries on encrypted data
CN114528370B (zh) 动态多关键字模糊排序搜索方法及系统
Sun et al. Efficient and Privacy-Preserving Weighted Nearby-Fit Spatial Keyword Query in Cloud
Wang Search over encrypted data in cloud computing