所定パターンに配列した複数のパターン要素を認証を受けるユーザが使用するクライアントに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用するオフライン二要素ユーザ認証システムであって、前記ユーザのオフラインでの認証を支援するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行える端末であるオフライン二要素認証クライアントと、を有し、前記オフライン二要素認証クライアントは、前記ユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、入力された前記ユーザIDを前記オフライン認証支援サーバに送信するユーザID送信手段と、を有し、前記オフライン認証支援サーバは、前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールと前記ユーザが使用する前記オフライン二要素認証クライアントを識別するクライアント識別情報とをお互いに関連付けてあらかじめ記憶するパスワード記憶部と、前記クライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するパターンシード値発生手段と、認証を受けることになるユーザのユーザIDを前記オフライン二要素認証クライアントから受信するユーザID受信手段と、受信した前記ユーザIDに関連付けられた前記クライアント識別情報および発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、受信した前記ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、発生させられた複数の前記パターンシード値を、認証を受けることになるユーザのオフライン二要素認証クライアントに送信するパターンシード値送信手段と、生成された複数の前記検証コードを、認証を受けるユーザのオフライン二要素認証クライアントに送信する検証コード送信手段と、を有し、前記オフライン二要素認証クライアントは、前記オフライン認証支援サーバから送信された複数の前記パターンシード値を受信するパターンシード値受信手段と、受信した複数の前記パターンシード値を記憶するパターンシード値記憶部と、前記オフライン認証支援サーバから送信された複数の前記検証コードを受信する検証コード受信手段と、受信した複数の前記検証コードをそれと対応するパターンシード値と関連付けて記憶する検証コード記憶部と、前記パターンシード値記憶部が記憶する複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報を取得するクライアント識別情報取得手段と、取得された前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証が成功したものとオフラインで判定するユーザ認証手段と、をさらに有することを特徴とするオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記パスワード記憶部は、前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールと前記ユーザが使用する前記オフライン二要素認証クライアントをそれぞれ識別する複数のクライアント識別情報とをお互いに関連付けてあらかじめ記憶するものであり、前記パターンシード値発生手段は、前記複数のクライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するものであり、前記検証コード生成手段は、受信した前記ユーザIDに関連付けられた前記複数のクライアント識別情報および発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、受信した前記ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成するものであり、前記クライアント識別情報取得手段は、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記複数のクライアント識別情報を取得するものであり、前記パターン要素列生成手段は、取得された前記複数のクライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するものであることを特徴とするオフライン二要素ユーザ認証システム請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記パターンシード値発生手段は、前記ユーザIDおよび前記クライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するものであり、前記検証コード生成手段は、受信した前記ユーザID、受信した前記ユーザIDに関連付けられた前記クライアント識別情報、および発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成するものであり、前記パターン要素列生成手段は、入力された前記ユーザIDと認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するものであるオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記クライアント識別情報取得手段は、前記オフライン二要素認証クライアントのハードウェアに内蔵された識別情報を取得するオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記クライアント識別情報取得手段は、前記オフライン二要素認証クライアントのOSのID情報を取得するオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記クライアント識別情報取得手段は、前記オフライン二要素認証クライアントに設定されたネットワークにおけるアドレス情報を取得するオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記クライアント識別情報取得手段は、前記オフライン二要素認証クライアントのインターフェースを通じて外部機器の識別情報を取得するオフライン二要素ユーザ認証システム。請求項1に記載のオフライン二要素ユーザ認証システムにおいて、前記クライアント識別情報取得手段は、認証を受けようとするユーザの生体識別情報を取得するオフライン二要素ユーザ認証システム。所定パターンに配列した複数のパターン要素を認証を受けるユーザが使用するクライアントに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用することによって、前記ユーザのオフラインでの認証を支援するオフライン認証支援サーバとネットワークで接続可能であるオフライン二要素認証クライアントにおいて、ネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフライン二要素ユーザ認証方法であって、前記オフライン認証支援サーバが、前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールと前記ユーザが使用する前記オフライン二要素認証クライアントを識別するクライアント識別情報とをお互いに関連付けてあらかじめ記憶するステップと、前記オフライン二要素認証クライアントが、認証を受けることになるユーザのユーザIDの入力を受け付けるステップと、前記オフライン二要素認証クライアントが、入力された前記ユーザIDを前記オフライン認証支援サーバに送信するステップと、前記オフライン認証支援サーバが、前記クライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するステップと、前記オフライン認証支援サーバが、認証を受けることになるユーザのユーザIDを前記オフライン二要素認証クライアントから受信するステップと、前記オフライン認証支援サーバが、受信した前記ユーザIDに関連付けられた前記クライアント識別情報および発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、受信した前記ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に前記一方向関数演算を実施したものである検証コードを複数生成するステップと、前記オフライン認証支援サーバが、発生させられた複数の前記パターンシード値を、認証を受けることになるユーザのオフライン二要素認証クライアントに送信するステップと、前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けることになるユーザのオフライン二要素認証クライアントに送信するステップと、前記オフライン二要素認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターンシード値を受信するステップと、前記オフライン二要素認証クライアントが、受信した複数の前記パターンシード値を記憶するステップと、前記オフライン二要素認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを受信するステップと、前記オフライン二要素認証クライアントが、受信した複数の前記検証コードをそれと対応するパターンシード値と関連付けて記憶するステップと、前記オフライン二要素認証クライアントが、記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、前記オフライン二要素認証クライアントが、選択された前記パターンシード値に対応する検証コードを特定するステップと、前記オフライン二要素認証クライアントが、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報を取得するステップと、前記オフライン二要素認証クライアントが、取得された前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、前記オフライン二要素認証クライアントが、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、前記オフライン二要素認証クライアントが、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、前記オフライン二要素認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証が成功したものとオフラインで判定するステップと、を有することを特徴とするオフライン二要素ユーザ認証方法。所定パターンに配列した複数のパターン要素を認証を受けるユーザが使用するクライアントに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用するオフライン二要素ユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン二要素認証クライアントであって、所定の発生規則によりあらかじめ複数発生させられた、前記オフライン二要素認証クライアントを識別するクライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるパターンシード値入力手段と、入力された複数の前記パターンシード値をあらかじめ記憶するパターンシード値記憶部と、認証を受けることになるユーザのユーザIDに関連付けられた前記クライアント識別情報、および前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けることになるユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、認証を受けようとするユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、前記パターンシード値記憶部があらかじめ記憶している複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報を取得するクライアント識別情報取得手段と、取得された前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証が成功したものとオフラインで判定するユーザ認証手段と、を有することを特徴とするオフライン二要素認証クライアント。所定パターンに配列した複数のパターン要素を認証を受けるユーザが使用するクライアントに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用するオフライン二要素ユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン二要素認証クライアントで認証を行うオフライン二要素ユーザ認証方法であって、所定の発生規則によりあらかじめ複数発生させられた、前記オフライン二要素認証クライアントを識別するクライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、入力された複数の前記パターンシード値をあらかじめ記憶するステップと、認証を受けることになるユーザのユーザIDに関連付けられた前記クライアント識別情報、および前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けることになるユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、入力された複数の前記検証コードをあらかじめ記憶するステップと、認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、あらかじめ記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、選択された前記パターンシード値に対応する検証コードを特定するステップと、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報を取得するステップと、取得された前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証が成功したものとオフラインで判定するステップと、を有することを特徴とするオフライン二要素ユーザ認証方法。所定パターンに配列した複数のパターン要素を認証を受けるユーザが使用するクライアントに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用するオフライン二要素ユーザ認証システムにおいて、オフラインのオフライン二要素認証クライアントにオフライン二要素ユーザ認証方法を実行させるオフライン二要素ユーザ認証プログラムであって、前記オフライン二要素ユーザ認証方法は、所定の発生規則によりあらかじめ複数発生させられた、前記クライアント識別情報と組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、入力された複数の前記パターンシード値をあらかじめ記憶するステップと、認証を受けることになるユーザのユーザIDに関連付けられた前記クライアント識別情報、および前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けることになるユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、入力された複数の前記検証コードをあらかじめ記憶するステップと、認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、あらかじめ記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、選択された前記パターンシード値に対応する検証コードを特定するステップと、認証を受けようとする前記ユーザが使用している前記オフライン二要素認証クライアントを識別する前記クライアント識別情報を取得するステップと、取得された前記クライアント識別情報と選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証が成功したものとオフラインで判定するステップと、を有することを特徴とするオフライン二要素ユーザ認証プログラム。請求項12に記載のオフライン二要素ユーザ認証プログラムにおいて、当該オフラインユーザ認証プログラムは、OSの起動時に当該OSの設定により呼び出されるログオン認証プログラムの形態であるオフライン二要素ユーザ認証プログラム。しかし、従来のオフラインユーザ認証システムにおいては、ユーザのパスワードというユーザが知っている情報を使用した一要素の認証しか行うことができなかった。従って、ユーザのパスワードが漏洩した場合、それを用いた不正認証を防止することができず、セキュリティに限界があった。このように、よりセキュリティを高めるために、パスワード以外の情報を認証のための第2の要素とした二要素ユーザ認証Twofactoruserauthenticationの必要性が高まっていた。すなわち、本人が知っている情報であるパスワード以外に、ある機器を保有していることを表わす情報や、認証を受けようとする者が本人であることを表わす情報などを、認証のための新たな要素とすることが求められていた。しかし、認証に必要な情報としてパスワード以外の情報を単に追加しただけでは、その情報にアクセスされると直ちにそれが漏洩することになるため、セキュリティの向上は限定的である。ワンタイムパスワードトークンを使用してそのようなパスワード以外の情報を生成することとすると、そのような危険性を低減することはできるが、専用のワンタイムパスワードトークンを導入するコストや手間がかかるし、また、認証時にワンタイムパスワードトークンを携帯していなくてはいけないという不便さも生じる。本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち本発明は、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザが使用する前記クライアントを識別する情報を前記認証のためにさらに使用するオフライン二要素ユーザ認証システムであって、オフライン認証支援サーバとオフライン二要素認証クライアントとを有し、オフライン認証支援サーバは、ユーザのユーザIDとワンタイムパスワード導出ルールと当該ユーザが使用するオフライン二要素認証クライアントを識別するクライアント識別情報とをお互いに関連付けてあらかじめ記憶し、クライアント識別情報と組み合わされて提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生し、発生させられた複数のパターンシード値のそれぞれに基づく提示パターンのそれぞれに対応させて、当該ユーザのワンタイムパスワード導出ルールをそれぞれの提示パターンに適用した結果に一方向関数演算を実施した検証コードを複数生成し、それらの複数のパターン要素列と検証コードをオフライン二要素認証クライアントに送信して記憶させ、オフライン二要素認証クライアントは、認証を受けようとするユーザが使用しているオフライン二要素認証クライアントを識別するクライアント識別情報を取得し、受信した複数のパターンシード値から1つを選択して、取得したクライアント識別情報と選択したパターンシード値に基づいて提示パターンを生成して表示し、それに基づいて入力されたワンタイムパスワードに前記の一方向関数演算を実施したものを対応する検証コードと比較してユーザの認証を実行することを特徴とする。本発明は、提示パターンをパターンシード値に基づいて生成する際に、複数のクライアント識別情報に基づいてそれを生成するように構成できる。本発明は、提示パターンをパターンシード値に基づいて生成する際に、クライアント識別情報に加えて、ユーザのユーザIDを組み合わせるように構成できる。本発明は、クライアント識別情報として、オフライン二要素認証クライアントのインターフェースを通じて外部機器の識別情報を取得するように構成できる。本発明は、クライアント識別情報として、オフライン二要素認証クライアントのOSのID情報を取得するように構成できる。本発明は、クライアント識別情報として、オフライン二要素認証クライアントに設定されたネットワークにおけるアドレス情報を取得するように構成できる。本発明は、クライアント識別情報として、認証を受けようとするユーザの生体識別情報を取得するように構成できる。上記あるいは特許請求の範囲に記載の発明において、サーバ、クライアントなどの用語は、装置の具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えた装置を表わすためのものである。1つの構成要素が有する機能が2つ以上の物理的構成によって実現されてもよく、2つ以上の構成要素が有する機能が1つの物理的構成によって実現されてもよい。システムの発明は、それぞれの構成要素の有する機能が逐次的に実行される方法の発明として把握することもできるし、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行され得る限りにおいて、自由な順序でそれを実行することができる。これらの発明は、所定のハードウェアと協働して所定の機能を実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。本発明は、認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するための導出ルールをパスワードとし、ユーザが使用するクライアントを識別する情報を認証のためにさらに使用する二要素ユーザ認証システムであって、オフライン認証クライアント内に、クライアント識別情報と組み合わされて提示パターンをユニークに決定する値であるパターンシード値と、そのそれぞれの提示パターンに導出ルールを適用した結果に一方向関数演算を実施したものである複数の検証コードをクライアントに記憶させ、記憶されたパターンシード値から1つを選択することによって提示パターンを生成し、入力されたワンタイムパスワードに前記の一方向関数演算を実施したものを対応する検証コードと比較して認証を実施するという構成を有していることにより、ユーザのパスワードというユーザが知っている情報に加えて、クライアント識別情報という第2の要素を認証のために使用することができるため、クライアント識別情報を出力する機器を物理的に保有していることが認証の際の追加的な検証のための条件である二要素認証を実現することができる。さらに、クライアント識別情報そのものを認証の際に検証するものではないため、認証のための検証コードが漏洩したとしても、クライアント識別情報という第2の要素が漏洩したことにはならない。そのため、認証のための検証コードが漏洩した場合でも、提示パターンやワンタイムパスワードの生成ルールの推定が不可能であり、正しいワンタイムパスワードが推測される可能性もなく、強固なセキュリティが得られる。クライアント識別情報を出力する機器として、オフライン認証クライアント自身を含む幅広い機器を使用できるため、導入のコストや手間を最小にでき、また、クライアント識別情報を出力する機器を携帯する負担を最小にできる。さらに本発明は、提示パターンをパターンシード値に基づいて生成する際に、複数のクライアント識別情報に基づいてそれを生成するように構成できるため、認証のための要素の数を実質的に三要素以上の多要素に拡張することができ、さらに強固なセキュリティが得られる。さらに本発明は、提示パターンをパターンシード値に基づいて生成する際に、クライアント識別情報に加えて、ユーザのユーザIDを組み合わせるように構成できるため、パターンシード値が漏洩した場合でも、パターンシード値から提示パターンを推定することが一層困難であり、さらに強固なセキュリティが得られる。さらに本発明は、クライアント識別情報として、オフライン認証クライアントのハードウェアに内蔵された識別情報やオフライン認証クライアントのOSのID情報やオフライン認証クライアントに設定されたネットワークにおけるアドレス情報などを取得するように構成できるため、オフライン認証クライアントを物理的に保有していることに基づく情報が認証の際の追加的な検証のための条件となってセキュリティが向上する。またさらに本発明は、クライアント識別情報として、オフライン認証クライアントのインターフェースを通じて外部機器の識別情報を取得するように構成できるため、その外部機器を物理的に保有していることが認証の際の追加的な検証のための条件となってセキュリティが向上する。またさらに本発明は、クライアント識別情報として、認証を受けようとするユーザの生体識別情報を取得するように構成できるため、本人であることを表わす生体情報が認証の際の追加的な検証のための条件となってセキュリティが向上する。これから発明の実施形態の説明を行う。まず、オンライン、オフラインという用語の意義を説明する。オンラインとは、ユーザがオフライン二要素認証クライアント151を使用して、オフライン認証支援サーバ101と同じネットワークに適正なネットワークユーザとして接続している状態のことである。ユーザがオフライン二要素認証クライアント151をオンラインの状態で使用するためにはそのネットワークのリソースの使用許可を得る必要があるため、ネットワークがドメインとして管理されている場合には、当該ユーザのそのドメインネットワークへのログオン認証が必要である。オフラインとは、ユーザがオフライン二要素認証クライアント151を適正なユーザとして使用しているが、オフライン認証支援サーバ101と同じネットワークには接続していない状態のことである。オフラインの状態であっても、Windows登録商標。以下、同じネットワークの場合はドメインネットワークのユーザとしてログオンすることも可能であり、また、ローカルのコンピュータのユーザとしてログオンすることも可能である。ユーザがオフライン二要素認証クライアント151をオフラインの状態で使用するためには、当該ユーザは、そのドメインネットワークまたはそのコンピュータへのログオン認証を受けることが必要である。次に、マトリクス認証に特有の技術についての説明をする。マトリクス認証は、所定パターンに配列した複数のパターン要素パターン要素列190を認証を受けるユーザが使用するクライアント装置に提示パターン191として提示し、当該提示パターン191に含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルール102bを当該ユーザのパスワードとするものである。[提示パターンとパターン要素]提示パターン191とは、パターン要素を所定パターンに配列したものである。所定パターンとしては、縦m個×横n個のそれぞれの位置に全体が方形を形成するように配置したマトリクス、そのようなマトリクスを複数並べたもの、などが典型的であるが、その他に任意の図形の形状とすることができる。本明細書では、そのような典型的なマトリクス形状以外の形状の提示パターンを使用した場合も、マトリクス認証方式と呼ぶことにする。所定パターンとしては、規則的な形状や印象的な形状が、ユーザの記憶に残りやすく、従ってユーザがパスワードであるワンタイムパスワード導出ルール102bを記憶しやすいために好適である。パターン要素とは、提示パターン内において所定パターンを構成するように所定位置に配置される要素であり、好適には0から9までの1桁の数字であるが、他に、アルファベット、記号、などの任意のキャラクターとすることができる。なお、記号としては、PCの標準のキーボードに割り当てられている、-、、=、_、、、、、などの記号が特に好適である。キャラクターとして、図形、イラスト、写真などの図柄を使用することもできる。好適には、同じパターン要素は、提示パターン内において、複数個表示される。このようにすると、パスワードであるワンタイムパスワード導出ルール102bと、ワンタイムパスワード導出ルール102bを提示パターン191に適用した結果であるワンタイムパスワード192とは多対1の対応となり、ワンタイムパスワード192の入力時に自動的にハッシュ化がなされることになる。そのため、1つのワンタイムパスワード192だけからは、提示パターン191が特定されていたとしても、ワンタイムパスワード導出ルール102bを特定することはできない。本実施例では、図8などに示すような、0から9までの1桁の数字をパターン要素とし、それぞれのパターン要素を4つの4×4のマトリクスからなる所定パターン191pに配列したものを提示パターン191とする。なお、携帯電話機などのように画面の面積が小さい場合は、4×4のマトリクスの数を3つなどに減少させた提示パターンを使用すると好適である。[パターン要素列]パターン要素列190は、提示パターン191を生成するために所定パターン191pに配置する要素の内容を表わすデータであり、典型的には、その提示パターン191に含まれるすべてのパターン要素を順番に並べたものである。パターン要素列190は、提示パターン191が生成される前に生成される。なお、パターン要素列190は、パターン要素が順番に並べられた1つの文字列でなければならないというものではなく、1つの提示パターン191に含まれるすべてのパターン要素の情報を含むデータを意味するものである。従って、パターン要素列190に含まれるそれぞれのパターン要素を提示パターン内のそれぞれの位置に対応付けられる限り、パターン要素列190に含まれるパターン要素の順番は自由である。またパターン要素列190は、複数のデータに分割されていても構わない。本発明に係るオフライン二要素ユーザ認証システム100は、大きく、ユーザのオフラインでの認証を支援するオフライン認証支援サーバ101と、オフライン認証支援サーバ101とネットワークで接続可能であるがネットワーク非接続状態であるオフラインでユーザの認証を行える端末であるオフライン二要素認証クライアント151とから構成される。オフライン二要素ユーザ認証システム100においては、パターン要素列190は、オフライン二要素認証クライアント151の内部で生成されて提示パターン191の生成に使用されるのみであって、パターン要素列190がネットワークを通じて送信されることはない。[ワンタイムパスワード導出ルール]ワンタイムパスワード導出ルール102bは、提示パターン191に含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワード192を生成するためのルールであり、ユーザのパスワードとして機能するデータである。パターン要素に対して適用するルールとは、典型的には、どの位置のパターン要素をどの順番で選択するのかということである。この場合、ワンタイムパスワード導出ルール102bは、提示パターン191に含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素が選択される順番との組み合わせの情報である。またワンタイムパスワード導出ルール102bは、提示パターン191に基づかないで入力される固定の数字などのキャラクターの情報を含んでいてもよく、この場合、ワンタイムパスワード導出ルール102bは、提示パターン191に含まれる選択されるパターン要素のそれぞれの位置および当該提示パターン191に基づかないで入力される固定のキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせの情報である。すなわち、提示パターン191に基づかない固定パスワード成分をワンタイムパスワードに含めることができる。図7に典型的なワンタイムパスワード導出ルール102bの構造を示す。本実施例では、0から9までの1桁の数字をパターン要素とし、それぞれのパターン要素を4つの4×4のマトリクスからなる所定パターン191pのそれぞれの要素の位置に配置した提示パターン191に対するワンタイムパスワード導出ルール102bが例示されている。図7においては、所定パターン191pのそれぞれの要素の位置は、01から64までの数字で区別されて表示されている。提示パターン191が認証を受けようとするユーザに対して表示されるときには、所定パターン191pのそれぞれの要素の位置には0から9までの1桁の数字が表示される。入力されるワンタイムパスワード192は、好適には、提示パターン191に基づく数字と、それに基づかないで入力される固定の数字とを使用するものである。提示パターン191に含まれるパターン要素の数は64個であるため、提示パターン191に含まれるパターン要素のそれぞれの位置が選択されたことは、それぞれの位置に割り当てられた01から64までの2桁の数字によって表わされる。そして、提示パターン191に基づかないで入力される固定の数字については、最初にそのような固定の数字であることを示す9の数字が割り当てられ、次に入力される1桁の数字が割り当てられた、2桁の数字によって表わされる。図7の例では、ワンタイムパスワード192の最初の4つの数字は、提示パターン191の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール102bのそれらに対応する部分として、それらの位置を表わす数字である01、16、29、20がその順番に配置される。選択されたパターン要素は、キーボード196によって入力される。ワンタイムパスワード192のその次の2つの数字は、提示パターン191に基づかないで、キーボード196などから入力される固定パスワード成分である。ワンタイムパスワード導出ルール102bのそれらに対応する部分として、固定パスワード成分であることを表わす9の数字の後に、入力される数字である2および9がそれぞれ付加された92、99が続いてその順番に配置される。ワンタイムパスワード192のその次の1つの最後の数字は、提示パターン191の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール102bのそれに対応する部分として、それの位置を表わす数字である33が続いて配置され、ワンタイムパスワード導出ルール102bはここで終了する。ワンタイムパスワード導出ルール102bには、それの終了点をユニークに特定するエンドマーク、例えば00などの数字をその最後にさらに付加してもよいし、あるいは、ワンタイムパスワード導出ルール102bの全体の長さを示す数値をそれに関連付けていてもよい。[パターンシード値]パターンシード値183は、所定の変換規則により変換されることによって、1つの提示パターン191に含まれるパターン要素をユニークに決定する値である。パターンシード値183そのものは、所定の発生規則により所定の範囲内において発生されられる。後述するが、本発明のパターンシード値183は、所定の変換規則を適用して1つの提示パターン191に含まれるパターン要素を生成する際に、さらに他の要素の情報と組み合わせられる点が重要な特徴である。オフライン二要素認証クライアント151は、提示パターン191を表示するために、それを生成するための情報を記憶しておく必要がある。オフライン認証クライアント151が、提示パターン191を構成するパターン要素列190をそのまま記憶するような構成だと、悪意の第三者がオフライン二要素認証クライアント151を解析すると、パターン要素列190を特定され、従って、提示パターン191を特定される可能性がある。これは、セキュリティ上、あまり好ましいことではない。これを防止するためには、パターン要素列190を記憶させないことが考えられる。その一方で、オフライン二要素認証クライアント151で認証を実施するためには、提示パターン191を生成して表示できなければならない。パターンシード値183は、このような相反する要求を解決するものであり、所定の変換規則を適用することにより提示パターン191をユニークに決定するが、パターン要素列190そのものではない情報である。オフライン二要素認証クライアント151には、パターン要素列190そのものは記憶されず、それに代えてパターンシード値183が記憶される。そしてオフライン二要素認証クライアント151においては、記憶しているパターンシード値183に所定の変換規則を適用することにより提示パターン191を生成することできる。所定の変換規則とは、例えばハッシュ関数演算などが考えられる。このように、パターン要素列190そのものが記憶されていないため、パターンシード値183を使用することにより、セキュリティが向上する。そして本発明においては、パターンシード値183は、所定の変換規則により1つの提示パターン191に含まれるパターン要素を生成する際に、さらに他の要素の情報と組み合わされる。他の要素の情報としては、認証を受けようとするユーザが使用しているオフライン二要素認証クライアント151を識別するクライアント識別情報102cが使用される。このようにすると、クライアント識別情報102cを出力する機器を保有していることが認証の際の追加的な条件となり、セキュリティが向上する。パターンシード値183は、クライアント識別情報102cと組み合わされて1つの提示パターン191に含まれるパターン要素をユニークに決定する。このようにすることによって、提示パターン191は、パターンシード値183だけでなく、クライアント識別情報102cの情報も組み込んだものとなるため、ワンタイムパスワード192が正しいクライアント識別情報102cが使用された提示パターン191に基づいて入力されたものであるかどうかを検証することが可能となる。そして、本発明においては、提示パターン191を、オフライン二要素認証クライアント151を識別するクライアント識別情報102cを使用して攪乱することによって、提示パターン191にはクライアント識別情報102cの情報も組み込まれることになる。そしてワンタイムパスワード192は、そのようにして生成された提示パターン191に、ユーザに関連付けられたワンタイムパスワード導出ルール102bを適用したものである。このように、本発明においては、ワンタイムパスワード192が、正しいワンタイムパスワード導出ルール102bに基づいた正しいユーザによって入力されたものであるかどうかということと、正しいユーザが有する正しいクライアント識別情報102cを有するオフライン二要素認証クライアント151から入力されたものであるかどうかということという、2つの要素に基づく認証の成否を規定する情報を含むことになる。このようにして、二要素認証を行うことができるようになるため、セキュリティが劇的に向上する。さらに本発明においては、クライアント識別情報102cという第2の要素を使用した認証を行うにもかかわらず、ユーザ認証に際してクライアント識別情報102cそのものを検証するものではないことが大きな特徴である。すなわち、認証のための検証コードが漏洩したとしても、クライアント識別情報が漏洩したことにはならない。そのため、認証のための検証コードが漏洩した場合でも、提示パターンやワンタイムパスワードの生成ルールの推定が不可能であり、正しいワンタイムパスワードが推測される可能性もなく、強固なセキュリティが得られる。このように、第2の要素であるクライアント識別情報102cが漏洩する可能性を発生させることなく、その第2の要素を認証のために使用する要素として追加することが可能となる。また、提示パターン191を生成する際に、複数のクライアント識別情報102cを同時に使用することも可能である。この場合は、それらの複数のクライアント識別情報102cとパターンシード値183とを組み合わせることによって提示パターン191に含まれるパターン要素を決定することになる。それらの複数のクライアント識別情報102cが異なるソースに由来するものであれば、それらが同じオフライン二要素認証クライアント151に関連付けられたものであるとしても、認証のための要素の数が実質的に三要素以上の多要素に拡張されることになり、さらに強固なセキュリティが得られる。なお、提示パターン191を生成する際に、他の情報をさらに使用して提示パターン191をさらに攪乱することも有用である。そのような他の情報としては、例えば、ユーザID102aを使用することが可能である。この場合、パターンシード値183は、ユーザID102aおよびクライアント識別情報102cと組み合わされて1つの提示パターン191に含まれるパターン要素をユニークに決定することになる。ユーザID102aはユーザに由来する情報であるため、そのような処理は認証のための要素を増加させるものとは言えない。しかし、パターンシード値183から提示パターン191を生成するためには、さらにユーザID102aを使用した演算が必要になるため、ワンタイムパスワード192から提示パターン191を類推することが一層困難になる。したがって、ユーザID102aを提示パターン191の生成のためにさらに使用することによって、セキュリティをさらに向上させることができる。パターンシード値183は、典型的には、乱数発生アルゴリズムによって発生させられた所定の範囲内の数値である。パターンシード値183は、所定の範囲内の数値であれば、乱数発生アルゴリズム以外の発生規則、例えば、所定の初期値からの所定値ごとのカウントアップやカウントダウンで発生させられてもよい。[ワンタイムパスワード]ワンタイムパスワード192は、認証を受けようとするユーザが提示パターン191に対して自己のワンタイムパスワード導出ルール102bを適用することによって生成入力される使い捨てのパスワードである。図8は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。ユーザは、提示パターン191に対してワンタイムパスワード導出ルール102bを適用することによって、マトリクス上の所定の位置に表示された数字を順番に抽出してワンタイムパスワード192を生成し、それをオフライン二要素認証クライアント151に入力する。また、提示パターン191に基づかない固定の数字を含めて入力することも可能である。すなわち、固定パスワードをワンタイムパスワードに含めることもできる。図7において破線で示した矢印と丸は、提示パターン191に基づくワンタイムパスワードをキーボード196から入力することを表わしている。図8の例では、提示パターン191に基づいて2504を入力し、次に提示パターン191に基づかない固定の数字として29を入力し、次に提示パターン191に基づいて0を入力することによって、ワンタイムパスワード192として2504290が入力されている。[検証コード]検証コード193は、入力されたワンタイムパスワード192の正当性を検証するためのデータである。検証コード193は、オフライン二要素認証クライアント151において複数のパターンシード値183に基づいて表示することが可能な複数の提示パターン191のそれぞれに含まれる特定の位置のパターン要素に対してユーザが自己のワンタイムパスワード導出ルール102bを適用した結果に対して、逆算を防止するために一方向関数演算を実施してハッシュ化したものである。すなわち、検証コード193は、認証を受けようとするユーザに関連付けられた正しいワンタイムパスワード導出ルール102bが正しい提示パターン191に適用された結果である正しいワンタイムパスワード192と同じ値に一方向関数演算を実施したものである。従って、検証コード193は、表示可能な提示パターン191と同じ数だけ生成されてオフライン認証クライアント151に記憶される。オフライン認証クライアント151におけるユーザ認証時には、提示された提示パターン191に基づいて入力されたワンタイムパスワード192に検証コード193の生成時に使用したものと同じ一方向関数演算を実施した値と、提示パターン191に対応する検証コード193とを比較することによって、ワンタイムパスワード192の正当性が検証される。ここで、検証コードをハッシュ化していないものとしても、当然にワンタイムパスワード192の正当性を検証することはできる。しかし、そのような検証コードは正しいワンタイムパスワード192と等しいものであるため、クライアントPCが悪意の第三者に解析されて、そのような検証コードがクライアント識別情報と共に漏洩した場合には、提示パターン191と正しいワンタイムパスワード192のペアが複数知られる可能性があり、パスワードであるワンタイムパスワード導出ルール102bが特定されてしまう可能性があるという問題がある。検証コード193をハッシュ化したものとすることによって、検証コード193からは正しいワンタイムパスワード192を特定することができなくなるので、クライアントPCが悪意の第三者に解析されたとしても、パスワードであるワンタイムパスワード導出ルール102bが漏洩することはない。[一方向関数およびハッシュ関数]一方向関数とは、ある入力値に適用した出力値は簡単に計算できるが、その出力値からは元の入力値を求めることは極めて困難な関数のことをいう。ハッシュ関数とは、一方向関数の特徴である一方向性を有し、さらに、元の入力値が異なる場合に出力値が同一になる確率が極めて小さいという衝突耐性を有する関数をいう。ハッシュ関数は、通常、入力値にかかわらず一定範囲の出力値を生成する。一方向関数はハッシュ関数を含む概念であり、一方向関数とハッシュ関数はほぼ同様に使用することができるが、入力値の範囲が大きいなどの理由で、より高い衝突耐性が必要とされる場合には、ハッシュ関数を使用すると好適である。本発明においては、一方向関数に代えてハッシュ関数を使用することは当然に可能であるが、ハッシュ関数に代えて一方向関数を使用することも可能である。[本発明に係るユーザ認証方法]これから図面を参照して本発明に係るユーザ認証方法の説明を行う。図1はハードウェア構成図、図2はブロック図、図3から4は動作フロー図である。まず、本発明に係るユーザ認証方法の概要について説明する。本発明に係るユーザ認証方法は、上述したような、チャレンジレスポンス方式の認証方法の一種であるマトリクス認証である。本発明に係るユーザ認証方法では、いずれの実施形態においても、所定パターンに配列した複数のパターン要素をオフライン二要素認証クライアント151において認証を受けるユーザに提示パターン191として提示し、当該提示パターン191に含まれる特定の位置のパターン要素に対してユーザが適用することによりワンタイムパスワード192を生成するためのワンタイムパスワード導出ルール102bを当該ユーザのパスワードとするものである。オフライン二要素認証クライアント151においてユーザに提示される提示パターン191を生成する際に使用される情報であるパターンシード値183は、オフライン認証支援サーバ101においてあらかじめ複数生成され、オフライン二要素認証クライアント151にネットワークあるいは他の記憶媒体を介して伝達されてあらかじめ記憶される。オフライン二要素認証クライアント151は、クライアント識別情報102cを取得する。提示パターン191は、パターンシード値183と取得したクライアント識別情報102cとに基づいて所定の生成規則により生成される。オフライン二要素認証クライアント151に入力されたワンタイムパスワード192が正当であるかどうかを検証するための検証コード193は、パターンシード値183のそれぞれと取得されたクライアント識別情報102cとに基づいて生成されるパターン要素列190から構成される提示パターン191のそれぞれに当該ユーザのパスワードであるワンタイムパスワード導出ルール102bを適用した結果に一方向関数演算を実施することによってオフライン認証支援サーバ101であらかじめ複数生成され、オフライン認証クライアント151にネットワークあるいは他の記憶媒体を介して伝達されて記憶される。オフライン二要素認証クライアント151において、複数が生成可能な提示パターン191の中から1つが選択されて表示される。ユーザは表示された提示パターン191に対して自分のワンタイムパスワード導出ルール102bを適用することによってワンタイムパスワード192を入力する。オフライン二要素認証クライアント151は、入力されたワンタイムパスワード192に検証コード193の生成時に使用したものと同じ一方向関数演算を実施したものを、それに対応する検証コード193と比較し、それらが等しければ当該ユーザに対する認証が成功したものと判定し、認証成功時の所定の動作を開始させる。[オフライン二要素ユーザ認証システム100のハードウェア構成]次に、オフライン二要素ユーザ認証システム100の構成の説明をする。図1を参照すると、オフライン二要素ユーザ認証システム100は、大きく、オフライン認証支援サーバ101とオフライン二要素認証クライアント151とから構成される。オフライン認証支援サーバ101は、CPU101a、RAM101b、記憶装置101c、ユーザインターフェースI/F101d、外部/ネットワークインターフェースI/F101eから構成され、それらがバスを通じて接続されている。記憶装置101cは、その記憶領域にOS101c1、ユーザ認証支援アプリケーション101c2を記憶し、またその記憶領域にパスワード記憶部102を含む。パスワード記憶部102は、ユーザID102a、ワンタイムパスワード導出ルール102b、クライアント識別情報102cをお互いに関連付けて記憶する。オフライン二要素認証クライアント151は、CPU151a、RAM151b、記憶装置151c、ユーザインターフェースI/F151d、外部/ネットワークインターフェースI/F151eから構成され、それらがバスを通じて接続されている。記憶装置151cは、その記憶領域にOS151c1を記憶し、またその記憶領域に検証データ記憶部161を含む。OS151c1は、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5を含む。検証データ記憶部161は、複数のパターンシード値183、複数の検証コード193を記憶する。それらの複数のパターンシード値183、複数の検証コード193をまとめて検証データ194と呼ぶ。オフライン認証支援サーバ101は、オフライン二要素ユーザ認証システム100において、オフライン二要素認証クライアント151においてオフラインの二要素ユーザ認証が実施できるために必要なデータをあらかじめ生成する構成要素である。オフライン認証支援サーバ101は、OS101c1、ユーザ認証支援アプリケーション101c2などがインストールされた、サーバあるいはパーソナルコンピュータなどの形態である。CPU101aは、OS101c1、ユーザ認証支援アプリケーション101c2などをOS101c1上で実行してオフライン認証クライアントでのユーザ認証を支援する情報処理を行うプロセッサである。RAM101bは、記憶装置101cに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがCPU101aによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置101cは、ソフトウェアやデータなどの情報を記憶管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置101cは、好適には、OS101c1、ユーザ認証支援アプリケーション101c2のプログラムのファイルを記憶しており、それらのプログラムはRAM101b上に読み出されて実行される。記憶装置101cは、OS101c1、ユーザ認証支援アプリケーション101c2のプログラムに関しては、それをROMに記憶した形態であってもよい。この場合、そのようなROMはCPU101aなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザI/F101dは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的にはキーボード196、ソフトウェアキーボードなどのキー入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアI/Fとから構成される。キーボード196は、テンキー、標準のフルキーボードなど、ワンタイムパスワードを構成するパターン要素の入力ができる限り、任意の形態のものを使用できる。ソフトウェアキーボードは、ディスプレイの画面上にキーボードのシンボルを表示させ、タッチパネル、マウス、トラックボールなどのポインティングデバイスを使用してキーのシンボルを選択させることによりキー入力を受け付ける。外部/ネットワークI/F101eは、USBメモリやフロッピー登録商標ディスクドライブなどの記憶装置やネットワークに接続して情報の入出力を行うためのI/Fである。OS101c1、ユーザ認証支援アプリケーション101c2は、それらが組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、OS101c1がユーザ認証支援アプリケーション101c2の機能を包含していてもよい。また、ユーザ認証支援アプリケーション101c2が、他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。オフライン認証支援サーバ101は、オフライン二要素認証クライアント151に対して何らかの形態で検証データ194を伝達することができれば、ネットワークで接続されていても、されていなくてもよい。しかし好適には、オフライン認証支援サーバ101は、オフライン二要素認証クライアントとネットワークで接続することが可能であり、ネットワーク接続されているオンライン状態において、あらかじめ検証データ194をオフライン二要素認証クライアント151に伝達する。ネットワークは、好適には、TCP/IPベースのプロトコルで動作するインターネットあるいはイントラネットである。イントラネットにおいて、オフライン二要素認証クライアント151がクライアント用WindowsOSで動作している場合には、ネットワークはTCP/IPベースのプロトコルで動作するWindowsのドメインネットワークとすることができる。なお、本明細書ではOSとしてWindowsを例示して説明しているが、他のOS、例えば、MacOS登録商標、Linux登録商標、Unix登録商標などを使用することも可能である。オフライン認証支援サーバ101がオフライン二要素認証クライアント151とネットワークで接続される場合は、オフライン認証支援サーバ101は、典型的にはインターネットあるいはイントラネットなどのネットワーク上に配置され、当該ネットワークを通じてアクセスしてきたオフライン二要素認証クライアント151に対してユーザ認証のための検証データ194を提供するリソースを提供するWebサーバの形態である。この場合、好適には、オフライン二要素認証クライアント151をオフライン認証支援サーバ101と同じネットワークに接続するためのネットワークへのログオン認証時に検証データ194がオフライン二要素認証クライアント151に伝達される。好適には、オフライン二要素認証クライアント151のログオン時に、本発明に係るユーザ認証方法を実施するプログラムが起動してログオン認証画面を表示するようにし、そのログオン認証画面においてはネットワークへのログオンとコンピュータへのログオンとが選択できるように構成する。このように構成すると、オンラインとオフラインのログオン認証をシームレスに実施することができるようになるとともに、オフライン二要素認証クライアント151のネットワークへのログオン認証時において、検証データ194の生成と伝達の要求をHTTPプロトコル、HTTPSプロトコルなどを使用してオフライン認証支援サーバ101に送信することができる。従って、オフライン二要素認証クライアント151は、ネットワークへのログオン認証が成功した直後に、ネットワークを通じてオフライン認証支援サーバ101から簡便かつ確実に検証データ194を取得することができる。他には、オフライン認証支援サーバ101は、検証データ194のデータを添付した電子メールをユーザに送信するメールサーバの形態とすることもできる。この場合、オフライン二要素認証クライアント151は、オフライン認証支援サーバ101からユーザ宛に送信された電子メールが蓄積されているサーバにアクセスして当該電子メールを受信し、当該電子メールに添付されている検証データ194を取得する。電子メールに添付されているデータは、検証データ194そのもののファイルであってもよいし、検証データ194をインストールするための実行形式のファイルであってもよい。オフライン認証支援サーバ101は、それぞれのユーザのメールアドレスを記憶していると好適である。電子メールによる検証データ194の伝達は、オフライン認証支援サーバ101からのネットワークや記憶媒体を通じてデータの伝達が、ユーザの長期出張などで困難な場合に有効である。オフライン認証支援サーバ101がオフライン二要素認証クライアント151とネットワークで接続されない場合は、オフライン認証支援サーバ101は、検証データ194を外部/ネットワークI/F101eを通じてフロッピー登録商標ディスク、USBメモリなどの記憶媒体に出力する。出力するデータは、検証データ194そのもののファイルであってもよいし、検証データ194をインストールするための実行形式のファイルであってもよい。オフライン二要素認証クライアント151は、検証データ194が記憶された記憶媒体を外部/ネットワークI/F151eを通じて接続し、そこから検証データ194を取得する。上述した、オフライン認証支援サーバ101が検証データ194を生成し、オフライン認証クライアント151が生成された検証データ194を取得して記憶することは、ユーザがオフライン認証クライアント151で認証を受けようとする前にあらかじめ実行される必要がある。OS101c1は、オフライン認証支援サーバ101のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムである。ユーザ認証支援アプリケーション101c2は、OS101c1上で動作する、パターンシード値183および検証コード194を生成してそれをオフライン二要素認証クライアント151に伝達するためのアプリケーションソフトウェアである。オフライン認証支援サーバ101がWebサーバの形態である場合、ユーザ認証支援アプリケーション101c2は、典型的には、CGIで呼び出される形態かサーブレットの形態の認証支援プログラムを備えた、検証データ194をインターネットまたはイントラネットのWebを介して提供するWebサーバプログラムである。オフライン認証支援サーバ101がメールサーバの形態である場合、ユーザ認証支援アプリケーション101c2は、典型的には、検証データ194を生成するプログラムを備えた、検証データ194を添付したメールをインターネットまたはイントラネットを介して提供するメールサーバプログラムである。パスワード記憶部102は、典型的にはハードディスクドライブなどの一領域であり、好適にはデータは暗号化ファイルとしてパスワード記憶部102に記憶される。ユーザID102aは、ユーザをユニークに識別するためのデータである。ユーザID102aは、任意の文字列を使用することができる。ワンタイムパスワード導出ルール102bは、上述したように、提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのルールであり、ユーザのパスワードとして機能するデータである。クライアント識別情報102cは、認証を受けようとするユーザが使用しているオフライン二要素認証クライアント151を識別するためのデータであり、提示パターンを生成する際に、パターンシード値に組み合わされて使用されるデータである。オフライン二要素認証クライアント151は、オフラインユーザ認証システム100において、ユーザからの認証要求に応答してオフラインの状態で認証を実施する構成要素であり、OS151c1、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5などがインストールされた端末であり、具体的には、PC、携帯電話機、PDAなどの形態である。CPU151aは、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5などをOS151c1とともに実行して、ユーザ認証に関する情報処理を行うプロセッサである。RAM151bは、記憶装置151cに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがCPU151aによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置151cは、ソフトウェアやデータなどの情報を記憶管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置151cは、好適には、OS151c1、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5のプログラムのファイルを記憶しており、それらのプログラムはRAM151b上に読み出されて実行される。なお、記憶装置151cは、OS151c1、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5に関しては、そのプログラムをROMに記憶した形態であってもよい。この場合、そのようなROMはCPU151aなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザI/F151dは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的には、図示していないが、キーボード196やソフトウェアキーボードなどのキー入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアI/Fとから構成される。外部/ネットワークI/F151eは、USBメモリやフロッピー登録商標ディスクドライブなどの記憶装置や外部通信インターフェースを搭載した外部機器やネットワークに接続して情報の入出力を行うためのI/Fである。外部/ネットワークI/F151eを通じて、外部通信インターフェースを搭載した外部機器からはクライアント識別情報を取得することができる。また、外部/ネットワークI/F151eを通じて、ネットワークを経由して認証サーバ101と接続することができる。外部通信インターフェースとしては、USB、BlueTooth登録商標、無線LAN、赤外線通信、Felica登録商標やRFIDの非接触通信、などの各種の通信インターフェースを使用することができ、接続される外部機器としては、USBメモリ、無線通信用データカードUSB接続、PCカード接続、ExpressCard接続、など、FelicaやRFIDなどのICカード、携帯電話機、生体認証情報指紋、虹彩、静脈など読み取り機などを使用することができる。オフライン二要素認証クライアント151をオフライン認証支援サーバ101とネットワークで接続しない形態においては、検証データ要求モジュール151c2は必ずしも必要ない。なお、オフライン二要素認証クライアント151は、ユーザが使用するオフライン二要素認証クライアント151に関連付けられたクライアント識別情報102cを記憶したクライアント識別情報記憶部172と接続されている。なお、本発明のオフライン二要素認証クライアント151は、クライアント識別情報102cを取得することができればよく、クライアント識別情報記憶部172を備えている必要はない。クライアント識別情報記憶部172がオフライン二要素認証クライアント151と同じ筐体内に存在することもあり得るが、本発明のオフライン二要素認証クライアント151は、何らかの手段によりクライアント識別情報102cを取得できれば十分であり、そのようなクライアント識別情報記憶部172を必須の構成としては含まない概念である。クライアント識別情報102cとしては、ユーザが使用するオフライン二要素認証クライアント151のハードウェアに内蔵された情報ハードウェア関連情報、ユーザが使用するオフライン二要素認証クライアント151のソフトウェアに付随する情報ソフトウェア関連情報、ユーザが使用するオフライン二要素認証クライアント151に接続された外部機器から取得される情報外部機器関連情報、ユーザが使用するオフライン二要素認証クライアント151に内蔵または接続された生体認証情報読み取り器から取得されるユーザの生体情報生体認証情報などを使用することができる。ハードウェア関連情報については、CPU等のハードウェア構成要素シリアル番号、ネットワークインターフェースカードのMACアドレス、ハードディスクのシリアル番号、などをクライアント識別情報102cとして使用することができる。この場合、クライアント識別情報記憶部172は、CPU等のハードウェア構成要素内のシリアル番号IDの記録領域、ネットワークインターフェースカードのMACアドレスの記憶領域、ハードディスクのシリアル番号の記憶領域、などとなる。ハードウェア関連情報は、そのハードウェアに対して適切な読み出し操作を行うことにより、それを記憶したハードウェアからバスを通じて取得される。ソフトウェア関連情報については、Windows登録商標OSのGUIDGloballyUniqueIDentifierやプロダクトIDやプロダクトキー、TCP/IPネットワークのIPアドレス、などをクライアント識別情報102cとして使用することができる。この場合、クライアント識別情報記憶部172は、Windows登録商標OSのGUIDの情報を記憶したハードディスク上のファイルやメモリ上の領域、WindowsOSのプロダクトIDとプロダクトキーの情報を記憶したハードディスク上のファイルやメモリ上の領域、TCP/IPネットワークのIPアドレスの設定情報を記憶したハードディスク上のファイルやメモリ上の領域、などとなる。ソフトウェア関連情報は、OSのコマンドを使用することにより、それを記憶したハードディスク上のファイルやメモリ上の領域から取得される。外部機器関連情報については、USBメモリのシリアル番号、無線通信用データカードや携帯電話機のシリアル番号や契約者IDや電話番号、Bluetoothや無線LAN搭載各種機器のシリアル番号、FelicaやRFIDなどのICカードのID番号シリアル番号、などをクライアント識別情報102cとして使用することができる。この場合、クライアント識別情報記憶部172は、USBメモリのシリアル番号の記憶領域、無線通信用データカードや携帯電話機のシリアル番号や契約者番号や電話番号の記憶領域、Bluetoothや無線LAN搭載各種機器のシリアル番号の記憶領域、FelicaやRFIDなどのICカードのID番号シリアル番号の記憶領域、などとなる。外部機器関連情報は、その外部機器に対して適切な読み出しコマンドを送信することにより、それを記憶した外部機器から外部/ネットワークI/F151eを通じて取得される。生体認証情報については、指紋、虹彩、静脈などの本人確認に適した所定の生体のパターンを生体認証情報読み取り機によって読み取ることによって出力される生体認証情報をクライアント識別情報102cとして使用することができる。この場合、クライアント識別情報記憶部172は、ユーザの所定の生体のパターンを読み取って生体認証情報を出力している際の、生体認証情報読み取り機における情報処理手段となる。すなわち、固定的なユーザの所定の生体のパターンを生体認証情報に変換することが、クライアント識別情報102cをクライアント識別情報記憶部172から読み出すことに相当する。生体認証情報は、生体認証情報読み取り機に対して適切な読み取りコマンドを送信することにより、ユーザの所定の生体のパターンを読み取っている生体認証情報読み取り機から、バス生体認証情報読み取り機が内蔵の場合または外部/ネットワークI/F151e生体認証情報読み取り機が外部に接続されている場合を通じて取得される。OS151c1、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5は、それらの一部または全部が組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5が一体であってもよい。また、それらが独立したアプリケーションであっても、あるいは、他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。OS151c1は、オフライン二要素認証クライアント151のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムであり、オフライン認証クライアント151のハードウェアに応じた基本プログラムである。OS151c1は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。検証データ要求モジュール151c2は、オフライン二要素認証クライアント151がオフライン認証支援サーバ101と同じネットワークにログオンする際に、オフライン認証支援サーバ101に対して検証データ194の生成および送信を要求するプログラムであり、典型的には、OS151c1によってネットワークへのログオン認証時に呼び出されるモジュールの形態である。シード値選択パターン生成モジュール151c3は、OS151c1とともに動作する、検証データ194に含まれる複数のパターンシード値183から1つのパターンシード値183を所定の選択規則によって選択し、それに基づいてパターン要素列190を生成し、さらに提示パターン191を生成するプログラムであり、典型的には、OS151c1によってコンピュータへのログオン認証時に呼び出されるモジュールの形態である。生成された提示パターン191は、OS151c1によって画面に表示される。検証コード特定認証モジュール151c4は、OS151c1とともに動作する、検証データ194に含まれる複数の検証コード193から表示されている提示パターン191に対応する1つの検証コード193を特定し、認証を受けようとするユーザがOS151c1を通じて入力したワンタイムパスワード192と特定された検証コード193とを比較し、それらが等しければ当該ユーザに対する認証を成功させるプログラムであり、典型的には、OS151c1によってコンピュータへのログオン認証時に呼び出されるモジュールの形態である。検証データ要求モジュールc2、提示パターン選択生成モジュールc3、検証コード特定認証モジュールc4、クライアント識別情報取得モジュール151c5は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。クライアント識別情報取得モジュール151c5は、ユーザが使用しているオフライン二要素認証クライアント151からクライアント識別情報102cを取得するためのプログラムであり、典型的には、OS151c1によってコンピュータへのログオン認証時に呼び出されるモジュールの形態である。典型的には、OS151c1はクライアント用WindowsOSであり、検証データ要求モジュール151c2はネットワークへのログオン認証時などのオンラインのときに検証データ要求を行い、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、及びクライアント識別情報取得モジュール151c5はコンピュータへのログオン認証画面に提示パターン191を表示させてユーザに認証を要求し、本願発明に係る認証方法に基づいてユーザの認証を実施する。このように、標準のWindowsへのログオン認証に代えて、本願発明に係る認証方法に基づくユーザ認証を実施させると好適である。標準のWindowsへのログオン認証画面の変更は、具体的には以下のようにして実施する。ここでは、WindowsXPを例にして説明する。まず、検証データ要求モジュールc2、提示パターン選択生成モジュールc3、検証コード特定認証モジュールc4、およびクライアント識別情報取得モジュール151c5の機能を実現するプログラムであるログオン認証モジュールをWindows用のDLLファイルとして作成する。ここでは、SmxGinadllという名前のDLLファイルを作成する。ここで、Windowsへのログオン認証画面のプログラムは、以下に示すレジストリのロケーションにおいてGinaDLLという名前のキーのデータとして指定されている。HKEYLOCALMACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon標準のログオン認証のモジュールはmsginadllというDLLファイルであり、それが前述したGinaDLLという名前のキーのデータに設定されている。当該キーのデータをSmxGinadllに書き換えると、本願発明に係る認証方法を実施するログオン認証モジュールSmxGinaDLLがログオンなどの認証時に呼び出されることになる。図9は、オフライン二要素ユーザ認証システム100におけるログオン認証画面197Aおよび197Bのイメージ図である。Windowsのログオン時にログオン認証モジュールSmxGinaDLLが起動させられることによって、まず、ログオン認証画面197Aが表示させられる。ログオン認証画面197Aには、ユーザ名入力フィールド、ログオン先入力フィールドが表示される。オフライン二要素認証クライアント151がドメインネットワークに接続された状態で、ログオン先にドメイン名を入力することによってオンラインで使用するためにWindowsのドメインネットワークへのログオン認証を行わせることができる。オフライン二要素認証クライアント151がドメインネットワークに接続されていない状態では、ログオン先にドメイン名を入力することによってドメインネットワークのユーザとしてオフラインでコンピュータを使用するためのログオン認証を行わせることができ、ログオン先にコンピュータ名を入力することによってローカルコンピュータのユーザとしてオフラインで使用するためにコンピュータへのログオン認証を行わせることができる。ユーザがログオン認証画面197Aのユーザ名入力フィールドに自己のユーザIDを入力ユーザID181として入力すると、次に、提示パターン191を含むログオン認証画面197Bが表示される。ログオン認証画面197Bにはパスワード入力フィールドがあり、キーボード196によってワンタイムパスワードとして数字などのキャラクターが入力されると、それに応答してが1つずつ表示される。[オフライン二要素ユーザ認証システム100の機能ブロック構成]図2は、本発明の一実施形態に係るオフライン二要素ユーザ認証システム100のブロック図である。図2は、図1に示したハードウェア構成のオフライン二要素ユーザ認証システム100を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図2において、オフライン認証支援サーバ101は、パスワード記憶部102、要求受付手段103、パターンシード値発生手段104、パターンシード値送信手段105、検証コード生成手段106、検証コード送信手段111から構成される。これらの機能ブロックは、ユーザ認証支援アプリケーション101c2の必要部分がOS101c1の必要部分とともに記憶装置101cからRAM101b上に読み込まれ、それらのソフトウェアがCPU101aによって実行されることによって、RAM101b、記憶装置101c、ユーザI/F101d、外部/ネットワークI/F101eなどのハードウェア要素とも適宜協働して実現されるものである。パスワード記憶部102は、それぞれのユーザに関して、ユーザID102aと、当該ユーザのパスワードであるワンタイムパスワード導出ルール102bと、クライアント識別情報102cとをお互いに関連付けてあらかじめ記憶する構成要素であり、CPU101a、RAM101b、記憶装置101cなどがソフトウェアと協働することによって実現される機能ブロックである。要求受付手段103は、認証を受けることになるユーザのユーザIDの情報を伴う、当該ユーザのための検証データ194の生成と出力の要求である検証データ要求を受け付ける構成要素であり、CPU101a、RAM101b、ユーザI/F101dあるいは外部/ネットワークI/F101eなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ要求はオフライン二要素認証クライアント151からネットワークを通じて受信してもよく、また、オフライン認証支援サーバ101にユーザI/F101dを通じて直接入力されてもよい。パターンシード値発生手段104は、クライアント識別情報102cとともに提示パターンを規定する値であるパターンシード値183を所定の発生規則により複数発生する構成要素であり、CPU101a、RAM101bなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値送信手段105は、発生させられた複数のパターンシード値183を、オフライン二要素認証クライアント151に記憶させるために出力する構成要素であり、CPU101a、RAM101b、ユーザI/F101dあるいは外部/ネットワークI/F101eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値183は、ネットワークを通じてオフライン二要素認証クライアント151に送信されてもよいし、記憶媒体に出力されてもよい。検証コード生成手段106は、要求受付手段103を通じて入力された入力ユーザID181および発生させられたそれぞれのパターンシード値183に基づいて所定のパターン要素列生成規則により生成されるパターン要素列190から構成される提示パターン191のそれぞれに対応させて、当該入力ユーザID181に関連付けられたワンタイムパスワード導出ルール102bをそれぞれの提示パターン191に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード193を複数生成する構成要素であり、CPU101a、RAM101bなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード送信手段111は、生成された複数の検証コード193をオフライン二要素認証クライアント151に記憶させるために出力する構成要素であり、CPU101a、RAM101b、ユーザI/F101dあるいは外部/ネットワークI/F101eなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード193は、ネットワークを通じてオフライン二要素認証クライアント151に送信されてもよいし、記憶媒体に出力されてもよい。オフライン二要素認証クライアント151は、ユーザID入力手段152、検証データ要求手段153、パターンシード値受信手段154、パターン要素列生成手段155、パターン表示手段156、ワンタイムパスワード入力手段157、検証データ記憶部161、検証コード受信手段162、パターンシード値選択手段163、検証コード特定手段164、ユーザ認証手段165、クライアント識別情報取得手段171から構成される。これらの機能ブロックは、検証データ要求モジュール151c2、シード値選択パターン生成モジュール151c3、検証コード特定認証モジュール151c4、クライアント識別情報取得モジュール151c5がOS151c1の必要部分とともに記憶装置151cからRAM151b上に読み込まれ、それらのソフトウェアがCPU151aによって実行されることによって、RAM151b、記憶装置151c、ユーザI/F151d、外部/ネットワークI/F151eなどのハードウェア要素とも適宜協働して実現されるものである。オフライン二要素認証クライアント151がネットワークを通じてオフライン認証支援サーバ101から検証データ194を取得しない場合は、検証データ要求手段153は必ずしも必要ない。ユーザID入力手段152は、認証を受けようとするユーザのユーザIDを入力ユーザID181として入力を受け付ける構成要素であり、CPU151a、RAM151b、ユーザI/F151dなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザがオフライン二要素認証クライアント151をオンラインで使用するためにネットワークへのログオン認証をする場合には、検証データ要求手段153に入力ユーザID181を伝達し、それに検証データ要求を送信させる。検証データ要求手段153は、入力された入力ユーザID181の情報を含む検証データ要求をオフライン認証支援サーバ101に送信する構成要素であり、CPU151a、RAM151b、外部/ネットワークI/F151eなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値受信手段154は、オフライン認証支援サーバ101で生成された検証データ194を構成する複数のパターンシード値183を取得する構成要素であり、CPU151a、RAM151b、ユーザI/F151dまたは外部/ネットワークI/F151eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値183は、オフライン認証支援サーバ101からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターン要素列生成手段155は、後述のパターンシード値選択手段163によって選択されたパターンシード値183と、後述のクライアント識別情報取得手段171によって取得されたクライアント識別情報102cとに基づいて所定の生成規則により提示パターン191に含まれるパターン要素を生成する構成要素であり、CPU151a、RAM151bなどがソフトウェアと協働することによって実現される機能ブロックである。パターン表示手段156は、パターン要素列生成手段155によって生成されたパターン要素列190のパターン要素を所定パターン191pに配列して提示パターン191を生成し、それを画面に表示させる構成要素であり、CPU151a、RAM151b、ユーザI/F151dなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段156は、画面に表示させた提示パターン191などを通じてワンタイムパスワード192のユーザからの入力を受け付ける構成要素であり、CPU151a、RAM151b、ユーザI/F151dなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部161は、あるユーザのための複数のパターンシード値183および複数の検証コード193から構成される検証データ194を、当該ユーザのユーザID102aと関連付けて記憶する構成要素であり、CPU151a、RAM151b、記憶装置151cなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部161が記憶する検証データ194は、パターンシード値受信手段154および検証コード受信手段162から取得され、それらを取得したときに使用されているユーザIDがユーザID102aとして対応付けられて記憶される。検証データ記憶部161は、複数のユーザの検証データ194を記憶することができる。検証コード受信手段162は、オフライン認証支援サーバ101で生成された検証データ194を構成する複数の検証コード193を取得する構成要素であり、CPU151a、RAM151b、ユーザI/F151d、外部/ネットワークI/F151eなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード193は、オフライン認証支援サーバ101からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターンシード値選択手段163は、入力ユーザID181に等しいユーザIDがユーザID102aとして記憶されているかどうかを確認し、入力ユーザID181に等しいユーザIDがあった場合は、そのユーザIDに関連付けられている検証データ194に含まれる複数のパターンシード値183の中から所定の規則により1つを選択することによって、提示パターン191を生成するためのパターンシード値183を選択する構成要素であり、CPU151a、RAM151b、記憶装置151cなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード特定手段164は、パターンシード値選択手段163で選択されたパターンシード値183に対応する検証コード193を特定する構成要素であり、CPU151a、RAM151b、記憶装置151cなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段165は、入力されたワンタイムパスワード192に検証コード193の生成時に使用したものと同じ一方向関数演算を実施したものと、特定された検証コード193とを比較して、それらが等しいときにユーザ認証が成功したものと判定する構成要素であり、CPU151a、RAM151bなどがソフトウェアと協働することによって実現される機能ブロックである。クライアント識別情報取得手段171は、認証を受けようとするユーザが使用するオフライン二要素認証クライアント151を識別するクライアント識別情報102cを取得する構成要素であり、クライアント識別情報102cがハードウェア関連情報またはソフトウェア関連情報の場合は、CPU151a、RAM151bなどがソフトウェアと協働することによって実現される機能ブロックであり、クライアント識別情報102cが外部機器関連情報の場合は、CPU151a、RAM151b、外部/ネットワークI/F151eなどがソフトウェアと協働することによって実現される機能ブロックである。オフライン二要素ユーザ認証システム100は、具体的には以下のような構成を有するものとする。オフライン認証支援サーバ101は、従来のオンラインでの認証サーバの機能を有しており、その機能によって、オフライン二要素認証クライアント151のネットワークを通じたユーザ認証が実施される。オフライン二要素認証クライアント151はクライアント用WindowsOSで動作しており、ユーザがWindowsにログオンする際にはログオン認証モジュールSmxGinaDLLが起動して、まず、ログオン認証画面197Aが表示される。オフライン二要素認証クライアント151がドメインネットワークに接続されている状態で、ログオン認証画面197Aにおいてログオン先にドメイン名を指定してネットワークへの認証が要求された場合には、続いてログオン認証画面197Bが表示され、従来のオンラインでのユーザ認証システムで実施されていたものと同様のユーザ認証が実行されるとともに、当該ネットワークへのログオン認証が成功すると、オフライン二要素認証クライアント151からオフライン認証支援サーバ101に対して検証データ要求が送信され、オフライン二要素認証クライアント151はオフライン認証支援サーバ101からオンラインで検証データ194をあらかじめ取得して記憶する。オフライン二要素認証クライアント151がドメインネットワークに接続されていない状態で、ログオン認証画面197Aにおいてログオン先にドメイン名またはコンピュータ名を指定してコンピュータへの認証が要求された場合には、続いてログオン認証画面197Bが表示され、あらかじめ記憶していた検証データ194に基づいて、本発明に係るオフラインユーザ認証が実施される。[オフライン二要素ユーザ認証システム100の動作]これから、オフライン二要素ユーザ認証システム100の動作について説明する。オフライン二要素ユーザ認証システム100の動作は、大きく2つの段階に分けることができる。1つの段階は、オフライン二要素認証クライアント151が、ユーザ認証を受けることになるユーザのための検証データ194をオフライン認証支援サーバ101に生成させて、それをあらかじめ取得して記憶する段階である。もう1つの段階は、ユーザ認証を受けようとするユーザに対して、オフライン二要素認証クライアント151が、あらかじめ記憶した検証データ194に基づいてオフラインでユーザ認証を実施する段階である。[オフライン二要素ユーザ認証システム100の動作1-検証データ取得]まず、検証データ194を取得する動作フローについて説明する。図3は、オフライン二要素ユーザ認証システム100の検証データ取得の動作フロー図である。まず、オフライン二要素ユーザ認証システム100で認証を受けることになるユーザは、そのユーザID102aと、パスワードであるワンタイムパスワード導出ルール102bと、そのユーザが認証を受ける際に使用するオフライン二要素認証クライアント151を識別するクライアント識別情報102cとをあらかじめオフライン認証支援サーバ101に入力して登録しておく。パスワード記憶部102は、そのユーザのユーザID102aとワンタイムパスワード導出ルール102bとクライアント識別情報102cとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶するステップS101。オフライン認証支援サーバ101は、好適にはインターネットまたはイントラネットのWeb上にユーザIDとパスワードとクライアント識別情報102cの登録のための初期登録Webページなどを提供しており、ユーザは、オフライン二要素認証クライアント151などの端末からその初期登録Webページを通じてオフライン認証支援サーバ101にアクセスする。それによって、オフライン二要素認証クライアント151には、ユーザID入力のための入力フィールドと、0から9までの数字を乱数的にパターン要素として配置した提示パターン191が表示される図示せず。ユーザは入力フィールドに自分が登録したいユーザID102aを入力する。ユーザは次に、自分が登録しようとするワンタイムパスワード導出ルール102bに従って、提示パターン191に含まれるパターン要素の位置の選択または当該提示パターン191に基づかない固定の数字などのキャラクターの入力を行う。オフライン認証支援サーバ101は、入力されたユーザID102aをそのユーザのユーザIDとしてパスワード記憶部102に記憶させる。一方、選択または入力された数字の列は、それだけではワンタイムパスワード導出ルール102bを特定することができない。従って、オフライン認証支援サーバ101は、異なる提示パターン191を表示してパスワード導出ルール102bに従った数字などのキャラクターの2回目の選択または入力を行わせ、選択または入力された数字などのキャラクターの列を1回目のものと比較して、ワンタイムパスワード導出ルール102bを特定する。2回目の提示パターン191を、1回目の提示パターン191と大きく異なるように工夫して発生させると、通常、2回の提示パターン191の提示によってワンタイムパスワード導出ルール192bを特定することが可能である。2回の提示パターン191の提示でワンタイムパスワード導出ルール102bの特定ができなかった場合は、それが特定できるまで、提示パターン191の内容を変えてそれの提示を繰り返す。これによって、提示パターン191に含まれるパターン要素の内で選択されたもののそれぞれの位置および当該提示パターン191に基づかない固定のキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれの固定のキャラクターが選択あるいは入力される順番との組み合わせであるワンタイムパスワード導出ルール102bが特定される。特定されたワンタイムパスワード導出ルール102bは、当該ユーザのユーザID102aと関連付けられてパスワード記憶部102に記憶される。なお、初期登録Webページから、シード値選択パターン生成モジュール151c3や検証コード特定認証モジュールやクライアント識別情報取得モジュール151c5などの、オフライン二要素認求クライアント151に必要なソフトウェアをダウンロードすることができるように構成すると好適である。これによって、その初期登録Webページにアクセスしてきた任意のPCの中にパターン要素列生成手段155やクライアント識別情報取得手段171を形成させ、それをオフライン二要素認証クライアント151として動作できるようにすることができる。オフライン二要素認証クライアント151が、ユーザID102aとワンタイムパスワード導出ルール102bの登録のためにオフライン認証支援サーバ101にアクセスしたときに、クライアント識別情報取得手段171が動作することによりオフライン二要素認証クライアント151が取得可能なクライアント識別情報102cを取得して、オフライン認証支援サーバ101に送信する。これは、ユーザID102aとワンタイムパスワード導出ルール102bの登録の前でも後でもよい。このとき、初期登録Webページが、各種のクライアント識別情報102cの取得先CPU、MACアドレス、ハードディスク、WindowsOSのGUIDやプロダクトIDやプロダクトキー、IPアドレス、USBメモリ、無線通信用データカード、携帯電話機、Bluetoothや無線LAN搭載各種機器、Felica、RFID、生体認証情報読み取り機、などのクライアント識別情報記憶部172を有するものを選択のために表示する。ここで、クライアント識別情報取得手段171が取得可能なクライアント識別情報102cをバスや外部/ネットワークI/Fを通じて走査して確認し、クライアント識別情報102cを取得可能な取得先だけを表示させるようにすると好適である。なお、オフライン二要素ユーザ認証システム100の管理者が、1つあるいは複数のクライアント識別情報102cの取得先をあらかじめ設定しておき、ユーザが取得先を選択しないようにも構成できる。ユーザが、表示された取得先のいずれかを選択すると、選択された取得先からクライアント識別情報102cがクライアント識別情報取得手段171によって読み出される。なお、ユーザは複数の取得先を選択することも可能である。この場合、それらの複数のクライアント識別情報102cを同時にパターンシード値183と組み合わせて提示パターン191を生成するようにすることもでき、認証のための要素の数を実質的に三要素以上の多要素に拡張することもできる。読み出されたクライアント識別情報102cは、オフライン認証支援サーバ101に送信され、オフライン認証支援サーバ101は、受信したクライアント識別情報102cを、ユーザID102a及びワンタイムパスワード導出ルール102bと関連付けてパスワード記憶部102に記憶することによって登録する。これらの登録の操作が完了すると、オフライン認証支援サーバ101は、そのユーザに対する認証のための検証データ194を生成することができるようになり、そのユーザは、オフライン二要素ユーザ認証システム100による認証を受けることができるようになる。なお、クライアント識別情報102cを登録する際に、その取得先の情報をいずれかの場所に記憶させておくと好適である。そのようにすると、ユーザが認証を受ける際に、記憶された取得先の情報を使用して、クライアント識別情報102cの取得先を自動的に設定することが可能となるからである。例えば、取得先の情報は、オフライン二要素認証クライアント151の記憶装置151c内に所定の記憶領域を設けて、そこにユーザID102aと関連付けて記憶させることができる。次に、認証を受けようとするユーザは、オフライン二要素認証クライアント151において、ユーザID入力手段152により自分のユーザIDを入力ユーザID181として入力するステップS103。ユーザは、典型的には、オフライン二要素認証クライアント151がドメインネットワークに接続された状態で、オフライン二要素認証クライアント151のWindowsのログオン認証画面197Aにおいて、ユーザー名フィールドに自己のユーザIDを入力し、ログオン先としてドメイン名を入力したユーザ認証の要求を行う。これによって、入力ユーザID181がオフライン認証クライアント151に入力される。続いて、ログオン認証画面197Bが表示され、従来のユーザ認証方法と同様の方法によってユーザ認証が実施される。ユーザ認証が成功すると、次に、オフライン二要素認証クライアント151は、検証データ要求手段153により、入力された入力ユーザID181を伴う検証データ194の生成と出力の要求をオフライン認証支援サーバ101に送信するステップS105。典型的には、ログオン認証画面197Aおよび197Bを表示させているログオン認証モジュールSmxGinaDLLが、オフライン認証支援サーバ101がネットワーク上に提供している検証データ194の出力のためのリソースにアクセスして、入力ユーザID181の情報を含む、検証データ要求のデータを伝達する。当該リソースは、典型的には、HTTPSプロトコルでアクセス可能なJava登録商標サーブレットの形態である。次に、オフライン認証支援サーバ101は、要求受付手段103により、オフライン二要素認証クライアント151から送信された入力ユーザID181を伴う検証データ要求を受信するステップS107。典型的には、オフライン認証支援サーバ101は、ユーザ認証支援アプリケーション101c2を動作させ、それによって入力ユーザID181を伴う検証データ要求を受信する。次に、オフライン認証支援サーバ101は、パターンシード値発生手段104により、パターンシード値183を所定の発生規則によって複数発生させるステップS109。所定の発生規則は、典型的には、所定の範囲内の乱数を発生させることである。図5には、パターンシード値183として、16進数で表わした284E1739D0などが例示されている。パターンシード値183は、例えば、16バイトのような所定のビット長の数字列で表わすことができ、この場合、当該所定の範囲とは、16進数で0000000000000000からFFFFFFFFFFFFFFFFの範囲となる。従って、当該所定の範囲の任意の数字列をパターンシード値183とすることができるため、最大で当該所定の範囲の数だけ異なる提示パターン191を生成することが可能となる。次に、オフライン認証支援サーバ101は、検証コード生成手段106により、クライアント識別情報102cおよび発生させられたそれぞれのパターンシード値183に基づいて所定のパターン要素列生成規則により生成されるパターン要素列190から構成される提示パターン191のそれぞれに対応させて、当該入力ユーザID181に関連付けられたワンタイムパスワード導出ルール102bをそれぞれの提示パターン191に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード193を複数生成する。ステップS111。ここで、所定のパターン要素列生成規則とは、クライアント識別情報102cとパターンシード値183との組み合わせに対してユニークに決定されるパターン要素列であって、そのパターン要素列だけからは元のクライアント識別情報102cとパターンシード値183とを推定することが極めて困難なものを発生させる規則であって、典型的には、以下に述べるような、クライアント識別情報102cとパターンシード値183との組み合わせを一種の初期値とした暗号化演算によるものである。図6は、提示パターン191の生成方法の概念図である。ここでは、C8E30B178422というクライアント識別情報102cと284E1739D0というパターンシード値183とに基づいてパターン要素列190が生成される。そのために、まず、クライアント識別情報102cとパターンシード値183の組み合わせから、所定の数字列を一意的に生成する。図6の第1段及び第2段に示した例では、それぞれ16進数で表わしたクライアント識別情報102cとパターンシード値183とを結合して所定の数字列を生成している。クライアント識別情報102cとパターンシード値183との組み合わせ方としては、他には、加算、減算、排他的論理和、などのあらゆる演算を使用して組み合わせることができる。次に、その所定の数字列に対して暗号化演算を実施して、所定のビット長のビット列184を生成する。ここでは、所定のビット長は、64の数字からなる提示パターン191を生成するために十分な情報量である256ビットである。暗号化演算としては、演算結果から元の数字列を求めることが事実上不可能なものであればよく、ハッシュ関数演算、共通鍵暗号化演算、などを使用することができる。例えば、ハッシュ関数としてSHA256を使用して、その所定の数字列を暗号化すると、256ビットのビット列184を生成することができる。また、共通鍵暗号化演算としてAESを使用して、その所定の数字列から鍵を生成し、その鍵によってあらかじめ適当に設定した256ビットの数字列を暗号化すると、256ビットのビット列184を生成することができる。また、それらのハッシュ関数演算と共通鍵暗号化演算とを組み合わせることもできる。なお、図6に示したビット列184011100101100110111010の値は説明のための例示であり、正確なSHA256演算の結果を示したものではない。次に、256ビットのビット列184を77桁の十進数に変換し、そこから64桁の数字を抽出してパターン要素列190とする。なお、図6に示したパターン要素列190380646551017の値は説明のための例示であり、正確な変換抽出の結果を示したものではない。64桁の数字の抽出は、不要な上位ビット列の削除、不要な下位ビット列の削除、割算などのあらゆる演算を使用することができる。このような所定のパターン要素列生成規則によって生成されたパターン要素列190から構成される提示パターン191のそれぞれに含まれるパターン要素に対して、ワンタイムパスワード導出ルール102bを適用して正しいワンタイムパスワードを生成し、そのワンタイムパスワードに一方向関数演算を実施することにより、検証コード193が生成される。次に、オフライン認証支援サーバ101は、パターンシード値送信手段105により、発生した複数のパターンシード値183をオフライン二要素認証クライアント151に送信するステップS113。典型的には、オフライン認証支援サーバ101は、ユーザ認証支援アプリケーション101c2を動作させ、それによって複数のパターンシード値183をオフライン二要素認証クライアント151に送信する。次に、オフライン二要素認証クライアント151は、パターンシード値受信手段154により、オフライン認証支援サーバ101から送信された複数のパターンシード値183を受信し、それを入力ユーザID181と関連付けて検証データ記憶部161に記憶するステップS115。典型的には、オフライン二要素認証クライアント151上で動作しているログオン認証モジュールSmxGinaDLLが、複数のパターンシード値183を受信して記憶させる。次に、オフライン認証支援サーバ101は、検証コード送信手段111により、発生した複数の検証コード193をオフライン二要素認証クライアント151に送信するステップS117。典型的には、オフライン認証支援サーバ101は、ユーザ認証支援アプリケーション101c2を動作させ、それによって複数の検証コード193をオフライン二要素認証クライアントに送信する。次に、オフライン二要素認証クライアント151は、検証コード受信手段162により、オフライン認証支援サーバ101から送信された複数の検証コード193を受信し、それを対応するパターンシード値183と関連付けて検証データ記憶部161に記憶するステップS119。典型的には、オフライン二要素認証クライアント151上で動作しているログオン認証モジュールSmxGinaDLLが、複数の検証コード193を受信して記憶させる。以上の動作によって、入力ユーザID181に対応した検証データ194がオフライン二要素認証クライアント151に記憶され、オフラインユーザ認証の準備が完了したことになる。なお、検証データ要求は、オフライン認証支援サーバ101にネットワークを介さずに直接入力することもできる。この場合、オフライン認証支援サーバ101に入力ユーザID181を伴う検証データ要求を入力し、それに対応する検証データ194を記憶媒体などに出力させる。オフライン二要素認証クライアント151は、当該記憶媒体から検証データ194を読み込んで記憶する。[オフラインユーザ認証システム100の動作2-ユーザ認証]次に、オフラインでのユーザ認証の動作フローについて説明する。図4は、オフライン二要素ユーザ認証システム100のオフラインユーザ認証の動作フロー図である。まず、認証を受けようとするユーザは、ユーザID入力手段152を通じて、そのユーザIDをオフライン二要素認証クライアント151に入力するステップS151。ユーザは、典型的には、オフライン二要素認証クライアント151がドメインネットワークに接続されていない状態で、オフライン二要素認証クライアント151のWindowsのログオン認証画面197Aにおいて、ユーザー名フィールドに自己のユーザIDを入力し、ログオン先としてドメイン名またはコンピュータ名を指定したユーザ認証の要求を行うことによって、入力ユーザID181を入力する。次に、オフライン二要素認証クライアント151は、パターンシード値選択手段163により、入力ユーザID181が、検証データ記憶部161に記憶されているユーザID102aに含まれていることを確認するステップS153。これによって、認証を受けようとするユーザに関連付けられた検証データ194が記憶されており、オフラインユーザ認証を行うことができることを確認する。次に、オフライン認証クライアント151は、パターンシード値選択手段163により、入力ユーザID181に関連付けられた複数のパターンシード値183の中から、所定の規則により1つのパターンシード値183を選択するステップS155。選択されるパターンシード値183としては、好適には、次にオフライン認証支援サーバ101から検証データ194を新しく取得して記憶するまでは、記憶された複数のパターンシード値183のうち、当該ユーザの認証に使用するためにすでに選択されたものは選択されない。このようにすることによって、1回のオフラインユーザ認証ごとに、異なる提示パターン191を表示させることができ、総当り攻撃を排除できるため、よりセキュリティを向上させることができる。パターンシード値183が例えば100個記憶されている場合は、新しく検証データ194を取得するまでの間、連続して100回、オフラインユーザ認証を実施することができることになる。選択されていないパターンシード値183が少なくなってくると、その旨の警告が表示される。すべてのパターンシード値183が選択されてしまうと、それ以上の新しいユーザ認証はできない。次に、オフライン認証クライアント151は、検証コード特定手段164により、入力ユーザID181に関連付けられた複数の検証コード193の中から、ステップS155で選択されたパターンシード値183に対応する検証コードを特定するステップS157。次に、オフライン認証クライアント151は、ユーザにクライアント識別情報102cの取得先を選択させ、選択された取得先からクライアント識別情報取得手段171によりクライアント識別情報102cを取得するステップS159。なお、クライアント識別情報102cの登録時における取得先が記憶装置151c内の所定領域に記憶されている場合には、その取得先の情報を使用することによって、オフライン認証クライアント151においてクライアント識別情報102cの取得先は自動的に設定されることになる。この場合、ユーザによるクライアント識別情報102cの取得先の選択は不要である。次に、オフライン認証クライアント151は、パターン要素列生成手段155により、ステップS159で取得されたクライアント識別情報102cと、ステップS157で選択されたパターンシード値183とに基づいて所定のパターン要素列生成規則により提示パターン191を構成するパターン要素列190を生成するステップS161。この所定のパターン要素列生成規則は、ステップS111において説明したものと全く同じものである。次に、オフライン二要素認証クライアント151は、パターン表示手段156により、生成されたパターン要素列190のそれぞれのパターン要素を4つの4×4のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン191を表わす画像を生成し、それをオフライン二要素認証クライアント151の画面に表示させるステップS163。典型的には、図9に示されるように、ログオン認証画面197Aに続いて、提示パターン191を含むログオン認証画面197Bが表示させられる。次に、認証を受けようとするユーザは、オフライン二要素認証クライアント151の画面に表示された提示パターン191の特定の位置に表示されたパターン要素0から9のいずれかの数字を選択したり、提示パターン191に基づかない固定の数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール102bを提示パターン191に適用した結果であるワンタイムパスワード192をオフライン二要素認証クライアント151に入力する。オフライン二要素認証クライアント151は、ワンタイムパスワード入力手段157により、ワンタイムパスワード192の入力を受け付けるステップS165。次に、オフライン二要素認証クライアント151は、ユーザ認証手段165により、入力されたワンタイムパスワード192に検証コード193の生成時に使用したものと同じ一方向関数演算を実施したものと、特定された検証コード193とを比較し、それらが等しければ、当該ユーザのユーザ認証が成功したものと判定するステップS167。認証が成功すると、以下のように、ユーザ認証の利用形態に応じたサービスが許可されることになる。すなわち、Windowsのログオン認証の場合には、Windowsが起動してそのユーザに対応する環境が提供される。なお、認証のための要素の数を実質的に三要素以上の多要素に拡張することを目的として、複数のクライアント識別情報102cを同時にパターンシード値183と組み合わせて提示パターン191を生成するように構成するためには、クライアント識別情報102cを扱う手段やステップにおいて、複数のクライアント識別情報102cを使用するように本発明を構成すればいい。具体的には、パスワード記憶部102は、ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールと当該ユーザが使用するオフライン二要素認証クライアント151をそれぞれ識別する複数のクライアント識別情報102cとをお互いに関連付けてあらかじめ記憶するものであり、パターンシード値発生手段104は、複数のクライアント識別情報と組み合わされて提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により発生するものであり、クライアント識別情報取得手段171は、認証を受けようとするユーザが使用しているオフライン認証クライアント151を識別する複数のクライアント識別情報102cを取得するものであり、パターン要素列生成手段155は、取得された複数のクライアント識別情報と選択されたパターンシード値183とに基づいて、所定のパターン要素列生成規則によりパターン要素列190を生成するものであり、検証コード生成手段106は、受信したユーザIDに関連付けられた複数のクライアント識別情報102cおよび発生させられたそれぞれのパターンシード値183に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、受信したユーザIDに関連付けられたワンタイムパスワード導出ルールをそれぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを生成するものであるように構成するとよい。なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。