JP6849862B2 - パスワード認証のための準同型暗号 - Google Patents

パスワード認証のための準同型暗号 Download PDF

Info

Publication number
JP6849862B2
JP6849862B2 JP2020533217A JP2020533217A JP6849862B2 JP 6849862 B2 JP6849862 B2 JP 6849862B2 JP 2020533217 A JP2020533217 A JP 2020533217A JP 2020533217 A JP2020533217 A JP 2020533217A JP 6849862 B2 JP6849862 B2 JP 6849862B2
Authority
JP
Japan
Prior art keywords
character
encrypted
user
verification number
position data
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.)
Active
Application number
JP2020533217A
Other languages
English (en)
Other versions
JP2021507615A (ja
Inventor
フーフ セバスチアーン ヤコブス アントニウス デ
フーフ セバスチアーン ヤコブス アントニウス デ
アラン ペストリン
アラン ペストリン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2021507615A publication Critical patent/JP2021507615A/ja
Application granted granted Critical
Publication of JP6849862B2 publication Critical patent/JP6849862B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、クライアントデバイス、サーバデバイス、サーバ方法、クライアント方法、およびコンピュータ可読媒体に関する。
米国特許第7735121号は、通信ネットワークを介して情報を安全に通信するための既知のシステムを開示している。この既知の方法は、PINコード等の認証情報を入力するために使用され得る。
この既知のシステムは、リモート通信ネットワークを介してウェブサーバに結合されたリモートコンピューティングデバイスを含む。ユーザ認証に使用されるWebページは、ユーザが個人情報を入力するための仮想パッドを備える。仮想パッドは、個人情報を入力するためにユーザのリモートコンピューティングデバイスのディスプレイから直接選択可能な複数の英数字キーを備える。英数字は、仮想パッド内の異なる位置にランダムに表示される。仮想パッド内に表示される実際の文字は、認証サーバ上のデータベースに格納されている代替文字セットと関連付けられている。ユーザが入力した個人情報に対応する代替文字セットからの文字は、その後SSL(Secure Socket Layer)を使用して暗号化され、認証サーバに送信される。
この既知のシステムに関連するいくつかの問題が存在する。例えば、Webサーバはメモリスクレイピング攻撃に対して脆弱である。ユーザからの応答の復号後、メモリにおいてユーザのパスワードが可視化される。サーバのメモリへのアクセスを有する攻撃者は、そこからパスワードを取得することができる。同様にクライアント側でも、攻撃者は、ユーザデバイスから送信されたデータを記録し、後にそれを再生することでサーバに対してユーザになりすますことができる。
特許請求の範囲に規定される、認証のために構成されたクライアントデバイスおよびサーバデバイスが提供される。サーバデバイスは準同型暗号を使用して、準同型暗号アルゴリズムに従って文字/位置データのセットを暗号化する。クライアントデバイスは、暗号化された文字/位置データから検証番号を計算する。文字/位置は準同型暗号を使用して暗号化されるため、検証番号の計算は、復号を必要とせずに、暗号化されたデータに対して実行され得る。最後に、返信されるのは検証番号だけでよい。したがって、サーバは、どの文字/位置データが選択されたかを知ることを要さずに、受信された検証番号および格納されている検証番号が互いに合致するか否かを検証することができ、すなわち、サーバは認証文字列(例えば、ユーザのパスワードまたはPINコード)を知る必要がない。
一実施形態では、サーバデバイスは文字セット内の文字のための表示データを取得し、表示データを、文字に対応する暗号化された文字/位置データに関連付ける。ユーザは、クライアントデバイスにおいて、認証文字列の文字に対応する表示データを選択することができる。したがって、クライアントデバイスにおいても、メモリに認証文字列がある必要がない。表示データは、好ましくは機械にとって読み取りにくいものであり、例えば非機械可読である。たとえ表示データが読み取りにくい場合でも、不可能ではないとしても、自動化された攻撃は困難になる。
本明細書に記載される認証方法は、幅広い実用的な用途に適用可能である。そのような実用的な用途は、例えば、メッセージの信憑性を保護するために通信システム、例えば、金融取引を保護するために金融システム、例えば、データの信憑性を保護するためにストレージシステム等を含む。
本発明に係る方法は、コンピュータ実装方法としてコンピュータ上に、専用ハードウェアに、またはこれらの組み合わせとして実装されてもよい。本発明に係る方法のための実行可能コードは、コンピュータプログラム製品に保存されてもよい。コンピュータプログラム製品の例は、メモリデバイス、光記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。好ましくは、コンピュータプログラム製品は、プログラム製品がコンピュータ上で実行されるとき、本発明に係る方法を実行するためのコンピュータ可読媒体上に保存された非一時的プログラムコードを含む。
好ましい実施形態では、コンピュータプログラムは、該コンピュータプログラムがコンピュータ上で実行されるとき、本発明に係る方法のすべてのステップを実行するように構成されたコンピュータプログラムコードを含む。好ましくは、コンピュータプログラムは、コンピュータ可読媒体上に具現化される。
本発明の別の側面は、コンピュータプログラムをダウンロード可能にする方法を提供する。この側面は、コンピュータプログラムが例えばアップルのApp Store、GoogleのPlay Store、またはMicrosoftのWindows Storeなどにアップロードされており、そのようなストアからコンピュータプログラムをダウンロード可能な場合に使用される。
以下、本発明の単なる例に過ぎないさらなる詳細、側面、および実施形態について、以下の図面を参照しながら説明する。図中の要素は、簡潔さおよび明瞭さを意図して描かれており、必ずしも縮尺通りに描かれていない。図面において、すでに説明した要素に対応する要素には同じ参照番号を付している。
図1は、認証システムの実施形態の例を概略的に示す。 図2は、データ依存性の実施形態の例を概略的に示す。 図3は、文字/位置データの実施形態の例を概略的に示す。 図4は、表示データの実施形態の例を概略的に示す。 図5は、サーバ方法およびクライアント方法の実施形態の例を概略的に示す。 図6aは、一実施形態に係るコンピュータプログラムを含む書き込み可能部分を有するコンピュータ可読媒体を概略的に示す。 図6bは、一実施形態に係るプロセッサシステムの表現を概略的に示す。
図1〜図4内の参照番号のリスト:
100 サーバデバイス
101 認証システム
110 検証番号ストレージ
120 暗号化ユニット
130 通信インターフェース
140 比較ユニット
150 順列ジェネレータ
160 表示データユニット
200 クライアントデバイス
210 ディスプレイ
220 ユーザインターフェース
230 通信インターフェース
240 準同型計算ユニット
250 ストレージ
310 文字/位置データのセット
320 文字/位置データのセットのサブセット
325,326 認証文字列
330 第1のアンブラインド検証番号
340 第1の検証番号
345,346 ブラインディング数
350 暗号化された文字/位置データのセット
360 暗号化された文字/位置データのセットのサブセット
370 第2のアンブラインド検証番号
380 第2の文字/位置データのセット
410 複数の位置
420 文字セット
430 文字/位置の数字
500 順列
510 (集合的)表示データ
511 (1つの)表示データ
530 暗号化された文字/位置データ
520〜529 暗号化された文字/位置データのセット
本発明は、様々な形態の実施形態を取り得るが、図面および以下の説明では、1つまたは複数の具体的実施形態が詳細に示される。本開示は、本発明の原理の例示として考えられるべきであり、本発明を図示および説明される具体的実施形態に限定するものではないことを理解されたい。
以下、理解を目的として、動作中の実施形態の要素が説明される。しかしながら、各要素が、各要素によって実行されるものとして記載されている機能を実行するように構成されていることは明らかであろう。さらに、本発明は、実施形態に限定されるものではなく、本発明は、本明細書に記載されるまたは互いに異なる従属請求項に記載される全ての新規の特徴または特徴の組み合わせに及ぶ。
一般的な認証メカニズムは、ユーザ資格情報とも呼ばれるユーザ名とパスワードとの組み合わせである。通常、資格情報は確認のために認証サーバに送信される。攻撃者があるユーザの資格情報を取得すると、攻撃者はサーバ上でユーザになりすますことができ、つまり、攻撃者は、自分が資格情報を盗まれたユーザであるとサーバに納得させることができる。残念ながら、実際には、多くのユーザが複数のアプリケーションで同じパスワードを使用している。このため、攻撃者は、破ったアプリケーション以外のアプリケーションでもユーザになりすますことができる。
ユーザが資格情報を入力しているときに、一部の攻撃者がメモリを読み取ることができるという問題が存在する。これらの攻撃はメモリスクレイピングとして知られている。既存のソリューションは主に多要素認証に基づいており、多要素認証では、ユーザは複数の認証ステップを、好ましくは別々のデバイス上で実行する必要がある。その結果、攻撃者がサーバ上でユーザになりすますには資格情報をスクレイプだけでは不十分になるが、一方で、ユーザは機密データ(複数のアプリケーションで使用されている可能性が高い、ユーザのパスワード)を失う。
考えられるソリューションは、パスワードがメモリ内に存在することがないようにすることである。例えば、セキュアキーボードを使用して数列を入力するようユーザが促され、ここで、押されたボタンの位置は数字の値を漏らさず、ボタンを押すことで生じる値はそのままの値ではなく、値を符号化したものである。
このセキュアキーボードにより、例えばPIN等のパスワードの全ての情報がメモリスクレイパーから隠される。このようなソリューションは、機密の個人パスワードをそのような攻撃者に漏らさない。しかし、攻撃者は依然として、単純に、サーバへの符号化されたパスワードをスクレイピングして再生し、ユーザになりすまし得る。
サーバへの認証にあたり、クライアントは通常、資格情報をセキュアチャネルを介して送信する。そして、サーバは自身のデータベースを使用して、ユーザ名およびパスワードの組み合わせが合致するか否かを確認する。例えば、データベースはユーザ名Uと、対応するパスワードの(ソルト付き)ハッシュHとの組み合わせを備える。サーバがユーザ名Uおよびパスワードpを取得すると、サーバはH(p)を計算し、H(p)=Hであるか否かを確認する。
攻撃者がサーバを攻撃できる場合、攻撃者はユーザ資格情報(の派生物)を含むデータベースを見つけることができる。前例における暗号学的ハッシュの使用のように、攻撃者がデータベースから機密パスワードにアクセスできないようにするのに適したソリューションが存在する。しかし、攻撃者がアクティブサーバのメモリをスクレイプできる場合、ほとんどのケースで、攻撃者はサーバのメモリにおいて平文のパスワードを見ることができる。以下、クライアントデバイスおよびサーバデバイスの両方において、認証実行中に認証文字列、例えばパスワードを保護するために準同型暗号を使用する実施形態について記載する。
図1は、認証システム101の実施形態の例を概略的に示す。認証システム101はクライアントデバイス200およびサーバデバイス100を備え、これらのデバイスは、クライアントデバイス200がサーバデバイス100に対してクライアントデバイス200のユーザを認証できるように構成される。ユーザは認証文字列を知っていることを証明することで認証される。
クライアントデバイス200およびサーバデバイス100は、本発明の実施形態として構成された電子デバイスであり得る。クライアントデバイス200は、サーバデバイスと通信するように構成された通信インターフェース130を備え、サーバデバイス100は通信インターフェース130を備える。これらの通信インターフェースは、例えばコンピュータネットワークを介して、例えばデジタルメッセージを交換することにより、デジタル形式で互いに通信するように構成される。例えば、コンピュータネットワークはインターネット、イントラネット、WLAN等であり得る。コンピュータネットワークはインターネットであり得る。例えば、通信インターフェース130および/または230は有線インターフェース、例えばイーサネットポートであってよい。例えば、通信インターフェース130および/または230は無線インターフェース、例えばWi‐Fi(登録商標)アンテナを備えたWi‐Fi(登録商標)インターフェース等であってもよい。
クライアントデバイス200およびサーバデバイス100は、クライアントデバイスがサーバデバイス100に対してクライアントデバイス200のユーザを認証できるように協働する。例えば、サーバデバイス100は、当該ユーザは権限を有するが、他のユーザは権限を有さない何らかのサービスのために構成されてもよい。例えば、サーバ100は、ユーザがアクセス可能なドキュメントを格納するファイルサーバや、価値のあるコンテンツへのアクセスを提供するストリーミングサーバ、あるいはユーザのクレジットカード情報を格納するウェブショップ等であり得る。
クライアントデバイス200およびサーバデバイス100はそれぞれプロセッサ回路を備える。両デバイスはまた、コンピュータプロセス命令を含むメモリを備え得る。プロセッサ回路は、メモリに格納された命令を実行するように構成される。認証の実行はプロセッサ回路で実施され、その例が本明細書で示される。図1は、プロセッサ回路の機能ユニットであり得る複数の機能ユニットを示す。例えば、図1は、プロセッサ回路が有し得る機能的構成の青写真として使用され得る。プロセッサ回路は図1の機能ユニットとは別に示されていない。例えば、図1に示される機能ユニットは、デバイス100または200において、例えば、デバイス100または200の電子メモリ内に格納されており、デバイス100または200のマイクロプロセッサによって実行可能なコンピュータ命令として完全にまたは部分的に実装され得る。ハイブリッド実施形態では、機能ユニットは部分的にハードウェアで、例えばコプロセッサ、例えば暗号化コプロセッサとして実装され、部分的に、デバイス100または200上で格納および実行されるソフトウェアで実装される。
サーバデバイス100は、クライアントデバイス200からのユーザを認証するように構成される。ユーザは認証文字列へのアクセスを有する。認証文字列は複数の位置に複数の文字を有し、各文字は文字セットから選択される。例えば、認証文字列はPINであり、その場合、文字セットは数字{0,1,2,・・・,9}である。例えば、認証文字列は英数字の文字列であり、その場合、文字セットは{a,・・・,z,A,・・・,Z,0,・・・,9}であり得る。さらに、認証システム101で望まれる場合、1つまたは複数の句読文字が文字セットに追加されてもよい。
サーバデバイス100は、第1の検証番号を格納するように構成されたストレージ110、例えば検証番号ストレージ110を備える。第1の検証番号は、セットアップフェーズ中に認証文字列から計算されている。しかし、一実施形態では、第1の検証番号を知っているだけでは認証文字列を取得するのに十分ではない。さらに、第1の検証番号は、それ自体ではサーバ100への認証に使用することはできない。言い換えると、攻撃者が第1の検証番号を取得したとしても、認証文字列を取得したり、サーバデバイス100に対して認証されることへの助けとはならない。クライアントデバイス200は、認証プロセス中に、認証文字列から第2の検証番号が計算されるように構成される。ユーザが、自らが知っている認証文字列に基づいて入力を提供するので、クライアントデバイス200はこれを行うことができる。その後、第2の検証番号はサーバデバイス100に送信される。第1の検証番号と第2の検証番号との間の対応が検証され、これにより、両方の検証番号が同じ認証文字列から計算されたことが検証される。その結果、ユーザが認証される。
検証番号ストレージ110は、複数のユーザのための複数の検証番号を含み得る。例えば、検証番号はユーザ名に関連付けられ得る。例えば、検証番号とユーザ名とのペアが保存され得る。関連付けはユーザ名の派生物、例えばハッシュやソルト付きハッシュ等を介して行われてもよい。その場合、検証番号ストレージ110は、派生物とともに検証番号を記憶し得る。
図2は、可能なデータ依存性の実施形態の例を概略的に示す。図は、第1の検証番号および第2の検証番号と認証文字列との間の可能な関係を説明している。
図2は、文字/位置データのセット310を示す。セット310は、文字セットからのある文字と認証文字列内の位置との組み合わせごとに数字を含む。文字/位置データは秘密であってもよいが、これは必須ではなく、公開データであってもよい。典型的には、数字は、例えば、使用される準同型暗号スキームによって使用されるように、有限群、環、または体から選択される。準同型暗号スキームでは、データ(例えば、群内の数字)を暗号化することができる。さらに、暗号化された数字に対して実行され得る少なくとも1つの二項演算が存在する。例えば、加算をサポートする準同型暗号スキームでは、複数の数字のセットの和を暗号化しながら計算することができる。例えば、ある暗号化Eに対して、f(E(x),...,E(x))=E(x+・・・+x)となるようなfが存在する。すなわち、暗号化された被加数から和の暗号化を計算することができ、さらに、これは復号鍵を知らなくても実行することができる。一部の準同型暗号スキームは乗算をサポートし得る。また、複数の演算、例えば加算および乗算算をサポートする準同型暗号スキームも存在する。そのようなスキームが実施形態で使用されてもよいが、1つの演算しか必要とされないので、このような複雑なタイプの準同型暗号は必要とされない。準同型暗号スキームの例は、(パディングされていない)RSA、ElGamal、Goldwasser−Micali、Benaloh、Paillier等を含む。例えば、数字は、素数を法とする整数の群から選択され得る。他の例は、何らかのジェネレータによって生成された楕円曲線上の群である。可逆数の群は合成数を法とする、等である。
図3は、文字/位置データの実施形態の例を概略的に示す。複数の位置410が示されている。認証文字列は、認証文字列の位置ごとに文字セット420から文字を選択することによって取得され得る。複数の位置410のうちのある位置と、文字セット420のうちの各文字との組み合わせごとに、文字/位置番号が選択される。n個の位置およびm個の可能な文字が存在する場合、通常はnm個の文字/位置番号が存在する。一部の組み合わせは省略され得るが、それらの文字/位置の組み合わせは認証文字列において不可能であるという結果がある。
一実施形態では、認証文字列は所定の長さであり、あるいは、認証文字列は、ある最大長よりも短く、少なくとも2つの任意の長さを有し得る。しかし、認証文字列が複数の位置における全ての位置を使用する必要はない。例えば、一部の位置を空けたままにすることで長さの異なる認証文字列がサポートされ得る。あるいは、1つの文字を空の位置としてエンコードすることにより、文字/位置データの量を減らすことができる。また、文字セットにパディング文字を含めることによって異なる長さの認証文字列がサポートされてもよい。認証文字列は最大で、認証文字列の末尾に続く文字列としてパディング文字を有することを要求され得る。図3は、位置と文字との1つの組み合わせ(参照番号430)を示す。
一実施形態では、文字/位置データは乱数である。乱数を使用すると、同じ検証番号を与える2つの異なる認証文字列が存在する可能性があるという小さなリスクが存在する。したがって、あるユーザを認証するときに受け入れられる認証文字列が複数ある可能性がある。しかし、これが発生するリスクは小さく、代替認証文字列は知られない。また、準同型暗号のための群を大きくする等してリスクを適宜小さくすることができる。
一実施形態では、文字/位置データのセット310は、任意のサブセットが準同型暗号によってサポートされる演算に対して異なる結果を生成するように選択される。例えば、準同型暗号が加算をサポートする場合、文字/位置データのセット310は、基数の累乗の倍数になるように選択され得る。基数は、文字セット内の文字の数として選択され得る。例えば、サポートされる演算が加算の場合、この選択により、サブセットごとに異なる総和が得られる。
例えば、準同型暗号が乗算をサポートする場合、文字/位置データのセット310は累乗として選択され、ここで、指数は基数の累乗の倍数である。基数は、文字セット内の文字の数として選択され得る。例えば、サポートされる演算が乗算の場合、この選択により、サブセットごとに異なる乗算が得られる。例えば、累乗はジェネレータの累乗であり得る。文字/位置データをジェネレータの累乗として選択することの追加の利点は、べき演算が追加の暗号化レイヤーとなることである。特に、たとえアンブラインドであっても(以下参照)、検証番号から認証文字列を取得することはより困難である。
一実施形態では、文字/位置番号は群のサイズよりも小さい。一実施形態では、文字/位置番号は、基数の(例えば、ジェネレータの)累乗であり、指数は群のサイズより小さいか、またはジェネレータによって生成される群のオーダーより小さい。一実施形態では、文字/位置番号または指数は、群のオーダーを文字セットのサイズで割ったものよりも小さい。
文字/位置データは公開されてもよいが、公開される必要はない。特に、暗号攻撃に対するセキュリティを強化するために、文字/位置データはクライアントデバイスにとって秘密にされてもよい。例えば、文字/位置データがランダムデータである場合、サーバとクライアントデバイスとの間で交換されるデータを分析する攻撃者は、観測されたデータがどの文字/位置データに対応するかを知らない。同じ文字/位置データセットが、セットアップフェーズ中および後続の各認証フェーズ中に使用される。認証をサポートするサーバデバイス100のために、文字/位置データはユーザごとにランダムに選択されてもよい。
認証文字列325は、文字/位置データのセット310のサブセット320を決定する。特に、認証文字列の複数の異なる位置において実際に使用されている文字に対応する文字/位置番号がサブセット320内に含まれる。サブセット320から、第1の検証番号340が導出される。
例えば、第1の検証番号は、準同型暗号によりサポートされる演算、例えば乗算を実行することにより、サブセット320から取得されてもよい。セキュリティを強化するために、この結果はブラインドされてもよい。例えば、サポートされている演算を実行することによって、例えばサブセット内の数字を乗算することによって、サブセット320から第1のアンブラインド検証番号330が取得され得る。次に、第1のアンブラインド検証番号330がブラインディング数340でブラインドされ得る。後者は(ブラインドされた)第1の検証番号340である。例えば、ブラインディング数を含めるためにサポートされている演算が使用され、例えば、第1のアンブラインド検証番号330にブラインディング数が加算または乗算され得る。ブラインディング数は任意選択的である。ブラインディング数がない場合、第1のアンブラインド検証番号330を取得した攻撃者は、辞書攻撃を実行して認証文字列を決定することができる。ブラインディング数は、アンブラインド検証番号330が有する認証文字列325に関する情報を減らし、例えば、場合によってはゼロに減らす。以下では、第1の認証番号がブラインドされていると想定するが、これは必須ではない。ブラインディング数は、例えば、乱数ジェネレータによって生成された乱数であってもよい。
なお、認証フェーズ中、サーバデバイスは認証文字列325、アンブラインド検証番号330、およびブラインディング数345のいずれも必要としないことに留意されたい。例えば、サーバデバイスは、セットアップフェーズ中に第1の検証番号340を計算し、その後、不要な情報を削除することができる。例えば、サーバデバイスは、例えばクライアントデバイスから、または信頼できる第三者から、セットアップフェーズ中に第1の検証番号340を受信し得る。認証フェーズにおいて、サーバデバイスは、文字/位置データ310、およびブラインドされている、またはされていない第1の検証番号を必要とする。文字/位置データ310がランダムでない場合、格納されるのではなく、必要なときに計算されてもよい。
サーバデバイス100は暗号化ユニット120を備える。暗号化ユニット120は、準同型暗号アルゴリズムに従って文字/位置データのセット310を暗号化するように構成される。暗号化は要素ごとに行われる。図3では、これは暗号化されたセット350として示されている。認証中、暗号化されたセット350がクライアントデバイス200に送信される。リプレイを回避するために、この暗号化の結果が認証ごとに異なることが望ましい。例えば、セット310が暗号化される度に異なる鍵を使用することによって、例えばランダムな鍵を選択することによって、これが保証され得る。例えば、確率的暗号スキームを選択することによってこれが保証され得る(または両方)。例えば、暗号スキームは、準同型で確率的な暗号スキームであるElGamal暗号であってもよい。
クライアントデバイス200は準同型計算ユニット240を備える。準同型計算ユニット240は、暗号化された文字/位置データセット350のサブセット360から、暗号化された第2の検証番号を計算するように構成される。暗号化されたセット350はサーバデバイス100から受信される。例えば、クライアントデバイス200のユーザは、認証文字列326の知識に基づいて、受信されたセット350のサブセット360を選択し得る。認証文字列325と認証文字列326が同じ場合、サブセット360はサブセット320と同じであるが、サブセット360は暗号化されている一方でサブセット320は暗号化されていない点で異なる。例えば、受信されたセット350は、どの暗号化された文字/位置番号がどの文字/位置に対応するかの指標を含み得る。例えば、セット350はソートされ得る。例えば、ユーザは、クライアントデバイス200のユーザインターフェース220、例えばタッチスクリーンのキーボード等で認証文字列を入力してサブセット360を選択することができる。
指標は機械可読であってもよいし、機械可読でなくてもよい。セット350内のどの暗号化された文字/位置番号がどの文字/位置に対応するかを機械可読な態様で示すことの欠点は、サーバデバイス100がそうでなくても、クライアントデバイス200がスクレイプ可能になるおそれがあることである。サーバ100における攻撃は通常、多くの認証文字列が危険にさらされることを意味するため、サーバ100での攻撃を回避することには価値がある。認証文字列はしばしば再利用されるため、これはセキュリティに大きな効果を奏し得る。以下、クライアントデバイス200での攻撃のリスクも減らすソリューションが提示される。
準同型計算ユニット240は、暗号化された文字/位置データセットのサブセットから、暗号化された第2の検証番号を準同型的に計算するように構成される。例えば、準同型計算ユニット240は、暗号化されたデータに対して準同型計算ユニット240が計算を実行するという違いを除いて、数字330を得るためにセット320に対して行われるのと同じ計算を実行し得る。第2の検証番号370は暗号化されているが、ブラインドはされていない。
ブラインディングが使用される場合、準同型計算ユニット240は、暗号化された第2の検証番号をブラインディング数346を用いてブラインドするように構成され得る。準同型計算ユニット240が(暗号化されたデータに対してではあるが)同じ計算およびブラインディングを実行し、かつ(暗号化されているが)同じバインディング数を使用する場合、第2の検証番号380は、暗号化されているが、第1の検証番号340と同じである。
クライアントデバイス200が暗号化されたブラインディング数を取得し得るいくつかのやり方が存在する。例えば、暗号化されたブラインディング数はセットアップフェーズ中に取得され、認証フェーズ中に使用される鍵ごとに暗号化され得る。暗号化されたブラインディング数はデバイス200のストレージ内に保存され得る。この場合、認証時に同じ鍵または限られた数の鍵が使用され得る。あるいは、暗号スキームは、公開/秘密鍵暗号スキームであってもよい。クライアントデバイス200は、セット310を暗号化してセット350を取得するためにも使用される公開鍵を受け取り得る。この場合、準同型暗号ユニット240は、ブラインディング数自体を暗号化し得る。ブラインディング数はユーザから取得されてもよいし、またはクライアントデバイス200のストレージ250から取得されてもよい。
アンブラインド数370であろうとブラインドされた数380であろうと、第2の検証番号はサーバデバイス100に送信される。サーバデバイス100は比較ユニット140を備える。比較ユニット140は、ユーザを認証するために、第1の検証番号と暗号化された第2の検証番号との間の対応を検証するように構成される。例えば、クライアントデバイス200がサーバデバイス100と同じ計算を(ただし、暗号化されたデータに対して)実行する場合、比較ユニット140は、第2の検証番号を解読して第1の検証番号と等しいか否か比較するように構成され得る。しかし、これは必ずしも必要ではなく、例えば、準同型暗号ユニット240は異なる数を計算するように構成されてもよく、例えば、準同型暗号ユニット240は、第1の検証番号の2倍を計算するように、またはそれに定数を加えるように構成されてもよい。より一般的には、vがアンブラインド検証番号である場合、準同型暗号ユニットはav、v+b、av+b等を計算し、ここでaおよびbは定数である。これらは、追加計算の前または後にブラインディング数によってブラインドされ得る。例えば、準同型暗号ユニット240はavyを計算し、比較ユニット140は、第2の検証番号が第1の検証番号のa倍であることを確認し得る。
上記で指摘したように、上記実施形態はサーバでのスクレイピングを防ぐが、クライアントデバイスでスクレイピングされるおそれがある。一実施形態では、以下のような追加の任意選択的な保護が提供される。一実施形態では、サーバデバイス100は順列ジェネレータ150および表示データユニット160を備える。順列ジェネレータ150は、文字セットの順列を生成するように構成される。順列ジェネレータ150は位置ごとに順列を生成してもよいが、位置よりも少ない順列が生成されてもよく、その場合はいくつかの順列が再利用される。例えば、位置ごとに同じ順列が使用されてもよい。好ましくは、少なくとも、認証ごとに新しい順列が生成される。サーバデバイス100は、文字/位置データおよび/または順列を生成するための乱数ジェネレータを備え得る。
表示データユニット160は、文字セット内の文字のための表示データを取得するように構成される。表示データは、機械可読ではない方法で文字セットの文字を示す。一実施形態では、表示データは、表示データストアから取得されるか、または外部の表示データ生成デバイスから取得される。また、表示データはサービスデバイス100上で生成されてもよい。表示データの生成自体は既知である。例えば、いわゆるキャプチャ(captcha)を生成するためのアルゴリズムが知られている。例えば、位置ごとに異なる表示データのセットが取得される。位置の数よりも少ない数の表示データセットが生成されてもよく、その場合、表示データの一部が再利用される。例えば、全ての位置のために同じ表示データが使用されてもよい。認証ごとに異なる表示データを使用する必要すらない。この場合、クライアントデバイスは、後続の認証で使用される表示データをキャッシュする。表示データは比較的大量のデータを消費するが、キャッシュによって削減される。表示データは画像であってもよく、例えば、各文字について画像があってもよい。表示データは動画クリップであってもよい。例えば、動画は、画像または動画クリップから人間は文字を認識するが、コンピュータは認識できない。少なくとも攻撃者に画像またはクリップの解析を要求することで、攻撃にエラーが生じやすくなり、攻撃の自動化が困難になり、またより大きなリソースが必要となる。したがって、選択された少数のユーザではなく多くのユーザに攻撃の対象を拡大することは攻撃者にとって困難になる。例えば、表示データはjpg、png等、またはmp4、avi等である。
表示データは、暗号化された文字/位置データのセット350とともにクライアントデバイス200に送信される。表示データは、正しい文字/位置データに関連付けられた態様で、順列された順番で送られてもよい。図4は、PINコードに使用される文字セットの順列500を示す。より大きな文字セットについても同様に適用することができる。順列500は、文字セット内の文字の表示データがクライアントデバイス200に送信される順序を示し得る。図4には表示データ510も示されている。表示データ510には、機械が読み取ることができない態様で、順列が示す順番に並べられた文字セット内の文字が示される。この場合、表示データは、ランダムなフォントを選択し、2つの黒色の線をランダムな向きで重ね合わせることで生成される。当該技術分野で知られている任意の他の非機械可読データの生成手法が代わりに使用され得る。表示データの下には、対応する暗号化された文字/文字に対応する位置データ520〜529が示されている。例えば、表示データ510が第1の位置のために生成される場合、文字/位置データ520〜529は、文字セット内のある文字と第1の位置との組み合わせに対する文字/位置データである。次の位置には新しい文字/位置データが使用され、場合によっては、さらに新しい順列および/または新しい表示セットが使用される。よりセキュリティの高い実施形態では、各位置が独自の文字/位置データ、表示セット、および順列を有する。
クライアントデバイス200は、サーバデバイスから、暗号化された文字/位置データに関連付けられた表示データを受信するように構成される。クライアントデバイス200はディスプレイ210を備える。ディスプレイ210は、各位置に受信された表示データを表示するように構成される。特定の位置のための表示データが表示された後、ユーザは、認証文字列内のその位置に対応する正しい文字を選択することができる。表示データが選択されると、関連付けられている暗号化された文字/位置もサブセット360のために選択される。例えば、認証文字列の最初の文字が9の場合、ユーザは表示データ511を選択し、暗号化された文字/位置データ521がサブセット361に追加される。したがって、ユーザは正しい文字/位置データを選択するが、攻撃者はそれが何を表しているのかわからない。文字/位置データは暗号化されており、機械で読み取ることができない表示画像に対応する。
例えば、クライアントデバイス200は以下の擬似コードに従って構成され得る。
認証文字列の各位置について、以下の動作が実行される:
当該位置のために受信された表示データを表示する
表示された表示データに対するユーザの選択を受け取る
位置および選択された文字のための暗号化された文字/位置データをサブセット360に追加する。
デバイス100および200の様々な実施形態は、様々な選択肢から選択され得る入力インターフェースを含み得る。例えば、入力インターフェースはキーボード、タッチスクリーン、マウス等であり得る。入力インターフェースを通じて表示データが選択され得る。
ストレージ(例えば、ストレージ110、250)は、例えば、フラッシュメモリ等の電子メモリや、ハードディスク等の磁気メモリとして実装されてもよい。ストレージ110または250は、ストレージを構成する複数の個別のメモリを備えてもよい。また、ストレージは、ローカルストレージまたは外部ストレージとして、例えばクラウドストレージとして実装されてもよい。後者の場合、デバイスは、例えばネットワーク接続を介して外部ストレージにおいて読み取りおよび書き込みを実行するための読み書きユニットを備える。例えば、ストレージの一部は安全なストレージで、残りは通常のストレージであってもよい。また、ストレージはRAM等の一時メモリを含み得る。
典型的には、デバイス100および200はそれぞれ、デバイス100および200に保存された適切なソフトウェアを実行するマイクロプロセッサ(別途図示せず)を備える。例えば、ソフトウェアは、対応するメモリ、例えばRAMのような揮発性メモリ、またはフラッシュのような不揮発性メモリ(別途図示せず)にダウンロードおよび/または保存されていてもよい。あるいは、デバイス100および200は、全体的にまたは部分的に、例えばフィールドプログラマブルゲートアレイ(FPGA)として、プログラマブルロジックに実装されてもよい。デバイス100および200は、全体的にまたは部分的に、いわゆる特定用途向け集積回路(ASIC)、すなわち、特定の用途向けにカスタマイズされた集積回路(IC)として実装されてもよい。例えば、回路は、例えばVerilog、VHDLなどのハードウェア記述言語を使用して、CMOSで実装されてもよい。
一実施形態では、デバイス100および200は1つまたは複数の回路を備え得る。これらの回路は、本明細書に記載される対応するユニットを実装する。回路は、プロセッサ回路および記憶回路であってもよく、プロセッサ回路は、記憶回路において電子的に表現される命令を実行する。
プロセッサ回路は分散された形で、例えば複数のサブプロセッサ回路として実装されてもよい。ストレージは、複数の分散サブストレージに分散されてもよい。メモリの一部または全部が電子メモリや磁気メモリ等であり得る。例えば、ストレージは、揮発性部分および不揮発性部分を有し得る。ストレージの一部が読み取り専用であってもよい。
図5は、サーバ方法500およびクライアント方法600の実施形態の例を概略的に示す。
サーバ方法600は、認証文字列へのアクセスを有する、クライアントデバイス(例えば、クライアントデバイス200)からのユーザを認証するように構成される。認証文字列は複数の位置に複数の文字を有し、各文字は文字セットから選択される。サーバ方法600は、
− 文字/位置データのセットのサブセットから計算された第1の検証番号を格納するステップ(610)であって、前記サブセットは認証文字列によって示され、前記文字/位置データのセットは、前記文字セットからの文字と、前記認証文字列内の位置との組み合わせに対する数字を含む、ステップ(610)と、
− 準同型暗号アルゴリズムに従って前記文字/位置データのセットを暗号化し、暗号化された前記セットをクライアントデバイスに送信するステップ(620)と、
− 前記クライアントデバイスから第2の検証番号を受信するステップ(630)であって、前記第2の検証番号は、暗号化された前記セットのサブセットから、暗号化された第2の検証番号を準同型的に計算することによって計算され、前記サブセットは前記認証文字列によって示される、ステップ(630)と、
− ユーザを認証するために、前記第1の検証番号と暗号化された前記第2の検証番号との間の対応を検証するステップ(640)とを含む。
クライアント方法700は、サーバデバイス(例えば、サーバデバイス100)に対してユーザを認証するように構成される。ユーザは認証文字列へのアクセスを有する。認証文字列は複数の位置に複数の文字を有し、各文字は文字セットから選択される。クライアント方法700は、
− 準同型暗号アルゴリズムに従って暗号化された文字/位置データのセットを受け取るステップ(710)であって、暗号化された前記文字/位置データのセットは、文字セットからの文字と、認証文字列内の位置との組み合わせに対する数字を含む、ステップ(710)と、
− 暗号化された前記文字/位置データのセットのサブセットから、暗号化された第2の検証番号を準同型的に計算するステップ(720)であって、前記サブセットは前記認証文字列によって示される、ステップ(720)と、
− 暗号化された前記第2の検証番号をサーバデバイスに送信するステップ(730)とを含む。
方法600および700は追加動作を含み得る。特に、これらの方法は、文字セットの表示データを取得、表示、および選択するステップを含み得る。両方法間の依存関係が破線の矢印で示されている。
当業者には明らかであるように、これらの方法を実行する多くの異なる態様が存在する。例えば、ステップの順序を変更したり、いくつかのステップを並行して実行したりすることができる。さらに、ステップ間に他の方法ステップを挿入することができる。挿入されるステップは、本明細書に記載されるような方法の改良を表し、または方法と無関係であってもよい。例えば、いくつかのステップは、少なくとも部分的に並列に実行されてもよい。さらに、あるステップは、次のステップが開始される前に完全に終了していなくてもよい。
本発明に係る方法は、プロセッサシステムに方法600または700を実行させるための命令を含むソフトウェアを使用して実行され得る。ソフトウェアは、システムの特定のサブエンティティによって取られるステップのみを含んでもよい。ソフトウェアは、ハードディスク、フロッピー、メモリ、光ディスクなどの適切な記憶媒体に保存されてもよい。ソフトウェアは、有線または無線を介する信号として、またはインターネットなどのデータネットワークを使用して供給されてもよい。ソフトウェアは、サーバ上でダウンロードおよび/またはリモート使用可能にされてもよい。本発明に係る方法は、方法を実行するためにプログラマブルロジック、例えばフィールドプログラマブルゲートアレイ(FPGA)を構成するように構成されたビットストリームを使用して実行されてもよい。
本発明は、コンピュータプログラム、特に、本発明を実施するように適合された、キャリア上のまたはキャリア内のコンピュータプログラムにも及ぶことが理解されよう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、部分的にコンパイルされた形式のようなオブジェクトコード、または本発明に係る方法の実施のための使用に適した任意の他の形式などの形式を取り得る。コンピュータプログラム製品に関する実施形態は、上記方法のうちの少なくとも1つの方法の処理ステップに対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分され、かつ/または静的に若しくは動的にリンクされ得る1つまたは複数のファイルに保存され得る。コンピュータプログラム製品に関する他の実施形態は、少なくとも1つの上記システムおよび/または製品の手段に対応するコンピュータ実行可能命令を含む。
上記したように、ユーザ名およびパスワードに基づく認証機構はメモリスクレイピング攻撃に対して脆弱である。メモリスクレイピング攻撃は2つの脅威を示唆する。1つはユーザのなりすましであり、2つ目は機密個人情報の損失である。既知のソリューションは両方の脅威に対処していない。さらに、既知のサーバは多くの機密パスワードを有しているため、魅力的なターゲットである。以下、より数学的な言語を使用しながら、さらなるおよび/またはより詳細な実施形態を説明する。
セキュアキーボードを想定されたい。これは、メモリスクレイピングによる資格情報の損失に対する保護を提供する。セキュアキーボードは、各行が0〜9の数字を表すテーブルのシーケンス{T}として見なすことができる。このようなテーブルは2つの列を有する。1つの列は、アプリが数字を表示するためのデータ、例えばωを有し、2つ目の列は何らかの任意の値を有する。Tは、テーブルTの行iの値を押した結果としてのメモリ内の値、すなわち、テーブルTの行iの第2の列の値を表す。各行が表す実際の値を隠すために、行は並べ替えられる。ユーザが数字を入力する度に新しいテーブルがメモリに読み込まれ、これにより、リンク情報、例えば入力された2つの数字が同じであるか否か等が確実に除去される。
以下の認証スキームはリプレイ攻撃に対する保護を提供するが、準同型暗号は使用しない。サーバは、ユーザ資格情報が安全に保管されているデータベースを有すると想定する。これは、データベース自体がユーザの(完全な)資格情報をリークしないことを意味する。
1.ユーザが自分のユーザ名を入力し、ユーザ名(の派生物)がサーバに送信される。
2.サーバはユーザが登録されているか否かを確認し、登録されている場合、以下の動作を実行する:
(a)各列内の全てのエントリが一意になるように、10×nのランダム行列Rを生成する。
(b)セット{0,1,2,...,9}に対して作用するn個のランダム順列πを生成する。
(c)n組の表示データ
Figure 0006849862

のセットを生成する。
(d)i=0,...,n−1について、テーブルTが行jに有するペア
Figure 0006849862

を定める。
(e)たった今ランダムに選択されたキーボードK=T,...,Tn−1で返信する。
3.ユーザにKが提示され、ユーザがPIN=p,...,pn−1を入力した結果として文字列
Figure 0006849862

が生成され、サーバに送り返される。
4.サーバは、ユーザが自身のPINのi桁目(p)をテーブルTの列jにおいて選択するという事実に基づき、関係
Figure 0006849862

を利用して、SおよびRからPINを再構築する。したがって、π(j)は
Figure 0006849862

を満たし、よって
Figure 0006849862

が成立すると結論付けられる。
5.最後に、サーバは自身のデータベースを使用してPINを検証し、生成された全てのデータをメモリから削除する。
サーバはフレッシュかつランダムなキーボードを生成するので、Sはサーバによって一度しか受け入れられない。したがって、攻撃者はSを再生することでユーザになりすますことができない。さらに、このランダム性により、ユーザのデバイス上のアクティブなメモリスクレイパーが、ユーザの入力したPINに関する有意な情報を経時的に収集することができないことが保証される。
登録確認を除去して、サーバ側の検証部分を、データベースにユーザ資格情報を安全に格納することに置き換えるだけで、上記手順を、ユーザの登録をメモリスクレイピングから保護するために使用することもできる。
サーバ上のメモリスクレイパーが機密パスワードまたはPINを取得することを防ぐために、以下が提案される。
G=<g>を、大きな素数位数pのgによって生成された群であるとする。サーバは、ユーザ名Uおよびパスワード派生物
Figure 0006849862

を含むデータベースを有すると仮定し、
ここで、PINはユーザのPINであり、yはGの未知の元である。P(U)は、情報理論的隠蔽(information theoretically hiding)であるPedersen Commitmentであるので、yが未知の場合、P(U)はPINに関する情報を有さない[1]。
Figure 0006849862

は、秘密鍵kを用いたxのEl−Gamal暗号化を表すものとする[2]。したがって、
Figure 0006849862

であり、
ここで、rは、pを法とする何らかの一様な乱数値(uniform random value)であり、またh=gである。
ユーザUは、P(U)において使用されるyを保存していたと仮定する。
認証は次のように行われる:
1.ユーザが自分のユーザ名を入力し、ユーザ名(の派生物)がサーバに送信される。
2.サーバはユーザが登録されているか否かを確認し、登録されている場合、以下の動作を実行する:
(a)ランダムな秘密鍵
Figure 0006849862

を生成する。
(b)10×nのランダム行列Rを生成し、ここで
Figure 0006849862

である。
(c)セット{0,1,2,...,9}に対して作用するn個のランダム順列πを生成する。
(d)n組の表示データ
Figure 0006849862

のセットを生成する。
(e)i=0,...,n−1について、テーブルTが行jに有するペア
Figure 0006849862

を定める。
(f)たった今ランダムに選択されたキーボードK=T,...,Tn−1、および公開鍵h=gで返信する。
3.ユーザにKが提示され、ユーザがPIN=p,...,pn−1を入力した結果として文字列
Figure 0006849862

が生成される。
4.ユーザはメモリからyを取り出し、公開鍵hを使用してランダムな暗号化
Figure 0006849862

を生成する。
5.ユーザが
Figure 0006849862

で返信する。
6.サーバはSを復号し、P(U)と合致するか否かを確認する。
7.最後に、生成された全てのデータをメモリから削除する。
セット{0,1,2,...,9}のための10×nの行列の代わりに別の文字セットが使用されてもよい。
正確さ:なお、デジタル文字列PIN=p,...,pn−1は以下の整数によって表され得る。
Figure 0006849862

さらに、
Figure 0006849862

から、El−Gamalの準同型写像は下式を示唆し、
Figure 0006849862

よって、
Figure 0006849862
登録:登録は次のように行われる:
1.ユーザが自分のユーザ名を入力し、ユーザ名(の派生物)がサーバに送信される。
2.サーバはユーザが登録されて「いない」ことを確認し、登録されていない場合、以下の動作を実行する:
(a)ランダムな秘密鍵
Figure 0006849862

を生成する。
(b)10×nのランダム行列Rを生成し、ここで、
Figure 0006849862

である。
(c)セット{0,1,2,...,9}に対して作用するn個のランダム順列πを生成する。
(d)n組の表示データ
Figure 0006849862

のセットを生成する。
(e)i=0,...,n−1について、テーブルTが行jに有するペア
Figure 0006849862

を定める。
(f)たった今ランダムに選択されたキーボードK=T,...,Tn−1、および公開鍵h=gで返信する。
3.ユーザにKが提示され、ユーザが自身の選択されたPIN=p,...,pn−1を入力した結果として文字列
Figure 0006849862

が生成される。
4.ユーザはランダムなyを生成し、また、公開鍵hを使用してランダムな暗号化
Figure 0006849862

を生成する。
5.ユーザが
Figure 0006849862

で返信する。
6.サーバはSをP(U)に復号し、ユーザUをP(U)とともに保存する。
7.最後に、生成された残っている全てのデータをメモリから削除する。
サーバゼロ知識:サーバはP(U)のランダム化された暗号化、およびP(U)自体しか見ない。El−Gamalのセマンティックセキュリティ(semantic security)から[3]、yのランダム化された暗号化にキーボードの結果を掛けることにより、ユーザがキーボード上で行った全ての選択がサーバに対しても隠される。これは暗号化の「ブラインディング」とも知られている。さらに、Pedersen Commitmentにより、P(U)を使用してPINを抽出することができないことが保証される。
注:楕円曲線としての両方の素体が、上記実施形態を実施するための適切な群を定義するために使用され得る。
参考文献
[1]Pedersen.:“Non−interactive and information−theoretic secure verifiable secret sharing”,Advances in Cryptology CRYPTO’91 Springer
[2]T.ElGamal.:“A public key cryptosystem and a signature scheme based on discrete logarithms”,Proceedings of CRYPTO 84 on Advances in Cryptology,pp.10〜18,New York,NY,USA,1985。Springer−Verlag New York,Inc.。
[3]Y.TsiounisおよびM.Yung.:“On the security of ElGamal based encryption”,H.ImaiおよびY.Zheng,エディター,Public Key Cryptography,Lecture Notes in Computer Scienceのvolume 1431,pp.117〜134。Springer,1998。
図6aは、一実施形態に係る、コンピュータプログラム1020を含む書き込み可能部分1010を有するコンピュータ可読媒体1000を示し、コンピュータプログラム1020は、プロセッサシステムにクライアント方法またはサーバ方法を実行させるための命令を含む。コンピュータプログラム1020は、物理的なマークとして、またはコンピュータ可読媒体1000の磁化によって、コンピュータ可読媒体1000上に具現化され得る。しかしながら、任意の他の適切な実施形態もまた考えられる。さらに、ここではコンピュータ可読媒体1000が光ディスクとして示されているが、コンピュータ可読媒体1000は、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどの任意の適切なコンピュータ可読媒体であってもよく、また、記録不能または記録可能であってもよい。コンピュータプログラム1020は、プロセッサシステムに、実施形態に係るクライアント方法またはサーバ方法を実行させるための命令を含む。
図6bは、一実施形態に係るプロセッサシステム1140の概略図である。プロセッサシステムは、1つ以上の集積回路1110を備える。1つ以上の集積回路1110のアーキテクチャが図6bに概略的に示されている。回路1110は、一実施形態に係る方法を実行し、かつ/または、そのモジュール若しくはユニットを実装するためにコンピュータプログラムコンポーネントを実行するための処理ユニット1120(例えばCPUなど)を備える。回路1110は、プログラミングコードやデータ等を記憶するためのメモリ1122を含む。プログラミングコードは、プロセッサシステムをクライアントデバイスまたはサーバデバイスの実施形態として構成する。
メモリ1122の一部が読み取り専用であってもよい。回路1110は、通信要素1126、例えばアンテナ若しくはコネクタ、または両方などを備え得る。回路1110は、本方法で定義された処理の一部または全部を実行するための専用集積回路1124を備え得る。プロセッサ1120、メモリ1122、専用IC1124、および通信要素1126は相互接続1130、例えばバスを介して相互に接続され得る。プロセッサシステム1110は、アンテナおよび/またはコネクタを用いた接触および/または非接触通信のために構成され得る。
例えば、一実施形態では、クライアントデバイス、サーバデバイス、鍵生成デバイス、および/または署名検証デバイスはプロセッサ回路およびメモリ回路を備え、プロセッサは、メモリ回路内に格納されたソフトウェアを実行するように構成される。例えば、プロセッサ回路は、Intel Core i7プロセッサやARM Cortex−R8等であり得る。一実施形態では、プロセッサ回路はARM Cortex M0であり得る。メモリ回路はROM回路、または不揮発性メモリ、例えばフラッシュメモリであってもよい。メモリ回路は揮発性メモリ、例えばSRAMメモリであってもよい。後者の場合、デバイスは、ソフトウェアを提供するように構成された不揮発性ソフトウェアインターフェース(例えば、ハードドライブ)やネットワークインターフェース等を備え得る。
上記実施形態は本発明を限定するものではなく、当業者は多くの代替的実施形態を設計することができることに留意されたい。
特許請求の範囲において、括弧間に置かれた参照符号は、請求項を限定するものとして解釈されるべきではない。「含む」という動詞およびその活用形の使用は、請求項に記載された要素またはステップ以外の要素またはステップの存在を排除するものではない。単数形の要素は、複数のかかる要素の存在を排除するものではない。本発明は、複数の別々の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実施され得る。いくつかの手段を列挙する装置クレームにおいて、これらの手段のうちのいくつかは、同一のハードウェアアイテムによって具現化されてもよい。複数の手段が互いに異なる従属請求項に記載されているからといって、これらの手段の組み合わせが好適に使用することができないとは限らない。
特許請求の範囲において、括弧内の参照符号は、例示的実施形態の図面内の参照符号または実施形態の数式を指し、したがって、請求項の明瞭さを高める。これらの参照符号は、請求項を限定するものとして解釈されるべきではない。

Claims (16)

  1. クライアントデバイスからのユーザを認証するためのサーバデバイスであって、前記ユーザは認証文字列へのアクセスを有し、前記認証文字列は複数の位置に複数の文字を有し、前記文字は文字セットから選択され、前記サーバデバイスは、
    文字/位置データのセットのサブセットから計算された第1の検証番号を格納するストレージであって、前記サブセットは前記認証文字列によって示され、前記文字/位置データのセットは、前記文字セットからの文字と、認証文字列内の位置との組み合わせに対する数字を含む、ストレージと、
    プロセッサ回路とを備え、前記プロセッサ回路は、
    準同型暗号アルゴリズムに従って前記文字/位置データのセットを暗号化して、暗号化された前記セットを前記クライアントデバイスに送信し、
    前記クライアントデバイスから第2の検証番号を受信し、ここで、前記第2の検証番号は、暗号化された前記セットのサブセットから、暗号化された第2の検証番号を準同型的に計算することによって計算され、前記サブセットは前記認証文字列によって示され、
    前記ユーザを認証するために、前記第1の検証番号と暗号化された前記第2の検証番号との間の対応を検証する、
    サーバデバイス。
  2. 前記プロセッサ回路は、
    前記文字セットの順列を生成し、
    前記文字セット内の前記文字のための表示データを取得し、前記表示データを、前記文字に対応する暗号化された文字/位置データに関連付け、
    暗号化された前記文字/位置データに関連付けられた前記表示データを、生成された前記順列に従った順番で前記クライアントデバイスに送信する、
    請求項1に記載のサーバデバイス。
  3. 全ての位置について同じ表示データが使用されるか、または
    少なくとも2つの異なる位置について異なる表示データが生成される、
    請求項1に記載のサーバデバイス。
  4. 後の認証のために前記クライアントデバイスに表示データが送信されず、前記クライアントデバイスはキャッシュされた表示データを使用する、
    請求項2に記載のサーバデバイス。
  5. 前記第1の検証番号はブラインディング数によってブラインドされ、前記第2の検証番号を計算することは、前記ブラインディング数を用いてブラインドすることを含む、
    請求項1から4のいずれか一項に記載のサーバデバイス。
  6. 前記文字/位置データの少なくとも一部は乱数である、
    請求項1から5のいずれか一項に記載のサーバデバイス。
  7. 前記文字/位置データの少なくとも一部は、基数の累乗の倍数として計算され、
    少なくとも一部の文字/位置データは累乗として計算され、ここで、指数は基数の累乗の倍数である、
    請求項1から6のいずれか一項に記載のサーバデバイス。
  8. 対応を検証することは、前記第2の検証番号を復号することを含む、
    請求項1から7のいずれか一項に記載のサーバデバイス。
  9. 前記準同型暗号アルゴリズムは、確率的準同型暗号アルゴリズムである、
    請求項1から8のいずれか一項に記載のサーバデバイス。
  10. 前記検証番号はPedersen Commitmentであり、及び/または、前記暗号化はElGamal暗号化である、
    請求項1から9のいずれか一項に記載のサーバデバイス。
  11. サーバデバイスに対してユーザを認証するためのクライアントデバイスであって、前記ユーザは認証文字列へのアクセスを有し、前記認証文字列は複数の位置に複数の文字を有し、前記文字は文字セットから選択され、前記クライアントデバイスは、
    プロセッサ回路を備え、前記プロセッサ回路は、
    準同型暗号アルゴリズムに従って暗号化された文字/位置データのセットを受け取り、ここで、暗号化された前記文字/位置データのセットは、前記文字セットからの文字と、認証文字列内の位置との組み合わせに対する数字を含み、
    暗号化された前記文字/位置データのセットのサブセットから、暗号化された第2の検証番号を準同型的に計算し、ここで、前記サブセットは前記認証文字列によって示され、
    暗号化された前記第2の検証番号を前記サーバデバイスに送信する、
    クライアントデバイス。
  12. 前記プロセッサ回路は、
    前記サーバデバイスから、暗号化された前記文字/位置データに関連付けられた表示データを受信し、
    前記認証文字列の位置ごとに、受信された表示データを表示し、
    表示された前記表示データから表示データを選択するユーザ入力を受け取り、
    選択された前記表示データに対応する前記サブセットを選択する、
    請求項11に記載のクライアントデバイス。
  13. 前記クライアントデバイスは、ブラインディング数を格納するためのストレージを含み、前記プロセッサ回路は、暗号化された前記第2の検証番号を前記ブラインディング数でブラインドする、
    請求項11または12に記載のクライアントデバイス。
  14. クライアントデバイスからのユーザを認証するためのサーバ方法であって、前記ユーザは認証文字列へのアクセスを有し、前記認証文字列は複数の位置に複数の文字を有し、前記文字は文字セットから選択され、前記サーバ方法は、
    文字/位置データのセットのサブセットから計算された第1の検証番号を格納するステップであって、前記サブセットは前記認証文字列によって示され、前記文字/位置データのセットは、前記文字セットからの文字と、認証文字列内の位置との組み合わせに対する数字を含む、ステップと、
    準同型暗号アルゴリズムに従って前記文字/位置データのセットを暗号化し、暗号化された前記セットを前記クライアントデバイスに送信するステップと、
    前記クライアントデバイスから第2の検証番号を受信するステップであって、前記第2の検証番号は、暗号化された前記セットのサブセットから、暗号化された第2の検証番号を準同型的に計算することによって計算され、前記サブセットは前記認証文字列によって示される、ステップと、
    前記ユーザを認証するために、前記第1の検証番号と暗号化された前記第2の検証番号との間の対応を検証するステップとを含む、
    方法。
  15. サーバデバイスに対してユーザを認証するためのクライアント方法であって、前記ユーザは認証文字列へのアクセスを有し、前記認証文字列は複数の位置に複数の文字を有し、前記文字は文字セットから選択され、前記クライアント方法は、
    準同型暗号アルゴリズムに従って暗号化された文字/位置データのセットを受け取るステップであって、暗号化された前記文字/位置データのセットは、前記文字セットからの文字と、認証文字列内の位置との組み合わせに対する数字を含む、ステップと、
    暗号化された前記文字/位置データのセットのサブセットから、暗号化された第2の検証番号を準同型的に計算するステップであって、前記サブセットは前記認証文字列によって示される、ステップと、
    暗号化された前記第2の検証番号を前記サーバデバイスに送信するステップとを含む、
    方法。
  16. 請求項14または15に記載の方法をプロセッサシステムに実行させるための命令を表す一時的または非一時的データを含む、
    コンピュータ可読媒体。
JP2020533217A 2017-12-19 2018-12-06 パスワード認証のための準同型暗号 Active JP6849862B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17208570.6 2017-12-19
EP17208570.6A EP3503456A1 (en) 2017-12-19 2017-12-19 Homomorphic encryption for password authentication
PCT/EP2018/083710 WO2019121026A1 (en) 2017-12-19 2018-12-06 Homomorphic encryption for password authentication

Publications (2)

Publication Number Publication Date
JP2021507615A JP2021507615A (ja) 2021-02-22
JP6849862B2 true JP6849862B2 (ja) 2021-03-31

Family

ID=60674027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020533217A Active JP6849862B2 (ja) 2017-12-19 2018-12-06 パスワード認証のための準同型暗号

Country Status (5)

Country Link
US (1) US11310049B2 (ja)
EP (2) EP3503456A1 (ja)
JP (1) JP6849862B2 (ja)
CN (1) CN111512590B (ja)
WO (1) WO2019121026A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953960B (zh) * 2021-03-10 2023-02-03 东软集团股份有限公司 一种区块链访问的身份认证方法、装置及设备
US11558374B2 (en) * 2021-03-31 2023-01-17 Lenovo (Singapore) Pte. Ltd. Systems, apparatus, and methods for verifying a password utilizing commitments
CN113316146B (zh) * 2021-05-21 2022-07-12 中国联合网络通信集团有限公司 提供网络接入服务的方法、接入点、终端
CN113746847B (zh) * 2021-09-06 2023-05-05 北京天融信网络安全技术有限公司 一种通信方法、装置、存储介质及电子设备
CN116150795B (zh) * 2023-04-17 2023-07-14 粤港澳大湾区数字经济研究院(福田) 基于同态加密的数据处理方法、***及相关设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7735121B2 (en) 2003-01-07 2010-06-08 Masih Madani Virtual pad
KR101192875B1 (ko) * 2004-05-19 2012-10-18 프랑스 뗄레꽁 리스트 서명을 생성하기 위한 방법과 시스템
US9002750B1 (en) * 2005-12-09 2015-04-07 Citicorp Credit Services, Inc. (Usa) Methods and systems for secure user authentication
US8379854B2 (en) * 2007-10-09 2013-02-19 Alcatel Lucent Secure wireless communication
JP5276658B2 (ja) * 2009-01-09 2013-08-28 秀治 小川 認証システム
KR101743504B1 (ko) * 2011-01-14 2017-06-05 삼성전자주식회사 전자 기기의 비밀 번호 입력 방법 및 장치
JP2014209677A (ja) * 2013-04-16 2014-11-06 株式会社東芝 データ管理装置、電力使用量計算システム、データ管理方法、及びデータ管理プログラム
SG2013093059A (en) * 2013-12-12 2015-07-30 Vorsz One Pte Ltd Method and system for encryption and/or decryption
US9646306B1 (en) * 2014-02-11 2017-05-09 Square, Inc. Splicing resistant homomorphic passcode encryption
US10719828B2 (en) * 2014-02-11 2020-07-21 Square, Inc. Homomorphic passcode encryption
US10693657B2 (en) * 2014-03-07 2020-06-23 Nokia Technologies Oy Method and apparatus for verifying processed data
JP5568696B1 (ja) * 2014-03-07 2014-08-06 株式会社 ディー・エヌ・エー パスワード管理システム及びパスワード管理システム用プログラム
GB2526367A (en) * 2014-05-23 2015-11-25 Ibm Password-based authentication
CN105337736B (zh) * 2014-06-30 2018-10-30 华为技术有限公司 全同态消息认证方法、装置及***
US9842205B2 (en) * 2015-03-30 2017-12-12 At&T Intellectual Property I, L.P. Time-varying passwords for user authentication
JP6481487B2 (ja) * 2015-04-30 2019-03-13 富士通コネクテッドテクノロジーズ株式会社 情報処理装置、入力制御プログラム、及び入力制御方法
US9565020B1 (en) * 2016-02-02 2017-02-07 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
US10250591B2 (en) * 2016-02-12 2019-04-02 International Business Machines Corporation Password-based authentication
US10250576B2 (en) * 2017-02-08 2019-04-02 International Business Machines Corporation Communication of messages over networks

Also Published As

Publication number Publication date
US11310049B2 (en) 2022-04-19
RU2020123994A (ru) 2022-01-20
EP3503456A1 (en) 2019-06-26
CN111512590B (zh) 2024-02-13
CN111512590A (zh) 2020-08-07
EP3729713A1 (en) 2020-10-28
EP3729713B1 (en) 2021-09-29
JP2021507615A (ja) 2021-02-22
RU2020123994A3 (ja) 2022-01-20
US20210091955A1 (en) 2021-03-25
WO2019121026A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
JP6849862B2 (ja) パスワード認証のための準同型暗号
Limbasiya et al. Advanced formal authentication protocol using smart cards for network applicants
US20190356666A1 (en) Generating Cryptographic Function Parameters From Compact Source Code
CN100432889C (zh) 提供断开鉴别的***和方法
CN109756338A (zh) 物理不可克隆功能的远程重新注册
Hao et al. Deleting secret data with public verifiability
CN109075976A (zh) 取决于密钥认证的证书发布
US11316665B2 (en) Generating cryptographic function parameters based on an observed astronomical event
Gkaniatsou et al. Low-level attacks in bitcoin wallets
US10079675B2 (en) Generating cryptographic function parameters from a puzzle
Hussein et al. A survey of cryptography cloud storage techniques
CN116318617B (zh) 基于rfid和区块链的医疗救援物资慈善捐助方法
McCarney Password managers: Comparative evaluation, design, implementation and empirical analysis
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
Russon Threat for the secure remote password protocol and a leak in apple’s cryptographic library
CN107070648A (zh) 一种密钥保护方法及pki***
RU2774807C2 (ru) Гомоморфное шифрование для проверки подлинности с помощью пароля
Chaudhary et al. Interoperable identity management protocol for multi-cloud platform
Modugula A Hybrid approach for Augmenting password security using Argon2i hashing and AES Scheme.
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
WO2024014017A1 (ja) メッセージ提示システム、提示用装置、及びメッセージ提示方法
Haunts et al. Final Summary
Radke Security ceremonies: including humans in cryptographic protocols
JP2023125727A (ja) テンプレート管理システム及びテンプレート管理方法
KR20240098603A (ko) 인증 블록을 이용한 공개키 관리를 수행할 수 있는 인증 서버 및 그 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200617

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200617

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210304

R150 Certificate of patent or registration of utility model

Ref document number: 6849862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250