説明

データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム

【課題】属性データの取り得る値のバリエーションが限られているような場合でも、秘匿検索における頻度分析をより困難にし、安全性を高めることを目的とする。
【解決手段】入力データの取り得る値の数に応じた数のダミーデータを生成し、生成した各ダミーデータに所定の確率を割り当て、選択される確率が割り当てた確率になるように、生成したダミーデータから所定の数のダミーデータを選択する。入力データに対して所定の計算をして入力タグを生成するとともに、選択したダミーデータに対して前記所定の計算をしてダミータグを生成する。そして、入力データを暗号化した暗号化データに、入力タグとダミータグとを関連付けて記憶させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データを暗号化したまま検索可能とする秘匿検索技術に関する。特に、頻度分析を困難にし、安全性を高めた秘匿検索技術に関する。
【背景技術】
【0002】
近年、クラウドコンピューティングと呼ばれるコンピュータの利用形態が普及してきている。クラウドコンピューティングにおいては、利用者はデータの保管や管理などのコンピュータ処理をネットワーク経由でサービスとして利用することができる。
このような形態においては、データの所有者であるサービス利用者とデータの管理者であるサービス提供者とが異なる。そのため、サービス利用者の機密情報がサービス提供者に漏えいすることを防ぐために、サービス利用者が保存するデータを暗号化することが一般的になりつつある。データを暗号化したまま所望するデータを検索することができる秘匿検索のサービスが実現できれば、利用者の利便性が大きく向上する。
【0003】
データを暗号化したまま検索する方法として、確定的暗号やハッシュを用いる方法がある。確定的暗号やハッシュでは、入力データに対する暗号化データが一意に決定されるため、暗号化されたままでも照合が可能となり、逐次検索やインデックスを用いた検索が実現できる。
特許文献1では、暗号化データと関連付けられたハッシュ値を用いることにより検索時の絞込みを高速化する方法について開示されている。このような確定的暗号やハッシュ値を用いる方法では、入力データの内容が直接漏えいすることはないが、データの出現頻度の分析が可能であるため、秘匿性が低下するという課題がある。
この課題に対して、特許文献2では、ハッシュ値にダミーデータを混入することにより、データの出現頻度をかく乱する方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−242740公報
【特許文献2】特開2005−72917公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献2では、全文検索システムにおける単語等の検索対象文字列の出現頻度のかく乱を目的としている。特許文献2では、検索に用いられない文字列(句読点など)を、入力文書の文字列の出現頻度に近似した偏りを持つ文字列に置き換えている。したがって、特許文献2では、入力データの取り得る値のバリエーションが多く、かつ、不特定多数のデータが1レコード(1文書)に関連付けられるという特徴がある。
【0006】
属性データ(例えば住所の都道府県名や市町村名等)のような取り得る値のバリエーションが限られており、1レコードで取れる値が排他的(1つのみ)であるようなデータベースがある。このようなデータベースに特許文献2に記載された発明を適用する場合には、以下の(1)(2)のような課題がある。
(1)追加するデータ(ダミーデータ)の出現頻度を元データの出現頻度に合わせると、取り得る値のバリエーションが限られることから、頻度分析が可能となり秘匿性が低下する。
(2)入力データの中の検索に用いられないデータをダミーデータに置き換えることはできず、ダミーデータを新たに追加する必要がある。
【0007】
この発明は、属性データの取り得る値のバリエーションが限られているような場合でも、秘匿検索における頻度分析をより困難にし、安全性を高めることを目的とする。
【課題を解決するための手段】
【0008】
この発明に係るデータ生成装置は、
入力データを入力する入力部と、
前記入力部が入力した入力データを暗号化して暗号化データを生成する暗号化部と、
前記入力データの取り得る値の数を要素数として計測する要素数計測部と、
前記要素数計測部が計測した要素数に応じた数のダミーデータを生成するとともに、生成した各ダミーデータに所定の確率を割り当てるダミーデータ生成部と、
選択される確率が前記ダミーデータ生成部が割り当てた確率になるように、前記ダミーデータ生成部が生成したダミーデータから所定の数のダミーデータを選択するダミーデータ選択部と、
前記入力データに含まれるデータに対して所定の計算をして入力タグを生成するとともに、前記ダミーデータ選択部が選択したダミーデータに対して前記所定の計算をしてダミータグを生成する登録タグ生成部と、
前記登録タグ生成部が生成した入力タグとダミータグとを、前記暗号化部が生成した暗号化データに関連付けて記憶装置に記憶させる記憶部と
を備えることを特徴とする。
【発明の効果】
【0009】
この発明に係るデータ生成装置では、取り得る値の数(要素数)に応じてダミーデータ数を決定し、各ダミーデータが選択される頻度を任意に決定している。そのため、元データに近いデータの偏りを再現しながら、出現頻度をランダムとすることができ、秘匿検索における頻度分析をより困難にし、安全性を高めることができる。
【図面の簡単な説明】
【0010】
【図1】実施の形態1に係る秘匿化データベースシステム100の構成の一例を示す図。
【図2】実施の形態1に係る秘匿化データベースシステム100のデータ登録時の動作を示すフローチャート。
【図3】実施の形態1に係る秘匿化データベースシステム100のデータ検索時の動作を示すフローチャート。
【図4】実施の形態1に係るダミー生成部230の構成の一例を示す図。
【図5】実施の形態1に係るダミー生成部230のデータ登録時の動作を示すフローチャート。
【図6】実施の形態1に係る秘匿化データベース330の表の構成の一例を示す図。
【図7】実施の形態1に係る秘匿化データベース330の表の構成の図6とは異なる一例を示す図。
【図8】実施の形態2に係る秘匿化データベースシステム100の構成の一例を示す図。
【図9】実施の形態2に係る秘匿化データベースシステム100のデータ検索時の動作を示すフローチャート。
【図10】実施の形態2に係るダミー生成部230のデータ検索時の動作を示すフローチャート。
【図11】クライアント200とサーバ300とのハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0011】
実施の形態1.
図1は、実施の形態1に係る秘匿化データベースシステム100の構成の一例を示す図である。
秘匿化データベースシステム100は、クライアント200(データ生成装置)と、サーバ300(データベースサーバ)とを備える。クライアント200とサーバ300とは、ネットワーク400で接続される。ネットワーク400はインターネットやイントラネット、LAN、電話回線網などにより構成される。クライアント200とサーバ300とが1台のコンピュータに同居し、コンピュータ内部のバスやメモリ階層をネットワーク400とする構成としてもよい。
入力データ500は、サーバ300へ登録されるデータであり、登録時にクライアント200へ入力される。検索キー600は、検索のキーとして利用されるデータであり、検索時にクライアント200に入力される。検索結果データ700は、検索キー600により検索された結果、クライアント200から出力されるデータである。
【0012】
クライアント200は、暗号化部210、登録データハッシュ部220(登録タグ生成部)、ダミー生成部230、検索キーハッシュ部240(検索タグ生成部)、照合部250(抽出部)、復号部260、ユーザインタフェース部270(入力部)、クライアント通信部280(記憶部)を備える。
サーバ300は、登録部310、検索部320、秘匿化データベース330、サーバ通信部340を備える。秘匿化データベース330には、ハッシュデータフィールド331、暗号化データフィールド332の領域が設けられている。
【0013】
図2は、実施の形態1に係る秘匿化データベースシステム100のデータ登録時の動作を示すフローチャートである。
まず、クライアント200側で処理が実行される。
(S101)にて、ユーザインタフェース部270は、入力データ500を入力装置により入力する。(S102)にて、暗号化部210は、入力データ500を処理装置により暗号化し、暗号化データを生成する。(S103)にて、ダミー生成部230は、入力データ500に基づき処理装置によりダミーデータを生成する。(S104)にて、登録データハッシュ部220は、入力データ500をハッシュしたハッシュデータ(入力タグ)と、ダミーデータをハッシュした追加ダミーデータ(ダミータグ)とを処理装置により生成する。(S105)にて、クライアント通信部280は、暗号化データとハッシュデータと追加ダミーデータとを、ネットワーク400を経由してサーバ通信部340へ送信する。その際、ハッシュデータと追加ダミーデータの順序をランダムに並び替えて送信する。これにより、ハッシュデータと追加ダミーデータとが混合され、区別がつかないようになり、セキュリティ強度を高めることができる。
【0014】
続いて、サーバ300側で処理が実行される。
(S106)にて、登録部310は、暗号化データとハッシュデータと追加ダミーデータとを秘匿化データベース330に登録する。このとき、暗号化部210が生成した暗号化データは暗号化データフィールド332に登録され、登録データハッシュ部220が生成したデータ(ハッシュデータと追加ダミーデータ)は対応する暗号化データと関連付けられてハッシュデータフィールド331に登録される。
【0015】
図3は、実施の形態1に係る秘匿化データベースシステム100のデータ検索時の動作を示すフローチャートである。
まず、クライアント200側で処理が実行される。
(S201)にて、ユーザインタフェース部270は、検索キー600を入力装置により入力する。(S202)にて、検索キーハッシュ部240は、検索キー600をハッシュしたハッシュデータ(検索タグ)を処理装置により生成する。なお、S104とS202とでは、同じハッシュ関数が用いられる。(S203)にて、クライアント通信部280は、検索キーのハッシュデータをネットワーク400を経由してサーバ通信部340へ送信する。
【0016】
続いて、サーバ300側で処理が実行される。
(S204)にて、検索部320は、検索キーのハッシュデータをキーとしてハッシュデータフィールド331の検索を処理装置により行う。(S205)にて、検索部320は、検索ヒットするハッシュデータがあったどうかを処理装置により判定する。ヒットしなかった場合(S205でNO)には、(S206)にて、サーバ通信部340は、検索結果(ヒット件数0)をクライアント通信部280へ送信する。一方、ヒットした場合(S205でYES)には、(S207)にて、検索部320は、ヒットしたハッシュデータに関連付けられた暗号化データを暗号化データフィールド332から処理装置により抽出する。(S208)にて、サーバ通信部340は、検索結果の暗号化データをネットワーク400を経由してクライアント通信部280へ送信する。
【0017】
再び、クライアント200側で処理が実行される。
(S209)にて、復号部260は、暗号化データを処理装置により復号する。(S210)にて、照合部250は、復号されたデータを検索キー600と処理装置により照合し、合致するデータを検索結果とする。(S211)にて、ユーザインタフェース部270は、S206の検索結果又はS210の検索結果を検索結果データ700として出力する。
【0018】
以上に述べたように、秘匿化データベースシステム100では、データの暗号化、復号、およびハッシュはクライアント200側にて実行される。そのため、サーバ300側へ入力データ500や検索キー600が元のまま(暗号化されない状態で)送られることはなく、サーバ300側での盗聴に対して秘匿性が保たれる。
また、追加ダミーデータがハッシュデータに混合されるため、ハッシュデータフィールドの頻度分析の攻撃に対してセキュリティ強度を高めることができる。
【0019】
図4は、実施の形態1に係るダミー生成部230の構成の一例を示す図である。
ダミー生成部230は、要素数計測部231、要素表232、ダミーデータ生成部233、ダミーデータ表234、追加ダミーデータ数設定部235、ダミーデータ選択部236を備える。
【0020】
図5は、実施の形態1に係るダミー生成部230のデータ登録時の動作を示すフローチャートである。
(S301)にて、要素数計測部231は、ダミー生成部230に入力データ500が入力される度に、入力データ500が登録されるフィールドに出現するユニークな要素数を、要素表232を参照して計測する。例えば、要素数計測部231は、入力データ500が県名を登録する県名フィールドに登録される場合には、県名フィールドに登録されている県の数をカウントする。要素数計測部231は、入力データ500が要素表232における該当のフィールドに対応する欄に存在するかどうか確認し、存在しない場合には新たに要素表に追加する。要素数計測部231は、その上で要素表のその欄のエントリ数を要素数yとする。
(S302)にて、要素数計測部231は、要素数yに変更があるかどうかを処理装置により判定する。変更がある場合(S302でYES)にはS303へ処理を進めてS303〜S306を実行し、変更がない場合(S302でNO)にはS303〜S306を省略してS307へ処理を進める。
【0021】
(S303)にて、ダミーデータ生成部233は、使用ダミーデータ数kを式(1)を用いて処理装置により計算する。
<式(1)>
k=(y+α)×n
ここで、αは0以上の整数であり定数である。αは通常は0としてよい。しかし、要素数yが小さい(例えば10以下などの)場合には、αを1以上の値とすることで使用ダミーデータのバリエーションを増やし、セキュリティ強度を高める。nは追加ダミーデータ数設定部235により設定された追加ダミーデータ数である。追加ダミーデータ数設定部235は、追加ダミーデータ数を、入力装置を介してユーザにより設定させ、データベースの表定義時に表毎、あるいは列毎に決定させる。追加ダミーデータ数が大きいほどセキュリティ強度を高めることができるが、検索対象となるハッシュデータフィールドのサイズが大きくなるため、ユーザの要件に応じて設定可能とする。
(S304)にて、ダミーデータ生成部233は、不足する使用ダミーデータを処理装置により生成する。使用ダミーデータは、入力データに対して特定の演算(例えば定数加算など)を行うことで生成してもよいし、擬似乱数を用いてランダムに生成してもよい。
(S305)にて、ダミーデータ生成部233は、i=1,...,kのk個の使用ダミーデータx(i)の出現確率p(i)を、Σi=1p(i)=1となるように、処理装置によりランダムに割り当てる。なお、出現確率p(i)とは、使用ダミーデータx(i)がダミーデータ選択部236により選択され、使用される確率である。
(S306)にて、ダミーデータ生成部233は、ダミーデータ表234を更新する。すなわち、ダミーデータ生成部233は、S304で新たに生成した使用ダミーデータのエントリを追加し、全エントリの出現確率p(i)をS305で生成した値に更新する。ダミーデータ表234は、使用ダミーデータx(i)と出現確率p(i)とを対応付けて保存した表であり、簡単には2次元配列構造にて実現できるが、他のデータ構造としてもよい。
【0022】
(S307)にて、ダミーデータ選択部236は、ダミーデータ表234を参照し、出現確率p(i)に基づいてk個の使用ダミーデータx(i)の中からn個の使用ダミーデータx(i)を選択して出力する。つまり、ダミーデータ選択部236は、使用ダミーデータx(i)の選択される確率が出現確率p(i)となるように、k個の使用ダミーデータx(i)の中からn個の使用ダミーデータx(i)を選択する。
【0023】
以上述べたように、ダミー生成部230は、使用ダミーデータx(i)の数を要素数に応じて決定する。これにより、使用ダミーデータx(i)の偏りが元データに近い偏りになる。そして、使用ダミーデータx(i)の出現確率p(i)をランダムに割り当てることで、ハッシュデータフィールド331に対する頻度分析をより困難にすることができ、セキュリティ強度が向上する。
【0024】
図6は、実施の形態1に係る秘匿化データベース330の表の構成の一例を示す図である。図6(a)はユーザ表510を示す図であり、図6(b)は秘匿化表333を示す図である。
ユーザ表510は、クライアント200を用いてデータベースにアクセスするユーザから見た表の一例である。秘匿化表333は、ユーザ表510に対応して秘匿化データベース330に格納された表の一例である。秘匿化表333では暗号化データおよびハッシュデータの例を英数字の文字列で示しているが、任意のバイナリデータであってよい。
ユーザ表510中の列520を暗号化したデータが、秘匿化表333の暗号化データフィールド332に登録される。秘匿化表333には、列520に関連するハッシュデータフィールド331が追加されている。ハッシュデータフィールド331は、追加ダミーデータ数nに対して、入力データ500をハッシュしたハッシュデータを登録する1列を加えたn+1列で構成される。暗号化の有無およびハッシュデータの有無はユーザ表の列毎に設定することが可能である。r列に対してハッシュデータを追加する場合にはr×(n+1)列が秘匿化表333に追加される。
ユーザ表510にID=0001のレコードがユーザインタフェース部270を通じて追加される場合、例えば入力データ500は暗号化されて暗号化データ501となり、それに対応してハッシュデータ502,503として生成される(n=1の場合の例)。ハッシュデータ502,503は、一方が追加ダミーデータであり、他方が入力データ500のハッシュデータである。しかし、前述の通り順序がランダム化されるため、どちらが追加ダミーデータであるかはわからない。したがって、nの値を増加させるにつれてセキュリティ強度を向上できる。
【0025】
なお、秘匿化表333の列名も秘匿化することで更に頻度解析を行いにくくできる。また、ユーザ表510の列名と、秘匿化表333の列名との対応関係はユーザインタフェース部270にて管理され、ユーザからのアクセス時に適切に相互変換される。秘匿化表333は広く用いられているRDB(Relational DataBase)により実装できるが、その他のオブジェクト指向データベースや列指向データベースなどによる実装としてもよい。RDBであれば、ハッシュデータフィールド331に対してインデックスを生成することで高速な検索が可能となる。
【0026】
図7は、実施の形態1に係る秘匿化データベース330の表の構成の図6とは異なる一例を示す図である。図7(a)はユーザ表510を示す図であり、図7(b)は秘匿化表333の暗号化データフィールド332部分の表を示す図であり、図7(c)は秘匿化表333のハッシュデータフィールド331部分の表を示す図である。
図6との違いは、秘匿化表333の暗号化フィールドと、ハッシュフィールドとが別の表で実装される点である。列520に関連するハッシュデータフィールド331が秘匿化表333の暗号化フィールドとは別の表に実装され、ユーザ表510の1列に対してハッシュデータフィールドも1列(H001の列)となり、関連付けのためにIDをH002に保持する。従って、追加ダミーデータ数nに対してn+1行が1レコード分に対応する。ハッシュデータ502,503の順序がランダム化されるのは前述と同様である。検索時には2つの表を連携させる(JOINさせる)ことによりハッシュデータの検索結果から暗号化データの抽出が可能である。
【0027】
ユーザインタフェース部270は、一般に用いられるデータベースのインタフェースを実装することで、ユーザの利便性を向上することができる。例えば、ユーザインタフェース部270は、標準SQLインタフェースに準拠した実装とすることができる。
図6に示した表を検索する場合の例では、ユーザが以下のような問合せ文を作成して検索を実行する。
<ユーザにより入力される問合せ文>
SELECT * FROM “ユーザ表510” WHERE “住所(県)”=“神奈川”;
すると、秘匿化データベース330に対しては以下のような問合せに変換される。
<変換された後の問合せ文>
SELECT * FROM “秘匿化表333” WHERE “C020”=“8dfk3e3” OR “C021”=“8dfk3e3”;
つまり、「住所(県)」という列名は検索用のハッシュデータフィールドを指すC020、C021という列名に変換され、「神奈川」という検索キーはハッシュされて「8dfk3e3」に変換される。ハッシュフィールドは複数の列から成るため、複数の条件のOR条件に変換される。検索結果を返す際にはC020以降の列データは検索専用であるため捨てられ、暗号化データが復号されて出力される。このような変換を行うことにより、ユーザは秘匿化データベースへトランスペアレントな(透過的な)アクセスが可能となる。
【0028】
登録データハッシュ部220および検索キーハッシュ部240は、一般に用いられている任意のハッシュ関数を用いることができる。ハッシュデータの照合による検索を行うために、元データが決まれば一意にハッシュデータが決まるような関数であればよい。望ましくは、MD5やSHA−1などの暗号学的ハッシュ関数を用いることでセキュリティ強度を高めることができる。また、元データから暗号化データを一意に特定できる確定的暗号を用いることも可能である。
元データとハッシュデータとは1対1に対応するハッシュ関数を用いると、ハッシュデータの衝突が発生しないため、1つの検索キーに対する検索結果が一意に特定できる。その結果、照合部250での照合を省略することができるため、検索速度を向上させることができる。元データとハッシュデータとがn対1に対応するようなハッシュ関数を用いる場合には、ハッシュデータの頻度分析に対するセキュリティ強度が向上する。しかし、検索時に過剰検出が発生するため、照合部250にて復号データと検索キーとの照合を行う必要がある。
【0029】
暗号化部210および復号部260は、一般に用いられている任意の暗号アルゴリズムを用いることができる。DESやAES,MISTY(登録商標)などの共通鍵暗号でもよいし、RSA暗号のような公開鍵暗号を用いてもよい。但し元データから暗号化データを一意に特定できないようにした確率的暗号を用いる必要がある。暗号鍵は暗号化部210および復号部260で管理するか、またはクライアントから参照可能な鍵管理サーバにて管理することができる。暗号鍵はユーザ単位、データベース単位、表単位、カラム単位など、任意の単位で設定するようにしてもよい。
【0030】
実施の形態2.
図8は、実施の形態2に係る秘匿化データベースシステム100の構成の一例を示す図である。
図8に示す秘匿化データベースシステム100と、図1に示す秘匿化データベースシステム100との違いは、検索時にもダミーデータを用いる点である。図8では、ダミー生成部230から検索キーハッシュ部240への矢印が追加されている。
【0031】
図9は、実施の形態2に係る秘匿化データベースシステム100のデータ検索時の動作を示すフローチャートである。
図3を用いて説明した動作との違いを説明する。図9に示すS401は図3に示すS201と同様であり、図9に示すS406−S412は、図3に示すS205〜S211と同様である。
(S402)にて、ダミー生成部230は、ダミーデータを処理装置により生成する。(S403)にて、検索キーハッシュ部240は、検索キー600をハッシュしたハッシュデータ(検索タグ)と、S402で生成されたダミーデータをハッシュした追加ダミーデータ(ダミータグ)とを処理装置により生成する。(S404)にて、クライアント通信部280は、検索キーのハッシュデータと追加ダミーデータとを、順序をランダム化することにより混合してサーバ通信部340へ送信する。(S405)にて、検索部320は、検索キーのハッシュデータと追加ダミーデータとをキーとして、いずれかにヒットすることを条件としてハッシュデータフィールド331の検索を行う。
なお、ダミーデータのハッシュデータによる検索で検索結果に追加される過剰検出は、S411において除去され、検索結果は正しい結果となる。
【0032】
図10は、実施の形態2に係るダミー生成部230のデータ検索時の動作を示すフローチャートである。
図5に示すデータ登録時とは異なり、データ検索時にはダミーデータ表234の更新を行わない。そのため、単に、(S501)にて、ダミーデータ選択部236は、ダミーデータ表234を参照し、出現確率p(i)に基づいてk個の使用ダミーデータx(i)の中からn個の使用ダミーデータx(i)を選択して出力する。なお、nは登録時に用いる変数とは異なるn’を検索専用に設定することにしてもよい。
【0033】
以上述べたように、実施の形態2に係る秘匿化データベースシステム100では、検索時にもダミーデータを用いることにより、検索条件中の検索キーの頻度解析に対してもセキュリティ強度を高めることができる。
【0034】
図11は、クライアント200とサーバ300とのハードウェア構成の一例を示す図である。
図11に示すように、クライアント200とサーバ300とは、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
【0035】
磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0036】
プログラム群923には、上記の説明において「暗号化部210」、「登録データハッシュ部220」、「ダミー生成部230」、「検索キーハッシュ部240」、「照合部250」、「復号部260」、「ユーザインタフェース部270」、「クライアント通信部280」、「登録部310」、「検索部320」、「秘匿化データベース330」、「サーバ通信部340」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「入力データ500」、「検索キー600」、「検索結果データ700」、「ハッシュデータ」、「追加ダミーデータ」、「仕様ダミーデータ」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0037】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【0038】
100 秘匿化データベースシステム、200 クライアント、210 暗号化部、220 登録データハッシュ部、230 ダミー生成部、231 要素数計測部、232 要素表、233 ダミーデータ生成部、234 ダミーデータ表、235 追加ダミーデータ数設定部、236 ダミーデータ選択部、240 検索キーハッシュ部、250 照合部、260 復号部、270 ユーザインタフェース部、280 クライアント通信部、300 サーバ、310 登録部、320 検索部、330 秘匿化データベース、331 ハッシュデータフィールド、332 暗号化データフィールド、333 秘匿化表、340 サーバ通信部、400 ネットワーク、500 入力データ、510 ユーザ表、600 検索キー、700 検索結果データ。

【特許請求の範囲】
【請求項1】
入力データを入力する入力部と、
前記入力部が入力した入力データを暗号化して暗号化データを生成する暗号化部と、
前記入力データの取り得る値の数を要素数として計測する要素数計測部と、
前記要素数計測部が計測した要素数に応じた数のダミーデータを生成するダミーデータ生成部と、
前記ダミーデータ生成部が生成したダミーデータから予め定められたn個(nは1以上の整数)のダミーデータを選択するダミーデータ選択部と、
前記入力データに対して所定の計算をして入力タグを生成するとともに、前記ダミーデータ選択部が選択したダミーデータに対して前記所定の計算をしてダミータグを生成する登録タグ生成部と、
前記登録タグ生成部が生成した入力タグとダミータグとを、前記暗号化部が生成した暗号化データに関連付けて記憶装置に記憶させる記憶部と
を備えることを特徴とするデータ生成装置。
【請求項2】
前記ダミーデータ生成部は、ダミーデータを生成するとともに、生成した各ダミーデータに所定の確率を割り当て、
前記ダミーデータ選択部は、選択される確率が前記ダミーデータ生成部が割り当てた確率になるように、前記ダミーデータ生成部が生成したダミーデータから予め定められたn個のダミーデータを選択する
ことを特徴とする請求項1に記載のデータ生成装置。
【請求項3】
前記ダミーデータ生成部は、前記nと、前記要素数計測部が計測した要素数yと、予め定められた値αとに基づき、k=(y+α)×nで計算されるk個のダミーデータを生成するとともに、i=1,...,kのk個のダミーデータが選択される確率p(i)を、Σi=1p(i)=1となるようにランダムに割り当て、
前記ダミーデータ選択部は、前記ダミーデータ生成部が生成したダミーデータからn個のダミーデータを選択する
ことを特徴とする請求項2に記載のデータ生成装置。
【請求項4】
前記記憶部は、前記入力タグと前記ダミーデータとをランダムな順に並べて、前記暗号化データに関連付けて記憶装置へ送信して記憶させる
ことを特徴とする請求項1から3までのいずれかに記載のデータ生成装置。
【請求項5】
前記データ生成装置は、さらに、
検索キーを入力する検索キー入力部と、
前記検索キー入力部が入力した検索キーに対して前記所定の計算をして検索タグを生成する検索タグ生成部と、
前記検索タグ生成部が生成した検索タグが関連付けられた暗号化データを、前記記憶装置から取得する取得部と
を備えることを特徴とする請求項1から4までのいずれかに記載のデータ生成装置。
【請求項6】
前記ダミーデータ選択部は、前記ダミーデータ生成部が生成したダミーデータから予め定められたn’個(n’は1以上の整数)のダミーデータを選択し、
前記検索タグ生成部は、前記検索タグを生成するとともに、前記ダミーデータ選択部が選択したn’個のダミーデータに対して前記所定の計算をしてダミータグを生成し、
前記取得部は、前記検索タグと前記ダミータグとを前記記憶装置へ送信し、前記検索タグと前記ダミーデータとのいずれかが関連付けられた暗号化データを前記記憶装置から取得し、
前記データ生成装置は、さらに、
前記取得部が取得した暗号化データから前記検索タグが関連付けられた暗号化データを抽出する抽出部
を備えることを特徴とする請求項1から5までのいずれかに記載のデータ生成装置。
【請求項7】
前記ダミーデータ生成部は、前記検索タグと前記ダミーデータとをランダムな順に並べて前記記憶装置へ送信する
ことを特徴とする請求項6に記載のデータ生成装置。
【請求項8】
入力装置が、入力データを入力する入力工程と、
処理装置が、前記入力工程で入力した入力データを暗号化して暗号化データを生成する暗号化工程と、
処理装置が、前記入力データの取り得る値の数を要素数として計測する要素数計測工程と、
処理装置が、前記要素数計測工程で計測した要素数に応じた数のダミーデータを生成するダミーデータ生成工程と、
処理装置が、前記ダミーデータ生成工程で生成したダミーデータから予め定められたn個(nは1以上の整数)のダミーデータを選択するダミーデータ選択工程と、
処理装置が、前記入力データに対して所定の計算をして入力タグを生成するとともに、前記ダミーデータ選択工程で選択したダミーデータに対して前記所定の計算をしてダミータグを生成する登録タグ生成工程と、
処理装置が、前記登録タグ生成工程で生成した入力タグとダミータグとを、前記暗号化工程で生成した暗号化データに関連付けて記憶装置に記憶させる記憶工程と
を備えることを特徴とするデータ生成方法。
【請求項9】
入力データを入力する入力処理と、
前記入力処理で入力した入力データを暗号化して暗号化データを生成する暗号化処理と、
前記入力データの取り得る値の数を要素数として計測する要素数計測処理と、
前記要素数計測処理で計測した要素数に応じた数のダミーデータを生成するダミーデータ生成処理と、
前記ダミーデータ生成処理で生成したダミーデータから予め定められたn個のダミーデータを選択するダミーデータ選択処理と、
前記入力データに対して所定の計算をして入力タグを生成するとともに、前記ダミーデータ選択処理で選択したダミーデータに対して前記所定の計算をしてダミータグを生成する登録タグ生成処理と、
前記登録タグ生成処理で生成した入力タグとダミータグとを、前記暗号化処理で生成した暗号化データに関連付けて記憶装置に記憶させる記憶処理と
をコンピュータに実行させることを特徴とするデータ生成プログラム。
【請求項10】
データを生成するデータ生成装置と、前記データ生成装置が生成したデータを記憶するデータベースサーバとを備えるデータベースシステムであり、
前記データ生成装置は、
入力データを入力する入力部と、
前記入力部が入力した入力データを暗号化して暗号化データを生成する暗号化部と、
前記入力データの取り得る値の数を要素数として計測する要素数計測部と、
前記要素数計測部が計測した要素数に応じた数のダミーデータを生成するダミーデータ生成部と、
前記ダミーデータ生成部が生成したダミーデータから所定の数のダミーデータを選択するダミーデータ選択部と、
前記入力データに対して所定の計算をして入力タグを生成するとともに、前記ダミーデータ選択部が選択したダミーデータに対して前記所定の計算をしてダミータグを生成する登録タグ生成部と、
前記登録タグ生成部が生成した入力タグ及びダミータグと、前記暗号化部が生成した暗号化データとを前記データベースサーバへ送信する記憶部と
を備え、
前記データベースサーバは、
前記記憶部が送信した入力タグとダミーデータと暗号化データとを関連付けて、データベースに登録する登録部
を備えることを特徴とするデータベースシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−248940(P2012−248940A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−116962(P2011−116962)
【出願日】平成23年5月25日(2011.5.25)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】