JP6973385B2 - 認証システム、認証方法およびプログラム - Google Patents
認証システム、認証方法およびプログラム Download PDFInfo
- Publication number
- JP6973385B2 JP6973385B2 JP2018517093A JP2018517093A JP6973385B2 JP 6973385 B2 JP6973385 B2 JP 6973385B2 JP 2018517093 A JP2018517093 A JP 2018517093A JP 2018517093 A JP2018517093 A JP 2018517093A JP 6973385 B2 JP6973385 B2 JP 6973385B2
- Authority
- JP
- Japan
- Prior art keywords
- user
- authentication
- share
- verification
- side auxiliary
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Collating Specific Patterns (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、日本国特許出願:特願2016−097422号(2016年 5月13日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。本発明は、認証システム、認証方法およびプログラムに関し、特にユーザおよびユーザ装置をそれぞれ認証するユーザ認証および機器認証を行う認証システム、認証方法およびプログラムに関する。
こうした問題を回避する方法は、いくつか提案されているものの、いずれも決定的な解決策にはなっていない。例えば、パスワード認証においてこの問題を回避する古典的な方法として、認証サーバ側にユーザのパスワードPそのものではなく、パスワードPのハッシュ値h=Hash(P)を保管するというものがある。これにより、不正者が認証サーバ側のデータを読むことで直接認証情報Pを手に入れることが不可能となる。
認証に関して既にいくつかの発明が提案されている。これらの既存発明について述べるための準備として、既存の暗号技術である秘密分散、マルチパーティ計算(MPC:Multi-Party Computation)、および、依頼計算について述べる。
秘密分散とは、秘密のデータを複数の装置で「分散シェア」することで、データの秘匿性を高める技術である。
不正者に乗っ取られた装置の集合が秘密分散安全性条件を満たしている限り、不正者は秘密のデータKの情報を一切知ることができない。
不正者に乗っ取られた装置の集合が秘密分散安全性条件を満たしている限り、不正者に乗っ取られていない装置のシェアを復元装置に送ることで復元装置は復元手段により秘密のデータKを復元することができる。
秘密分散の代表的な方法の1つとして、Shamir秘密分散がある(非特許文献10)。
Shamir秘密分散では、値t≦Mを1つ固定し、t+1個以上の元を持つ有限体Fを1つ固定し、さらにFの元a[0],...,a[M]を固定する。
不正者に乗っ取られた装置の台数がt-1台以下であれば、不正者は秘密Kの情報を一切得ることができない。
不正者に乗っ取られた装置の台数がt-1台以下であれば、不正者に乗っ取られていない装置のシェアを復元装置に送ることで復元装置は復元手段により秘密Kを復元することができる。
認証の安全性を高める方式は、他にもいくつか提案されている。これらを説明するために、これらの要素技術であるマルチパーティ計算(MPC:Multi-Party Computation)を説明する。
既存のMPCの多くでは、秘密分散をサブルーチンとして用いる。このようなMPCでは、上述したMPC装置以外に、秘密分散の「分散装置」と「復元装置」がある。MPC装置は、秘密分散のシェア保有装置に対応する。なお、分散装置と復元装置が同一である場合、分散装置とMPC装置が同一である場合、または、復元装置とMPC装置が同一である場合も考えられる。ただし、以下では、分散装置、MPC装置および復元装置が別個の装置である場合について説明する。それ以外の場合も、同様である。
非特許文献5〜7では、MPCの計算に必要となるデータの一部を事前計算しておくことでMPCの効率化を図る。
秘密分散を利用した既存のMPCには、不正者に乗っ取られたMPC装置が不正を働くことで秘密の情報を盗んだり、計算結果を偽ったりできないような仕組みを持っているものが多い。
入力部
通信部
計算部
MPC実行部
正当性証明部
正当性証明検証部
出力部
j=1,...,Mに対し、j番目のMPC装置は、分散装置から秘密x[1],...,x[N]のシェアs[1,j],...,s[N,j]を入力部を用いて受け取る。
関数fの回路図を構成する各素子Rに対し、素子番号が小さいものから順に以下を実行する。
各MPC装置は素子R、素子Rの入力端子に対応するシェア、および、事前計算データ(もしあれば)をMPC実行部に入力する。そして、通信部を用いることで相互通信しながらMPC実行部の処理を実行する。
各MPC装置は素子R、素子Rの入力端子に対応するシェア、事前計算データ(もしあれば)、および、MPC実行部の実行に使用した乱数(もしあれば)を入力として正当性証明部の処理を実行することで正当性証明を作成し、他のMPC装置に正当性証明を送信する。
各MPC装置は素子Rと正当性証明を正当性証明検証部に入力することで、他のMPC装置の正当性証明の正当性を検証する。
関数fの回路図の出力端子に対応するシェアを、出力部を用いて出力する。
出力されたシェアは、復元装置に送られる。復元装置は、送られてきたシェアからMPCの出力を復元する。
ZKIP方式とMAC方式には、以下の問題点がある。
実行速度が遅く、サーバ同士、ユーザ・サーバ間双方の通信量が多い。
認証システムにおいては、数多くのユーザがシステムを利用する。したがって、これらのユーザの処理をすべて実行するために、システムには高い性能が求められる。既存方式は、実行速度や通信量の点で難がある。したがって、認証システムに求められる性能を出すためには、システムで用いるサーバを高性能なものにしたり、回線を高速度のものにしたりすることが求められる。このとき、システム構築に必要となる費用が嵩むという問題が生じる。
ユーザ端末として、スマートフォンのような計算能力および通信性能が低い端末が用いられることが想定される。したがって、ZKIP方式またはMAC方式のように高い実行速度と多くの通信量を必要とする方式は、利用できない可能性もある。
依頼計算(Secure Function Evaluation)とは、2つの装置を利用した方式である。具体的には、1つ目の装置が関数f(の回路図)を保持し、2つ目の装置が秘密の情報x[1],....,x[N]を保持する状態からスタートして、1つ目の装置が関数値f(x[1],...,x[N])を得ることを目標に行われる(非特許文献8)。
入力部
GC生成部
GC出力生成部
送信部
出力部
入力部
GC実行部
送信部
GC作成装置は、関数fを入力としてGC生成部の処理を実行することでGCと鍵データKを作成し、GCをGC実行装置に送信する。
GC実行装置はGCと秘密の情報x[1],...,x[N]を入力としてGC実行部の処理を実行することで、「GCの出力」Eを取得し、GCの出力EをGC作成装置に送信する。
GC作成装置はGCの出力Eと鍵データKとを入力としてGC出力生成部の処理を実行することで、出力yを得て、出力yを出力する。
(たとえGC実行装置が不正者に乗っ取られたとしても)GC作成装置が不正者に乗っ取られない限り、出力yはf(x[1],...,x[N])に一致する。
後述するように、本願開示ではGC法に適切に改良を施した上でMPCとして用いる。しかし、GC法それ自身には以下の問題があるため、そのままでは本願開示には適用することができない。
GC法自身はあくまで依頼計算を実現するための方式であり、MPCを実現するための方式ではない。したがって、GC実行装置が秘密の情報x[1],...,x[N]を知っていることを前提にしている。しかし、本願開示ではGC法をMPCとして用いるため、秘密のデータx[1],...,x[N]の秘匿性も担保する必要がある。
GC法ではGC作成装置が不正者に乗っ取られないかぎり、出力yがf(x[1],...,x[N])に一致することが保証できる。しかしながら、GC作成装置が不正者に乗っ取られた場合に関しては何ら保証がない。
以上で本願開示および既存方式において利用する技術に関する説明を終了する。以下では、認証に関する既存方式を説明する。
前述した認証に関する問題を解決する一手法として、オンライン認証技術の標準化を行っている標準化団体FIDO(Fast Identify Online)は、UAF(Universal Authentiation Framework)標準と呼ばれる認証手法を提案している(非特許文献1)。以下では、この認証手法を「FIDO方式」と呼ぶ。
FIDO方式には、ユーザ装置11にセキュア領域112が存在することを仮定している(ないし前提としている)という問題がある。
MPCを利用した認証方式の一形態について、説明する。以下では、この認証方式を「サーバサイドMPC方式」と呼ぶ。
通常のユーザ認証における通信プロトコルには、様々な標準がある。しかしながら、いずれの通信プロトコルもユーザ装置とサーバ装置の1対1の通信を前提としたものである。実際、FIDOが提案している通信プロトコルもユーザ装置とサーバ装置の1対1の通信を前提としている。具体的には、図1におけるユーザ装置フロントエンド1131とサーバ装置フロントエンド1231がFIDOの提案する通信プロトコル標準に対応する箇所である。
上述したサーバサイドMPC方式では、ユーザの認証情報のみを用いて認証を行うことを想定している。ここで、サーバサイドMPC方式の変形例として、FIDO方式のようにユーザの認証情報とユーザ秘密鍵情報の両方を用いて認証するものが考えられる。
最後に暗号化通信を利用した認証方式の一形態について説明する。以下では、この方式を「暗号化通信方式」と呼ぶ。暗号化通信方式の例として、例えば非特許文献2に記載されたものがある。ここでは、非特許文献2のものよりも簡略化したものを紹介する。
ユーザ認証サーバ装置32とユーザ認証サーバ補助装置33の両方が不正者に乗っ取られた場合、ユーザの認証情報という最高度に機微な情報が不正者の手に渡ってしまうという問題がある。
ユーザ認証サーバ装置32は、通常の手段でユーザ装置31の検証情報の暗号文Cを受け取る。
ユーザ認証サーバ装置32は、任意の情報Mを暗号化して暗号文C'を作成する。
ユーザ認証サーバ装置32は暗号文C、C'をサーバ装置暗号化認証検証部3211に入力し、ユーザ認証サーバ補助装置33と通信しながらサーバ装置暗号化認証検証部3211の処理を実行する。
サーバ装置暗号化認証検証部3211の出力が受理であるか拒否であるかに応じて、ユーザ認証サーバ装置32は任意の情報Mがユーザの認証情報と一致するか否かを判定することができる。
暗号化通信方式の変形例として、以下のものが考えられる。ただし、いずれの変形例も、上述した問題と同様の問題を抱える。
ユーザの検証情報や認証情報の暗号化において、公開鍵暗号ではなく共通鍵暗号を使う。
上述の方式では、ユーザサイド補助装置が1台であることを想定している。そこで、複数台のユーザサイド補助装置を用意し、ユーザサイド補助装置秘密鍵を分散シェアする。
ユーザ装置にセキュア領域が存在することを仮定する必要がある。したがって、セキュア領域がマルウェアに侵されるなどした場合、ユーザの認証情報という最高度に機微な情報が不正者に漏えいする。
サーバ側の装置(サーバ装置やサーバ補助装置)がMPC条件以上に結託すると、ユーザの認証情報という最高度に機微な情報が不正者に漏えいする。
サーバサイド・オフライン攻撃に対して、安全でない。したがって、不正者がサーバの乗っ取りに成功すると、サーバサイド・オフライン攻撃によりユーザの認証情報という最高度に機微な情報が不正者に漏えいする。特にサーバの管理者自身が不正者である場合、一切安全を保てない。
FIDOが標準化しているフロントエンドをはじめとする既存の通信標準を満たしていない。したがって、既存の通信標準を利用している大多数の装置との通信が不可能である。
ZKIPやMACを生成、送受信および検証するのに計算コストと通信コストがかかるため、計算効率と通信効率が悪化する。特にユーザ装置がスマートフォンのような非力なデバイスである場合、計算効率と通信効率の悪さがネックとなる。したがって、既存の認証方式は実用性に乏しい。
GC法自身はあくまで依頼計算を実現するための方式であり、MPCを実現するための方式ではない。したがって、GC法によると、入力データの秘密を担保できない。
GC作成装置が不正者に乗っ取られた場合に関して、何ら保証がない。
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
はじめに、以下で詳述する第1ないし第8の実施形態の構成および効果について概説する。
i=1,...,Mに対し、i番目のユーザサイド補助装置はy[i]=hx[i] mod qを計算し、y[i]を他のユーザサイド補助装置に送信する。
各ユーザサイド補助装置は、積y=y[1]…y[M] mod qを計算する。
第1の実施形態では、さらに以下のアイデアに基づいて問題点を解決する。
第2の実施形態では、MPCとしてGC法を利用する。GC法には、前述した2つの問題点がある。第2の実施形態では、これらの問題点を以下のように解決する。
まず、1つ目の手法について述べる。この手法の詳細は、第3の実施形態として記載する。実施形態において、ユーザ装置とユーザサイド補助装置は、MPCでユーザ認証を終えた後、機器認証サーバとの機器認証プロトコルにおける返答をMPCで作成する。このとき、ユーザ認証を通った場合に限って機器認証が行われる。すなわち、実施形態において、前者のMPCで「拒否」が出た場合には、後者のMPCを実行する必要はない。しかし、前者のMPCで「拒否」の場合に後者のMPCを行わないものとすると、後者のMPCを行なったか否かという1ビット分の情報をユーザサイド補助装置が取得してしまう。
次に、安全性を高めるための2つ目の手法について述べる。この手法の詳細は、第4および第5の実施形態として記載する。
次に、安全性を高めるための3つ目の手法について述べる。この手法の詳細は、第6ないし第8の実施形態として記載する。第6ないし第8の実施形態では、構成に若干の差がある。そこで、最初に第6の実施形態について説明する。
本発明の各実施形態によると、上述の各課題が解決される。
次に、第1の実施形態に係る認証システムについて図面を参照して説明する。
図4を参照して、本実施形態の認証システムの構成を説明する。
本実施形態では、認証として、ユーザ44を認証するための「ユーザ認証」とユーザ44が持っている装置であるユーザ装置41を認証する「機器認証」の2種類の認証がある。本実施形態において、ユーザ認証とはユーザ44がユーザ装置41に対して自身が事前登録されたユーザ44と同一であることを証明する行為を指す。一方、機器認証とは、ユーザ装置41が機器認証サーバ装置42に対して、自身が事前登録された装置と同一であることを証明することをいう。
ユーザの記憶(暗証番号、パスワード、パスフレーズなど)
ユーザ生体情報(顔、指紋、光彩など)
ユーザの所有物(セキュリティトークン、IC(Integrated Circuit)カードなど)
暗証番号、パスワード、パスフレーズなどを読み取るためのキーボード
顔、指紋、光彩などを読み取るためのカメラ
セキュリティトークンやICカード内の情報を読み取るための読み取り機
ユーザ装置41は、事前に以下のデータを受け付けて記憶部413に保持するものとする。
ユーザサイド補助装置43の台数M
ユーザ認証の検証プロトコル(複数のユーザ認証が提供されている場合、それらすべての認証プロトコル)
機器認証の認証プロトコル
ユーザサイド補助装置43の台数M
ユーザ認証の検証プロトコル(複数のユーザ認証が提供されている場合、それらすべての認証プロトコル)
機器認証の検証プロトコル
本実施形態の認証システムの各部の詳細を述べる前に、全体の流れを概括する。
ユーザ認証事前準備
ユーザ認証で必要となるデータを事前準備する。本実施形態では、検証情報を計算しておく。
機器認証事前準備
機器認証で必要となるデータを事前準備する。本実施形態では、ユーザ装置の公開鍵および秘密鍵の生成を行う。
ユーザ認証
ユーザ装置41がユーザサイド補助装置43の助けを借りながらユーザ44を認証する。
機器認証
ユーザ装置41がユーザサイド補助装置43の助けを借りながら機器認証サーバ装置42から認証を受ける。
本実施形態では、ユーザ認証事前準備においてユーザ44が検証情報を事前登録する。検証情報を事前登録する方法として、様々な方法を用いることができる。図4は、ユーザ装置41の取得部4111を利用して検証情報を事前登録する場合を示す。しかし、例えば企業が新入社員全員を認証システムに一括登録するようなケースでは、検証情報を登録するための専用マシンを用意し、これを利用して検証部の事前登録を行ってもよい。以降、図4に記載した装置構成における検証情報の事前登録を説明する。
ステップ511:取得部4111は、ユーザ44からユーザ固有情報を取得する。
ステップ512:検証情報導出部41221はユーザ固有情報を入力とし、検証情報を出力する。
ステップ513:検証情報分散部41222は検証情報とユーザサイド補助装置43の台数Mとを入力とし、検証情報の分散シェアv[0],v[1],...,v[M]を出力する。
ステップ514:記憶部413は分散シェアv[0]を保管する。
ステップ515:通信部414の補助通信部4141は、分散シェアv[1]をユーザサイド補助装置43[1]に送信し,...,分散シェアv[M]をユーザサイド補助装置43[M]に送信する。
ステップ516:ユーザ装置41は、ユーザ固有情報、検証情報および分散シェアv[1],...,v[M]を消去する。
ステップ521:通信部433[i]の補助通信部4331[i]は、ユーザ装置41が送信した分散シェアv[i]を受信する。
ステップ522:分散シェアデータベース4321[i]は、分散シェアv[i]を保持する。
本実施形態では、機器認証の事前準備として、公開鍵・秘密鍵ペアの生成と登録を行う。
ステップ611:鍵ペア生成部4125は、ユーザ装置41の公開鍵pkと秘密鍵skを生成する。
ステップ612:秘密鍵分散部4126は生成された秘密鍵skを入力とし、秘密鍵の分散シェアk[0],...,k[M]を出力する。
ステップ613:記憶部413は秘密鍵の分散シェアk[0]と公開鍵pkをに保管する。
ステップ614:i=1,...,Mに対し、通信部414の補助通信部4141は秘密鍵の分散シェアk[i]と公開鍵pkをユーザサイド補助装置43[1]に送信する。
ステップ615:ユーザ装置41は、秘密鍵skおよび秘密鍵の分散シェアk[1],...,k[M]を消去する。
ステップ616:ユーザ装置フロントエンド4142は、公開鍵pkを機器認証サーバ装置42に送信する。
ステップ621:通信部433[i]の補助通信部4331[i]は、秘密鍵の分散シェアk[i]と公開鍵pkを受信する。
ステップ622:分散シェアデータベース4321[i]は、秘密鍵の分散シェアk[i]と公開鍵pkを保持する。
ステップ631:サーバ装置フロントエンド4231は、ユーザ装置41の公開鍵pkを受信する。
ステップ632:公開鍵データベース4221は、受信した公開鍵pkを保持する。
図7に従って、ユーザ認証を説明する。
ステップ711:取得部4111は、ユーザ44からユーザ固有情報を取得する。
ステップ712:認証情報導出部41211はユーザ固有情報を入力とし、認証情報を出力する。
ステップ713:認証情報分散部41212は認証情報とユーザサイド補助装置43の台数Mとを入力とし、認証情報の分散シェアs[0],s[1],...,s[M]を出力する。
ステップ714:i=1,...,Mに対し、通信部414の補助通信部4141は認証情報の分散シェアs[i]をユーザサイド補助装置43[i]に送信する。
ステップ715:ユーザ装置41は、ユーザ固有情報と認証情報の分散シェアs[1],...,s[M]を消去する。
ステップ716:ユーザ装置ユーザ認証MPC部4123は、記憶部413からユーザ44の検証情報のシェアv[0]とユーザ認証の検証プロトコルと事前計算データp[0](もしあれば)を読み込む。
ステップ721:通信部433[i]の補助通信部4331[i]は、認証情報の分散シェアs[i]を受信する。
ステップ722:ユーザサイド補助装置ユーザ認証MPC部4311[i]は、分散シェアデータベース4321[i]から、ユーザ装置41を保有するユーザ44の検証情報のシェアv[i]とユーザ認証の検証プロトコルを読み込み、記憶部432[i]から事前計算データp[i](もしあれば)を読み込む。
ステップ751:補助通信部4141は、ユーザ認証結果のシェアa[1],...,a[M]を受信する。
ステップ752:ユーザ認証結果復元部4124はa[0],...,a[M]を入力とし、ユーザ認証の結果accを出力する。
ステップ753:ユーザ認証結果復元部4124は、ユーザ認証の結果accが「受理」か「拒否」かを判定する。
ステップ754:ユーザ認証の結果accが「受理」の場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら機器認証サーバ装置42から機器認証を受ける。なお「機器認証」の詳細については後述する。
ステップ755:ユーザ認証の結果が「拒否」の場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
ZKIP法またはMAC法に基づいてユーザ認証MPCを実現する方法を述べる。
ステップ1021:素子Rの入力端子をc[1],...,c[N]とする。ここで、Nは素子Rの入力端子の個数である。ユーザ装置41は素子Rの入力端子c[1],...,c[N]に対応するシェアt[0,1],...,t[0,N]と事前計算データq[0,R](もしあれば)を一時記憶部82から読み込み、素子Rとシェアt[0,1],...,t[0,N]をユーザ認証MPC実行部83に入力する。i=1,...,Mに対し、ユーザサイド補助装置43[i]は素子Rの入力端子c[1],...,c[N]に対応するシェアt[i,1],...,t[i,N]を一時記憶部92[i]から読み込み、素子Rとシェアt[i,1],...,t[i,N]と事前計算データq[i,R](もしあれば)をユーザ認証MPC実行部93[i]に入力する。
ステップ1022:ユーザ認証MPC実行部83およびユーザ認証MPC実行部93[1],...,ユーザ認証MPC実行部93[M]は、通信部414、通信部433[1],..,通信部433[M]を用いて通信し、素子Rに関するMPCを実行する。
ステップ1023:ユーザ認証MPC実行部83は、素子Rの出力端子のシェアu[0]をユーザ装置41に返す。i=1,...,Mに対し、ユーザ認証MPC実行部93[i]は素子Rの出力端子のシェアu[i]をユーザサイド補助装置43[i]に返す。
ステップ1024:ユーザ装置41は、素子R、シェアt[0,1],...,t[0,N]、ユーザ認証MPC実行部83の実行に利用した乱数(もしあれば)および事前計算データq[0,R](もしあれば)を正当性証明生成部84に入力する。i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ、通信部414および通信部433[i]を用いて通信しながらは正当性証明生成部84および正当性証明検証部94の処理を実行する。
次に、本実施形態の機器認証の詳細について説明する。本実施形態の機器認証では、ユーザ装置41と機器認証サーバ装置42がFIDOのUAF標準で標準化されている認証などの何らかの公開鍵認証を実行する。既知の公開鍵認証では、ユーザ装置41は自身の秘密鍵を使用することで認証を行う。一方、機器認証サーバ装置42はユーザ装置41の公開鍵を使用することでユーザ装置41の認証を検証する。
機器認証は「秘密鍵利用演算部」(ないし、ユニット名の一部に「秘密鍵利用演算」を含むユニット、以下同様)というサブルーチン(ないしユニット)を用いて行われ、秘密鍵は「秘密鍵利用演算部」でのみ用いられる。
ステップ1311:ユーザ装置41は秘密鍵のシェアk[0]とユーザ装置41の公開鍵pkを記憶部413から読み込み、ユーザ装置機器認証MPC部4127の入力部111に入力する。
ステップ1312:i=1,...,Mに対し、ユーザサイド補助装置43[i]は秘密鍵のシェアk[i]とユーザ装置41の公開鍵pkを分散シェアデータベース4321から読み込み、ユーザサイド補助装置機器認証MPC部4312の入力部121に入力する。
ステップ1313:機器認証サーバ装置42はユーザ装置41の公開鍵pkを公開鍵データベース4221から読み込み、機器認証検証部4212に入力する。
ステップ1321:機器認証サーバ装置42は機器認証検証部4212を実行し、機器認証検証部4212がユーザ装置41へのデータの送信要求を出した場合、サーバ装置フロントエンド4231を用いてユーザ装置41にデータを送信する。
ステップ1322:ユーザ装置41はユーザ装置フロントエンド4142を使って機器認証サーバ装置42から送られてきたデータを受信し、受信したデータを秘密鍵不用演算部115に入力し、以下を実行する。
ステップ13221:秘密鍵不用演算部115がサブルーチンとして秘密鍵利用演算を要求するたびに、秘密鍵不用演算部115がサブルーチンに投げたデータを秘密鍵利用演算MPC実行部113に入力し、以下を実行する。
ステップ132211:秘密鍵利用演算MPC実行部113はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の秘密鍵利用演算MPC実行部122[1],...,秘密鍵利用演算MPC実行部122[M]と相互通信してMPCを実行し、必要データを計算し、計算されたデータを秘密鍵不用演算部115に返答する。
ステップ132212:i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ補助通信部4141および補助通信部4331[i]を用いて通信しながら、秘密鍵利用演算正当性証明生成部114および秘密鍵利用演算正当性証明検証部123[i]の処理を実行する。これにより、ステップ132211で行ったMPCの正当性証明とその検証を行う。
ステップ13222:秘密鍵不用演算部115が機器認証サーバ装置42へのデータ送信要求を出した場合、ユーザ装置41はユーザ装置フロントエンド4142を用いて機器認証サーバ装置42にデータを送信する。
ステップ1323:最終的に、機器認証サーバ装置42の機器認証検証部4212が「受理」または「拒否」を意味するデータを出力した場合、機器認証サーバ装置42は機器認証検証部4212を終了する。
次に、第2の実施形態に係る認証システムについて図面を参照して説明する。本実施形態では、ガーブルドサーキット(GC:Garbled Circuit)法に基づくユーザ認証MPCを採用する。
GC法に基づくユーザ認証MPCについて説明する。
次に、第3の実施形態に係る認証システムについて図面を参照して説明する。
ユーザ認証の結果が「拒否」の場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42の代わりに機器認証シミュレートMPCを実行する。なお、機器認証シミュレートMPCの詳細については、後述する。機器認証シミュレートMPCが終了すると、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
機器認証シミュレートMPCの基本的なアイデアは、通常の機器認証において機器認証サーバ装置42が実行していた機器認証検証部4212の動作を、ユーザ装置41が実行するというものである。このようにすると、図7のステップ754は、機器認証検証部4212の処理を実行するのが機器認証サーバ装置42なのかユーザ装置41なのかを除いて同一になる。
ステップ1811:ユーザ装置41は秘密鍵のシェアk[0]を記憶部413から読み込み、機器認証シミュレートMPC部17の入力部171に入力する。ユーザ装置41は、さらに自身の公開鍵pkを記憶部413から読み込み、公開鍵認証検証部176に入力する。
ステップ1812:i=1,...,Mに対し、ユーザサイド補助装置43[i]は秘密鍵のシェアk[i]を分散シェアデータベース4321から読み込み、ユーザサイド補助装置機器認証MPC部4312の入力部121に入力する。
ステップ1821:ユーザ装置41は公開鍵認証検証部176を実行し、公開鍵認証検証部176がデータの送信要求を出すと、送信要求されたデータを秘密鍵不用演算部175に入力する。
ステップ1822:ユーザ装置41は送信要求されたデータを秘密鍵不用演算部175に入力し、以下を実行する。
ステップ18221:秘密鍵不用演算部175がサブルーチンとして秘密鍵利用演算を要求するたびに、秘密鍵不用演算部175がサブルーチンに投げたデータを秘密鍵利用演算MPC実行部173に入力し、以下を実行する。
ステップ182211:秘密鍵利用演算MPC実行部173はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の秘密鍵利用演算MPC実行部122[1],...,秘密鍵利用演算MPC実行部122[M]と相互通信してMPCを実行し、必要データを計算し、計算されたデータを秘密鍵不用演算部175に返答する。
ステップ182212:i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ補助通信部4141および補助通信部4331[i]を用いて通信しながら、秘密鍵利用演算正当性証明生成部174および秘密鍵利用演算正当性証明検証部123[i]の処理を実行する。これにより、ステップ182211で行ったMPCの正当性証明とその検証を行う。
ステップ18222:秘密鍵利用演算正当性証明生成部174がデータ送信要求を出すと、ユーザ装置41は要求されたデータを公開鍵認証検証部176に入力する。
ステップ1823:最終的に公開鍵認証検証部176が「受理」または「拒否」を意味するデータを出力すると、ユーザ装置41は機器認証シミュレートMPCを終了する。
次に、第4の実施形態に係る認証システムについて図面を参照して説明する。
次に、第5の実施形態に係る認証システムについて図面を参照して説明する。本実施形態では、ユーザ認証で拒否された回数をカウントするカウンタを実施形態2のユーザサイド補助装置43[1]に付け加え、カウンタが定められたしきい値を超えた場合にはユーザ認証を拒絶する。
次に、第6の実施形態に係る認証システムについて図面を参照して説明する。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態における「検証情報分散シェア生成」には、ユーザ装置41およびユーザサイド補助装置43の双方が参加する。また、第1の実施形態とは異なり、本実施形態の検証情報分散シェア生成は第1の実施形態における検証情報導出部41221および検証情報分散部41222の機能を有していない。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態における「認証情報分散シェア生成」は、ユーザサイド補助装置43が参加するMPCであり、ユーザ装置41はこのMPCに参加しない。また、第1の実施形態と異なり、本実施形態の「認証情報分散シェア生成」は第1の実施形態における認証情報導出部41211および認証情報分散部41212の機能を有していない。
事前準備時入力検証用ユーザ固有情報分散シェア作成
MPC入力検証用ユーザ固有情報分散シェア作成
検証情報分散シェア作成マルチパーティ計算
この処理は、ユーザ認証事前準備で行われる。
この処理は、ユーザ装置41によって実行される。
この処理は、ユーザ固有情報とユーザサイド補助装置43の台数Mとを入力として受け取り、M+1個の「事前準備時検証用ユーザ固有情報分散シェア」を出力する。これらのうちの1つはユーザ装置41のためのものであり、他のM個はM台のユーザサイド補助装置43のためのものである。
入力として受け取ったユーザ固有情報を秘密分散してM個のユーザ固有情報の分散シェアe[1],...,e[M]を得る。
i=1,...,Mに対し、ユーザ固有情報の分散シェアe[i]を秘密分散して2個の「ユーザ固有情報の分散シェアの分散シェア」c[i],d[i]を得る。
分散シェアe[1],...,e[M]を消去する。
ユーザ装置の「事前準備時検証用ユーザ固有情報分散シェア」はD=(c[1],...,c[M])である。i=1,...,Mに対し、ユーザサイド補助装置43[i]の「事前準備時検証用ユーザ固有情報分散シェア」はd[i]である。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]によって実行される。
この処理の入力は、以下の2つである。
ユーザ装置41が保管している「事前準備時検証用ユーザ固有情報分散シェア」から求められるデータ
ユーザサイド補助装置43[i]が保管している「事前準備時検証用ユーザ固有情報分散シェア」
この処理の出力は、ユーザ固有情報の分散シェア(以下「MPC入力検証用ユーザ固有情報分散シェア」という)である。
ユーザ装置41が保管している「事前準備時検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M])から求められるデータc[i]と、自身の保持している「事前準備時検証用ユーザ固有情報分散シェア」d[i]を入力として受け取る。
c[i],d[i]を用いて秘密分散の復元を実行することで、ユーザ固有情報の分散シェア(すなわちMPC入力検証用ユーザ固有情報分散シェア)e[i]を得てe[i]を出力する。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身の持っているユーザ固有情報の分散シェアをMPCで用い、MPCの出力として検証情報の分散シェアを得る。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身の持っているユーザ固有情報の分散シェアをMPCで用い、MPCの出力として認証情報の分散シェアを得る。
ユーザサイド補助装置ユーザ認証MPC部4311[i]は、検証情報の分散シェアv[i]と認証情報の分散シェアs[i]と事前計算データ(もしあれば)を入力として受け取り、他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながらMPCの計算を進め、認証結果の分散シェアa[i]を出力する。しかし、本実施形態では、第1の実施形態とは異なり、ユーザ装置41がこのMPCに参加しない。第1の実施形態においては、サーバマシンであるユーザサイド補助装置43よりも安全性の劣るユーザ装置41と相互通信しながらMPCを実行している。このため、第1の実施形態のユーザサイド補助装置ユーザ認証MPC部4311[i]は、ユーザ装置41の動作の正当性を検証する正当性証明検証部94を備えている。しかし、本実施形態では、上述したように、ユーザサイド補助装置ユーザ認証MPC部4311[i]の行うMPCにユーザ装置41が参加しない。したがって、本実施形態では、MPCを行う際に、正当性証明検証部94の実行を省略することができる。
本実施形態のユーザ認証事前準備は、以下のとおりである。
取得部4111によりユーザ44からユーザ固有情報を取得する。
ユーザ固有情報とユーザサイド補助装置43の台数Mを用いて「事前準備時入力検証用ユーザ固有情報分散シェア作成」を実行し、M+1個の「事前準備時入力検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M]),d[1],...,d[M]を得る。
D=(c[1],...,c[M])を記憶部413に保管する。
i=1,...,Mに対し、通信部414の補助通信部4141を用いてd[i]をユーザサイド補助装置43[i]に送信する。
ユーザ固有情報および分散シェアd[1],...,d[M]を消去する。
ユーザ装置41が送信した分散シェアd[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
分散シェアd[i]を分散シェアデータベース4321[i]に保存する。
第1の実施形態と同一である。
本実施形態のユーザ認証は、以下のとおりである。
取得部4111によりユーザ44からユーザ固有情報を取得する。
ユーザ固有情報とユーザサイド補助装置43の台数Mとを用いてユーザ固有情報を秘密分散し、、認証情報の分散シェアf[1],...,f[M]を得る。
記憶部413から「事前準備時入力検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M])を読み込む。
i=1,...,Mに対し、通信部414の補助通信部4141を用いてf[i]とc[i]をユーザサイド補助装置43[i]に送信する。
ユーザ固有情報と分散シェアf[1],...,f[M]を消去する。
f[i]とc[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
分散シェアデータベース4321[i]から「事前準備時入力検証用ユーザ固有情報分散シェア」d[i]を読み込む。
c[i]とd[i]を入力して「MPC入力検証用ユーザ固有情報分散シェア作成」を実行することで、ユーザ固有情報の分散シェア(MPC入力検証用ユーザ固有情報分散シェア)e[i]を得る。
記憶部432から検証情報導出部のアルゴリズムと事前計算データp[i](もしあれば)を読み込み、e[i]と事前計算データp[i](もしあれば)と検証情報導出部のアルゴリズムを用いて、「検証情報分散シェア作成マルチパーティ計算[i]」を他のユーザサイド補助装置43と相互通信しながら実行し、出力として検証情報の分散シェアv[i]を得る。
記憶部432から認証情報導出部のアルゴリズムと事前計算データq[i](もしあれば)を読み込み、f[i]と事前計算データq[i](もしあれば)と認証情報導出部のアルゴリズムを用いて、「認証情報分散シェア生成[i]」を他のユーザサイド補助装置43の「認証情報分散シェア生成[j]」と相互通信しながらマルチパーティ計算により実行し、出力として認証情報の分散シェアs[i]を得る。
記憶部432からユーザ認証のアルゴリズムと事前計算データb[i](もしあれば)を読み込み、v[i]とs[i]とb[i](もしあれば)とユーザ認証のアルゴリズムをユーザサイド補助装置ユーザ認証MPC部4311[i]に入力し、ユーザサイド補助装置ユーザ認証MPC部4311[i]を他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながら実行し、実行結果としてユーザ認証結果の分散シェアa[i]を得る。
補助通信部4331[i]を用いてa[i]をユーザ装置41に送る。
f[i]、c[i]、v[i]、s[i]、a[i]を消去する。
補助通信部4141を用いてa[1],...,a[M]を受信する。
a[1],...,a[M]をユーザ認証結果復元部4124に入力し、その出力としてユーザ認証の結果accを得る。
ユーザ認証の結果accが「受理」か「拒否」かを判定する。
ユーザ認証の結果accが「受理」である場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42から機器認証を受ける。
ユーザ認証の結果が「拒否」である場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
次に、第7の実施形態に係る認証システムについて図面を参照して説明する。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態における「検証情報分散シェア生成」には、ユーザ装置41およびユーザサイド補助装置43の双方が参加する。また、第1の実施形態と異なり、本実施形態の「検証情報分散シェア生成」は、第1の実施形態における検証情報導出部41221と検証情報分散部41222の機能を有していない。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態における「認証情報分散シェア生成」は、ユーザサイド補助装置が参加するMPCであり、ユーザ装置41はこのMPCに参加しない。また、第1の実施形態と異なり、本実施形態の「認証情報分散シェア生成」は第1の実施形態における認証情報導出部41211と認証情報分散部41212の機能を有していない。
MPC入力検証用ユーザ固有情報分散シェア作成
検証情報分散シェア作成マルチパーティ計算
保存用分散シェア作成
検証情報分散シェア復元
この処理は、ユーザ装置が実行する。
この処理は、ユーザ認証事前準備で実行される。
この処理は、ユーザ固有情報とユーザサイド補助装置43の台数Mを入力として受け取り、ユーザ固有情報の分散シェアを出力する。
ユーザ固有情報Eとユーザサイド補助装置43の台数Mを入力として受け取る。
ユーザ固有情報EをM個に秘密分散してユーザ固有情報の分散シェア(MPC入力検証用ユーザ固有情報分散シェア)e[1],...,e[M]を得る。
e[1],...,e[M]を出力する。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
この処理は、ユーザ認証事前準備で実行される。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は、自身の保持するユーザ固有情報の分散シェアe[i]をMPCで用い、MPCの出力として検証情報の分散シェアv[i]を得る。
この処理は、ユーザ認証事前準備で実行される。
この処理は、検証情報の分散シェアを入力として受け取り、保存用分散シェアを出力する。
この処理は、まずi=1,...,Mに対し、ユーザサイド補助装置43[i]が実行することで自身の保存用分散シェアとユーザ装置41に送るデータを作成する。ユーザ装置41は、ユーザサイド補助装置43から送られてきたデータをもとに自身の保存用分散シェアを作成する。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
検証情報の分散シェアv[i]を入力として受け取り、v[i]を2つに秘密分散することで「検証情報の分散シェアの分散シェア」u[i]とw[i]を得る。
w[i]をユーザサイド補助装置43[i]自身の保存用分散シェアとする。
u[i]をユーザ装置41に送る。
ユーザ装置41は、以下を実行する
i=1,...,Mに対し、u[i]をユーザサイド補助装置43[i]から受け取る。
W=(u[1],...,u[M])をユーザ装置41の保存用分散シェアとする。
この処理は、ユーザ認証で実行される。
この処理は、保存用分散シェアを入力として受け取り、検証情報分散シェアを出力する。
この処理では、まずユーザ装置41が自身の保存用分散シェアから得られる情報をユーザサイド補助装置43に送り、ユーザサイド補助装置43は送られてきたデータと自身の保存用分散シェアからユーザ認証を計算する。
i=1,...,Mに対し、ユーザ装置41は自身の保存用分散シェアW=(u[1],...,u[M])から求まるデータu[i]をユーザサイド補助装置43[i]に送る。
i=1,...,Mに対し、ユーザサイド補助装置43[i]はユーザから送られてきたデータu[i]と自身の保存用分散シェアw[i]を用いて秘密分散の復元部を行い、検証情報の分散シェアv[i]を得る。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身が保持するユーザ固有情報の分散シェアをMPCで用い、MPCの出力として認証情報の分散シェアを得る。
ユーザ認証事前準備は、以下のとおりである。
取得部4111によりユーザ44からユーザ固有情報Eを取得する。
ユーザ固有情報Eを用いて「MPC入力検証用ユーザ固有情報分散シェア作成」を実行し、出力としてユーザ固有情報の分散シェアe[1],...,e[M]を得る。
通信部414の補助通信部4141を用いてe[1]をユーザサイド補助装置43[1]に送信し,...,e[M]をユーザサイド補助装置43[M]に送信する。
ユーザ固有情報Eおよび分散シェアe[1],...,e[M]を消去する。
ユーザ装置41が送信したe[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
記憶部432から検証情報導出部のアルゴリズムと事前計算データp[i](もしあれば)を読み込み、e[i]と事前計算データp[i](もしあれば)と検証情報導出部のアルゴリズムを用いて「検証情報分散シェア作成マルチパーティ計算」を他のユーザサイド補助装置43と相互通信しながら実行する。このマルチパーティ計算の出力として、検証情報の分散シェアv[i]を得る。
v[i]を入力して「保存用分散シェア作成」を実行する。結果として、ユーザサイド補助装置43[i]は自身の保存用シェアw[i]を得て分散シェアデータベース4321[i]に保管し、ユーザ装置41は自身の保存用シェアW=(u[1],...,u[M])を得る。
ユーザサイド補助装置43[i]は、v[i]、u[i]を消去する。
保存用シェアW=(u[1],...,u[M])を記憶部413に保管する。
第1の実施形態と同一である。
本実施形態のユーザ認証は、以下のとおりである。
取得部4111によりユーザ44からユーザ固有情報を取得する。
ユーザ固有情報とユーザサイド補助装置43の台数Mとを用いて、ユーザ固有情報を秘密分散し、認証情報の分散シェアf[1],...,f[M]を得る。
記憶部413から保存用分散シェアW=(u[1],...,u[M])を読み込む。
i=1,...,Mに対し、通信部414の補助通信部4141を用いてf[i]とu[i]をユーザサイド補助装置43[i]に送信する。
ユーザ固有情報とf[1],...,f[M]を消去する。
f[i]とu[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
分散シェアデータベース4321[i]から保存用シェアw[i]を読み込む。
保存用シェアu[i],w[i]を入力して「検証情報分散シェア復元」を実行することで検証情報の分散シェアv[i]を復元する。
記憶部432から認証情報導出部のアルゴリズムと事前計算データq[i](もしあれば)を読み込み、f[i]と事前計算データq[i](もしあれば)と認証情報導出部のアルゴリズムとを用いて、「認証情報分散シェア生成」を他のユーザサイド補助装置43の「認証情報分散シェア生成」と相互通信しながら実行し、出力として認証情報の分散シェアs[i]を得る。
記憶部432からユーザ認証のアルゴリズムと事前計算データb[i](もしあれば)を読み込み、v[i]とs[i]とb[i](もしあれば)とユーザ認証のアルゴリズムをユーザサイド補助装置ユーザ認証MPC部4311[i]に入力し、ユーザサイド補助装置ユーザ認証MPC部4311[i]を他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながら実行し、実行結果としてユーザ認証結果の分散シェアa[i]を得る。
補助通信部4331[i]を用いてa[i]をユーザ装置41に送る。
f[i]、u[i]、v[i]、s[i]、a[i]を消去する。
補助通信部4141を用いてa[1],...,a[M]を受信する。
a[1],...,a[M]をユーザ認証結果復元部4124に入力し、その出力としてユーザ認証の結果accを得る。
ユーザ認証の結果accが「受理」か「拒否」かを判定する。
ユーザ認証の結果accが「受理」である場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42から機器認証を受ける。
ユーザ認証の結果が「拒否」である場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
次に、第8の実施形態に係る認証システムについて図面を参照して説明する。
本実施形態には、「ユーザ認証情報分散シェア生成装置」、「ユーザ検証情報分散シェア生成装置」というサーバマシンがある。以下、これらが別個のサーバマシンであることを前提として話を進めるが、これらは同一のサーバマシンであってもよい。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態では、ユーザ装置41はこのユニットを有しておらず、ユーザ検証情報分散シェア生成装置にこのユニットを設ける。検証情報分散シェア生成部4122は、第1の実施形態と同様に、検証情報導出部41221と検証情報分散部41222を有する。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態では、ユーザ装置41はこのユニットを有しておらず、ユーザ認証情報分散シェア生成装置にこのユニットを設ける。本実施形態の認証情報分散シェア生成部は、第1の実施形態と同様に、認証情報導出部41211と認証情報分散部41212を有する。
ユーザ装置41は、図5のステップ511と同様、ユーザ44からユーザ固有情報を取得する。次に、ユーザ装置41はユーザ固有情報をユーザ検証情報分散シェア生成装置に送る。その後、ユーザ装置41はユーザ固有情報を消去する。
ユーザ検証情報分散シェア生成装置は、ユーザ装置41の代わりに、図5のステップ512〜516を実行する。すなわち、ユーザ検証情報分散シェア生成装置は以下を実行する。
ユーザ検証情報分散シェア生成装置は、ユーザ装置41から受け取ったユーザ固有情報を検証情報導出部41221に入力して検証情報を得る。次に、検証情報と、ユーザサイド補助装置43の台数Mを検証情報分散部41222に入力し、その出力として検証情報の分散シェアv[1],...,v[M]を得る。i=1,...,Mに対し、ユーザ検証情報分散シェア生成装置は検証情報の分散シェアv[i]をユーザサイド補助装置43[i]に送る。その後、ユーザ検証情報分散シェア生成装置は、ユーザ固有情報、検証情報、および、検証情報の分散シェアv[1],...,v[M]を消去する。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は検証情報の分散シェアv[i]を受信して分散シェアデータベース4321[i]に保存する。
第1の実施形態と同様である。
第1の実施形態との相違点は、以下のとおりである。
ユーザ装置41は、図7のステップ711と同様、ユーザ44からユーザ固有情報を取得する。次に、ユーザ装置41は、ユーザ固有情報をユーザ検証情報分散シェア生成装置に送る。その後、ユーザ装置41はユーザ固有情報を消去する。そして、ユーザ認証情報分散シェア生成装置は、図7ステップ712〜715をユーザ装置41の代わりに実行する。すなわち、ユーザ認証情報分散シェア生成装置は以下を実行する。
・ユーザ認証情報分散シェア生成装置は、ユーザ装置41から受け取ったユーザ固有情報を認証情報導出部41211に入力して認証情報を得る。次に、認証情報と、ユーザサイド補助装置43の台数Mを認証情報分散部41212に入力し、その出力として、認証情報の分散シェアs[1],...,s[M]を得る。i=1,...,Mに対し、ユーザ認証情報分散シェア生成装置はs[i]をユーザサイド補助装置43[i]に送る。その後、ユーザ認証情報分散シェア生成装置はユーザ固有情報、認証情報、および、認証情報の分散シェアs[1],...,s[M]を消去する。
ユーザ装置ユーザ認証MPC部4123が存在しないため、ユーザ装置ユーザ認証MPC部4123の入力を読み込む図7のステップ716は不要となる。同様に、図7のステップ73においても、ユーザ装置ユーザ認証MPC部4123に関連する処理がなくなる。図7のステップ73のユーザ認証MPCに対して、ユーザ装置41は参加しない。i=1,..,Mに対し、ユーザサイド補助装置ユーザ認証MPC部4311[i]は他のユーザサイド補助装置43と通信するものの、ユーザ装置41とは通信しない。このとき、ユーザ装置41はユーザ認証MPCの出力としてa[0]を得ることもない。
a[0]がないため、図7のステップ752ではa[1],...,a[M]からユーザ認証の結果を復元する。
本発明の請求の範囲全記載が、実施形態として以下に繰り込み記載されているものとする。但し、「請求項」は「形態(mode)」と読み替えるものとし、その際、従属関係は単に好ましい関係を示しそれに限定されないものとする。
11 ユーザ装置
111 ユーザ情報取得部
1111 取得部
112 セキュア領域
1121 計算部
11211 検証情報導出部
11212 認証情報導出部
11213 ユーザ認証部
11214 鍵ペア生成部
11215 機器認証部
1122 記憶部
113 通信部
1131 ユーザ装置フロントエンド
114 通知部
12 機器認証サーバ装置
121 計算部
1211 ユーザ認証方法選択部
1212 機器認証検証部
122 記憶部
1221 公開鍵データベース
123 通信部
1231 サーバ装置フロントエンド
13 ユーザ
(図2)
21 ユーザ装置
211 ユーザ情報取得部
2111 取得部
212 計算部
2121 検証情報導出部
2122 認証情報導出部
2123 認証情報分散部
2124 検証情報分散部
213 通信部
2131 独自仕様通信部
214 通知部
22 サーバサイドユーザ認証MPC装置
221 計算部
2211 ユーザ認証MPC部
2212 認証結果復元部(サーバサイドユーザ認証MPC装置22[1]のみ)
222 記憶部
2221 分散ユーザ検証情報データベース
223 通信部
2231 独自仕様通信部
23 ユーザ
(図3)
31 ユーザ装置
311 ユーザ情報取得部
3111 取得部
312 計算部
3121 認証情報導出部
3122 検証情報導出部
3123 認証情報暗号化部
3124 検証情報暗号化部
313 記憶部
314 通信部
3141 ユーザ装置独自仕様フロントエンド
315 通知部
32 ユーザ認証サーバ装置
321 計算部
3211 サーバ装置暗号化認証検証部
322 記憶部
3221 暗号化ユーザ検証情報データベース
323 通信部
3231 サーバ装置独自仕様フロントエンド
3232 補助通信部
33 ユーザ認証サーバ補助装置
331 計算部
3311 サーバ補助装置鍵生成部
3312 サーバ補助装置暗号化認証検証部
332 記憶部
333 通信部
3331 補助通信部
34 ユーザ
(図4)
41 ユーザ装置
411 ユーザ情報取得部
4111 取得部
412 計算部
4121 認証情報分散シェア生成部
41211 認証情報導出部
41212 認証情報分散部
4122 検証情報分散シェア生成部
41221 検証情報導出部
41222 検証情報分散部
4123 ユーザ装置ユーザ認証MPC部
4124 ユーザ認証結果復元部
4125 鍵ペア生成部
4126 秘密鍵分散部
4127 ユーザ装置機器認証MPC部
413 記憶部
414 通信部
4141 補助通信部
4142 ユーザ装置フロントエンド
415 通知部
42 機器認証サーバ装置
421 計算部
4211 ユーザ認証方法選択部
4212 機器認証検証部
422 記憶部
4221 公開鍵データベース
423 通信部
4231 サーバ装置フロントエンド
43 ユーザサイド補助装置
431 計算部
4311 ユーザサイド補助装置ユーザ認証MPC部
4312 ユーザサイド補助装置機器認証MPC部
432 記憶部
4321 分散シェアデータベース
433 通信部
4331 補助通信部
44 ユーザ
(図8)
81 入力部
82 一時記憶部
83 ユーザ認証MPC実行部
84 正当性証明生成部
85 出力部
(図9)
91 入力部
92 一時記憶部
93 ユーザ認証MPC実行部
94 正当性証明検証部
95 出力部
(図11)
111 入力部
112 受信部
113 秘密鍵利用演算MPC実行部
114 秘密鍵利用演算正当性証明生成部
115 秘密鍵不用演算部
116 出力部
(図12)
121 入力部
122 秘密鍵利用演算MPC実行部
123 秘密鍵利用演算正当性証明検証部
124 出力部
(図14)
141 入力部
142 GC生成部
143 GC出力生成部
144 出力部
(図15)
151 入力部
152 GC実行部
153 出力部
(図17)
17 機器認証シミュレートMPC部
171 入力部
172 受信部
173 秘密鍵利用演算MPC実行部
174 秘密鍵利用演算正当性証明生成部
175 秘密鍵不用演算部
176 公開鍵認証検証部
177 出力部
Claims (40)
- ユーザ装置と、
前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、
前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備え、
前記ユーザサイド補助装置は、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うとともに、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う、
認証システムであって、
ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
前記ユーザ認証事前準備では前記ユーザ装置が前記ユーザ認証に先立って必要情報を準備し、
前記機器認証事前準備では前記ユーザ装置が前記機器認証に先立って必要情報を準備し、
前記ユーザ認証事前準備では、前記ユーザ装置が前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得し、
前記検証情報分散シェア生成では、前記ユーザ装置が前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算し、前記ユーザサイド補助装置は前記検証情報分散シェアを取得し、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成し、前記ユーザ装置は前記秘密鍵を秘密分散し、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送り、前記ユーザサイド補助装置は前記秘密鍵分散シェアを保管し、
前記ユーザ認証では、前記ユーザ装置は前記ユーザの固有情報である認証用ユーザ固有情報を取得し、前記ユーザ装置は前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証し、前記ユーザサイド補助装置は前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加し、前記ユーザサイド補助装置は前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得し、
前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受け、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置は前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信し、前記ユーザ装置は前記機器認証サーバ装置から送られてきた前記検証に必要なデータを受信し、前記ユーザ装置は前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成し、
前記ユーザ装置は前記証明に必要なデータを作成するために、前記機器認証サーバ装置から送られてきた前記検証に必要なデータを加工して得られたデータを前記ユーザサイド補助装置に送信し、前記ユーザサイド補助装置は前記ユーザ装置から送られてきた前記加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行い、前記ユーザ装置は前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを加工したものを前記証明に必要なデータとして前記機器認証サーバ装置に送る、
認証システム。 - 前記ユーザ認証では、前記ユーザ装置が前記認証用ユーザ固有情報の分散シェアである認証情報分散シェアを作成する認証情報分散シェア生成を実行し、
前記ユーザサイド補助装置は前記認証情報分散シェアを取得し、
前記ユーザサイド補助装置は前記ユーザ認証マルチパーティ計算において前記認証情報分散シェアを用いる、
請求項1に記載の認証システム。 - 前記ユーザ装置は前記検証情報分散シェア生成の出力である前記検証情報分散シェアの一つを保持し、
前記ユーザ装置は前記認証情報分散シェア生成の出力である前記認証情報分散シェアの一つを保持し、
前記ユーザ装置は前記ユーザ認証マルチパーティ計算に参加し、
前記ユーザ装置は自身の保持する前記検証情報分散シェアと前記認証情報分散シェアを前記ユーザ認証マルチパーティ計算で用い、
前記ユーザ装置は前記ユーザ認証マルチパーティ計算の結果として前記ユーザ認証結果分散シェアを取得する、
請求項2に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算において、
前記ユーザ装置のみが自身の送信したデータの正当性を示す正当性証明を作成し、
前記ユーザサイド補助装置が前記正当性証明を検証する、
請求項3に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)である、
請求項4に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はメッセージ認証子(MAC:Message Authentication Code)である、
請求項4に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算として依頼計算(Secure Function Evaluation)法を利用する、
請求項1に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算で用いる前記依頼計算法はガーブルドサーキット(GC:Garbled Circuit)法である、
請求項7に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算としてガーブルドサーキット(GC:Garbled Circuit)法またはその他の依頼計算法を利用し、
前記依頼計算法は前記ユーザサイド補助装置が2つの変数aとbを引数として持つ関数f(a,b)の計算を前記ユーザ装置に依頼するものであり、
前記ユーザ装置は前記ユーザサイド補助装置からの計算依頼に対し、前記aとして前記ユーザ装置が保有する前記認証情報分散シェアを用い、前記bとして前記ユーザ装置が保有する前記検証情報分散シェアを用い、
前記関数f(a,b)は前記aと前記ユーザサイド補助装置が保有する前記認証情報分散シェアとを使用して認証情報xを復元し、前記bと前記ユーザサイド補助装置が保有する前記検証情報分散シェアとを使用して検証情報yを復元し、前記認証情報xと前記検証情報yを用いてユーザ認証を行い、認証結果を出力する関数である、
請求項2に記載の認証システム。 - 前記ユーザ装置は前記ユーザ認証において前記認証用ユーザ固有情報から前記ユーザの認証情報を計算し、
前記ユーザサイド補助装置は前記依頼計算法において2つの変数aとbを引数として持つ関数g(a,b)の計算を前記ユーザ装置に依頼し、
前記ユーザ装置は前記ユーザサイド補助装置からの計算依頼に対し、前記aとして前記ユーザ装置が保有する前記認証情報を用い、前記bとして前記ユーザ装置が保有する前記検証情報分散シェアを用い、
前記関数g(a,b)が前記bと前記ユーザサイド補助装置が保有する前記検証情報分散シェアとを使用して検証情報yを復元し、前記認証情報aと前記検証情報yを使用してユーザ認証を行い、認証結果を出力する関数である、
請求項7または8に記載の認証システム。 - 前記ユーザ装置は前記検証情報分散シェアを保持せず、
前記ユーザ装置は前記ユーザ認証マルチパーティ計算に参加しない、
請求項2に記載の認証システム。 - 前記機器認証事前準備において、
前記ユーザ装置は公開鍵認証方式の鍵生成を実行することで、前記ユーザ装置の前記秘密鍵と前記ユーザの公開鍵を作成し、
前記ユーザ装置は前記公開鍵をサーバサイド補助装置と前記機器認証サーバ装置に送信し、
前記サーバサイド補助装置および前記機器認証サーバ装置は受信した公開鍵を保管し、
前記機器認証において、
前記機器認証サーバ装置は前記公開鍵認証方式に基づいたデータを送受信することで前記ユーザ装置の前記機器認証を検証し、
前記ユーザ装置は前記公開鍵認証方式に基づいたデータを送受信することで前記機器認証サーバ装置から前記機器認証を受ける、
請求項1ないし11のいずれか1項に記載の認証システム。 - 前記ユーザ装置は前記機器認証事前準備で生成された前記秘密鍵分散シェアの一つを保持し、
前記ユーザ装置は前記機器認証マルチパーティ計算に参加し、
前記ユーザ装置は前記機器認証マルチパーティ計算で自身の保持する前記秘密鍵分散シェアを用い、
前記ユーザ装置は前記機器認証マルチパーティ計算の結果である前記分散シェアの1つを取得する、
請求項12に記載の認証システム。 - 前記機器認証マルチパーティ計算において、
前記ユーザ装置のみが自身の送信したデータの正当性を示す正当性証明を作成し、
前記ユーザサイド補助装置が前記正当性証明を検証する、
請求項13に記載の認証システム。 - 前記機器認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)である、
請求項14に記載の認証システム。 - 前記機器認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はメッセージ認証子(MAC:Message Authentication Code)である、
請求項14に記載の認証システム。 - 前記機器認証で行う前記公開鍵認証方式では、
前記機器認証サーバ装置から前記ユーザ装置に送られてきたデータから前記ユーザ装置が前記機器認証サーバ装置に送り返すデータを計算する返答計算過程において、
前記返答計算過程のうちの前記秘密鍵を利用しない演算は前記ユーザ装置または前記ユーザサイド補助装置の1台が実行し、
前記返答計算過程のうちの前記秘密鍵を利用する演算は前記機器認証マルチパーティ計算を実行することで計算する、
請求項13ないし16のいずれか1項に記載の認証システム。 - 前記ユーザ装置は、前記ユーザ認証マルチパーティ計算が終了すると、前記ユーザ認証結果分散シェアのいくつかを利用してユーザ認証結果を復元し、前記ユーザ認証結果が受理である場合、前記機器認証サーバ装置とサーバサイド補助装置とともに前記機器認証を実行し、前記ユーザ認証結果が拒否である場合、前記機器認証を実行することなく前記ユーザに認証が拒否された旨を通知する、
請求項1ないし17のいずれか1項に記載の認証システム。 - 前記ユーザ認証マルチパーティ計算が終了すると、
前記ユーザサイド補助装置は前記ユーザ認証結果分散シェアを前記ユーザ装置に送り、
前記ユーザ装置は前記ユーザ認証結果分散シェアのいくつかを利用してユーザ認証結果を復元し、前記ユーザ認証結果が受理である場合、前記ユーザ装置は前記機器認証サーバ装置とサーバサイド補助装置とともに前記機器認証を実行し、前記ユーザ認証結果が拒否である場合、前記サーバサイド補助装置とともに機器認証シミュレートMPCを実行し、
前記機器認証シミュレートMPCにおいて、
前記ユーザ装置は前記機器認証における前記ユーザ装置が行う処理と、前記機器認証における前記機器認証サーバ装置が行う処理の双方を行い、
前記サーバサイド補助装置は前記機器認証における処理と同一の処理を行う、
請求項1ないし6および12ないし17のいずれか1項に記載の認証システム。 - 前記ユーザサイド補助装置は、前記ユーザが前記ユーザ認証で拒否された回数をカウントし、
前記ユーザ装置は、前記ユーザ認証の結果が拒否である場合、前記機器認証を実行することなく前記ユーザに認証が拒否された旨を通知し、
前記ユーザサイド補助装置は、前記ユーザ認証で拒否された回数が一定値を超えた後、前記ユーザを認証することを拒否する、
請求項18または19に記載の認証システム。 - 前記認証情報分散シェア生成では前記認証用ユーザ固有情報から認証情報を計算し、前記認証情報から前記認証情報分散シェアを計算する、
請求項2に記載の認証システム。 - 前記ユーザ装置は前記認証情報分散シェア生成を実行する、
請求項21に記載の認証システム。 - 前記認証情報分散シェア生成を実行するユーザ認証分散シェア生成装置を備える、
請求項21に記載の認証システム。 - 前記認証情報分散シェア生成では、前記認証用ユーザ固有情報を秘密分散して得られた認証用ユーザ固有情報分散シェアを前記ユーザサイド補助装置に送信し、
前記ユーザサイド補助装置は前記認証用ユーザ固有情報分散シェアを用いて認証情報分散シェア生成マルチパーティ計算を実行して前記認証情報分散シェアを得る、
請求項2に記載の認証システム。 - 前記ユーザ装置は前記認証情報分散シェア生成マルチパーティ計算に参加しない、
請求項24に記載の認証システム。 - 前記検証情報分散シェア生成では、前記検証用ユーザ固有情報から検証情報を計算し、前記検証情報を秘密分散して前記検証情報分散シェアを取得する、
請求項1ないし25のいずれか1項に記載の認証システム。 - 前記ユーザ装置は前記ユーザ認証事前準備において前記検証情報分散シェア生成を実行する、
請求項26に記載の認証システム。 - 前記ユーザ認証事前準備において前記検証情報分散シェア生成を実行する検証情報分散シェア生成装置を備える、
請求項26に記載の認証システム。 - 前記検証情報分散シェア生成では、検証情報分散シェア作成マルチパーティ計算を実行することで前記検証情報分散シェアを作成し、前記検証情報分散シェア作成マルチパーティ計算を行う前に、
前記検証用ユーザ固有情報から検証用ユーザ固有情報の分散シェアであるMPC入力検証用ユーザ固有情報分散シェアを作り、前記MPC入力検証用ユーザ固有情報分散シェアを前記検証情報分散シェア作成マルチパーティ計算に参加する装置に配り、
前記検証情報分散シェア作成マルチパーティ計算に参加する装置は前記MPC入力検証用ユーザ固有情報分散シェアを前記検証情報分散シェア作成マルチパーティ計算に用いる、
請求項1ないし25のいずれか1項に記載の認証システム。 - 前記ユーザサイド補助装置は前記MPC入力検証用ユーザ固有情報分散シェアを受け取り、
前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算に参加し、
前記ユーザ装置は前記検証情報分散シェア作成マルチパーティ計算に参加せず、
前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算の出力として前記検証情報分散シェアを取得する、
請求項29に記載の認証システム。 - 前記検証情報分散シェア生成では、前記検証情報分散シェア作成マルチパーティ計算を実行するとともに、事前準備時入力検証用ユーザ固有情報分散シェア作成と、MPC入力検証用ユーザ固有情報分散シェア作成を実行し、
前記ユーザ認証事前準備では、前記事前準備時入力検証用ユーザ固有情報分散シェア作成を実行し、
前記ユーザ認証では、前記MPC入力検証用ユーザ固有情報分散シェア作成と前記検証情報分散シェア作成マルチパーティ計算を実行し、
前記事前準備時入力検証用ユーザ固有情報分散シェア作成では、前記検証用ユーザ固有情報を入力として受け取り、前記検証用ユーザ固有情報の分散シェアである事前準備時検証用ユーザ固有情報分散シェアを出力して、前記事前準備時検証用ユーザ固有情報分散シェアを必要とする装置に送り、前記ユーザ装置および前記ユーザサイド補助装置は前記事前準備時検証用ユーザ固有情報分散シェアを保管し、
前記MPC入力検証用ユーザ固有情報分散シェア作成では、前記ユーザ装置は自身の保有する前記事前準備時検証用ユーザ固有情報分散シェアから求まるデータを前記ユーザサイド補助装置に送り、前記ユーザサイド補助装置は自身の保有する前記事前準備時検証用ユーザ固有情報分散シェアと前記ユーザ装置から送られてきた前記事前準備時検証用ユーザ固有情報分散シェアから求めた前記データとを用いて前記MPC入力検証用ユーザ固有情報分散シェアを作る、
請求項29または30に記載の認証システム。 - 前記事前準備時入力検証用ユーザ固有情報分散シェア作成では、Mをユーザサイド補助装置の台数とするとき、前記検証用ユーザ固有情報を前記M個に秘密分散して分散シェアe[1],...,e[M]を作り、i=1,...,Mに対して前記分散シェアe[i]を2つに秘密分散して分散シェアc[i]とd[i]を作り、前記分散シェアd[i]をi番目の前記ユーザサイド補助装置の事前準備時入力検証用ユーザ固有情報分散シェアとし、前記分散シェアc[1],...,c[M]を前記ユーザ装置の事前準備時入力検証用ユーザ固有情報分散シェアとし、
前記MPC入力検証用ユーザ固有情報分散シェア作成では、i=1,...,Mに対し、前記(c[1],...,c[M])から求まるデータであるc[i]を前記ユーザ装置がi番目の前記ユーザサイド補助装置に送り、i番目の前記ユーザサイド補助装置は自身が保有する前記分散シェアd[i]と前記ユーザ装置から送られてきた前記分散シェアc[i]とを用いて秘密分散の復元を実行することで前記分散シェアe[i]を計算し、前記分散シェアe[i]を前記MPC入力検証用ユーザ固有情報分散シェアとして用いる、
請求項31に記載の認証システム。 - 前記検証情報分散シェア生成では、前記検証情報分散シェア作成マルチパーティ計算を実行するとともに、MPC入力検証用ユーザ固有情報分散シェア作成と保存用分散シェア作成と検証情報分散シェア復元を実行し、
前記ユーザ認証事前準備では、前記MPC入力検証用ユーザ固有情報分散シェア作成と前記検証情報分散シェア作成マルチパーティ計算と前記保存用分散シェア作成を実行し、
前記ユーザ認証では、前記検証情報分散シェア復元を実行し、
前記MPC入力検証用ユーザ固有情報分散シェア作成では、前記検証用ユーザ固有情報を秘密分散して分散シェアである前記MPC入力検証用ユーザ固有情報分散シェアを作成し、前記MPC入力検証用ユーザ固有情報分散シェアを前記ユーザサイド補助装置に送り、
前記保存用分散シェア作成では、前記検証情報分散シェア作成マルチパーティ計算の出力として前記ユーザサイド補助装置が保有する前記検証情報分散シェアを用いて保存用分散シェアを作成し、前記保存用分散シェアを前記ユーザ装置と前記ユーザサイド補助装置が保管し、
前記検証情報分散シェア復元では、前記ユーザ装置は自身が保持する保存用分散シェアから求まるデータを前記ユーザサイド補助装置に送信し、前記ユーザサイド補助装置は自身が保管している前記保存用分散シェアと前記ユーザ装置が送信した前記ユーザ装置の前記保存用分散シェアから求まる前記データとを用いて前記検証情報分散シェアを計算する、
請求項29または30に記載の認証システム。 - 前記保存用分散シェア作成では、Mをユーザサイド補助装置の台数とするとき、i=1,...,Mに対し、i台目の前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算の出力である前記検証情報分散シェアv[i]を2つに秘密分散することで前記検証情報分散シェアv[i]の分散シェアu[i]とw[i]を求め、i台目の前記ユーザサイド補助装置は前記分散シェアw[i]を自身の前記保存用分散シェアとして保管し、前記分散シェアu[i]を前記ユーザ装置に送り、前記ユーザ装置はi=1,...,Mに対し、前記分散シェアu[1],...,u[M]を受信して前記分散シェアu[1],...,u[M]を自身の前記保存用分散シェアとして保管し、
前記検証情報分散シェア復元では、i=1,...,Mに対し、前記ユーザ装置は自身が保持する前記保存用分散シェアu[1],...,u[M]から求まるデータu[i]をi番目の前記ユーザサイド補助装置に送信し、i=1,...,Mに対し、i番目の前記ユーザサイド補助装置は自身が保持する保存用シェアであるw[i]と前記ユーザ装置から送信された前記データu[i]とを用いて秘密分散の復元処理を行うことで、前記検証情報分散シェアv[i]を復元する、
請求項33に記載の認証システム。 - 請求項1ないし34のいずれか1項に記載の認証システムにおける前記ユーザ装置。
- 請求項1ないし34のいずれか1項に記載の認証システムにおける前記ユーザサイド補助装置。
- ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
前記ユーザ装置が、秘密鍵の分散シェアを生成するステップと、
前記ユーザ装置が検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、
前記ユーザ装置が前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含み、
ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
前記ユーザ認証事前準備では前記ユーザ装置が前記ユーザ認証に先立って必要情報を準備するステップを含み、
前記機器認証事前準備では前記ユーザ装置が前記機器認証に先立って必要情報を準備するステップとを含み、
前記ユーザ認証事前準備では、前記ユーザ装置が前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得するステップを含み、
前記検証情報分散シェア生成では、前記ユーザ装置が前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算するステップと、前記ユーザサイド補助装置は前記検証情報分散シェアを取得するステップと、を含み、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成するステップと、前記ユーザ装置が前記秘密鍵を秘密分散するステップと、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送るステップと、前記ユーザサイド補助装置が前記秘密鍵分散シェアを保管のために格納するステップと、を含み、
前記ユーザ認証では、前記ユーザ装置が前記ユーザの固有情報である認証用ユーザ固有情報を取得するステップと、前記ユーザ装置が前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証するステップと、前記ユーザサイド補助装置が前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加するステップと、前記ユーザサイド補助装置が前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得するステップと、を含み、
前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受けるステップと、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置が前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信するステップと、前記ユーザ装置が前記機器認証サーバ装置から送られてきた前記検証に必要なデータを受信するステップと、前記ユーザ装置が前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成するステップと、を含み、
前記ユーザ装置が前記証明に必要なデータを作成するために、前記機器認証サーバ装置から送られてきた前記検証に必要なデータを加工して得られたデータを前記ユーザサイド補助装置に送信するステップと、前記ユーザサイド補助装置が前記ユーザ装置から送られてきた前記加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行うステップと、前記ユーザ装置が前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを加工したものを前記証明に必要なデータとして前記機器認証サーバ装置に送るステップと、を含む、
認証方法。 - ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
前記ユーザサイド補助装置が、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、
前記ユーザサイド補助装置が、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含み、
ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
前記ユーザ認証事前準備では前記ユーザ装置が前記ユーザ認証に先立って必要情報を準備するステップを含み、
前記機器認証事前準備では前記ユーザ装置が前記機器認証に先立って必要情報を準備するステップを含み、
前記ユーザ認証事前準備では、前記ユーザ装置が前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得するステップを含み、
前記検証情報分散シェア生成では、前記ユーザ装置が前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算するステップと、前記ユーザサイド補助装置は前記検証情報分散シェアを取得するステップと、を含み、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成するステップと、前記ユーザ装置が前記秘密鍵を秘密分散するステップと、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送るステップと、前記ユーザサイド補助装置が前記秘密鍵分散シェアを保管のために格納するステップと、を含み、
前記ユーザ認証では、前記ユーザ装置が前記ユーザの固有情報である認証用ユーザ固有情報を取得するステップと、前記ユーザ装置が前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証するステップと、前記ユーザサイド補助装置が前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加するステップと、前記ユーザサイド補助装置が前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得するステップと、を含み、
前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受けるステップと、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置が前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信するステップと、前記ユーザ装置が前記機器認証サーバ装置から送られてきた前記検証に必要なデータを受信するステップと、前記ユーザ装置が前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成するステップと、を含み、
前記ユーザ装置が前記証明に必要なデータを作成するために、前記機器認証サーバ装置から送られてきた前記検証に必要なデータを加工して得られたデータを前記ユーザサイド補助装置に送信するステップと、前記ユーザサイド補助装置が前記ユーザ装置から送られてきた前記加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行うステップと、前記ユーザ装置が前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを加工したものを前記証明に必要なデータとして前記機器認証サーバ装置に送るステップと、を含む、
認証方法。 - ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
前記ユーザ装置が秘密鍵の分散シェアを生成する処理と、
前記ユーザ装置が検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、
前記ユーザ装置が前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザ装置に設けられたコンピュータに実行させるプログラムであって、
ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
前記ユーザ認証事前準備では前記ユーザ装置が前記ユーザ認証に先立って必要情報を準備する処理をコンピュータに実行させ、
前記機器認証事前準備では前記ユーザ装置が前記機器認証に先立って必要情報を準備する処理をコンピュータに実行させ、
前記ユーザ認証事前準備では、前記ユーザ装置が前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得する処理をコンピュータに実行させ、
前記検証情報分散シェア生成では、前記ユーザ装置が前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算する処理と、前記ユーザサイド補助装置は前記検証情報分散シェアを取得する処理と、をコンピュータに実行させ、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成する処理と、前記ユーザ装置が前記秘密鍵を秘密分散する処理と、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送る処理と、前記ユーザサイド補助装置が前記秘密鍵分散シェアを保管のために格納する処理と、をコンピュータに実行させ、
前記ユーザ認証では、前記ユーザ装置が前記ユーザの固有情報である認証用ユーザ固有情報を取得する処理と、前記ユーザ装置が前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証する処理と、前記ユーザサイド補助装置が前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加する処理と、前記ユーザサイド補助装置が前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得する処理と、をコンピュータに実行させ、
前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受ける処理と、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置が前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信する処理と、前記ユーザ装置が前記機器認証サーバ装置から送られてきた前記検証に必要なデータを受信する処理と、前記ユーザ装置が前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成する処理と、をコンピュータに実行させ、
前記ユーザ装置が前記証明に必要なデータを作成するために、前記機器認証サーバ装置から送られてきた前記検証に必要なデータを加工して得られたデータを前記ユーザサイド補助装置に送信する処理と、前記ユーザサイド補助装置が前記ユーザ装置から送られてきた前記加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行う処理と、前記ユーザ装置が前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを加工したものを前記証明に必要なデータとして前記機器認証サーバ装置に送る処理と、をコンピュータに実行させる、
プログラム。 - ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
前記ユーザサイド補助装置が検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、
前記ユーザサイド補助装置が前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザサイド補助装置に設けられたコンピュータに実行させるプログラムであって、
ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
前記ユーザ認証事前準備では前記ユーザ装置が前記ユーザ認証に先立って必要情報を準備する処理をコンピュータに実行させ、
前記機器認証事前準備では前記ユーザ装置が前記機器認証に先立って必要情報を準備する処理をコンピュータに実行させ、
前記ユーザ認証事前準備では、前記ユーザ装置が前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得する処理をコンピュータに実行させ、
前記検証情報分散シェア生成では、前記ユーザ装置が前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算する処理と、前記ユーザサイド補助装置は前記検証情報分散シェアを取得する処理と、をコンピュータに実行させ、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成する処理と、前記ユーザ装置が前記秘密鍵を秘密分散する処理と、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送る処理と、前記ユーザサイド補助装置が前記秘密鍵分散シェアを保管のために格納する処理と、をコンピュータに実行させ、
前記ユーザ認証では、前記ユーザ装置が前記ユーザの固有情報である認証用ユーザ固有情報を取得する処理と、前記ユーザ装置が前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証する処理と、前記ユーザサイド補助装置が前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加する処理と、前記ユーザサイド補助装置が前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得する処理と、をコンピュータに実行させ、
前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受ける処理と、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置が前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信する処理と、前記ユーザ装置が前記機器認証サーバ装置から送られてきた前記検証に必要なデータを受信する処理と、前記ユーザ装置が前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成する処理と、をコンピュータに実行させ、
前記ユーザ装置が前記証明に必要なデータを作成するために、前記機器認証サーバ装置から送られてきた前記検証に必要なデータを加工して得られたデータを前記ユーザサイド補助装置に送信する処理と、前記ユーザサイド補助装置が前記ユーザ装置から送られてきた前記加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行う処理と、前記ユーザ装置が前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを加工したものを前記証明に必要なデータとして前記機器認証サーバ装置に送る処理と、をコンピュータに実行させる、
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021179792A JP2022009960A (ja) | 2016-05-13 | 2021-11-02 | 認証システム、認証方法およびプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016097422 | 2016-05-13 | ||
JP2016097422 | 2016-05-13 | ||
PCT/JP2017/018021 WO2017195886A1 (ja) | 2016-05-13 | 2017-05-12 | 認証システム、認証方法およびプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021179792A Division JP2022009960A (ja) | 2016-05-13 | 2021-11-02 | 認証システム、認証方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017195886A1 JPWO2017195886A1 (ja) | 2019-03-14 |
JP6973385B2 true JP6973385B2 (ja) | 2021-11-24 |
Family
ID=60267203
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018517093A Active JP6973385B2 (ja) | 2016-05-13 | 2017-05-12 | 認証システム、認証方法およびプログラム |
JP2021179792A Pending JP2022009960A (ja) | 2016-05-13 | 2021-11-02 | 認証システム、認証方法およびプログラム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021179792A Pending JP2022009960A (ja) | 2016-05-13 | 2021-11-02 | 認証システム、認証方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11063941B2 (ja) |
JP (2) | JP6973385B2 (ja) |
WO (1) | WO2017195886A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7272363B2 (ja) | 2017-08-30 | 2023-05-12 | インファー,インク. | 高精度プライバシ保護実数値関数評価 |
WO2019110380A1 (en) * | 2017-12-04 | 2019-06-13 | Koninklijke Philips N.V. | Nodes and methods of operating the same |
GB201720753D0 (en) * | 2017-12-13 | 2018-01-24 | Nchain Holdings Ltd | Computer-implemented system and method |
SG11202009317SA (en) * | 2018-03-29 | 2020-10-29 | Visa Int Service Ass | Consensus-based online authentication |
CN110661610B (zh) * | 2018-06-29 | 2020-11-03 | 创新先进技术有限公司 | 安全多方计算协议的输入获取方法和装置 |
EP3909198A4 (en) * | 2019-02-08 | 2022-03-23 | Keyless Technologies Ltd | AUTHENTICATION PROCESSING SERVICE |
WO2020172683A1 (en) | 2019-02-22 | 2020-08-27 | Inpher, Inc. | Arithmetic for secure multi-party computation with modular integers |
US11379616B2 (en) | 2019-03-25 | 2022-07-05 | Identiq Protocol Ltd. | System and method for providing anonymous validation of a query among a plurality of nodes in a network |
CN113315631B (zh) * | 2021-06-09 | 2021-12-21 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
US11625377B1 (en) * | 2022-02-03 | 2023-04-11 | TripleBlind, Inc. | Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets |
CN114626860B (zh) * | 2022-05-12 | 2022-08-05 | 武汉和悦数字科技有限公司 | 用于线上商品支付的身份动态识别方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4555859B2 (ja) * | 2005-07-13 | 2010-10-06 | 日本電信電話株式会社 | 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 |
JP2009272737A (ja) * | 2008-05-01 | 2009-11-19 | Panasonic Corp | 秘匿認証システム |
JP2011034259A (ja) * | 2009-07-31 | 2011-02-17 | Hitachi Information & Communication Engineering Ltd | 携帯型暗証番号管理装置及びカード情報処理システム |
JP5604176B2 (ja) | 2010-05-12 | 2014-10-08 | 日本放送協会 | 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム |
EP3101645B1 (en) * | 2014-01-28 | 2019-09-04 | Nippon Telegraph and Telephone Corporation | Secure computation method, secure computation system, secure computation server, registrant terminal, user terminal and program |
US10178090B2 (en) * | 2015-02-27 | 2019-01-08 | Bar-Ilan University | System and methods for protecting keys using garbled circuits |
JP6046765B2 (ja) * | 2015-03-24 | 2016-12-21 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | 秘密情報にアクセスするための、多重パーティ及び多重レベルの承認を可能にするシステム及び方法 |
US9860237B2 (en) * | 2015-10-08 | 2018-01-02 | International Business Machines Corporation | Password-based authentication in server systems |
-
2017
- 2017-05-12 JP JP2018517093A patent/JP6973385B2/ja active Active
- 2017-05-12 US US16/085,659 patent/US11063941B2/en active Active
- 2017-05-12 WO PCT/JP2017/018021 patent/WO2017195886A1/ja active Application Filing
-
2021
- 2021-11-02 JP JP2021179792A patent/JP2022009960A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022009960A (ja) | 2022-01-14 |
JPWO2017195886A1 (ja) | 2019-03-14 |
US20190116180A1 (en) | 2019-04-18 |
WO2017195886A1 (ja) | 2017-11-16 |
US11063941B2 (en) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6973385B2 (ja) | 認証システム、認証方法およびプログラム | |
AU2021203815B2 (en) | Methods for secure cryptogram generation | |
Yu et al. | An efficient generic framework for three-factor authentication with provably secure instantiation | |
WO2020182151A1 (zh) | 用于拆分和恢复密钥的方法、程序产品、存储介质和系统 | |
CN103124269B (zh) | 云环境下基于动态口令与生物特征的双向身份认证方法 | |
US11824991B2 (en) | Securing transactions with a blockchain network | |
Das | A secure and effective user authentication and privacy preserving protocol with smart cards for wireless communications | |
CN110932870B (zh) | 一种量子通信服务站密钥协商系统和方法 | |
CN112889047A (zh) | 利用多个装置以增强生物计量认证安全 | |
EP3121991B1 (en) | System and method of user authentication using digital signatures | |
EP4046325B1 (en) | Digital signature generation using a cold wallet | |
JP2016502377A (ja) | 安全計算を用いて安全性を提供する方法 | |
JP7259868B2 (ja) | システムおよびクライアント | |
CN109379176B (zh) | 一种抗口令泄露的认证与密钥协商方法 | |
JP7231023B2 (ja) | 照合システム、クライアントおよびサーバ | |
Odelu et al. | A secure and efficient ECC‐based user anonymity preserving single sign‐on scheme for distributed computer networks | |
CN110557246A (zh) | 基于一次性非对称密钥对和可移动身份识别装置的抗量子计算门禁方法和系统 | |
CN110519222A (zh) | 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统 | |
CN111740995B (zh) | 一种授权认证方法及相关装置 | |
Zhu et al. | A biometrics-based multi-server key agreement scheme on chaotic maps cryptosystem. | |
Mishra et al. | An improved biometric–based remote user authentication scheme for connected healthcare | |
CN110768792B (zh) | 主密钥生成方法、装置及敏感安全参数的加解密方法 | |
EP3035589A1 (en) | Security management system for authenticating a token by a service provider server | |
Kutyłowski et al. | Restricted identification scheme and diffie-hellman linking problem | |
Limbasiya et al. | A two-factor key verification system focused on remote user for medical applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210818 |
|
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: 20211005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6973385 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |