(57)【特許請求の範囲】
【請求項１】
通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、前記認証サーバーに前記通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証システムであって、
前記ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成部と、
前記ユーザー端末側において、前記次世代乱数を発生させる前に発生させた前世代乱数に対して、前記ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成部と、
前記認証サーバーにおいて、前記第１のワンタイムコード及び第２のワンタイムコードを取得し、前記第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、前記第２のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する認証用コード保存部と、
認証時において、前記ユーザー端末側で、前記通信ネットワークの通信状態に応じて前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択部と、
選択された前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して生成されたワンタイムコードを、前記認証サーバーにおいて前記ユーザー端末から、認証用通信経路を通じて前記ワンタイムパスワードとして取得する認証管理部と、
前記認証サーバーにおいて、前記通信状態に応じて、前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードのいずれかを選択して前記認証用コード保存部から取得する認証用コード選択部と、
前記認証サーバーにおいて、前記認証管理部が取得した前記ワンタイムパスワードに対して、前記低減回数分の前記ユーザー側一方向性関数による演算を実行する低減回数補完部と、
前記認証サーバーにおいて、前記認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、前記低減回数補完部で演算を実行した前記ワンタイムパスワードとに基づいて、認証処理を行う認証部と
を備えることを特徴とするワンタイム認証システム。
【請求項２】
前記ユーザー端末は、コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードを前記ワンタイムパスワードとして表示する表示部を有し、
前記認証用通信経路は、前記表示部に表示された前記ワンタイムパスワードを読み取る読取装置に接続され、
前記認証管理部は、前記読取装置を介して、前記ワンタイムパスワードを前記ユーザー端末から取得する
ことを特徴とする請求項１に記載のワンタイム認証システム。
【請求項３】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記認証用コード保存部は、前記連携用通信経路を通じて、前記ユーザー端末上において初回に生成された前記第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、前記第１の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する
ことを特徴とする請求項１に記載のワンタイム認証システム。
【請求項４】
前記認証用通信経路は、店舗に設置される店舗端末を介して、前記ユーザー端末と接続され、
前記店舗端末では、前記認証処理に関係する前記ユーザーの消費行動に関する情報を購買情報として取得し、
前記認証管理部は、前記第１のワンタイムコード又は前記第２のワンタイムコードとともに、前記購買情報を取得し、この購買情報を、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果と関連付けて購買履歴情報蓄積部に蓄積する
ことを特徴とする請求項１に記載のワンタイム認証システム。
【請求項５】
前記認証サーバーは、
前記ユーザーに付与される価値情報を管理する価値情報管理サーバーと、
前記ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーと
を有し、
前記価値情報管理サーバー及び決済サーバーは、前記認証用コード保存部に保存された情報を共有可能であり、
前記決済サーバーは、前記認証処理の結果に基づく前記価値情報の有効性に関する判定情報を取得し、前記判定情報に基づいて、価値情報の有効性を反映させた前記決済処理を実行する
ことを特徴とする請求項１に記載のワンタイム認証システム。
【請求項６】
通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、前記認証サーバーに前記通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証方法であって、
前記ユーザー端末側において、ワンタイムコード作成部が、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成するとともに、前記次世代乱数を発生させる前に発生させた前世代乱数に対して前記ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成するワンタイムコード作成ステップと、
前記認証サーバーにおいて、前記第１のワンタイムコード及び第２のワンタイムコードを取得し、認証用コード保存部が、前記第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、前記第２のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて当該認証用コード保存部に保存する認証用コード保存ステップと、
前記ユーザー端末の選択部が、認証時に、前記通信ネットワークの通信状態に応じて、前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択ステップと、
認証管理部が、選択された前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して生成されたワンタイムコードを、前記ユーザー端末から、認証用通信経路を通じて前記ワンタイムパスワードとして取得する認証管理ステップと、
認証用コード選択部が、前記通信状態に応じて、前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードのいずれかを選択して前記認証用コード保存部から取得する認証用コード選択ステップと、
前記認証管理部が取得した前記第２のワンタイムコードに対して、低減回数補完部が、前記低減回数分の前記ユーザー側一方向性関数による演算を実行する低減回数補完ステップと、
前記認証用コード選択部が選択した前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードと、前記低減回数補完部で演算を実行した前記ワンタイムパスワードとに基づいて、認証部が認証処理を行う認証ステップと
を備えることを特徴とするワンタイム認証方法。
【請求項７】
前記認証管理ステップでは、前記ユーザー端末が、コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードを前記ワンタイムパスワードとして表示し、
前記認証用通信経路には、前記表示部に表示された前記ワンタイムパスワードを読み取る読取装置が接続され、前記認証管理ステップでは、前記読取装置を介して、前記ワンタイムパスワードを前記ユーザー端末から取得する
ことを特徴とする請求項６に記載のワンタイム認証方法。
【請求項８】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記認証用コード保存ステップにおいて、認証用コード保存部が、前記連携用通信経路を通じて、前記ユーザー端末上において初回に生成された前記第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、前記第１の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する
ことを特徴とする請求項６に記載のワンタイム認証方法。
【請求項９】
前記認証用通信経路は、店舗に設置される店舗端末を介して、前記ユーザー端末と接続され、
前記認証管理ステップにおいて、前記店舗端末は、前記認証処理に関係する前記ユーザーの消費行動に関する情報を購買情報として取得するとともに、前記第１のワンタイムコード又は前記第２のワンタイムコードを取得し、前記購買情報を、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果と、関連付けて購買履歴情報蓄積部に蓄積する
ことを特徴とする請求項６に記載のワンタイム認証方法。
【請求項１０】
前記認証サーバーは、
前記ユーザーに付与される価値情報を管理する価値情報管理サーバーと、
前記ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーと
を有し、
前記価値情報管理サーバー及び決済サーバーは、前記認証用コード保存部に保存された情報を共有可能であり、
前記決済サーバーは、前記認証処理の結果に基づく前記価値情報の有効性に関する判定情報を取得し、前記判定情報に基づいて、価値情報の有効性を反映させた前記決済処理を実行する
ことを特徴とする請求項６に記載のワンタイム認証方法。
【請求項１１】
通信ネットワーク上に配置され、ユーザーが使用するユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行う認証サーバーであって、
前記ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第１のワンタイムコードと、前記ユーザー端末側において、前記次世代乱数を発生させる前に発生させた前世代乱数に対して前記ユーザー側一方向性関数による演算を繰り返して生成された第２のワンタイムコードとを、前記認証サーバーにおいて取得する連携管理部と、
前記第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、前記第２のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する認証用コード保存部と、
認証時において、前記通信ネットワークの通信状態に応じて選択された前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた、前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して前記ユーザー端末において生成されたワンタイムコードを、認証用通信経路を通じて前記ワンタイムパスワードとして取得する認証管理部と、
前記通信状態に応じて、前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードのいずれかを選択して前記認証用コード保存部から取得する認証用コード選択部と、
前記認証管理部が取得した前記ワンタイムパスワードに対して、前記低減回数分の前記ユーザー側一方向性関数による演算を実行する低減回数補完部と、
前記認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、前記低減回数補完部で演算を実行した前記ワンタイムパスワードとに基づいて、認証処理を行う認証部と
を備えることを特徴とする認証サーバー。
【請求項１２】
前記ユーザー端末は、コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードを前記ワンタイムパスワードとして表示する表示部を有し、
前記認証用通信経路は、前記表示部に表示された前記ワンタイムパスワードを読み取る読取装置に接続され、
前記認証管理部は、前記読取装置を介して、前記ワンタイムパスワードを前記ユーザー端末から取得する
ことを特徴とする請求項１１に記載の認証サーバー。
【請求項１３】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記認証用コード保存部は、前記連携用通信経路を通じて、前記ユーザー端末上において初回に生成された前記第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、前記第１の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する
ことを特徴とする請求項１１に記載の認証サーバー。
【請求項１４】
前記認証用通信経路は、店舗に設置される店舗端末を介して、前記ユーザー端末と接続され、
前記店舗端末では、前記認証処理に関係する前記ユーザーの消費行動に関する情報を購買情報として取得し、
前記認証管理部は、前記第１のワンタイムコード又は前記第２のワンタイムコードとともに、前記購買情報を取得し、この購買情報を、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果と関連付けて購買履歴情報蓄積部に蓄積する
ことを特徴とする請求項１１に記載の認証サーバー。
【請求項１５】
前記認証サーバーは、
前記ユーザーに付与される価値情報を管理する価値情報管理サーバーと、
前記ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーと
を有し、
前記価値情報管理サーバー及び決済サーバーは、前記認証用コード保存部に保存された情報を共有可能であり、
前記決済サーバーは、前記認証処理の結果に基づく前記価値情報の有効性に関する判定情報を取得し、前記判定情報に基づいて、価値情報の有効性を反映させた前記決済処理を実行する
ことを特徴とする請求項１１に記載の認証サーバー。
【請求項１６】
ユーザーが使用し、通信ネットワーク上に配置される認証サーバーとの間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行う機能を有する携帯端末であって、
次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成部と、
前記次世代乱数を発生させる前に発生させた前世代乱数に対して、前記ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成部と、
前記認証サーバーに対し、前記第１のワンタイムコード及び第２のワンタイムコードを送信する送信部と、
認証時において、前記通信ネットワークの通信状態に応じて前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択部と、
選択された前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してワンタイムコードを生成し、当該ワンタイムコードを、認証用通信経路を通じて前記ワンタイムパスワードとして、前記認証サーバーに対して送出する認証処理部と、
前記通信ネットワークの通信状態に応じて選択され、生成された前記ワンタイムパスワードに基づく認証処理の結果を取得する認証結果取得部と
を備えることを特徴とする携帯端末。
【請求項１７】
コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードを前記ワンタイムパスワードとして表示する表示部
をさらに備えることを特徴とする請求項１６に記載の携帯端末。
【請求項１８】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記送信部は、前記連携用通信経路を通じて、初回に生成された前記第１のワンタイムコードを送出する
ことを特徴とする請求項１６に記載の携帯端末。
【請求項１９】
通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、前記認証サーバーに前記通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証プログラムであって、前記認証サーバーに、
前記ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第１のワンタイムコードと、前記ユーザー端末側において、前記次世代乱数を発生させる前に発生させた前世代乱数に対して、前記ユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第２のワンタイムコードとを取得する連携管理ステップと、
認証用コード保存部が、前記第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、前記第２のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて当該認証用コード保存部に保存する認証用コード保存ステップと、
認証時において、前記通信ネットワークの通信状態に応じて選択された前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して前記ユーザー端末において生成されたワンタイムコードを、認証管理部が、認証用通信経路を通じて前記ワンタイムパスワードとして取得する認証管理ステップと、
認証用コード選択部が、前記通信状態に応じて、前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードのいずれかを選択して前記認証用コード保存部から取得する認証用コード選択ステップと、
前記認証管理部が取得した前記第２のワンタイムコードに対して、低減回数補完部が、前記低減回数分の前記ユーザー側一方向性関数による演算を実行する低減回数補完ステップと、
前記認証用コード選択部が選択した前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードと、前記低減回数補完部で演算を実行した前記ワンタイムパスワードとに基づいて、認証部が、認証処理を行う認証ステップと
を含む処理を実行させることを特徴とするワンタイム認証プログラム。
【請求項２０】
前記認証管理ステップでは、コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードが、前記ユーザー端末の表示部に、前記ワンタイムパスワードとして表示され、
前記認証用通信経路には、前記表示部に表示された前記ワンタイムパスワードを読み取る読取装置が接続され、前記認証管理ステップでは、前記読取装置を介して、前記ワンタイムパスワードを前記ユーザー端末から取得する
ことを特徴とする請求項１９に記載のワンタイム認証プログラム。
【請求項２１】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記認証用コード保存ステップにおいて、認証用コード保存部は、前記連携用通信経路を通じて、前記ユーザー端末上において初回に生成された前記第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、前記サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、前記第１の認証用ワンタイムコードと、前記ユーザーに固有のユーザー特定情報と関連付けて保存する
ことを特徴とする請求項１９に記載のワンタイム認証プログラム。
【請求項２２】
前記認証用通信経路は、店舗に設置される店舗端末を介して、前記ユーザー端末と接続され、
前記認証管理ステップでは、前記店舗端末が、前記認証処理に関係する前記ユーザーの消費行動に関する情報を購買情報として取得するとともに、前記第１のワンタイムコード又は前記第２のワンタイムコードを取得し、前記認証管理部は、前記購買情報を、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果と関連付けて購買履歴情報蓄積部に蓄積する
ことを特徴とする請求項１９に記載のワンタイム認証プログラム。
【請求項２３】
前記認証サーバーは、
前記ユーザーに付与される価値情報を管理する価値情報管理サーバーと、
前記ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーと
を有し、
前記価値情報管理サーバー及び決済サーバーは、前記認証用コード保存部に保存された情報を共有可能であり、
前記決済サーバーは、前記認証処理の結果に基づく前記価値情報の有効性に関する判定情報を取得し、前記判定情報に基づいて、価値情報の有効性を反映させた前記決済処理を実行する
ことを特徴とする請求項１９に記載のワンタイム認証プログラム。
【請求項２４】
通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、前記認証サーバーに前記通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証プログラムであって、前記ユーザー端末に、
次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成ステップと、
前記次世代乱数を発生させる前に発生させた前世代乱数に対して、前記ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成ステップと、
前記認証サーバーに対して前記第１のワンタイムコード及び第２のワンタイムコードを送信する送信ステップと、
認証時において、前記通信ネットワークの通信状態に応じて、前記第１のワンタイムコード又は前記第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択ステップと、
選択された前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してワンタイムコードを生成して、認証用通信経路を通じて前記ワンタイムパスワードとして、前記認証サーバーに対して送出する認証処理ステップと、
前記通信ネットワークの通信状態に応じて選択され、生成された前記ワンタイムパスワードに基づく認証処理の結果を取得する認証結果取得ステップと
を含む処理を実行させることを特徴とするワンタイム認証プログラム。
【請求項２５】
コード化された前記第１のワンタイムコード又はコード化された前記第２のワンタイムコードを前記ワンタイムパスワードとして表示部に表示する表示ステップ
をさらに備えることを特徴とする請求項２４に記載のワンタイム認証プログラム。
【請求項２６】
前記通信ネットワーク上には、前記認証サーバーと前記ユーザー端末とを接続する連携用通信経路が構築され、
前記送信部は、前記連携用通信経路を通じて、初回に生成された前記第１のワンタイムコードを送出する
ことを特徴とする請求項２４に記載のワンタイム認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証システム、ワンタイム認証方法、認証サーバー、携帯端末、及びワンタイム認証プログラムに関する。
【背景技術】
【０００２】
従来、Ｗｅｂサービスへのログイン処理など、インターネット上のアカウント管理では、ＩＤやパスワードなどによりユーザーのアクセス権を認証する認証システムが用いられている。このユーザー認証システムにおいて、固定的に用いられる固定パスワードよりもセキュリティを高める方式として、セッション毎にパスワードを変更して認証処理を行うワンタイムパスワードを使用するシステムが知られている（例えば、特許文献１）。
【０００３】
この特許文献１には、オンラインサービスサーバーと情報端末と携帯情報端末と携帯情報端末会社メールサーバーとがインターネットを介して接続された構成において、情報端末からの認証要求に対し、オンラインサービスサーバーが認証要求に対して一定時間且つ一度しか使用することができないワンタイムパスワードを生成し、生成したワンタイムパスワードを記載したメールを作成し、当該メールを、携帯情報端末会社メールサーバーを介して利用者の携帯情報端末に送信し、利用者が受信したメールに記載されたワンタイムパスワードを従来の固定パスワードに代わって情報端末に入力し、情報端末がオンラインサービスサーバーにワンタイムパスワードを送信することで、認証を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２０９０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたような通信ネットワーク上のサーバー装置と通信処理を行うことで認証を行う技術では、ユーザー端末が通信可能エリア外に位置したり、通信障害などが発生したりなど、サーバー装置と通信ができない場合には、サーバー装置からユーザー端末に対して、今回使用するためのワンタイムパスワードを送信することができないため、認証処理を行うことができなかった。
【０００６】
そこで、本発明は、上記のような問題を解決するものであり、ユーザー端末と認証サーバーとが直接通信できない状況下であっても、認証処理を確立することができるワンタイム認証システム、ワンタイム認証方法、認証サーバー、携帯端末、及びワンタイム認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、認証サーバーに通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証システムであって、
ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成部と、
ユーザー端末側において、次世代乱数を発生させる前に発生させた前世代乱数に対して、ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成部と、
認証サーバーにおいて、第１のワンタイムコード及び第２のワンタイムコードを取得し、第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、第２のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、ユーザーに固有のユーザー特定情報と関連付けて保存する認証用コード保存部と、
認証時において、前記ユーザー端末側で、通信ネットワークの通信状態に応じて第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択部と、
選択された前記次世代乱数又は前記前世代乱数に対して、前記ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して生成されたワンタイムコードを、前記認証サーバーにおいて前記ユーザー端末から、認証用通信経路を通じて前記ワンタイムパスワードとして取得する認証管理部と、
前記認証サーバーにおいて、前記通信状態に応じて、前記認証用第１のワンタイムコード又は前記認証用第２のワンタイムコードのいずれかを選択して前記認証用コード保存部から取得する認証用コード選択部と、
前記認証サーバーにおいて、前記認証管理部が取得した前記ワンタイムパスワードに対して、前記低減回数分の前記ユーザー側一方向性関数による演算を実行する低減回数補完部と、
前記認証サーバーにおいて、前記認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、前記低減回数補完部で演算を実行した前記ワンタイムパスワードとに基づいて、認証処理を行う認証部と
を備える。
【０００８】
また、他の発明は、通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、認証サーバーに通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証方法であって、
（１）ユーザー端末側において、ワンタイムコード作成部が、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成するとともに、次世代乱数を発生させる前に発生させた前世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成するワンタイムコード作成ステップと、
（２）認証サーバーにおいて、第１のワンタイムコード及び第２のワンタイムコードを取得し、認証用コード保存部が、第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、第２のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、ユーザーに固有のユーザー特定情報と関連付けて当該認証用コード保存部に保存する認証用コード保存ステップと、
（３）ユーザー端末の選択部が、認証時に、通信ネットワークの通信状態に応じて、第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択ステップと、
（４）認証管理部が、選択された次世代乱数又は前世代乱数に対して、ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して生成されたワンタイムコードを、ユーザー端末から、認証用通信経路を通じてワンタイムパスワードとして取得する認証管理ステップと、
（５）認証用コード選択部が、通信状態に応じて、認証用第１のワンタイムコード又は認証用第２のワンタイムコードのいずれかを選択して認証用コード保存部から取得する認証用コード選択ステップと、
（６）認証管理部が取得した第２のワンタイムコードに対して、低減回数補完部が、低減回数分のユーザー側一方向性関数による演算を実行する低減回数補完ステップと、
（７）認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、低減回数補完部で演算を実行したワンタイムパスワードとに基づいて、認証処理を行う認証ステップと
を備える。
【０００９】
ここで、「ワンタイムコード」とは、認証サーバーに対するアクセス用に発行される一度限り有効な認証情報であり、数字や文字、記号などのテキストデータで表現されるものの他、バーコードや、二次元バーコード、その他のコード化された図形などが含まれる。そして、本発明における「第１のワンタイムコード」とは、次回の認証時に用いられる認証情報であり、「第２のワンタイムコード」とは、今回の認証時に用いられる認証情報である。また、「通信ネットワーク」とは、電話回線やＩＳＤＮ回線、ＡＤＳＬ回線、光回線などの公衆回線、専用回線、３Ｇ回線や、Ｗｉｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信回線などの種々の通信回線を相互に接続して構築される通信網であり、インターネットなどの通信プロトコルＴＣＰ／ＩＰを用いたＩＰ網が含まれ、このＩＰ網には、１０ＢＡＳＥ−Ｔや１００ＢＡＳＥ−ＴＸ等によるイントラネット（企業内ネットワーク）や家庭内ネットワークなどのＬＡＮなども含まれる。「認証用通信経路」とは、認証情報を認証サーバーとの間で安定して送受信するための通信経路であり、上記通信ネットワークと異なる経路やプロトコルでもよく、上記通信ネットワークに一部又は全部の通信経路が含まれていてもよい。この認証用通信経路としては、例えば、店舗に設置されたＰＯＳ端末などを、ユーザー端末と認証サーバーの間に介在させた経路とすることができ、ユーザー端末とＰＯＳ端末とは、リーダライタ装置やバーコードリーダ装置のような非接触通信によって接続されるものでよい。
【００１０】
さらに、「ユーザーに固有のユーザー特定情報」とは、シリアルナンバーやＭＡＣアドレスその他のユーザー端末の製造時に付与された１つのユーザー端末に固有且つ単一の端末固有識別子でもよく、ユーザー毎に付与されるユーザー固有のユーザー識別子や、アプリケーションに固有のＩＤ、サービスに固有のＩＤ、又はこれらを組み合わせて定められるユニークな値など、１つの端末に複数付与される識別子としてもよい。そして、これらのユーザー特定情報は、ユーザーが操作して入力するものでもよく、自動的に入力又は送信されるものであってもよい。
【００１１】
これらのような本発明によれば、ユーザー端末が、第２のワンタイムコードを用いて認証を行うとともに、次世代乱数に基づく第１のワンタイムコードを生成して、認証サーバー側に送信しておくことから、平常時にあっては、認証処理の度に、常に新しい世代の乱数によりワンタイムコードが生成されることとなり、セキュリティを高めることができる。このとき、ユーザー端末側では、ユーザー側一方向性関数を用いて暗号化（ハッシュ化）され、サーバー側で取得されたワンタイムコードは、サーバー側一方向性関数により暗号化（ハッシュ化）されるため、仮に通信経路途中やサーバー側で認証情報が傍受されたり漏洩したとしても、その認証情報を悪用してユーザーになり代わって認証を受けることはできない。
【００１２】
詳述すると、本発明では、認証サーバーとユーザー端末との通信状態に応じて、今回の認証時に用いられるワンタイムパスワードの元となるワンタイムコード（第１のワンタイムコード又は第２のワンタイムコード）を選択している。例えば、認証サーバーとユーザー端末とが通信可能である場合には、前回送信した第１のワンタイムコードに用いられた乱数を確認し、今回の認証時に生成するワンタイムパスワードを、前回生成した次世代乱数に基づいて生成する。すなわち、通信可能な状態下では、常に新規な次世代乱数が生成され、ハッシュ回数は初期値にリセットされる。一方、認証サーバーとユーザー端末とが通信不通である場合には、前回生成した乱数と同世代の乱数に基づいて、前回のハッシュ回数よりも低減されたハッシュ回数により、今回認証時に生成するワンタイムパスワードを生成する。
【００１３】
その結果、本発明によれば、認証サーバーでは、取得したワンタイムコードをハッシュ関数で一方向の処理を加えているので、通信内容を隠蔽することができる。このように、本発明によれば、通信経路及び認証サーバーに保存される認証コードを盗聴・盗難しても、実際に認証するためのコードは生成できないため、不正利用を防ぐことができる。さらに、本発明によれば、ユーザー端末で生成するワンタイムコードは、乱数によってランダムに生成され、ワンタイムコードそのものは、ユーザー端末にも保存しないので、ユーザー端末上のデータ、通信経路上のデータ、認証サーバー上のデータは、正規のユーザー端末が生成したワンタイムコードによってのみ紐づけられることとなり、セキュリティを高めることができる。
【００１４】
上記発明において、ユーザー端末は、コード化された第１のワンタイムコード又はコード化された第２のワンタイムコードをワンタイムパスワードとして表示する表示部を有し、認証用通信経路は、表示部に表示されたワンタイムパスワードを読み取る読取装置に接続され、認証管理部は、読取装置を介して、ワンタイムパスワードをユーザー端末から取得することが好ましい。
【００１５】
この場合には、認証用通信経路は、ユーザー端末の表示部に表示されたワンタイムパスワードを読み取る読取装置に接続され、認証管理部は、読取装置を介して、ワンタイムパスワードをユーザー端末から取得しているので、ユーザー端末が通信可能エリア外に位置して直接認証サーバーと通信ができない場合でも、ワンタイムパスワードを取得して認証することができる。
【００１６】
上記発明において、通信ネットワーク上には、認証サーバーとユーザー端末とを接続する連携用通信経路が構築され、認証用コード保存部は、連携用通信経路を通じて、ユーザー端末上において初回に生成された第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、第１の認証用ワンタイムコードと、ユーザー端末に固有のユーザー特定情報と関連付けて保存することが好ましい。
【００１７】
ここで、「連携用通信経路」とは、上記の認証用通信経路とは異なる通信経路であり、上記通信ネットワーク上に構築され、特に３Ｇ回線やＷｉｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信回線を含み、ユーザー端末と認証サーバーとが直接接続され、一定のセキュリティが確保された通信経路である。このような本発明によれば、ユーザー端末で初回に生成した第２のワンタイムコードを認証サーバーに送信することで、次回以降の認証において、２つの異なる乱数を用いたワンタイム認証処理を実行することができる。
【００１８】
上記発明において、認証用通信経路は、店舗に設置される店舗端末を介して、ユーザー端末と接続され、店舗端末では、認証処理に関係するユーザーの消費行動に関する情報を購買情報として取得し、認証管理部は、第１のワンタイムコード又は第２のワンタイムコードとともに、購買情報を取得し、この購買情報を、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果と関連付けて購買履歴情報蓄積部に蓄積することが好ましい。
【００１９】
ここで、「消費行動に関する情報」とは、いわゆるＰＯＳデータが含まれ、購入した商品名、商品コード、購入日時、店舗名、数量などであり、電子クーポンやポイントの使用情報も含まれる。この場合には、ユーザーの消費行動に関する情報を購買情報として、前記第１又は第２の認証用ワンタイムコード及び前記認証処理の結果とともに蓄積しているので、各ユーザーの消費行動を解析し、マーケティングに活用することができる。この際、購買情報と認証用に用いたワンタイムコード（乱数やハッシュ値を含む。）とを関連付けて管理するため、ユーザーを特定することなく解析を行うことができ、個人情報の保護を向上させつつ、マーケティングに必要な情報を取り扱うことができる。
【００２０】
上記発明において、認証サーバーは、ユーザーに付与される価値情報を管理する価値情報管理サーバーと、ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーとを有し、価値情報管理サーバー及び決済サーバーは、認証用コード保存部に保存された情報を共有可能であり、決済サーバーは、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行することが好ましい。
【００２１】
ここで、「価値情報」とは、店舗におけるサービスの提供を保証する情報であり、ポイントや電子クーポン、割引サービス等が含まれる。この場合、価値情報管理サーバー及び決済サーバーは、認証用コード保存部に保存された情報を共有可能であり、決済サーバーは、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行するので、認証処理と同時に価値情報有効性の判定と、決済処理とを、複数のサーバー装置、ひいては複数のサービス事業者で協働して行うことできる。また、これにより、ユーザー側にとっては認証処理のための操作と、電子クーポンやポイントを利用するための操作と、決済するための操作を簡略化することができる。
【００２２】
さらに、他の発明は、上記ワンタイム認証システム及びワンタイム認証方法で利用可能な認証サーバーである。具体的に、この本発明に係る認証サーバーは、通信ネットワーク上に配置され、ユーザーが使用するユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行う認証サーバーであって、
ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第１のワンタイムコードと、ユーザー端末側において、次世代乱数を発生させる前に発生させた前世代乱数に対してユーザー側一方向性関数による演算を繰り返して生成された第２のワンタイムコードとを、認証サーバーにおいて取得する連携管理部と、
第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、第２のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、ユーザー端末に固有のユーザー特定情報と関連付けて保存する認証用コード保存部と、
認証時において、通信ネットワークの通信状態に応じて選択された第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数に対して、ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してユーザー端末において生成されたワンタイムコードを、認証用通信経路を通じてワンタイムパスワードとして取得する認証管理部と、
通信状態に応じて、認証用第１のワンタイムコード又は認証用第２のワンタイムコードのいずれかを選択して認証用コード保存部から取得する認証用コード選択部と、
認証管理部が取得したワンタイムパスワードに対して、低減回数分のユーザー側一方向性関数による演算を実行する低減回数補完部と、
認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、低減回数補完部で演算を実行したワンタイムパスワードとに基づいて、認証処理を行う認証部とを備える。
【００２３】
なお、上記発明に係るワンタイム認証システム及び認証サーバーは、複数のサーバー装置で構成することも可能であり、また、装置や機器等のハードウェアのみならず、その機能を持ったソフトウェア、又はこれらの組み合わせなどによっても構成することができる。また、データベースも単一のデータベース装置の他、リレーションシップ機能により連携される複数のデータベース群で構成することもできる。
【００２４】
また、他の発明は、上記ワンタイム認証システム及びワンタイム認証方法で利用可能な携帯端末である。具体的に、この本発明に係る携帯端末は、ユーザーが使用し、通信ネットワーク上に配置される認証サーバーとの間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行う機能を有する携帯端末であって、
次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成部と、
次世代乱数を発生させる前に発生させた前世代乱数に対して、ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成部と、
認証サーバーに対し、第１のワンタイムコード及び第２のワンタイムコードを送信する送信部と、
認証時において、通信ネットワークの通信状態に応じて第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択部と、
選択された次世代乱数又は前世代乱数に対して、ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してワンタイムコードを生成し、当該ワンタイムコードを、認証用通信経路を通じてワンタイムパスワードとして、認証サーバーに対して送出する認証処理部と、
通信ネットワークの通信状態に応じて選択され、生成されたワンタイムパスワードに基づく認証処理の結果を取得する認証結果取得部とを備える。
【００２５】
上記発明において、ユーザー端末は、コード化された第１のワンタイムコード又はコード化された第２のワンタイムコードをワンタイムパスワードとして表示する表示部を有し、認証用通信経路は、表示部に表示されたワンタイムパスワードを読み取る読取装置に接続され、認証管理部は、読取装置を介して、ワンタイムパスワードをユーザー端末から取得することが好ましい。
【００２６】
上記発明において、通信ネットワーク上には、認証サーバーとユーザー端末とを接続する連携用通信経路が構築され、認証用コード保存部は、連携用通信経路を通じて、ユーザー端末上において初回に生成された第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、第１の認証用ワンタイムコードと、ユーザー端末に固有のユーザー特定情報と関連付けて保存することが好ましい。
【００２７】
上記発明において、認証用通信経路は、店舗に設置される店舗端末を介して、ユーザー端末と接続され、店舗端末では、認証処理に関係するユーザーの消費行動に関する情報を購買情報として取得し、認証管理部は、第１のワンタイムコード又は第２のワンタイムコードとともに、購買情報を取得し、この購買情報を、ユーザー特定情報及び認証処理の結果と関連付けて購買履歴情報蓄積部に蓄積することが好ましい。
【００２８】
上記発明において、認証サーバーは、ユーザーに付与される価値情報を管理する価値情報管理サーバーと、ユーザーに対して提供された商品又はサービスに関する決済処理を実行する決済サーバーとを有し、価値情報管理サーバー及び決済サーバーは、認証用コード保存部に保存された情報を共有可能であり、決済サーバーは、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行することが好ましい。
【００２９】
また、上述した本発明に係る認証サーバー、及び携帯端末は、所定の言語で記述されたプログラムをコンピューター上で実行することにより実現することができる。
【００３０】
すなわち、本発明は、通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、認証サーバーに通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証プログラムであって、認証サーバーに、
（１）ユーザー端末側において、次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第１のワンタイムコードと、ユーザー端末側において、次世代乱数を発生させる前に発生させた前世代乱数に対して、ユーザー側一方向性関数による演算を所定回数だけ繰り返して生成された第２のワンタイムコードとを取得する管理ステップと、
（２）認証用コード保存部が、第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成するとともに、第２のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、ユーザー端末に固有のユーザー特定情報と関連付けて当該認証用コード保存部に保存する認証用コード保存ステップと、
（３）認証時において、通信ネットワークの通信状態に応じて選択された第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数に対して、ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してユーザー端末において生成されたワンタイムコードを、認証管理部が、認証用通信経路を通じてワンタイムパスワードとして取得する認証管理ステップと、
（４）認証用コード選択部が、通信状態に応じて、認証用第１のワンタイムコード又は認証用第２のワンタイムコードのいずれかを選択して認証用コード保存部から取得する認証用コード選択ステップと、
（５）認証管理部が取得した第２のワンタイムコードに対して、低減回数補完部が、低減回数分のユーザー側一方向性関数による演算を実行する低減回数補完ステップと、
（６）認証用コード選択部が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、低減回数補完部で演算を実行したワンタイムパスワードとに基づいて、認証部が、認証処理を行う認証ステップと
を含む処理を実行させる。
【００３１】
また、他の発明は、通信ネットワーク上に配置される認証サーバーと、ユーザーが使用し、認証サーバーに通信ネットワークを通じて接続可能なユーザー端末との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証プログラムであって、ユーザー端末に、
（１）次世代乱数を発生させ、この次世代乱数に対してユーザー側一方向性関数による演算を所定回数だけ繰り返して第１のワンタイムコードを生成する第１のワンタイムコード作成ステップと、
（２）次世代乱数を発生させる前に発生させた前世代乱数に対して、ユーザー側一方向性関数による演算を所定回数だけ繰り返して第２のワンタイムコードを生成する第２のワンタイムコード作成ステップと、
（３）認証サーバーに対して第１のワンタイムコード及び第２のワンタイムコードを送信する送信ステップと、
（４）認証時において、通信ネットワークの通信状態に応じて、第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択する選択ステップと、
（５）選択された次世代乱数又は前世代乱数に対して、ユーザー側一方向性関数による演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返してワンタイムコードを生成して、認証用通信経路を通じてワンタイムパスワードとして、認証サーバーに対して送出する認証処理ステップと、
（６）通信ネットワークの通信状態に応じて選択され、生成されたワンタイムパスワードに基づく認証処理の結果を取得する認証結果取得ステップと
を含む処理を実行させる。
【００３２】
このようなプログラムを、ユーザー端末やＷｅｂサーバー等のコンピューターやＩＣチップにインストールし、ＣＰＵ上で実行することにより、上述した各機能を有するシステム、方法、サーバー、及び装置を容易に構築することができる。このプログラムは、例えば、通信回線を通じて配布することが可能であり、また、汎用コンピューターで読み取り可能な記録媒体に記録することにより、スタンドアローンの計算機上で動作するパッケージアプリケーションとして譲渡することができる。記録媒体として、具体的には、フレキシブルディスクやカセットテープ等の磁気記録媒体、若しくはＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の光ディスクの他、ＲＡＭカードなど、種々の記録媒体に記録することができる。そして、このプログラムを記録したコンピューター読み取り可能な記録媒体によれば、汎用のコンピューターや専用コンピューターを用いて、上述したシステム、方法、サーバー、及び装置を簡便に実施することが可能となるとともに、プログラムの保存、運搬及びインストールを容易に行うことができる。
【発明の効果】
【００３３】
以上述べたように、この発明によれば、ユーザー端末と認証サーバーとが直接通信できない状況下であっても、認証処理を確立することができる。
【図面の簡単な説明】
【００３４】
【図１】第１実施形態に係るシステムの全体構成を示す概念図である。
【図２】第１実施形態に係るユーザー端末の内部構成を示すブロック図である。
【図３】第１実施形態に係る店舗側端末及びＰＯＳサーバーの内部構成を示すブロック図である。
【図４】第１実施形態に係る管理サーバー、クーポンサーバー、及びポイントサーバーの内部構成を示すブロック図である。
【図５】（ａ）〜（ｃ）は、第１実施形態に係る乱数とハッシュ回数との組み合わせによって生成されるハッシュ値を示す表である。
【図６】第１実施形態に係る認証処理のアルゴリズム概要を説明するシーケンス図である。
【図７】第１実施形態に係る認証機能の初期化処理を示すシーケンス図である。
【図８】第１実施形態に係る通信可能時の認証処理を示すシーケンス図である。
【図９】第１実施形態に係る通信不通時の認証処理を示すシーケンス図である。
【図１０】第１実施形態に係るエラー発生時の認証処理を示すシーケンス図である。
【図１１】第１実施形態に係る方法の全体動作を示すフローチャート図である。
【図１２】第２実施形態に係るユーザー端末の内部構成を示すブロック図である。
【図１３】第２実施形態に係る生成されるハッシュ値の遷移を示す表である。
【図１４】第３実施形態に係るユーザー端末の内部構成を示すブロック図である。
【図１５】第３実施形態に係る実施形態に係る店舗側端末の内部構成を示すブロック図である。
【図１６】第３実施形態に係るユーザー端末の表示部に表示される動的コード情報を示す説明図である。
【図１７】第３実施形態に係る有効性判定の判定処理を示すタイムチャート図である。
【図１８】第３実施形態に係る動的認証方法を示すフローチャート図である。
【発明を実施するための形態】
【００３５】
［第１実施形態］
（システムの概要）
以下に添付図面を参照して、本発明に係るシステムの実施形態を詳細に説明する。図１は、第１実施形態に係るシステムの全体構成を示す概念図である。
【００３６】
図１に示すように、本実施形態に係るシステムは、通信ネットワーク５上に配置される認証サーバー２と、ユーザーが使用し、認証サーバー２に通信ネットワーク５を通じて接続可能なユーザー端末１との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うワンタイム認証システムである。具体的に、本システムでは、ユーザー端末１において、ユーザーに付与される価値情報を管理する価値情報管理サーバー群を構成するクーポンサーバー３及びポイントサーバー４から電子クーポン情報及びポイント情報を取得するとともに、これらの情報に認証情報（「ワンタイムコード）及び決済情報を含めたワンタイムパスワードを生成し、当該ワンタイムパスワードをコード化して画面上に表示させるようになっている。
【００３７】
そして、当該ワンタイムパスワードを店舗側端末７ａに読み取らせることで、ワンタイムパスワードに応じた認証を行うとともに、電子クーポン又はポイントによる各種サービスを提供するものである。なお、「ワンタイムコード」とは、認証サーバーに対するアクセス用に発行される一度限り有効な認証情報であり、数字や文字、記号などのテキストデータで表現されるものの他、バーコードや、二次元バーコード、その他のコード化された図形などが含まれる。また、「価値情報」とは、店舗におけるサービスの提供を保証する情報であり、ポイントや電子クーポン、割引サービス等が含まれる。
【００３８】
このような本システムでは、通信回線を相互に接続して構築される通信ネットワーク５上に、決済サーバー６と、認証サーバー２と、ポイントサーバー４と、クーポンサーバー３と、ＰＯＳサーバー７と、無線基地局８と、無線基地局８を通じて無線通信が可能なユーザー端末１とを備えている。
【００３９】
通信ネットワーク５は、電話回線やＩＳＤＮ回線、ＡＤＳＬ回線、光回線などの公衆回線、専用回線、３Ｇ回線や、Ｗｉｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信回線などの種々の通信回線を相互に接続して構築される通信網であり、インターネットなどの通信プロトコルＴＣＰ／ＩＰを用いたＩＰ網が含まれ、このＩＰ網には、１０ＢＡＳＥ−Ｔや１００ＢＡＳＥ−ＴＸ等によるイントラネット（企業内ネットワーク）や家庭内ネットワークなどのＬＡＮなども含まれる。
【００４０】
本実施形態において、ユーザー端末１と認証サーバー２とを接続する通信ネットワーク５の通信経路には、連携用通信経路と認証用通信経路という異なる経路が含まれている。ここで、「認証用通信経路」とは、認証情報を認証サーバーとの間で安定して送受信するための通信経路であり、上記通信ネットワークと異なる経路やプロトコルでもよく、上記通信ネットワークに一部又は全部の通信経路が含まれていてもよい。この認証用通信経路としては、例えば、店舗に設置されたＰＯＳ端末などを、ユーザー端末と認証サーバーの間に介在させた経路とすることができ、ユーザー端末とＰＯＳ端末とは、リーダライタ装置やバーコードリーダ装置のような非接触通信によって接続されるものでよい。一方、「連携用通信経路」とは、上記の認証用通信経路とは異なる通信経路であり、上記通信ネットワーク上に構築され、特に３Ｇ回線やＷｉｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信回線を含み、ユーザー端末と認証サーバーとが直接接続され、一定のセキュリティが確保された通信経路である。無線基地局８は、図示しないゲートウェイ装置を通じて通信ネットワーク５に接続され、ユーザー端末１との間で無線通信接続を確立し、ユーザー端末１による通話やデータ通信を提供する装置である。
【００４１】
認証サーバー２は、通信ネットワーク５上に配置され、ユーザーが使用するユーザー端末１との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行うサーバー装置であり、本実施形態では、通信ネットワーク５を通じて、ユーザー端末１側からそれぞれ記憶保持する各認証情報を取得して照合し、その一致又は不一致に基づいて認証処理を行う認証部としての機能と、ポイントサーバー４及びクーポンサーバー３に対して、クーポン情報及びポイント情報についての利用可否の問い合せ、更新処理を実行させたり、決済サーバー６に対して、決済の利用可否の決済実行を指示したりするなど、本システム全体を管理する管理部としての機能とを有する。
【００４２】
店舗側端末７ａは、コード化された各種情報を取得する装置であり、店舗側端末７ａには、ユーザー端末１表示部１３ａに表示されたコード情報を光学的に読み取る読取手段が接続されており、認証用通信経路は、読取手段に接続されている。ここで「コード情報」とは、各データをコード化した情報であって、数字や文字等のテキストの組み合わせでもよく、バーコードや、ＱＲコード（登録商標）等の二次元コードのように、文字列等の情報がコード化され、コードに対応した図形情報により示されるものが含まれる。本実施形態において、このコード情報には、認証情報であるワンタイムコードのほか、電子クーポン情報、ポイント情報、決済情報などの購買情報が含まれ、ＱＲコード（登録商標）として表示されるものとする。そして、店舗側端末７ａは、ユーザー端末１の表示画面に表示されたコード情報を光学的に読み取り、読み取ったコード情報に基づくサービス内容を画面上に表示するとともに、読み取ったコード情報をＰＯＳサーバーに送信している。
【００４３】
なお、この店舗側端末７ａとしては、例えば現金の管理を行うレジスター装置であり、利用者の利用代金を計算したり、金銭の管理をする機能を備えていてもよい。また、店舗側端末７ａは、レジスター装置と接続可能な読取装置のみであってもよく、この場合には、演算処理機能及び無線通信機能を有した携帯可能なモバイルコンピューターやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、スマートフォン、タブレットＰＣ等を用いることができる。
【００４４】
ＰＯＳサーバー７は、各店舗を統括的に管理する本部側に設置されるサーバー装置であり、通信ネットワーク５を通じて認証サーバー２と接続されており、店舗側端末７ａによって読み取った認証情報を認証サーバー２に送信する。また、このＰＯＳサーバー７は、店舗側端末７ａとＰＯＳサーバー７との間で所定のデータを送受信する機能や、店舗側端末７ａから送られる売上情報等をデータベースに格納し、集計分析処理を行う機能などを備える 。なお、店舗は、例えば、コンビニエンスストアや飲食店等の対面により販売サービスを提供する施設であり、店員がレジスター等の決済処理を担当している。
【００４５】
決済サーバー６は、ユーザーに対して提供された商品又はサービスに関する決済処理を実行するサーバー装置であり、例えば、銀行や、クレジット会社などの課金処理に伴う料金の決済を行う金融機関が運営している。この決済サーバー６には、決済データベースが接続されており、決済データベース内には、ユーザー登録している各ユーザーに関する詳細な情報（氏名、住所、電話番号、メールアドレス、年齢、勤務先、商品の送付先（住所と異なる場合）、決済情報（クレジットカード番号、引落し口座番号等）が登録されている。この決済データベース内の情報に登録された決済情報に従って、業者は購入した商品に関して、クレジットカードによる販売代金の回収等の決済業務等を遂行する。
【００４６】
ポイントサーバー４は、金銭換算が可能となされた所定のポイントを付与すると共にそのポイントを管理するサーバー装置であり、ＤＲＡＭやハードディスクなどに顧客固有の所有ポイントを記憶しており、顧客のアクセスに応じてポイント情報をユーザー端末１に配信するとともに、顧客のサービス対価や商品購入代金の支払いなどに応じて、顧客固有の所有ポイントを更新する。
【００４７】
クーポンサーバー３は、商品購入の際に特典をユーザーに提供する電子クーポンの発行や、電子クーポンの管理（利用状況の収集、データ更新等）を行うサービス提供者が運用するサーバー装置であり、ＤＲＡＭやハードディスクなどに各種クーポン情報を記憶しており、顧客のアクセスに応じて電子クーポン情報をユーザー端末１に配信するとともに、配信した電子クーポンの利用に応じて記憶されている電子クーポンの情報を更新（消し込み等）を実行する。
【００４８】
なお、各種のサーバーは、単一のサーバー装置の他、Ｗｅｂサーバーやデータベースサーバーなど複数種のサーバー群から構成されることも可能であり、また、装置や機器等のハードウェアのみならず、その機能を持ったソフトウェア、又はこれらの組み合わせなどによっても構成することができる。また、データベースも単一のデータベース装置の他、リレーションシップ機能により連携される複数のデータベース群で構成することもできる。本実施形態において、各サーバー装置同士及びユーザー端末１とは、図示しない通信インターフェースを介して各種のデータを送受しているものとする。
【００４９】
ユーザー端末１は、ユーザーが使用し、通信ネットワーク５上に配置される認証サーバー２との間で、一度のみ有効なワンタイムパスワードを用いて、当該ユーザーの認証を行う機能を有する携帯端末であって、具体的には、ＣＰＵを備えた演算処理装置であり、無線通信機能を有した携帯可能なモバイルコンピューターやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、携帯電話機、スマートフォン、タブレットＰＣ等である。このユーザー端末１は、基地局等の中継点と無線で通信し、通話やデータ通信等の通信サービスを移動しつつ受けることができる。ユーザー端末１の通信方式としては、例えば、ＦＤＭＡ方式、ＴＤＭＡ方式、ＣＤＭＡ方式、Ｗ−ＣＤＭＡの他、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）方式等が挙げられる。また、このユーザー端末１は、デジタルカメラ機能、アプリケーションソフトの実行機能、或いはＧＰＳ機能等の機能が搭載されている。
【００５０】
このユーザー端末１は、ワンタイム認証プログラム（ＳＤＫ）が蓄積されており、このワンタイム認証プログラムをアプリケーション実行部１４によって起動させることで、認証情報であるワンタイムコードを生成するとともに、クーポンサーバー３及びポイントサーバー４から取得した電子クーポン情報及びポイント情報、決済情報、及び認証情報等を含めたワンタイムパスワードを生成し、画面上に表示させるようになっている。なお、このワンタイム認証プログラムは、認証サーバー２などインターネット側からダウンロードしたり、他の媒体を通じてインストールしたりすることで、ユーザー端末１に実装することができる。
【００５１】
（各装置の内部構造）
次いで、上述したシステムを構成する各装置の内部構造について説明する。図２は、第１実施形態に係るユーザー端末１の内部構成を示すブロック図であり、図３は、本実施形態に係る店舗側端末及びＰＯＳサーバーの内部構成を示すブロック図である。また、図４は、第１実施形態に係る認証サーバー２、クーポンサーバー３、ポイントサーバー４の内部構成を示すブロック図であり、図５（ａ）〜（ｃ）は、本実施形態に係る乱数及びハッシュ回数に応じて生成されるハッシュ値を示す表である。なお、説明中で用いられる「モジュール」とは、装置や機器等のハードウェア、或いはその機能を持ったソフトウェア、又はこれらの組み合わせなどによって構成され、所定の動作を達成するための機能単位を示す。
【００５２】
（１）ユーザー端末１
先ず、ユーザー端末１の内部構成について説明する。図２に示すように、ユーザー端末１は、無線インターフェース１１、メモリ１５と、アプリケーション実行部１４と、出力インターフェース１３と、入力インターフェース１２とを備えている。無線インターフェース１１は、通話を行うための移動通信用のプロトコルによる無線通信と、例えば無線ＬＡＮ等のデータ通信用のプロトコルによる無線通信とを実行する機能を備えている。無線インターフェース１１は、無線ＬＡＮ接続を行うためにIEEE 802.11bに準拠した送受信装置であり、モバイルコンピューターやＰＤＡにおいては、無線ＬＡＮアダプタ等により実現することができる。本実施形態において、無線インターフェース１１は、連携用通信経路に接続されており、クーポンサーバー３及びポイントサーバー４から電子クーポン情報及びポイント情報を取得したり、認証サーバー２と認証処理に関する各データを送受するようになっている。
【００５３】
入力インターフェース１２は、操作ボタンやタッチパネルなどユーザー操作を入力するデバイスである。また、出力インターフェース１３は、ディスプレイやスピーカーなど、映像や音響を出力するデバイスである。特に、この出力インターフェース１３には、液晶ディスプレイなどの表示部１３ａが含まれている。
【００５４】
メモリ１５は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種のアプリケーション用のプログラム（ワンタイムパスワード生成ソフトウェア等）、その他のデータ等などを記憶する記憶装置であり、このメモリ１５には、デバイス情報などのユーザー端末１に固有の端末固有識別子、ワンタイムコード生成に用いられる認証情報、電子クーポン情報、ポイント情報などが生成されたファイル内にシリアライズして保存される。ここで、ワンタイムパスコード生成に用いられるデータには、ＳＨＡ１等のユーザー側一方向性関数（以下、ハッシュ関数ＨＣと称する。）、ハッシュ関数ＨＣを適用する各世代の乱数Ｈ０〜乱数Ｈn、及びハッシュ関数の適用回数を保持しており、これらの組み合わせによって、図５（ａ）に示すように、各ハッシュ値Ｅを生成可能となっている。
【００５５】
なお、ここでの端末固有識別子は、ユーザーに固有のユーザー特定情報の１つであり、シリアルナンバーやＭＡＣアドレスその他のユーザー端末の製造時に付与された１つのユーザー端末に固有且つ単一の端末識別子である。なお、端末固有識別子に代わるユーザー特定情報としては、ユーザー毎に付与されるユーザー固有のユーザー識別子や、アプリケーションに固有のＩＤ、サービスに固有のＩＤ、又はこれらを組み合わせて定められるユニークな値など、１つの端末に複数付与される識別子を用いることもできる。そして、これらのユーザー特定情報は、ユーザーが操作して入力するものでもよく、自動的に入力又は送信されるものであってもよい。
【００５６】
また、乱数Ｈは、例えば、英数（アルファベット文字は、大文字、小文字を区別している）を組み合わせた文字列であり、本実施形態では、例えば４０桁の文字列で構成される。なお、ワンタイムコードの生成に利用される乱数などの認証情報は、安全のため暗号化した上で保存され、本アプリケーションを削除した場合には、これらのデータも削除されるようになっている。なお、メモリ１５には、前回までの認証に用いられた第１及び第２のワンタイムコードに関する乱数とハッシュ回数とを記憶しているものとする。
【００５７】
アプリケーション実行部１４は、一般のＯＳやブラウザソフトなどのアプリケーションを実行するモジュールであり、通常はＣＰＵ等により実現される。このアプリケーション実行部１４において、本発明のワンタイム認証プログラムが実行されることで、ワンタイムパスワード作成部１４ａと、連携処理部１４ｂと、価値情報取得部１４ｃと、認証結果取得部１４ｄとが仮想的に構築される。
【００５８】
連携処理部１４ｂは、連携用通信経路を通じて認証サーバー２と通信処理を行うモジュールであり、連携用通信経路を通じて、会員登録処理やワンタイムパスワードの初期設定処理を実行する。会員登録処理とは、少なくとも認証サーバーに対して、ユーザー特定情報と、連携時に必要なパスワードを登録するものであり、初期設定処理とは、認証処理に用いる乱数とハッシュ回数とをユーザー端末１及び認証サーバー２の相互において設定する処理である。そして、連携処理部１４ｂでは、初期設定処理時において、ワンタイムパスワード作成部１４ａで生成されたワンタイムコードによりハッシュ化されたハッシュ値を送出する。
【００５９】
価値情報取得部１４ｃは、クーポンサーバー３及びポイントサーバー４から自身が所持する電子クーポン情報及びポイント情報を取得するモジュールである。このクーポンサーバー３及びポイントサーバー４との通信は、認証用通信経路は用いられず、連携用通信経路などの通常の通信経路を通じて行われる。
【００６０】
ワンタイムパスワード作成部１４ａは、認証サーバー２に対するアクセス用に発行される一度限り有効なワンタイムパスワードを生成するモジュールであり、次回認証用コード作成部１４４と、今回認証用コード作成部１４３と、認証環境確認部１４１と、乱数選択部１４２とを備えている。そして、これらの各モジュールが実行されることで、第１及び第２のワンタイムコードを生成するとともに、この第１及び第２のワンタイムコードに購買情報（電子クーポン情報及びポイント情報、決済情報等）を含めたコード情報を生成し、そのコード情報をワンタイムパスワードとして画面上に表示させるようになっている。
【００６１】
ここで、「ワンタイムコード」とは、認証サーバーに対するアクセス用に発行される一度限り有効な認証情報であり、数字や文字、記号などのテキストデータで表現されるものの他、バーコードや、二次元バーコード、その他のコード化された図形などが含まれ、本実施形態では、ハッシュ関数ＨＣを用いて作成されるハッシュ値である。具体的には、図５（ａ）に示すように、各世代の乱数Ｈ０〜乱数Ｈnと、ハッシュ関数の適用回数とを用いてハッシュ値を生成する。特に本実施形態において、ワンタイムパスワード作成部１４ａは、１度の認証処理において、次回認証用コード作成部１４４と、今回認証用コード作成部１４３とを実行させ、異なる２つのハッシュ値を生成する。ここでは、２つのハッシュ値のうち、一方のハッシュ値を次回認証用のハッシュ値（以下、第１のワンタイムコードと称する。）として用い、他方のハッシュ値を今回認証用のハッシュ値（以下、第２のワンタイムコードと称する。）として用いる。
【００６２】
次回認証用コード作成部１４４は、次世代乱数を発生させ、この次世代乱数に対してハッシュ関数ＨＣによる演算を所定回数だけ繰り返して次回認証用ハッシュ値である第１のワンタイムコードを生成するモジュールである。ここで「次世代乱数」とは、前回までのワンタイムコード生成に用いられていない新たな乱数であり、次回認証用コード作成部１４４は、常時、新しい次世代乱数を用いて第１のワンタイムコードを生成する。
【００６３】
一方、今回認証用コード作成部１４３は、次世代乱数を発生させる前に発生させた前世代乱数に対して、ハッシュ関数ＨＣによる演算を所定回数だけ繰り返して今回認証用のハッシュ値である第２のワンタイムコードを生成するモジュールである。ここで、「次世代乱数を発生させる前に発生させた前世代乱数」とは、前回以前の認証時において第２のワンタイムコードを生成する際に用いられた乱数、又は前回の認証時において第１のワンタイムコードを生成する際に用いられた乱数のいずれかである。
【００６４】
また、ワンタイムパスワード作成部１４ａは、認証環境確認部１４１を有している。認証環境確認部１４１は、ユーザー端末１と認証サーバー２との認証環境を確認するモジュールである。ここで、認証環境とは、認証処理を行うための環境であって、例えば、ユーザー端末１と認証サーバー２との連携用通信経路による通信状態や、エラー発生時（例えば、所定の処理段階において、不具合が発生し、認証サーバー２が保持する認証情報と、ユーザー端末１が保持する認証情報が一致しない場合など）が含まれる。
【００６５】
ここで、連携用通信経路による通信状態とは、ユーザー端末が通信可能エリア内に位置しており、連携用通信経路を通じて両者が接続されている状態と、ユーザー端末が通信可能エリア外に位置したり、通信障害などが発生したりなど連携用通信経路を通じて接続されていない状態とが含まれる。
【００６６】
そして、連携用通信経路で両者が接続されている場合には、ユーザー端末１から認証サーバー２に対して、次回認証用の情報である認証結果の確認要求を行い、認証サーバー２から認証結果が返信される。ここで、確認される「認証結果」には、認証の可否の他、認証サーバー２のワンタイムコードデータベース２ａに現在保存されている第２のワンタイムコードに係る乱数の世代及びハッシュ回数などを含めることができる。なお、第２のワンタイムコードを認証結果として返信するのは、第１のワンタイムコードのハッシュ値は常にＭＡＸ値であり認証されたか否かが不明であるのに対し、前回認証時に用いられる第２のワンタイムコードのハッシュ値は減少しているので、確実に認証されたか否かを確認できるからである。この際、認証環境確認部１４１は、認証サーバー２に対して、端末固有識別子などのユーザー特定情報を送信する。
【００６７】
一方、連携用通信経路で両者が接続されていない場合には、ユーザー端末からの確認要求は受信されず、認証結果は返信されない。そして、認証環境確認部１４１は、各認証環境の確認結果に応じて、その確認結果を乱数選択部１４２に送信したり、連携処理部１４ｂに送信したりする。
【００６８】
そして、ワンタイムパスワード作成部１４ａの各モジュールでは、ユーザー端末１と認証サーバー２との認証環境に応じて、ワンタイムパスワードの生成及び認証処理の方法を変更している。具体的に、乱数選択部１４２は、認証時において、通信ネットワーク５の通信状態に応じて第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数を選択するモジュールである。ここでは、連携用通信経路が通信可能であって認証結果を取得した場合には、前回作成した第１のワンタイムコードに用いられた次世代乱数を選択する。一方、連携用通信経路が不通であり、認証結果を取得できない場合には、前回作成した第２のワンタイムコードに用いられた前世代乱数を選択する。
【００６９】
そして、今回認証用コード作成部１４３は、乱数選択部１４２において選択された次世代乱数又は前世代乱数に対して、ハッシュ関数ＨＣによる演算を、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して、今回認証用に用いるワンタイムスタンプとして、第２のワンタイムコードを生成する。
【００７０】
そして、ワンタイムパスワード作成部１４ａは、この第２のワンタイムコード及び第１のワンタイムコードに、購買情報、決済情報、及びユーザー情報を含めたコード情報を生成し、コード化されたコード情報をワンタイムパスワードとして表示部１３ａ上に表示する。このように、ワンタイムパスワード作成部１４ａでは、認証環境に応じて生成するワンタイムコードを変更させ、認証サーバー２では、変更されたワンタイムコードに基づいて、ワンタイムパスワードを生成して認証処理を行うようになっている。なお、このワンタイムスタンプの生成及びこのワンタイムパスワードを用いた具体的な認証処理については後述する。認証結果取得部１４ｄは、通信ネットワーク５の通信状態に応じて選択され、生成されたワンタイムパスワードに基づく認証処理の結果を取得するモジュールである。
【００７１】
（２）ＰＯＳサーバー及び店舗側端末
次いで、ＰＯＳサーバー及び店舗側端末の内部構成について説明する。図３は、ＰＯＳサーバー及び店舗側端末の内部構成を示すブロック図である。店舗側端末７ａは、読取手段７６と、制御部７４と、メモリ７５と、通信インターフェース７１と、入力インターフェース７２と、出力インターフェース７３とを備えている。読取手段７６は、ユーザー端末１で表示したコード情報を読み取るためのリーダ装置であり、ユーザー端末１の液晶画面に表示されたＱＲコード（登録商標）を読取可能となっている。
【００７２】
制御部７４は、ＣＰＵやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のプロセッサ、メモリ、及びその他の電子回路等のハードウェア、或いはその機能を持ったプログラム等のソフトウェア、又はこれらの組み合わせなどによって構成された演算モジュールであり、各部の動作制御、ユーザー操作に対する種々の処理を行っている。この制御部７４は利用するクーポン情報及びポイント情報を表示部７３ａに表示したり、読取手段７６で読み取ったコード情報をＰＯＳサーバー７に送信する。また、店舗側端末７ａがレジスター端末である場合、制御部７４は、現金決済処理機能を備えている。
【００７３】
通信インターフェース７１は、データをパケットとして送受信するモジュールであり、入力インターフェース７２は、テンキーや会計実行キーなどユーザー操作を入力するデバイスである。また、出力インターフェース７３は、ディスプレイやスピーカーなど映像や音響を出力するデバイスである。特に、この出力インターフェース７３には、液晶ディスプレイなどの表示部７３ａが含まれ、読取手段７６で読み取ったコード情報に基づいた、ポイント情報やクーポン情報を表示させている。メモリ７５は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や会計処理プログラム、その他のデータ等などを記憶する記憶装置である。
【００７４】
一方、ＰＯＳサーバー７には、通信インターフェース７０ａと、制御部７０ｂと、ＰＯＳ情報データベース７０ｃとを備えている。通信インターフェース７０ａは、データをパケットとして送受信するモジュールである。本実施形態では、この通信インターフェース７０ａを介して、店舗側端末７ａからコード情報を取得するとともに、取得したコード情報を認証サーバー２に送信する。また、認証サーバー２から認証結果を受信し、店舗側端末７ａに送信する。
【００７５】
制御部７０ｂは、ＣＰＵやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のプロセッサ、メモリ、及びその他の電子回路等のハードウェア、或いはその機能を持ったプログラム等のソフトウェア、又はこれらの組み合わせなどによって構成された演算モジュールであり、実店舗から送信される実店舗に関する情報を集計して、売上や商品管理など一般的な商品売上処理を実行する。また、制御部７０ｂは、ユーザー端末１から読み取ったワンタイムパスワードを、認証用経路を通じて認証サーバー２に送信する。なお、ここでは、店舗側端末７ａが取得したワンタイムパスワードを、ＰＯＳサーバー７を経由させて認証サーバー２に送信したが、例えば、店舗側端末７ａから直接認証サーバー２に送信してもよい。また、制御部７０ｂは、認証処理に関係するユーザーの消費行動に関する情報を購買情報として取得する機能も有し、ＰＯＳ情報データベース７０ｃに蓄積するとともに、ワンタイムパスワードとともに認証サーバー２に送信する。ここで、「消費行動に関する情報」とは、いわゆるＰＯＳデータが含まれ、購入した商品名、商品コード、購入日時、店舗名、数量などであり、電子クーポンやポイントの使用情報も含まれる。
【００７６】
ＰＯＳ情報データベース７０ｃは、ＰＯＳシステムに用いられる各種のデータを蓄積するデータベース群であり、例えば、実店舗を識別する実店舗ＩＤに、実店舗の位置や売上及び在庫商品などの実店舗に関する情報を関連付けて蓄積したり、各商品を識別する商品コードにその商品の販売価格を関連付けて記憶する。また、電子クーポンの情報に基づいたサービス内容などについても記憶している。さらに、このデータベース７０ｃには、顧客を識別するアカウントＩＤに、顧客の購入履歴情報（購入した商品、実店舗情報、購入金額、購入日時等）、ポイント情報、顧客の個人情報（氏名、住所、電話番号、メールアドレス、性別、年齢など）を蓄積することもできる。
【００７７】
（３）認証サーバー２の内部構成
認証サーバー２には、図４に示すように、ワンタイムコードデータベース２ａと、購買履歴情報蓄積部２ｂとが接続されている。ワンタイムコードデータベース２ａは、認証処理に関する情報を蓄積するデータベースであり、本実施形態では、ユーザー特定情報に、パスワード、本ワンタイム認証プログラムを含むアプリケーションのＩＤ、認証処理に関する情報、クーポンサーバー３及びポイントサーバー４でユーザーを識別するアカウントＩＤ、決済処理に用いられるトランザクションＩＤなどが関連付けて蓄積されている。
【００７８】
なお、認証サーバー２に蓄積されるユーザー特定情報としては、シリアルナンバーやＭＡＣアドレスその他のユーザー端末の製造時に付与された１つのユーザー端末に固有且つ単一のデバイスＩＤのほか、ユーザー毎に付与されるユーザー固有のユーザーＩＤや、アプリケーションに固有のＡＰＰＩＤ、サービスに対するアクセス権限に固有のアクセスＩＤ、又はこれらを組み合わせて定められるユニークな値など、１つの端末に複数付与される識別子が含まれる。
【００７９】
ここで、認証処理に関する情報とは、サーバー側一方向性関数であるハッシュ関数ＨＳ、ハッシュ関数ＨＳが適用された各世代の乱数Ｈｎ(ｎは第１世代〜第ｎ世代)と、ハッシュ関数の適用回数、ハッシュ関数ＨＣが含まれる。なお、認証処理に関する情報には、トークン情報及びトークン情報の有効期限が蓄積される。これらの情報は、ユーザー特定情報に関連付けられて蓄積されている。また、前回使用された第２のワンタイムコードに、購買情報が関連付けられて蓄積されている。ここで、購買情報には、ポイント情報、電子クーポン情報、決済情報など、認証処理に関係するユーザーの消費行動に関する情報である。なお、この情報は、認証用コード保存部２６でデータベース内に保存された、ユーザー特定情報とは関連付けされることなく保存される。これにより、認証用のワンタイムコードとユーザー特定情報とを紐付けるデータはないので、購買情報とユーザーとを紐付けることできず、個人情報を保護することができる。
【００８０】
また、ワンタイムコードデータベース２ａには、決済処理に関するトランザクション情報が含まれており、このトランザクション情報には、トランザクションを識別するトランザクションＩＤに、使用されたワンタイムパスワード、支払い総額、使用日時、アカウントＩＤが関連付けて記憶されている。さらに、ワンタイムコードデータベース２ａには、使用履歴情報が含まれており、使用履歴情報には、店舗で支払時に生成されたレシートを識別するレシートＩＤに、アカウントＩＤ、支払い金額、レシート内容、受領日時、利用ポイント、利用クーポンが蓄積されている。このようなワンタイムコードデータベース２ａに蓄積される情報は、必要に応じて外部からの問い合せに対応可能であるものとする。
【００８１】
購買履歴情報蓄積部２ｂは、購買情報を、第１又は第２の認証用ワンタイムコード及び認証処理の結果と関連付けてデータベースであり、認証管理部２０において、コード情報に含まれる購買情報が取得され、この購買情報を、第１又は第２の認証用ワンタイムコード及び認証処理の結果と関連付けて蓄積している。
【００８２】
一方、認証サーバー２には、認証管理部２０と連携部２０ａとを備えている。認証管理部２０は、認証処理全体を管理するモジュール群であり、ユーザー端末１から、認証用通信経路（読取手段７６）を介して、第１のワンタイムコード及び第２のワンタイムコード等を含むワンタイムパスワード取得して認証処理を実行したり、連携用通信経路を通じて初期設定処理及び連携処理等を行う。具体的に、認証管理部２０には、連携処理部２１と、初期化処理部２２と、認証用コード選択部２３と、低減回数補完部２４と、認証部２５と、認証用コード保存部２６とを備えている。
【００８３】
連携処理部２１は、連携用通信経路を通じてユーザー端末１からのログイン等の連携開始処理を受け付けるモジュールであり、本実施形態では、会員登録処理又は初期設定処理時においてユーザー特定情報及びパスワードの入力を受け付けてログインの認証を行う。なお、連携処理部２１は、最初にユーザー端末１からアクセスがあった場合には、会員登録処理を行い、ユーザー特定情報及びパスワードを取得する。取得したユーザー特定情報及びパスワードは、ハッシュ関数ＨＣとともにワンタイムコードデータベース２ａに蓄積される。
【００８４】
初期化処理部２２は、連携用通信経路を通じて、認証処理に用いる乱数及びハッシュ回数を初期化するモジュールである。ユーザー端末１から初期化の操作が行われると、使用される各世代の乱数Ｈｎ(ｎは第１世代〜第ｎ世代)と、所定ハッシュ回数とを新たに決定する。この際、初期化処理部２２では、ユーザー端末１の次回認証用コード作成部１４４で初回に生成された第１のワンタイムコードをユーザー特定情報とともに取得して、ワンタイムコードデータベース２ａに蓄積する。
【００８５】
認証用コード保存部２６は、ユーザー端末１から送信されたワンタイムコードをワンタイムコードデータベース２ａ内に保存するモジュールであり、認証用通信経路及び連携用通信経路を通じて取得したデータを保存する。ここで、連携用通信経路を通じて、ユーザー端末１上において初回に生成された第１のワンタイムコードを取得すると、認証用コード保存部２６は、この第１のワンタイムコードを用いて、ハッシュ関数ＨＳを用いた演算により認証用第１のワンタイムコードを生成し、認証用第１のワンタイムコードと、ユーザー特定情報と関連付けて保存する。
【００８６】
また、認証用通信経路を通じて、第１のワンタイムコード及び第２のワンタイムコードを取得すると、認証用コード保存部２６は、第１のワンタイムコードを用いて、ハッシュ関数ＨＳを用いた演算により認証用第１のワンタイムコードを生成するとともに、第２のワンタイムコードを用いて、ハッシュ関数ＨＳを用いた演算により認証用第２のワンタイムコードを生成し、これら第１及び第２の認証用ワンタイムコードと、ユーザー特定情報と関連付けてワンタイムコードデータベース２ａ内に保存する。
【００８７】
認証用コード選択部２３は、ユーザー端末１から認証用通信経路を通じて取得したワンタイムパスワードの認証を行う際、通信状態に応じて、認証用第１のワンタイムコード又は認証用第２のワンタイムコードのいずれかを選択して認証用コード保存部２６から取得するモジュールである。ここで、認証用コード選択部２３は、ワンタイムパスワードが送信される前に、認証結果の確認が連携用認証経路を通じてユーザー端末１から送信されているか否かに応じて通信状態を判別しており、認証結果の確認を取得している場合には、連携用通信経路での通信が可能と判断し、認証結果の確認を取得していない場合には、連携用通信経路での通信が不通であると判断する。
【００８８】
そして、認証用コード選択部２３では、連携用通信経路での通信が可能である場合には、認証用第１のワンタイムコードを選択し、連携用通信経路での通信が不通である場合には、認証サーバー２と同期が確認できている最終世代のワンタイムコード、すなわち、認証用第２のワンタイムコードを選択する。
【００８９】
低減回数補完部２４は、認証管理部２０が取得したワンタイムパスワードのうち第２のワンタイムコードに対して、低減回数分のハッシュ関数ＨＣによる演算を実行するモジュールである。ここでの低減回数分とはハッシュ回数１回分である。
【００９０】
認証部２５は、認証用コード選択部２３が選択した認証用第１のワンタイムコード又は認証用第２のワンタイムコードと、低減回数補完部２４で演算を実行した第２のワンタイムコードとに基づいて、認証処理を行うモジュールである。なお、認証管理部２０は、ユーザー端末１に対して認証結果を送信する機能を有している。また、認証管理部２０は、コード情報に含まれる購買情報を取得し、この購買情報を、ユーザー特定情報及び認証処理の結果と関連付けて購買履歴情報蓄積部２ｂに蓄積する。購買履歴情報蓄積部２ｂは、購買情報を、第１又は第２の認証用ワンタイムコード及び認証処理の結果と関連付けてデータベースである。
【００９１】
連携部２０ａは、通信ネットワーク５を通じてクーポンサーバー３、ポイントサーバー４、及び決済サーバー６と連携を取り、決済完了するまでの各処理を実行するモジュールである。具体的に、クーポンサーバー３及びポイントサーバー４は、認証用コード保存部２６に保存された情報を、必要に応じて問い合せることが可能であり、連携部２０ａは、クーポンサーバー３及びポイントサーバー４と連携を取り、クーポン及びポイントの利用可否を判断したり、認証処理後にクーポン及びポイントの消し込み処理を実行させたりする。また、連携部２０ａは、認証処理の後、決済サーバー６に対して、支払い金額などの各種決済情報を送信する。決済サーバー６は、認証用コード保存部２６に保存された情報を、必要に応じて問い合わせることが可能であり、決済サーバー６は、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行する。
【００９２】
（４）クーポンサーバー３の内部構成
このクーポンサーバー３には、クーポンデータベース３ａが接続されている。クーポンデータベース３ａには、電子クーポン情報を蓄積するデータベースであり、本実施形態では、クーポン識別情報に、電子クーポンの内容、電子クーポンの条件、割引率、割引額、有効期限、及び商品コードなどが関連付けて記憶されているとともに、ユーザーを識別するユーザー特定情報とは異なるアカウント情報と利用日時情報が紐付けられる。
【００９３】
一方、クーポンサーバー３には、クーポン取得部３１と、利用可否確認部３２と、利用状況更新部３３と、クーポン追加部３４とを備えている。クーポン取得部３１は、ユーザー端末１から電子クーポン情報の取得操作があった場合に、クーポンデータベース３ａ内から当該ユーザーが所持している電子クーポン情報をユーザー端末１に送信するモジュールであり、クーポンデータベース３ａ内の当該クーポン識別情報にアカウント情報を付加する。
【００９４】
利用可否確認部３２は、認証サーバー２から送信された電子クーポン情報に応じて、クーポンデータベース３ａ内の電子クーポン情報を参照し、当該電子クーポン情報が利用可能か否かを判別するモジュールである。この判別処理とは、例えば、利用する電子クーポンがデータベース内に蓄積されているか否かや、電子クーポン情報の利用期限を超過していないか否かなどである。
【００９５】
利用状況更新部３３は、利用された電子クーポン情報に基づいて、クーポンデータベース３ａ内の電子クーポン情報を更新するモジュールである。具体的に、利用状況更新部３３は、使用済みの電子クーポン情報を識別するクーポン識別情報に基づいて、データベース３ａ内の電子クーポン情報を消し込む処理を行う。クーポン追加部３４は、クーポンサーバーの管理者の操作に応じて電子クーポン情報をクーポンデータベース３ａ内に追加するモジュールであり、例えば、商品又はサービスを識別する識別情報に、割引率、有効期限等を設定する。
【００９６】
（５）ポイントサーバー４の内部構成
このポイントサーバー４には、ポイントデータベース４ａが接続されている。ポイントデータベース４ａは、ポイント情報を蓄積するデータベースであり、本実施形態では、ユーザーを識別するアカウント情報に、利用可能なポイント数、各ポイントの利用期限情報、更新日時等が関連付けて記憶されている。
【００９７】
一方、ポイントサーバー４には、ポイント取得部４１と、利用可否確認部４２と、利用状況更新部４３と、ポイント追加部４４とを備えている。ポイント取得部４１は、ユーザー端末１からポイント情報の取得操作があった場合に、ポイントデータベース４ａ内から当該ユーザーが所持しているポイント数をポイント情報としてユーザー端末１に送信するモジュールである。
【００９８】
利用可否確認部４２は、認証サーバー２から送信されたポイント情報に応じて、ポイントデータベース４ａ内のポイント情報を参照し、当該ポイント情報が利用可能か否かを判別するモジュールである。この判別処理とは、例えば、利用するポイント数がデータベース内に蓄積されているポイント数より少ないか否かや、ポイント数の利用期限を超過していないか否かなどである。
【００９９】
利用状況更新部４３は、利用されたポイント情報に基づいて、ポイントデータベース４ａ内のポイント情報を更新するモジュールである。具体的に利用状況更新部４３は、認証サーバー２から利用されたポイント情報を取得すると、データベース４ａに記録されているポイント数から、利用されたポイント数を減算する。
【０１００】
ポイント追加部４４は、ポイント管理者の操作に応じてポイントデータベース４ａ内のポイント情報を追加するモジュールである。ポイント情報を追加する場合とは、例えば、商品購入時の支払い金額に対して所定の割合を乗じた数値をポイントとして還元してもよく、また、単にポイント購入として支払われた金額に応じてポイントを追加してもよい。このポイント情報は、アカウント情報と関連付けて記憶される。
【０１０１】
（ワンタイムパスワードを用いた認証処理のアルゴリズム）
次いで、ワンタイムパスワード認証のアルゴリズムの概要について詳述する。図６は、本実施形態に係る認証処理のアルゴリズムを説明するシーケンス図である。なお、ここでは、認証環境に応じた選択処理は行われないものとする。
【０１０２】
次回認証用コード作成部１４４は、先ず、認証実行の前提として、認証サーバー２に記憶させる初回の第１のワンタイムコードを作成する。具体的に、図５（ａ）に示すように、最初の乱数Ｈ０を発生させ（Ｓ１０１）、この乱数Ｈ０をユーザー端末１のハッシュ関数ＨＣでハッシュ化して、以下のようにハッシュ値Ｅ０を算出する（Ｓ１０２）。
【数１】
0005978325.tif 000002
次いで、次回認証用コード作成部１４４は、下記のように、算出したハッシュ値Ｅ０に対し、ハッシュ関数ＨＣによる演算を所定回数（Ｍ）だけ繰り返して第１のワンタイムコード（ハッシュ値Ｅ０Ｍ）を算出する（Ｓ１０３）。
【数２】
0005978325.tif 000003
その後、ワンタイムパスワード作成部１４ａは、Ｍ回ハッシュ化した第１のワンタイムコードとユーザー特定情報とを認証サーバー２に送信する（Ｓ１０４）。
【０１０３】
認証サーバー２の初期化処理部２２では、第１のワンタイムコード（ハッシュ値ＥＭ０）を取得すると（Ｓ１０５）、以下のように、ハッシュ値Ｅ０Ｍに対してハッシュ関数ＨＳを用いた演算により、認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）を算出する（Ｓ１０６）。
【数３】
0005978325.tif 000004
その後、初期化処理部２２では、認証用第１のワンタイムコードをユーザー特定情報と関連付けてワンタイムコードデータベース２ａに保存する（Ｓ１０７）。
【０１０４】
次いで、ユーザー端末１側では、電子クーポン又はポイントを決済する場合、ワンタイムパスワードを生成する。この際、ワンタイムパスワード作成部１４ａは、次回認証用のワンタイムコードを生成する。次回認証用コード作成部１４４では、図５（ａ）に示すように、最初の乱数Ｈ０とは異なる新しい世代の乱数Ｈ１を抽出し、次世代の乱数Ｈ１をユーザー端末１のハッシュ関数ＨＣでハッシュ化して以下のようにハッシュ値Ｅ１を算出する。
【数４】
0005978325.tif 000005
【０１０５】
次いで、次回認証用コード作成部１４４は、算出したハッシュ値Ｅ１に対しハッシュ関数ＨＣによる演算を所定回数（Ｍ回）だけ繰り返して、以下のように次回認証用の第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）を算出する。
【数５】
0005978325.tif 000006
【０１０６】
次いで、今回認証用コード作成部１４３は、今回認証用のワンタイムスタンプとして、第２のワンタイムコードを生成する。ここでは、前回の通信時に、第１のワンタイムコード生成に用いた乱数に対し、所定回数よりも低減回数分（マイナス１回分）だけ少ない回数を繰り返したハッシュ値を生成する。ここでは、ハッシュ値Ｅ0をＭ−１回ハッシュ化し、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）を算出する（Ｓ１０９）。
【０１０７】
このように生成された第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）と第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）とがワンタイムパスワードとなる。そして、ワンタイムパスワード作成部１４ａでは、ワンタイムパスワードに、ユーザー特定情報及び購買情報（クーポン情報及びポイント情報、及び決済情報）を含めたコード情報を生成し、店舗側端末７ａの読取手段を用いて、コード情報を読み取らせ、ワンタイムパスワードを認証サーバー２に送信する（Ｓ１１０）。
【０１０８】
ここで、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）はサーバーに一度も送っていないデータなので正しいユーザー端末以外は知り得ないデータである。また、ハッシュ関数の性質から、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）は、ステップＳ１０４で送信した初回の第１のワンタイムコード（ハッシュ値Ｅ０Ｍ）からも、ワンタイムコードデータベース２ａに蓄積されている認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）からも求めることはできない。さらに、今回生成された第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）は、新しい乱数Ｈ１から生成されたものであるため、これも予測することができない。
【０１０９】
認証サーバー２の認証管理部２０では、これら第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）と第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）との情報を取得すると（Ｓ１１１）、以下のように、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）に対して低減回数分のハッシュ関数ＨＣによる演算を行いハッシュ値Ｅ’０Ｍ−１を生成し、さらに、サーバー側のハッシュ関数ＨＳによる演算によりハッシュ値Ｅ’0Ｍを算出する（Ｓ１１２）。
【数６】
0005978325.tif 000007
【０１１０】
なお、ハッシュ値Ｅ’０Ｍ−１を生成できるのは、ハッシュ関数ＨＳを知っている認証サーバー２だけである。そして、認証部２５は、算出されたハッシュ値と、ワンタイムコードデータベース２ａに保存されている認証用第１のワンタイムコード（ハッシュ値Ｅ’ ０Ｍ）とを比較して認証処理を行う（Ｓ１１３）。ハッシュ値が異なる場合（Ｓ１１４における“Ｎ”）は、認証が失敗した旨の認証結果をＰＯＳサーバーに送信する（Ｓ１１９）。一方、ハッシュ値がどちらも同一のハッシュ値である場合にはユーザーの認証は成功される（Ｓ１１４における“Ｙ”）。ここでは、どちらのワンタイムコードもハッシュ値Ｅ’０Ｍとなるため、認証は成功する。
【０１１１】
認証が成功すると認証部２５は、第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）に対して、ハッシュ関数ＨＳを用いた演算を行い、次回の認証用第１のワンタイムコード（ハッシュ値Ｅ’１Ｍ）を以下のように算出する（Ｓ１１５）。
【数７】
0005978325.tif 000008
【０１１２】
そして、算出した認証用第１のワンタイムコード（ハッシュ値Ｅ’１Ｍ）はユーザー特定情報に関連付けて上書き保存をする（Ｓ１１６）。なお、今回認証用として用いた第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）も、ハッシュ関数ＨＳを用いた演算を行い、次回の認証用第２のワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）を算出し、ユーザー特定情報に関連付けてワンタイムコードデータベース２ａに保存する（Ｓ１１７）。その理由は後述する。また、認証部２５は、購買情報を、今回認証用に用いた認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）と関連付けて保存する（Ｓ１１８）。これにより、ワンタイムコードデータベース２ａには、認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）とユーザー特定情報とを紐付けるデータはないため、ユーザーを特定することはできなくなる。
【０１１３】
また、ステップＳ１１５で算出した新たな認証用第１のワンタイムコード（ハッシュ値Ｅ’１Ｍ）と、保存された認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）とは、異なる乱数を用いているため何ら関係性はない。さらに、ワンタイムコードデータベース２ａには、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）を記憶しているが、ハッシュ関数の性質により、認証用第１のワンタイムコード（ハッシュ値Ｅ’０Ｍ）と第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）とは、どちらもいずれかのハッシュ値から他方を求めることは困難である。その後、認証管理部２０は、ユーザー端末１又は店舗側端末７ａに認証結果を送信し（Ｓ１１９）、ＰＯＳサーバーの画面上には認証結果が表示される（Ｓ１２０）。
【０１１４】
（ワンタイムパスワードを用いた認証機能の各処理について）
次いで、上述したワンタイムパスワードのアルゴリズムを本システム上で動作させた場合の各処理について説明する。
【０１１５】
（１）ワンタイムパスワードの初期化処理
初めに、ワンタイムパスワードの初期化処理について説明する。図７は、本実施形態に係る認証機能の初期化処理を示すシーケンス図である。初期化処理とは、ユーザー端末１及び認証サーバー２において、使用する乱数及びハッシュ回数を設定するものであり、この処理は、ワンタイム認証プログラムを最初に実行した場合や、ユーザー操作によって実行される。
【０１１６】
具体的に、ワンタイムパスワード作成部１４ａにおいて、ワンタイム認証プログラムが実行されると、ユーザー端末１の画面上において、ユーザーＩＤやパスワードを入力させる入力欄が表示される。なお、この入力欄における入力としては、ユーザーＩＤの他、端末ＩＤやＡＰＰＩＤなどのユーザー特定情報が含まれ、これらのＩＤは、ユーザーが手操作で入力する他、端末側から自動的に入力或いは送信される場合が含まれる。そして、ユーザー操作又は自動入力によって、ユーザー特定情報及びパスワードが入力されると、これらのデータが認証サーバー２に送信される（Ｓ２０１）。ここで認証サーバー２側では、会員登録処理は実行されており、ワンタイムコードデータベース２ａ内には予めユーザー特定情報（ユーザーＩＤやデバイス情報等）とパスワードが登録されているものとする。
【０１１７】
そして、認証サーバー２の連携処理部２１では、ワンタイムコードデータベース２ａに記録されているユーザー特定情報（ユーザーＩＤやデバイス情報等）及びパスワードに基づいてパスワード認証を行う（Ｓ２０２）。その後、認証サーバー２では、パスワード認証が成功した場合には、ユニークなデータであるトークンを発行して、ユーザー端末１に送信する（Ｓ２０３）。
【０１１８】
ユーザー端末１のワンタイムパスワード作成部１４ａでは、取得したトークンに基づいて認証サーバー２にアクセスし、認証サーバー２では、ワンタイムパスワードの初期化が行われる（Ｓ２０４）。ここでは、使用される各世代の乱数Ｈｎ(ｎは第１世代〜第ｎ世代)と、所定ハッシュ回数とを新たに決定する。その後、認証サーバー２は、認証結果をユーザー端末１に送信する（Ｓ２０５）。
【０１１９】
なお、ワンタイム認証プログラムを最初に実行した場合には、ワンタイム認証プログラムは、新規登録処理を行うために、認証サーバー２にアクセスする。そして、ユーザー端末１の画面上において、ユーザー特定情報（デバイス情報）及びパスワードの設定が行われ、これらのデータが認証サーバー２のワンタイムコードデータベース２ａに登録される。この際、ユーザーの個人情報（氏名、年齢、性別等）の他、決済情報（クレジットカード番号等）なども登録される。
【０１２０】
（２）認証環境に応じた認証処理について
次いで、認証環境に応じたユーザー端末１と認証サーバー２の認証処理について説明する。図８は、本実施形態に係る通信可能時における処理を示すシーケンス図である。また、図９は、本実施形態に係る通信不通時における処理を示すシーケンス図であり、図１０は、本実施形態に係るエラー発生時における処理を示すシーケンス図である。
【０１２１】
なお、ここでは、どのようなハッシュ値が生成されるかを図５（ｂ）及び（ｃ）を用いて説明するものとし、以下の説明において、前回の認証処理では、今回認証のタイムスタンプとしての第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）が送信され、次回認証用として第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）が送信されたものとする。そして、認証用コード保存部２６では、第１のワンタイムコード及び第２のワンタイムコードに対し、ハッシュ関数ＨＳを用いた演算を行い、認証用第１のワンタイムコード（ハッシュ値Ｅ’１Ｍ）、認証用第２のワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）を生成し、これら第１及び第２の認証用ワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）と、ユーザー特定情報とが関連付けて保存されているものとする。そして、ここでは、第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）を第２のワンタイムコードαと称し、第１のワンタイムコード（ハッシュ値Ｅ１Ｍ）を第１のワンタイムコードβと称する。また、今回の認証処理において生成され、ワンタイムコードとなる第２のワンタイムコードをα１と称し、第１のワンタイムコードをβ１と称するものとする。
【０１２２】
（Ａ）通信可能状態にある場合の処理
先ず、ユーザー端末１と認証サーバー２とが通信可能である場合の処理について説明する。図８に示すように、ユーザー端末１は、認証結果の確認を行うため、連携用通信経路を通じて、認証サーバーにアクセスする。ここでは、通信可能であり、ユーザー特定情報（端末固有識別子）を認証サーバー２に送信する（Ｓ３０１）。認証サーバー２の認証管理部２０では、認証結果の情報を送信する（Ｓ３０２）。この際、認証管理部２０は、前回使用されたワンタイムパスワード（各ハッシュ値）は送信しないようにする。ユーザー端末１の認証環境確認部１４１では、認証結果の情報を取得すると、通信環境があると判断し、その結果を乱数選択部１４２及び今回認証用コード作成部１４３に送信する。これにより、ワンタイムパスワード作成部１４ａでは、認証結果の情報が得られ、通信環境がある場合に応じた第２のワンタイムコードα１及び次回認証用ハッシュ値β１が作成される（Ｓ３０３）。
【０１２３】
具体的に、乱数選択部１４２では、通信状態に応じて、第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数のいずれか選択する。ここでは、通信可能であるため、乱数選択部１４２は、前回送信された、第１のワンタイムコードに用いられた乱数（ここでは、乱数Ｈ１）を選択する。そして、今回認証用コード作成部１４３では、この乱数Ｈ１に対し、ハッシュ関数ＨＣによる演算を、選択された乱数に対する所定回数（Ｍ回）よりも低減回数分（１回分）だけ少ない回数を繰り返して第２のワンタイムコードα１を生成する。ここでは、図５（ｂ）に示すように、前回送信した第１のワンタイムコードβよりハッシュ回数を１つ減らしたハッシュ値Ｅ１Ｍ−１を第２のワンタイムコードα１として生成する。
【０１２４】
次に、次回認証用コード作成部１４４は、第１のワンタイムコードβ１を生成する。次回認証用コード作成部１４４は、第２のワンタイムコードα１に用いる乱数とは異なる次世代の乱数（ここでは、乱数Ｈ２）を発生させ、この次世代乱数に対して、上記の式４及び式５のように、ハッシュ関数ＨＣによる演算を所定回数（Ｍ回）だけ繰り返してハッシュ値Ｅ２Ｍを生成する。そして、ワンタイムパスワード作成部１４ａは、これら第２のワンタイムコードα１と第１のワンタイムコードβ１とをワンタイムパスワードとして生成する。
【０１２５】
そして、生成された第２のワンタイムコードα１と第１のワンタイムコードβ１とに、購買情報（ポイント情報及びクーポン情報等）及びユーザー特定情報を含めてワンタイムパスワードとし、そのワンタイムパスワードのコード情報を作成して画面上に表示させ、店舗側端末７ａの読取手段７６にコード情報を読み取らせる。店舗側端末７ａでは、読取手段によってコード情報の読み取り操作を行い（Ｓ３０４）、コード情報を取得する（Ｓ３０５）。店舗側端末７ａでは、このコード情報に基づいて、画面上にポイント情報、及び電子クーポン情報を表示させる。その後、店舗側端末７ａでは、通信ネットワーク５を通じて、認証サーバー２にコード情報を送信する。
【０１２６】
認証サーバー２の認証管理部２０では、コード情報に含まれたワンタイムパスワード（第２のワンタイムコードα１及び第１のワンタイムコードβ１）を受信し（Ｓ３０６）、認証部２５では、これらのワンタイムパスワードに基づいて認証処理を行う。この認証処理は、上述したステップＳ１１２〜ステップＳ１１３と同様である。具体的には、低減回数補完部２４は、上記式６のように、取得した第２のワンタイムコードα１（ハッシュ値Ｅ１Ｍ−１）を低減回数分のハッシュ関数ＨＣによる演算を実行するとともに、サーバー側のハッシュ間数でハッシュ化してハッシュ値Ｅ’ Ｍ１を算出する。一方、認証用コード選択部２３では、通信状態に応じて、認証用の第１のワンタイムコードβ又は認証用の第２のワンタイムコードαのいずれかを選択して認証用コード保存部２６から取得する。ここでは、通信環境があるので、認証用第１のワンタイムコードβを選択する。
【０１２７】
そして、認証部２５は、算出された第２のワンタイムコードα１（ハッシュ値Ｅ’１Ｍ）と、ワンタイムコードデータベース２ａに保存されている認証用第１のワンタイムコードβとを比較して認証処理を行う。ここで、保存されている認証用第１のワンタイムコードβは、図５（ｂ）に示すように、前回認証時に保存したハッシュ値Ｅ１Ｍを、上記式３のようにサーバー側のハッシュ関数ＨＳでハッシュ化したものでハッシュ値Ｅ’１Ｍとなっている。このように、今回認証用のハッシュ値と保存されたハッシュ値とは、互いにハッシュ値Ｅ’１Ｍとなっていることから、ワンタイムパスワードは一致して認証は成功する。
【０１２８】
その後、認証が成功した場合には、上記ステップＳ１１５〜ステップＳ１１８までの処理を行う。ここでは、今回取得した第１のワンタイムコードβ１を、上記式７のようにサーバー側のハッシュ関数ＨＳでハッシュ化して、認証用第１のワンタイムコードβ１（ハッシュ値Ｅ’２Ｍ）としてユーザー特定情報（ユーザーＩＤ等）と関連付けて記憶しておくとともに、第２のワンタイムコードα１についても、上記式７のようにサーバー側のハッシュ関数ＨＳでハッシュ化し、認証用第２のワンタイムコードα１（ハッシュ値Ｅ’１Ｍ−１）として保存しておく。また、購買情報は、今回認証に用いたハッシュ値Ｅ’１Ｍと関連付けて記憶される。その後、認証管理部は、認証結果を店舗側端末７ａに送信して（Ｓ３０７）、店舗側端末７ａの表示部７３ａではその認証結果を表示させる。
【０１２９】
（Ｂ）通信不通状態にある場合
次いで、ユーザー端末１と認証サーバー２との通信ができない場合の処理について説明する。図９に示すように、ユーザー端末１は、認証結果の確認として、ユーザー特定情報を送信する（Ｓ４０１）。ここでは、ユーザー端末１が通信エリア外に滞在したり、通信障害が起きているため、認証結果の確認は認証サーバー２に届かず、認証結果を得ることができない。この際、認証環境確認部１４１では、通信サービス不可などの返信結果を取得すると（Ｓ４０２）、この情報を乱数選択部１４２及び今回認証用コード作成部１４３に送信する。これにより、認証結果の情報が得られない場合に応じた第２のワンタイムコードα１及び第１のワンタイムコードβ１が作成される（Ｓ４０３）。
【０１３０】
具体的に、乱数選択部１４２では、通信状態に応じて、第１のワンタイムコード又は第２のワンタイムコードに用いられた次世代乱数又は前世代乱数のいずれか選択する。ここでは、通信不通であるため、サーバー同期が確認できている最終世代の乱数、すなわち、前回送信された第２のワンタイムコードに用いられた乱数（ここでは、乱数Ｈ０）を選択する。そして、今回認証用コード作成部１４３では、この乱数Ｈ０に対し、ハッシュ関数ＨＣによる演算を、選択された乱数に対する所定回数（Ｍ回）よりも低減回数分（１回分）だけ少ない回数を繰り返して第２のワンタイムコードα１を生成する。ここでは、図５（ｃ）に示すように、前回送信された第２のワンタイムコードαは、乱数Ｈ０を用いたハッシュ値Ｅ０Ｍ−１であるから、今回の第２のワンタイムコードα１は、乱数Ｈ０を用いたハッシュ値Ｅ０ＭをＭ−２回ハッシュ化したハッシュ値Ｅ０Ｍ−２となる。
【０１３１】
また、次回認証用コード作成部１４４は、第１のワンタイムコードβ１を、前回までに使用された乱数よりも次世代の乱数を用いて生成する。ここでは、図５（ｃ）に示すように，前回送信された第１のワンタイムコードβに用いられた乱数Ｈ１の次世代である乱数Ｈ２を用い、その乱数Ｈ２に対しハッシュ関数Ｈｃを用いた演算を行いハッシュ値Ｅ２を算出し、その算出されたハッシュ値Ｅ２を所定回数（Ｍ回）ハッシュ化して、次第１のワンタイムコードβ１（ハッシュ値Ｅ２Ｍ）を生成する。
【０１３２】
そして、生成された第２のワンタイムコードα１（ハッシュ値Ｅ０Ｍ−２）と第１のワンタイムコードβ１（ハッシュ値Ｅ２Ｍ）とに、購買情報及びユーザー特定情報を含めたコード情報を作成して画面上に表示させ、店舗側端末７ａの読取手段にコード情報を読み取らせる。店舗側端末７ａでは、読取手段によってコード情報の読み取り操作を行い（Ｓ４０４）、コード情報を取得する（Ｓ４０５）。
【０１３３】
店舗側端末７ａでは、このコード情報に基づいて、ポイント情報、及び電子クーポン情報を表示させる。その後、店舗側端末７ａでは、通信ネットワーク５を通じて、認証サーバー２にコード情報を送信する。認証サーバー２の認証部２５では、コード情報に含まれたワンタイムパスワード（第２のワンタイムコードα１と第１のワンタイムコードβ１）を受信し（Ｓ４０６）、認証部２５では、これらのワンタイムパスワードに基づいて、認証処理を行う。
【０１３４】
ここで、ワンタイムコードデータベース２ａには、前回の認証処理時に取得した第１のワンタイムコードβ（ハッシュ値Ｅ１Ｍ）に対して、ハッシュ関数ＨＳを用いた演算により認証用第１のワンタイムコード（ハッシュ値Ｅ’１Ｍ）が蓄積されるとともに、前回認証用に用いられた第２のワンタイムコードα（ハッシュ値Ｅ０Ｍ−１）に対して、ハッシュ関数ＨＳを用いた演算により認証用第２のワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）が蓄積されている。そして、認証用コード選択部２３では、通信状態に応じて、認証用の第１のワンタイムコードβ又は認証用の第２のワンタイムコードαのいずれかを選択して認証用コード保存部２６から取得する。ここでは、ユーザー端末１から認証確認の要求が送られていない状態でコード情報を取得したので、通信不通時の処理を行うと判別し、前回認証用に用いられた認証用第２のワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）を認証用として選択する。
【０１３５】
また、低減回数補完部２４は、取得した第２のワンタイムコードα１（ハッシュ値Ｅ０Ｍ−２）をクライアントのハッシュ関数Ｈｃでハッシュした後、サーバー側のハッシュ関数ＨＳでハッシュ化してハッシュ値Ｅ’０Ｍ−１を算出する。そして、認証部２５は、算出された第２のワンタイムコードα１（ハッシュ値Ｅ’０Ｍ−１）と、ワンタイムコードデータベース２ａに保存され、認証用第２のワンタイムコード（ハッシュ値Ｅ’０Ｍ−１）とを比較して認証処理を行う。このように、互いのハッシュ値は、ハッシュ値Ｅ’０Ｍ−１となっていることから、ワンタイムパスワードは一致して認証は成功する。
【０１３６】
その後、認証が成功した場合には、ステップＳ１１５〜ステップＳ１１８までの処理を行う。ここでは、今回取得した第１のワンタイムコードβ１（ハッシュ値Ｅ２Ｍ）も、同様に、サーバー側のハッシュ関数ＨＳを用いた演算を行い、ハッシュ化した認証用第１のワンタイムパスワード（ハッシュ値Ｅ’２Ｍ）をユーザー特定情報と関連付けて記憶しておく。また、第２のワンタイムコードα１（ハッシュ値Ｅ０Ｍ−２）もハッシュ関数ＨＳを用いた演算を行い、認証用第２のワンタイムパスワード（ハッシュ値Ｅ’０Ｍ−２）をユーザー特定情報と関連付けて記憶しておく。その後、認証管理部２０は、認証結果を店舗側端末７ａに送信して（Ｓ４０７）、店舗側端末７ａの表示部７３ａではその認証結果を表示させる。
【０１３７】
（Ｃ）エラー発生時の処理
さらに、本実施形態では、所定の処理段階においてエラーが発生し、認証サーバー２から返却された認証結果の情報がユーザー端末１上のものと整合しない場合においても自動で正常化処理を行う機能を有している。
【０１３８】
先ず、ユーザー端末１は、図１０に示すように、認証結果の確認として、連携用通信経路を通じて、ユーザー特定情報を送信する（Ｓ５０１）。認証サーバー２の連携処理部２１では、ユーザー特定情報に基づいて第１のワンタイムコードに係る乱数の世代及びハッシュ回数を送信する（Ｓ５０２）。ここでは、所定の処理段階においてエラーが発生しているため、返却された第１のワンタイムコードに係る乱数の世代及びハッシュ回数と、ユーザー端末１に蓄積された第１のワンタイムコードに係る乱数の世代及びハッシュ回数とが整合しない。
【０１３９】
この際、アプリケーション実行部１４では、ログイン要求処理を行い（Ｓ５０３）、ユーザー特定情報及びパスワードを入力させ、ユーザー特定情報及びパスワードをログイン情報として認証サーバー２に送信する（Ｓ５０４）。認証サーバー２の連携処理部２１では、このログイン情報を取得すると、ユーザー特定情報及びパスワードに基づいて、ユーザーを特定した後、ユニークなデータであるトークンを発行して、ユーザー端末１に送信する（Ｓ５０５）。その後は、上記の初期設定処理と同様、ユーザー端末１のワンタイムパスワード作成部１４ａでは、取得したトークンに基づいて、ワンタイムパスワードの初期化を行う。ワンタイムパスワードの初期化後は、初期化後のワンタイムパスワードに基づいて認証処理が実行される。ここでも、通信状態に応じて、上記（Ａ）又は（Ｂ）の処理のいずれかが実行される。
【０１４０】
（ワンタイム認証方法）
以上の構成を有するシステムを動作させることで、本発明のワンタイム認証方法を実施することができる。図１１は、本実施形態に係るワンタイム認証方法を示すフローチャート図である。なお、ここでは、予めワンタイムパスワードの初期化処理は完了しているものとする。
【０１４１】
先ず、ユーザー端末１は、図１１に示すように、クーポンサーバー３にアクセスして、画面上に表示されたクーポン情報から希望する電子クーポンを取得する操作を行う（Ｓ６０１）。クーポンサーバー３のクーポン取得部３１は、ユーザー操作に応じて電子クーポン情報をユーザー端末１に送信する（Ｓ６０２）。電子クーポン情報は、ユーザー端末１のメモリ１５に蓄積される。また、ユーザー端末１は、ポイントサーバー４にアクセスして、自身が所有するポイント情報を取得する操作を行う（Ｓ６０３）。ポイントサーバー４のポイント取得部４１は、ユーザー操作に応じてポイント情報を送信する（Ｓ６０４）。ポイント情報は、ユーザー端末１のメモリ１５に蓄積される。
【０１４２】
その後、ユーザーが店舗に出向き、電子クーポン及びポイントを用いたサービスを利用する場合、先ず、ワンタイムパスワード作成部１４ａでは、認証サーバー２との認証環境を確認する（Ｓ６０５）。そして、ワンタイムパスワード作成部１４ａでは、認証環境に応じたワンタイムパスワードを作成するとともに、購買情報等を含んだコード情報を生成する（Ｓ６０６）。この認証環境に基づくワンタイムパスワードの生成処理は、上記（Ａ）〜（Ｃ）のいずれかが行われる。
【０１４３】
アプリケーション実行部１４において生成されたコード情報は、表示部１３ａ上に表示される。店舗側端末７ａの読取手段は、このコード情報を読み取り（Ｓ６０７）、画面上に電子クーポン情報及びポイント情報を表示させて、ユーザーは内容を確認する。その後、店員による操作によって、認証処理の実行がされると、コード情報は認証サーバー２に送信される（Ｓ６０８）。
【０１４４】
認証サーバー２の認証管理部２０では、コード情報内のワンタイムパスワードに基づいて認証処理を行う（Ｓ６０９）。この認証処理も各認証環境に応じて上記（Ａ）又は（Ｂ）の認証処理が行われる。認証が成功すると、連携部２０ａでは、ワンタイムコードデータベース２ａ内のアカウント情報に基づいて、ポイントサーバー４にポイント利用可否の問い合せを送信する（Ｓ６１０）。ポイントサーバー４の利用可否確認部４２では、アカウント情報に基づいて、ポイントデータベース４ａ内に記録されたユーザーのポイント数や有効期限情報を参照して、利用可否を判別し、判別結果を連携部２０ａに送信する（Ｓ６１１）。
【０１４５】
また、連携部２０ａでは、アカウント情報に基づいて、クーポンサーバー３に電子クーポン利用可否の問い合せを送信する（Ｓ６１２）。クーポンサーバー３の利用可否確認部３２では、アカウント情報に基づいて、クーポンデータベース３ａ内に記録されたユーザーの電子クーポン情報や有効期限情報を参照して利用可否を判別し、判別結果を連携部２０ａに送信する（Ｓ６１３）。さらに、連携部２０ａでは、各判別結果に応じた決済処理を行うとともに、決済サーバー６に決済処理によって算出された決済情報（ポイント及び電子クーポン利用後の購入代金情報等）を送信する（Ｓ６１４）。決済サーバー６では、決済情報に基づいて決済処理を行い、決済結果情報を連携部２０ａに送信する（Ｓ６１５）。
【０１４６】
その後、連携部２０ａでは、決済が完了した情報を取得すると、アカウント情報に基づいて、クーポンサーバー３に対してクーポン消し込み要求（ユーザー識別情報、電子クーポンを識別するクーポン識別情報を含む。）を送信する（Ｓ６１６）。クーポンサーバー３の利用状況更新部３３では、消し込み要求に応じて、クーポンデータベース３ａの電子クーポン情報を消し込み処理し、その消込結果を連携部２０ａに送信する（Ｓ６１７）。
【０１４７】
また、連携部２０ａでは、アカウント情報に基づいて、ポイントサーバー４に対してポイント更新要求（ユーザー識別情報、使用されたポイント数情報を含む。）を送信する（Ｓ６１８）。ポイントサーバー４の利用状況更新部４３では、更新要求に応じて、ポイントデータベース４ａのポイント情報を更新処理し、その更新結果を連携部２０ａに送信する（Ｓ６１９）。ユーザー端末１から、結果確認によるアクセスがあった場合（Ｓ６２０）、連携部２０ａは、消込結果及び更新結果をユーザー端末１に対して送信する（Ｓ６２１）。
【０１４８】
（ワンタイム認証プログラム）
上述した第１実施形態に係るワンタイム認証システム、携帯端末、認証サーバー、及びワンタイム認証方法は、所定の言語で記述されたプログラムをコンピューター上で実行することにより実現することができる。すなわち、このプログラムを、ユーザー端末やＷｅｂサーバー等のコンピューターやＩＣチップにインストールし、ＣＰＵ上で実行することにより、上述した各機能を有するシステムを容易に構築することができる。このプログラムは、例えば、通信回線を通じて配布することが可能であり、またスタンドアローンの計算機上で動作するパッケージアプリケーションとして譲渡することができる。そして、このようなプログラムは、パーソナルコンピューターで読み取り可能な記録媒体に記録することができ、汎用のコンピューターや専用コンピューターを用いて、上述したシステム、装置、サーバー、及びオブジェクト制御方法を実施することが可能となるとともに、プログラムの保存、運搬及びインストールを容易に行うことができる。
【０１４９】
（作用・効果）
このような本実施形態によれば、ユーザー端末１が、第２のワンタイムコードを用いて認証を行うとともに、次世代乱数に基づく第１のワンタイムコードを生成して、認証サーバー側に送信しておくことから、平常時にあっては、認証処理の度に、常に新しい世代の乱数によりワンタイムコードが生成されることとなり、セキュリティを高めることができる。このとき、ユーザー端末１側では、ハッシュ関数ＨＣを用いて暗号化（ハッシュ化）され、サーバー側で取得されたワンタイムコードは、ハッシュ関数ＨＳにより暗号化（ハッシュ化）されるため、仮に通信経路途中やサーバー側で認証情報が傍受されたり漏洩したとしても、その認証情報を悪用してユーザーになり代わって認証を受けることはできない。
【０１５０】
詳述すると、本発明では、認証サーバーとユーザー端末との通信状態に応じて、今回の認証時に用いられるワンタイムパスワードの元となるワンタイムコード（第１のワンタイムコード又は第２のワンタイムコード）を選択している。例えば、認証サーバーとユーザー端末とが通信可能である場合には、前回送信した第１のワンタイムコードに用いられた乱数を確認し、今回の認証時に生成するワンタイムパスワードを、前回生成した次世代乱数に基づいて生成する。すなわち、通信可能な状態下では、常に新規な次世代乱数が生成され、ハッシュ回数は初期値にリセットされる。一方、認証サーバーとユーザー端末とが通信不通である場合には、前回生成した乱数と同世代の乱数に基づいて、前回のハッシュ回数よりも低減されたハッシュ回数により、今回認証時に生成するワンタイムパスワードを生成する。
【０１５１】
その結果、本実施形態によれば、認証サーバー２では、取得したワンタイムコードをハッシュ関数で一方向の処理を加えているので、通信内容を隠蔽することができる。このように、本実施形態によれば、通信経路及び認証サーバーに保存される認証コードを盗聴・盗難しても、実際に認証するためのコードは生成できないため、不正利用を防ぐことができる。さらに、本実施形態によれば、ユーザー端末で生成するワンタイムコードは、乱数によってランダムに生成され、ワンタイムコードそのものは、ユーザー端末にも保存しないので、ユーザー端末上のデータ、通信経路上のデータ、認証サーバー上のデータは、正規のユーザー端末が生成したワンタイムコードによってのみ紐づけられることとなり、セキュリティを高めることができる。
【０１５２】
また、本実施形態において、認証用通信経路は、ユーザー端末１の表示部１３ａに表示されたワンタイムパスワードを読み取る読取手段７６に接続され、認証管理部２０は、読取手段７６を介して、ワンタイムパスワードをユーザー端末１から取得しているので、ユーザー端末１が通信可能エリア外に位置している場合でも、ワンタイムパスワードを取得して認証することができる。
【０１５３】
また、通信ネットワーク５上には、認証サーバー２とユーザー端末１とを接続する連携用通信経路が構築され、認証用コード保存部２６は、連携用通信経路を通じて、ユーザー端末１上において初回に生成された第１のワンタイムコードを取得し、この第１のワンタイムコードを用いて、サーバー側一方向性関数を用いた演算により認証用第１のワンタイムコードを生成し、第１の認証用ワンタイムコードと、ユーザー特定情報と関連付けて保存しているので、次回以降の認証において、２つの異なる乱数を用いたワンタイム認証処理を実行することができる。
【０１５４】
さらに、本実施形態において、認証サーバー２は、ユーザーに付与される電子クーポン又はポイントを管理するクーポンサーバー３及びポイントサーバー４と、決済サーバー６とを有し、クーポンサーバー３、ポイントサーバー４及び決済サーバー６は、認証用コード保存部２６によりデータベース２ａに保存された情報を共有可能である。これにより、クーポンサーバー３、ポイントサーバー４、及び決済サーバーは、認証用コード保存部２６に保存された情報を共有可能であり、決済サーバー６は、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行するので、認証処理と同時に価値情報有効性の判定と、決済処理とを、複数のサーバー装置、ひいては複数のサービス事業者で協働して行うことできる。
【０１５５】
また、本実施形態では、画面上に表示させるコード情報に、ポイント情報、クーポン情報、及び決済情報などの全ての情報が含まれている。ここで、従来のクーポンシステム又はポイントシステムでは、決済処理とは別のシステムで管理されていることから、特に店頭では、利用者はクーポンやポイントを事前に提示した上で、適用後に支払いを行うこととなり、利用時の手順が煩雑であるという問題がある。しかしながら、本実施形態によれば、画面上に表示させるコード情報に、ポイント情報、クーポン情報、及び決済情報などの全ての情報が含まれているので、１度コード情報を店舗側端末７ａに読み取らせることで、クーポン又はポイントの利用可否判定から決済完了までの処理を一連で行うことができるため、ポイントやクーポンの利用時の手順を簡略化することができる。
【０１５６】
また、本実施形態では、クーポンやポイントの支払い前に、ユーザー操作でポイントやクーポンの選択を行うようになっているので、支払い時の手順を簡略化できる。また、クーポンやポイントの利用可否は、認証サーバー２で行っているため、店舗側の担当者は、クーポンやポイントの利用が無い場合と同様の手順で決済を行うことができる。さらに、決済サーバー６は、認証処理の結果に基づく価値情報の有効性に関する判定情報を取得し、判定情報に基づいて、価値情報の有効性を反映させた決済処理を実行する。
【０１５７】
このように、本実施形態では、認証処理と同時に価値情報有効性の判定と、決済処理とを一度の通信接続で行うことでき、ユーザー側にとっては認証処理のための操作と、電子クーポンやポイントを利用するための操作と、決済処理とための操作を簡略化することができる。
【０１５８】
さらに、店舗側端末７ａでは、認証処理に関係するユーザーの消費行動に関する情報を購買情報として取得し、認証管理部２０は、第１のワンタイムコード又は第２のワンタイムコードとともに、購買情報（クーポンやポイントの利用履歴と決済情報）を取得し、この購買情報を、ユーザー特定情報及び認証処理の結果と関連付けて購買履歴情報蓄積部２ｂに蓄積しているので、効果の高いクーポンやポイントを用いたマーケティング施策に活用できる。なお、本実施形態では、認証サーバー２に、各システムのサーバー装置を接続させ、認証サーバー２を経由することでクーポンやポイントを提供しているので、クーポンやポイントを提供する異なる事業者であっても、シームレスに利用できる。
【０１５９】
［第２実施形態］
次いで、本発明の第２実施形態について説明する。本実施形態では、コード情報内に時刻情報をタイムスタンプとして追加し、タイムスタンプに基づいてコード情報を一定期間のみ表示させることを要旨とする。図１２は、第２実施形態に係るユーザー端末の内部構成を示すブロック図である。
【０１６０】
第２実施形態において、ユーザー端末１には、図１２に示すように、クライアント計時部１６を備える。クライアント計時部１６は、現在時刻を取得するモジュールであり、取得する時刻としては、ユーザー端末１のシステム時刻を取得してもよく、また、タイムサーバーなどにより提供される絶対時刻を取得してもよい。
【０１６１】
そして、ユーザー端末１のワンタイムパスワード作成部１４ａは、認証サーバー２に対して、認証結果の確認を行った後、第１実施形態と同様に、今回認証用コード作成部１４３で第２のワンタイムコードを生成し、次回認証用コード作成部１４４で第１のワンタイムコードを生成するとともに、第１及び第２のワンタイムコードと、購買情報と、端末固有端子を含めたコード情報を生成する。この際、ワンタイムパスワード作成部１４ａは、クライアント計時部１６から取得した時刻情報をタイムスタンプとして含めてコード情報を生成し、そのコード情報を画面上に表示させる。すなわち、コード情報には、ワンタイムパスワードと、購買情報（電子クーポン情報及びポイント情報、決済情報等）と、ユーザー特定情報の他、タイムスタンプが含まれる。
【０１６２】
さらに、ワンタイムパスワード作成部１４ａは、タイムスタンプが含まれたコード情報を生成した後、クライアント計時部１６から随時時刻情報を取得し、予め定められた所定間隔が経過したか否かを判断し、所定間隔が経過した後には、表示させたコード情報を破棄して、再度コード情報を表示する場合は、新たなコード情報を生成するようになっている。なお、この所定間隔は、様々な時間幅を設定することができるが、好ましくは約１分である。
【０１６３】
ここで、新たなコード情報を生成する際、ワンタイムパスワード作成部１４ａでは、前回ワンタイムパスワード生成時に使用した第１及び第２のワンタイムコードを変更して、変更した第１及び第２のワンタイムコードに基づいてコード情報を生成する。具体的に、第２のワンタイムコードとしては、前回表示のみ行い、破棄した第２のワンタイムコードを再利用するものとし、同じハッシュ値を用いる。一方、第１のワンタイムコードは、前回生成した第１のワンタイムコードの乱数とは異なる次世代の乱数を用いて生成する。
【０１６４】
一方、認証サーバー２の認証部２５では、取得したコード情報からタイムスタンプを抽出し、タイムスタンプの時刻情報と現在時刻情報とを比較し、その差分が１分以上である場合には、そのコード情報は使用不可として以後の認証処理を実行しないようにする。このようなタイムスタンプが含まれたワンタイムパスワードを用いた認証処理の具体例を説明する。図１３は、第２実施形態に係る生成されるハッシュ値の遷移を示す表である。なお、図１３では、設定された当初のハッシュ回数Ｍは５０００回であるものとする。
【０１６５】
図１３に示すように、先ず、１段階目として初期状態では、次回認証用ハッシュ値として、第１世代の乱数Ｈ０を用いて、第１のワンタイムコード（ハッシュ値Ｅ０）を生成して認証サーバー２に送信する。認証サーバー２では、この第１のワンタイムコードに対し、ハッシュ関数ＨＳを用いた演算により認証用第１のワンタイムコードを生成する。
【０１６６】
その後、次の処理が行われる。ここでは、認証結果の確認を行った結果認証サーバー２と通信が可能でネットワーク環境有りの状態であるものとする。そうすると、今回認証用コード作成部１４３は、今回認証用として、第１世代の乱数Ｈ０から生成したハッシュ値をＭ−１回ハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ０Ｍ−１）を生成する。また、次回認証用コード作成部１４４は、次回認証用として、第１世代の次世代である第２世代の乱数Ｈ１から第２のワンタイムコード（ハッシュ値Ｅ１Ｍ）を生成する。さらに、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得する。そして、ワンタイムパスワード作成部１４ａは、ワンタイムパスワードと、購買情報と、ユーザー特定情報と、タイムスタンプとに基づいてコード情報を生成し、表示する。
【０１６７】
ワンタイムパスワード作成部１４ａは、タイムスタンプが含まれたコード情報を生成した後、クライアント計時部１６から随時時刻情報を取得し、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、表示されたコード情報が店舗側端末７ａに読み取られ、認証が行われたものとする。
【０１６８】
その後、次の処理が行われる。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が可能でネットワーク環境有りの状態であるものとする。この場合、今回認証用コード作成部１４３は、第１実施形態と同様、今回認証用として、選択された乱数に対する所定回数よりも低減回数分だけ少ない回数を繰り返して第２のワンタイムコードを生成する。ここでは、第２世代の乱数Ｈ１から生成したハッシュ値をＭ−１回ハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−１）を生成する。また、次回認証用コード作成部１４４は、次回認証用として、第３世代の乱数Ｈ２に対して、ハッシュ関数ＨＣによる演算を所定回数だけ繰り返して次回認証用ハッシュ値Ｅ２Ｍを生成する。
【０１６９】
そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、コード情報が表示されてから、所定間隔が経過してしまい、表示させたコード情報を破棄し、画面上からコード情報を消去したものとする。
【０１７０】
その後、ユーザー端末１にて再度認証を行うための操作が行われると、ワンタイムパスワード作成部１４ａは、新たなコード情報を生成するようになっている。具体的には、再度認証結果の確認を行い、その確認結果に応じたワンタイムパスワードを生成する。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が可能でネットワーク環境有りの状態であるので、サーバー側に保存され、使用された乱数Ｈｎの世代及びハッシュ回数を問い合せて同期することで、前回までのワンタイムパスワードが読み取られたか否かを判断する。ここでは、前回のワンタイムパスワードは読み取られていないので、ワンタイムパスワード作成部１４ａは、前回生成したワンタイムコードのうち、今回認証用として用いる第２のワンタイムコードをそのまま利用する。具体的には、第２世代の乱数Ｈ１から生成したハッシュ値をＭ−１回ハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−１）を生成する。一方、次回認証用としては、前回生成し、破棄した次回認証用ハッシュ値の乱数とは異なる次世代の乱数を用いて生成する。具体的には、第３世代の乱数Ｈ２は利用されているため、次世代である第４世代の乱数Ｈ３に対して、ハッシュ関数ＨＣによる演算を所定回数だけ繰り返して次回認証用ハッシュ値Ｅ３Ｍを生成する。
【０１７１】
そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。なお、ここでは、前回生成された第２のワンタイムコードを再利用したが、実際のＱＲコード（登録商標）では、タイムスタンプが含まれるため、ＱＲコード（登録商標）のパターンは異なったものとなっている。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、店舗側端末７ａにコード情報が読み取られて認証が行われたものとする。
【０１７２】
次いで、ユーザー端末１において、次の処理が行われる。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が不通でネットワーク環境無しの状態であるものとする。この場合、今回認証用コード作成部１４３は、第１実施形態と同様、前回送信した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−１）よりも、ハッシュ回数を低減回数分（１回）だけ少ない回数を繰り返してハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−２）を生成する。一方、次回認証用コード作成部１４４は、次回認証用として、前回送信した第１のワンタイムコードの次世代である第５世代の乱数Ｈ４から第１のワンタイムコード（ハッシュ値Ｅ４Ｍ）を生成する。
【０１７３】
そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、店舗側端末７ａにコード情報が読み取られて認証が行われたものとする。
【０１７４】
次いで、ユーザー端末１において、次の処理が行われる。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が不通でネットワーク環境無の状態であるものとする。この場合、今回認証用コード作成部１４３は、第１実施形態と同様、前回ワンタイムパスワードとして送信した、前回送信した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−２）よりも、ハッシュ回数を低減回数分（１回）だけ少ない回数を繰り返してハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−３）を生成する。一方、次回認証用コード作成部１４４は、次回認証用として、前回送信した第１のワンタイムコードの次世代である第６世代の乱数Ｈ５から第１のワンタイムコード（ハッシュ値Ｅ５Ｍ）を生成する。
【０１７５】
そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、コード情報が表示されてから、所定間隔が経過してしまい、表示させたコード情報を破棄し、画面上からコード情報を消去したものとする。
【０１７６】
その後、ユーザー端末１において、再度認証を行うための操作が行われると、今回認証用コード作成部１４３は、は、新たなコード情報を生成するようになっている。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が不通でネットワーク環境無の状態であるものとする。この場合、認証サーバー側では、その生成されたコード情報が読み取られたのか否かが不明であるので、一度でも表示に利用されたハッシュ回数は使用しないようにする。そのため、今回認証用コード作成部１４３は、第１実施形態と同様、前回ワンタイムパスワードとして送信した、第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−３）よりも、ハッシュ回数を低減回数分（１回）だけ少ない回数を繰り返してハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ１Ｍ−４）を生成する。
【０１７７】
なお、本実施形態では、生成したコード情報が表示のみされて使用されず消去された場合、その生成されたコード情報を、次回の認証時における通信環境に応じて再利用している。具体的に、通信可能である場合には前回利用したハッシュ回数を用い、通信不能である場合には前回利用したハッシュ回数を用いない構成とした。しかしながら、本発明は、これに限定するものではなく、通信環境に関係なく、一度表示されたハッシュ回数は、使用されたか否かに関わらず再利用せずに新たなハッシュ回数を利用してもよく、また、表示のみされ使用されなかったコード情報は、一度使用したハッシュ回数を再利用してもよい。
【０１７８】
一方、次回認証用コード作成部１４４は、次回認証用として、前回送信した第１のワンタイムコード次世代である第７世代の乱数Ｈ６に対してハッシュ関数ＨＣによる演算を所定回数だけ繰り返して第１のワンタイムコード（ハッシュ値Ｅ６Ｍ）を生成する。そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、店舗側端末７ａにコード情報が読み取られて認証が行われたものとする。
【０１７９】
その後、次のユーザー操作が行われる。ここでは、認証結果の確認を行った結果、認証サーバー２と通信が可能でネットワーク環境有りの状態であるものとする。この場合、今回認証用コード作成部１４３は、前回送信した第１のワンタイムコード（ハッシュ値Ｅ６Ｍ）に用いた乱数Ｈ６と同世代である乱数Ｈ６に対し、ハッシュ回数を低減回数分（１回）だけ少ない回数を繰り返してハッシュ化した第２のワンタイムコード（ハッシュ値Ｅ６Ｍ−１）を生成する。また、次回認証用コード作成部１４４は、次回認証用として、前回送信した次回認証用ハッシュ値の次世代である第８世代の乱数Ｈ７に対してハッシュ関数ＨＣによる演算を所定回数だけ繰り返して第１のワンタイムコード（ハッシュ値Ｅ７Ｍ）を生成する。そして、ここでも、ワンタイムパスワード作成部１４ａは、現在時刻をクライアント計時部１６から取得し、タイムスタンプを含めたコード情報を生成して表示する。そして、ワンタイムパスワード作成部１４ａは、予め定められた所定間隔（約１分）が経過したか否かを判断する。ここでは、店舗側端末７ａにコード情報が読み取られて認証が行われたものとする。
【０１８０】
以後の処理も、上記と同様、通信環境や前回生成されたワンタイムパスワードの利用有無に応じて、今回認証用ハッシュ値及び次回認証用ハッシュ値の生成処理が変更される。そして、このように生成されたコード情報に基づいて認証処理が行われる。
【０１８１】
（作用・効果）
このような本実施形態によれば、ワンタイムコードに短時間の有効期限を設定し、盗聴・盗難時の不正利用を防止することができる。すなわち、本実施形態では、ユーザー端末上での表示時間を一定時間（１分）以内に制限し、制限時間を超えるとコード情報は非表示となるとともにコード情報は再生成が必要なので、店舗のレジ等で支払いを行う直前に生成、表示されたコード情報のみで認証が成功されることとなる。
【０１８２】
これにより、例えば、不正使用者がユーザー端末上で表示したコード情報をカメラ等で撮影し、その画面上のコード情報を用いて、正規の利用者より先に使用されてしまうという不正利用を防止することができる。なお、コード情報は生成したが利用されない場合、認証ＩＤは再利用されるが、実際のコード情報はタイムスタンプが付加されるため、コード情報のパターンは異なったものとなっているので、以前撮影された画像では、もはや認証を受けることができない。
【０１８３】
[第３実施形態]
次いで、本発明の第３実施形態について説明する。本実施形態では、認証情報を動的に提示するユーザー端末１と、提示された認証情報を読み取る店舗側端末７ａとを備え、極めて短い時間にコード情報の生成と破棄とを繰り返し行い、動的に変化させたコード情報に基づいて動的認証を行うことを要旨とする。
【０１８４】
図１４は、本実施形態に係るユーザー端末の内部構成を示すブロック図であり、図１５は、本実施形態に係る店舗側端末の内部構成を示すブロック図である。また、図１６は、ユーザー端末の表示部に表示される動的コード情報を示す説明図であり、図１７は、本実施形態に係る有効性判定の判定処理を示すタイムチャート図である。
【０１８５】
第３実施形態において、ユーザー端末１には、第２実施形態と同様、図１２に示すように、クライアント計時部１６を備えている。クライアント計時部１６は、現在時刻を取得するモジュールであり、取得する時刻としては、ユーザー端末１のシステム時刻を取得する。また、ユーザー端末１のアプリケーション実行部１４には、認証情報を動的に提示する機能モジュールとして、表示情報生成部１４ｅと動的情報提示部１４ｆとを備えている。
【０１８６】
表示情報生成部１４ｅとは、所定の認証情報に、当該ユーザー端末１上の現在時刻を示す時間情報を組み合わせて、少なくとも２つの表示情報を生成するモジュールである。ここで、所定の動的情報とは、上述した第１実施形態で生成される第１のワンタイムコード及び第２のワンタイムコードである。すなわち、表示情報生成部１４ｅは、ワンタイムパスワード作成部１４ａの今回認証用コード作成部１４３と次回認証用コード作成部１４４で生成された第１のワンタイムコード及び第２のワンタイムコードに現在時刻を示す時間情報を組み合わせてコード情報を作成する。なお、このコード情報には、ユーザー特定情報、決済情報、及び購買情報が含まれている。
【０１８７】
動的情報提示部１４ｆは、表示情報を一定の時間間隔をもって、同一位置に順次表示することにより、認証情報を動的に提示するモジュールである。すなわち、動的情報提示部１４ｆは、所定の時刻におけるコード情報を生成した後、クライアント計時部１６から随時時刻情報Ｔｃを取得し、予め定められた所定間隔（例えば、１秒未満）が経過したか否かを判断し、所定間隔が経過した後には、再度コード情報を再生成する。具体的には、現在表示しているコード情報を破棄し、現在時刻の時刻情報Ｔｃをタイムスタンプとして含めてコード情報を再生成し画面上に表示させる。ワンタイムパスワード作成部１４ａは、以後、所定間隔毎にこの処理を繰り返す。
【０１８８】
このように、表示情報生成部１４ｅ及び動的情報提示部１４ｆは、所定間隔毎にコード情報を生成、表示、破棄、再生成を繰り返し、表示部１３ａ上には、図１６に示すように、画面上には、異なるコード情報（図１６中のコード情報Ｃ＿１〜Ｃ＿４）が時間経過毎（図１６中の時間Ｔｃ_１〜Ｔｃ_４）に随時変更されつつ動的に表示されるようになっている。なお、この際、一連で表示される複数のコード情報に含まれるワンタイムパスワードは、全て同じワンタイムパスワードが使用されており、タイムスタンプのみが変更されることで、コード情報の表示形態は変更される。なお、ワンタイムパスワードの生成方法としては、上述した第１実施形態又は第２実施形態と同様である。
【０１８９】
一方、店舗側端末７ａでは、読取手段７６において動的情報提示部１４ｆによって表示部１３ａ上に表示された少なくとも２つの表示情報を、順次、光学的に読み取っており、制御部７４内に送信する。本実施形態において、読取手段７６は、随時表示されているコード情報のうち、連続する２つのコード情報を読み取る。
【０１９０】
制御部７４では、この読み取った２つの表示情報に基づいて、その表示情報が認証処理として利用可能か否かを判断している。具体的に、制御部７４内には、図１５に示すように、計時記録部７４１と、有効性判断部７４２と、情報抽出部７４３と、正当性判断部７４４とを備えている。
【０１９１】
計時記録部７４１は、読取手段７６で読み取られた各表示情報の、それぞれの読取時刻を測定し記録するモジュールであり、店舗側端末７ａに備えられた店舗側計時部７７から読取時刻を測定して記録する。ここで、店舗側計時部７７が取得する時刻としては、店舗側端末７ａのシステム時刻を取得してもよく、また、タイムサーバーなどにより提供される絶対時刻を取得してもよい。
【０１９２】
そして、計時記録部７４１は、読み取ったコード情報に読み取った時点の時刻情報Ｔｐをそれぞれ付加する。なお、ここでは、図１７に示すように、最初に読み取ったコード情報を第１のコード情報Ｘ１とし、次に読み取ったコード情報を第２のコード情報Ｘ２とする。さらに、コード情報Ｘ１に付加される時刻情報を時刻情報Ｔｐ_１とし、コード情報Ｘ２に付加される時刻情報を時刻情報Ｔｐ_２とする。
【０１９３】
有効性判断部７４２は、一定の時間間隔から求められる有効期限と、それぞれの読取時刻の時間差とに基づいて、表示情報の有効性を判断するモジュールである。ここで、本実施形態では、図１７に示すように、連続する２つのコード情報Ｘ１，Ｘ２は所定間隔Ｌを空けて表示させていることから、例えば、読み取った２つのコード情報Ｘ１，Ｘ２が正規のコード情報である場合、第１のコード情報Ｘ１を読み取ってから、第２のコード情報Ｘ２が読み取り可能な最大時間は時間２Ｌである。
【０１９４】
そこで、有効性判断部７４２は、第１のコード情報Ｘ１の時刻情報Ｔｐ_１と第２のコード情報Ｘ２の時刻情報Ｔｐ_２との差分が、０より大きく、且つ時間２Ｌ未満であることを検証する。そして、第１のコード情報Ｘ１と第２のコード情報Ｘ２の差分が、０より大きく、且つ時間２Ｌ未満である場合には、そのコード情報Ｘ１及びＸ２は有効期限内であると判断し、ＰＯＳサーバー７を介して、第２のコード情報Ｘ２を認証サーバー２に送信する。その後は、第１実施形態と同様、第２のコード情報に含まれたワンタイムパスワードによって認証処理等が行われる。一方、第１のコード情報Ｘ１と第２のコード情報Ｘ２の差分が０以下であったり、時間２Ｌ以上である場合には、有効期限が過ぎたコード情報としてエラー表示を行う。
【０１９５】
また、制御部７４では、２つのコード情報Ｘ１及びＸ２の差分から、有効期限の判断を行う前提として、２つのコード情報Ｘ１及びＸ２が、同一のワンタイムコードに基づいて生成されたコード情報であるか否かも判断する機能を有しており、同一のワンタイムパスワードに基づいて生成されたコード情報のみ、有効期限の有無の判定を行っている。具体的に制御部７４には、情報抽出部７４３と正当性判断部７４４とを有している。
【０１９６】
情報抽出部７４３は、読取手段７６で読み取られた各表示情報から、時間情報を除外して、所定の認証情報を抽出するモジュールである。ここで抽出される所定の認証情報とは、今回認証用コード作成部１４３と次回認証用コード作成部１４４で生成された第１のワンタイムコード及び第２のワンタイムコードである。そして、情報抽出部７４３では、この第１のワンタイムコード及び第２のワンタイムコードを正当性判断部７４４に送信する。
【０１９７】
正当性判断部７４４は、情報抽出部７４３が抽出したそれぞれの認証情報の同一性を比較し、その比較結果に基づいて、表示情報の正当性を判断するモジュールである。ここで、比較される認証情報は、第１のワンタイムコード又は第２のワンタイムコードのいずれかであってもよく、また、第１のワンタイムコード及び第２のワンタイムコードの両方を比較してもよい。
【０１９８】
（有効性判定方法）
次いで、第３実施形態における有効性判定方法について説明する。図１８は、本実施形態に係る動的認証方法を示すフローチャート図である。
【０１９９】
先ず、表示情報生成部１４ｅでは、ワンタイムパスワード作成部１４ａで作成されたワンタイムパスワードを取得すると、クライアント計時部１６から現在時刻Ｔｃ_１を取得し、この現在時刻Ｔｃ_１をタイムスタンプとして、ワンタイムパスワードに追加して、第１のコード情報Ｘ１を生成する（Ｓ７０１）。第１のコード情報Ｘ１は、画面上に表示され、店舗側端末７ａの読取手段７６によって読み取られる（Ｓ７０２）。この際、計時記録部７４１では、読取手段７６で読み取られた表示情報の読取時刻Ｔｐ_１を測定しメモリ１５に記録する。
【０２００】
一方、ユーザー端末１の動的情報提示部１４ｆでは、表示情報を一定の時間間隔をもって、同一位置に順次表示することにより、認証情報を動的に提示する。具体的には、クライアント計時部１６から随時時刻情報を取得するとともに、１第のコード情報Ｘ１から所定間隔Ｌが経過したか否かを判断する（Ｓ７０３）。ここで、所定間隔Ｌが経過していない場合には（Ｓ７０３における“Ｎ”）、時刻情報を取得しつつ、所定間隔Ｌが経過するまで処理を繰り返す。
【０２０１】
所定間隔Ｌが経過した場合には（Ｓ７０３における“Ｙ”）、表示情報生成部１４ｅ及びワンタイムパスワード作成部１４ａに対して、再度コード情報再生の指示を行う。表示情報生成部１４ｅは、ワンタイムパスワード作成部１４ａで再作成されたワンタイムパスワードを取得すると、その時点の時刻情報Ｔｃ_２をクライアント計時部１６から取得して、第２のコード情報Ｘ２を生成する（Ｓ７０４）。そして、表示情報生成部１４ｅは、第１のコード情報Ｘ１を破棄し、第２のコード情報Ｘ２を画面上に表示させる。第２のコード情報Ｘ２が、画面上に表示されると、店舗側端末７ａの読取手段７６は、第２のコード情報Ｘ２を読み取る（Ｓ７０５）。この際、計時記録部７４１では、読取手段７６で読み取られた表示情報の読取時刻Ｔｐ_２を測定し、第２のコード情報Ｘ２とともにメモリ１５に記録する。
【０２０２】
そして、店舗側端末７ａの有効性判断部７４２では、第１のコード情報Ｘ１及び第２のコード情報Ｘ２に基づいて、コード情報の有効期限が有効か否かを判定する（Ｓ７０６）。具体的に、情報抽出部７４３は、読取手段７６で読み取られた各表示情報から、時間情報を除外して、所定の認証情報を抽出する。具体的には、第１のコード情報Ｘ１及び第２のコード情報Ｘ２に関する第１のワンタイムコード及び第２のワンタイムコードを抽出する。そして、正当性判断部７４４は、情報抽出部７４３が抽出したそれぞれの認証情報の同一性を比較し、その比較結果に基づいて、表示情報の正当性を判断する。ここで、両者のワンタイムコードが同一でない場合には（Ｓ７０６における“Ｎ”）、店舗側端末７ａの表示部７３ａにエラーを表示させる。なお、この情報はユーザー端末１に送信してユーザー端末１の表示部１３ａ上に表示させてもよい。
【０２０３】
一方、両者のワンタイムコードが同一である場合は、次に、第１のコード情報Ｘ１に付加された時刻情報Ｔｐ_１と、第１のコード情報Ｘ１に付加された時刻情報Ｔｐ_２との差分が、０より大きく、且つ時間２Ｌ未満であることを検証する。第１のコード情報Ｘ１と第２のコード情報Ｘ２の差分が０以下であったり、時間２Ｌ以上である場合には（Ｓ７０６における“Ｎ”）、有効期限が過ぎたコード情報としてエラー表示を行う（Ｓ７０９）。
【０２０４】
第１のコード情報Ｘ１と第２のコード情報Ｘ２の差分が、０より大きく、且つ時間２Ｌ未満である場合には（Ｓ７０６における“Ｙ”）、そのコード情報Ｘ１及びＸ２は有効期限内であると判断し、ＰＯＳサーバー７を介して、第２のコード情報Ｘ２を認証サーバー２に送信する。その後は、第１実施形態と同様、第２のコード情報に含まれたワンタイムパスワードによって認証処理等が行われる。
【０２０５】
（作用・効果）
このような第３実施形態によれば、コード情報の有効期限を１秒未満の極めて短い時間に設定することで、盗難や盗聴された場合でも、不正利用されることを防止することができる。また、本実施形態では、認証のために２つのコード情報を用いているので、例えば、不正利用者がユーザー端末１の画面上に表示されているコード情報をカメラで撮影したとしても、その撮影された画像からは認証を行うことができないため、不正をより防止することができる。
【０２０６】
なお、コード情報は極めて短い時間（1秒未満）で再生成を繰り返していることから、認証処理を行う側との時刻誤差が生じる可能性がある。すなわち、ユーザー端末１で計時されるシステム時刻と、認証サーバー２内で計時される時刻とが一致していない場合、正規者が利用した場合でも認証ができない場合がある。
【０２０７】
本実施形態では、複数のコード情報からタイムスタンプの時刻情報Ｔｐ_１と、店舗側端末７ａ側で読み取った時刻情報Ｔｐ_２を取得し、ユーザー端末と店舗側端末７ａの時刻のずれを補正でき、各利用端末がタイムサーバーなどで時刻補正を行うことなく、正常に認証処理を行うことができる。すなわち、本実施形態では、２つの異なるタイムスタンプを有するコード情報データから、ユーザー端末の時刻を推定するとともに、コード情報の有効期限を再生成間隔に基づいて設定しているので、時刻誤差による処理誤りは解消される。
【０２０８】
［変更例］
なお、上述した各実施形態の説明は、本発明の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能である。以下に、本発明の変更例について説明する。
【０２０９】
例えば、上述した第３実施形態において、コード情報の有効期限の有無判定は、連続して表示される２つのコード情報に基づいて判定したが、例えば、２以上のコード情報を読み取った場合に、その一連のコード情報のうち、連続しない任意の２つコード情報Ｘｉ、コード情報Ｘｊ（ｊ＞ｉ）を読み取って有効性を検証してもよい。この場合は、第１のコード情報Ｘｉを読み取ってから、ｎ回目に再生成されるコード情報を抽出するかを既知として店舗側端末７ａに記憶させ、上記所定間隔２Ｌを所定間隔ｎＬに変更するのみで、上記と同処理で有効性を検証することができる。
【０２１０】
また、例えば、上述した第３実施形態において、コード情報の有効期限の有無は、店舗側端末７ａの有効性判断部７４２で処理したが、例えば、認証サーバー２の連携部２０ａにおいて実行してもよい。この場合、有効性判断部７４２の機能モジュールは、連携部２０ａに備えており、店舗側端末７ａは、読み取った第１のコード情報Ｘ１及び第２のコード情報Ｘ２をそのまま認証サーバー２に送信する。なお、この際、コード情報Ｘ１及びＸ２が同一のワンタイムパスワードに基づいて生成されたコード情報か否かの判断は、有効性判断部７４２で行ってもよく、また、連携部２０ａにおいて実行してもよい。
【符号の説明】
【０２１１】
１…ユーザー端末
２…認証サーバー
２ａ…ワンタイムコードデータベース
２ｂ…購買履歴情報蓄積部
３…クーポンサーバー
３ａ…クーポンデータベース
４…ポイントサーバー
４ａ…ポイントデータベース
５…通信ネットワーク
６…決済サーバー
７…ＰＯＳサーバー
７ａ…店舗側端末
８…無線基地局
１１…無線インターフェース
１３ａ…表示部
１４…アプリケーション実行部
１４ａ…ワンタイムパスワード作成部
１４ｂ…連携処理部
１４ｃ…価値情報取得部
１４ｄ…認証結果取得部
１４ｅ…表示情報生成部
１４ｆ…動的情報提示部
１５…メモリ
１６…クライアント計時部
２０…認証管理部
２０ａ…連携部
２１…連携処理部
２２…初期化処理部
２３…認証用コード選択部
２４…低減回数補完部
２５…認証部
２６…認証用コード保存部
３１…クーポン取得部
３２…利用可否確認部
３３…利用状況更新部
３４…クーポン追加部
４１…ポイント取得部
４２…利用可否確認部
４３…利用状況更新部
４４…ポイント追加部
７０ａ…通信インターフェース
７０ｂ…制御部
７０ｃ…ＰＯＳ情報データベース
７４…制御部
７５…メモリ
７６…読取手段
７７…店舗側計時部
１４１…認証環境確認部
１４２…乱数選択部
１４３…今回認証用コード作成部
１４４…次回認証用コード作成部
７４１…計時記録部
７４２…有効性判断部
７４３…情報抽出部
７４４…正当性判断部
【図１】
0005978325.tif 000009
【図２】
0005978325.tif 000010
【図３】
0005978325.tif 000011
【図４】
0005978325.tif 000012
【図５】
0005978325.tif 000013
【図６】
0005978325.tif 000014
【図７】
0005978325.tif 000015
【図８】
0005978325.tif 000016
【図９】
0005978325.tif 000017
【図１０】
0005978325.tif 000018
【図１１】
0005978325.tif 000019
【図１２】
0005978325.tif 000020
【図１３】
0005978325.tif 000021
【図１４】
0005978325.tif 000022
【図１５】
0005978325.tif 000023
【図１６】
0005978325.tif 000024
【図１７】
0005978325.tif 000025
【図１８】
0005978325.tif 000026