(57)【特許請求の範囲】
【請求項１】
暗号化データベースに格納する暗号化データを作成する暗号化データ作成装置において、
入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する文字列抽出部と、
前記所定文字列単位でパディングデータを生成する文字列付加処理部と、
前記文字列抽出部によって抽出された単語文字列および前記文字列付加処理部によって生成されたパディングデータを、個々に共通暗号鍵で暗号化する暗号化処理部と、を備え、
前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、
前記文字列付加処理部は、前記特殊パディングデータを生成する特殊パディングデータ生成部を有し、
前記特殊パディングデータ生成部は、
第１の初期値に一定値を加算して第２の初期値を生成する初期値更新部と、
各前記初期値から乱数データを生成する乱数データ生成部と、
各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択する乱数データ選択部と、を有し、
前記乱数データ選択部は、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、
ことを特徴とする暗号化データ作成装置。
【請求項２】
前記乱数データ選択部は、前記使用頻度の分布が２項分布に従うように、前記乱数データの選択を行うことを特徴とする請求項１に記載の暗号化データ作成装置。
【請求項３】
文字列抽出部と文字列付加処理部と暗号化処理部とを備えた暗号化データ作成装置における、暗号化データベースに格納する暗号化データを作成する暗号化データ作成方法であって、
前記文字列抽出部が、入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する過程と、
前記文字列付加処理部が、前記所定文字列単位でパディングデータを生成する過程と、
前記暗号化処理部が、前記文字列抽出部によって抽出された単語文字列および前記文字列付加処理部によって生成されたパディングデータを、個々に共通暗号鍵で暗号化する過程と、を含み、
前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、
前記文字列付加処理部は、前記特殊パディングデータを生成する際に、第１の初期値に一定値を加算して第２の初期値を生成し、各前記初期値から乱数データを生成し、各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択するものであって、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、
ことを特徴とする暗号化データ作成方法。
【請求項４】
暗号化データベースに格納する暗号化データを作成する暗号化データ作成処理をコンピュータに実行させるためのプログラムであって、
入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する第１のステップと、
前記所定文字列単位でパディングデータを生成する第２のステップと、
前記第１のステップによって抽出された単語文字列および前記第２のステップによって生成されたパディングデータを、個々に共通暗号鍵で暗号化する第２のステップと、をコンピュータに実行させるためのプログラムであり、
前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、
前記第２のステップにおいて、前記特殊パディングデータを生成する際に、第１の初期値に一定値を加算して第２の初期値を生成し、各前記初期値から乱数データを生成し、各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択するものであって、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、頻度分布による平文の推定行為に対し、ダミーデータを挿入して頻度を攪乱する、暗号化データ作成装置および方法ならびにそのプログラムに関する。
【背景技術】
【０００２】
近年、様々なデータを電子データに変換し、オンラインで保管および管理することによって作業を効率化する試みが多くの企業でなされている。
それに伴い、「データセンター」事業と称される、データベースに必要な資材および環境を提供するサービスも出現している。このような形態において、データベース環境を管理する管理者と実際にデータベースを利用する利用者とが異なることから、管理者によって利用者の機密情報が盗聴されることを防ぐために、利用者が保存するデータを暗号化することが考えられる。
【０００３】
ところで、上記した利用形態において、「頻度分析」と称される古典的な攻撃が脅威となる。「頻度分析」とは、データベース等から多数の暗号文を収集し、暗号化された各単語の出現頻度を集計して一般的な出現頻度との比較を行うことによりって平文を推定する分析方法である。
上記した古典的な頻度分析に対し、平文には存在しないダミーデータを挿入することにより、その頻度を攪乱するデータ暗号化方法およびシステムが存在する（例えば、特許文献１参照）。
【特許文献１】特開２００１−３５６９５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した特許文献１に開示された技術によれば、コンピュータに格納されたデータが理解され盗用されることはなくなるが、頻度攪乱のためにダミーデータを多数挿入することからデータベースのデータサイズが増加する欠点があった。
本発明は上記事情に鑑みてなされたものであり、データベースのサイズを増加させることなく頻度分析に対する耐性を強化した、暗号化データ作成装置および方法ならびにそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために本発明に係る暗号化データ作成装置は、暗号化データベースに格納する暗号化データを作成する暗号化データ作成装置において、入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する文字列抽出部と、前記所定文字列単位でパディングデータを生成する文字列付加処理部と、前記文字列抽出部によって抽出された単語文字列および前記文字列付加処理部によって生成されたパディングデータを、個々に共通暗号鍵で暗号化する暗号化処理部と、を備え、前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、前記文字列付加処理部は、前記特殊パディングデータを生成する特殊パディングデータ生成部を有し、前記特殊パディングデータ生成部は、第１の初期値に一定値を加算して第２の初期値を生成する初期値更新部と、各前記初期値から乱数データを生成する乱数データ生成部と、各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択する乱数データ選択部と、を有し、前記乱数データ選択部は、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、ことを特徴とする。
【０００６】
本発明に係る暗号化データ作成装置において、前記乱数データ選択部は、前記出現頻度の分布が２項分布に従うように、前記乱数データの選択を行うことを特徴とする。
【０００７】
上記した課題を解決するために本発明に係る暗号化データ作成方法は、文字列抽出部と文字列付加処理部と暗号化処理部とを備えた暗号化データ作成装置における、暗号化データベースに格納する暗号化データを作成する暗号化データ作成方法であって、前記文字列抽出部が、入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する過程と、前記文字列付加処理部が、前記所定文字列単位でパディングデータを生成する過程と、前記暗号化処理部が、前記文字列抽出部によって抽出された単語文字列および前記文字列付加処理部によって生成されたパディングデータを、個々に共通暗号鍵で暗号化する過程と、を含み、前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、前記文字列付加処理部は、前記特殊パディングデータを生成する際に、第１の初期値に一定値を加算して第２の初期値を生成し、各前記初期値から乱数データを生成し、各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択するものであって、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、ことを特徴とする。
【０００８】
上記した課題を解決するために本発明に係るプログラムは、暗号化データベースに格納する暗号化データを作成する暗号化データ作成処理をコンピュータに実行させるためのプログラムであって、入力文書から、単語文字列を抽出すると共に前記暗号化データベースの検索に使用されない所定文字列を抽出する第１のステップと、前記所定文字列単位でパディングデータを生成する第２のステップと、前記第１のステップによって抽出された単語文字列および前記第２のステップによって生成されたパディングデータを、個々に共通暗号鍵で暗号化する第２のステップと、をコンピュータに実行させるためのプログラムであり、前記パディングデータは、前記所定文字列とパディング長（Ｌ）を示すデータと特殊パディングデータ（データ長はＡ）と既存パディングデータ（データ長はＬ−Ａ）とから構成され、前記第２のステップにおいて、前記特殊パディングデータを生成する際に、第１の初期値に一定値を加算して第２の初期値を生成し、各前記初期値から乱数データを生成し、各前記初期値から生成された複数の乱数データの中から、前記特殊パディングデータに使用する乱数データを選択するものであって、前記特殊パディングデータに使用する各乱数データの使用頻度に偏りを持たせる、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、平文をダミーデータとして頻度を攪乱させる従来技術に比較してデータのサイズを増加させることなく頻度分析に対する耐性を強化することができる。
このことにより、暗号化したままの状態で検索できる暗号化ＤＢを構築する際に、より安全な機密性を持った暗号化システムを提供できる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明実施形態の内部構成を機能展開して示したブロック図である。本発明の暗号化データ作成装置は、入力文書１と、文字列抽出部２と、文字列付加処理部３と、暗号化処理部４と、出力文書５で構成される。
文字列抽出部２は、入力文書１から単語文字列を抽出する他に、意味の無い文字列をダミーデータの対象として抽出して文字列付加処理部３へ供給する機能を持つ。ここで、意味の無い文字列とは、日本語であれば、句読点等、検索に使用されない文字列のことをいう。また、文字列付加処理部３は、ダミーデータの対象となる文字列の後に、暗号化データの使用環境における出現頻度を反映した偏りを持つ文字列を付加する機能を持つ。文字列付加処理部３はまた、順次更新される任意の値と鍵を用いてハッシュ演算を施して付加される文字列を生成し、ここで生成される文字列を２項分布に従い選択し、偏りを持つ文字列を生成する。
【００１１】
暗号化処理部４は、文字列抽出部によって抽出された文字列ならびに文字列付加処理部３で生成された文字列を個々に共通暗号鍵で暗号化して出力文書５に保存する機能を持つ。
【００１２】
図１に示す暗号化データ作成装置の概略動作を説明すれば以下のようになる。すなわち、頻度分析に対し、頻度を攪乱させるための方法としてある種のダミーコードを挿入することが有効であることは周知のとおりである。更に、ダミーコードを挿入してもデータサイズが増加しないように、ここでは、文字列抽出部２が、入力文書１から句読点等、通常検索に使用されない文字列をダミーコードの対象として抽出する。
そして、文字列付加処理部３が、対象となる文字列の後にランダムな文字列を追加することで複数のランダムな文字列を生成する。このとき、上記した文字列のランダム性は、完全にランダムなものではなく、データベース等のデータ使用環境における出現頻度の分布を考慮してある偏りを設けることとする。以下に詳細を述べる。
【００１３】
図３は、本発明実施形態の動作を説明するために引用したフローチャートであり、具体的には本発明の暗号化データ作成のためのプログラムの処理手順を示す。以下、図３に示すフローチャートを参照しながら図１に示す本発明実施形態の動作について詳細に説明する。
まず、文字抽出部２は、入力文書１から平文を読み出して単語単位に分割して出力すると共に（Ｓ３１、Ｓ３２）、分割された単語のうち、検索に使用しない意味の無い文字列の抽出も行う（Ｓ３３Ｙｅｓ）。ここでは、通常、検索に使用されない文字列（日本語における句読点等）をダミーデータの対象とする。ここで、句読点が検出された場合、その文字列に対し文字列付加処理部３によるパディングデータの生成処理（Ｓ３４）が実行される。
【００１４】
図２に、文字列単位で生成されるパディングデータのフォーマットの一例が示されている。パディングデータは固定長であり、句読点等、ダミーコードとして抽出された適用単語、パディング長、特殊パディングデータ、既存パディングデータの各データ項目から成る。
特殊パディングデータと既存パディングデータを合計したパディング長Ｌは固定であり、その中で特殊パディングデータ長Ａが設定により変更されるため、既存パディングデータ長（Ｌ−Ａ）はそれに応じて変更される。ここで、既存パディングデータは、先頭に“１”、後ろに“０”を並べた暗号化データとする。
以下、文字列付加処理部３による特殊パディングデータ生成処理のためのアルゴリズムについて説明する。
【００１５】
特殊パディングの頻度分布は完全にランダムではなく準ランダムとし、頻度に偏りを持たせるために定義される度数分布曲線につき、概略２項分布を利用して近似することする。
すなわち、図４の動作概念図に示されるように、特殊パディングデータは、初期値と処理鍵を元に生成され、まず、初期値として任意の値が設定され、ハッシュ関数演算を２段実行することで乱数データが生成される。初期値はシーケンシャルに更新され（＋ｄ）、都度上記したハッシュ関数演算処理が施され、特殊パディングデータ候補としての乱数データが生成される（Ｓ３４）。
ここで得られる複数の乱数データのうち、上位Ａバイトを最も頻度の高い特殊パディングデータとして割付け、次のＡバイトを次に頻度の高い特殊パディンググデータとして割付ける。ここでは２項分布に従って選択された乱数が選択され割付けられる（Ｓ３５）。
【００１６】
文字列付加処理部３は、上記のようにして割付けられた特殊パディングデータをダミーコードとして抽出された文字列に付加し（Ｓ３６）、暗号化処理部４へ供給する。
暗号化処理部４は、文字列抽出部２によって抽出された文字列、ならびに文字列付加処理部３で生成された文字列を個々に共通暗号鍵で暗号化して出力文書５に保存する（Ｓ３７、Ｓ３８）。
このように、文字列付加処理部３が、文字列抽出部２によって抽出された例えば句読点等、検索に使用されない意味の無い文字列の後に、暗号化データの使用環境における出現頻度を反映した偏りを持つ文字列を付加することにより、平文には存在しないダミーデータを付加して頻度を攪乱する方法に比べてデータサイズを増加させることなく頻度を攪乱させ、頻度分析による攻撃に対して耐性を強化した暗号化データ作成装置を提供することができる。
【実施例】
【００１７】
図５は、本発明の暗号化データ作成装置の適用例を説明するために引用した図である。ここでは、ある会社が社内の重要文書のデータベース管理をデータセンターに委託する場合を想定している。
利用者端末１２には本発明の暗号化データ作成のためのプログラム（ここでは暗号化モジュール１２４）がインストールされており、ＬＡＮ（Local Area Network）１３経由で社内の管理サーバ１１に接続されている。また、管理サーバ１１は、インターネット３０等の公衆回線を経由してデータセンター２０の暗号化ＤＢ２２に接続されている。
【００１８】
利用者が、利用者Ｉ／Ｆ１２２を用いてデータを作成し保存したい場合、暗号化モジュール１２４を起動してそのデータを暗号化し、通信モジュール１２３、そしてインターネット３０を経由してデータセンター２０をアクセスし、ＤＢ検索登録モジュール２１を介して暗号化ＤＢ２２にアップロードする。
一方、検索を行う場合、利用者は、検索したいキーワードを暗号化してインターネット３０経由でデータセンター２０へ送信する。データセンター２ではＤＢ検索登録モモジュール２１を起動し、このＤＢ検索登録モモジュール２１は、暗号化ＤＢ２２を検索して暗号化された状態でマッチング処理を行い、一致したデータを抽出して返信する。利用者端末１２は、返信されてきたデータを復号化モジュール１２５により復号化して利用者へ提供する。
【００１９】
上記したシステムに本発明を適用すれば、データのサイズを増加させることなく頻度分析に対する耐性を強化することができ、暗号化したままの状態で検索できる暗号化ＤＢ２２を構築する際に、より安全な機密性を持った暗号化システムを提供できる。このことにより、利用者は暗号化されたＤＢの中から必要とするデータを暗号化されたままで抽出することができる。
【００２０】
なお、図１に示す文字列抽出部２と、文字列付加処理部３と、暗号化処理部４のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによっても本発明の暗号化データ作成装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウェアを含む。
【００２１】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００２２】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００２３】
【図１】本発明実施形態の内部構成を機能展開して示したブロック図である。
【図２】パディングデータのデータフォーマットの一例を示す図である。
【図３】本発明実施形態の動作を示すフローチャートである。
【図４】本発明実施形態の動作概念を示す図である。
【図５】本発明の適用例を示す図である。
【符号の説明】
【００２４】
１…入力文書、２…文字列抽出部、３…文字列付加処理部、４…暗号化処理部、５…出力文書
【図１】
0004552044.tif 000002
【図２】
0004552044.tif 000003
【図３】
0004552044.tif 000004
【図４】
0004552044.tif 000005
【図５】
0004552044.tif 000006