JP2013535903A - 暗号化装置及び方法 - Google Patents

暗号化装置及び方法 Download PDF

Info

Publication number
JP2013535903A
JP2013535903A JP2013520925A JP2013520925A JP2013535903A JP 2013535903 A JP2013535903 A JP 2013535903A JP 2013520925 A JP2013520925 A JP 2013520925A JP 2013520925 A JP2013520925 A JP 2013520925A JP 2013535903 A JP2013535903 A JP 2013535903A
Authority
JP
Japan
Prior art keywords
value
authentication
code
generation algorithm
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013520925A
Other languages
English (en)
Other versions
JP2013535903A5 (ja
Inventor
ジェイムズ エバン レノン、
Original Assignee
エミュー ホールディングス ピーティワイ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2010903315A external-priority patent/AU2010903315A0/en
Application filed by エミュー ホールディングス ピーティワイ リミテッド filed Critical エミュー ホールディングス ピーティワイ リミテッド
Publication of JP2013535903A publication Critical patent/JP2013535903A/ja
Publication of JP2013535903A5 publication Critical patent/JP2013535903A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するユーザ装置に入力される値を暗号化する方法が開示される。方法は、ユーザ装置がコード生成アルゴリズムを使用して認証キーを処理して、認証コードを生成するステップと、ユーザ装置が値確認コード生成アルゴリズムを使用して値を処理して、値確認コードを生成するステップとを含む。方法は、ユーザ装置が認証コード、値及び値確認コードを使用して、値を暗号化するメッセージを構築するステップを更に含み、メッセージは値を決定及び確認して、ユーザ装置及び/又はユーザを認証するために認証システムによって処理するために通信ネットワークを介して認証システムに伝達される。ユーザ装置に入力される値を認証システムに伝達し、且つ伝達された値を確認する方法、並びに関連するユーザ装置及び認証システムも開示される。

Description

本発明は、一般に、信頼できない又は安全でない通信ネットワーク上で通信するために、個人識別番号(personal identification number;PIN)等の値を暗号化する方法及び装置に関する。
多くの電子認証システムにおいて、ユーザは、インターネットバンキング、オンラインショッピング、現金自動支払機、株式の取引、請求書の支払い、電子資金、電気通信サービス等のサービスへのアクセス、又は部屋若しくは車両へのアクセスの前に承認の証拠を提供することを要求される。承認の証拠は、ユーザがアクセスを許可される前に入力又はそれ以外で提供しなければならないパスワード若しくはPINの形式であってもよい。
ユーザは、悪意の第三者によって発見される可能性を少なくするために、自身のPINを秘密にして、それを定期的に変更するように忠告される。PINを変更する間の期間が長くなると、それが発見されて、サービス、部屋又は車両への非承認アクセスを得るために使用される可能性が高くなり得る。
通信ネットワーク上でPINを変更する方法の1つは、例えば、SSH(Secure Shell)プロトコルを使用して、セキュアトンネルを確立することを含み、ここで暗号化されていないデータは、ネットワーク上で暗号化されたトンネルを通じてサーバに伝送されてもよい。しかしながら、この方法は、完全にプロセッサ集約型であり、トンネルを確立するのに通信リソースとオーバヘッドを必要とする。更に、セキュアトンネルは「介入者(man in the middle)」がPINを取得するのを防ぎ得るが、PINは、それにもかかわらずサーバによって検出されない「介入者」型攻撃により改ざん及び/又は干渉の影響を受けやすい。
要求される処理要件が少なく、「介入者」型攻撃の影響を受けにくいように、PIN等の値を伝達することが望ましいであろう。
背景技術の上記検討は、本発明の文脈を説明するために含まれている。参照された何れの文書又は他の素材も本明細書の請求項の何れか1つの優先日において刊行され、周知であり、又は慣用知識の一部であったと認められるべきではない。
一態様によれば、本発明は、認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するユーザ装置に入力される値を暗号化する方法であって、
ユーザ装置がコード生成アルゴリズムを使用して認証キーを処理して認証コードを生成するステップと、
ユーザ装置が値確認コード生成アルゴリズムを使用して値を処理して値確認コードを生成するステップと、
ユーザ装置が認証コード、値及び値確認コードを使用して値を暗号化するメッセージを構築するステップであって、メッセージは値を決定及び確認して、ユーザ装置及び/又はユーザを認証するために認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップとを含む方法を提供する。
この方法は、セキュアトンネルを確立し及びそれを介して通信することと比較して、少ないプロセッサスループット又は通信リソース要求を使用して暗号化された値の通信を可能にし得る。暗号化されたデータパケット内の暗号化されていないデータを伝達する代わりに、本発明の実施形態では、データが暗号化されてもよく、この場合それは値である。少ないプロセッサスループットは、電力消費を減らして、低電力ユーザ装置での使用に特に適した方法を提供することが期待される。また、暗号化チャネルを使用してネットワーク上で非暗号化トラフィックを伝達するセキュアトンネルと異なり、本発明の実施形態は、信用できない又は安全でない通信チャネルを介して伝達される値を暗号化するメッセージを構築し得る。
本発明の実施形態は、「介入者(man in the middle)」型の攻撃の問題を解決し得る。例えば、攻撃者がメッセージを傍受した場合、値が攻撃者から隠されるだけでなく、攻撃者は認証システムへの伝送に確認可能な値を代用することもできないであろう。実際に、攻撃者が暗号化された値と関係付けられるメッセージの特定のビット又は要素の知識を持っていたとしても、値確認コードはメッセージによって暗号化される値から生成されるので、例えば、攻撃者が傍受したメッセージを改ざんすることによって異なる暗号化された値を代用して、これを認証システムに伝達しようした場合、攻撃者は、代用される値に対する有効な値確認コードを生成することができないであろう。
本発明の実施形態は、例えば、ユーザだけが知っているPINを含む値を伝達するメッセージを構築してもよい。例えば、ユーザが新たな又は代替のPINを選択する場合である。更に、メッセージは、ユーザ装置に対して一意の認証キーを処理することによって構築されるので、ユーザ装置及び/又はユーザを認証するための認証処理に使用可能な情報も含んでよい。言い換えれば、本発明の方法の実施形態は、値及び認証情報が認証システムによって導出され又は決定されるメッセージを構築してもよい。
ユーザ装置は、スマートカード、携帯電話、ハンドヘルドコンピュータ、ノートパッドコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、PDA(personal digital assistant)、又は任意の他の適切な装置を含んでもよい。
値は、例えば、パスワード、PIN、クレジットカード番号、他の数字、文字列、文字、配列、データ構造、又は任意の他のデータを含んでもよい。値がPINである場合、PINは、既存のPIN(「古いPIN」)を置換するために認証システムに伝達される代替の又は新たなPIN(「新たなPIN」)を含んでもよい。ユーザは、新たなPINを選択してユーザ装置に入力してもよい。攻撃者がメッセージを傍受した場合、新たなPINは、攻撃者から隠されるであろう。更に、攻撃者が認証システムに代わりの代替PINを送信しようとした場合、攻撃者は、認証キーへのアクセス無しで代わりの代替PINを有効に暗号化することができないであろう。更に、攻撃者が認証システムに異なるメッセージを送信した場合、メッセージは無効な値確認コードを含むことになるので、新たなPINは認証システムで確認及び更新されないであろう。この点に関して、万一攻撃者が有効な値確認コードを推定したとしても、攻撃者は、認証キーを知らずに認証システムに記録された新たなPINを推定することができないであろう。
認証キーは、好ましくは、認証システムと共有される対称キー等の秘密キーである。認証キーは、例えば、256ビットバイナリコード等のシード、コード又はデータシーケンスを含んでもよい。認証キーは、固定又は静止キーであってもよく、又は、それは、認証コード生成アルゴリズムの反復ごとに又は場合によっては既定の期間の経過後に更新されるワンタイム使用可能キーを含んでもよい。
ユーザ装置は、適切な通信チャネルを介して認証システムにメッセージを伝達してもよく、又は、それは、別の手段を介して、例えば、通信ネットワークを介して認証システムに構築されたメッセージを伝達するように適合される通信端末等の、異なる装置にユーザがメッセージを入力することによって、認証システムに伝達される出力としてメッセージを構築してもよい。
ユーザ装置が認証システムにメッセージを伝達する実施形態では、ユーザ装置は、認証システムに直接に又は適切なデータ通信ネットワークを介して認証システムとデータ通信するネットワークノードを介して間接的に構築されたメッセージを伝達する有線及び/又は無線通信インターフェースを含んでもよい。
認証システムへの通信のための通信端末等の装置へのユーザ入力のためにユーザ装置がユーザにメッセージを出力する実施形態では、ユーザ装置は、有線及び/又は無線通信インターフェースを含む必要はないが、その代わりに、ユーザにメッセージを出力するためにディスプレイ等のユーザインターフェースを含んでもよい。例えば、適切なユーザインターフェースは、ディスプレイ(LED又はLCDディスプレイ等)又は音声出力インターフェースを含んでもよい。更に別の実施形態では、ユーザ装置は、ユーザにメッセージを出力するために第2のユーザ装置等の中間通信装置に構築されたメッセージを伝達して、それからユーザが認証システムに入力し、そうでなければ構築されたメッセージを伝達するための有線及び/又は無線通信インターフェースを含んでもよい。例として、ユーザ装置は、携帯電話、ハンドヘルドコンピュータ、ノートパッドコンピュータ、タブレットコンピュータ、デスクトップコンピュータ又はPDA(personal digital assistant)等の第2のユーザ装置へのSMS(short message service message)、Eメールメッセージ又はインスタントメッセージングサービス等の電子データ通信で、携帯電話等の第2のユーザ装置に構築されたメッセージを伝達するための電子データ通信インターフェースを含んでもよい。
上記の有線通信インターフェースに関して、適切な有線通信インターフェースは、例えば、USBインターフェース、IEEE802.3インターフェース、SPI(serial peripheral interface bus)インターフェース、又は接触型スマートカードインターフェース等を含んでもよい。他の適切な有線通信インターフェースが熟練した受信者には周知であろう。適切な無線通信インターフェースは、例えば、磁気ストライプインターフェース、光学インターフェース、IEEE802.11無線インターフェース、Bluetooth(登録商標)インターフェース、ZigBee(登録商標)インターフェース、無線USB、又は非接触型スマートカードインターフェース等を含んでもよい。他の適切な無線通信インターフェースが熟練した受信者には周知であろう。
認証コードを生成するためにコード生成アルゴリズムを使用して認証キーを処理することは、好ましくは、適切なハッシュ関数を認証キーに、場合によっては認証キー及び他のデータを伴う論理関数の結果に適用することによって、認証キーをn桁認証コードに変換する符号化処理を含む。適切なハッシュ関数は、例えば、MD5、SHA-1、SHA-224、SHA-256、SHA-384又はSHA-512を含んでもよい。理解されるように、ハッシュ関数は、この場合、認証キー又は認証キー及び他のデータを伴う論理演算の結果のいずれかである入力を変換して、固定長ハッシュ値出力を提供する。
コード生成アルゴリズムが認証キー及び他のデータを伴う論理演算の結果を入力として取るハッシュ関数を適用する場合、適切な論理演算は、例えば、XOR論理演算を含んでもよい。しかしながら、他の論理演算が使用されることも可能である。他のデータは、同期カウンタ値、及び/又は識別コード(古いPIN等)、及び/又はユーザ装置に関するモード情報等のデータ値を付加することによって形成されてもよい。同期カウンタ値は、認証処理後にユーザ装置及び認証システムにおいて新たな認証キーを生成又は更新するために認証システムにおける対応するカウンタと同期されるカウント値であってもよい。認証キーを伴う論理演算と共に他のデータ内に識別コードを含むことは、正しいユーザがユーザ装置を使用していることを確実にするのを支援してもよい。
一実施形態では、ユーザは、方法を実行するようにユーザ装置を起動するためにユーザ装置に古いPINを入力(input or enter)することを要求される。
値確認コードを生成するために値確認コード生成アルゴリズムを使用して値を処理することは、好ましくは、ユーザ装置のユーザによって入力(input or enter)される古いPIN等の、値に、場合によっては値及び他のデータを伴う論理演算の結果に適切なハッシュ関数を適用することによって、値をm桁値確認コードに変換する符号化処理を含む。従って、古いPINは、認証コード生成アルゴリズム及び値確認コード生成アルゴリズムに使用されてもよい。値確認コードを生成するために使用される論理演算は、認証キー又は実際に異なる秘密キーを伴ってもよい。従って、値確認コードの生成に古いPIN及び/又は認証キーを伴う実施形態は、値を確認して(認証キーを介して)ユーザ装置及び/又は(古いPINを介して)ユーザを認証するために認証システムによって処理され得る値確認コードを生成してもよい。従って、値確認コードによって、即ち、値を確認してユーザ装置及び/又はユーザを認証することによって、2つの目的が果たされてもよい。
値を暗号化するメッセージを構築するために認証コード、値及び値確認コードを使用することは、少なくとも認証コード及び値を含む論理又は算術演算を実行することを含んでもよい。しかしながら、一部の実施形態では、論理又は算術演算は、値確認コードを更に伴ってもよい。
論理又は算術演算は、値及び値確認コードを連結して値及び値確認コードを含む連結結果を形成し、それからモジュラス演算を使用して連結結果に認証コードを加算することを含んでもよい。この場合、連結結果に認証コードを加算することによって、値及び値確認コードを暗号化するメッセージが構築される。
好ましくは、認証コード、値及び値確認コードは、可能なX桁の数字の組から個々の数字のシーケンスとしてそれぞれ形成される。これに関して、本明細書を通じて使用される場合に、「数字(digit)」という用語は、数字、文字又はシンボル等を示すものであることが理解されるべきである。数字が複数のバイナリビットを使用して表されてもよいことが理解されるであろう。例えば、「9」という数字は、バイナリで「1001」として表されてもよい。この例示では、数字は、「0」から「9」の10個の数字の組から選択される「9」という数である。可能なX桁の数字の組は、ASCII文字セット(言い換えれば、異なる数字128個の数字の組)、拡張ASCII文字セット(言い換えれば、異なる数字255個の数字の組)、又はASCII文字のサブセットを含んでもよい。この場合、各数字は、8ビットバイナリシーケンス、又は2文字バイナリ化10進シーケンスとして表されてもよい。
個々の数字のシーケンスが可能な数字Xの数字の組からの数字を含み、メッセージを構築するためにモジュラス演算が使用される実施形態では、モジュラス演算は、モジュラスX演算を使用してもよい。モジュラスX演算を使用することは、一意の可逆的(即ち、復号可能)メッセージが暗号化された値ごとに構築されることを確実にしてもよい。言い換えると、暗号化された値は、メッセージによって暗号化された値を回復又は再構築するために一意に復号可能であってもよい。従って、同じ認証コードを使用してメッセージを構築することによって暗号化される2つの異なる値は、異なる一意で可逆的な構築されたメッセージを生ずるであろう。
一実施形態では、構築されたメッセージは、N桁メッセージであるので、N桁の「長さ」を有する。認証コードは、構築されたメッセージのそれと同じ又はより短い長さを有してもよい。従って、例えば、認証コードは、n=Nであるn桁コードを含んでもよい。
好ましくは、値は、認証コードの長さよりも短い長さを有し、値確認コードは、値と値確認コードとの結合された長さが認証コードの長さに対応するように認証コードの長さと値の長さの差に対応する長さを有する。このようにして、適切な算術又は論理演算を選択することによって、構築されたメッセージは、認証コードの長さと対応する長さを有してもよく、また構築されたメッセージの各数字は、値又は値確認コードのいずれかの個々の数字を暗号化してもよい。例えば、認証コードがn桁の長さを有すると仮定すると、構築されたメッセージもn桁の長さを有してもよく、n桁は値を暗号化するi桁及び値確認コードを暗号化するm桁を含んでおり、n=i+mである。この例示では、メッセージの長さが値及び値確認コードの結合された長さに対応しており、同じ桁数を有するので、認証コードにおける各数字は、値及び値確認コードを隠すメッセージを構築するための連結されたシーケンスの個々の数字と共に別個の算術演算(加算又は減算等)に関与してもよい。代替的に、メッセージは、認証コード、及び連結された値及び値確認コードを含む論理演算(XOR論理演算等)を実行することによって構築されてもよい。
別の代替では、値を暗号化するメッセージを構築するために認証コード、値及び値確認コードを使用することは、値を暗号化するために認証コード及び値のみを使用して、それからメッセージの構築を遂行するために値確認コードを暗号化された値に付加する論理又は算術演算を実行することを伴ってもよい。この代替では、値確認コードは暗号化されなくてもよい。この場合、論理又は算術演算を実行することは、例えば、認証コード及び値のみを伴うモジュラス算術演算を含む算術演算を含んでもよい。上記のように、認証コード及び値は、X桁を含む数字の組からの数字のシーケンスを含んでもよく、モジュラス演算は、モジュラスX演算を使用してもよい。この実施形態では、例えば、認証コードにおける各数字がモジュラス演算を使用して値の各数字に別々に加算されることで値を暗号化するメッセージを構築するように、認証コード及び値が同じ長さを有することが好ましい。この場合、値を暗号化するメッセージは、値を暗号化する部分及び値確認コードを含む非暗号化部分を含むであろう。
メッセージを構築する他の方法も可能である。例えば、認証コードを連結シーケンス又は値に加える代わりに、メッセージを構築することは、認証コードから連結シーケンス又は値のいずれかを減算すること又はその逆を伴ってもよい。加算又は減算の代わりに、メッセージは、認証コード、値及び値確認コード、又は認証コード及び値、又はこれらのバイナリ若しくは他の表現を伴うバイナリXOR演算(排他的OR)等の論理演算の結果として構築されてもよい。例えば、値及び値確認コードのバイナリ表現が連結されてもよく、結果として生ずる連結シーケンスがメッセージを構築するために認証コードのバイナリ表現でXORされてもよい。別の例示では、値のバイナリ表現は、論理結果を提供するためにバイナリXORを使用して認証コードのバイナリ表現と結合されて、値確認コードがその結果に付加されてもよい。例えば、異なる論理又は算術演算を使用してメッセージを構築する他の方法も可能であることが理解されるであろう。
認証システムによってメッセージを受信すると、認証システムは、メッセージを構築するためにユーザ装置によって使用されるのと同じ認証キー及びコード生成アルゴリズムを処理することによって期待される認証コードを生成する。次に、認証システムは、メッセージを構築するためにユーザ装置によって実行されたものに逆の論理及び/又は算術演算を適用することによってメッセージに含まれる値及び値確認コードを決定又は導出する。次に、認証システムは、メッセージから決定又は導出された値確認コードと比較される期待される値確認コードを生成するために同じ値確認コード生成アルゴリズムを使用して決定又は導出された値を処理する。導出された値確認コードが期待される値確認コードと一致する場合、これは、値を確認して、値を暗号化するために使用される認証コードが正確であったことを示すので、ユーザ装置及び/又はユーザを認証する。
また、一部の実施形態では、ユーザ装置及び/又はユーザを識別する情報は、メッセージの中で又はメッセージとは独立して認証システムに伝達されてもよい。例えば、認証システムが複数のユーザ装置を認証する場合、識別情報は、認証コードを生成するためにユーザ装置がどの認証キーを使用すべきであったかを決定するために使用されてもよい。
また、方法は、構築されたメッセージを認証システムに伝達する前に、ユーザ装置及び/又はユーザに対して認証システムを認証することを含んでもよい。このようにして、ユーザは、メッセージを認証サーバに伝達する前に認証システムの真正性を確認することが可能であってもよい。方法は、例えば、
ユーザ装置が、サーバ認証キーに基づいて応答生成アルゴリズムを使用して認証システムにおいて生成された認証応答を受信することであって、この応答はユーザ及び/又はユーザ装置から認証要求を受信することに応答して生成されること、
ユーザ装置が、同じ応答生成アルゴリズムを使用して、サーバ認証キーに基づいて期待される認証応答を生成すること、
ユーザ装置が、認証応答と期待される認証応答とを比較すること、及び
予測される認証応答が受信した認証応答と相関する場合に、暗号化のための値を入力するようにユーザを促すことを含んでもよい。
サーバ認証キーは、値を暗号化するために使用される認証キーと同じであってもよく、又はそれは異なるキーであってもよい。同様に、応答生成アルゴリズムは、コード生成アルゴリズムと同じであってもよく、又はそれは異なるアルゴリズムであってもよい。
別の態様によれば、本発明は、通信ネットワークを介して認証システムに伝達される値を確認する方法であって、認証システムはユーザ装置と関係付けられる認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶しており、
認証システムがユーザ装置によって構築されるメッセージを受信するステップと、
認証システムがコード生成アルゴリズムを使用して認証キーを処理して、期待される認証コードを生成するステップと、
認証システムが期待される認証コードを使用してメッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
認証システムが値確認コード生成アルゴリズムを使用して受信した値を処理して、期待される値確認コードを生成するステップと、
認証システムが期待される値確認コードを受信した値確認コードと比較するステップと、
期待される値確認コードが受信した値確認コードと相関する場合に、受信した値を確認して、ユーザ装置及び/又はユーザを認証するステップとを含む方法を提供する。
方法は、認証システムが単一のメッセージを処理することによって受信した値を確認してユーザ装置及び/又はユーザを認証することの双方を可能にしてもよい。
認証システムは、異なるユーザ装置と関係付けられる複数の認証キーを記憶してもよい。ラベル等の認証システムに送信される更なる情報が、どの認証キーがユーザ装置及び/又はユーザと関係付けられるべきかを決定するために使用されてもよい。例として、ラベルは、クレジットカード番号、アカウント番号、又はユーザ名等を含んでもよい。
値確認コード生成アルゴリズムを使用して受信した値を処理して期待される値確認コードを生成するステップは、認証キー又は異なる秘密キーのいずれかを処理することを更に含んでもよい。この場合、予想される値確認コードは、ユーザ装置が正確なキーを使用した場合に限り、受信した値確認コードと相関するであろう。従って、値確認コードは、2つの目的、即ち、値を確認すること及びユーザ装置及び/又はユーザを認証することを果たすであろう。この点で、期待される値確認コードと受信した値確認コードとの「相関」は、2つの値が同一であるか、期待される関係を有することを意味してもよい。
メッセージを処理することは、期待される認証コードを使用して論理又は算術演算を実行することを含んでもよい。論理又は算術演算を実行することは、モジュラス演算を使用してメッセージの少なくとも一部から期待される認証コードを減算することを含んでもよい。
認証コードは、メッセージ全体から減算されてもよく、又は値確認コードが暗号化されたPINに付加されている場合、値確認コードは、認証コードを減算する前にメッセージから除去(de-append)されてもよい。
期待される認証コード及びメッセージは、可能なX桁を含む数字の組から選択される数字からなってもよい。また、モジュラス演算は、モジュラスXを使用してもよい。一実施形態では、期待される認証コードの各数字は、モジュラス演算を使用してメッセージの各数字から別個に減算されてもよい。
正しいユーザがユーザ装置を操作していることを確実にするために、コード生成アルゴリズムを使用して認証キーを処理して期待される認証コードを生成するステップは、ユーザ装置と関係付けられ且つ認証システムに記憶されるPINを処理することを更に含んでもよい。ユーザ装置の側において、正しい認証コードを生成するために、ユーザは、正しいPINを入力する必要があるであろう。
同様に、値確認コード生成アルゴリズムを使用して受信した値を処理して期待される値確認コードを生成するステップは、ユーザ装置と関係付けられ且つ認証システムに記憶されるPINを処理することを更に含んでもよい。同じPINが、コード生成アルゴリズム及び値確認コード生成アルゴリズムの双方に使用されてもよい。
上記のように、値は、認証システムにおける記憶のための、ユーザ装置と関係付けられる代替の又は新たなPINであってもよい。また、メッセージが伝達される前にユーザ装置が認証システムを認証できるように、方法は、メッセージを受信する前に、
認証システムが、ユーザ装置と関係付けられる認証要求を受信すること、
認証システムが、認証キーに基づいて応答生成アルゴリズムを使用して認証応答を生成すること、
認証システムが、認証応答を要求側に伝達することを含んでもよい。
要求側は、ユーザ装置又はネットワーク接続されたコンピュータ等の別の装置を含んでもよい。
本発明の実施形態の別の態様によれば、ユーザ装置に入力される値を通信ネットワークを介して認証システムに伝達する方法であって、ユーザ装置が、第1の認証キー、第1のコード生成アルゴリズム及び第1の値確認コード生成アルゴリズムを記憶し、認証システムが、第2の認証キー、第2のコード生成アルゴリズム及び第2の値確認コード生成アルゴリズムを記憶する方法が提供される。この方法は、
ユーザ装置が第1のコード生成アルゴリズムを使用して第1の認証キーを処理して、認証コードを生成するステップと、
ユーザ装置が第1の値確認コード生成アルゴリズムを使用して値を処理して、値確認コードを生成するステップと、
ユーザ装置が認証コード、値及び値確認コードを使用して、値を暗号化するメッセージを構築するステップと、
メッセージを認証システムに伝達するステップと、
認証システムがメッセージを受信するステップと、
認証システムが第2のコード生成アルゴリズムを使用して第2の認証キーを処理して、期待される認証コードを生成するステップと、
認証システムが期待される認証コードを使用してメッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
認証システムが第2の値確認コード生成アルゴリズムを使用して受信した値を処理して、期待される値確認コードを生成するステップと、
認証システムが期待される値確認コードを受信した値確認コードと比較するステップと、
期待される値確認コードが受信した値確認コードと相関する場合に、受信した値を確認して、ユーザ装置を認証するステップとを含む。
別の態様によれば、本発明は、
値を受信するための入力部と、
メッセージを出力するための出力部と、
プロセッサと、
認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、
プロセッサにアクセス可能なメモリに存在するソフトウェアであって、ユーザ装置に入力される値を暗号化する方法を実行するためにプロセッサによって実行可能な一連の命令を含むソフトウェアとを含むユーザ装置を提供する。この方法は、
コード生成アルゴリズムを使用して認証キーを処理して、認証コードを生成するステップと、
値確認コード生成アルゴリズムを使用して値を処理して、値確認コードを生成するステップと、
認証コード、値及び値確認コードを使用して、値を暗号化するメッセージを構築するステップと、
メッセージを出力するステップであって、メッセージは値を決定及び確認して、ユーザ装置を認証するために認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップとを含む。
ソフトウェアは、上記の方法の任意のステップを更に実行してもよい。一実施形態では、ユーザ装置は、出力としてn桁ディスプレイを含むスマートカードを含む。この実施形態では、認証コードは、n桁シーケンスであってもよく、値は、認証コードのシーケンス長よりも短いシーケンス長を有してもよく、値確認コードは、認証コードのシーケンス長と値のシーケンス長との差に対応するシーケンス長を有してもよい。この実施形態は、ディスプレイで全ての数字を使用しつつ、値を暗号化するのに必要とされる処理能力を低減させてもよい。認証コード、値及び値確認コードは、全てn桁より短いシーケンス長を有してもよい。
別の態様によれば、本発明は、
通信ポートと、
プロセッサと、
認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、
プロセッサにアクセス可能なメモリに存在するソフトウェアであって、方法を実行するためにプロセッサによって実行可能な一連の命令を含むソフトウェアとを含む認証システムを提供する。この方法は、
メッセージを受信するステップと、
コード生成アルゴリズムを使用して認証キーを処理して、期待される認証コードを生成するステップと、
期待される認証コードを使用してメッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
値確認コード生成アルゴリズムを使用して受信した値を処理して、期待される値確認コードを生成するステップと、
期待される値確認コードを受信した値確認コードと比較するステップと、
期待される値確認コードが受信した値確認コードと相関する場合に、受信した値を確認して、ユーザ装置及び/又はユーザを認証するステップとを含む。
ソフトウェアは、上記の方法の任意のステップを更に実行してもよい。また、本発明は、上記のユーザ装置及び認証システムを含むシステム、上記の方法の何れか1つを実行するためにプロセッサによって実行可能な一連の命令を含むソフトウェア自体、及びソフトウェアを含むコンピュータ可読媒体にまで及ぶ。
本発明の実施形態は、単に例示を目的として、添付の図面を参照して以下に説明されるであろう。図面の特殊性が上述した本発明の一般性に取って代わるものではないことが理解されるべきである。
本発明の実施形態による認証システム及びユーザ装置を含む例示的なネットワークの概略図である。 図1の認証システムの低レベルブロック図である。 図1のユーザ装置の低レベルブロック図である。 図3のユーザ装置において値を暗号化して、図2の認証システムにおいてその値を確認する方法の実施形態の流れ図である。 認証システムを認証する方法の実施形態の流れ図である。
(ネットワークの例)
本発明の実施形態は、図1に例が示されている通信ネットワーク上で実現され得る。図1に示されたネットワーク20は、1つ以上のユーザ装置及び1つ以上の認証システムを含む。この例示では、ユーザ装置は、パーソナルコンピュータ(PC)22及び24、スマートカード26及び27、並びにハンドヘルド装置28を含む。認証システムは、サーバ30及び32を含む。図示のように、ユーザ装置22から28及び認証システム30、32は、通信ネットワーク34を介して電子データ通信をサポートするために接続される。
ネットワーク34上のデータ伝送は、有線又は無線のデータ通信を含んでもよい。認証システム30及び32は、ネットワーク34、並びに各データベース36及び38等の1つ以上のデータベース上でのデータ伝送を容易にし得る。
本発明の実施形態は、MAN(metropolitan area network)、WAN(wide area network)、LAN(local area network)又は他のインターネット等の異なるネットワーク上で実現されてもよいことが理解されるであろう。また、一部の実施形態は完全にユーザ装置又は認証システムで行われ得るので、実施形態は、必ずしもネットワーク上で行われる必要はない。
(認証システムの例)
図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等の有線又は無線ネットワークを介して他の装置と通信することができる。適切な通信ポートは、IEEE802.11型の無線インターフェース、GPRS(general packet radio service)互換インターフェース、WAP(wireless application protocol)互換インターフェース、Bluetooth(登録商標)インターフェース、光学インターフェース(IrDAインターフェース等)、ZigBeeインターフェース、USB(universal serial bus)インターフェース等、又はRFID(adio frequency identification)誘導型の通信インターフェースを使用してもよい。
使用時、認証システム30は、データが通信ポート50を介してデータベース59に記憶され及び/又はデータベース59から取得されることを可能にするように適合され得る。
認証システム30は、任意の形態の端末、サーバ処理システム、専用ハードウェア、コンピュータ、コンピュータシステム又はコンピュータ化装置、パーソナルコンピュータ(PC)、移動式又は携帯電話、移動式データ端末、携帯型コンピュータ、PDA(Personal Digital Assistant)、ページャ、スマートカード又は任意の他の種類の装置を含んでもよい。
(ユーザ装置の例)
図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、Texas Instruments MSP430である。電力供給78は、プロセッサ74及びユーザ装置27の他の機能的要素に電源を供給するために、バッテリ又は誘導コイルを含んでもよい。
メモリ76は、プロセッサ74に搭載されたROM(read-only memory)(例えば、EPROM又はEEPROM)を含む。しかしながら、メモリ76は、プロセッサ74の外部にあることも可能である。また、メモリ76は、プロセッサ74に作業メモリを提供するためのRAM(random access memory)を含んでもよい。メモリ76は、プロセッサ74によって実行されるコンピュータソフトウェアプログラム80を記憶する。
また、スマートカードは、クレジットカード又はデビットカードとして機能してもよく、カードと関係付けられる更なる情報を記憶するための磁気ストライプ、集積回路又は他の構成要素を含んでもよい。この情報は、認証システム30に転送するために適切な読み取り機によって読み取り可能であってもよい(図2を参照)。また、スマートカードは、認証システム30とデータ通信するために、上記の通信ポートを含んでもよい(図2を参照)。
ユーザ装置27の上記例示はスマートカードの形態であるが、更なる実施形態が他の形態で実装されることも勿論可能である。例えば、ユーザ装置は、携帯電話、PDA(personal digital assistant)、ラップトップコンピュータ、又はハンドヘルドコンピュータ等の適切な処理基盤が搭載された移動式装置を含んでもよい。同様に、ユーザ装置は、実行可能ソフトウェアプログラムによってプログラミングされるデスクトップコンピュータを含んでもよい。従って、ユーザ装置が多数の異なるハードウェア「プラットフォーム」を含み得ることが理解されるであろう。
ユーザ装置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は、

<STEP1> = ENCODE(
<CODE LENGTH>, HASH(
<MODE SECRET> XOR (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
<PIN>
)
)
)
ここで、<STEP1>は認証コードであり、<CODE LENGTH>は生成される認証コードの長さであり、<MODE SECRET>は識別されたモードタイプのための認証キーであり、<MODE COUNTER>はユーザ装置と認証システムとの間で同期されるカウンタであり、<MODE TYPE>は、特定のモードタイプを表す数であり、<MODE INSTANCE>はモードのインスタンスであり、例えば、ユーザ装置が1つ以上の同じ<MODE TYPE>値を有する場合(例えば、2つのOTP(one-time-password)モード)、<PIN>はユーザ装置27又はユーザと関係付けられる既存のPIN(即ち、古いPIN)であり、XORは論理的排他ORであり、“&”は追加を示す。
この例示では、コード生成アルゴリズム66、84は、(この例示では、新しいPINである)値を暗号化するために異なるアルゴリズムと関係付けられる異なる「モード」を使用してもよい。例えば、「モード」は、ワンタイムパスワードモード、両方向応答モード、又はユーザ入力データを考慮に入れるモードを含んでもよい。モードは、アクセスされているサービスに依存してもよく、認証システムで使用されるモード、そしてアルゴリズムと対応するであろう。コード生成アルゴリズム66、84は、単一のモードのみで動作することが可能であってもよく、この場合、モードパラメータのMODE TYPE及びMODE INSTANCEが省略されてもよい。
HASHは、任意の適切なハッシュ関数、例えば、MD5、SHA-1、SHA-224、SHA-256、SHA-384又はSHA-512であってもよい。この例では、ハッシュ関数はSHA-256関数である。また、ENCODEは、任意の符号化関数であってもよい。この例では、ENCODEは、以下の方程式を使用して、HASHの256ビットの結果(DATA)を<CODE LENGTH>の長さを有する認証コードに変換する。

Digit N = DATA[(48 + (N * 8))…(48 + ((N + 1) * 8) − 1)] MOD 10d
ここで、Nは0から(<CODE LENGTH> − 1)に等しく、DATAはこの例示ではSHA-256ハッシュ関数であるHASH関数の256ビットの結果である。勿論、上記方程式は限定的な例示であることは意図されておらず、HASHを符号化するための他の関数が使用されてもよいことが理解されるであろう。
以下の例示では、<CODE LENGTH> = 3であり、(16進数の)256ビットHASHの結果が表1に示されている。

Figure 2013535903

ENCODE関数は、以下の方程式を使用して、HASHの256ビットの結果(DATA)を3桁(Digit 0, Digit 1, Digit 2)の長さを有する認証コードに変換する。

Digit 0 = Data[48..55] MOD 10d = 88h MOD 10d = 136d MOD 10d = 6
Digit 1 = Data[56..63] MOD 10d = 5Bh MOD 10d = 91d MOD 10d = 1
Digit 2 = Data[64..71] MOD 10d = E4h MOD 10d = 228d MOD 10d = 8

ENCODE、そして<STEP1>の結果は、3桁の値になるであろう。

<STEP1> = 618.
言い換えると、この例示では、認証コード=618である。この場合、ENCODE関数は、ハッシュ関数HASHを適用することによって、256ビット認証キーをn桁の認証コードに変換する。これは、この例示では、3ビット認証コードである。3ビット認証コードは、2ビット値及び1ビット値確認コードを暗号化する3ビットメッセージ、又は3ビット値を暗号化するメッセージを構築するために使用されてもよい。
この例示では、カウンタ(MODE COUNTER)は、安全性を高めるためにユーザ装置27と認証システムとの間で同期されるカウント値である。例として、一方又は他方を認証するためにユーザ装置と認証システムとの間でメッセージが伝達されるたびに、カウンタがインクリメントされ、カウンタを使用して認証キーがインクリメントされることにより、新しい認証キーを生成する。カウンタは選択的である。代替的に、値が暗号化されるたびに同じ認証キーを使用することもできる。
(例示的な値確認コード生成アルゴリズム)
この例示における値確認コード(VVC)生成アルゴリズム68及び86は、以下の通りである。

<VVC> = ENCODE(
8 - <PIN LENGTH>, HASH(
<MODE SECRET> XOR (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
<PIN> &
<SEPARATOR> &
<NEW PIN>
)
)
)
ここで、<PIN LENGTH>は暗号化されている値の長さであり、<MODE SECRET>、<MODE COUNTER>、<MODE TYPE>、<MODE INSTANCE>、<PIN>、HASH、ENCODE、XOR及び“&”は上記の通りであり、<SEPARATOR>は定数であり、この場合は16進数値“FE”であり、<NEW PIN>は暗号化されている値である。本例示では、セパレータは単にPIN(即ち、古いPIN)とNEW PINとを区分化する好都合な機構を提供するために含まれる。
上記の例は、認証コード及び値確認コードの各々を生成するための適切なアルゴリズムの2つの例示に過ぎず、他のアルゴリズムを使用することもできることが理解されるであろう。例えば、異なる又はより少ない変数がXORステップに含まれてもよく、PIN(即ち、古いPIN)を使用する必要がない。更に、ユーザ装置27が単一のモードで動作する場合、<MODE COUNTER>、<MODE TYPE>、<MODE INSTANCE>等の値は適用できないであろう。更に、アカウント番号等の他の情報、又は追加のユーザ入力値が使用されてもよい。
また、コード生成アルゴリズムで使用されるのとは異なる秘密キーが値確認コード生成アルゴリズムで使用されてもよく、又は実際には、値確認コード生成アルゴリズムは、秘密キーを全く使用せずに、別の手法を用いて値確認コードを生成してもよい。
(値の暗号化の例示)
図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進数値が使用される。

<MODE SECRET> =
4B 50 13 07 66 4D CB 01 FF B6 B3 35 10 7B 42 E6 FC A6 B8 57 51 AE 72 7435 9E 69 79 15 35 5B 70

<CODE LENGTH> = 8
<MODE COUNTER> = 00 00 01
<MODE TYPE> = 13
<MODE INSTANCE> = 00
<PIN> = 31 32 33 34
この例示では、すでに記載したように、<MODE TYPE>, <MODE INSTANCE>, <MODE COUNTER>は選択的であって、コード生成アルゴリズムに含まれ得る追加データの例を提示するためにのみ含まれている。
また、この例示では、“1234”の値(この場合は既存のPINである)が16進数形式のASCII表示に変換されることにも留意されたい。このようは手法は、例えば、英数字値(英数字のPIN等)、或いは非英数字値が使用されることを可能にする。
次に、この例示では、上記パラメータがコード生成アルゴリズム84によって以下のように処理される。

<STEP1> = ENCODE(
<CODE LENGTH>, HASH(
<MODE SECRET> XOR (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
<PIN>
)
)
)

<MODE COUNTER> & <MODE TYPE> & <MODE INSTANCE> & <PIN> =
00 00 01 13 00 31 32 33 34

<MODE COUNTER> & <MODE TYPE> & <MODE INSTANCE> & <PIN> =
4B 50 12 14 66 7C F9 32
CB B6 B3 35 10 7B 42 E6
FC A6 B8 57 51 AE 72 74
35 9E 69 79 15 35 5B 70

HASH(<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> &
<MODE INSTANCE> & <PIN>)) =
9A 4B 42 FD 17 76 67 F8
54 9F 5B D2 07 BC 7B 77
B2 3D 6F 49 5D A9 F7 5C
F5 FF 86 C8 5C 97 F9 68

ENCODE(<LENGTH>, HASH(<MODE SECRET> XOR (<MODE COUNTER>
& <MODE TYPE> & <MODE INSTANCE> & <PIN>))) =
38491078

従って、認証コードは、n桁コード(ここでn=8)として生成される。

認証コード=38491078
ステップ110では、ソフトウェア80は、値確認コードを生成するために値確認コード生成アルゴリズム86を使用して値を処理する。
<MODE SECRET> (即ち、認証キー), <MODE COUNTER>, <MODE TYPE>, <MODE INSTANCE> 及び<PIN>に対する値は上記のように与えられる。更に、以下の通りである。

<SEPARATOR> = FE
<NEW PIN> = 39 38 37 36
<PIN LENGTH> = 4
この例示では、再度、この例示で新たなPINである“9876”の値が、処理のために16進数形式のASCII表示(即ち、“39 38 37 36”)に変換されている。次に、上記パラメータは、値確認コード生成アルゴリズム86によって以下のように処理される。

<VVC> = ENCODE(
8 - <PIN LENGTH>, HASH(
<MODE SECRET> XOR (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
<PIN> &
<SEPARATOR> &
<NEW PIN>
)
)
)

<MODE COUNTER> & <MODE TYPE> & <MODE INSTANCE> & <PIN> &
<SEPARATOR> & <NEW PIN> =
00 00 01 13 00 31 32 33 34 FE 39 38 37 36

<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> & <MODE
INSTANCE> & <PIN> & <SEPARATOR> & <NEW PIN>) =
4B 50 12 14 66 7C F9 32
CB 48 8A 0D 27 4D 42 E6
FC A6 B8 57 51 AE 72 74
35 9E 69 79 15 35 5B 70

HASH(<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> &
<MODE INSTANCE> & <PIN> & <SEPARATOR> & <NEW PIN>)) =
CF F4 47 C9 4C 36 CB 66
69 BA 3A B6 61 7C AD EE
B6 98 63 19 DA 2A 19 71
12 40 6D 08 C1 C3 45 18

ENCODE(4, HASH(<MODE SECRET> XOR (<MODE COUNTER> & <MODE
TYPE> & <MODE INSTANCE> & <PIN> & <SEPARATOR> & <NEW
PIN>))) =
3256

従って、値確認コードは、m桁コード(ここでm=4)として生成される。

Value Verification Code = 3256
ステップ112では、ソフトウェア80は、認証コード(38491078)、値(9876)及び値確認コード(3256)を使用して、値(9876)を暗号化するためのメッセージを構築する。この例示では、オペランドとして全ての3つの値を含む算術演算を使用してメッセージを構築する。この演算では、値及び値確認コードは連結シーケンス(98763256)を提供するために連結される。次に、モジュラス10演算を使用して、連結シーケンスに認証コードが付加される。各数字は以下のように別個に付加される。

<MESSAGE> = <STEP1> ADD (<NEW PIN> & <VVC>)

Figure 2013535903

ここで、ADDはモジュラス10の加算演算である。
この例では、値確認コード<VVC>が4桁値<NEW PIN>の末尾に連結されているが、値確認コードは、値の先頭に連結され、又は他の数字によって値から分離されることも可能であることに留意されたい。実際に、値確認コードは、認証コード<STEP 1>に付加されるのではなく、メッセージの末尾に付加され得る。
また、この例示では、値確認コード<VVC>は、この例示では8桁である認証コード<STEP 1>の長さと、この例示では4桁である値<NEW PIN>の長さとの差に対応するシーケンス長を有するように選択される。従って、この例示では、値は4桁を含み、認証コードは8桁を含み、値確認コードは4桁を含む。同様に、値<NEW PIN>が6桁を含み且つ認証コードが8桁を含む場合は、値確認コード<VVC>は2桁を含んでもよい。連結値及び値確認コードと比較して認証コード<STEP 1>の桁数が異なってもよいことが理解されるであろう。しかしながら、認証コードは、値と少なくとも等しく、そうでなければ長さが値より長いことが望ましい。
更に、この例は、認証コード、値及び値確認コードが10桁(0, 1, 2, 3, 4, 5, 6, 7, 8 及び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は、期待される認証コード<STEP 1#>を生成するためにコード生成アルゴリズム66を使用して認証キー64を処理する。このアルゴリズムは、上記のようにユーザ装置27で行われたコード生成アルゴリズム84のステップを反復する。ユーザ装置27によって使用された認証キー82が認証システム30によって使用された認証キー64と同じあった場合、同じ認証コード(例えば、“38491078”)が取得されるはずである。次に、ステップ118では、受信した値<NEW PIN#>及び受信した値確認コード<VVC#>を導出するために期待される認証コード(例えば、“38491078”)を使用してメッセージ(例えば、“26154224”)を処理する。
この例示では、メッセージの処理は、以下のようにメッセージを復号するためにモジュラス10演算を使用してメッセージから期待される認証コードを減ずることを含む。

<NEW PIN#> & <VVC#> = <MESSAGE> SUBTRACT <STEP 1#>

Figure 2013535903

この例示では、メッセージを構築するためにユーザ装置27によって適用されるものに対する逆演算(即ち、モジュラス10加算)であるので、モジュラス10減算が使用される。
上記例示では、<NEW PIN#>は認証システム30によってメッセージから導出される新たなPIN値であり、<VVC#>は導出された値確認コードであり、<STEP 1#>は認証システム30によって生成される期待される認証コードである。
この例示では、期待される認証コード<STEP 1#>の各数字は、モジュラス10演算を使用して受信したメッセージの各数字から別個に減算される。それによって、この場合、認証システム30は、受信した値の“9876”及び受信した値確認コードの“3256”を決定する。
値及び値確認コードのシーケンス長はあらかじめ決めされていてもよく、その結果、認証システム30は、<NEW PIN#> & <VVC#>のどの数字が値の末尾と関係付けられるか及びどの数字が値確認と関係付けられるかを決定することができる。代替的に、長さは、様々な長さのPINを可能にするために、メッセージと共に認証システム30に伝達されてもよい。
ステップ120では、認証システム30におけるソフトウェア62は、期待される値確認コード<VVC_EXP>を生成するために値確認コード生成アルゴリズム68を使用して受信した値“9876”を処理する。このアルゴリズムは、上記のようにユーザ装置27で行われた値確認コード生成アルゴリズム86のステップを反復する。メッセージが正確に送信されたとすれば、同じ値確認コード“3256”が取得されるはずである。ステップ122では、ソフトウェア62は、期待される値確認コード<VVC_EXP>を受信した値確認コード<VVC#>と比較する。2つのコードが相関する場合、認証システム30は、受信した値<VVC#>を確認して、ユーザ装置27及び/又はユーザ101を認証する。値確認コード<VVC#>が有効である場合、認証システム30は、メモリ44又はデータベース59に記憶された既存のPIN“1234”を置換PIN“9876”で置換し、それによってユーザ装置27と関係付けられるPINを更新するであろう。2つのコードが相関しなければ、PINは更新されない。ステップ124では、認証システム30は、PINが更新されたことをユーザ装置27に伝達する。
(認証システムの認証の例)
上記の通り、PIN変更選択肢の選択は、認証システム30によって生成される認証応答を入力することをユーザ101に要求してもよい。このような認証応答の例は、次に図5を参照して説明されるであろう。既に記載されたように、この認証方法は選択的である。他の方法が、ユーザ装置27に対して認証システム30を認証するために使用されてもよい。又は、値が暗号化されて送信されるので、認証システム30は認証される必要が全くない。
図5に示される方法128では、ステップ130において、ユーザは、認証システム30に認証要求を伝達する。認証要求は、ユーザ装置27、又はネットワーク接続コンピュータ若しくは現金自動支払機等の別の装置を介して伝達されてもよい。ステップ132では、認証システム30におけるソフトウェア62は、例えば、バイナリ符号化10進数加算を使用してカウンタをインクリメントし、以下のように新たなカウンタを使用して認証キーをインクリメントする。

<MODE COUNTER> = <MODE COUNTER> BCDADD 1

<MODE SECRET> = HASH(
<MODE SECRET> XOR (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
)
)

例えば、以下の通りである。

<MODE COUNTER> = 00 00 00
<MODE TYPE> = 10
<MODE INSTANCE> = 00
<MODE SECRET> =
D1 B9 1D 2C F8 2A 72 28
AA F6 6D 2C 3E 49 58 79
1E 78 C7 CE 53 81 DE 00
79 2F BD B6 C3 62 2F BB

<MODE COUNTER> = <MODE COUNTER> + 1 = 00 00 01

<MODE COUNTER> & <MODE TYPE> & <MODE INSTANCE> =
00 00 01 10 00

<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> & <MODE
INSTANCE>) =
D1 B9 1C 3C F8 2A 72 28
AA F6 6D 2C 3E 49 58 79
1E 78 C7 CE 53 81 DE 00
79 2F BD B6 C3 62 2F BB

HASH(<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> &
<MODE INSTANCE)) =
23 FA 77 1B 48 2E 39 20
FF 18 23 F8 6B 98 BC C2
0C FA 0F CC 15 7E 69 78
D7 A1 8B CC A4 C3 B2 81 (新たな認証キー).
ステップ134では、ソフトウェア62は、新たな認証キー64に基づく認証応答生成アルゴリズムを使用して認証応答を生成する。

<AUTHENTICATION RESPONSE> = ENCODE(
<AUTHENTICATION MESSAGE LENGTH> - 2, HASH(
<MODE SECRET> (
<MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
)
)
) & <MODE COUNTER> MOD 100

ここで、<AUTHENTICATION MESSAGE LENGTH>は認証応答の長さである。

例えば、以下の通りである。

<MODE COUNTER> & <MODE TYPE> & <MODE INSTANCE> =
00 00 01 10 00

<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> & <MODE
INSTANCE>) =
23 FA 76 0B 48 2E 39 20
FF 18 23 F8 6B 98 BC C2
0C FA 0F CC 15 7E 69 78
D7 A1 8B CC A4 C3 B2 81

HASH(<MODE SECRET> XOR (<MODE COUNTER> & <MODE TYPE> &
<MODE INSTANCE>)) =
AA 04 89 DD 6D D9 2C 0C
6D FF BE 8D 90 FC 3A CA
FD 49 CE 6D 4F E7 F0 C1
13 68 05 89 0A E8 88 F7

ENCODE(<LENGTH> - 2, HASH(<MODE SECRET> XOR (<MODE
COUNTER> & <MODE TYPE> & <MODE INSTANCE>)))
D1 = 2C MOD 10d = 44 MOD 10 = 4
D2 = 0C MOD 10d = 12 MOD 10 = 2
D3 = 6D MOD 10d = 109 MOD 10 = 9
D4 = FF MOD 10d = 255 MOD 10 = 5

ENCODE(<LENGTH> - 2, HASH(<MODE SECRET> XOR (<MODE
COUNTER> & <MODE TYPE> & <MODE INSTANCE>))) & <MODE
COUNTER> MOD 100 =
429501
認証システム30は、例えば、認証要求を伝達するのに使用される同じ通信手段を介して、ステップ136でユーザ101に認証応答(“429501”)を伝達する。
ステップ138では、ユーザ101は、認証応答を受信して、ユーザ装置27のキーパッド70に認証応答(“429501”)を入力する。ステップ140では、ユーザ装置27におけるソフトウェア80は、同じ認証応答生成アルゴリズムを使用して、同じ認証キー(MODE SECRET)に基づく期待される認証応答を生成する。これは、最初にカウンタ及びシークレットのコピーを作ることによって行われる。

<TMP MODE COUNTER> = <MODE COUNTER>
<TMP MODE SECRET> = <MODE SECRET>
次に、ソフトウェア80は、以下のアルゴリズムを使用して(TMP MODE COUNTER MOD 10)が受信した認証応答の最後の2桁と等しくなるまで一時カウンタ(TMP MODE COUNTER)及び一時シークレット(TMP MODE SECRET)をインクリメントする。

while (<TMP MODE COUNTER> MOD 10 != <AUTHENTICATION
RESPONSE>.RIGHT(2))
<TMP MODE COUNTER> = <TMP MODE COUNTER> BCDADD 1
<TMP MODE SECRET> = HASH(
<TMP MODE SECRET> XOR (
<TMP MODE COUNTER> &
<MODE TYPE> &
<MODE INSTANCE> &
)
)

ソフトウェア80は、期待される認証応答を以下のように計算する。

<expected authentication response> =
ENCODE(
<authentication response LENGTH> - 2,
HASH(
<TMP MODE SECRET> XOR (
<TMP MODE COUNTER> & <MODE TYPE> &
<MODE INSTANCE>
)
)
) & <TMP MODE COUNTER> MOD 100
ソフトウェア80は、期待される認証応答を受信した認証応答と比較し、認証応答が受信した認証応答と相関する場合、認証システム30が認証されることを示す。これに応じて、ソフトウェア80は、ステップ142(ステップ103と等しい)で暗号化される値を入力することをユーザに促す。また、<MODE SECRET>及び<MODE COUNTER>は、一致する認証応答が見つかれば更新される。

<MODE COUNTER> = <TMP MODE COUNTER>
<MODE SECRET> = <TMP MODE SECRET>
様々な変更、追加及び/又は修正が本発明の範囲から逸脱することなく既に記載された部分に対して行われてもよいこと、及び上記教示に照らして、本発明は、当業者によって理解される様々な方法でソフトウェア、ファームウェア及び/又はハードウェアに実装されてもよいことが理解されるべきである。
本願は、1つ以上の将来の願書の優先権の基礎として利用されてもよく、任意のこのような将来の願書の請求項は本願に記載された何れか1つの特徴又は特徴の組み合わせを対象としてもよい。何れかのこのような将来の願書は、例示を目的として与えられ、何れかの将来の願書で請求項に記載され得ることに関して非限定的である1つ以上の以下の請求項を含んでもよい。

Claims (28)

  1. 認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するユーザ装置に入力される値を暗号化する方法であって、
    前記ユーザ装置が前記コード生成アルゴリズムを使用して前記認証キーを処理して、認証コードを生成するステップと、
    前記ユーザ装置が前記値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、
    前記ユーザ装置が前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップであって、前記メッセージは前記値を決定及び確認して、前記ユーザ装置及び/又は前記ユーザを認証するために前記認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップと
    を含む、方法。
  2. 前記値確認コード生成アルゴリズムを使用して前記値を処理して値確認コードを生成するステップは、前記認証キー又は異なる秘密キーを処理することを更に含む、請求項1に記載の方法。
  3. 前記認証コード、前記値及び前記値確認コードを使用して前記値を暗号化するメッセージを構築するステップは、少なくとも前記認証コード及び前記値を含む論理又は算術演算を実行することを含む、請求項1又は2に記載の方法。
  4. 前記論理又は算術演算を実行することは、連結シーケンスを提供するために前記値及び値確認コードを連結すること、及びモジュラス演算を使用して前記認証コードを前記連結シーケンスに加算することを含む、請求項3に記載の方法。
  5. 前記認証コード、前記値及び前記値確認コードは、X桁を含む数字の組からの数字のシーケンスを含み、前記モジュラス演算は、モジュラスX演算を含む、請求項4に記載の方法。
  6. 前記認証コードは、n桁シーケンスであり、前記値は、前記認証コードのシーケンス長よりも短いシーケンス長を有し、前記値確認コードは、前記認証コードのシーケンス長と前記値のシーケンス長との差に対応するシーケンス長を有する、請求項4又は5に記載の方法。
  7. 前記認証コードの各数字は、前記連結シーケンスの各数字に別々に加算される、請求項6に記載の方法。
  8. 前記コード生成アルゴリズムを使用して前記認証キーを処理して認証コードを生成するステップは、前記ユーザ装置のユーザによって入力されるPINを処理することを更に含む、請求項1〜7の何れか1項に記載の方法。
  9. 前記値確認コード生成アルゴリズムを使用して前記値を処理して値確認コードを生成するステップは、前記ユーザ装置のユーザによって入力されるPINを処理することを更に含む、請求項1〜7の何れか1項に記載の方法。
  10. 前記値は、前記認証システムにおいて記憶される置換PINである、請求項1〜9の何れか1項に記載の方法。
  11. 通信ネットワークを介して認証システムに伝達される値を確認する方法であって、前記認証システムはユーザ装置と関係付けられる認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶しており、
    前記認証システムがユーザ装置によって構築されるメッセージを受信するステップと、
    前記認証システムが前記コード生成アルゴリズムを使用して前記認証キーを処理して、期待される認証コードを生成するステップと、
    前記認証システムが前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
    前記認証システムが前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、
    前記認証システムが前記期待される値確認コードを前記受信した値確認コードと比較するステップと、
    前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップと
    を含む、方法。
  12. 前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して前記期待される値確認コードを生成するステップは、前記認証キー又は異なる秘密キーのいずれかを処理することを更に含む、請求項11に記載の方法。
  13. 前記メッセージを処理するステップは、前記期待される認証コードを使用して論理又は算術演算を実行することを含む、請求項11又は12に記載の方法。
  14. 前記論理又は算術演算を実行することは、モジュラス演算を使用して前記メッセージの少なくとも一部から前記期待される認証コードを減算することを含む、請求項13に記載の方法。
  15. 前記期待される認証コード及び前記メッセージは、X桁の組から選択される数字からなり、前記モジュラス演算は、モジュラスX演算を含む、請求項14に記載の方法。
  16. 前記期待される認証コードの各数字は、前記メッセージの各数字から別々に減算される、請求項15に記載の方法。
  17. 前記コード生成アルゴリズムを使用して前記認証キーを処理して期待される認証コードを生成するステップは、前記ユーザ装置と関係付けられ且つ前記認証システムに記憶されるPINを処理することを更に含む、請求項11〜16の何れか1項に記載の方法。
  18. 前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して期待される値確認コードを生成するステップは、前記ユーザ装置と関係付けられ且つ前記認証システムに記憶されるPINを処理することを更に含む、請求項11〜16の何れか1項に記載の方法。
  19. 前記値は、前記認証システムにおいて記憶される、前記ユーザ装置と関係付けられる置換PINである、請求項11〜18の何れか1項に記載の方法。
  20. ユーザ装置に入力される値を通信ネットワークを介して認証システムに伝達する方法であって、前記ユーザ装置は、第1の認証キー、第1のコード生成アルゴリズム及び第1の値確認コード生成アルゴリズムを記憶し、前記認証システムは、第2の認証キー、第2のコード生成アルゴリズム及び第2の値確認コード生成アルゴリズムを記憶し、
    前記ユーザ装置が前記第1のコード生成アルゴリズムを使用して前記第1の認証キーを処理して、認証コードを生成するステップと、
    前記ユーザ装置が前記第1の値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、
    前記ユーザ装置が前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップと、
    前記メッセージを前記認証システムに伝達するステップと、
    前記認証システムが前記メッセージを受信するステップと、
    前記認証システムが前記第2のコード生成アルゴリズムを使用して前記第2の認証キーを処理して、期待される認証コードを生成するステップと、
    前記認証システムが前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
    前記認証システムが前記第2の値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、
    前記認証システムが前記期待される値確認コードを前記受信した値確認コードと比較するステップと、
    前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップと
    を含む、方法。
  21. 値を受信するための入力部と、
    メッセージを出力するための出力部と、
    プロセッサと、
    認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、
    前記プロセッサにアクセス可能なメモリに存在するソフトウェアであって、前記ユーザ装置に入力される値を暗号化する方法を実行するために前記プロセッサによって実行可能な一連の命令を含むソフトウェアと
    を含むユーザ装置であって、前記方法は、
    前記コード生成アルゴリズムを使用して前記認証キーを処理して、認証コードを生成するステップと、
    前記値確認コード生成アルゴリズムを使用して前記値を処理して、値確認コードを生成するステップと、
    前記認証コード、前記値及び前記値確認コードを使用して、前記値を暗号化するメッセージを構築するステップと、
    前記メッセージを出力するステップであって、前記メッセージは前記値を決定及び確認して、前記ユーザ装置及び/又は前記ユーザを認証するために前記認証システムによって処理するために通信ネットワークを介して認証システムに伝達されるステップと
    を含む、ユーザ装置。
  22. 前記出力は、n桁ディスプレイであり、前記認証コードは、n桁シーケンスであり、前記値は、前記認証コードのシーケンス長よりも短いシーケンス長を有し、前記値確認コードは、前記認証コードのシーケンス長と前記値のシーケンス長との差に対応するシーケンス長を有する、請求項21に記載のユーザ装置。
  23. 前記出力は、n桁ディスプレイであり、前記認証コード、前記値及び前記値確認コードの全ては、n桁より短いシーケンス長を有する、請求項21に記載のユーザ装置。
  24. 通信ポートと、
    プロセッサと、
    認証キー、コード生成アルゴリズム、及び値確認コード生成アルゴリズムを記憶するメモリと、
    前記プロセッサにアクセス可能なメモリに存在するソフトウェアであって、方法を実行するために前記プロセッサによって実行可能な一連の命令を含むソフトウェアと
    を含む認証システムであって、前記方法は、
    メッセージを受信するステップと、
    前記コード生成アルゴリズムを使用して前記認証キーを処理して、期待される認証コードを生成するステップと、
    前記期待される認証コードを使用して前記メッセージを処理して、受信した値及び受信した値確認コードを決定するステップと、
    前記値確認コード生成アルゴリズムを使用して前記受信した値を処理して、期待される値確認コードを生成するステップと、
    前記期待される値確認コードを前記受信した値確認コードと比較するステップと、
    前記期待される値確認コードが前記受信した値確認コードと相関する場合に、前記受信した値を確認して、前記ユーザ装置及び/又は前記ユーザを認証するステップと
    を含む、認証システム。
  25. 請求項21に記載のユーザ装置と、
    請求項24に記載の認証システムと
    を含む、システム。
  26. プロセッサ及びソフトウェアを記憶するための関連するメモリを含むユーザ装置で使用されるソフトウェアであって、請求項1〜10の何れか1項に記載の方法を実行するために前記プロセッサによって実行可能な一連の命令を含む、ソフトウェア。
  27. プロセッサ及びソフトウェアを記憶するための関連するメモリを含む認証システムで使用されるソフトウェアであって、請求項11〜19の何れか1項に記載の方法を実行するために前記プロセッサによって実行可能な一連の命令を含む、ソフトウェア。
  28. 請求項26又は27に記載のソフトウェアを保持する、コンピュータ可読媒体。
JP2013520925A 2010-07-23 2011-07-18 暗号化装置及び方法 Pending JP2013535903A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2010903315A AU2010903315A0 (en) 2010-07-23 Encryption device and method
AU2010903315 2010-07-23
PCT/AU2011/000904 WO2012021918A1 (en) 2010-07-23 2011-07-18 Encryption device and method

Publications (2)

Publication Number Publication Date
JP2013535903A true JP2013535903A (ja) 2013-09-12
JP2013535903A5 JP2013535903A5 (ja) 2014-09-04

Family

ID=45604599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013520925A Pending JP2013535903A (ja) 2010-07-23 2011-07-18 暗号化装置及び方法

Country Status (9)

Country Link
US (1) US20130166913A1 (ja)
EP (1) EP2596593A1 (ja)
JP (1) JP2013535903A (ja)
CN (1) CN103155478A (ja)
AU (1) AU2011291427A1 (ja)
BR (1) BR112013001728A2 (ja)
CA (1) CA2809144A1 (ja)
SG (1) SG187187A1 (ja)
WO (1) WO2012021918A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG194267A1 (en) * 2012-05-03 2013-11-29 C3S Pte Ltd Method and system for protecting a password during an authentication process
US11080701B2 (en) 2015-07-02 2021-08-03 Royal Bank Of Canada Secure processing of electronic payments
CA2830260C (en) 2012-10-17 2021-10-12 Royal Bank Of Canada Virtualization and secure processing of data
US11210648B2 (en) 2012-10-17 2021-12-28 Royal Bank Of Canada Systems, methods, and devices for secure generation and processing of data sets representing pre-funded payments
RU2661910C1 (ru) 2013-12-02 2018-07-23 Мастеркард Интернэшнл Инкорпорейтед Способ и система для защищенной передачи сообщений сервиса удаленных уведомлений в мобильные устройства без защищенных элементов
KR101529710B1 (ko) * 2014-03-10 2015-06-17 자바무선기술(주) 도난 방지 정보 시스템 및 방법
CN107004190A (zh) 2014-10-10 2017-08-01 加拿大皇家银行 用于处理电子交易的系统
CA2974151C (en) 2015-01-19 2023-11-21 Royal Bank Of Canada Secure processing of electronic payments
US11354651B2 (en) 2015-01-19 2022-06-07 Royal Bank Of Canada System and method for location-based token transaction processing
US11599879B2 (en) 2015-07-02 2023-03-07 Royal Bank Of Canada Processing of electronic transactions
CN106656913A (zh) * 2015-10-28 2017-05-10 珠海金山办公软件有限公司 一种数字验证码的生成方法及装置
CN107154920B (zh) * 2016-03-04 2021-07-13 神讯电脑(昆山)有限公司 安全信息的加密方法、解密方法及用以接收安全信息的接收装置
CN108959128B (zh) * 2018-06-04 2023-03-31 浙江大学 Crypt-SHA512加密算法的加速装置与方法
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation
CN115694599A (zh) * 2021-07-31 2023-02-03 华为技术有限公司 一种传输方法、系统及相关装置
CN114117376B (zh) * 2022-01-28 2022-04-15 蘑菇物联技术(深圳)有限公司 身份认证的方法、分配动态密码的方法及相应的设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03211932A (ja) * 1990-01-17 1991-09-17 Hitachi Ltd データ端末装置の通信制御方法
JPH0553990A (ja) * 1991-08-22 1993-03-05 Nippon Denki Computer Syst Kk 数字列を用いたパスワードの暗号化、複合化方式
JP2005012466A (ja) * 2003-06-18 2005-01-13 Denso Corp メッセージ認証方法及びメッセージ認証システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0126426D0 (en) * 2001-11-03 2002-01-02 Royal Holloway University Of L Authentication of a remote user to a host in a data communication system
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
GB2387999B (en) * 2002-04-24 2004-03-24 Richard Mervyn Gardner Sequential authentication with infinitely variable codes
US6931132B2 (en) * 2002-05-10 2005-08-16 Harris Corporation Secure wireless local or metropolitan area network and related methods
US7346167B2 (en) * 2002-05-10 2008-03-18 Harris Corporation Secure mobile ad-hoc network and related methods
US8369525B2 (en) * 2002-10-24 2013-02-05 At&T Mobility Ii Llc Dynamic password update for wireless encryption system
AU2005318933B2 (en) * 2004-12-21 2011-04-14 Emue Holdings Pty Ltd Authentication device and/or method
US20080104411A1 (en) * 2006-09-29 2008-05-01 Agrawal Pankaj O Methods and apparatus for changing passwords in a distributed communication system
US9123042B2 (en) * 2006-10-17 2015-09-01 Verifone, Inc. Pin block replacement
US7975292B2 (en) * 2007-06-12 2011-07-05 Francisco Corella Secure password reset for application
US8503679B2 (en) * 2008-01-23 2013-08-06 The Boeing Company Short message encryption
US20100217708A1 (en) * 2009-02-26 2010-08-26 Arthur Vanmoor Superior identification system using numbers
WO2011054044A1 (en) * 2009-11-06 2011-05-12 Emue Holdings Pty Ltd A method and a system for validating identifiers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03211932A (ja) * 1990-01-17 1991-09-17 Hitachi Ltd データ端末装置の通信制御方法
JPH0553990A (ja) * 1991-08-22 1993-03-05 Nippon Denki Computer Syst Kk 数字列を用いたパスワードの暗号化、複合化方式
JP2005012466A (ja) * 2003-06-18 2005-01-13 Denso Corp メッセージ認証方法及びメッセージ認証システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015004868; M. Bellare and C. Namprempre: 'Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm' Cryptology ePrint Archive Report 2000/025,Ver. 20070715:054351, 200707, International Association for Cryptologic Research *

Also Published As

Publication number Publication date
AU2011291427A1 (en) 2013-03-14
WO2012021918A1 (en) 2012-02-23
CN103155478A (zh) 2013-06-12
SG187187A1 (en) 2013-02-28
US20130166913A1 (en) 2013-06-27
BR112013001728A2 (pt) 2016-05-31
CA2809144A1 (en) 2012-02-23
EP2596593A1 (en) 2013-05-29

Similar Documents

Publication Publication Date Title
JP2013535903A (ja) 暗号化装置及び方法
US11877213B2 (en) Methods and systems for asset obfuscation
CN110692214B (zh) 用于使用区块链的所有权验证的方法和系统
US9525550B2 (en) Method and apparatus for securing a mobile application
US9338163B2 (en) Method using a single authentication device to authenticate a user to a service provider among a plurality of service providers and device for performing such a method
CN101828357B (zh) 用于证书提供的方法和装置
US7502930B2 (en) Secure communications
EP1932274B1 (en) System, method and computer program product for authenticating a data agreement between network entities
US7934096B2 (en) Integrity protected smart card transaction
US8353054B2 (en) Method for protection of a chip card from unauthorized use, chip card and chip card terminal
KR20170077170A (ko) 트랜잭션 메시징
CN101765996A (zh) 远程认证和交易签名
CA2417770A1 (en) Trusted authentication digital signature (tads) system
CN102461064A (zh) 用户认证装置和方法
US11367065B1 (en) Distributed ledger system for electronic transactions
CN1910531B (zh) 数据资源的密钥控制使用的方法和系统以及相关网络
US20140223185A1 (en) Action verification methods and systems
CN101944216A (zh) 双因子在线交易安全认证方法及系统
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
Sung et al. Mobile Payment Based on Transaction Certificate Using Cloud Self‐Proxy Server
CN117157938A (zh) 敏捷密码部署服务
KR101790121B1 (ko) 전자 기기 인증 방법 및 시스템
KR101006803B1 (ko) 인증 기능을 갖는 rfid 인증 장치 및 방법
Elsemary et al. Secure Hybrid Payment System in KSA
Kaur Efficient Encryption mechanism for financial transactions: Avoiding data loss and tackling collisions

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151020