(57)【要約】  主題は、第３パーティクライアントのための少なくとも２つのサーバ上で作動される方法を開示し、方法は、第１の第３パーティクライアントからの秘密鍵に適用される第１不可逆関数の第１結果を第１サーバにより受信する段階と、第３パーティクライアントからの秘密鍵に適用される第２不可逆関数の第２結果を第２サーバにより受信する段階と、第２の第３パーティクライアントからのメッセージを第１サーバにより受信する段階と、第１サーバが、当該第１結果に対して、および当該メッセージに対して第１ハッシュ関数を計算し、第１サーバから第２サーバに第１ハッシュ関数の結果を送信する段階と、第２サーバが、当該第２結果に対して、および第１サーバから送信された第１ハッシュ関数の結果に対して第２ハッシュ関数を計算する段階と、第２サーバにより生成される結果をＨＭＡＣ結果として出力する段階を備える方法。
2018534629.tif 000002
【特許請求の範囲】
【請求項１】
第３パーティクライアントのための少なくとも２つのサーバ上で作動される方法であって、前記方法は、
第１の第３パーティクライアントからの秘密鍵に対して適用される第１不可逆関数の第１結果を第１サーバにより受信する段階と、
前記第３パーティクライアントからの前記秘密鍵に対して適用される第２不可逆関数の第２結果を第２サーバにより受信する段階と、
第２の第３パーティクライアントからのメッセージを前記第１サーバにより受信する段階と、
前記第１サーバが、前記第１結果に対して、および前記メッセージに対して第１ハッシュ関数を計算し、前記第１サーバから前記第２サーバに前記第１ハッシュ関数の結果を送信する段階と、
前記第２サーバが、前記第２結果に対して、および第１サーバから送信された前記第１ハッシュ関数の前記結果に対して第２ハッシュ関数を計算する段階と、
第２サーバにより生成される前記結果をＨＭＡＣ結果として出力する段階
を備える方法。
【請求項２】
前記第１の第３パーティクライアントは、前記第２の第３パーティクライアントとは異なるエンティティである、請求項１に記載の方法。
【請求項３】
前記第１の第３パーティクライアントは、前記第２の第３パーティクライアントである、請求項１に記載の方法。
【請求項４】
前記第１サーバにより前記ハッシュ関数を計算する前に、前記秘密鍵に追加のゼロを加える段階をさらに備える、請求項１から３の何れか一項に記載の方法。
【請求項５】
前記第３パーティクライアントにより、前記秘密鍵および第２圧縮関数の前記結果を削除する段階をさらに備える、請求項１から４の何れか一項に記載の方法。
【請求項６】
前記メッセージは、コンピュータにより可読のファイルによって表される、請求項１から５の何れか一項に記載の方法。
【請求項７】
第１サーバは、前記第２サーバへのアクセス権を有しない、請求項１から６の何れか一項に記載の方法。
【請求項８】
第２サーバは、前記第１サーバへのアクセス権を有しない、請求項１から７の何れか一項に記載の方法。
【請求項９】
第１圧縮関数で前記第３パーティクライアントにより圧縮される前記秘密鍵は、前記第１サーバによって格納される、請求項１から８の何れか一項に記載の方法。
【請求項１０】
第２圧縮関数で前記第３パーティクライアントにより圧縮される前記秘密鍵は、前記第２サーバによって格納される、請求項１から９の何れか一項に記載の方法。
【請求項１１】
前記第１ハッシュ関数および前記第２ハッシュ関数は、同一の関数である、請求項１から１０の何れか一項に記載の方法。
【請求項１２】
圧縮された秘密鍵および第３パーティクライアントから送信されたメッセージを受信することおよび格納することが可能である第１サーバと、
前記圧縮された秘密鍵に対して、および前記メッセージに対してハッシュ関数を実行することが可能な前記第１サーバと一体化された第１ハッシュ関数ユニットと、
圧縮された秘密鍵および第３パーティクライアントから送信されたメッセージと、前記第１サーバから送信されたハッシュ関数の結果とを受信することおよび格納することが可能である第２サーバと、
前記圧縮された秘密鍵に対して、および前記メッセージに対して、ならびに前記第１サーバから受信した前記ハッシュ関数の結果に対してハッシュ関数を実行すべく設計される前記第２サーバと一体化される第２ハッシュ関数ユニット
を備えるシステム。
【請求項１３】
前記サーバは、コンピュータプロセスの動作を実行することが可能なコンピュータ制御デバイスである、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ネットワークセキュリティおよび認証プロセスの分野に関する。より詳細には、本発明は、認証プロセスをセキュアにするためのＨＭＡＣ方法を利用する分野に関する。
【背景技術】
【０００２】
暗号法において、鍵付きハッシュメッセージ認証コード（ＨＭＡＣ）は、秘密暗号化鍵と組み合わせて暗号化ハッシュ関数に関わるメッセージ認証コード（ＭＡＣ）を算出するための特定の構造である。ＨＭＡＣの定義は、以下の通りである。
【数１】
2018534629.tif 000003
ここで、Ｈは、暗号化ハッシュ関数であり、Ｋは、ハッシュ関数の入力ブロックサイズに、追加のゼロで右側にパディングされた秘密鍵、またはそれがそのブロックサイズよりも長い場合、元の鍵のハッシュであり、ｍは、認証されるメッセージであり、｜｜は、連結を示し、
【数２】
2018534629.tif 000004
は、排他的論理和（ＸＯＲ）を示し、ｏｐａｄは、外側のパディング（０ｘ５ｃ５ｃ５ｃ...５ｃ５ｃ，１ブロック長の１６進定数）であり、ｉｐａｄは、内側のパディング（０ｘ３６３６３６...３６３６，１ブロック長の１６進定数）である。
【０００３】
ＨＭＡＣは、メモリに完全な鍵を持つ単一のマシン上で実行されると定義される。ＨＭＡＣは、また、例えば、ワンタイムパスワードのようなパスワードを認証すべく、セキュアなマルチパーティ計算（ＭＰＣ）を用いて２またはそれより多くのコンピュータ制御エンティティ上で実行されてよいが、他の目的にも用いられ得る。ＭＰＣは、いずれのパーティも暗号鍵の全てを保持せず、暗号鍵がパーティ間で共有されるときに使用される。マルチパーティ計算において実行されるＨＭＡＣの標準的な実施は、ＨＭＡＣ関数をブール回路として表すこと、および多くのブールゲートをセキュアに計算することを必要とし、パーティ間で比較的大量のデータを転送することを必要とする。パーティのうちの１つが、携帯電話のような計算リソースに限定される場合、ブールゲートを用いることが、プロセスを遅らせ、携帯電話の通常動作に支障をきたすことがある。
【発明の概要】
【０００４】
本発明は、そのサーバのいずれもがＨＭＡＣ暗号鍵の全ては保持しない、少なくとも２つのコンピュータ制御サーバを用いてＨＭＡＣを実行する方法およびシステムを開示する。ＨＭＡＣを計算するプロセスは、コンピュータネットワーク上でコンピュータ制御エンティティとの接続または通信を求めている第３パーティクライアントの信頼性を確認するために使用されてよい。そのようなネットワークは、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および同様のものであってよい。本発明で開示される方法は、ＨＭＡＣプロセスのための秘密鍵を選択するまたは生成する段階と、次に、（ＨＭＡＣハッシュ関数およびｉｐａｄ／ｏｐａｄ定数における不可逆関数により定義される）２つの異なる不可逆関数で秘密鍵に対して２つの圧縮プロセスを実行する段階とによって、第３パーティクライアントにより開始されてよい。第３パーティクライアントは、次に、第１不可逆関数を用いて圧縮される秘密鍵を第１サーバと示されるサーバへ送信でき、第２不可逆関数で圧縮される秘密鍵を第２サーバと示されるサーバへ送信できる。クライアントは、次に、ストレージ、メモリ、または／および当該第３パーティデバイスと一体化される別の可読メディアから、秘密鍵と不可逆関数の結果を削除する。
【０００５】
ＨＭＡＣ関数を計算すべく、第３パーティクライアントは、サーバがそのメッセージに対するＨＭＡＣ値を算出するために、メッセージをサーバへ送信する。いくつかの場合において、メッセージは、コンピュータ制御デバイス間で送信され得る、および使用され得るコンピュータ使用可能コンテンツであってよい。例えば、第３パーティデバイスは、文字列、長い数字、タイムスタンプ、デジタル画像、写真、および同様のものをメッセージとして送信してよい。
【０００６】
第３パーティデバイスからメッセージを受信すると、第１サーバは、第１ハッシュ関数を利用して、第１不可逆関数を用いて圧縮される秘密鍵およびメッセージをハッシュし、次に、第１ハッシュ関数の値を第２サーバへ送信する。次に、第１ハッシュ関数の値を受信すると、第２サーバは、第１ハッシュ関数の値および第２不可逆関数を用いて圧縮される秘密鍵に対して適用される第２ハッシュ関数を計算する。第２ハッシュ関数の結果は、標準的なＨＭＡＣ計算である。いくつかの場合において、認証サーバにより利用される全てのハッシュ関数は、同一であってよい。いつくかの他の場合において、ハッシュ関数のうちのいつくかは、同一であってよく、そのうちのいつくかは、同一でなくてよい。
【０００７】
主題は、また、圧縮された秘密鍵と、第３パーティクライアントから送信されたメッセージを受信するおよび格納することが可能な少なくとも２つのサーバからなるシステムを開示する。サーバのうちの少なくとも２つは、圧縮された秘密鍵に対して、およびメッセージに対してハッシュ関数を実行するように構成される処理モジュールを備えてよい。サーバは、また、ハッシュ関数の結果を連結でき、ＨＭＡＣ計算を完了でき、認証プロセスを承認できる、連結モジュールを備える。システムのサーバは、また、それらの間でのあらゆるアクセスを拒否するように構成され得る。例えば、人、またはサーバのうちの１つで作動されるプロセスが、ＨＭＡＣ暗号鍵、または他のサーバに位置する任意の他の情報にアクセスできない。
【０００８】
本発明で開示されるシステムとの認証を求める第３パーティクライアントは、モバイルコンピュータ制御デバイス、パーソナルコンピュータ、タブレットパーソナルコンピュータ、ラップトップ、デスクトップ、および同様のもののようなコンピュータ制御デバイスであってよい。
【図面の簡単な説明】
【０００９】
開示されている主題の例示的な非限定的実施形態が、図と共に、実施形態の以下の説明を参照して説明される。図は、概して、一定の縮尺では示されておらず、任意の寸法は、例示的であることのみが意図され、必ずしも限定的ではない。対応するまたは同様の要素は、同一の符号または文字によって示される。
【００１０】
【図１】主題の例示的な実施形態に係る、サーバとして指名される２つのパーティでＨＭＡＣ方法を実行するためのコンピュータ制御環境の概略図を示す。
【００１１】
【図２】主題の例示的な実施形態に係る、ブールゲートのないＨＭＡＣ方法を実行するためのコンピュータ制御システムの概略図を示す。
【００１２】
【図３】主題の例示的な実施形態に係る、第３パーティクライアントを認証するために２つのパーティにより実行されるＨＭＡＣ方法を利用する方法を示す。
【発明を実施するための形態】
【００１３】
本発明は、２またはそれより多くのコンピュータ制御サーバを用いてＨＭＡＣに基づく認証プロセスを実行する方法およびシステムを開示する。それらのサーバのうちのいずれも、第３パーティクライアントにより提供されるＨＭＡＣ秘密鍵の全てを保持しない。秘密鍵は、第３パーティクライアントで異なる圧縮関数により分割され、異なるサーバに提供される。このため、異なる圧縮関数を適用することにより分割される、１より多くのサーバにおける分割鍵の存在により、ブール回路におけるＨＭＡＣ関数の表示を必要とするＭＰＣを利用する段階が不必要になる。開示される方法は、認証サーバとして構成され得る多様なコンピュータ制御デバイスの利用を可能にする。例えば、サーバおよびクライアント、２つのＰＣ、コンピュータおよびモバイルデバイスである。いくつかの場合において、そのようなコンピュータ制御システムは、スマートフォンおよび／または、タブレット、ラップトップ、および同様のものといった追加のコンピュータ制御デバイスのようなコンピュータ制御デバイス上で作動されてよい。
【００１４】
まず、ＨＭＡＣを計算するための秘密鍵Ｋが、第３パーティクライアントにより選択され、または生成される。次に、鍵の２つの値が以下のように計算される。第１サーバとして指名される一方のパーティが、Ｋに対して適用される第１圧縮関数の出力値である値を受信し、第２サーバとして指名される他方のパーティが、Ｋに対して適用される第２圧縮関数の出力値を受信する。いくつかの場合において、鍵Ｋは、関数の入力ブロックサイズへ、追加の定数によりパディングされてよい。そのような場合、第１認証サーバに送信されるＫは、１つの定数（ｉｐａｄと表される）でパディングされてよく、第２パーティに送信されるＫは、異なる定数（ｏｐａｄと表される）でパディングされてよい。両方の圧縮関数は、標準的なＨＭＡＣにおいて使用されるハッシュ関数に使用される標準的な圧縮関数から選択されてよい（この場合、結果は、標準的なＨＭＡＣ計算値である）。
【００１５】
いくつかの場合において、両方の圧縮関数は、不可逆関数であってよく、いくつかの場合において、疑似ランダム関数として挙動する。ＨＭＡＣの算出に関与し得るパーティは、鍵をＦ１（Ｋ）＝Ｆ［Ｋ  ＸＯＲ  ｉｐａｄ］だけからも、Ｆ２（Ｋ）＝Ｆ［Ｋ  ＸＯＲ  ｏｐａｄ］だけからも引き出すことができず、ここで、Ｆは、圧縮関数を表し、Ｆ１は、第１圧縮関数を表し、Ｆ２は、第２圧縮関数を表し、Ｋは、秘密ＨＭＡＣ鍵を表す。本発明で開示される方法において、第１エンティティがＦ１（Ｋ）から得られる値を受信し、第２エンティティがＦ２（Ｋ）から得られる値を受信したとき、次のフェーズが画定される。エンティティは、サーバ、モバイルデバイス、ＰＣなどであってよい。本発明の考えられる実施形態において、第２パーティがＦ２（Ｋ）から得られる値を受信すると、認証プロセスが行われてよい。このため、認証することを求める第３パーティクライアントが、第１パーティへメッセージを送信してよい。次に、メッセージを受信した後、第１パーティは、Ｆ［Ｆ１（Ｋ）＋Ｍ］のような、Ｆ１（Ｋ）およびＭの出力値に対してハッシュ関数を計算でき、ここで、Ｍはメッセージを表す。いくつかの場合において、メッセージＭは、移動係数もしくはＨＭＡＣがワンタイムパスワード認証に用いられる場合、現在時刻であってよく、または当業者により所望される別のメッセージであり得る。移動係数を用いる場合、新しいＯＴＰが生成されるときにはいつでも、移動係数が増分され、したがって、その後生成されるパスワードは、毎回異なるはずである。
【００１６】
本発明のいつくかの実施形態において、第１パーティにより実行されるハッシュ関数は、また、以下のように圧縮関数を使用してよい。Ｈ１（Ｆ１，Ｍ）＝Ｆ（Ｆ１（Ｋ）＋Ｍ）。そのハッシュ関数の出力値は、値Ｍ（メッセージ）に対して適用される圧縮関数Ｆの出力値と連結されたＦ１から出力される値に対して適用される圧縮関数Ｆの出力値である。いくつかの場合において、Ｈ１（Ｆ１，Ｍ）は、また、メッセージ、Ｍの長さに対する圧縮を含む。
【００１７】
Ｈ１を算出した後、第１エンティティは、Ｈ１から得られる値を第２エンティティへ送信する。第２エンティティは、ハッシュ関数を値Ｈ１およびＦ２から出力される値に対して適用することによりＨ２を算出できる。第２エンティティは、以下のようにハッシュ関数を実行してよい。Ｈ２（Ｆ２，Ｈ１）＝Ｆ（Ｆ２（Ｋ）＋Ｈ１）。第２エンティティにより算出されるハッシュ関数の結果が、標準的なＨＭＡＣ計算をもたらすことができ、このため、これが、いずれのパーティへも秘密ＨＭＡＣ鍵を明らかにすることなく、ＨＭＡＣのＭＰＣ計算を構成する。
【００１８】
いくつかの場合において、第１パーティにより実行されるハッシュ関数は、例えば、メッセージＭのサイズがハッシュアルゴリズムのブロックサイズより大きい場合、反復的な方法で実行され得る。そのような場合、メッセージは、アルゴリズムブロックのサイズで、２またはそれより多くの部分に分割され、ハッシュ関数が以下のように実行される。Ｈ（Ｔ）＝ｈ（ｈ（ｈ（ＩＶ，Ｔ０），Ｔ１），...），ｌｅｎｇｔｈ）。
【００１９】
ここで、Ｔは、ハッシュアルゴリズムＨの入力値を表し、ｈは、一定のブロックサイズの入力値Ｔのブロックに対して適用されるハッシュアルゴリズム（圧縮関数）を表し、Ｔ０，Ｔ１，Ｔ２...は、一定のサイズのメッセージＭの部分を表し、ＩＶは、定数値である。いくつかの場合において、値Ｔは、メッセージＭであってよく、順序付けられたＴ０，Ｔ１，Ｔ２などは、当該メッセージＭの一定のブロックサイズでの部分を表してよい。例えば、メッセージＭがアルゴリズムＨでハッシュ化される必要がある場合、アルゴリズムＨは一定のサイズでのハッシュブロックと定義され、Ｍは１つのブロックのサイズより大きい一方で、Ｍメッセージは、いくつかの部分へと分割され得、ここで、各部分は、アルゴリズムＨがハッシュすると定義される一定のブロックサイズのサイズである。そのような場合、第１ハッシュｈは、定数ＩＶおよび第１部分に対して実行される。次に、第２ハッシュｈは、第１ハッシュｈの結果および第２部分に対して実行される。第３ハッシュｈは、第２ハッシュｈの結果および第３部分に対して、メッセージ長を定義し得る最後の部分まで、実行される。
【００２０】
ハッシュ関数は、ＳＨＡ−１、ＭＤ５、ＳＨＡ−２、ＳＨＡ−３などのような当業者に所望される任意のハッシュ関数であってよい。
【００２１】
図１は、主題の例示的な実施形態に係る、サーバとして指名される２つのパーティでＨＭＡＣ方法を実行するためのコンピュータ制御環境の概略図を示す。環境は、第１サーバであってよい第１パーティ１１０と、第２サーバであってよい第２パーティ１２０との２つのパーティ、および第３パーティクライアント１３０を備える。第１パーティ１１０および第２パーティ１２０は、完全な秘密鍵にアクセスすることなく、１つのＨＭＡＣ方法を共に実行する。第３パーティクライアント１３０は、秘密鍵を選び、暗号鍵に対する２つの異なる不可逆関数を計算し、第１不可逆関数計算の結果を第１パーティ１１０へ送信し、第２不可逆関数計算の結果を第２パーティ１２０へ送信する。第３パーティクライアント１３０は、Ｖ１がＦ１（Ｋ）の出力値を示し、Ｖ２がＦ２（Ｋ）の出力値を示すように、Ｆ１（Ｋ）およびＦ２（Ｋ）を実行する。典型的に、第３パーティは、ハッシュ関数を実行する前、第１パーティ１１０および第２パーティ１２０と秘密鍵を生成するおよび交換するフェーズにおいてのみ使用される。第３パーティは、また、暗号鍵Ｋに対して関数を適用した後、ＨＭＡＣと関連付けられる情報を自動的に消去するように構成され得る。
【００２２】
第１パーティ１１０または第２パーティ１２０のいずれかの一方のパーティが、メッセージ、および第３パーティ１３０からあらかじめ受信した値Ｖ１に対してハッシュ関数を実行する。次に、値Ｖ１に対してハッシュ関数を適用したパーティは、ハッシュ関数の結果を他方のパーティへ送信する。例えば、第１パーティ１１０が、ハッシュ関数をメッセージＭおよび値Ｖ１に対して算出し、ハッシュ関数の結果を第２パーティ１２０へ送信する。次に、第２パーティ１２０は、第１パーティ１１０から受信した結果に対して、および値Ｖ２に対して第２ハッシュ関数を適用する。ハッシュ関数が少なくとも２つの要素に対して実行されることに留意するべきである。第２パーティ１２０で実行される、第２ハッシュ関数の結果は、ＨＭＡＣ方法の結果であり、（例えば、ワンタイムパスワードを生成するとき）クライアントを認証するために、または（例えば、メッセージ認証の目的のためにＨＭＡＣを計算するとき）メッセージを認証するために使用され得る。いくつかの場合において、方法は、それぞれ第１パーティ１１０および第２パーティ１２０として、サーバおよびモバイルデバイスの間で実施され、スマートフォンのようなモバイルデバイスのユーザが、ＨＭＡＣを用いてワンタイムパスワードを認証することを望む。そのような例示的な場合において、スマートフォンが第２ハッシュ関数を実行し、パスワードを認証すべく結果をサーバに送信する。
【００２３】
図２は、主題の例示的な実施形態に係る、ブールゲートのないＨＭＡＣ方法を実行するためのコンピュータ制御システムの概略図を示す。コンピュータ制御システム２０５は、マルチパーティ計算を用いてＨＭＡＣ方法を実行する、第１パーティまたは第２パーティのいずれかに存在してよい。
【００２４】
コンピュータ制御システム２０５は、他のパーティと通信するように構成される通信インターフェース２１０を備える。例えば、通信インターフェース２１０は、第３パーティで暗号鍵に対して適用された不可逆関数の値を受信する。通信インターフェース２１０は、また、パーティのうちの１つによって適用された第１ハッシュ関数の値を伝送および受信する。例えば、第１パーティが第１ハッシュを実行する場合、第１パーティの通信インターフェース２１０が、第１ハッシュの結果を、第１ハッシュの結果に対して第２ハッシュを実行する第２パーティへ送信する。
【００２５】
コンピュータ制御システム２０５は、ハッシュ関数プロセスの一環として圧縮関数を計算するように構成される圧縮ユニット２２０を備える。圧縮ユニット２２０は、コンピュータ制御システムのメモリ領域に格納される圧縮方法を使用する。圧縮ユニット２２０により実行される圧縮方法は、当業者により選択されてよい。
【００２６】
コンピュータ制御システム２０５は、ハッシュ関数を２またはそれより多くの値に対して実行するように構成されるハッシュ関数オペレータ２３０を備える。値は、コンピュータ制御システムの処理ユニットを介して、例えば、レジスタを介して、ハッシュ関数オペレータ２３０へ伝送されてよい。ハッシュ関数オペレータ２３０は、ハッシュ関数を実行するとき、値を圧縮ユニット２２０へ送信し、圧縮された値を受信し、圧縮された値を蓄積することにより、圧縮ユニット２２０を使用してよい。
【００２７】
コンピュータ制御システム２０５は、また、ハッシュ関数オペレータ２３０の動作を制御するように構成されるハッシュ関数制御器２３５を備える。例えば、ハッシュ関数制御器２３５は、２つの値をハッシュ関数オペレータ２３０へ導入し、ハッシュ方法のブロックサイズに従って、メッセージＭをどのように分割するのか確認し、ハッシュ関数オペレータ２３０により実行されるハッシュ関数を何度も反復し、ハッシュが正しく実行されるか検証してよい。いくつかの場合において、少なくともいつくかの圧縮ユニット２２０、ハッシュ関数オペレータ２３０およびハッシュ関数制御器２３５は、第１認証サーバ１１０または第２認証サーバ１２０内の処理モジュールのコンポーネントである。
【００２８】
コンピュータ制御システム２０５は、第１パーティと第２パーティとにおける値を同期するように構成される同期モジュール２４０を備える。つまり、ＡＥＳ方法のような暗号化アルゴリズムが、マルチパーティ計算においてＨＭＡＣ方法を用いて認証されるパスワードに対して適用される場合である。ＡＥＳは、頻繁に、例えば１分ごとに更新されるので、同期モジュール２４０は、パスワードが更新されているかを検証し、第２パーティに格納される情報にアクセスするべく第１パーティの情報をコピーした攻撃者を妨げる。
【００２９】
図３は、主題の例示的な実施形態に係る、第３パーティクライアントを認証するために２つのパーティにより実行されるＨＭＡＣ方法を利用する方法を示す。いくつかの場合において、認証方法は、第３パーティクライアントを利用する人の信頼性を確認するために使用されてよい。いくつかの場合において、認証方法は、特定のデバイスを利用する人の信頼性を確認するために使用されてよい。例えば、ユーザは、認証プロセスにおいて、コンピュータ制御携帯電話を利用してよい。このため、ユーザは、１つの特定のコンピュータ制御携帯電話で認証プロセスを成功裏に通過することができてよく、別のコンピュータ制御携帯電話を利用している場合は認証できない。段階３００は、設定フェーズと定義されてよく、ＨＭＡＣ鍵が、第３パーティにより生成される。第３パーティは、ＨＭＡＣ鍵に対して２つの異なる不可逆関数を適用してよく、次に、結果を保存する。
【００３０】
段階３０２は、第１不可逆関数の出力値をパーティのうち第１パーティクライアントへ伝送する段階を開示する。段階３０５は、第２不可逆関数の出力値をパーティのうち第２パーティへ伝送する段階を開示する。段階３０７は、第３パーティクライアントが、暗号鍵および暗号鍵に対する圧縮関数の結果を削除できる、任意の段階である。
【００３１】
段階３１０は、新しいＨＭＡＣ結果を計算するためにメッセージＭを受信する段階を開示する。そのようなメッセージは、ＡＳＣＩＩストリング、鍵、および同様のものであってよい。いくつかの場合において、メッセージ自体が、この同一メッセージが一度のみ送信され得ることを保証するデータを含んでよい。そのようなデータは、タイムスタンプ、シーケンス番号、移動係数、および同様のものであってよい。段階３１５は、パーティのうちの１つによって第１ハッシュ関数を適用する段階を開示する。第１ハッシュ関数は、第３パーティクライアントから送信されたメッセージＭおよび第１不可逆関数から得られる値に対して実行される。段階３２０は、第１ハッシュ関数の出力値を第１パーティから、第２ハッシュ関数の算出を次に実行し得る第２パーティへ伝送する段階を開示する。
【００３２】
段階３３０は、第２パーティにより、第２ハッシュ関数の算出を実行する段階を開示する。第２ハッシュ関数は、第１ハッシュ関数の出力値に対して実行され、第２不可逆関数の結果を使用する。第２ハッシュ関数の出力値は、任意のＨＭＡＣの目的に用いられ得るＨＭＡＣ値である。そのような目的の１つは、ワンタイムパスワードの生成のためである。段階３４０は、その所望される目的のためにＨＭＡＣ／ワンタイムパスワードを出力する段階を開示する。
【００３３】
開示が例示的な実施形態を参照して説明されている一方で、発明の範囲から逸脱することなく、様々な改変形態がなされてよく、均等物がそれらの要素に置換されてよいことが当業者により理解されるであろう。加えて、その本質的な範囲から逸脱することなく、多くの修正が特定の状況または材料を教示に適応するためになされてよい。したがって、開示されている主題は、この発明を実施するために考えられるベストモードとして開示されている特定の実施形態に限定されないが、以下の特許請求の範囲によってのみ限定されることが意図される。
【図１】
2018534629.tif 000005
【図２】
2018534629.tif 000006
【図３】
2018534629.tif 000007
【国際調査報告】
2018534629.tif 000008
2018534629.tif 000009
2018534629.tif 000010
2018534629.tif 000011
2018534629.tif 000012
2018534629.tif 000013