JP2018534629A - ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法 - Google Patents

ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法 Download PDF

Info

Publication number
JP2018534629A
JP2018534629A JP2018526519A JP2018526519A JP2018534629A JP 2018534629 A JP2018534629 A JP 2018534629A JP 2018526519 A JP2018526519 A JP 2018526519A JP 2018526519 A JP2018526519 A JP 2018526519A JP 2018534629 A JP2018534629 A JP 2018534629A
Authority
JP
Japan
Prior art keywords
server
hash function
result
party
party client
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
JP2018526519A
Other languages
English (en)
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
Application filed by アンバウンド テック リミテッド, アンバウンド テック リミテッド filed Critical アンバウンド テック リミテッド
Publication of JP2018534629A publication Critical patent/JP2018534629A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/3236Cryptographic 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 cryptographic hash functions
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

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)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

主題は、第3パーティクライアントのための少なくとも2つのサーバ上で作動される方法を開示し、方法は、第1の第3パーティクライアントからの秘密鍵に適用される第1不可逆関数の第1結果を第1サーバにより受信する段階と、第3パーティクライアントからの秘密鍵に適用される第2不可逆関数の第2結果を第2サーバにより受信する段階と、第2の第3パーティクライアントからのメッセージを第1サーバにより受信する段階と、第1サーバが、当該第1結果に対して、および当該メッセージに対して第1ハッシュ関数を計算し、第1サーバから第2サーバに第1ハッシュ関数の結果を送信する段階と、第2サーバが、当該第2結果に対して、および第1サーバから送信された第1ハッシュ関数の結果に対して第2ハッシュ関数を計算する段階と、第2サーバにより生成される結果をHMAC結果として出力する段階を備える方法。

Description

本発明は、概して、ネットワークセキュリティおよび認証プロセスの分野に関する。より詳細には、本発明は、認証プロセスをセキュアにするためのHMAC方法を利用する分野に関する。
暗号法において、鍵付きハッシュメッセージ認証コード(HMAC)は、秘密暗号化鍵と組み合わせて暗号化ハッシュ関数に関わるメッセージ認証コード(MAC)を算出するための特定の構造である。HMACの定義は、以下の通りである。
Figure 2018534629
ここで、Hは、暗号化ハッシュ関数であり、Kは、ハッシュ関数の入力ブロックサイズに、追加のゼロで右側にパディングされた秘密鍵、またはそれがそのブロックサイズよりも長い場合、元の鍵のハッシュであり、mは、認証されるメッセージであり、||は、連結を示し、
Figure 2018534629
は、排他的論理和(XOR)を示し、opadは、外側のパディング(0x5c5c5c...5c5c,1ブロック長の16進定数)であり、ipadは、内側のパディング(0x363636...3636,1ブロック長の16進定数)である。
HMACは、メモリに完全な鍵を持つ単一のマシン上で実行されると定義される。HMACは、また、例えば、ワンタイムパスワードのようなパスワードを認証すべく、セキュアなマルチパーティ計算(MPC)を用いて2またはそれより多くのコンピュータ制御エンティティ上で実行されてよいが、他の目的にも用いられ得る。MPCは、いずれのパーティも暗号鍵の全てを保持せず、暗号鍵がパーティ間で共有されるときに使用される。マルチパーティ計算において実行されるHMACの標準的な実施は、HMAC関数をブール回路として表すこと、および多くのブールゲートをセキュアに計算することを必要とし、パーティ間で比較的大量のデータを転送することを必要とする。パーティのうちの1つが、携帯電話のような計算リソースに限定される場合、ブールゲートを用いることが、プロセスを遅らせ、携帯電話の通常動作に支障をきたすことがある。
本発明は、そのサーバのいずれもがHMAC暗号鍵の全ては保持しない、少なくとも2つのコンピュータ制御サーバを用いてHMACを実行する方法およびシステムを開示する。HMACを計算するプロセスは、コンピュータネットワーク上でコンピュータ制御エンティティとの接続または通信を求めている第3パーティクライアントの信頼性を確認するために使用されてよい。そのようなネットワークは、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および同様のものであってよい。本発明で開示される方法は、HMACプロセスのための秘密鍵を選択するまたは生成する段階と、次に、(HMACハッシュ関数およびipad/opad定数における不可逆関数により定義される)2つの異なる不可逆関数で秘密鍵に対して2つの圧縮プロセスを実行する段階とによって、第3パーティクライアントにより開始されてよい。第3パーティクライアントは、次に、第1不可逆関数を用いて圧縮される秘密鍵を第1サーバと示されるサーバへ送信でき、第2不可逆関数で圧縮される秘密鍵を第2サーバと示されるサーバへ送信できる。クライアントは、次に、ストレージ、メモリ、または/および当該第3パーティデバイスと一体化される別の可読メディアから、秘密鍵と不可逆関数の結果を削除する。
HMAC関数を計算すべく、第3パーティクライアントは、サーバがそのメッセージに対するHMAC値を算出するために、メッセージをサーバへ送信する。いくつかの場合において、メッセージは、コンピュータ制御デバイス間で送信され得る、および使用され得るコンピュータ使用可能コンテンツであってよい。例えば、第3パーティデバイスは、文字列、長い数字、タイムスタンプ、デジタル画像、写真、および同様のものをメッセージとして送信してよい。
第3パーティデバイスからメッセージを受信すると、第1サーバは、第1ハッシュ関数を利用して、第1不可逆関数を用いて圧縮される秘密鍵およびメッセージをハッシュし、次に、第1ハッシュ関数の値を第2サーバへ送信する。次に、第1ハッシュ関数の値を受信すると、第2サーバは、第1ハッシュ関数の値および第2不可逆関数を用いて圧縮される秘密鍵に対して適用される第2ハッシュ関数を計算する。第2ハッシュ関数の結果は、標準的なHMAC計算である。いくつかの場合において、認証サーバにより利用される全てのハッシュ関数は、同一であってよい。いつくかの他の場合において、ハッシュ関数のうちのいつくかは、同一であってよく、そのうちのいつくかは、同一でなくてよい。
主題は、また、圧縮された秘密鍵と、第3パーティクライアントから送信されたメッセージを受信するおよび格納することが可能な少なくとも2つのサーバからなるシステムを開示する。サーバのうちの少なくとも2つは、圧縮された秘密鍵に対して、およびメッセージに対してハッシュ関数を実行するように構成される処理モジュールを備えてよい。サーバは、また、ハッシュ関数の結果を連結でき、HMAC計算を完了でき、認証プロセスを承認できる、連結モジュールを備える。システムのサーバは、また、それらの間でのあらゆるアクセスを拒否するように構成され得る。例えば、人、またはサーバのうちの1つで作動されるプロセスが、HMAC暗号鍵、または他のサーバに位置する任意の他の情報にアクセスできない。
本発明で開示されるシステムとの認証を求める第3パーティクライアントは、モバイルコンピュータ制御デバイス、パーソナルコンピュータ、タブレットパーソナルコンピュータ、ラップトップ、デスクトップ、および同様のもののようなコンピュータ制御デバイスであってよい。
開示されている主題の例示的な非限定的実施形態が、図と共に、実施形態の以下の説明を参照して説明される。図は、概して、一定の縮尺では示されておらず、任意の寸法は、例示的であることのみが意図され、必ずしも限定的ではない。対応するまたは同様の要素は、同一の符号または文字によって示される。
主題の例示的な実施形態に係る、サーバとして指名される2つのパーティでHMAC方法を実行するためのコンピュータ制御環境の概略図を示す。
主題の例示的な実施形態に係る、ブールゲートのないHMAC方法を実行するためのコンピュータ制御システムの概略図を示す。
主題の例示的な実施形態に係る、第3パーティクライアントを認証するために2つのパーティにより実行されるHMAC方法を利用する方法を示す。
本発明は、2またはそれより多くのコンピュータ制御サーバを用いてHMACに基づく認証プロセスを実行する方法およびシステムを開示する。それらのサーバのうちのいずれも、第3パーティクライアントにより提供されるHMAC秘密鍵の全てを保持しない。秘密鍵は、第3パーティクライアントで異なる圧縮関数により分割され、異なるサーバに提供される。このため、異なる圧縮関数を適用することにより分割される、1より多くのサーバにおける分割鍵の存在により、ブール回路におけるHMAC関数の表示を必要とするMPCを利用する段階が不必要になる。開示される方法は、認証サーバとして構成され得る多様なコンピュータ制御デバイスの利用を可能にする。例えば、サーバおよびクライアント、2つのPC、コンピュータおよびモバイルデバイスである。いくつかの場合において、そのようなコンピュータ制御システムは、スマートフォンおよび/または、タブレット、ラップトップ、および同様のものといった追加のコンピュータ制御デバイスのようなコンピュータ制御デバイス上で作動されてよい。
まず、HMACを計算するための秘密鍵Kが、第3パーティクライアントにより選択され、または生成される。次に、鍵の2つの値が以下のように計算される。第1サーバとして指名される一方のパーティが、Kに対して適用される第1圧縮関数の出力値である値を受信し、第2サーバとして指名される他方のパーティが、Kに対して適用される第2圧縮関数の出力値を受信する。いくつかの場合において、鍵Kは、関数の入力ブロックサイズへ、追加の定数によりパディングされてよい。そのような場合、第1認証サーバに送信されるKは、1つの定数(ipadと表される)でパディングされてよく、第2パーティに送信されるKは、異なる定数(opadと表される)でパディングされてよい。両方の圧縮関数は、標準的なHMACにおいて使用されるハッシュ関数に使用される標準的な圧縮関数から選択されてよい(この場合、結果は、標準的なHMAC計算値である)。
いくつかの場合において、両方の圧縮関数は、不可逆関数であってよく、いくつかの場合において、疑似ランダム関数として挙動する。HMACの算出に関与し得るパーティは、鍵をF(K)=F[K XOR ipad]だけからも、F(K)=F[K XOR opad]だけからも引き出すことができず、ここで、Fは、圧縮関数を表し、Fは、第1圧縮関数を表し、Fは、第2圧縮関数を表し、Kは、秘密HMAC鍵を表す。本発明で開示される方法において、第1エンティティがF(K)から得られる値を受信し、第2エンティティがF(K)から得られる値を受信したとき、次のフェーズが画定される。エンティティは、サーバ、モバイルデバイス、PCなどであってよい。本発明の考えられる実施形態において、第2パーティがF(K)から得られる値を受信すると、認証プロセスが行われてよい。このため、認証することを求める第3パーティクライアントが、第1パーティへメッセージを送信してよい。次に、メッセージを受信した後、第1パーティは、F[F(K)+M]のような、F(K)およびMの出力値に対してハッシュ関数を計算でき、ここで、Mはメッセージを表す。いくつかの場合において、メッセージMは、移動係数もしくはHMACがワンタイムパスワード認証に用いられる場合、現在時刻であってよく、または当業者により所望される別のメッセージであり得る。移動係数を用いる場合、新しいOTPが生成されるときにはいつでも、移動係数が増分され、したがって、その後生成されるパスワードは、毎回異なるはずである。
本発明のいつくかの実施形態において、第1パーティにより実行されるハッシュ関数は、また、以下のように圧縮関数を使用してよい。H(F,M)=F(F(K)+M)。そのハッシュ関数の出力値は、値M(メッセージ)に対して適用される圧縮関数Fの出力値と連結されたFから出力される値に対して適用される圧縮関数Fの出力値である。いくつかの場合において、H(F,M)は、また、メッセージ、Mの長さに対する圧縮を含む。
を算出した後、第1エンティティは、Hから得られる値を第2エンティティへ送信する。第2エンティティは、ハッシュ関数を値HおよびFから出力される値に対して適用することによりHを算出できる。第2エンティティは、以下のようにハッシュ関数を実行してよい。H(F,H)=F(F(K)+H)。第2エンティティにより算出されるハッシュ関数の結果が、標準的なHMAC計算をもたらすことができ、このため、これが、いずれのパーティへも秘密HMAC鍵を明らかにすることなく、HMACのMPC計算を構成する。
いくつかの場合において、第1パーティにより実行されるハッシュ関数は、例えば、メッセージMのサイズがハッシュアルゴリズムのブロックサイズより大きい場合、反復的な方法で実行され得る。そのような場合、メッセージは、アルゴリズムブロックのサイズで、2またはそれより多くの部分に分割され、ハッシュ関数が以下のように実行される。H(T)=h(h(h(IV,T),T),...),length)。
ここで、Tは、ハッシュアルゴリズムHの入力値を表し、hは、一定のブロックサイズの入力値Tのブロックに対して適用されるハッシュアルゴリズム(圧縮関数)を表し、T,T,T...は、一定のサイズのメッセージMの部分を表し、IVは、定数値である。いくつかの場合において、値Tは、メッセージMであってよく、順序付けられたT,T,Tなどは、当該メッセージMの一定のブロックサイズでの部分を表してよい。例えば、メッセージMがアルゴリズムHでハッシュ化される必要がある場合、アルゴリズムHは一定のサイズでのハッシュブロックと定義され、Mは1つのブロックのサイズより大きい一方で、Mメッセージは、いくつかの部分へと分割され得、ここで、各部分は、アルゴリズムHがハッシュすると定義される一定のブロックサイズのサイズである。そのような場合、第1ハッシュhは、定数IVおよび第1部分に対して実行される。次に、第2ハッシュhは、第1ハッシュhの結果および第2部分に対して実行される。第3ハッシュhは、第2ハッシュhの結果および第3部分に対して、メッセージ長を定義し得る最後の部分まで、実行される。
ハッシュ関数は、SHA−1、MD5、SHA−2、SHA−3などのような当業者に所望される任意のハッシュ関数であってよい。
図1は、主題の例示的な実施形態に係る、サーバとして指名される2つのパーティでHMAC方法を実行するためのコンピュータ制御環境の概略図を示す。環境は、第1サーバであってよい第1パーティ110と、第2サーバであってよい第2パーティ120との2つのパーティ、および第3パーティクライアント130を備える。第1パーティ110および第2パーティ120は、完全な秘密鍵にアクセスすることなく、1つのHMAC方法を共に実行する。第3パーティクライアント130は、秘密鍵を選び、暗号鍵に対する2つの異なる不可逆関数を計算し、第1不可逆関数計算の結果を第1パーティ110へ送信し、第2不可逆関数計算の結果を第2パーティ120へ送信する。第3パーティクライアント130は、VがF(K)の出力値を示し、VがF(K)の出力値を示すように、F(K)およびF(K)を実行する。典型的に、第3パーティは、ハッシュ関数を実行する前、第1パーティ110および第2パーティ120と秘密鍵を生成するおよび交換するフェーズにおいてのみ使用される。第3パーティは、また、暗号鍵Kに対して関数を適用した後、HMACと関連付けられる情報を自動的に消去するように構成され得る。
第1パーティ110または第2パーティ120のいずれかの一方のパーティが、メッセージ、および第3パーティ130からあらかじめ受信した値V1に対してハッシュ関数を実行する。次に、値V1に対してハッシュ関数を適用したパーティは、ハッシュ関数の結果を他方のパーティへ送信する。例えば、第1パーティ110が、ハッシュ関数をメッセージMおよび値Vに対して算出し、ハッシュ関数の結果を第2パーティ120へ送信する。次に、第2パーティ120は、第1パーティ110から受信した結果に対して、および値Vに対して第2ハッシュ関数を適用する。ハッシュ関数が少なくとも2つの要素に対して実行されることに留意するべきである。第2パーティ120で実行される、第2ハッシュ関数の結果は、HMAC方法の結果であり、(例えば、ワンタイムパスワードを生成するとき)クライアントを認証するために、または(例えば、メッセージ認証の目的のためにHMACを計算するとき)メッセージを認証するために使用され得る。いくつかの場合において、方法は、それぞれ第1パーティ110および第2パーティ120として、サーバおよびモバイルデバイスの間で実施され、スマートフォンのようなモバイルデバイスのユーザが、HMACを用いてワンタイムパスワードを認証することを望む。そのような例示的な場合において、スマートフォンが第2ハッシュ関数を実行し、パスワードを認証すべく結果をサーバに送信する。
図2は、主題の例示的な実施形態に係る、ブールゲートのないHMAC方法を実行するためのコンピュータ制御システムの概略図を示す。コンピュータ制御システム205は、マルチパーティ計算を用いてHMAC方法を実行する、第1パーティまたは第2パーティのいずれかに存在してよい。
コンピュータ制御システム205は、他のパーティと通信するように構成される通信インターフェース210を備える。例えば、通信インターフェース210は、第3パーティで暗号鍵に対して適用された不可逆関数の値を受信する。通信インターフェース210は、また、パーティのうちの1つによって適用された第1ハッシュ関数の値を伝送および受信する。例えば、第1パーティが第1ハッシュを実行する場合、第1パーティの通信インターフェース210が、第1ハッシュの結果を、第1ハッシュの結果に対して第2ハッシュを実行する第2パーティへ送信する。
コンピュータ制御システム205は、ハッシュ関数プロセスの一環として圧縮関数を計算するように構成される圧縮ユニット220を備える。圧縮ユニット220は、コンピュータ制御システムのメモリ領域に格納される圧縮方法を使用する。圧縮ユニット220により実行される圧縮方法は、当業者により選択されてよい。
コンピュータ制御システム205は、ハッシュ関数を2またはそれより多くの値に対して実行するように構成されるハッシュ関数オペレータ230を備える。値は、コンピュータ制御システムの処理ユニットを介して、例えば、レジスタを介して、ハッシュ関数オペレータ230へ伝送されてよい。ハッシュ関数オペレータ230は、ハッシュ関数を実行するとき、値を圧縮ユニット220へ送信し、圧縮された値を受信し、圧縮された値を蓄積することにより、圧縮ユニット220を使用してよい。
コンピュータ制御システム205は、また、ハッシュ関数オペレータ230の動作を制御するように構成されるハッシュ関数制御器235を備える。例えば、ハッシュ関数制御器235は、2つの値をハッシュ関数オペレータ230へ導入し、ハッシュ方法のブロックサイズに従って、メッセージMをどのように分割するのか確認し、ハッシュ関数オペレータ230により実行されるハッシュ関数を何度も反復し、ハッシュが正しく実行されるか検証してよい。いくつかの場合において、少なくともいつくかの圧縮ユニット220、ハッシュ関数オペレータ230およびハッシュ関数制御器235は、第1認証サーバ110または第2認証サーバ120内の処理モジュールのコンポーネントである。
コンピュータ制御システム205は、第1パーティと第2パーティとにおける値を同期するように構成される同期モジュール240を備える。つまり、AES方法のような暗号化アルゴリズムが、マルチパーティ計算においてHMAC方法を用いて認証されるパスワードに対して適用される場合である。AESは、頻繁に、例えば1分ごとに更新されるので、同期モジュール240は、パスワードが更新されているかを検証し、第2パーティに格納される情報にアクセスするべく第1パーティの情報をコピーした攻撃者を妨げる。
図3は、主題の例示的な実施形態に係る、第3パーティクライアントを認証するために2つのパーティにより実行されるHMAC方法を利用する方法を示す。いくつかの場合において、認証方法は、第3パーティクライアントを利用する人の信頼性を確認するために使用されてよい。いくつかの場合において、認証方法は、特定のデバイスを利用する人の信頼性を確認するために使用されてよい。例えば、ユーザは、認証プロセスにおいて、コンピュータ制御携帯電話を利用してよい。このため、ユーザは、1つの特定のコンピュータ制御携帯電話で認証プロセスを成功裏に通過することができてよく、別のコンピュータ制御携帯電話を利用している場合は認証できない。段階300は、設定フェーズと定義されてよく、HMAC鍵が、第3パーティにより生成される。第3パーティは、HMAC鍵に対して2つの異なる不可逆関数を適用してよく、次に、結果を保存する。
段階302は、第1不可逆関数の出力値をパーティのうち第1パーティクライアントへ伝送する段階を開示する。段階305は、第2不可逆関数の出力値をパーティのうち第2パーティへ伝送する段階を開示する。段階307は、第3パーティクライアントが、暗号鍵および暗号鍵に対する圧縮関数の結果を削除できる、任意の段階である。
段階310は、新しいHMAC結果を計算するためにメッセージMを受信する段階を開示する。そのようなメッセージは、ASCIIストリング、鍵、および同様のものであってよい。いくつかの場合において、メッセージ自体が、この同一メッセージが一度のみ送信され得ることを保証するデータを含んでよい。そのようなデータは、タイムスタンプ、シーケンス番号、移動係数、および同様のものであってよい。段階315は、パーティのうちの1つによって第1ハッシュ関数を適用する段階を開示する。第1ハッシュ関数は、第3パーティクライアントから送信されたメッセージMおよび第1不可逆関数から得られる値に対して実行される。段階320は、第1ハッシュ関数の出力値を第1パーティから、第2ハッシュ関数の算出を次に実行し得る第2パーティへ伝送する段階を開示する。
段階330は、第2パーティにより、第2ハッシュ関数の算出を実行する段階を開示する。第2ハッシュ関数は、第1ハッシュ関数の出力値に対して実行され、第2不可逆関数の結果を使用する。第2ハッシュ関数の出力値は、任意のHMACの目的に用いられ得るHMAC値である。そのような目的の1つは、ワンタイムパスワードの生成のためである。段階340は、その所望される目的のためにHMAC/ワンタイムパスワードを出力する段階を開示する。
開示が例示的な実施形態を参照して説明されている一方で、発明の範囲から逸脱することなく、様々な改変形態がなされてよく、均等物がそれらの要素に置換されてよいことが当業者により理解されるであろう。加えて、その本質的な範囲から逸脱することなく、多くの修正が特定の状況または材料を教示に適応するためになされてよい。したがって、開示されている主題は、この発明を実施するために考えられるベストモードとして開示されている特定の実施形態に限定されないが、以下の特許請求の範囲によってのみ限定されることが意図される。

Claims (13)

  1. 第3パーティクライアントのための少なくとも2つのサーバ上で作動される方法であって、前記方法は、
    第1の第3パーティクライアントからの秘密鍵に対して適用される第1不可逆関数の第1結果を第1サーバにより受信する段階と、
    前記第3パーティクライアントからの前記秘密鍵に対して適用される第2不可逆関数の第2結果を第2サーバにより受信する段階と、
    第2の第3パーティクライアントからのメッセージを前記第1サーバにより受信する段階と、
    前記第1サーバが、前記第1結果に対して、および前記メッセージに対して第1ハッシュ関数を計算し、前記第1サーバから前記第2サーバに前記第1ハッシュ関数の結果を送信する段階と、
    前記第2サーバが、前記第2結果に対して、および第1サーバから送信された前記第1ハッシュ関数の前記結果に対して第2ハッシュ関数を計算する段階と、
    第2サーバにより生成される前記結果をHMAC結果として出力する段階
    を備える方法。
  2. 前記第1の第3パーティクライアントは、前記第2の第3パーティクライアントとは異なるエンティティである、請求項1に記載の方法。
  3. 前記第1の第3パーティクライアントは、前記第2の第3パーティクライアントである、請求項1に記載の方法。
  4. 前記第1サーバにより前記ハッシュ関数を計算する前に、前記秘密鍵に追加のゼロを加える段階をさらに備える、請求項1から3の何れか一項に記載の方法。
  5. 前記第3パーティクライアントにより、前記秘密鍵および第2圧縮関数の前記結果を削除する段階をさらに備える、請求項1から4の何れか一項に記載の方法。
  6. 前記メッセージは、コンピュータにより可読のファイルによって表される、請求項1から5の何れか一項に記載の方法。
  7. 第1サーバは、前記第2サーバへのアクセス権を有しない、請求項1から6の何れか一項に記載の方法。
  8. 第2サーバは、前記第1サーバへのアクセス権を有しない、請求項1から7の何れか一項に記載の方法。
  9. 第1圧縮関数で前記第3パーティクライアントにより圧縮される前記秘密鍵は、前記第1サーバによって格納される、請求項1から8の何れか一項に記載の方法。
  10. 第2圧縮関数で前記第3パーティクライアントにより圧縮される前記秘密鍵は、前記第2サーバによって格納される、請求項1から9の何れか一項に記載の方法。
  11. 前記第1ハッシュ関数および前記第2ハッシュ関数は、同一の関数である、請求項1から10の何れか一項に記載の方法。
  12. 圧縮された秘密鍵および第3パーティクライアントから送信されたメッセージを受信することおよび格納することが可能である第1サーバと、
    前記圧縮された秘密鍵に対して、および前記メッセージに対してハッシュ関数を実行することが可能な前記第1サーバと一体化された第1ハッシュ関数ユニットと、
    圧縮された秘密鍵および第3パーティクライアントから送信されたメッセージと、前記第1サーバから送信されたハッシュ関数の結果とを受信することおよび格納することが可能である第2サーバと、
    前記圧縮された秘密鍵に対して、および前記メッセージに対して、ならびに前記第1サーバから受信した前記ハッシュ関数の結果に対してハッシュ関数を実行すべく設計される前記第2サーバと一体化される第2ハッシュ関数ユニット
    を備えるシステム。
  13. 前記サーバは、コンピュータプロセスの動作を実行することが可能なコンピュータ制御デバイスである、請求項12に記載のシステム。
JP2018526519A 2015-11-22 2016-11-20 ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法 Pending JP2018534629A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562258479P 2015-11-22 2015-11-22
US62/258,479 2015-11-22
PCT/IL2016/051242 WO2017085726A1 (en) 2015-11-22 2016-11-20 Method of performing keyed-hash message authentication code (hmac) using multi-party computation without boolean gates

Publications (1)

Publication Number Publication Date
JP2018534629A true JP2018534629A (ja) 2018-11-22

Family

ID=58718462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018526519A Pending JP2018534629A (ja) 2015-11-22 2016-11-20 ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法

Country Status (5)

Country Link
US (1) US10103888B2 (ja)
EP (1) EP3378190A4 (ja)
JP (1) JP2018534629A (ja)
IL (1) IL259476B (ja)
WO (1) WO2017085726A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6527090B2 (ja) * 2016-02-01 2019-06-05 株式会社日立製作所 ユーザ許可の確認システム
US10630661B2 (en) * 2017-02-03 2020-04-21 Qualcomm Incorporated Techniques for securely communicating a data packet via at least one relay user equipment
IL250657A0 (en) * 2017-02-19 2017-03-30 Sella Yaron Cooperative computation of an authentication code based on a cryptographic hash function
US11169934B2 (en) * 2018-06-28 2021-11-09 Intel Corporation Systems, methods and apparatus for low latency memory integrity mac for trust domain extensions
US11190507B2 (en) * 2018-09-27 2021-11-30 Apple Inc. Trusted device establishment
US11985232B2 (en) * 2018-10-26 2024-05-14 Nec Corporation Secure computing server, system, secure computing method, and program
US11316663B2 (en) * 2019-01-25 2022-04-26 International Business Machines Corporation One-time password with unpredictable moving factor
US11405214B2 (en) * 2019-04-04 2022-08-02 Y R Free Labs Limited Secure transmission
NL1043913B1 (en) * 2020-01-23 2021-12-14 Ir Niek Johannes Bouman Dr Data anonymization
EP4268411A1 (en) * 2021-09-08 2023-11-01 Huawei Technologies Co., Ltd. Method and system of computing hash based message authentication code
US11438146B1 (en) * 2021-10-27 2022-09-06 Coinbase Il Rd Ltd. System and method for performing key exchange while overcoming a malicious adversary party
CN114584291B (zh) * 2022-02-18 2023-12-29 杭州代码狗科技有限公司 基于hmac算法的密钥保护方法、装置、设备和存储介质
US20240087626A1 (en) * 2022-06-07 2024-03-14 Infineon Technologies LLC System and Method for Generation of Unique Digital Signature Using a Non-Volatile Memory Array

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315948B1 (en) * 1999-12-10 2008-01-01 International Business Machines Corporation Time stamping method employing a separate ticket and stub
US7249255B2 (en) * 2001-06-13 2007-07-24 Corrent Corporation Apparatus and method for a hash processing system using multiple hash storage areas
US8041957B2 (en) * 2003-04-08 2011-10-18 Qualcomm Incorporated Associating software with hardware using cryptography
US7437559B2 (en) * 2003-11-19 2008-10-14 Hewlett-Packard Development Company, L.P. Electronic message authentication
US8892887B2 (en) * 2006-10-10 2014-11-18 Qualcomm Incorporated Method and apparatus for mutual authentication
US8966265B2 (en) * 2009-01-30 2015-02-24 Texas Instruments Incorporated Pairwise temporal key creation for secure networks
JP2011254440A (ja) * 2010-06-04 2011-12-15 Toshiba Corp 情報処理装置
WO2013126880A1 (en) * 2012-02-23 2013-08-29 Applied Communication Sciences Privacy-preserving publish-subscribe protocol in a cloud-assisted model
WO2014108835A2 (en) * 2013-01-08 2014-07-17 Bar-Ilan University A method for providing security using secure computation
US9425953B2 (en) * 2013-10-09 2016-08-23 Intel Corporation Generating multiple secure hashes from a single data buffer
WO2015166216A1 (en) * 2014-05-02 2015-11-05 Barclays Bank Plc Transaction authentication
US20160087791A1 (en) * 2014-09-24 2016-03-24 Unisys Corporation Computation of hash value for a message based on received portions of the message
EP3259873B1 (en) * 2015-02-20 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method of providing a hash value for a piece of data, electronic device and computer program
US20160350861A1 (en) * 2015-05-29 2016-12-01 Yoti Ltd Electronic systems and methods for asset tracking

Also Published As

Publication number Publication date
EP3378190A4 (en) 2019-06-26
EP3378190A1 (en) 2018-09-26
WO2017085726A1 (en) 2017-05-26
US20170272251A1 (en) 2017-09-21
IL259476B (en) 2020-09-30
IL259476A (en) 2018-07-31
US10103888B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
US10103888B2 (en) Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates
CN106664202B (zh) 提供多个设备上的加密的方法、系统和计算机可读介质
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
US10142107B2 (en) Token binding using trust module protected keys
US11533297B2 (en) Secure communication channel with token renewal mechanism
US9813247B2 (en) Authenticator device facilitating file security
US11336430B2 (en) Blockchain-incorporating distributed authentication system
EP3291481A1 (en) Decrypting encrypted data on an electronic device
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
US20180091487A1 (en) Electronic device, server and communication system for securely transmitting information
JP6507171B2 (ja) 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
US9942042B1 (en) Key containers for securely asserting user authentication
EP3291482B1 (en) Encrypting and decrypting data on an electronic device
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
US10897362B2 (en) De-duplication of encrypted data
CN105207773A (zh) 一种数据加密密钥的管理、同步和备份方法、系统及装置
WO2020155812A1 (zh) 一种数据存储方法、装置及设备
CN109309566B (zh) 一种认证方法、装置、系统、设备及存储介质
EP3133791B1 (en) Double authentication system for electronically signed documents
JP7250960B2 (ja) ユーザのバイオメトリクスを利用したユーザ認証および署名装置、並びにその方法
KR101586439B1 (ko) 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치
US10785193B2 (en) Security key hopping
US11290277B2 (en) Data processing system
BR102015011937A2 (pt) agente para fornecer serviço de segurança na nuvem e dispositivo token de segurança para serviço de segurança na nuvem
KR101593675B1 (ko) 사용자 데이터의 무결성 검증 방법 및 그 장치