(57)【要約】【課題】各パスワードに含まれる文字の部分列について、部分列の各パターンが出現する頻度を、所定の水準以下にするように、各パスワードを発行すること。【解決手段】  ランダムに文字を発生して、パスワードを生成する機能と、  生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める機能と、  部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する機能とを有することを特徴とするパスワード発行装置。【選択図】なし【特許請求の範囲】
【請求項１】
ランダムに文字を発生して、パスワードを生成する機能と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める機能と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する機能とを有することを特徴とするパスワード発行装置。
【請求項２】
プログラムにより、コンピュータが実行する方法であって、
ランダムに文字を発生して、パスワードを生成する工程と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める工程と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する工程とを含むことを特徴とするパスワード発行方法。
【請求項３】
ランダムに文字を発生して、パスワードを生成する工程と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める工程と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する工程とをコンピュータに実行させることを特徴とするパスワード発行プログラム。
【請求項４】
請求項３に記載のパスワード発行プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードを発行する技術に関する。
【背景技術】
【０００２】
一般に、パスワードは、所定の数の文字を並べた文字列であって、個人認証に用いられるものである。
【０００３】
例えば、コンピュータシステムの正規のユーザにパスワードが発行され、このパスワードで正規のユーザであるか否かの個人認証が行われている。
【０００４】
また例えば、ＩＣカードの正規のユーザにパスワードが発行され、このパスワードで正規のユーザであるか否かの個人認証が行われている。ＩＣカードの正規のユーザに発行されるパスワードは、ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）とも呼ばれる。
【０００５】
従来から、ユーザに発行されるパスワードを、互いに異なるようにする工夫がなされてきた。
【０００６】
例えば、生成されたパスワードと、データベースに保管されている既発行のパスワードとを照合して、生成されたパスワードが既発行の何れかのパスワードと重複する場合、生成されたパスワードを発行せず、生成されたパスワードが既発行の何れかのパスワードとも異なる場合に、生成されたパスワードを発行する方法が知られている。
【０００７】
また例えば、一方向ハッシュ関数をかけることで、生成されるパスワードの重複を除去する方法が知られている。
【０００８】
しかしながら、これらの方法では、各パスワードに含まれる文字の部分列について、部分列の各パターンが出現する頻度を、所定の水準以下にするように、各パスワードを発行することはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は斯かる背景技術に鑑みて、各パスワードに含まれる文字の部分列について、部分列の各パターンが出現する頻度を、所定の水準以下にするように、各パスワードを発行することを課題とする。
【課題を解決するための手段】
【００１０】
本発明において上記課題を達成するために、まず請求項１の発明では、ランダムに文字を発生して、パスワードを生成する機能と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める機能と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する機能とを有することを特徴とするパスワード発行装置としたものである。
【００１１】
また請求項２の発明では、プログラムにより、コンピュータが実行する方法であって、
ランダムに文字を発生して、パスワードを生成する工程と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める工程と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する工程とを含むことを特徴とするパスワード発行方法としたものである。
【００１２】
また請求項３の発明では、ランダムに文字を発生して、パスワードを生成する工程と、
生成された全てのパスワードについて、各パスワードに含まれる部分列の各パターンの個数を、数えることにより、部分列の各パターンの度数を求める工程と、
部分列の各パターンの度数に基づいて、カイ二乗値を計算して、カイ二乗検定を行い、カイ二乗値が棄却域に無い場合のみ、生成された各パスワードを発行する工程とをコンピュータに実行させることを特徴とするパスワード発行プログラムとしたものである。
【００１３】
また請求項４の発明では、請求項３に記載のパスワード発行プログラムを記録した記録媒体としたものである。
【発明の効果】
【００１４】
本発明は、各パスワードに含まれる文字の部分列について、部分列の各パターンが出現する頻度を、所定の水準以下にするように、各パスワードを発行することができるという効果がある。
【発明を実施するための最良の形態】
【００１５】
本実施形態のパスワード発行装置は、プログラムを実行することにより、パスワードを発行するコンピュータである。
【００１６】
コンピュータには、予め、パスワードに用いられるＲ種類の文字と、Ｒの倍数Ｍと、パスワードを構成する文字数Ｐと、生成するパスワードの数Ｎとが設定されている。
【００１７】
またコンピュータには、予め、統計検定を行うための有意水準も設定されている。
【００１８】
パスワードを発行するためにコンピュータが実行する処理例を、図１のフローチャートに従って、説明する。
【００１９】
Ｓ（ＳＴＥＰ）１；
コンピュータは、Ｒ個の閉区間［（ｉ−１）ｎ＋１，ｉｎ］（１≦ｉ≦Ｒ，Ｍ＝ｎＲ，ｉとｎは正の整数）を作り、それぞれの閉区間に、予め設定されている文字を、閉区間ごとに異なるように、それぞれ１つ割り当てる。
【００２０】
Ｓ（ＳＴＥＰ）２；
コンピュータは、１からＭまでの間で乱数を発生させる。
【００２１】
Ｓ（ＳＴＥＰ）３；
コンピュータは、乱数が含まれる閉区間に割り当てた文字を、出力することにより、ランダムに文字を発生させる。
【００２２】
Ｓ（ＳＴＥＰ）４；
コンピュータは、発生させた文字がＰ個に達したか否かを確かめ、
Ｐ個に達しないのであれば、ＳＴＥＰ２に戻り、
Ｐ個に達したのであれば、ＳＴＥＰ５に進む。
【００２３】
Ｓ（ＳＴＥＰ）５；
コンピュータは、Ｐ個の文字を発生順に並べた文字列を、一つのパスワードとすることにより、パスワードを生成する。
【００２４】
Ｓ（ＳＴＥＰ）６；
コンピュータは、生成したパスワードがＮ個に達したか否かを確かめ、
Ｎ個に達しないのであれば、ＳＴＥＰ２に戻り、
Ｎ個に達したのであれば、ＳＴＥＰ７に進む。
【００２５】
Ｓ（ＳＴＥＰ）７；
コンピュータは、生成した各パスワードを、各パスワードの先頭から順に、隣り合う２文字ずつの部分列、隣り合う３文字ずつの部分列、隣り合う４文字ずつの部分列、隣り合う５文字ずつの部分列、それぞれに分割する。
【００２６】
但し、隣り合う２文字ずつの部分列に分割して、最後に１文字余る場合には、この余りを捨てる。同様に、隣り合う３文字ずつの部分列に分割して、最後に１又は２文字余る場合には、この余りを捨てる。同様に、隣り合う４文字ずつの部分列に分割して、最後に１〜３文字余る場合には、この余りを捨てる。同様に、隣り合う５文字ずつの部分列に分割して、最後に１〜４文字余る場合には、この余りを捨てる。
【００２７】
例えば、パスワード「ａａｚ９ｐ７６ｑｄｄｄｏａａ」は、隣り合う２文字ずつの部分列「ａａ」、「ｚ９」、「ｐ７」、「６ｑ」、「ｄｄ」、「ｄｏ」、「ａａ」に分割される。また、隣り合う３文字ずつの部分列「ａａｚ」、「９ｐ７」、「６ｐｄ」、「ｄｄｏ」に分割され、最後の２文字「ａａ」は捨てられる。隣り合う４文字ずつの部分列「ａａｚ９」、「ｐ７６ｑ」、「ｄｄｄｏ」に分割され、最後の２文字「ａａ」は捨てられる。また、隣り合う５文字ずつの部分列「ａａｚ９ｐ」、「７６ｑｄｄ」に分割され、最後の４文字「ｄｏａａ」は捨てられる。
【００２８】
Ｓ（ＳＴＥＰ）８；
コンピュータは、生成された各パスワードごとに、部分列の各パターンの個数を数える。
【００２９】
例えば、パスワード「ａａｚ９ｐ７６ｑｄｄｄｏａａ」では、「ａａ」が２個、「ｚ９」が１個、「ｐ７」が１個、「６ｑ」が１個、「ｄｄ」が１個、「ｄｏ」が１個、「ａａｚ」が１個、「９ｐ７」が１個、「６ｐｄ」が１個、「ｄｄｏ」が１個、「ａａｚ９」が１個、「ｐ７６ｑ」が１個、「ｄｄｄｏ」が１個、「ａａｚ９ｐ」が１個、「７６ｑｄｄ」が１個で、その他の部分列のパターンは０個である。
【００３０】
Ｓ（ＳＴＥＰ）９；
コンピュータは、生成した各パスワードごとに数えた部分列の各パターンの個数を、生起した全てのパスワードについて累計することにより、部分列の各パターンの度数を求める。
【００３１】
例えば、「ａａ」の度数が２１、「ｚ９」の度数が２０、…という具合である。
【００３２】
Ｓ（ＳＴＥＰ）１０；
コンピュータは、部分列の各パターンの度数に基づいて、カイ二乗値を計算して、設定されている有意水準で、カイ二乗検定を行い、
カイ二乗値が棄却域にある場合は、ＳＴＥＰ１１に進み、
カイ二乗値が棄却域にない場合は、ＳＴＥＰ１２に進む。
【００３３】
カイ二乗検定が行えることの根拠は、部分列の各パターンの確率分布は、二項分布なので、生成するパスワードの数Ｎが充分に大きければ、ポアソン分布に近似され、さらには正規分布に近似されることによる。
【００３４】
具体的には、部分列の各パターンごとに、［（度数の実測値−度数の期待値）2／度数の期待値］を計算して、部分列の全てのパターンについて足したものを、カイ二乗値として、自由度＝［Ｒ−１］のカイ二乗検定が、設定されている有意水準で行われる。ここで、度数の実測値は、ＳＴＥＰ９で得られたものであり、度数の期待値は確率分布から得られたものである。
【００３５】
Ｓ（ＳＴＥＰ）１１；
コンピュータは、生成した全てのパスワードを、削除する。
【００３６】
Ｓ（ＳＴＥＰ）１２；
コンピュータは、生成した各パスワードを発行する。
【００３７】
上記の処理例では、生成された各パスワードを、各パスワードの先頭から順に、隣り合う２〜５文字ずつの部分列に分割して、最後に文字が余る場合、この余りを捨てているが、余る文字数だけ、各パスワードの何れかの箇所から文字を取り除いた後に、各パスワードの先頭から順に、隣り合う２〜５文字ずつの部分列に分割しても良い。
【００３８】
また上記の処理例では、隣り合う２〜５文字ずつの部分列について、部分列の各パターンの度数を求めて、統計的検定を行っているが、隣り合う６文字以上の整数の文字ずつの部分列についても、部分列の各パターンの度数を求めて、統計的検定を行っても良い。
【図面の簡単な説明】
【００３９】
【図１】パスワードを発行するためにコンピュータが実行する処理例を示すフローチャート。
【図１】
2005310028.tif 000002