(57)【特許請求の範囲】
【請求項１】
複数のキーが配置されたキー配置部からキーが選択されることにより、パスワードの入力を受け付ける受付部と、
前記パスワードに含まれる複数の前記選択されたキー（選択キー）のそれぞれについて、隣接する他の選択キー（隣接キー）があるかどうかを検出し、隣接キーに関して予め定められた条件を満たす場合に、当該パスワードが推測容易であると判定する判定部とを備え、
前記判定部は、複数の隣接キーを有する選択キーの数が、予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定すること
を特徴とするシステム。
【請求項２】
前記判定部は、前記予め定められた条件として、複数の隣接キーを有する選択キーの数を、前記パスワードを入力する際にキーの選択が行われた全回数で割った値が、予め定められた閾値以上であるという条件を満たす場合に、当該パスワードが推測容易であると判定すること
を特徴とする請求項１に記載のシステム。
【請求項３】
前記判定部は、前記選択キーの中に、複数回選択された選択キーが含まれ、複数回選択された当該選択キーが予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定すること
を特徴とする請求項１又は２に記載のシステム。
【請求項４】
前記選択キーが予め定められた補正条件を満たす場合に、前記判定部の判定において、当該選択キーが有する隣接キーの数を加算する補正を行う補正部
をさらに備えたことを特徴とする請求項１乃至３のいずれか１項に記載のシステム。
【請求項５】
前記補正部は、前記予め定められた補正条件として、前記選択キーの中に、３つ以上連続して隣接する位置関係にある複数の選択キーが含まれるという条件を満たす場合に、３つ以上連続して隣接する位置関係にある当該選択キーが有する隣接キーの数を加算する補正を行うこと
を特徴とする請求項４に記載のシステム。
【請求項６】
前記補正部は、前記予め定められた補正条件として、前記選択キーの中に、複数回選択された選択キーが含まれるという条件を満たす場合に、複数回選択された当該選択キーが有する隣接キーの数を加算する補正を行うこと
を特徴とする請求項４に記載のシステム。
【請求項７】
キーボードに配置されたキーの選択によりパスワードの入力を受け付ける受付部と、
パスワードの入力に用いられる前記キーボードのキー配列を示すキー配列情報を記憶する記憶部と、
前記記憶部にて記憶された前記キー配列情報を参照して、前記受付部にて受け付けた複数の前記選択されたキー（選択キー）のそれぞれについて、当該選択キーに隣接する他のキー（隣接キー）を検出するキー検出部と、
前記キー検出部にて検出された前記隣接キーの数が２つ以上ある選択キーの数に基づき所定の値を算出する算出部と、
前記算出部により算出された値と予め定められた閾値とを比較し、当該算出された値が当該予め定められた閾値以上である場合に、前記パスワードが推測容易であると判定する判定部と、
前記判定部による判定結果を表示する表示部と
を備えるシステム。
【請求項８】
複数のキーが配置されたキー配置部からキーが選択されることにより、パスワードの入力を受け付けるステップと、
前記パスワードに含まれる複数の前記選択されたキー（選択キー）のそれぞれについて、隣接する他の選択キー（隣接キー）があるかどうかを検出し、隣接キーに関して予め定められた条件を満たす場合に、当該パスワードが推測容易であると判定するステップとを含み、
前記判定するステップにおいて、複数の隣接キーを有する選択キーの数が、予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定すること
を特徴とする方法。
【請求項９】
コンピュータに、
複数のキーが配置されたキー配置部からキーが選択されることにより、パスワードの入力を受け付ける機能と、
前記パスワードに含まれる複数の前記選択されたキー（選択キー）のそれぞれについて、隣接する他の選択キー（隣接キー）があるかどうかを検出し、隣接キーに関して予め定められた条件を満たす場合に、当該パスワードが推測容易であると判定する機能とを実現させ、
前記判定する機能は、複数の隣接キーを有する選択キーの数が、予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定すること
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードを検証するシステム、方法およびプログラムに関する。
【背景技術】
【０００２】
スマートデバイスやソーシャルネットワーク、クラウドコンピューティングなどの進展に伴い、ビジネスや暮らしは情報システムへの依存度をますます高めている。ユーザが情報システムを利用する際には、予めパスワードを登録しておき、登録済みのパスワードに一致するパスワードを入力することにより、ユーザの認証が行われて情報システムの利用が可能となるのが一般である。パスワードが一致すれば、たとえ別のユーザであってもパスワードを登録した本人とみなされ、情報システムの利用が許可されることとなる。そのため、パスワードは厳しく管理されることが求められるが、ユーザが登録するパスワードは完全にランダムな文字列で構成されるということはほとんどなく、実際にはユーザにとって覚え易い文字列で構成される場合が多い。
【０００３】
例えば、辞書などに載っている単語のパスワードや、ユーザの生年月日等の個人情報から類推できるパスワードは、パスワード自体に何らかの意味があり、ユーザにとって覚え易いものといえる。また、パスワード自体に意味はないが、短い文字列のパスワードや、入力の際に選択されるキーボードのキーの物理配列の特徴を利用したパスワードなども、ユーザにとって覚え易いものといえる。図１６（ａ）、（ｂ）は、キーの物理配列の特徴を利用したパスワードの一例を説明するための図である。図１６（ａ）では、パスワードの入力に用いられるキーボードのキーのうち、斜線を付した「１」、「ｑ」、「ａ」、「ｚ」、「ｘ」、「ｓ」、「ｗ」、「２」のキーを用いる例を示している。例えば、これらのキーによる「ｚａｑ１２ｗｓｘ」というパスワードは、キーを一筆書きに時計回りに入力するものであり、キーの物理配列の特徴を利用したパスワードであるといえる。また、図１６（ｂ）では、キーボードのキーのうち、斜線を付した「１」、「２」、「３」、「４」、「ａ」、「ｓ」、「ｄ」、「ｆ」のキーを用いる例を示している。例えば、これらのキーによる「ａｓｄｆ１２３４」というパスワードは、キーを横方向に連続して入力するものであり、キーの物理配列の特徴を利用したパスワードであるといえる。
【０００４】
このようなキーの物理配列を利用したパスワードであるか否かを判定する技術として、例えば、キーの物理配列を利用したといえるパスワードを予め登録しておき、入力されたパスワードが登録済みのパスワードと一致するか否かにより判定が行われるものが知られている。他に、キーボードのキー配列を利用してパスワードの比較を行う技術として、例えば、特許文献１には、入力されたパスワードであるパスワードＰＷ２およびパスワード記憶部に記憶されているパスワードＰＷ１に基づいて、パスワードの文字のボタンの相対的な位置関係をＰＷ１、ＰＷ２同士で比較して、パスワードＰＷ２の入力者が不正者である可能性の度合いを判定する技術が開示されている。さらに、キーボードのキー配列を利用してパスワードの生成を行う技術として、例えば、特許文献２には、登録パスワードの文字列そのものではなく、キーボードのキー配列で形成可能な形状を表すイメージ・パターンと、イメージ・パターンを形成するときのキーの入力順序を表すイメージ・シーケンスとを用いて、認証パスワードを生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０８９２７９号公報
【特許文献２】特開２００８−１８１４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
キーの物理配列の特徴を利用したパスワードを入力する場合、ユーザは、選択するキーを全て記憶しておかなくても良く、選択するキーの開始位置と終了位置、及びその間に選択するキーの規則性を覚えていれば良い。その一方、例えば、キーを一筆書きに時計回りに入力する「ｚａｑ１２ｗｓｘ」のようなパスワードは、他のユーザから推測され易いと判断されたとしても、これらの文字の入力順番を入れ替えただけの「１ｚｗｑｘ２ａｓ」のようなパスワードは、キーの物理配列を利用しているが一見すると規則性がないように見え、推測容易なパスワードではないと判断される場合がある。しかし、ユーザがこのようなパスワードを情報システムに使用していると、悪意のある第三者が、キーの物理配列の特徴を利用した文字列に絞って、その中の文字を入れ替えてパスワードの割り出しを試みた場合に、短時間でパスワードが見破られる恐れがある。そのため、このようにキーの物理配列を利用しているパスワードに対して、外部からの脅威を抑止する対策が求められている。
【０００７】
本発明は、キーの配置を利用した推測容易なパスワードの使用を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、次のようなシステムとして実現される。このシステムは、複数のキーが配置されたキー配置部からキーが選択されることにより、パスワードの入力を受け付ける受付部と、前記パスワードに含まれる複数の前記選択されたキー（選択キー）のそれぞれについて、隣接する他の選択キー（隣接キー）があるかどうかを検出し、隣接キーに関して予め定められた条件を満たす場合に、当該パスワードが推測容易であると判定する判定部とを備える。
【０００９】
また、好ましくは、上記の判定部は、複数の隣接キーを有する選択キーの数が、予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定することを特徴とする。
【００１０】
さらに、好ましくは、上記の判定部は、前記予め定められた条件として、複数の隣接キーを有する選択キーの数を、前記パスワードを入力する際にキーの選択が行われた全回数で割った値が、予め定められた閾値以上であるという条件を満たす場合に、当該パスワードが推測容易であると判定することを特徴とする。
【００１１】
また、好ましくは、上記の判定部は、前記選択キーの中に、複数回選択された選択キーが含まれ、複数回選択された当該選択キーが予め定められた条件を満たす場合に、前記パスワードが推測容易であると判定することを特徴とする。
【００１２】
そして、上記のシステムは、前記選択キーが予め定められた補正条件を満たす場合に、当該選択キーが有する隣接キーの数を加算する補正を行う補正部をさらに備えたことを特徴とする。
【００１３】
また、上記の補正部は、前記予め定められた補正条件として、前記選択キーの中に、３つ以上連続して隣接する位置関係にある複数の選択キーが含まれるという条件を満たす場合に、３つ以上連続して隣接する位置関係にある当該選択キーが有する隣接キーの数を加算する補正を行うことを特徴とする。
【００１４】
さらに、上記の補正部は、前記予め定められた補正条件として、前記選択キーの中に、複数回選択された選択キーが含まれるという条件を満たす場合に、複数回選択された当該選択キーが有する隣接キーの数を加算する補正を行うことを特徴とする。
【００１５】
また、本発明は、次のようなシステムとして実現される。このシステムは、キーボードに配置されたキーの選択によりパスワードの入力を受け付ける受付部と、パスワードの入力に用いられる前記キーボードのキー配列を示すキー配列情報を記憶する記憶部と、前記記憶部にて記憶された前記キー配列情報を参照して、前記受付部にて受け付けた複数の前記選択されたキー（選択キー）のそれぞれについて、当該選択キーに隣接する他のキー（隣接キー）を検出するキー検出部と、前記キー検出部にて検出された前記隣接キーの数が２つ以上ある選択キーの数に基づき所定の値を算出する算出部と、前記算出部により算出された値と予め定められた閾値とを比較し、当該算出された値が当該予め定められた閾値以上である場合に、前記パスワードが推測容易であると判定する判定部と、前記判定部による判定結果を表示する表示部とを備える。
【００１６】
さらに、本発明は、複数のキーが配置されたキー配置部からキーが選択されることにより、パスワードの入力を受け付けるステップと、前記パスワードに含まれる複数の前記選択されたキー（選択キー）のそれぞれについて、隣接する他の選択キー（隣接キー）があるかどうかを検出し、隣接キーに関して予め定められた条件を満たす場合に、当該パスワードが推測容易であると判定するステップとを含む方法も提供する。
【００１７】
そして、本発明は、コンピュータを制御して上述したシステムの各機能を実現するプログラム、またはコンピュータに上記の方法における各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【００１８】
本発明によれば、キーの配置を利用した推測容易なパスワードの使用を抑制することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係るパスワード検証システムの機能構成例を示したブロック図である。
【図２】隣接する位置関係にあるキーの一例を説明するための図である。
【図３】互いに隣接する位置関係にある選択キーを検出する処理の一例を説明するための図である。
【図４】図３で斜線を付した選択キーにおける検出結果の一例を示す図である。
【図５】図４に示す検出結果に対して補正が行われた場合の一例を示す図である。
【図６】（ａ）、（ｂ）は、検出回数の補正が行われる３つの選択キーの配列の一例を示した図である。
【図７】図６（ａ）、（ｂ）に示す各キー配列について、補正前の検出回数および補正後の検出回数の一例を示した図である。
【図８】パスワードを入力する際にキーの選択が行われた全回数が８から１１までの場合のパスワード判定値の一例を示す図である。
【図９】（ａ）、（ｂ）は、パスワード判定の一例を説明するための図である。
【図１０】（ａ）、（ｂ）は、パスワード判定の一例を説明するための図である。
【図１１】（ａ）、（ｂ）は、パスワード判定の一例を説明するための図である。
【図１２】（ａ）、（ｂ）は、パスワード判定の一例を説明するための図である。
【図１３】（ａ）、（ｂ）は、パスワード判定の一例を説明するための図である。
【図１４】パスワード検証システムの処理手順の一例を示したフローチャートである。
【図１５】本実施の形態に係るパスワード検証システムを構成するのに好適なハードウェア構成例を示す図である。
【図１６】（ａ）、（ｂ）は、キーの物理配列の特徴を利用したパスワードの一例を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。本実施の形態に係るパスワード検証システム１０は、ユーザが初めて情報システムを利用する際に認証用としてパスワードを登録する場合や、一度登録したパスワードを変更して新たなパスワードを登録する場合などに、パスワードがキーの物理配列の特徴を利用しており、推測容易であるか否かを判定する。そして、パスワード検証システム１０は、パスワードが推測容易であると判定した場合には、その旨をユーザに通知する。
【００２１】
＜パスワード検証システム１０の機能構成＞
まず、本実施の形態に係るパスワード検証システム１０の機能構成について説明する。図１は、本実施の形態に係るパスワード検証システム１０の機能構成例を示したブロック図である。図示するように、パスワード検証システム１０は、パスワード受付部１１と、隣接位置検出部１２と、検出回数補正部１３と、パスワード判定部１４と、表示部１５とを備える。また、パスワード検証システム１０は、入力パスワードデータベース（入力パスワードＤＢ）１６と、キーボードデータベース（キーボードＤＢ）１７と、検出結果データベース（検出結果ＤＢ）１８と、キー判定結果データベース（キー判定結果ＤＢ）１９とを備える。
【００２２】
受付部の一例としてのパスワード受付部１１は、ユーザにより入力されたパスワードを受け付ける。パスワードは、ユーザが、複数のキーが配置されたキー配置部（例えば、キーボード）を操作してキーを選択することにより、入力される。ここで、入力パスワードＤＢ１６には、パスワード受付部１１が受け付けることを許可するパスワードのルールが格納されている。即ち、パスワード受付部１１は、入力パスワードＤＢ１６に格納されているパスワードルールを参照し、入力されたパスワードがパスワードルールに従っていれば、パスワードを受け付ける。このパスワードルールには、例えば、許可されるパスワードの文字数（例えば、５文字以上など）や、パスワードとして許可される文字の種類（例えば、アルファベット、数字及び記号など）が規定されている。そして、パスワード受付部１１は、受け付けたパスワードを入力パスワードＤＢ１６に格納する。
【００２３】
キー検出部、算出部の一例としての隣接位置検出部１２は、入力パスワードＤＢ１６に格納されたパスワード（即ち、パスワード受付部１１にて受け付けたパスワード）において、パスワードを入力する際に選択された各キー（以下、パスワードを入力する際に選択されたキーを、選択キーと称する）について、互いに隣接する位置関係にある他の選択キーを検出する。
【００２４】
ここで、隣接位置検出部１２は、まず、キーボードＤＢ１７から、パスワードの入力のためにユーザが使用しているキーボードのキー配列を示す情報を取得する。そして、隣接位置検出部１２は、取得したキー配列の情報を参照して、各選択キーについて、選択キーの上下、左右、斜めなど、その選択キーの外周に配置され隣接する位置関係にある他のキーを検出する。次に、隣接位置検出部１２は、各選択キーについて検出した隣接する他のキーの情報をもとに、互いに隣接する位置関係にある他の選択キーを検出する。隣接位置検出部１２は、検出結果として、各選択キーについて、隣接する位置関係にあるとして検出された他の選択キーの数（以下、検出回数と称する）を、検出結果ＤＢ１８に格納する。本実施の形態では、隣接キーの一例として、隣接する他の選択キーが用いられる。
【００２５】
図２は、隣接する位置関係にあるキーの一例を説明するための図である。図２に示す例では、斜線を付した「ｔ」について、上下、左右、斜めなどの外周に隣接する位置関係にある他のキーが、斜線を付した「５」、「６」、「ｙ」、「ｇ」、「ｆ」、「ｒ」であることを示している。ここで、例えば、パスワードの文字の１つが「ｔ」であり、さらにパスワードに「ｆ」、「ｒ」の２つの文字が含まれている場合、隣接位置検出部１２は、選択キーである「ｔ」について、隣接する位置関係にある他の選択キーは「ｆ」、「ｒ」であるとして検出する。そして、隣接位置検出部１２は、「ｔ」の検出回数は「２」（２回）として、検出結果ＤＢ１８に格納する。
【００２６】
補正部の一例としての検出回数補正部１３は、隣接位置検出部１２により検出された各選択キーの検出回数について、予め定められた補正条件に従って補正を行う。そして、検出回数補正部１３は、補正の結果をもとに、検出結果ＤＢ１８に格納されている各選択キーの検出回数を更新する。予め定められた補正条件の詳細については、後述する。
【００２７】
判定部の一例としてのパスワード判定部１４は、検出結果ＤＢ１８に格納されている各選択キーの検出回数をもとに、入力されたパスワードが、キーの物理配列の特徴を利用しており、推測容易であるか否かを判定する。ここで、パスワード判定部１４は、判定対象となるパスワードを構成する文字や記号の総数、即ち、パスワードを入力する際にキーの選択が行われた全回数と、選択キーのうち検出回数が２回以上である選択キーの数とを用いて、判定を行う。パスワード判定部１４によるパスワード判定の詳細については、後述する。また、パスワード判定部１４は、判定結果を表示部１５に出力するとともに、キー判定結果ＤＢ１９に格納する。
【００２８】
表示部の一例としての表示部１５は、例えば液晶ディスプレイ等の表示装置であり、パスワード判定部１４による判定結果を表示し、ユーザに通知する。パスワード判定部１４により、パスワードがキーの物理配列の特徴を利用したものであると判定された場合、表示部１５は、例えば、パスワードが推測容易であるため、変更する必要がある旨のメッセージを表示する。
【００２９】
入力パスワードＤＢ１６は、ユーザが入力するパスワードに対して予め定められたパスワードルールを格納する。また、入力パスワードＤＢ１６は、パスワード受付部１１にて受け付けたパスワードを格納する。
【００３０】
記憶部の一例としてのキーボードＤＢ１７は、ユーザが使用するキーボードのキー配列の情報を格納する。ユーザが使用するキーボードとしては、例えば、使用するＯＳ（Operating System）に応じて、マイクロソフト社製のＷｉｎｄｏｗｓ（登録商標）用のキーボードや、アップル社製のＭａｃｉｎｔｏｓｈ（登録商標）用のキーボードなどが存在する。また、キーボードの製造元に応じてキーボードのキー配列が異なる場合もある。キーボードＤＢ１７には、ユーザが使用する可能性のある各種のキーボードのキー配列の情報が格納されている。そして、隣接位置検出部１２は、ユーザがパスワードの入力に使用したキーボードに対応するキー配列の情報を、キーボードＤＢ１７から取得するものとする。
【００３１】
検出結果ＤＢ１８は、隣接位置検出部１２による検出結果として、各選択キーについて検出回数を格納する。
【００３２】
キー判定結果ＤＢ１９は、パスワード判定部１４によるパスワードの判定結果を格納する。
【００３３】
＜隣接する位置関係にある選択キーの検出＞
次に、隣接位置検出部１２が、各選択キーについて互いに隣接する位置関係にある他の選択キーを検出する処理に関して、詳細に説明する。図３は、互いに隣接する位置関係にある選択キーを検出する処理の一例を説明するための図である。図３に示す例では、斜線を付した「ｗ,ｒ,ｄ,ｃ,７,ｕ,ｋ,ｐ」の８つのキーを示しており、これらのキーを順番に選択することにより８文字のパスワード（例えば、ｗｒｄｃ７ｕｋｐ）が入力される。ここで、キーがどのような順番で選択されて８文字のパスワードが入力されたとしても、隣接位置検出部１２が検出する各選択キーの検出回数は変わらない。即ち、例えば、「ｗｒｄｃ７ｕｋｐ」というパスワードでも、「ｄｃ７ｒｕｐｋｗ」というパスワードでも、各選択キーの検出回数は同じであり、どのような順番でキーが選択されたとしても、パスワードに対する判定結果は同じになる。
【００３４】
隣接位置検出部１２は、まず、各選択キーについて、その選択キーの外周に配置され隣接する位置関係にある他のキーを検出する。例えば、「ｗ」の場合、隣接位置検出部１２は、隣接する位置関係にある他のキーが、「２」、「３」、「ｅ」、「ｓ」、「ａ」、「ｑ」であることを検出する。次に、隣接位置検出部１２は、各選択キーについて、検出した隣接する他のキーの情報をもとに、互いに隣接する位置関係にある他の選択キーを検出し、検出回数をカウントする。
【００３５】
ここで、隣接位置検出部１２は、キーボード上で左から右に向かって、選択キーごとに検出回数をカウントする。また、上下の位置関係にある選択キーについては、上の選択キーから先に検出回数のカウントが行われる。即ち、図３に示す例では、「ｗ,ｒ,ｄ,ｃ,７,ｕ,ｋ,ｐ」の８つの選択キーに対して、隣接位置検出部１２が検出回数をカウントする順番は、「ｗ→ｄ→ｒ→ｃ→７→ｕ→ｋ→ｐ」となる。
【００３６】
また、隣接位置検出部１２は、各選択キーの検出回数をカウントする際に、カウントする順番が隣同士の２つの選択キーが、連続して隣接する位置関係にある場合、２つの検出回数の間にプラス（＋）の記号を付ける。一方、隣接位置検出部１２は、カウントする順番が隣同士の２つの選択キーが、連続して隣接する位置関係にない場合、２つの検出回数の間にマイナス（−）の記号を付ける。
【００３７】
具体的には、例えば、最初に検出回数のカウントが行われる「ｗ」は、隣接する他の選択キーが存在しない。また、「ｗ」と、次に検出回数のカウントが行われる「ｄ」との間には選択キーがないため、「ｗ」と「ｄ」とは連続して隣接する位置関係にないといえる。そのため、「ｗ」の検出回数は「０」とカウントされ、「ｗ」の検出回数（即ち、「０」）と「ｄ」の検出回数との間には、マイナス（−）の記号が付される。
【００３８】
「ｗ」の次に検出回数のカウントが行われる「ｄ」は、他の選択キーである「ｒ」、「ｃ」に隣接するため、検出回数は「２」とカウントされる。また、「ｄ」と、次に検出回数のカウントが行われる「ｒ」とは隣接しているため、両者は連続して隣接する位置関係にあるといえる。そのため、「ｄ」の検出回数（即ち、「２」）と「ｒ」の検出回数との間には、プラス（＋）の記号が付される。
【００３９】
「ｄ」の次に検出回数のカウントが行われる「ｒ」は、他の選択キーである「ｄ」に隣接するため、検出回数は「１」とカウントされる。また、「ｒ」と、次に検出回数のカウントが行われる「ｃ」との間には、「ｄ」があり、「ｒ」、「ｄ」、「ｃ」が連続して隣接している。即ち、「ｒ」と「ｃ」とは連続して隣接する位置関係にあるといえる。そのため、「ｒ」の検出回数（即ち、「１」）と「ｃ」の検出回数との間には、プラス（＋）の記号が付される。
【００４０】
以降の「ｃ」、「７」、「ｕ」、「ｋ」、「ｐ」についても同様に検出回数のカウントが行われ、それぞれ、「１」、「１」、「１」、「０」、「０」となる。また、「ｃ」と「７」とは連続して隣接する位置関係にないため、「ｃ」の検出回数（即ち、「１」）と「７」の検出回数（即ち、「１」）との間には、マイナス（−）の記号が付される。また、「７」と「ｕ」とは連続して隣接する位置関係にあるため、「７」の検出回数（即ち、「１」）と「ｕ」の検出回数（即ち、「１」）との間には、プラス（＋）の記号が付される。「ｕ」と「ｋ」とは連続して隣接する位置関係にないため、「ｕ」の検出回数（即ち、「１」）と「ｋ」の検出回数（即ち、「０」）との間には、マイナス（−）の記号が付される。「ｋ」と「ｐ」とは連続して隣接する位置関係にないため、「ｋ」の検出回数（即ち、「０」）と「ｐ」の検出回数（即ち、「０」）との間には、マイナス（−）の記号が付される。また、「ｐ」は検出回数を最後にカウントされるキーであるため、「ｐ」の検出回数の後には記号は付されない。
【００４１】
図４は、図３で斜線を付した選択キーにおける検出結果の一例を示す図であり、「ｗ,ｄ,ｒ,ｃ,７,ｕ,ｋ,ｐ」の８つの選択キーについて、検出結果が示されている。例えば、選択キー「ｄ」について、隣接する位置関係にある他の選択キーが「ｒ」、「ｃ」であり、検出回数が「２」であることが示されている。そして、各選択キーの検出回数を並べた配列が、「０−２＋１＋１−１＋１−０−０」になることが示されている。この検出回数の配列は、検出回数補正部１３による検出回数の補正に用いられる。そして、隣接位置検出部１２は、図４に示すような各選択キーについての検出結果を、検出結果ＤＢ１８に格納する。
【００４２】
＜検出回数の補正＞
次に、検出回数補正部１３による検出回数の補正について、詳細に説明する。検出回数補正部１３は、各選択キーにおける検出回数を並べた配列をもとに、検出回数の補正を行う。具体的には、検出回数補正部１３は、３つ以上の選択キーが連続して隣接する位置関係にある場合に、３つ以上連続して隣接する選択キーの検出回数を補正する。選択キーが３つ以上連続して隣接する位置関係にあれば、選択キーの配列に特徴がありキーの物理配列を利用したパスワードである可能性が高いといえる。しかし、３つ以上連続している選択キーのうち端にある選択キーは、隣接する選択キーが少ないため、検出回数が「１」となる場合がある。そのため、検出回数補正部１３は、３つ以上連続して隣接する位置関係にある選択キーについて、検出回数が「１」であれば、その検出回数を加算する補正を行う。
【００４３】
また、いくつの選択キーが連続して隣接する位置関係にあるかは、検出回数を並べた配列においてプラス（＋）でつながった検出回数の数をカウントすることで判断される。例えば、検出回数を並べた配列において、２つのプラス（＋）が続いていれば、３つの選択キーが連続して隣接する位置関係にあるといえる。即ち、検出回数を並べた配列において、２つ以上のプラス（＋）が続いている場合、３つ以上の選択キーが連続して隣接する位置関係にあることとなり、検出回数の補正が行われる。
【００４４】
図４に示す例では、「ｄ，ｒ，ｃ」の検出回数の配列は、「２＋１＋１」であり、２つのプラス（＋）が続いている。そのため、３つの選択キーが連続して隣接する位置関係にあるといえる。また、図３に示すように、「ｄ，ｒ，ｃ」は、実際に、連続して隣接する位置関係にあるキーであることがわかる。そして、検出回数補正部１３は、「ｄ，ｒ，ｃ」のうち検出回数が「１」の選択キーに対して、検出回数を「プラス１」する補正を行う。補正が行われたことにより、「ｒ」及び「ｃ」の検出回数が、「１」から「２」に変更される。
【００４５】
図５は、図４に示す検出結果に対して補正が行われた場合の一例を示す図である。「ｗ,ｄ,ｒ,ｃ,７,ｕ,ｋ,ｐ」の８つの選択キーのうち、３つ以上連続して隣接する位置関係にある選択キーは、「ｄ，ｒ，ｃ」のみである。そのため、上記のように「ｒ」、「ｃ」の検出回数が補正され、図５に示すように「１」から「２」に変更される。
【００４６】
次に、検出回数の補正が行われる３つの選択キーの具体的な配列について説明する。図６（ａ）、（ｂ）は、検出回数の補正が行われる３つの選択キーの配列の一例を示した図である。図６（ａ）、（ｂ）に示すキー配列（１）〜（９）は、斜線を付した３つの選択キーが連続して隣接する位置関係にある。そのため、３つの選択キーのうち検出回数が「１」のキーに対して、補正が行われる。
【００４７】
図７は、図６（ａ）、（ｂ）に示す各キー配列について、補正前の検出回数および補正後の検出回数の一例を示した図である。例えば、図６（ａ）に示すキー配列（１）では、初めに、キーボードの左側に位置する選択キーから右に向かって順番に、検出回数が「１」、「２」、「１」とカウントされる。そのため、検出回数の補正前には、選択キーの検出回数を並べた配列は、「１＋２＋１」として表される。一方、検出回数の補正が行われることにより、補正後の検出回数は、「２＋２＋２」と表される。キー配列（１）と同様に、他のキー配列（２）〜（９）についても、検出回数が「１」を示す選択キーについて補正が行われ、検出回数が「２」に変更される。
【００４８】
＜パスワード判定＞
次に、パスワード判定部１４によるパスワード判定に関して、詳細に説明する。パスワード判定部１４は、各選択キーの検出回数をもとに、入力されたパスワードがキーの物理配列の特徴を利用しているか否か、即ち、パスワードが推測容易であるか否かを判定する。ここで、パスワード判定部１４は、パスワードを入力する際にキーの選択が行われた全回数と、選択キーの中で検出回数が２回以上である選択キーの数とを用いて、判定を行う。具体的には、パスワード判定部１４は、「検出回数が２回以上の選択キーの数」を「パスワードを入力する際にキーの選択が行われた全回数」で割った値（以下、パスワード判定値と称する）を、予め定められた閾値と比較する。そして、パスワード判定値が閾値以上であれば、パスワード判定部１４は、パスワードがキーの物理配列の特徴を利用しており、推測容易であると判定する。
【００４９】
例えば、図５に示す例では、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」は「３」である。そのため、パスワード判定値は、「３」を「８」で割ることにより算出され、「０．３７５」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値より小さいため、パスワード判定部１４は、判定対象のパスワードがキーの物理配列の特徴を利用しておらず、推測容易ではないと判定する。予め定められた閾値は、ユーザの操作などにより、入力パスワードＤＢ１６に格納されているものとする。
【００５０】
図８は、パスワードを入力する際にキーの選択が行われた全回数が８から１１までの場合のパスワード判定値の一例を示す図である。例えば、キーの選択が行われた全回数が「８」の場合、検出回数が２回以上の選択キーの数が「８」であれば、パスワード判定値は「１」となる。また、例えば、検出回数が２回以上の選択キーの数が「７」であれば、パスワード判定値は「０．８７５」となる。同様に、例えば、キーの選択が行われた全回数が「９」の場合、検出回数が２回以上の選択キーの数が「９」、「８」であれば、パスワード判定値はそれぞれ、「１」、「０．８８９」となる。さらに、例えば、キーの選択が行われた全回数が「１０」の場合、検出回数が２回以上の選択キーの数が「１０」、「９」であれば、パスワード判定値はそれぞれ、「１」、「０．９」となる。
【００５１】
ここで、予め定められた閾値を「１」とすると、例えば、キーの選択が行われた全回数が「９」の場合、検出回数が２回以上の選択キーの数が「９」であれば、パスワード判定値と閾値とは同じである。そのため、パスワード判定部１４は、パスワードがキーの物理配列の特徴を利用していると判定する。一方、検出回数が２回以上の選択キーの数が「８」であれば、パスワード判定値は「０．８８９」であり、閾値よりも小さい。そのため、パスワード判定部１４は、パスワードがキーの物理配列の特徴を利用していないと判定する。
【００５２】
ただし、パスワードに求められる強度は、ユーザが使用する情報システムの役割や用途などに応じて変わるため、予め定められた閾値の値は、使用される情報システムに応じて決められるものとする。例えば、閾値を「１」にすると、検出回数が２回に満たない選択キーが１つでも存在すれば、パスワードがキーの物理配列を利用しておらず、推測容易ではないと判定される。一方、閾値を小さくするほど、パスワード判定値の方が大きいと判定され易くなる。即ち、パスワードがキーの物理配列を利用し推測容易であると判定され易くなり、パスワードに求める条件が強化されることとなる。
【００５３】
また、特にパスワードの文字数が多い場合には、検出回数が２回に満たない選択キーが一部存在したとしても、他の大部分の文字の選択キーが物理配列の特徴を利用していることも考えられる。そのため、閾値を小さい値にして、パスワードに求める条件を強化することが考えられる。例えば、キーの選択が行われた全回数が「１１」の場合に、予め定められた閾値を「０．８」とすると、検出回数が２回以上の選択キーの数が「１１」、「１０」、「９」の場合の全てで、パスワード判定値の方が閾値よりも大きくなる。そのため、パスワードがキーの物理配列の特徴を利用していると判定されることとなる。
【００５４】
さらに、予め定められた閾値を複数定めて、パスワードに対する判定結果をいくつかの段階に分けてユーザに通知することとしても良い。例えば、予め定められた閾値を「１」、「０．９」の二つ定めることとすると、パスワード判定値が１を示す場合には、パスワードはキーの物理配列の特徴を利用しているため、パスワードとして許可されず、パスワードを変更するようにユーザに通知する対応が考えられる。一方、例えば、パスワード判定値が０．９以上１未満を示す場合には、パスワードとして許可はされるが、パスワードがキーの物理配列の特徴を利用している可能性が高いとして、推測容易の危険性があることをユーザに通知する対応などが考えられる。
【００５５】
＜パスワード判定の具体例＞
次に、パスワード判定について具体例を示して説明する。図９（ａ）（ｂ）、図１０（ａ）（ｂ）、図１１（ａ）（ｂ）、図１２（ａ）（ｂ）、図１３（ａ）（ｂ）のそれぞれは、パスワード判定の一例を説明するための図である。
【００５６】
まず、図９（ａ）、（ｂ）に示す例では、斜線を付した「５,ｆ,ｇ,ｙ,ｂ,７,ｕ,ｊ」の８つのキーを用いて、８文字のパスワードが入力される。まず、最初に検出回数のカウントが行われる「５」は、隣接する他の選択キーがない。また、「５」と、次に検出回数のカウントが行われる「ｆ」との間には選択キーがなく、「５」と「ｆ」とは連続して隣接する位置関係にないといえる。そのため、「５」の検出回数は「０」とカウントされ、「５」の検出回数（即ち、「０」）と「ｆ」の検出回数との間には、マイナス（ー）の記号が付される。
【００５７】
それ以降の「ｆ」、「ｇ」、「ｙ」、「ｂ」、「７」、「ｕ」、「ｊ」は、それぞれ隣接する位置関係にある他の選択キーを有しており、７つの選択キーが連続して隣接する位置関係にあるといえる。そのため、「ｆ,ｇ,ｙ,ｂ,７,ｕ,ｊ」の検出回数を並べた配列は、「１＋３＋３＋１＋２＋３＋１」となる。さらに、検出回数が「１」となる選択キーに対して検出回数の補正が行われ、「ｆ」、「ｂ」、「ｊ」に対して「プラス１」の補正が行われる。最終的には、「５,ｆ,ｇ,ｙ,ｂ,７,ｕ,ｊ」の選択キーにおける補正後の検出回数は、「０−２＋３＋３＋２＋２＋３＋２」と表される。
【００５８】
ここで、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」は、「ｆ」、「ｇ」、「ｙ」、「ｂ」、「７」、「ｕ」、「ｊ」の「７」である。そのため、パスワード判定値は「７」を「８」で割ることにより算出され、「０．８７５」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値より小さいため、パスワード判定部１４は、判定対象の８文字のパスワードがキーの物理配列の特徴を利用していないと判定する。
【００５９】
次に、図１０（ａ）、（ｂ）に示す例では、斜線を付した「１,ｑ,ａ,ｚ,ｘ,ｄ,ｒ,５」の８つのキーを用いて、８文字のパスワードが入力される。まず、最初に検出回数のカウントが行われる「１」は、「ｑ」と隣接している。そのため、「１」の検出回数は「１」とカウントされ、「１」の検出回数（即ち、「１」）と「ｑ」の検出回数との間には、プラス（＋）の記号が付される。同様に、それ以降の「ｑ」、「ａ」、「ｚ」、「ｘ」、「ｄ」、「ｒ」はそれぞれ、隣接する位置関係にある他の選択キーを２つ有している。また、「５」は、「ｒ」と隣接している。そのため、「１,ｑ,ａ,ｚ,ｘ,ｄ,ｒ,５」の検出回数を並べた配列は、「１＋２＋２＋２＋２＋２＋２＋１」となる。さらに、検出回数が「１」となる選択キーに対して検出回数の補正が行われ、「１」、「５」に対して「プラス１」の補正が行われる。最終的には、「１,ｑ,ａ,ｚ,ｘ,ｄ,ｒ,５」の選択キーにおける補正後の検出回数は、「２＋２＋２＋２＋２＋２＋２＋２」と表される。
【００６０】
ここで、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」も「８」である。そのため、パスワード判定値は「８」を「８」で割ることにより算出され、「１」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値と同じであるため、パスワード判定部１４は、判定対象の８文字のパスワードがキーの物理配列の特徴を利用しており、推測容易であると判定する。
【００６１】
次に、図１１（ａ）、（ｂ）に示す例では、斜線を付した「１,ｑ,ａ,ｚ,ｍ,ｋ,ｏ,０」の８つのキーを用いて、８文字のパスワードが入力される。まず、最初に検出回数のカウントが行われる「１」は、「ｑ」と隣接している。そのため、「１」の検出回数は「１」とカウントされ、「１」の検出回数（即ち、「１」）と「ｑ」の検出回数との間には、プラス（＋）の記号が付される。同様に、それ以降の「ｑ」、「ａ」、「ｋ」、「ｏ」はそれぞれ、隣接する位置関係にある他の選択キーを２つ有している。また、「ｚ」、「ｍ」、「０」はそれぞれ、隣接する位置関係にある他の選択キーを１つ有している。さらに、「１,ｑ,ａ,ｚ」、「ｍ,ｋ,ｏ,０」はそれぞれ、４つの選択キーが連続して隣接している。ただし、「ｚ」と「ｍ」との間には、選択キーは存在しない。
【００６２】
そのため、「１,ｑ,ａ,ｚ,ｍ,ｋ,ｏ,０」の検出回数を並べた配列は、「１＋２＋２＋１−１＋２＋２＋１」となる。さらに、検出回数が「１」となる選択キーに対して検出回数の補正が行われ、「１」、「ｚ」、「ｍ」、「０」に対して「プラス１」の補正が行われる。最終的には、「１,ｑ,ａ,ｚ,ｍ,ｋ,ｏ,０」の選択キーにおける補正後の検出回数は、「２＋２＋２＋２−２＋２＋２＋２」と表される。
【００６３】
ここで、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」も「８」である。そのため、パスワード判定値は「８」を「８」で割ることにより算出され、「１」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値と同じであるため、パスワード判定部１４は、８文字の判定対象のパスワードがキーの物理配列の特徴を利用しており、推測容易であると判定する。
【００６４】
図１１（ａ）に示す選択キーのキー配列は、図１０（ａ）に示すキー配列「ｘ,ｄ,ｒ,５」の代わりに、「ｘ,ｄ,ｒ,５」を右に平行にずらした位置にあるキー配列「ｍ,ｋ,ｏ,0」を使用するものである。図１０（ａ）に示す例では、８つの選択キーが連続して隣接する構成であり、図１１（ａ）に示す例では、４つの連続した選択キーが２つある構成であるが、本実施の形態では、両者のパスワード判定値は同じ値となり、パスワード判定も同じ結果となる。
【００６５】
次に、図１２（ａ）、（ｂ）に示す例では、斜線を付した「ｅ,ｓ,ｘ,７,ｈ,ｕ」の６つのキーを用いて、８文字のパスワードが入力される。即ち、同じキーを複数回用いてパスワードが入力される。図示の例では、「ｅ」及び「７」が２回用いられ、例えば「ｅｅｓｘ７７ｕｈ」や、「７ｅｓｘ７ｅｈｕ」などのパスワードが入力されるものとする。そして、選択キーの検出回数は、「ｓ,ｅ,ｅ,ｘ,７,７,ｈ,ｕ」の順番にカウントされる。
【００６６】
まず、最初に検出回数のカウントが行われる「ｓ」は、「ｘ」、「ｅ」と隣接している。そのため、「ｓ」の検出回数は「２」とカウントされ、「ｓ」の検出回数（即ち、「２」）と次の「ｅ」の検出回数との間には、プラス（＋）の記号が付される。次に、「ｅ」は「ｓ」と隣接しているため、「ｅ」の検出回数は「１」とカウントされる。また、「ｅ」の次には、同じキーである「ｅ」の検出回数が再度カウントされることとなる。
【００６７】
ここで、同じキー同士は物理的には隣接しているとは言えないが、同じキーが選択されると同じ文字・記号が入力されることになるため、パスワードとしてはより単純な構成になる。即ち、キーの物理配列を利用したパスワードである可能性が高くなるといえる。例えば、１つの文字だけを連続して用いて構成されるパスワードや、２つの文字を交互に用いて構成されるパスワードなどは、キーの物理配列を利用したパスワードであるといえる。
【００６８】
そのため、本実施の形態では、同じキーが複数回選択された場合には、キーの物理配列を利用した可能性が高いとして、複数回選択されたキーの検出回数に「プラス２」をして、検出回数を加算する補正が行われる。また、同じキー同士の場合には連続して隣接する位置関係にあるものと考えて、両者の検出回数の間にはプラス（＋）の記号が付されるものとする。
【００６９】
次に、「ｘ」は「ｓ」と隣接しているため検出回数は「１」となり、「ｘ」と、次に検出回数のカウントが行われる「７」との間には、選択キーがないため、「ｘ」の検出回数（即ち、「１」）と「７」の検出回数との間には、マイナス（−）の記号が付される。次に、「７」は「ｕ」と隣接しているため検出回数は「１」となり、連続して「７」の検出回数がカウントされるため、「７」の検出回数と次の「７」の検出回数との間には、プラス（＋）の記号が付される。それ以降の「ｈ」、「ｕ」についてもこれまでと同様に検出回数がカウントされる。
【００７０】
そして、「ｓ,ｅ,ｅ,ｘ,７,７,ｈ,ｕ」の検出回数を並べた配列は、「２＋１＋１＋１−１＋１＋１＋２」となる。ここで、複数回選択された選択キーに対して検出回数の補正が行われ、「ｅ」、「７」に対して「プラス２」の補正が行われる。そのため、「ｓ,ｅ,ｅ,ｘ,７,７,ｈ,ｕ」の検出回数を並べた配列は、「２＋３＋３＋１−３＋３＋１＋２」と表される。また、検出回数が「１」となる選択キーに対して検出回数の補正が行われ、「ｘ」、「ｈ」に対して「プラス１」の補正が行われる。最終的には、「ｓ,ｅ,ｅ,ｘ,７,７,ｈ,ｕ」の選択キーにおける補正後の検出回数は、「２＋３＋３＋２−３＋３＋２＋２」と表される。
【００７１】
ここで、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」も「８」である。そのため、パスワード判定値は「８」を「８」で割ることにより算出され、「１」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値と同じであるため、パスワード判定部１４は、８文字の判定対象のパスワードがキーの物理配列の特徴を利用していると判定する。
【００７２】
また、図１２（ａ）、（ｂ）に示す例では、複数回選択された選択キーに対して「プラス２」の補正を行った後、検出回数が「１」の選択キーに対する「プラス１」の補正を行うこととしたが、このような構成に限られるものではない。例えば、先に、検出回数が「１」の選択キーに対する補正を行うこととしても良い。この場合には、例えば、まず、検出回数が「１」となる選択キー「ｅ」、「７」、「ｘ」、「ｈ」に対して「プラス１」の補正が行われ、「ｓ,ｅ,ｅ,ｘ,７,７,ｈ,ｕ」の検出回数を並べた配列は、「２＋２＋２＋２−２＋２＋２＋２」と表される。その後、複数回選択された選択キー「ｅ」、「７」に対して「プラス２」の補正が行われる。
【００７３】
図１３（ａ）、（ｂ）に示す例では、斜線を付した「ｘ,ｆ,ｙ,ｂ」の４つのキーを用いて、８文字のパスワードが入力される。即ち、同じキーを複数回用いてパスワードが入力される。図示の例では、「ｘ」が３回用いられ、「ｆ」及び「ｙ」が２回用いられ、例えば「ｘｘｘｆｆｙｙｂ」や、「ｆｙｆｘｂｘｙｘ」などのパスワードが入力されるものとする。ここで、「ｘ」、「ｆ」、「ｙ」、「ｂ」の４つのキーは互いに隣接していないため、各キーの検出回数は「０」とカウントされる。ただし、「ｘ」、「ｆ」、「ｙ」は複数回選択されており、パスワード判定部１４は、このように互いに隣接する位置関係にある選択キーがない場合であっても、複数回選択された選択キーがあれば、入力されたパスワードを判定の対象として処理を行う。
【００７４】
図示の例では、選択キーの検出回数は、「ｘ,ｘ,ｘ,ｆ,ｆ,ｙ,ｙ,ｂ」の順番にカウントされる。そして、各選択キーは互いに隣接していないため、「ｘ,ｘ,ｘ,ｆ,ｆ,ｙ,ｙ,ｂ」の検出回数を並べた配列は、「０＋０＋０−０＋０−０＋０−０」となる。しかし、「ｘ」、「ｆ」、「ｙ」は複数回選択されているため、「プラス２」の補正が行われる。そして、最終的には、「ｘ,ｘ,ｘ,ｆ,ｆ,ｙ,ｙ,ｂ」の選択キーにおける補正後の検出回数は、「２＋２＋２−２＋２−２＋２−０」と表される。
【００７５】
ここで、パスワードは８文字であるため、「キーの選択が行われた全回数」は「８」で、「検出回数が２回以上の選択キーの数」は「７」である。そのため、パスワード判定値は「７」を「８」で割ることにより算出され、「０．８７５」となる。そして、予め定められた閾値が例えば「１」であれば、パスワード判定値は閾値より小さいため、パスワード判定部１４は、８文字の判定対象のパスワードがキーの物理配列の特徴を利用していないと判定する。一方、予め定められた閾値が例えば「０．８」であれば、パスワード判定値は閾値より大きいため、パスワード判定部１４は、８文字の判定対象のパスワードがキーの物理配列の特徴を利用していると判定する。
【００７６】
＜パスワード検証システム１０の処理手順＞
次に、パスワード検証システム１０の処理手順について説明する。図１４は、パスワード検証システム１０の処理手順の一例を示したフローチャートである。初期状態として、キーボードＤＢ１７には、各種のキーボードのキー配列の情報が格納されているものとする。また、情報システムに応じて、パスワード判定に用いられる閾値が予め定められ、入力パスワードＤＢ１６に格納されているものとする。
【００７７】
まず、ユーザが初めて情報システムを利用する際などに、認証用として登録するパスワードを入力すると、パスワード受付部１１は入力されたパスワードを受け付ける（ステップ１０１）。ここで、パスワード受付部１１は、入力パスワードＤＢ１６に格納されているパスワードルールを参照し、入力されたパスワードがパスワードルールに従っていれば、パスワードを受け付ける。入力されたパスワードがパスワードルールに従っていなければ、表示部１５は、例えば、パスワードルールに従っていない旨を表示し、異なるパスワードの入力をユーザに促す。そして、パスワード受付部１１は、受け付けたパスワードを入力パスワードＤＢ１６に格納する（ステップ１０２）。
【００７８】
次に、隣接位置検出部１２は、キーボードＤＢ１７から、ユーザが使用しているキーボードのキー配列を示す情報を取得する。そして、隣接位置検出部１２は、入力パスワードＤＢ１６に格納されたパスワードを判定対象のパスワードとし、このパスワードを入力する際に選択された各選択キーについて、隣接する位置関係にある他のキーを検出する（ステップ１０３）。次に、隣接位置検出部１２は、各選択キーについて検出した隣接する他のキーの情報をもとに、互いに隣接する位置関係にある他の選択キーを検出する（ステップ１０４）。そして、隣接位置検出部１２は、判定対象のパスワードについて、互いに隣接する位置関係にある選択キーが存在するか否かを判定する（ステップ１０５）。
【００７９】
互いに隣接する位置関係にある選択キーが存在する場合（ステップ１０５でＹｅｓ）、隣接位置検出部１２は、各選択キーについて、互いに隣接する位置関係にある他の選択キーを検出した検出結果を検出結果ＤＢ１８に格納する（ステップ１０６）。ここで、隣接位置検出部１２は、検出結果として、各選択キーの検出回数を検出結果ＤＢ１８に格納する。また、ステップ１０５において、隣接位置検出部１２は、複数回選択された選択キーがある場合には、互いに隣接する位置関係にある選択キーが存在すると判定し（ステップ１０５でＹｅｓ）、複数回選択された選択キーの情報を検出結果ＤＢ１８に格納するものとする。一方、互いに隣接する位置関係にある選択キーが存在しない場合（ステップ１０５でＮｏ）、後述するステップ１０９に移行する。
【００８０】
ステップ１０６の後、検出回数補正部１３は、隣接位置検出部１２により検出された各選択キーの検出回数について、予め定められた補正条件に従って補正を実行する（ステップ１０７）。ここで、検出回数補正部１３は、３つ以上の選択キーが連続して隣接する位置関係にある場合、また、複数回選択された選択キーが存在する場合に、補正を実行する。そして、検出回数補正部１３は、補正の結果をもとに、検出結果ＤＢ１８に格納されている各選択キーの検出回数を更新する。次に、パスワード判定部１４は、検出結果ＤＢ１８に格納されている各選択キーの検出回数をもとに、検出回数が２回以上の選択キーの数を算出する（ステップ１０８）。
【００８１】
次に、パスワード判定部１４は、パスワードを入力する際にキーの選択が行われた全回数と、ステップ１０７で算出した、検出回数が２回以上の選択キーの数とを用いて、パスワード判定値を求める。そして、パスワード判定部１４は、求めたパスワード判定値と予め定められた閾値とを比較することにより、判定対象のパスワードがキーの物理配列の特徴を利用した推測容易なパスワードであるか否かを判定する（ステップ１０９）。
【００８２】
ここで、ステップ１０５で否定の判断（Ｎｏ）がされた場合には、互いに隣接する位置関係にある選択キーが存在しないため、パスワード判定部１４は、判定対象のパスワードがキーの物理配列の特徴を利用しているパスワードではないと判定する。そして、パスワード判定部１４は、パスワード判定を行った後、判定結果を表示部１５に出力するとともに、キー判定結果ＤＢ１９に格納する。また、表示部１５は、判定結果を表示してユーザに通知し、本処理フローは終了する。
【００８３】
以上説明したように、本実施の形態に係るパスワード検証システム１０は、パスワードを入力する際に選択された各キーの配置をもとに、パスワードがキー配列の特徴を利用しており、推測容易であるか否かを判定する。パスワード検証システム１０は、選択された各キーの隣接関係を検出して判定を行うため、ユーザは、キー配列の特徴を利用したパスワードであるとして検出対象のパスワードを予め登録しておく必要はない。
【００８４】
また、例えば、一筆書きに時計回りにキーの選択が行われたパスワードに対して、キーを選択する順番が入れ替わり、一見すると第三者から推測容易ではないと判断されるようなパスワードであっても、パスワード検証システム１０を用いることにより、キー配列の特徴を利用したパスワードとして検出される。そして、パスワード検証システム１０は、悪意のある第三者が、特徴的なキー配列の文字列に絞ってその中の文字を入れ替えてパスワードの割り出しを試みるような行為にも対応するものであり、キーの物理配列を利用した推測容易なパスワードの使用を抑制する。
【００８５】
＜パスワード検証システム１０のハードウェア構成例＞
最後に、パスワード検証システム１０のハードウェア構成について説明する。図１５は、本実施の形態に係るパスワード検証システム１０を構成するのに好適なハードウェア構成例を示す図である。ここでは、コンピュータに適用する場合について説明する。図１５に示すコンピュータは、演算手段であるＣＰＵ（Central Processing Unit）１０ａと、主記憶手段であるメモリ１０ｃを備える。また、外部デバイスとして、磁気ディスク装置（ＨＤＤ：Hard Disk Drive）１０ｇ、ネットワーク・インターフェイス１０ｆ、ディスプレイ装置を含む表示機構１０ｄ、音声機構１０ｈ、キーボードやマウス等の入力デバイス１０ｉ等を備える。
【００８６】
図１５に示す構成例では、メモリ１０ｃおよび表示機構１０ｄは、システム・コントローラ１０ｂを介してＣＰＵ１０ａに接続されている。また、ネットワーク・インターフェイス１０ｆ、磁気ディスク装置１０ｇ、音声機構１０ｈおよび入力デバイス１０ｉは、Ｉ／Ｏコントローラ１０ｅを介してシステム・コントローラ１０ｂと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【００８７】
また、図１５において、磁気ディスク装置１０ｇにはＯＳのプログラムやアプリケーション・プログラムが格納されている。そして、これらのプログラムがメモリ１０ｃに読み込まれてＣＰＵ１０ａに実行されることにより、本実施の形態に係るパスワード検証システム１０におけるパスワード受付部１１、隣接位置検出部１２、検出回数補正部１３、パスワード判定部１４の機能が実現される。また、メモリ１０ｃや磁気ディスク装置１０ｇ等の記憶手段により、入力パスワードＤＢ１６、キーボードＤＢ１７、検出結果ＤＢ１８、キー判定結果ＤＢ１９が実現される。さらに、表示機構１０ｄにより、表示部１５が実現される。
【００８８】
なお、図１５は、本実施の形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施の形態は、パスワードに対する判定を行う機能を有する装置に広く適用できるものであり、図示の構成においてのみ本実施の形態が実現されるのではない。
【００８９】
また、本実施の形態では、３つ以上の選択キーが連続して隣接する位置関係にある場合、またキーの選択が複数回行われた場合に、検出回数の補正が行われることとして説明したが、補正条件として用いられるものはこのような場合に限られるものではない。キーの物理配列の特徴を利用しているパスワードの判定のために採用すべき補正条件であれば、どのような補正条件を用いても良い。
【００９０】
さらに、本実施の形態では、パスワード判定部１４は、検出回数が２回以上の選択キーの数を用いてパスワード判定値を求めることとしたが、このような構成に限られるものではない。パスワード判定部１４は、例えば、検出回数が３回以上の選択キーの数を集計してパスワード判定値を求めることとしても良い。パスワード判定値の算出に用いるための検出回数の下限を高くするほど、パスワード判定値の算出に用いられる選択キーの数が少なくなるため、パスワード判定値は小さくなる。そのため、キーの物理配列の特徴を利用したパスワードであると判定されづらくなり、パスワードに求める条件を緩めることとなる。
【００９１】
また、本実施の形態では、パスワード検証システム１０は、検出回数が２回以上の選択キーの数を、パスワードを入力する際にキーの選択が行われた全回数で割ってパスワード判定値を算出しパスワード判定を行うこととしたが、判定の処理はこのような構成に限られるものではない。例えば、パスワード検証システム１０は、検出回数が２回以上の選択キーの数が予め定められた閾値を超えれば、パスワードがキーの物理配列の特徴を利用していると判定しても良く、選択キー同士の隣接関係をもとに判定を行うものであれば、どのような判定の処理を用いても良い。
【００９２】
さらに、本実施の形態では、ユーザはキーボードを用いてパスワードを入力する例について説明したが、このような構成に限られるものではない。例えば、金融機関などに設置されている現金自動預け払い機（いわゆる、ＡＴＭ（Automated Teller Machine））で使用されるようなテンキーや、アルファベットや数字が表示された液晶タッチパネルなどを用いて入力されるパスワードに対して、パスワード判定が行われることとしても良い。
【００９３】
そして、本実施の形態では、ユーザが初めて情報システムを利用する場合やパスワードを変更する場合などにパスワード判定が行われることとしたが、このような構成に限られるものではない。例えば、パスワード検証システム１０は、ユーザがパスワードを登録済みでユーザ認証のためにパスワードを入力する場合に、パスワード判定を行うこととしても良い。この場合、登録済みのパスワードと同じものが入力され、そのパスワードがキーの物理配列を利用したものであると判定されると、例えば、一度登録されたパスワードではあるが推測容易であるとして、パスワードの変更を促すメッセージが表示される。
【００９４】
さらにまた、本実施の形態では、パスワード判定部１４による判定結果がキー判定結果ＤＢ１９に格納されるため、パスワード受付部１１が受け付けたパスワードについて、すでに判定結果がキー判定結果ＤＢ１９に格納されていれば、格納されている判定結果に基づいて表示部１５が表示を行うこととしても良い。
【００９５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００９６】
１０…パスワード検証システム、１１…パスワード受付部、１２…隣接位置検出部、１３…検出回数補正部、１４…パスワード判定部、１５…表示部、１６…入力パスワードＤＢ、１７…キーボードＤＢ、１８…検出結果ＤＢ、１９…キー判定結果ＤＢ
【図１】
0005943359.tif 000002
【図２】
0005943359.tif 000003
【図３】
0005943359.tif 000004
【図４】
0005943359.tif 000005
【図５】
0005943359.tif 000006
【図６】
0005943359.tif 000007
【図７】
0005943359.tif 000008
【図８】
0005943359.tif 000009
【図９】
0005943359.tif 000010
【図１０】
0005943359.tif 000011
【図１１】
0005943359.tif 000012
【図１２】
0005943359.tif 000013
【図１３】
0005943359.tif 000014
【図１４】
0005943359.tif 000015
【図１５】
0005943359.tif 000016
【図１６】
0005943359.tif 000017