JP5759932B2 - 鍵データ生成装置、鍵データ生成方法、及びプログラム - Google Patents

鍵データ生成装置、鍵データ生成方法、及びプログラム Download PDF

Info

Publication number
JP5759932B2
JP5759932B2 JP2012118502A JP2012118502A JP5759932B2 JP 5759932 B2 JP5759932 B2 JP 5759932B2 JP 2012118502 A JP2012118502 A JP 2012118502A JP 2012118502 A JP2012118502 A JP 2012118502A JP 5759932 B2 JP5759932 B2 JP 5759932B2
Authority
JP
Japan
Prior art keywords
key data
key
candidate
unit
information
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.)
Active
Application number
JP2012118502A
Other languages
English (en)
Other versions
JP2013247439A (ja
Inventor
優樹 栗原
優樹 栗原
秀介 前田
秀介 前田
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.)
NTT Data Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2012118502A priority Critical patent/JP5759932B2/ja
Publication of JP2013247439A publication Critical patent/JP2013247439A/ja
Application granted granted Critical
Publication of JP5759932B2 publication Critical patent/JP5759932B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、鍵データ生成装置、鍵データ生成方法、及びプログラムに関する。
近年、ICカードなどの情報処理装置において、暗号化技術が広く使用されている。暗号化技術に用いる暗号鍵を生成する技術として、パスワード等の固有情報、及びソルトと呼ばれる乱数値などの情報を入力値(入力情報)として、所定の鍵導出関数を用いて暗号鍵(鍵データ)を生成する技術が知られている(例えば、特許文献1を参照)。なお、鍵導出関数には、例えば、PBKDF1(Password-Based Key Derivation Function 1)やPBKDF2(Password-Based Key Derivation Function 2)が知られている。このような鍵データを生成する技術では、入力情報に上述したソルトを用いることにより、鍵データを推定することを困難にしている。
特開2008−102839号公報
ところで、複数の鍵データを生成する場合に、鍵データは偏りのない値であることが望ましい。しかしながら、上述のような鍵データの生成技術では、生成した鍵データに偏りが生じてしまうことがある。生成した鍵データに偏りが生じた場合には、上述のような鍵データの生成技術では、攻撃者によって推測されてしまい、安全性の低下を招く場合がある。
本発明は、上記問題を解決すべくなされたもので、その目的は、安全性が低下することを低減しつつ適切な鍵データを生成することができる鍵データ生成装置、鍵データ生成方法、及びプログラムを提供することにある。
上記問題を解決するために、本発明の一態様は、擬似乱数を生成する乱数生成部と、入力された固有情報、及び前記乱数生成部が生成した前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成部と、過去に生成された前記鍵データの統計情報を記憶する情報記憶部と、前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出部と、前記算出部によって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定部とを備えることを特徴とする鍵データ生成装置である。
また、本発明の一態様は、上記の鍵データ生成装置において、前記検定情報には、前記入力情報と前記鍵データとの相関係数が含まれ、前記算出部は、さらに、前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データ及び当該入力情報とに基づいて、前記相関係数を算出し、前記判定部は、前記判定処理において、前記算出部によって算出された前記相関係数に基づいて、生成された前記候補鍵データを含む前記鍵データの集合が、無相関性の条件を満たすか否かを判定し、前記一様性の条件を満たすと判定した場合、且つ、前記無相関性の条件を満たすと判定した場合に、前記統計的な偏りが生じないと判定することを特徴とする。
また、本発明の一態様は、擬似乱数を生成する乱数生成部と、入力された固有情報、及び前記乱数生成部が生成した前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成部と、過去に生成された前記鍵データの統計情報を記憶する情報記憶部と、前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データ及び当該入力情報とに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記入力情報と前記鍵データとの相関係数を少なくとも算出する算出部と、前記算出部によって算出された前記相関係数に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が無相関性の条件を満たすか否を判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定部とを備えることを特徴とする鍵データ生成装置である。
また、本発明の一態様は、上記の鍵データ生成装置において、前記判定部は、さらに、前記統計的な偏りが生じると判定した場合に、前記鍵生成部に前記擬似乱数を変更して再生成させた候補鍵データに基づいて、繰り返し前記判定処理を実行し、当該繰り返し回数が所定の回数に達した場合に、繰り返し生成された前記候補鍵データのうちの前記統計的な偏りが最も小さい候補鍵データを前記鍵データとして出力することを特徴とする。
また、本発明の一態様は、上記の鍵データ生成装置において、前記鍵生成部が生成した前記候補鍵データを第1の候補鍵データとして、当該入力情報と関連付けて記憶する鍵情報記憶部と、前記鍵情報記憶部に記憶されている前記第1の候補鍵データの集合のうちの前記統計的な偏りが生じる原因として推定される部分集合を、各候補鍵データの差分に基づいて推定する原因推定部とを備え、前記判定部は、前記第1の候補鍵データの集合を前記鍵データの集合として前記判定処理を実行し、前記統計的な偏りが生じると判定した場合に、前記原因推定部によって推定された前記部分集合に含まれる候補鍵データを、前記鍵生成部に前記擬似乱数を変更して再生成させた第2の候補鍵データに置き換えて前記第1の候補鍵データとして、前記鍵情報記憶部に記憶させ、前記鍵情報記憶部に記憶されている前記第1の候補鍵データの数が所定の数に達した場合に、前記所定の数の前記第1の候補鍵データを前記鍵データとして出力することを特徴とする。
また、本発明の一態様は、上記の鍵データ生成装置において、前記原因推定部は、前記鍵情報記憶部に記憶されている前記第1の候補鍵データの集合のうちの前記統計的な偏りが生じる原因として推定される部分集合を、クラスタリングに基づいて推定することを特徴とする。
また、本発明の一態様は、上記の鍵データ生成装置において、前記判定部は、前記統計的な偏りが生じると判定した場合に、前記原因推定部によって推定された前記部分集合に含まれる候補鍵データを、前記第2の候補鍵データに置き換えて前記判定処理を再実行し、再実行した前記判定処理において、前記第2の候補鍵データに置き換え後の前記統計的な偏りが置き換え前の前記統計的な偏りより大きい場合に、置き換え前の前記候補鍵データを前記第2の候補鍵データに代えて、前記第1の候補鍵データとして、前記鍵情報記憶部に再び記憶させることを特徴とする。
また、本発明の一態様は、コンピュータを用いた鍵データ生成方法であって、前記コンピュータが備える乱数生成部が、擬似乱数を生成する乱数生成手順と、前記コンピュータが備える鍵生成部が、入力された固有情報、及び前記乱数生成手順によって生成された前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成手順と、前記コンピュータが備える算出部が、過去に生成された前記鍵データの統計情報を記憶する情報記憶部が記憶する前記統計情報と、前記鍵生成手順によって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出手順と、前記コンピュータが備える判定部が、前記算出手順によって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定手順とを含むことを特徴とする鍵データ生成方法である。
また、本発明の一態様は、コンピュータに、乱数生成部が、擬似乱数を生成する乱数生成ステップと、入力された固有情報、及び前記乱数生成ステップによって生成された前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成ステップと、算出部が、過去に生成された前記鍵データの統計情報を記憶する情報記憶部が記憶する前記統計情報と、前記鍵生成ステップによって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出ステップと、判定部が、前記算出ステップによって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定ステップとを実行させるためのプログラムである。
本発明によれば、安全性が低下することを低減しつつ適切な鍵データを生成することができる。
第1の実施形態による鍵データ生成装置を示すブロック図である。 第1の実施形態における統計情報のデータ構成を示す図である。 第1の実施形態における候補鍵情報のデータ構成を示す図である。 第1の実施形態における鍵データ生成装置の動作の一例を示すフローチャートである。 本実施形態における一様性の状態の一例を示す図である。 本実施形態における無相関性の状態の一例を示す図である。 第1の実施形態における鍵データ生成装置の動作の別の一例を示すフローチャートである。 第2の実施形態による鍵データ生成装置を示すブロック図である。 第2の実施形態における統計情報のデータ構成を示す図である。 第2の実施形態における候補鍵情報のデータ構成を示す図である。 第2の実施形態における鍵データ生成装置の動作の一例を示す第1のフローチャートである。 第2の実施形態における鍵データ生成装置の動作の一例を示す第2のフローチャートである。 本実施形態における一様性を満たさない原因推定の一例を示す図である。 本実施形態における無相関性を満たさない原因推定の一例を示す図である。
以下、本発明の一実施形態による鍵データ生成装置について図面を参照して説明する。
[第1の実施形態]
図1は、本実施形態による鍵データ生成装置1を示す概略ブロック図である。
図1において、鍵データ生成装置1は、擬似乱数生成部10、鍵生成部20、情報記憶部30、算出部40、判定部50、及び候補鍵記憶部60を備えている。ここで、算出部40と、判定部50とは、検定部2(検定器)に対応する。
擬似乱数生成部10(乱数生成部)は、擬似乱数(又は乱数)を生成する乱数生成器である。擬似乱数生成部10は、後述する判定部50の指示に基づいて、例えば、所定の暗号処理に用いる暗号鍵などの導出鍵(鍵データ)の生成に用いるソルトとして、擬似乱数を生成する。ここで、ソルトとは、導出鍵を生成する入力値(入力情報)にランダムな変化を与えるための情報のことであり、例えば、擬似乱数が用いられる。
鍵生成部20は、鍵データ生成装置1の外部から入力された固有情報、及び擬似乱数生成部10が生成した擬似乱数を含む入力値(入力情報)と、所定の鍵導出関数とに基づいて、導出鍵の候補鍵(候補鍵データ)を生成する。鍵生成部20は、鍵導出関数として、例えば、PBKDF1(Password-Based Key Derivation Function 1)やPBKDF2(Password-Based Key Derivation Function 2)を用いて候補鍵を生成する。また、固有情報とは、例えば、パスワードやユーザIDなどの情報であり、ユーザ又は暗号処理を使用する情報処理装置(例えば、ICカード)などにとって、ユニーク(固有)な情報である。ここでは、鍵生成部20は、入力値として、例えば、パスワードと擬似乱数(ソルト値)とを含む情報を用いる。
情報記憶部30は、過去に生成された導出鍵の統計情報であって、検定情報を算出するために必要な情報を記憶している。この統計情報は、導出鍵が生成されるごとに、更新される情報である。統計情報の詳細については後述する。
検定部2は、鍵生成部20によって生成された候補鍵が、導出鍵として統計的な偏りがあるか否かを検定し、検定結果に応じて、候補鍵を導出鍵として出力する検定器である。
検定部2は、算出部40と、判定部50とを備えている。
算出部40は、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報を算出する。本実施形態では、算出部40は、導出鍵の統計的な偏りを検定するための検定情報として、一様性検定情報及び相関係数(無相関性検定情報)の2つを算出する。ここで、検定情報とは、例えば、導出鍵の統計的な偏りを示す検定値である。また、一様性検定情報とは、導出鍵の統計的な一様性の指標を示す検定情報のことであり、例えば、カイ2乗検定に用いるカイ2乗値(χ値)である。また、相関係数は、上述した入力値と導出鍵(候補鍵を含む)との相関係数を示している。
すなわち、算出部40は、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、カイ2乗値(一様性検定情報)を算出する。また、算出部40は、さらに、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、入力値と導出鍵との相関係数を検定情報として算出する。
また、算出部40は、一様性算出部41、及び相関係数算出部42を備えている。
一様性算出部41は、上述したように情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報として、カイ2乗値を算出する。ここで、導出鍵の値(10進数、2進数など)の生成可能な範囲は、一定の間隔に分割(例えば、100等分割)されている。一様性算出部41は、下記の式(1)に基づいてカイ2乗値(χ値)を算出する。
Figure 0005759932
ここで、変数Oは、上述した分割数により分割された各対象範囲(各区間)における鍵の出力数を示している。また、変数Eは、分割数に応じた導出鍵の理想値を示し、具体的には、出力した導出鍵の総数を上述した分割数により除算した値である。また、変数kは、上述した分割数を示している。
なお、この変数O、変数E、及び変数kの値は、上述した統計情報に含まれ、情報記憶部30に記憶されている。
相関係数算出部42は、上述したように情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報として、上述した相関係数(r)を算出する。相関係数算出部42は、下記の式(2)に基づいて相関係数(r)を算出する。
Figure 0005759932
ここで、変数xは、i番目の入力値を示し、変数yは、i番目の導出鍵を示している。すなわち、変数xは、鍵生成部20における入力値(入力情報)であり、変数yは、鍵生成部20から出力される導出鍵である。また、変数nは、出力した導出鍵の総数を示している。また、変数xは、入力値の相加平均値を示し、変数yは、導出鍵の相加平均値を示している。なお、ここでは、本文中の上付の“−”は文字の真上に付けられた記号を表すこととする。
判定部50は、算出部40によって算出された算出結果に基づいて、生成された候補鍵を含めた導出鍵の集合が統計的な偏りが生じるか否かとして判定する判定処理する。判定部50は、統計的な偏りが生じていないと判定した場合に、候補鍵を導出鍵として出力する。判定部50は、例えば、算出部40(一様性算出部41)によって算出されたカイ2乗値に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性(一様性の条件)を満たすか否かを判定することにより、統計的な偏りが生じるか否かを判定する判定処理を実行する。また、判定部50は、例えば、判定処理において、算出部40(相関係数算出部42)によって算出された相関係数に基づいて、生成された候補鍵を含めた導出鍵の集合が無相関性(無相関性の条件)を満たすか否かを判定することにより、統計的な偏りが生じるか否かを判定する。すなわち、判定部50は、一様性(一様性の条件)を満たすと判定した場合、且つ、無相関性(無相関性の条件)を満たすと判定した場合に、統計的な偏りが生じないと判定する。
また、判定部50は、さらに、統計的な偏りが生じると判定した場合に、鍵生成部20に擬似乱数を変更して再生成させた候補鍵に基づいて、繰り返し上述した判定処理を実行する。そして、判定部50は、当該繰り返し回数が予め定められた所定の回数に達した場合(所定回数以上になった場合)に、繰り返し生成された候補鍵のうちの統計的な偏りが最も小さい候補鍵を導出鍵として出力する。
また、判定部50は、一様性判定部51、無相関性判定部52、及び再生成判定部53を備えている。
一様性判定部51は、算出部40(一様性算出部41)によって算出されたカイ2乗値に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性を満たすか否かを判定することにより、上述した統計的な偏りが生じるか否かを判定する。一様性判定部51は、例えば、一様性算出部41によって算出されたカイ2乗値に基づいて、有意水準0.05(5%)を下回った場合に、一様性がない(一様性の条件を満たさない)と判定する。
無相関性判定部52は、算出部40(相関係数算出部42)によって算出された相関係数に基づいて、生成された候補鍵を含めた導出鍵の集合が無相関性を満たすか否かを判定することにより、上述した統計的な偏りが生じるか否かを判定する。無相関性判定部52は、例えば、相関係数算出部42によって算出された相関係数(r)が(−0.2≦r≦0.2)の条件を満たす場合に、無相関(相関がない)と判定し、相関係数(r)が(r<−0.2又は0.2<r)の条件を満たす場合に、相関があると判定する。
再生成判定部53は、一様性判定部51及び無相関性判定部52の判定結果に基づいて統計的な偏りが生じていないと判定した場合に、候補鍵を導出鍵として出力する。
また、再生成判定部53は、統計的な偏りが生じると判定した場合に、鍵生成部20に擬似乱数を変更して再生成させた候補鍵に基づいて、繰り返し上述した判定処理を実行するとともに、後述する候補鍵記憶部60に、統計的な偏りが生じると判定した候補鍵と、対応する入力値(固有情報とソルトの値)と、カイ2乗値と、相関係数とを関連付けて記憶させる。この際に、再生成判定部53は、同一の固有情報に対して、既に記憶されている統計的な偏りが生じると判定した候補鍵の情報がある場合には、2つの候補鍵のうち統計的な偏りが小さい候補鍵を候補鍵記憶部60に記憶させる。この場合、再生成判定部53は、例えば、カイ2乗値と相関係数の絶対値との積の値が小さい方を、統計的な偏りが小さい候補鍵であると判定する。
また、再生成判定部53は、一様性判定部51及び無相関性判定部52の判定結果に基づいて統計的な偏りが生じていると判定した場合に、鍵生成部20に擬似乱数を変更して再生成させて、候補鍵を鍵生成部20に再生成させるとともに、上述した判定処理を繰り返し実行する。この繰り返し回数が予め定められた所定の回数に達した場合(所定回数以上になった場合)に、再生成判定部53は、繰り返し生成された候補鍵のうちの統計的な偏りが最も小さい候補鍵を導出鍵として出力する。すなわち、再生成判定部53は、繰り返し回数が所定の回数に達した場合に、統計的な偏りが最も小さい候補鍵を候補鍵記憶部60から読み出し、読み出した候補鍵を導出鍵として鍵データ生成装置1の外部に出力する。
また、再生成判定部53は、候補鍵を導出鍵として出力する場合に、候補鍵記憶部60に記憶されている候補鍵を消去(クリア)する。
候補鍵記憶部60(鍵情報記憶部)は、判定部50によって統計的な偏りが生じると判定された候補鍵の情報を示す候補鍵情報を記憶する。候補鍵記憶部60は、例えば、統計的な偏りが生じると判定した候補鍵と、対応する入力値(固有情報とソルトの値)と、カイ2乗値と、相関係数とを関連付けて記憶する。なお、候補鍵記憶部60が記憶する候補鍵の情報の構成については、詳細に後述する。
次に、情報記憶部30が記憶する上述した統計情報のデータ構成について説明する。
図2は、本実施形態における統計情報のデータ構成を示す図である。
図2に示すように、統計情報には、導出鍵の生成数、一様性検定の有意水準、相関係数の閾値、導出鍵の鍵値範囲の分割数、各分割範囲内の導出鍵の数、分割数に応じた導出鍵の理想値、最新のカイ2乗値、最新の相関係数、入力値の相加平均値、及び出力値(導出鍵)の相加平均値を含んでいる。
ここで、導出鍵の生成数は、出力した導出鍵の総数(n)に対応し、導出鍵の鍵値範囲の分割数は、上述した分割数(k)に対応する。また、一様性検定の有意水準は、一様性を検定する判定基準であり、例えば、0.05が予め定められている。また、相関係数の閾値は、無相関性の条件を満たすか否かを判定するための閾値であり、例えば、下限の閾値が−0.2、上限の閾値が0.2に定められている。また、各分割範囲内の導出鍵の数は、例えば、上述した変数Oの値に対応し、分割数に応じた導出鍵の理想値は、例えば、上述した変数Eの値に対応する。また、入力値の相加平均値は、例えば、上述した変数xの値に対応し、出力値(導出鍵)の相加平均値は、例えば、上述した変数yの値に対応する。
なお、判定部50は、導出鍵を鍵データ生成装置1の外部に出力するごとに、この情報記憶部30に記憶されている統計情報を更新する。
次に、候補鍵記憶部60が記憶する上述した候補鍵情報のデータ構成について説明する。
図3は、本実施形態における候補鍵情報のデータ構成を示す図である。
図3に示すように、候補鍵情報には、固有情報、ソルト値(仮ソルト)、候補鍵、一様性判定結果値(χ値)、及び無相関性判定結果値が含まれている。ここで、無相関性判定結果値は、例えば、相関係数の絶対値(|r|)に対応する。また、候補鍵記憶部60が記憶する候補鍵は、判定部50によって統計的な偏りが生じると判定された候補鍵の候補鍵情報であり、例えば、統計的な偏りが生じると判定された候補鍵のうち、統計的な偏りが最も小さい候補鍵の候補鍵情報である。
次に、本実施形態における鍵データ生成装置1の動作について説明する。
図4は、本実施形態における鍵データ生成装置1の動作の一例を示すフローチャートである。
図4において、まず、鍵データ生成装置1は、ソルト値(仮ソルト)を生成する(ステップS101)。すなわち、擬似乱数生成部10は、擬似乱数を仮ソルトとして生成し、生成した仮ソルトを鍵生成部20に出力する。
次に、鍵生成部20は、仮ソルトと、鍵データ生成装置1の外部から入力された固有情報(例えば、パスワード)とを連結し、鍵導出関数により候補鍵を生成する(ステップS102)。すなわち、鍵生成部20は、擬似乱数生成部10が生成した仮ソルトと、鍵データ生成装置1の外部から入力された固有情報とを連結した情報を入力値(入力情報)として、PBKDF1などの鍵導出関数に基づいて、導出鍵の候補となる候補鍵を生成する。鍵生成部20は、生成した入力値と候補鍵とを算出部40に出力する。
次に、算出部40は、一様性検定情報を算出する(ステップS103)。すなわち、算出部40の一様性算出部41は、上述したように情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報(一様性検定情報)として、カイ2乗値を算出する。算出部40は、算出したカイ2乗値を判定部50に出力する。
なお、算出部40は、統計情報のうち、導出鍵の生成数、導出鍵の鍵値範囲の分割数、各分割範囲内の導出鍵の数、分割数に応じた導出鍵の理想値、及び最新のカイ2乗値を用いてカイ2乗値を算出する。すなわち、算出部40は、これらの統計情報を用いて、候補鍵の追加による変化分を算出して、生成された候補鍵を含めた導出鍵の集合のカイ2乗値を算出する。これにより、算出部40は、過去に生成した全ての導出鍵の値を記憶しておく必要がなく、カイ2乗値を算出する演算量を低減することができる。
次に、判定部50は、一様性を満たすか否かを判定する(ステップS104)。すなわち、判定部50(一様性判定部51)は、算出部40(一様性算出部41)によって算出されたカイ2乗値に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。具体的には、判定部50(一様性判定部51)は、情報記憶部30から読み出した有意水準(例えば、0.05)と、一様性算出部41によって算出されたカイ2乗値とに基づいて一様性を満たすか否かを判定する。
判定部50は、一様性を満たすと判定した場合(ステップS104:YES)に、処理をステップS105に進め、一様性を満たさないと判定した場合(ステップS104:NO)に、処理をステップS108に進める。
次に、ステップS105において、算出部40は、無相関性検定情報を算出する(ステップS105)。すなわち、算出部40の相関係数算出部42は、上述したように情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報(無相関性検定情報)として、相関係数(r)を算出する。算出部40は、算出した相関係数(r)を判定部50に出力する。
なお、算出部40は、統計情報のうち、導出鍵の生成数、最新の相関係数、入力値の相加平均値、及び出力値(導出鍵)の相加平均値を用いて相関係数(r)を算出する。すなわち、算出部40は、これらの統計情報を用いて、候補鍵の追加による変化分を算出して、生成された候補鍵を含めた導出鍵の集合の相関係数(r)を算出する。これにより、算出部40は、過去に生成した全ての導出鍵の値を記憶しておく必要がなく、相関係数(r)を算出する演算量を低減することができる。
次に、判定部50は、無相関性を満たすか否かを判定する(ステップS106)。すなわち、判定部50(無相関性判定部52)は、算出部40(相関係数算出部42)によって算出された相関係数に基づいて、生成された候補鍵を含めた導出鍵の集合が無相関性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。
具体的に、判定部50(無相関性判定部52)は、情報記憶部30から読み出した相関係数の閾値(例えば、下限の閾値が−0.2、上限の閾値が0.2)と、相関係数算出部42によって算出された相関係数とに基づいて無相関性を満たすか否かを判定する。すなわち、無相関性判定部52は、例えば、相関係数算出部42によって算出された相関係数(r)が(−0.2≦r≦0.2)の条件を満たす場合に、無相関(無相関性の条件を満たす)と判定し、相関係数(r)が(r<−0.2又は0.2<r)の条件を満たす場合に、相関がある(無相関性の条件を満たさない)と判定する。
判定部50は、無相関性を満たすと判定した場合(ステップS106:YES)に、処理をステップS107に進め、無相関性を満たさないと判定した場合(ステップS106:NO)に、処理をステップS108に進める。
なお、ステップS103〜ステップS106までの処理が、上述した判定処理に対応する。
ステップS107において、判定部50は、候補鍵を導出鍵として鍵データ生成装置1の外部に出力する。判定部50は、導出鍵を鍵データ生成装置1の外部に出力した後、情報記憶部30に記憶されている統計情報を更新して、導出鍵生成処理を終了させる。なお、判定部50は、候補鍵を導出鍵として出力する場合に、候補鍵記憶部60に記憶されている候補鍵を消去(クリア)する。
一方、ステップS108において、判定部50(再生成判定部53)は、上述した繰り返し回数が所定の回数以上か否かを判定する。判定部50(再生成判定部53)は、繰り返し回数が所定の回数以上である場合(ステップS108:YES)に処理をステップS109に進める。また、判定部50(再生成判定部53)は、繰り返し回数が所定の回数未満である場合(ステップS108:NO)に処理をステップS101に戻して、異なるソルト値に基づいて候補鍵を再生成させて、ステップS101〜ステップS108までの処理を繰り返し実行させる。
なお、判定部50(再生成判定部53)は、処理をステップS101に戻す際に、統計的な偏りが生じると判定された候補鍵の情報を示す候補鍵情報を候補鍵記憶部60に記憶させる。ここで、判定部50(再生成判定部53)は、具体的に、既に記憶されている統計的な偏りが生じると判定した候補鍵の情報がある場合には、候補鍵記憶部60に記憶されている候補鍵情報を読み出す。そして、判定部50(再生成判定部53)は、読み出した候補鍵情報と、新たに生成した候補鍵情報とを比較して、新たに生成した候補鍵が候補鍵記憶部60に記憶されている候補鍵よりも統計的な偏りが小さい場合に、新たに生成した候補鍵情報を候補鍵記憶部60に記憶させる。
ステップS109において、判定部50は、繰り返し生成した候補鍵のうちで最も統計的な偏りが小さい候補鍵を導出鍵として、鍵データ生成装置1の外部に出力する。判定部50は、導出鍵を鍵データ生成装置1の外部に出力した後、情報記憶部30に記憶されている統計情報を更新して、導出鍵生成処理を終了させる。
このように、本実施形態における鍵データ生成装置1は、一様性及び無相関性を備えた統計的に偏りのない導出鍵を生成する。ここで、統計的な偏りが導出鍵に生じた場合のリスクについて説明する。
図5は、本実施形態における一様性の状態の一例を示す図である。
図5(a)は、参考として、生成された導出鍵(鍵A〜鍵F)が一様性を満たしていない場合の一例を示している。この場合、導出鍵は、鍵の生成可能範囲R1よりも狭い範囲R2内に偏って生成されているため、攻撃者(悪意を持った第三者)によって、生成された導出鍵(例えば、鍵F)の値がどの辺りになるかを推定することは可能である。
一方、図5(b)は、生成された導出鍵(鍵A〜鍵F)が一様性を満たしている場合の一例を示している。この場合、導出鍵は、範囲R1にほぼ等しい範囲R3内に一様に生成されているため、攻撃者によって、生成された導出鍵(例えば、鍵F)の値が、範囲R1のどの辺りになるかを推定することは、困難(不可能)である。本実施形態では、鍵データ生成装置1は、図5(b)のような一様性を満たした導出鍵を生成する。
また、図6は、本実施形態における無相関性の状態の一例を示す図である。
図6(a)は、参考として、生成された導出鍵(鍵A〜鍵F)が無相関性を満たしていない場合(相関性のある場合)の一例を示している。この場合、導出鍵は、入力値と導出鍵の値との間に相関があるため、攻撃者によって、その入力値から生成された導出鍵(例えば、鍵F)の値がどの辺りになるかを推定することは可能である。
一方、図6(b)は、生成された導出鍵(鍵A〜鍵F)が無相関性を満たしている場合(相関性のない場合)の一例を示している。入力値と導出鍵の値との間に相関があるため、攻撃者によって、その入力値から生成された導出鍵(例えば、鍵F)の値がどの辺りになるかを推定することは、困難(不可能)である。本実施形態では、鍵データ生成装置1は、図6(b)のような無相関性を満たした導出鍵を生成する。
以上説明したように、本実施形態における鍵データ生成装置1は、擬似乱数生成部10が、擬似乱数を生成し、鍵生成部20が、入力された固有情報、及び擬似乱数生成部10が生成した擬似乱数を含む入力値(入力情報)と、所定の鍵導出関数とに基づいて、導出鍵(鍵データ)の候補鍵(候補鍵データ)を生成する。また、情報記憶部30は、過去に生成された導出鍵の統計情報を記憶する。算出部40は、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを示す検定情報として、導出鍵の統計的な一様性を示す一様性検定情報(カイ2乗値)を少なくとも算出する。そして、判定部50は、算出部40によって算出された一様性検定情報(カイ2乗値)に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性の条件を満たすか否かを判定することにより、統計的な偏りが生じるか否かとして判定する判定処理を実行する。判定部50は、統計的な偏りが生じないと判定した場合に、候補鍵を導出鍵として出力する。
これにより、本実施形態における鍵データ生成装置1は、一様性(一様性の条件)を満たした統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。したがって、本実施形態における鍵データ生成装置1は、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態では、上述の検定情報には、入力値と導出鍵との相関係数が含まれる。算出部40は、さらに、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵及び当該入力値とに基づいて、入力値と導出鍵との相関係数を算出する。判定部50は、上述した判定処理において、算出部40によって算出された相関係数に基づいて、生成された候補鍵を含む導出鍵の集合が、無相関性の条件を満たすか否かを判定する。そして、判定部50は、一様性の条件を満たすと判定した場合、且つ、無相関性の条件を満たすと判定した場合に、生成された候補鍵を含む導出鍵の集合が統計的な偏りが生じないと判定する。
これにより、本実施形態における鍵データ生成装置1は、一様性(一様性の条件)を満たし、且つ、無相関性(無相関性の条件)を満たす統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。したがって、本実施形態における鍵データ生成装置1は、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態では、判定部50は、さらに、統計的な偏りが生じると判定した場合に、鍵生成部20に擬似乱数を変更して再生成させた候補鍵に基づいて、繰り返し上述の判定処理を実行する。判定部50は、当該繰り返し回数が所定の回数に達した場合に、繰り返し生成された候補鍵のうちの統計的な偏りが最も小さい候補鍵を導出鍵として出力する。
これにより、本実施形態における鍵データ生成装置1は、統計的な偏りが生じると判定した場合に、候補鍵の再生成を無限に繰り返すことを防ぐことができる。また、本実施形態における鍵データ生成装置1は、候補鍵のうちで、最も統計的な偏りの少ない候補鍵を導出鍵とするので、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態では、算出部40は、情報記憶部30が記憶する統計情報と生成した候補鍵とに基づいて、候補鍵の追加による変化分を算出して、生成された候補鍵を含めた導出鍵の集合の検定情報(カイ2乗値及び相関係数)を算出する。これにより、本実施形態における鍵データ生成装置1は、過去に生成した全ての導出鍵の値を記憶しておく必要がなく、検定情報を算出する演算量を低減することができる。
また、本実施形態では、候補鍵記憶部60は、統計的な偏り生じると判定された候補鍵のうちの、統計的な偏りが最も小さい候補鍵を記憶する。これにより、本実施形態における鍵データ生成装置1は、候補鍵記憶部60の記憶容量を低減することができる、
なお、本実施形態では、導出鍵の統計的な偏りを一様性と無相関性との2つの検定により判定する形態を説明したが、一様性と無相関性とのいずれか一方により導出鍵の統計的な偏りを判定する形態であってもよい。
例えば、算出部40が、情報記憶部30が記憶する統計情報と、鍵生成部20によって生成された候補鍵及び当該入力値(入力情報)とに基づいて、導出鍵の統計的な偏りを示す検定情報として、入力値と導出鍵との相関係数を少なくとも算出する。判定部50は、算出部40によって算出された相関係数に基づいて、生成された候補鍵を含めた導出鍵の集合が無相関性の条件を満たすか否を判定することにより、統計的な偏りが生じるか否かを判定する判定処理を実行する。そして、判定部50は、統計的な偏りが生じないと判定した場合に、候補鍵を導出鍵として出力する。
これにより、本実施形態における鍵データ生成装置1は、無相関性(無相関性の条件)を満たした統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。したがって、本実施形態における鍵データ生成装置1は、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態では、算出部40がカイ2乗値を算出する際に、一例として、導出鍵の値(10進数、2進数など)の生成可能な範囲を一定の間隔に分割(例えば、100等分割)する形態を説明したが、これに限定されるものではない。例えば、鍵導出関数や導出鍵を暗号鍵として用いる暗号アルゴリズムに応じて、一定ではない重み付けをした間隔に分割する形態でもよいし、生成可能な範囲のうちの所定の範囲において分割するする形態でもよい。
また、鍵データ生成装置1は、導出鍵を暗号鍵として用いる暗号アルゴリズムに応じて、鍵生成部20が生成した候補鍵がウイーク鍵(弱鍵)である場合に、候補鍵から除外して、候補鍵を再生成してもよい。ここでウイーク鍵(弱鍵)とは、暗号アルゴリズム上、解読し易いなどの安全性を低減する可能性があることが予め判明している鍵データのことである。
例えば、図7は、候補鍵がウイーク鍵(弱鍵)である場合に、鍵データ生成装置1が候補鍵から除外する動作の一例を示すフローチャートである。
図7において、導出鍵生成処理の動作は、ステップS102の処理とステップS103の処理との間に、ステップS110の処理が追加になっている点を除いて、図4のフローチャートと同様である。なお、この図において、図4と同一の処理には、同一のステップ(符号)を付し、その説明を省略する。
ステップS102の処理の後に、鍵生成部20は、生成した候補鍵がウイーク鍵(弱鍵)であるか否かを判定する(ステップS110)。例えば、鍵生成部20は、暗号アルゴリズムごとにウイーク鍵(弱鍵)の一覧がリストとして予め記憶されている記憶部(不図示)を有している。鍵生成部20は、このリストを参照することにより、生成した候補鍵がウイーク鍵(弱鍵)であるか否かを判定する。鍵生成部20は、生成した候補鍵がウイーク鍵(弱鍵)であると判定した場合に、処理をステップS101に戻し、新しいソルトにより、候補鍵を再生成する。また、鍵生成部20は、生成した候補鍵がウイーク鍵(弱鍵)でないと判定した場合に、処理をステップS103に進める。
鍵データ生成装置1は、上述したステップS103〜ステップS109の処理により、導出鍵を生成する。
このように、ウイーク鍵(弱鍵)を候補鍵から除外することができるので、この場合の鍵データ生成装置1は、図4に示される処理の場合に比べて、安全性を向上させた適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態によれば、鍵データ生成方法は、乱数生成手順と、鍵生成手順と、算出手順と、判定手順とを含んでいる。乱数生成手順は、擬似乱数生成部10が擬似乱数を生成し、鍵生成手順は、鍵生成部20が入力された固有情報、及び乱数生成手順によって生成された擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、導出鍵の候補鍵を生成する。算出手順は、過去に生成された導出鍵の統計情報を記憶する情報記憶部30が記憶する統計情報と、鍵生成手順によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを示す検定情報として、導出鍵の統計的な一様性を示す一様性検定情報を算出部40が少なくとも算出する。判定手順は、判定部50が算出手順によって算出された一様性検定情報に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性の条件を満たすか否かを、統計的な偏りが生じるか否かとして判定する判定処理を実行し、統計的な偏りが生じないと判定した場合に、候補鍵データを導出鍵として出力する。
これにより、本実施形態における鍵データ生成方法は、一様性(一様性の条件)を満たした統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。したがって、本実施形態における鍵データ生成方法は、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
次に、本発明の第2の実施形態について、図面を参照して説明する。
[第2の実施形態]
上述した第1の実施形態では、鍵データ生成装置1は、過去に出力した導出鍵より算出した統計情報に基づいて検定情報を算出し、算出した検定情報に基づいて導出鍵に統計的な偏りがあるか否かを判定している。これは、導出鍵の値そのものを記憶する必要をなくすことにより、安全性を向上させるためであるが、過去に出力した導出鍵を変更することはできない。例えば、過去に出力した導出鍵の集合に統計的な偏りがあり、十分な数の導出鍵が生成されていなかった等により、この統計的な偏りが見つかられなかった場合には、新たに生成した候補鍵を含めた集合が、一様性、又は無相関性を満たせないことが考えられる。そこで、本実施形態では、過去に出力した導出鍵に統計的な偏りの原因がある場合にも対応可能な鍵データ生成装置の一例について説明する。
図8は、本実施形態による鍵データ生成装置1aを示す概略ブロック図である。
図8において、鍵データ生成装置1aは、擬似乱数生成部10、鍵生成部20、情報記憶部30a、算出部40、判定部50a、候補鍵記憶部60a、及び原因推定部70を備えている。ここで、算出部40と、判定部50aとは、検定部2a(検定器)に対応する。なお、この図において、図1と同一の構成については同一の符号を付し、その説明を省略する。
本実施形態では、原因推定部70を備える点と、情報記憶部30a及び候補鍵記憶部60aのデータ構成と、判定部50aの機能とが、第1の実施形態における鍵データ生成装置1と異なる。また、鍵データ生成装置1aは、所定の数(例えば、N個)の固有情報に対して、導出鍵(例えば、N個の導出鍵)を生成し、生成した導出鍵をまとめて外部に出力する。
情報記憶部30aは、図9に示すように、過去に生成された導出鍵の統計情報であって、検定情報を算出するために必要な情報と、候補鍵を出力する閾値(例えば、N個)と、生成した候補鍵の数(例えば、n個)とを記憶している。ここで、過去に生成された導出鍵の統計情報(検定情報を算出するために必要な情報)は、第1の実施形態と同様である。なお、情報記憶部30aに記憶される情報は、導出鍵が生成されるごとに、更新される。
候補鍵記憶部60a(鍵情報記憶部)は、鍵生成部20が生成した候補鍵である第1の候補鍵データと当該入力値(入力情報)とを関連付けて記憶する。すなわち、候補鍵記憶部60aは、例えば、候補鍵を識別するID(候補鍵番号など)と、候補鍵(第1の候補鍵データ)と、対応する入力値(固有情報及びソルトの値)とを関連付けて記憶する。ここで、候補鍵記憶部60aは、鍵生成部20によって生成された候補鍵が上述した候補鍵を出力する閾値(例えば、N個)に達するまで、複数(例えば、n個)の候補鍵を記憶する。すなわち、候補鍵記憶部60aには、第1の候補鍵データとして鍵生成部20によって生成された候補鍵が全て記憶されている。なお、候補鍵記憶部60aが記憶する候補鍵の情報の構成については、詳細に後述する。
原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因として推定される部分集合を、候補鍵記憶部60aに記憶されている候補鍵の情報に基づいて推定する。例えば、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因(一様性を満たさない原因)として推定される部分集合を、各候補鍵の値の差分に基づいて推定する。また、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因(無相関性を満たさない原因)として推定される部分集合を、クラスタリングに基づいて推定する。
また、原因推定部70は、一様性原因推定部71と無相関性原因推定部72とを備えている。
一様性原因推定部71は、例えば、候補鍵記憶部60aに記憶されている各候補鍵の値の差分に基づいて、最も値の近い候補鍵の組み合わせを、一様性(一様性の条件)を満たさない原因となる部分集合として抽出する。一様性原因推定部71は、判定部50aの指示に基づいて。推定した原因の部分集合である上述の候補鍵の組み合わせを判定部50aに出力する。
ここで、候補鍵の値の差分とは、2つの候補鍵の値(例えば、10進数値や2進数値)の差のことである。
無相関性原因推定部72は、例えば、候補鍵記憶部60aに記憶されている各候補鍵と対応する入力値の組の集合に対して、公知のクラスタリング手法を用いてクラスタリングを実行し、最も大きい部分集合を、無相関性(無相関性の条件)を満たさない原因となる部分集合として抽出する。無相関性原因推定部72は、判定部50aの指示に基づいて、推定した原因の部分集合を判定部50aに出力する。
検定部2aは、鍵生成部20によって生成された候補鍵が、導出鍵として統計的な偏りがあるか否かを検定し、検定結果に応じて、候補鍵を導出鍵として出力する検定器である。検定部2aは、算出部40と、判定部50aとを備えている。
判定部50aは、鍵生成部20が生成した候補鍵(第1の候補鍵データ)と、対応する入力値(固有情報及びソルトの値)とを関連付けて、候補鍵記憶部60aに記憶させる。
また、判定部50aは、算出部40によって算出された算出結果に基づいて、生成された候補鍵を含めた導出鍵の集合が統計的な偏りが生じるか否かとして判定する判定処理する。すなわち、判定部50aは、候補鍵記憶部60aが記憶する候補鍵(第1の候補鍵データ)の集合を導出鍵の集合として第1の実施形態と同様の判定処理を実行する。
判定部50aは、統計的な偏りが生じていないと判定した場合に、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の数が所定の数(出力する閾値)に達したか否かを判定する。すなわち、判定部50aは、統計的な偏りが生じていないと判定した場合に、情報記憶部30aに記憶されている候補鍵を出力する閾値(例えば、N個)及び生成した候補鍵の数(例えば、n個)を読み出して、生成した候補鍵の数が出力する閾値に達したか(N個≦n個か)否かを判定する。判定部50aは、候補鍵の数が所定の数(出力する閾値)に達したと判定した場合に、候補鍵(N個の候補鍵)を導出鍵として出力する。
また、判定部50aは、候補鍵の数が所定の数(出力する閾値)に達していないと判定した場合に、鍵生成部20に次の固有情報により候補鍵を生成させて、候補鍵の数が所定の数(出力する閾値)に達するまで、同様の判定処理を繰り返し実行させる。
また、判定部50aは、統計的な偏りが生じると判定した場合に、原因推定部70によって推定された原因となる部分集合に含まれる候補鍵を、鍵生成部20に擬似乱数(ソルト値)を変更して再生成させた再生成候補鍵(第2の候補鍵データ)に置き換えて第1の候補鍵データとして、候補鍵記憶部60aに記憶させる。ここで、再生成候補鍵(第2の候補鍵データ)の固有情報は、置き換えられる候補鍵(第1の候補鍵データ)の固有情報と同一であり、生成する際のソルト値(擬似乱数の値)が異なる。
また、判定部50aは、統計的な偏りが生じると判定した場合に、原因推定部70によって推定された部分集合に含まれる候補鍵を、再生成候補鍵(第2の候補鍵データ)に置き換えて上述の判定処理を再実行する。そして、判定部50aは、再実行した判定処理において、第2の候補鍵データに置き換え後の統計的な偏りが置き換え前の統計的な偏りより小さい場合には、再生成候補鍵(第2の候補鍵データ)を第1の候補鍵データとして、候補鍵記憶部60aに記憶させる。一方、判定部50aは、再実行した判定処理において、第2の候補鍵データに置き換え後の統計的な偏りが置き換え前の統計的な偏りより大きい場合に、置き換え前の候補鍵を再生成候補鍵に代えて、第1の候補鍵データとして、候補鍵記憶部60aに再び記憶させる。
また、判定部50aは、一様性判定部51、無相関性判定部52、及び再生成判定部53aを備えている。
再生成判定部53aは、一様性判定部51及び無相関性判定部52の判定結果に基づいて統計的な偏りが生じていないと判定した場合に、情報記憶部30aに記憶されている情報を更新する。そして、再生成判定部53aは、情報記憶部30aに記憶されている候補鍵を出力する閾値(例えば、N個)及び生成した候補鍵の数(例えば、n個)を読み出して、生成した候補鍵の数が出力する閾値に達したか(N個≦n個か)否かを判定する。再生成判定部53aは、候補鍵の数が所定の数(出力する閾値)に達したと判定した場合に、候補鍵(N個の候補鍵)を導出鍵として出力する。また、再生成判定部53aは、候補鍵の数が所定の数(出力する閾値)に達していないと判定した場合に、次の固有情報による候補鍵を鍵生成部20に生成させて、候補鍵の数が所定の数(出力する閾値)に達するまで、同様の判定処理を繰り返し実行させる。
また、再生成判定部53aは、候補鍵を導出鍵として出力する場合に、候補鍵記憶部60aに記憶されている候補鍵を消去(クリア)する。
また、再生成判定部53aは、統計的な偏りが生じると判定した場合に、原因推定部70によって推定された部分集合に含まれる候補鍵を、再生成候補鍵(第2の候補鍵データ)に置き換えて上述の判定処理を再実行する。そして、再生成判定部53aは、再実行した判定処理において、第2の候補鍵データに置き換え後の統計的な偏りが置き換え前の統計的な偏りより大きい場合に、置き換え前の候補鍵を再生成候補鍵に代えて、第1の候補鍵データとして、候補鍵記憶部60aに再び記憶させる。この場合、再生成判定部53aは、例えば、カイ2乗値と相関係数の絶対値との積の値の比較により、置き換え前後の統計的な偏り判定してもよい。また、部分集合が一様性(一様性の条件)を満たさない原因による部分集合である場合には、再生成判定部53aは、カイ2乗値の比較により置き換え前後の統計的な偏り判定してもよいし、部分集合が無相関性(無相関性の条件)を満たさない原因による部分集合である場合には、再生成判定部53aは、相関係数の比較により置き換え前後の統計的な偏り判定してもよい。
次に、候補鍵記憶部60aが記憶する上述した候補鍵情報のデータ構成について説明する。
図10は、本実施形態における候補鍵情報のデータ構成を示す図である。
図10に示すように、候補鍵情報には、候補鍵を識別するID(候補鍵番号など)と、入力値である固有情報及びソルトの値と、対応する候補鍵(第1の候補鍵データ)とが含まれている。候補鍵記憶部60aは、候補鍵を識別するID(候補鍵番号など)と、入力値である固有情報及びソルトの値と、対応する候補鍵(第1の候補鍵データ)とは、関連付けて記憶する。
なお、候補鍵記憶部60aには、鍵生成部20によって生成された固有情報の異なる複数の候補鍵が記憶されている。図10に示される一例では、候補鍵記憶部60aには、n個の候補鍵(KEY〜KEY)と、対応する固有情報(P〜P)及びソルト値(SLT〜SLT)とが関連付けられて記憶されている。
次に、本実施形態における鍵データ生成装置1aの動作について説明する。
図11及び図12は、本実施形態における鍵データ生成装置1aの動作の一例を示すフローチャートである。
図11及び図12において、まず、鍵データ生成装置1aは、ソルト値(仮ソルト)を生成する(ステップS201)。すなわち、擬似乱数生成部10は、擬似乱数を仮ソルトとして生成し、生成した仮ソルトを鍵生成部20に出力する。
なお、本実施形態におけるステップS201〜ステップS206までの処理は、第1の実施形態におけるステップS101〜ステップS106までの処理に対応する。
次に、鍵生成部20は、仮ソルトと、鍵データ生成装置1aの外部から入力された固有情報(例えば、パスワード)とを連結し、鍵導出関数により候補鍵を生成する(ステップS202)。鍵生成部20は、生成した入力値と候補鍵とを算出部40に出力する。
次に、算出部40は、一様性検定情報を算出する(ステップS203)。すなわち、算出部40の一様性算出部41は、上述したように情報記憶部30aが記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報(一様性検定情報)として、カイ2乗値を算出する。算出部40は、算出したカイ2乗値を判定部50aに出力する。
次に、判定部50aは、一様性を満たすか否かを判定する(ステップS204)。すなわち、判定部50a(一様性判定部51)は、算出部40(一様性算出部41)によって算出されたカイ2乗値に基づいて、生成された候補鍵を含めた導出鍵の集合が一様性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。
判定部50aは、一様性を満たすと判定した場合(ステップS204:YES)に、処理をステップS205に進め、一様性を満たさないと判定した場合(ステップS204:NO)に、処理をステップS209に進める。
次に、ステップS205において、算出部40は、無相関性検定情報を算出する(ステップS205)。すなわち、算出部40の相関係数算出部42は、上述したように情報記憶部30aが記憶する統計情報と、鍵生成部20によって生成された候補鍵とに基づいて、導出鍵の統計的な偏りを検定する検定情報(無相関性検定情報)として、相関係数(r)を算出する。算出部40は、算出した相関係数(r)を判定部50aに出力する。
次に、判定部50aは、無相関性を満たすか否かを判定する(ステップS206)。すなわち、判定部50a(無相関性判定部52)は、算出部40(相関係数算出部42)によって算出された相関係数に基づいて、生成された候補鍵を含めた導出鍵の集合が無相関性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。
判定部50aは、無相関性を満たすと判定した場合(ステップS206:YES)に、処理をステップS207に進め、無相関性を満たさないと判定した場合(ステップS206:NO)に、処理をステップS209に進める。
次に、ステップS207において、判定部50a(再生成判定部53a)は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の数が所定の数(出力する閾値)に達したか否かを判定する。判定部50a(再生成判定部53a)は、候補鍵(第1の候補鍵データ)の数が所定の数(出力する閾値)に達したと判定した場合(ステップS207:YES)に、処理をステップS208に進める。また、判定部50a(再生成判定部53a)は、候補鍵(第1の候補鍵データ)の数が所定の数(出力する閾値)に達していないと判定した場合(ステップS207:NO)に、処理をステップS201に戻し、次の固有情報による候補鍵を鍵生成部20に生成させて、候補鍵の数が所定の数(出力する閾値)に達するまで、同様の判定処理を繰り返し実行させる。
次に、ステップS208において、判定部50a(再生成判定部53a)は、候補鍵(N個の候補鍵)を導出鍵として出力する。なお、判定部50a(再生成判定部53a)は、候補鍵を導出鍵として出力する場合に、候補鍵記憶部60aに記憶されている候補鍵を消去(クリア)して、導出鍵生成処理を終了させる。
一方、ステップS209において、原因推定部70は、統計的な偏りが生じる原因となる候補鍵を推定する。具体的に、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因として推定される部分集合を、候補鍵記憶部60aに記憶されている候補鍵の情報に基づいて推定する。例えば、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因(一様性を満たさない原因)として推定される部分集合を、各候補鍵の値の差分に基づいて推定する。ここで、各候補鍵の値の差分は、ハミング距離等の公知の定義に基づいて算出されてもよい。
図13は、本実施形態における一様性を満たさない原因推定の一例を示す図である。
図13において、候補鍵(鍵A〜鍵D)うちの2つ候補鍵の組み合わせにおいて、最も近い組み合わせ(例えば、2つの候補鍵の組PA1)を、一様性を満たさない原因となる部分集合として抽出する。
また、例えば、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因(無相関性を満たさない原因)として推定される部分集合を、クラスタリングに基づいて推定する。
図14は、本実施形態における無相関性を満たさない原因推定の一例を示す図である。
図14において、候補鍵(鍵A〜鍵E)にクラスタリングを実行し、最も大きい部分集合(部分集合CL1)を、無相関性を満たさない原因となる部分集合として抽出する。ここで、最も大きい部分集合とは、例えば、クラスタリングにより生成された部分集合のうち、最も候補鍵の数が多い部分集合のことである。なお、同程度の規模の部分集合が複数ある場合には、原因推定部70は、部分集合ごとの相関係数を算出部40(相関係数算出部42)に算出させて、最も相関係数の大きい部分集合を、無相関性を満たさない原因となる部分集合として抽出してもよい。
次に、図12に示すように、鍵データ生成装置1aは、候補鍵を再生成する(ステップS210)。すなわち、判定部50a(再生成判定部53a)は、同一の固有情報においてソルト値を変更して、ステップS201及びステップS202の処理を、擬似乱数生成部10及び鍵生成部20に実行させる。
なお、原因となる部分集合が一様性を満たさない原因による部分集合である場合に、判定部50a(再生成判定部53a)は、例えば、原因推定部70によって抽出された組み合わせにおける2つの候補鍵のうちのいずれか一方について、候補鍵を再生成させる。
また、原因となる部分集合が無相関性を満たさない原因による部分集合である場合に、判定部50a(再生成判定部53a)は、原因推定部70によって抽出された部分集合のうちの全てについて、候補鍵を再生成させる。
次に、算出部40(一様性算出部41)は、原因となる候補鍵と再生成した候補鍵(再生成候補鍵)とを置き換えて、一様性検定情報(カイ2乗値)を算出する(ステップS211)。
次に、判定部50aは、一様性を満たすか否かを判定する(ステップS212)。すなわち、判定部50a(一様性判定部51)は、算出部40(一様性算出部41)によって算出されたカイ2乗値に基づいて、置き換えた候補鍵を含めた導出鍵の集合が一様性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。
判定部50aは、一様性を満たすと判定した場合(ステップS212:YES)に、処理をステップS213に進め、一様性を満たさないと判定した場合(ステップS212:NO)に、処理をステップS215に進める。
次に、ステップS213において、算出部40(相関係数算出部42)は、原因となる候補鍵と再生成した候補鍵(再生成候補鍵)とを置き換えて、無相関性検定情報(相関係数)を算出する。
次に、判定部50aは、無相関性を満たすか否かを判定する(ステップS214)。すなわち、判定部50a(無相関性判定部52)は、算出部40(相関係数算出部42)によって算出された相関係数に基づいて、置き換えた候補鍵を含めた導出鍵の集合が無相関性を満たすか否かを、上述した統計的な偏りが生じるか否かとして判定する。
判定部50aは、無相関性を満たすと判定した場合(ステップS214:YES)に、処理をステップS207(図11)に進め、無相関性を満たさないと判定した場合(ステップS214:NO)に、処理をステップS215に進める。
また、ステップS215において、判定部50aは、統計的な偏りを判定する検定結果が良くなっているか(改善されているか)否かを判定する。すなわち、判定部50a(再生成判定部53a)は、候補鍵の置き換え前後の検定値(カイ2乗値、又は相関係数の値)を比較して、候補鍵の置き換えにより統計的な偏りが改善されたか否かを判定する。判定部50a(再生成判定部53a)は、候補鍵の置き換えにより統計的な偏りが改善された場合(ステップS215:YES)に、処理をステップS217に進める。また、判定部50a(再生成判定部53a)は、候補鍵の置き換えにより統計的な偏りが改善されていない場合(ステップS215:NO)に、処理をステップS216に進める。
次に、ステップS216において、判定部50a(再生成判定部53a)は、再生成した候補鍵(再生成候補鍵)の置き換えを元の候補鍵に戻し、処理をステップS216に進める。
次に、ステップS217において、原因推定部70は、次の原因となる候補鍵を推定する。すなわち、判定部50a(再生成判定部53a)は、原因推定部70に次の原因となる候補鍵を推定させる。このステップS217の処理は、ステップS209の処理と同様である。判定部50a(再生成判定部53a)は、原因推定部70に次の原因となる候補鍵を推定させた後に、処理をステップS210に進める。これにより、判定部50aは、統計的に偏りのない候補鍵の集合が生成されるまで、原因となる候補鍵の推定及び置き換えと判定処理とを繰り返し実行する。
以上説明したように、本実施形態における鍵データ生成装置1aは、判定部50aと、候補鍵記憶部60aと、原因推定部70とを備えている。候補鍵記憶部60aは、鍵生成部20が生成した候補鍵を第1の候補鍵データとして、対応する入力情報と関連付けて記憶する。原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵(第1の候補鍵データ)の集合のうちの統計的な偏りが生じる原因として推定される部分集合を、各候補鍵の差分に基づいて推定する。また、判定部50aは、候補鍵の集合を導出鍵の集合として判定処理を実行する。判定部50aは、候補鍵の集合に統計的な偏りが生じると判定した場合に、原因推定部70によって推定された部分集合に含まれる候補鍵を、鍵生成部20に擬似乱数を変更して再生成させた再生成候補鍵(第2の候補鍵データ)に置き換えて第1の候補鍵データとして、候補鍵記憶部60aに記憶させる。判定部50aは、候補鍵記憶部60aに記憶されている候補鍵の数が所定の数に達した場合に、所定の数の候補鍵を導出鍵として出力する。
これにより、本実施形態における鍵データ生成装置1aは、一様性(一様性の条件)を満たした統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。したがって、本実施形態における鍵データ生成装置1aは、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態における鍵データ生成装置1aは、過去に出力した導出鍵に統計的な偏りの原因がある場合であっても、一様性(一様性の条件)を満たした統計的な偏りのない導出鍵を生成することができる。すなわち、本実施形態における鍵データ生成装置1aは、例えば、過去に出力した導出鍵の集合に統計的な偏りがあり、十分な数の導出鍵が生成されていなかった等により、この統計的な偏りが見つかられなかった場合であっても、安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができる。
また、本実施形態では、原因推定部70は、候補鍵記憶部60aに記憶されている候補鍵の集合のうちの統計的な偏りが生じる原因として推定される部分集合を、クラスタリングに基づいて推定する。
これにより、本実施形態における鍵データ生成装置1aは、無相関性を満たした統計的な偏りのない導出鍵を生成することができるので、攻撃者に導出鍵の推定をされる可能性を低減することができる。また、本実施形態における鍵データ生成装置1aは、過去に出力した導出鍵に統計的な偏りの原因がある場合であっても、無相関性を満たした統計的な偏りのない導出鍵を生成することができる。
また、本実施形態では、判定部50aは、統計的な偏りが生じると判定した場合に、原因推定部70によって推定された部分集合に含まれる候補鍵を、再生成候補鍵に置き換えて上述した判定処理を再実行する。判定部50aは、再実行した判定処理において、再生成候補鍵に置き換え後の統計的な偏りが置き換え前の統計的な偏りより大きい場合に、置き換え前の候補鍵を再生成候補鍵に代えて第1の候補鍵データとして、候補鍵記憶部60aに再び記憶させる。
これにより、本実施形態における鍵データ生成装置1aは、統計的な偏りが低減するように、適切に導出鍵(鍵データ)を生成することができる。
なお、本実施形態では、統計的な偏りが生じる原因となる部分集合をクラスタリングに基づいて推定した場合に、原因となる部分集合に含まれる全ての候補鍵を再生成させて判定処理を実行する形態を説明したが、原因となる部分集合のうちの1つの候補鍵を再生成させて判定処理を実行する形態でもよい。この場合、クラスタリングによる部分集合に含まれる候補鍵の数が変化するので、原因推定部70は、再生成候補鍵を含む部分集合とは異なる部分集合を、原因となる部分集合として、次回に推定してもよい。
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、候補鍵を再生成する場合にソルト値を変更する形態を説明したが、これに限定されるものではない。例えば、鍵導出関数を繰り返し実行して候補鍵を生成する場合には、この繰り返し回数を変更して候補鍵を再生成する形態でもよい。
また、上記の各実施形態において、一様性を満たすか否かの検定方法として、カイ2乗検定を用いる形態を説明したが、これに限定されるものではなく、他の検定方法を用いる形態でもよい。この場合、検定方法は、パラメトリックな方法でもよいし、ノンパラメトリックな方法でもよい。
また、上記の各実施形態において、判定部50(50a)は、一様性を満たすか否かを判定した後に無相関性を満たすか否かを判定する形態を説明したが、無相関性を満たすか否かを判定した後に一様性を満たすか否かを判定する形態でもよい。
また、上記の第1の実施形態において、判定部50は、統計的な偏りが最も小さい候補鍵を、カイ2乗値と相関係数との積の値に基づいて判定する形態を説明したが、これに限定されるものではない。例えば、判定部50は、一様性と無相関性とに優先順位(又は重み付け)をつけて、統計的な偏りが最も小さい候補鍵を判定する形態であってもよいし、一様性と無相関性とのいずれか一方により、統計的な偏りが最も小さい候補鍵を判定する形態であってもよい。
また、上記の第1の実施形態において、候補鍵記憶部60は、統計的な偏りが最も小さい候補鍵の情報を記憶する形態を説明したが、再生成した全ての候補鍵の情報を記憶する形態でもよい。この場合、判定部50は、繰り返し回数が所定の回数に達した後で、候補鍵記憶部60に記憶されている全ての候補鍵のうちから統計的な偏りが最も小さい候補鍵を判定する。
また、上記の各実施形態は、それぞれ単独に実施される形態でもよいし、上記の各実施形態を組み合わせて実施される形態でもよい。
例えば、上記の第1の実施形態において、候補鍵がウイーク鍵(弱鍵)である場合に、鍵生成部20が候補鍵から除外する形態を説明したが、判定部50が候補鍵から除外する形態でもよい。
また、上記の第2の実施形態において、第1の実施形態と同様に、候補鍵がウイーク鍵(弱鍵)である場合に、候補鍵から除外する処理を鍵生成部20が行う形態でもよい。
また、上記の第2の実施形態において、原因となる候補鍵の推定及び置き換えと判定処理とを、統計的に偏りのない候補鍵の集合が生成されるまで繰り返し実行する形態を説明したが、第1の実施形態と同様に、繰り返し回数に制限を設ける形態でもよい。
また、鍵データ生成装置1(1a)は、専用のハードウェアにより実現されるものであってもよく、また、メモリ及びマイクロプロセッサにより実現させるものであってもよい。この鍵データ生成装置1(1a)はメモリ及びCPU(中央情報処理装置)により構成され、鍵データ生成装置1(1a)の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
なお、鍵データ生成装置1(1a)は、ICカードの発行装置、パーソナルコンピュータ、携帯電話などの情報処理装置に適用することができる。例えば、鍵データ生成装置1(1a)をICカードの発行装置に適用した場合に、上述したように安全性が低下することを低減しつつ適切な導出鍵(鍵データ)を生成することができるので、ICカードの発行装置は、安全性が低下することを低減しつつ適切にICカードを発行することができる。これにより、ICカードの発行装置は、発行されたICカード、及び発行されたICカードを用いたICカードシステムの安全性を確保することができる。
なお、鍵データ生成装置1(1a)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより鍵データ生成装置1(1a)の各機能による処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
1,1a 鍵データ生成装置
2,2a 検定部
10 擬似乱数生成部
20 鍵生成部
30,30a 情報記憶部
40 算出部
41 一様性算出部
42 相関係数算出部
50,50a 判定部
51 一様性判定部
52 無相関性判定部
53,53a 再生成判定部
60,60a 候補鍵記憶部
70 原因推定部
71 一様性原因推定部
72 無相関性原因推定部

Claims (9)

  1. 擬似乱数を生成する乱数生成部と、
    入力された固有情報、及び前記乱数生成部が生成した前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成部と、
    過去に生成された前記鍵データの統計情報を記憶する情報記憶部と、
    前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出部と、
    前記算出部によって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定部とを備えることを特徴とする鍵データ生成装置。
  2. 前記検定情報には、前記入力情報と前記鍵データとの相関係数が含まれ、
    前記算出部は、
    さらに、前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データ及び当該入力情報とに基づいて、前記相関係数を算出し、
    前記判定部は、
    前記判定処理において、前記算出部によって算出された前記相関係数に基づいて、生成された前記候補鍵データを含む前記鍵データの集合が、無相関性の条件を満たすか否かを判定し、前記一様性の条件を満たすと判定した場合、且つ、前記無相関性の条件を満たすと判定した場合に、前記統計的な偏りが生じないと判定する
    ことを特徴とする請求項1に記載の鍵データ生成装置。
  3. 擬似乱数を生成する乱数生成部と、
    入力された固有情報、及び前記乱数生成部が生成した前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成部と、
    過去に生成された前記鍵データの統計情報を記憶する情報記憶部と、
    前記情報記憶部が記憶する前記統計情報と、前記鍵生成部によって生成された前記候補鍵データ及び当該入力情報とに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記入力情報と前記鍵データとの相関係数を少なくとも算出する算出部と、
    前記算出部によって算出された前記相関係数に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が無相関性の条件を満たすか否を判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定部と
    を備えることを特徴とする鍵データ生成装置。
  4. 前記判定部は、
    さらに、前記統計的な偏りが生じると判定した場合に、前記鍵生成部に前記擬似乱数を変更して再生成させた候補鍵データに基づいて、繰り返し前記判定処理を実行し、当該繰り返し回数が所定の回数に達した場合に、繰り返し生成された前記候補鍵データのうちの前記統計的な偏りが最も小さい候補鍵データを前記鍵データとして出力する
    ことを特徴とする請求項1から請求項3のいずれか一項に記載の鍵データ生成装置。
  5. 前記鍵生成部が生成した前記候補鍵データを第1の候補鍵データとして、当該入力情報と関連付けて記憶する鍵情報記憶部と、
    前記鍵情報記憶部に記憶されている前記第1の候補鍵データの集合のうちの前記統計的な偏りが生じる原因として推定される部分集合を、各候補鍵データの差分に基づいて推定する原因推定部と
    を備え、
    前記判定部は、
    前記第1の候補鍵データの集合を前記鍵データの集合として前記判定処理を実行し、
    前記統計的な偏りが生じると判定した場合に、前記原因推定部によって推定された前記部分集合に含まれる候補鍵データを、前記鍵生成部に前記擬似乱数を変更して再生成させた第2の候補鍵データに置き換えて前記第1の候補鍵データとして、前記鍵情報記憶部に記憶させ、
    前記鍵情報記憶部に記憶されている前記第1の候補鍵データの数が所定の数に達した場合に、前記所定の数の前記第1の候補鍵データを前記鍵データとして出力する
    ことを特徴とする請求項1から請求項4のいずれか一項に記載の鍵データ生成装置。
  6. 前記原因推定部は、
    前記鍵情報記憶部に記憶されている前記第1の候補鍵データの集合のうちの前記統計的な偏りが生じる原因として推定される部分集合を、クラスタリングに基づいて推定することを特徴とする請求項5に記載の鍵データ生成装置。
  7. 前記判定部は、
    前記統計的な偏りが生じると判定した場合に、前記原因推定部によって推定された前記部分集合に含まれる候補鍵データを、前記鍵生成部に前記擬似乱数を変更して再生成させた第2の候補鍵データに置き換えて前記判定処理を再実行し、
    再実行した前記判定処理において、前記統計的な偏りが生じると判定した場合、且つ、前記第2の候補鍵データに置き換え後の前記統計的な偏りが置き換え前の前記統計的な偏りより大きい場合に、置き換え前の前記候補鍵データを第2の候補鍵データに代えて、前記第1の候補鍵データとして、前記鍵情報記憶部に再び記憶させる
    ことを特徴とする請求項5又は請求項6に記載の鍵データ生成装置。
  8. コンピュータを用いた鍵データ生成方法であって、
    前記コンピュータが備える乱数生成部が、擬似乱数を生成する乱数生成手順と、
    前記コンピュータが備える鍵生成部が、入力された固有情報、及び前記乱数生成手順によって生成された前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成手順と、
    前記コンピュータが備える算出部が、過去に生成された前記鍵データの統計情報を記憶する情報記憶部が記憶する前記統計情報と、前記鍵生成手順によって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出手順と、
    前記コンピュータが備える判定部が、前記算出手順によって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定手順と
    を含むことを特徴とする鍵データ生成方法。
  9. コンピュータに、
    乱数生成部が、擬似乱数を生成する乱数生成ステップと、
    入力された固有情報、及び前記乱数生成ステップによって生成された前記擬似乱数を含む入力情報と、所定の鍵導出関数とに基づいて、鍵データの候補鍵データを生成する鍵生成ステップと、
    算出部が、過去に生成された前記鍵データの統計情報を記憶する情報記憶部が記憶する前記統計情報と、前記鍵生成ステップによって生成された前記候補鍵データとに基づいて、前記鍵データの統計的な偏りを示す検定情報として、前記鍵データの統計的な一様性を示す一様性検定情報を少なくとも算出する算出ステップと、
    判定部が、前記算出ステップによって算出された前記一様性検定情報に基づいて、生成された前記候補鍵データを含めた前記鍵データの集合が前記一様性の条件を満たすか否かを判定することにより、前記統計的な偏りが生じるか否かを判定する判定処理を実行し、前記統計的な偏りが生じないと判定した場合に、前記候補鍵データを前記鍵データとして出力する判定ステップと
    を実行させるためのプログラム。
JP2012118502A 2012-05-24 2012-05-24 鍵データ生成装置、鍵データ生成方法、及びプログラム Active JP5759932B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012118502A JP5759932B2 (ja) 2012-05-24 2012-05-24 鍵データ生成装置、鍵データ生成方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012118502A JP5759932B2 (ja) 2012-05-24 2012-05-24 鍵データ生成装置、鍵データ生成方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013247439A JP2013247439A (ja) 2013-12-09
JP5759932B2 true JP5759932B2 (ja) 2015-08-05

Family

ID=49846921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012118502A Active JP5759932B2 (ja) 2012-05-24 2012-05-24 鍵データ生成装置、鍵データ生成方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5759932B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2952885B2 (ja) * 1989-04-19 1999-09-27 日本電気株式会社 鍵管理方式
US6195433B1 (en) * 1998-05-08 2001-02-27 Certicom Corp. Private key validity and validation
WO2001030020A1 (fr) * 1999-10-20 2001-04-26 Fujitsu Limited Systeme de cryptage de cle a longueur variable
JP3621657B2 (ja) * 2001-05-02 2005-02-16 株式会社大和証券グループ本社 ファイル送信サーバ、ファイル送受信システム、方法、およびプログラム
JP2003131867A (ja) * 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
EP1758020A4 (en) * 2004-06-18 2008-11-26 Fujitsu Ltd RANDOM PRODUCTION DEVICE, PRODUCTION METHOD, GENERATOR EVALUATION METHOD AND USE METHOD FOR RANDOM NUMBERS

Also Published As

Publication number Publication date
JP2013247439A (ja) 2013-12-09

Similar Documents

Publication Publication Date Title
Levine et al. Deep partition aggregation: Provable defense against general poisoning attacks
Golla et al. On the accuracy of password strength meters
US9026571B2 (en) Random number generation failure detection and entropy estimation
CN107943874A (zh) 知识图谱处理方法、装置、计算机设备及存储介质
JP6507657B2 (ja) 類似性判定装置、類似性判定方法および類似性判定プログラム
Karawia Image encryption based on Fisher‐Yates shuffling and three dimensional chaotic economic map
Flora et al. Using attack injection to evaluate intrusion detection effectiveness in container-based systems
CN113541949A (zh) 用于加密的素数数字生成
JP5759932B2 (ja) 鍵データ生成装置、鍵データ生成方法、及びプログラム
CN111062035A (zh) 一种勒索软件检测方法、装置、电子设备及存储介质
US20230274004A1 (en) Subject Level Privacy Attack Analysis for Federated Learning
JP6773115B2 (ja) 類似データ検索装置、類似データ検索方法および記録媒体
Loutfi et al. Smartphone sensors as random bit generators
Lv et al. High-efficiency min-entropy estimation based on neural network for random number generators
KR101371338B1 (ko) 모바일 단말 플랫폼에서의 개인화된 최적화 장치
CN112035677B (zh) 基于知识图谱的诈骗人员发现方法及装置
Askoxylakis et al. Computer Security--ESORICS 2016
WO2013137901A1 (en) Random data generation
CN113535067A (zh) 数据存储方法、装置、设备及存储介质
CN107248929B (zh) 一种多维关联数据的强关联数据生成方法
KR102200132B1 (ko) 오일러체를 이용한 소수 검사 방법 및 장치
EP4024296A1 (en) Information processing program, information processing method, and information processing device
Cao et al. Generalized attack on ECDSA: known bits in arbitrary positions
CN112347489B (zh) 一种数据处理方法、装置及存储介质
CN113094709B (zh) 风险应用的检测方法、装置和服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150608

R150 Certificate of patent or registration of utility model

Ref document number: 5759932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350