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