認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するユーザ装置に入力される値を暗号化する方法であって、前記ユーザ装置が前記コード生成アルゴリズムを使用して前記認証キーを処理して、認証コードを生成するステップと、前記ユーザ装置が前記値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、前記ユーザ装置が前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップであって、前記メッセージは前記値を決定及び確認して、前記ユーザ装置及び/又は前記ユーザを認証するために前記認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップとを含む、方法。前記値確認コード生成アルゴリズムを使用して前記値を処理して値確認コードを生成するステップは、前記認証キー又は異なる秘密キーを処理することを更に含む、請求項1に記載の方法。前記認証コード、前記値及び前記値確認コードを使用して前記値を暗号化するメッセージを構築するステップは、少なくとも前記認証コード及び前記値を含む論理又は算術演算を実行することを含む、請求項1又は2に記載の方法。前記論理又は算術演算を実行することは、連結シーケンスを提供するために前記値及び値確認コードを連結すること、及びモジュラス演算を使用して前記認証コードを前記連結シーケンスに加算することを含む、請求項3に記載の方法。前記認証コード、前記値及び前記値確認コードは、X桁を含む数字の組からの数字のシーケンスを含み、前記モジュラス演算は、モジュラスX演算を含む、請求項4に記載の方法。前記認証コードは、n桁シーケンスであり、前記値は、前記認証コードのシーケンス長よりも短いシーケンス長を有し、前記値確認コードは、前記認証コードのシーケンス長と前記値のシーケンス長との差に対応するシーケンス長を有する、請求項4又は5に記載の方法。前記認証コードの各数字は、前記連結シーケンスの各数字に別々に加算される、請求項6に記載の方法。前記コード生成アルゴリズムを使用して前記認証キーを処理して認証コードを生成するステップは、前記ユーザ装置のユーザによって入力されるPINを処理することを更に含む、請求項1~7の何れか1項に記載の方法。前記値確認コード生成アルゴリズムを使用して前記値を処理して値確認コードを生成するステップは、前記ユーザ装置のユーザによって入力されるPINを処理することを更に含む、請求項1~7の何れか1項に記載の方法。前記値は、前記認証システムにおいて記憶される置換PINである、請求項1~9の何れか1項に記載の方法。通信ネットワークを介して認証システムに伝達される値を確認する方法であって、前記認証システムはユーザ装置と関係付けられる認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶しており、前記認証システムがユーザ装置によって構築されるメッセージを受信するステップと、前記認証システムが前記コード生成アルゴリズムを使用して前記認証キーを処理して、期待される認証コードを生成するステップと、前記認証システムが前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、前記認証システムが前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、前記認証システムが前記期待される値確認コードを前記受信した値確認コードと比較するステップと、前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップとを含む、方法。前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して前記期待される値確認コードを生成するステップは、前記認証キー又は異なる秘密キーのいずれかを処理することを更に含む、請求項11に記載の方法。前記メッセージを処理するステップは、前記期待される認証コードを使用して論理又は算術演算を実行することを含む、請求項11又は12に記載の方法。前記論理又は算術演算を実行することは、モジュラス演算を使用して前記メッセージの少なくとも一部から前記期待される認証コードを減算することを含む、請求項13に記載の方法。前記期待される認証コード及び前記メッセージは、X桁の組から選択される数字からなり、前記モジュラス演算は、モジュラスX演算を含む、請求項14に記載の方法。前記期待される認証コードの各数字は、前記メッセージの各数字から別々に減算される、請求項15に記載の方法。前記コード生成アルゴリズムを使用して前記認証キーを処理して期待される認証コードを生成するステップは、前記ユーザ装置と関係付けられ且つ前記認証システムに記憶されるPINを処理することを更に含む、請求項11~16の何れか1項に記載の方法。前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して期待される値確認コードを生成するステップは、前記ユーザ装置と関係付けられ且つ前記認証システムに記憶されるPINを処理することを更に含む、請求項11~16の何れか1項に記載の方法。前記値は、前記認証システムにおいて記憶される、前記ユーザ装置と関係付けられる置換PINである、請求項11~18の何れか1項に記載の方法。ユーザ装置に入力される値を通信ネットワークを介して認証システムに伝達する方法であって、前記ユーザ装置は、第1の認証キー、第1のコード生成アルゴリズム及び第1の値確認コード生成アルゴリズムを記憶し、前記認証システムは、第2の認証キー、第2のコード生成アルゴリズム及び第2の値確認コード生成アルゴリズムを記憶し、前記ユーザ装置が前記第1のコード生成アルゴリズムを使用して前記第1の認証キーを処理して、認証コードを生成するステップと、前記ユーザ装置が前記第1の値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、前記ユーザ装置が前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップと、前記メッセージを前記認証システムに伝達するステップと、前記認証システムが前記メッセージを受信するステップと、前記認証システムが前記第2のコード生成アルゴリズムを使用して前記第2の認証キーを処理して、期待される認証コードを生成するステップと、前記認証システムが前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、前記認証システムが前記第2の値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、前記認証システムが前記期待される値確認コードを前記受信した値確認コードと比較するステップと、前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップとを含む、方法。値を受信するための入力部と、メッセージを出力するための出力部と、プロセッサと、認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、前記プロセッサにアクセス可能なメモリに存在するソフトウェアであって、前記ユーザ装置に入力される値を暗号化する方法を実行するために前記プロセッサによって実行可能な一連の命令を含むソフトウェアとを含むユーザ装置であって、前記方法は、前記コード生成アルゴリズムを使用して前記認証キーを処理して、認証コードを生成するステップと、前記値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップと、前記メッセージを出力するステップであって、前記メッセージは前記値を決定及び確認して、前記ユーザ装置及び/又は前記ユーザを認証するために前記認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップとを含む、ユーザ装置。前記出力は、n桁ディスプレイであり、前記認証コードは、n桁シーケンスであり、前記値は、前記認証コードのシーケンス長よりも短いシーケンス長を有し、前記値確認コードは、前記認証コードのシーケンス長と前記値のシーケンス長との差に対応するシーケンス長を有する、請求項21に記載のユーザ装置。前記出力は、n桁ディスプレイであり、前記認証コード、前記値及び前記値確認コードの全ては、n桁より短いシーケンス長を有する、請求項21に記載のユーザ装置。通信ポートと、プロセッサと、認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、前記プロセッサにアクセス可能なメモリに存在するソフトウェアであって、方法を実行するために前記プロセッサによって実行可能な一連の命令を含むソフトウェアとを含む認証システムであって、前記方法は、メッセージを受信するステップと、前記コード生成アルゴリズムを使用して前記認証キーを処理して、期待される認証コードを生成するステップと、前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、前記期待される値確認コードを前記受信した値確認コードと比較するステップと、前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップとを含む、認証システム。請求項21に記載のユーザ装置と、請求項24に記載の認証システムとを含む、システム。プロセッサ及びソフトウェアを記憶するための関連するメモリを含むユーザ装置で使用されるソフトウェアであって、請求項1~10の何れか1項に記載の方法を実行するために前記プロセッサによって実行可能な一連の命令を含む、ソフトウェア。プロセッサ及びソフトウェアを記憶するための関連するメモリを含む認証システムで使用されるソフトウェアであって、請求項11~19の何れか1項に記載の方法を実行するために前記プロセッサによって実行可能な一連の命令を含む、ソフトウェア。請求項26又は27に記載のソフトウェアを保持する、コンピュータ可読媒体。ネットワークの例本発明の実施形態は、図1に例が示されている通信ネットワーク上で実現され得る。図1に示されたネットワーク20は、1つ以上のユーザ装置及び1つ以上の認証システムを含む。この例示では、ユーザ装置は、パーソナルコンピュータPC22及び24、スマートカード26及び27、並びにハンドヘルド装置28を含む。認証システムは、サーバ30及び32を含む。図示のように、ユーザ装置22から28及び認証システム30、32は、通信ネットワーク34を介して電子データ通信をサポートするために接続される。ネットワーク34上のデータ伝送は、有線又は無線のデータ通信を含んでもよい。認証システム30及び32は、ネットワーク34、並びに各データベース36及び38等の1つ以上のデータベース上でのデータ伝送を容易にし得る。本発明の実施形態は、MANmetropolitanareanetwork、WANwideareanetwork、LANlocalareanetwork又は他のインターネット等の異なるネットワーク上で実現されてもよいことが理解されるであろう。また、一部の実施形態は完全にユーザ装置又は認証システムで行われ得るので、実施形態は、必ずしもネットワーク上で行われる必要はない。認証システムの例図2は、本発明の実施形態による認証システム30のブロック図を示す。認証システム30は、プロセッサ42、メモリ44、少なくとも1つの入力装置46、少なくとも1つの出力装置48、通信ポート50及び記憶装置54を含む。図示のように、認証システム30の構成要素は、バス、又はデータ、アドレス及び/若しくは制御バス等の一群のバス56を介して結合される。プロセッサ42は、例えば、認証システム30内の異なる機能を処理するために1つ以上の処理装置を含んでもよい。メモリ44は、任意の適切なメモリ装置を含み、例えば、揮発性又は不揮発性、ソリッドステート記憶装置、磁気装置等を含んでもよい。メモリ44は、プロセッサ42によって実行されるコンピュータソフトウェアプログラム62を記憶する。この実施形態では、メモリ44は、少なくとも1つの認証キー64も記憶する。多数の認証キーがメモリ44又はデータベース59に記憶されてもよく、各認証キーは異なるユーザ装置と関係付けられる。例えば、認証システム30が金融機関向けである場合、各認証キー64は、特定のアカウント、又はアカウント保持者と関係付けられてもよい。代替的に、認証キー64は、認証システム30の外部に記憶されてもよく、通信ネットワーク34を介して認証システム30にアクセス可能であってもよい。また、メモリ44は、認証コードを生成するためのコード生成アルゴリズム66、及び値確認コードを生成するための値確認コード生成アルゴリズム68を記憶する。こうしたアルゴリズム及び認証キーの更なる詳細が以下に与えられるであろう。入力装置46は、入力データ58を受信し、例えば、キーボード、マウス又は他のポインタ装置、トラックボール、ジョイスティック又はタッチスクリーン、マイクロホン、モデム又は無線データアダプタ等のデータ受信機又はアンテナ、データ収集カード等を含んでもよい。入力装置46は、入力データ58を入力するためにユーザによって操作可能であってもよい。又は、それは、別の入力データソースからデータを受信してもよい。出力装置48は、出力データ60を作成又は生成する。出力装置48は、ディスプレイ装置、一組のオーディオスピーカ、プリンタ、ポート例えば、USBポート、周辺構成要素アダプタ、モデム又は無線ネットワークアダプタ等のデータ送信機又はアンテナ等を含んでもよい。記憶装置54は、任意の形式のデータ又は情報記憶手段、例えば、揮発性又は不揮発性メモリ、ソリッドステート記憶装置、磁気装置を含み得る。ファイルシステム及びファイルが記憶装置54に記憶されてもよい。記憶装置54は、少なくとも1つのデータベース59を収容してもよい。通信ポート50によって、認証システム30は、ネットワーク34等の有線又は無線ネットワークを介して他の装置と通信することができる。適切な通信ポートは、IEEE80211型の無線インターフェース、GPRSgeneralpacketradioservice互換インターフェース、WAPwirelessapplicationprotocol互換インターフェース、Bluetooth登録商標インターフェース、光学インターフェースIrDAインターフェース等、ZigBeeインターフェース、USBuniversalserialbusインターフェース等、又はRFIDadiofrequencyidentification誘導型の通信インターフェースを使用してもよい。使用時、認証システム30は、データが通信ポート50を介してデータベース59に記憶され及び/又はデータベース59から取得されることを可能にするように適合され得る。認証システム30は、任意の形態の端末、サーバ処理システム、専用ハードウェア、コンピュータ、コンピュータシステム又はコンピュータ化装置、パーソナルコンピュータPC、移動式又は携帯電話、移動式データ端末、携帯型コンピュータ、PDAPersonalDigitalAssistant、ページャ、スマートカード又は任意の他の種類の装置を含んでもよい。ユーザ装置の例図3は、本発明の実施形態によるユーザ装置27のブロック図を示す。図示のように、この例では、ユーザ装置27は、キーパッド70の形態の入力、ディスプレイ72の形態の出力、プロセッサ74、メモリ76及び電力供給78を含むスマートカードである。この例では、キーパッド70は、0から9の数字、並びにユーザ装置27の動作の選択及び制御を行うための2つの追加ボタンを含む12ボタン式キーパッドである。ユーザは、キーパッド70を使用してユーザ装置27にPIN等の値を入力してもよい。ディスプレイ72は、8桁英数字LCDディスプレイである。プロセッサ74は、メモリ76に存在するコンピュータソフトウェアプログラム80を実行するためのマイクロプロセッサ又はマイクロコントローラである。適切なプロセッサ74の例は、6502、ARM、Motorola6800、TexasInstrumentsMSP430である。電力供給78は、プロセッサ74及びユーザ装置27の他の機能的要素に電源を供給するために、バッテリ又は誘導コイルを含んでもよい。メモリ76は、プロセッサ74に搭載されたROMreadonlymemory例えば、EPROM又はEEPROMを含む。しかしながら、メモリ76は、プロセッサ74の外部にあることも可能である。また、メモリ76は、プロセッサ74に作業メモリを提供するためのRAMrandomaccessmemoryを含んでもよい。メモリ76は、プロセッサ74によって実行されるコンピュータソフトウェアプログラム80を記憶する。また、スマートカードは、クレジットカード又はデビットカードとして機能してもよく、カードと関係付けられる更なる情報を記憶するための磁気ストライプ、集積回路又は他の構成要素を含んでもよい。この情報は、認証システム30に転送するために適切な読み取り機によって読み取り可能であってもよい図2を参照。また、スマートカードは、認証システム30とデータ通信するために、上記の通信ポートを含んでもよい図2を参照。ユーザ装置27の上記例示はスマートカードの形態であるが、更なる実施形態が他の形態で実装されることも勿論可能である。例えば、ユーザ装置は、携帯電話、PDApersonaldigitalassistant、ラップトップコンピュータ、又はハンドヘルドコンピュータ等の適切な処理基盤が搭載された移動式装置を含んでもよい。同様に、ユーザ装置は、実行可能ソフトウェアプログラムによってプログラミングされるデスクトップコンピュータを含んでもよい。従って、ユーザ装置が多数の異なるハードウェアプラットフォームを含み得ることが理解されるであろう。ユーザ装置27のメモリ76は、認証キー82を記憶する。認証キー82は、電子データ交換サービス例えば、オンラインバンキングサービス、株式の取引サービス又はオンラインショッピングサービス等、コンピュータネットワークサービス例えば、ネットワークログオンサービス、通信サービス例えば、Eメールサービス又はメッセージングサービス、メンバーシップベースサービス例えば、オンラインフォーラム、レンタカーサービス、又は健康サービス、又はセキュリティサービス例えば、ビルアクセスサービス等の特定のサービスにアクセスするためのものであってもよい。代替的に、認証キー82は、複数の異なるサービスへのアクセスを可能にしてもよい。一実施形態では、メモリ76は、各々が1つ又は複数の特定サービスにアクセスするための複数の認証キーを記憶してもよい。ユーザは、どの認証キーが使用されるべきかをユーザ装置27に示すために特定のサービスを選択することを要求されてもよい。認証キー82は、ユーザ装置27と関係付けられるシード、コード又はデータシーケンス等の秘密キーである。この例示では、認証キー82は、ユーザ装置27のメモリ76に記憶された256ビットの共有キーである。認証キー82は、特定サービス向けに認証システム30のメモリ44に記憶された認証キー64と同じである。また、メモリ76には2つのアルゴリズムが記憶される。これらは、認証システム30に記憶されたアルゴリズム66及び68と同じであるコード生成アルゴリズム84及び値確認コード生成アルゴリズム86を含む。適切なコード生成アルゴリズム84及び適切な値確認コード生成アルゴリズム86の例が以下に示される。例示的なコード生成アルゴリズムこの例示におけるコード生成アルゴリズム66及び84は、ENCODEここで、は認証コードであり、は生成される認証コードの長さであり、は識別されたモードタイプのための認証キーであり、はユーザ装置と認証システムとの間で同期されるカウンタであり、は、特定のモードタイプを表す数であり、はモードのインスタンスであり、例えば、ユーザ装置が1つ以上の同じ値を有する場合例えば、2つのOTPonetimepasswordモード、はユーザ装置27又はユーザと関係付けられる既存のPIN即ち、古いPINであり、XORは論理的排他ORであり、は追加を示す。この例示では、コード生成アルゴリズム66、84は、この例示では、新しいPINである値を暗号化するために異なるアルゴリズムと関係付けられる異なるモードを使用してもよい。例えば、モードは、ワンタイムパスワードモード、両方向応答モード、又はユーザ入力データを考慮に入れるモードを含んでもよい。モードは、アクセスされているサービスに依存してもよく、認証システムで使用されるモード、そしてアルゴリズムと対応するであろう。コード生成アルゴリズム66、84は、単一のモードのみで動作することが可能であってもよく、この場合、モードパラメータのMODETYPE及びMODEINSTANCEが省略されてもよい。HASHは、任意の適切なハッシュ関数、例えば、MD5、SHA1、SHA224、SHA256、SHA384又はSHA512であってもよい。この例では、ハッシュ関数はSHA256関数である。また、ENCODEは、任意の符号化関数であってもよい。この例では、ENCODEは、以下の方程式を使用して、HASHの256ビットの結果DATAをの長さを有する認証コードに変換する。DigitNDATA...8-1MOD10dここで、Nは0から-1に等しく、DATAはこの例示ではSHA256ハッシュ関数であるHASH関数の256ビットの結果である。勿論、上記方程式は限定的な例示であることは意図されておらず、HASHを符号化するための他の関数が使用されてもよいことが理解されるであろう。以下の例示では、3であり、16進数の256ビットHASHの結果が表1に示されている。ENCODE関数は、以下の方程式を使用して、HASHの256ビットの結果DATAを3桁Digit0Digit1Digit2の長さを有する認証コードに変換する。Digit0Data4855MOD10d88hMOD10d136dMOD10d6Digit1Data5663MOD10d5BhMOD10d91dMOD10d1Digit2Data6471MOD10dE4hMOD10d228dMOD10d8ENCODE、そしての結果は、3桁の値になるであろう。618言い換えると、この例示では、認証コード=618である。この場合、ENCODE関数は、ハッシュ関数HASHを適用することによって、256ビット認証キーをn桁の認証コードに変換する。これは、この例示では、3ビット認証コードである。3ビット認証コードは、2ビット値及び1ビット値確認コードを暗号化する3ビットメッセージ、又は3ビット値を暗号化するメッセージを構築するために使用されてもよい。この例示では、カウンタMODECOUNTERは、安全性を高めるためにユーザ装置27と認証システムとの間で同期されるカウント値である。例として、一方又は他方を認証するためにユーザ装置と認証システムとの間でメッセージが伝達されるたびに、カウンタがインクリメントされ、カウンタを使用して認証キーがインクリメントされることにより、新しい認証キーを生成する。カウンタは選択的である。代替的に、値が暗号化されるたびに同じ認証キーを使用することもできる。例示的な値確認コード生成アルゴリズムこの例示における値確認コードVVC生成アルゴリズム68及び86は、以下の通りである。ENCODEここで、は暗号化されている値の長さであり、、、、、、HASH、ENCODE、XOR及びは上記の通りであり、は定数であり、この場合は16進数値FEであり、は暗号化されている値である。本例示では、セパレータは単にPIN即ち、古いPINとNEWPINとを区分化する好都合な機構を提供するために含まれる。上記の例は、認証コード及び値確認コードの各々を生成するための適切なアルゴリズムの2つの例示に過ぎず、他のアルゴリズムを使用することもできることが理解されるであろう。例えば、異なる又はより少ない変数がXORステップに含まれてもよく、PIN即ち、古いPINを使用する必要がない。更に、ユーザ装置27が単一のモードで動作する場合、、、等の値は適用できないであろう。更に、アカウント番号等の他の情報、又は追加のユーザ入力値が使用されてもよい。また、コード生成アルゴリズムで使用されるのとは異なる秘密キーが値確認コード生成アルゴリズムで使用されてもよく、又は実際には、値確認コード生成アルゴリズムは、秘密キーを全く使用せずに、別の手法を用いて値確認コードを生成してもよい。値の暗号化の例示図4は、本発明の実施形態によるユーザ装置27へ入力された値を暗号化する方法100を示す。この例示では、値は、認証システム30において記憶される代替PINである。次に図3及び図4を参照すると、ステップ102において、ユーザ101は、ユーザ装置27のキーパッド70を使用してPIN変更選択肢を選択する。PIN変更選択肢の選択は、以下に記載されるように、ユーザ装置27が認証システム30を認証すること可能にするために、認証システム30によって生成される認証応答を入力することをユーザに要求してもよい。しかしながら、このステップは、伝達された値が何れの場合も暗号化されているので選択的である。ステップ103では、ユーザ装置27は、代替PINを入力するようにユーザ101を促す。ステップ104では、ユーザ101は、代替の又は新たなPIN、例えば、代替の又は新たなPINを表す数字のシーケンス9876をキーパッド70に入力する。代替又は新たなPINが正確に入力されたことを確実にするために、ソフトウェア80は代替PINを再入力することをユーザに促してもよい。次に、ソフトウェア80は、ステップ105で既存のPIN即ち、古いPINを入力することをユーザ101に促して、ユーザはそれをステップ106で入力する。例えば、既存のPINは、数字のシーケンス1234であってもよい。ステップ108では、ソフトウェア80は、認証コードを生成するためにコード生成アルゴリズム84を使用して認証キー82を処理する。この例示では、以下の16進数値が使用される。4B501307664DCB01FFB6B335107B42E6FCA6B85751AE7274359E697915355B708000001130031323334この例示では、すでに記載したように、は選択的であって、コード生成アルゴリズムに含まれ得る追加データの例を提示するためにのみ含まれている。また、この例示では、1234の値この場合は既存のPINであるが16進数形式のASCII表示に変換されることにも留意されたい。このようは手法は、例えば、英数字値英数字のPIN等、或いは非英数字値が使用されることを可能にする。次に、この例示では、上記パラメータがコード生成アルゴリズム84によって以下のように処理される。ENCODE0000011300313233344B501214667CF932CBB6B335107B42E6FCA6B85751AE7274359E697915355B70HASH9A4B42FD177667F8549F5BD207BC7B77B23D6F495DA9F75CF5FF86C85C97F968ENCODE38491078従って、認証コードは、n桁コードここでn=8として生成される。認証コード=38491078ステップ110では、ソフトウェア80は、値確認コードを生成するために値確認コード生成アルゴリズム86を使用して値を処理する。及びに対する値は上記のように与えられる。更に、以下の通りである。FE393837364この例示では、再度、この例示で新たなPINである9876の値が、処理のために16進数形式のASCII表示即ち、39383736に変換されている。次に、上記パラメータは、値確認コード生成アルゴリズム86によって以下のように処理される。ENCODE000001130031323334FE39383736XOR4B501214667CF932CB488A0D274D42E6FCA6B85751AE7274359E697915355B70HASHCFF447C94C36CB6669BA3AB6617CADEEB6986319DA2A197112406D08C1C34518ENCODE3256従って、値確認コードは、m桁コードここでm=4として生成される。ValueVerificationCode3256ステップ112では、ソフトウェア80は、認証コード38491078、値9876及び値確認コード3256を使用して、値9876を暗号化するためのメッセージを構築する。この例示では、オペランドとして全ての3つの値を含む算術演算を使用してメッセージを構築する。この演算では、値及び値確認コードは連結シーケンス98763256を提供するために連結される。次に、モジュラス10演算を使用して、連結シーケンスに認証コードが付加される。各数字は以下のように別個に付加される。ADDここで、ADDはモジュラス10の加算演算である。この例では、値確認コード<VVC>が4桁値<NEWPIN>の末尾に連結されているが、値確認コードは、値の先頭に連結され、又は他の数字によって値から分離されることも可能であることに留意されたい。実際に、値確認コードは、認証コードに付加されるのではなく、メッセージの末尾に付加され得る。また、この例示では、値確認コードは、この例示では8桁である認証コードの長さと、この例示では4桁である値の長さとの差に対応するシーケンス長を有するように選択される。従って、この例示では、値は4桁を含み、認証コードは8桁を含み、値確認コードは4桁を含む。同様に、値が6桁を含み且つ認証コードが8桁を含む場合は、値確認コード<VVC>は2桁を含んでもよい。連結値及び値確認コードと比較して認証コードの桁数が異なってもよいことが理解されるであろう。しかしながら、認証コードは、値と少なくとも等しく、そうでなければ長さが値より長いことが望ましい。更に、この例は、認証コード、値及び値確認コードが10桁012345678及び9を含む数字の組から選択される数字のシーケンスからなるように、モジュラス10加算を使用する。しかしながら、数字がX桁を含む数字の組から選択される場合、メッセージは、モジュラスX加算又は減算等のモジュラスX算術演算を使用して構築され得る。次に、構築されたメッセージ即ち、26154224は、ステップ113では、ユーザ101に伝達又は出力され、メッセージは、ユーザ装置27の8桁ディスプレイ72上に表示するために出力されてもよい。メッセージ26154224は、値9876を決定及び確認して、ユーザ装置27及び/又はユーザ101を認証するために、認証システム30によって処理するために通信ネットワーク34を介して認証システム30に伝達するためのものである。ステップ114では、ユーザ101は、適切な手段によってメッセージを認証システム30に伝達する。ユーザがパーソナルコンピュータ24へのアクセスを有する場合、認証システム30にメッセージを伝達することは、ネットワーク34を介して認証システム30に送信するために、ユーザ101が手動でパーソナルコンピュータ24にメッセージを入力することを含んでもよい。他の代替では、ユーザ装置27は、ネットワーク接続されており例えば、それが携帯電話又はPDAである場合、更なるユーザ入力無しで認証システム30にメッセージを直接送信してもよい。更に他の代替では、メッセージは、現金自動支払機等の別の装置によってユーザ装置27例えば、クレジットカードから読み取られて、認証システム30に送信されてもよい。こうした代替では、ユーザ101は、メッセージの値を知る必要がない。メッセージと共に、ユーザ101又はユーザ装置27は、認証システム30に、クレジットカード番号、アカウント番号又はアカウント名等のユーザ装置27と関係付けられる追加の情報を伝達する。このような情報は、メッセージの伝達を要求するユーザ及び/又はカードを識別して、どの認証キー及びPINがユーザ装置27と関係付けられるかを決定するために使用されてもよい。しかしながら、追加の情報は、メッセージが伝達される前又は後のいずれかで提供されてもよいので、メッセージと共に伝達されることが不可欠ではない。値の確認の例示この例示では、認証システム30は、通信ポート50を介してメッセージを受信する。認証システム30は、追加の情報を使用して、どの認証キー及びPINがユーザ装置27と関係付けられるかを決定し、また、値を確認してユーザ101及び/又はユーザ装置27を認証するために受信したメッセージを処理するためにこれらを取得する。ステップ116で、認証システム30におけるソフトウェア62は、期待される認証コードを生成するためにコード生成アルゴリズム66を使用して認証キー64を処理する。このアルゴリズムは、上記のようにユーザ装置27で行われたコード生成アルゴリズム84のステップを反復する。ユーザ装置27によって使用された認証キー82が認証システム30によって使用された認証キー64と同じあった場合、同じ認証コード例えば、38491078が取得されるはずである。次に、ステップ118では、受信した値及び受信した値確認コードを導出するために期待される認証コード例えば、38491078を使用してメッセージ例えば、26154224を処理する。この例示では、メッセージの処理は、以下のようにメッセージを復号するためにモジュラス10演算を使用してメッセージから期待される認証コードを減ずることを含む。SUBTRACTこの例示では、メッセージを構築するためにユーザ装置27によって適用されるものに対する逆演算即ち、モジュラス10加算であるので、モジュラス10減算が使用される。上記例示では、は認証システム30によってメッセージから導出される新たなPIN値であり、は導出された値確認コードであり、は認証システム30によって生成される期待される認証コードである。この例示では、期待される認証コードの各数字は、モジュラス10演算を使用して受信したメッセージの各数字から別個に減算される。それによって、この場合、認証システム30は、受信した値の9876及び受信した値確認コードの3256を決定する。値及び値確認コードのシーケンス長はあらかじめ決めされていてもよく、その結果、認証システム30は、のどの数字が値の末尾と関係付けられるか及びどの数字が値確認と関係付けられるかを決定することができる。代替的に、長さは、様々な長さのPINを可能にするために、メッセージと共に認証システム30に伝達されてもよい。ステップ120では、認証システム30におけるソフトウェア62は、期待される値確認コードを生成するために値確認コード生成アルゴリズム68を使用して受信した値9876を処理する。このアルゴリズムは、上記のようにユーザ装置27で行われた値確認コード生成アルゴリズム86のステップを反復する。メッセージが正確に送信されたとすれば、同じ値確認コード3256が取得されるはずである。ステップ122では、ソフトウェア62は、期待される値確認コードを受信した値確認コードと比較する。2つのコードが相関する場合、認証システム30は、受信した値を確認して、ユーザ装置27及び/又はユーザ101を認証する。値確認コードが有効である場合、認証システム30は、メモリ44又はデータベース59に記憶された既存のPIN1234を置換PIN9876で置換し、それによってユーザ装置27と関係付けられるPINを更新するであろう。2つのコードが相関しなければ、PINは更新されない。ステップ124では、認証システム30は、PINが更新されたことをユーザ装置27に伝達する。認証システムの認証の例上記の通り、PIN変更選択肢の選択は、認証システム30によって生成される認証応答を入力することをユーザ101に要求してもよい。このような認証応答の例は、次に図5を参照して説明されるであろう。既に記載されたように、この認証方法は選択的である。他の方法が、ユーザ装置27に対して認証システム30を認証するために使用されてもよい。又は、値が暗号化されて送信されるので、認証システム30は認証される必要が全くない。図5に示される方法128では、ステップ130において、ユーザは、認証システム30に認証要求を伝達する。認証要求は、ユーザ装置27、又はネットワーク接続コンピュータ若しくは現金自動支払機等の別の装置を介して伝達されてもよい。ステップ132では、認証システム30におけるソフトウェア62は、例えば、バイナリ符号化10進数加算を使用してカウンタをインクリメントし、以下のように新たなカウンタを使用して認証キーをインクリメントする。BCDADD1HASH例えば、以下の通りである。0000001000D1B91D2CF82A7228AAF66D2C3E4958791E78C7CE5381DE00792FBDB6C3622FBB10000010000011000XORD1B91C3CF82A7228AAF66D2C3E4958791E78C7CE5381DE00792FBDB6C3622FBBHASH23FA771B482E3920FF1823F86B98BCC20CFA0FCC157E6978D7A18BCCA4C3B281ステップ134では、ソフトウェア62は、新たな認証キー64に基づく認証応答生成アルゴリズムを使用して認証応答を生成する。ENCODEMOD100ここで、は認証応答の長さである。例えば、以下の通りである。0000011000XOR23FA760B482E3920FF1823F86B98BCC20CFA0FCC157E6978D7A18BCCA4C3B281HASHAA0489DD6DD92C0C6DFFBE8D90FC3ACAFD49CE6D4FE7F0C1136805890AE888F7ENCODED12CMOD10d44MOD104D20CMOD10d12MOD102D36DMOD10d109MOD109D4FFMOD10d255MOD105ENCODEMOD100429501認証システム30は、例えば、認証要求を伝達するのに使用される同じ通信手段を介して、ステップ136でユーザ101に認証応答429501を伝達する。ステップ138では、ユーザ101は、認証応答を受信して、ユーザ装置27のキーパッド70に認証応答429501を入力する。ステップ140では、ユーザ装置27におけるソフトウェア80は、同じ認証応答生成アルゴリズムを使用して、同じ認証キーMODESECRETに基づく期待される認証応答を生成する。これは、最初にカウンタ及びシークレットのコピーを作ることによって行われる。次に、ソフトウェア80は、以下のアルゴリズムを使用してが受信した認証応答の最後の2桁と等しくなるまで一時カウンタ及び一時シークレットをインクリメントする。whileBCDADD1HASHソフトウェア80は、期待される認証応答を以下のように計算する。ENCODEMOD100ソフトウェア80は、期待される認証応答を受信した認証応答と比較し、認証応答が受信した認証応答と相関する場合、認証システム30が認証されることを示す。これに応じて、ソフトウェア80は、ステップ142ステップ103と等しいで暗号化される値を入力することをユーザに促す。また、及びは、一致する認証応答が見つかれば更新される。様々な変更、追加及び/又は修正が本発明の範囲から逸脱することなく既に記載された部分に対して行われてもよいこと、及び上記教示に照らして、本発明は、当業者によって理解される様々な方法でソフトウェア、ファームウェア及び/又はハードウェアに実装されてもよいことが理解されるべきである。本願は、1つ以上の将来の願書の優先権の基礎として利用されてもよく、任意のこのような将来の願書の請求項は本願に記載された何れか1つの特徴又は特徴の組み合わせを対象としてもよい。何れかのこのような将来の願書は、例示を目的として与えられ、何れかの将来の願書で請求項に記載され得ることに関して非限定的である1つ以上の以下の請求項を含んでもよい。