KR20160013905A - 페어링을 이용한 다중 요소 제로 지식 인증 - Google Patents

페어링을 이용한 다중 요소 제로 지식 인증 Download PDF

Info

Publication number
KR20160013905A
KR20160013905A KR1020157035150A KR20157035150A KR20160013905A KR 20160013905 A KR20160013905 A KR 20160013905A KR 1020157035150 A KR1020157035150 A KR 1020157035150A KR 20157035150 A KR20157035150 A KR 20157035150A KR 20160013905 A KR20160013905 A KR 20160013905A
Authority
KR
South Korea
Prior art keywords
entity
secret
client
pairing
factor
Prior art date
Application number
KR1020157035150A
Other languages
English (en)
Inventor
케이알런 맥커스컬
브라이언 스펙터
마이클 스캇
Original Assignee
미라클 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미라클 리미티드 filed Critical 미라클 리미티드
Publication of KR20160013905A publication Critical patent/KR20160013905A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

전체 비밀을 제2 엔티티에 전송하지 않고 그것이 전체 비밀을 소유하고 있음을 상기 제2 엔티티에 증명함으로써 상기 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법은: 상기 제1 엔티티에서 사용자로부터 입력을 수신하는 단계로서, 상기 전체 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 전체 비밀의 제2 인자에 관한 것인, 상기 수신 단계; 및 상기 제1 엔티티에서 상기 재구성된 전체 비밀을 사용하여 산출을 실행하며 상기 산출의 결과들을 상기 제2 엔티티에 전송하는 단계로서, 상기 결과들은 상기 제2 엔티티에서 페어링 산출에 입력을 제공하는, 상기 산출 실행 및 전송 단계를 포함한다. 제2 엔티티는 클라이언트가 비밀을 소유하고 있는지를 결정하기 위해 페어링 산출을 실행한다. 제1 엔티티는 클라이언트일 수 있으며 제2 엔티티는 서버일 수 있다. 신뢰 기관은 비밀을 클라이언트에 발행하며 클라이언트가 그것의 비밀을 소유하고 있는지를 결정하기 위해 그것이 산출을 실행하도록 허용하기 위해 또 다른 비밀을 서버에 또한 발행하였을 수 있다.

Description

페어링을 이용한 다중 요소 제로 지식 인증{MULTI-FACTOR ZERO-KNOWLEDGE AUTHENTICATION USING PARINGS}
본 명세서는 보안에 관한 것이다. 보다 특히, 전적으로는 아니지만, 그것은 제2 엔티티에 대한 제1 엔티티의 인증에 관한 것이다.
서버가 공개 키 암호 기법의 표준 방법들을 사용하여 클라이언트에 스스로를 인증하는 것은 기본적으로 해결된 문제이다. 공개 키 기반시설(PKI)은 결과적으로 이러한 기능을 가능하게 하는 보안 소켓 계층(SSL) 프로토콜을 지원한다. PKI에서의 단일-고장-점, 및 그러므로 공격들의 초점은 인증 기관이다. 그러나, 이러한 엔티티는 흔히 오프-라인이고, 잘 방어되며, 쉽게 접할 수 없다. 클라이언트에 대해 서버에 스스로를 인증하는 것은 훨씬 더 문제가 있다. 가장 간단하며 가장 일반적인 메커니즘은 사용자명/패스워드이다. 전혀 만족스럽지 않지만, 단지 클라이언트에 대한 책임은 패스워드를 생성하고 기억하는 것이며 - 현실은 우리가 클라이언트에게 보다 큰 비밀들을 보호하기 위해 충분히 정교하거나 또는 잘 조직되도록 예상할 수 없다는 것이다. 그러나 메커니즘으로서 사용자명/패스워드는 실패하고 있다. 소위 서버들 상에서의 제로-데이 공격들은 흔히 패스워드들에 관련된 정보를 포함한 파일들을 복구하며, 패스워드들이 충분히 높은 엔트로피가 아니라면 그것들은 발견될 것이다. 흔히 적용된 패치는 클라이언트들이 길고, 복잡하고, 기억하기 어려운 패스워드들을 채택한다고 주장하는 것이다. 이것은 본질적으로 인증 서버가 성공적으로 해킹될 경우에(점점 더 가능성 있는) 그것들을 보호하기 위해 클라이언트에 부여된 방어의 제2 라인이다. 이상적인 세계에서, 클라이언트는,서버가 클라이언트가 스스로를 인증하게 할 수 있는 시도들의 수를 제한할 수 있으므로, 저 엔트로피 패스워드를 사용할 수 있어야 한다는 것을 주의하자.
제안된 대안은 다인자 인증의 채택이다. 가장 간단한 경우에, 클라이언트는 토큰 및 패스워드 양쪽 모두의 소유를 입증해야 한다. 은행들은 이러한 방법들을 채택의 선두에 있지만, 토큰은 언제나 몇몇 종류의 물리적 디바이스이다. 암호 기법의 난처한 비밀은 지금까지 어떤 완전히 만족스러운 수단도 소프트웨어에서 전체적으로 2-인자 인증을 구현하기 위해 발견되지 않았다는 것이다.
이러한 특허 명세서는 다양한 아이디어들 및 기능들, 뿐만 아니라 또한 그것들의 창의적 표현을 설명한다. 본 특허 문서의 개시의 일 부분은 그러므로 저작권에 대한 권리가 이루어지며 통지가 주어지는 자료를 포함한다: Certivox Limited (17 U.S.C. 401에 의하여). 저작권 보호에 대한 권리는 본 특허 명세서에 예시되며 설명된 본 발명의 실시예들과 연관된 모든 보호 가능한 표현에 대해 이루어진다.
저작권 소유자는 그것이 특허 상표청 특허 파일 또는 기록들에 나타나지만, 무엇이든 모든 다른 저작권 권한들을 보유하므로, 특허 문서 또는 특허 개시의 누군가에 의한 팩시밀리 재생에 대한 이의는 없다. 무엇이든 임의의 저작권 하에서 어떤 명확한 또는 내포된 허가도 그러므로 승인되지 않는다.
본 발명의 양상에 따르면, 제1 엔티티가 제2 엔티티에 전체 비밀을 전송하지 않고 상기 전체 비밀을 소유한다는 것을 상기 제2 엔티티에 증명함으로써 상기 제2 엔티티에 스스로를 인증하는 방법이 제공되어 있으며, 상기 방법은: 상기 제1 엔티티에서 사용자로부터 입력을 수신하는 단계로서, 상기 전체 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 비밀의 제2 인자에 관한 것인, 상기 사용자로부터 입력을 수신하는 단계; 상기 제1 엔티티에서 적어도 상기 제1 인자 및 상기 입력으로부터 상기 전체 비밀을 재구성하는 단계; 및 상기 제1 엔티티에서 재구성된 상기 전체 비밀을 사용하여 산출을 실행하며 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 단계로서, 상기 결과들은 상기 제2 엔티티에서 페어링 산출에 입력을 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송 단계를 포함한다.
상기 결과들은 상기 제1 엔티티가 상기 비밀을 소유하는지 여부를 결정하기 위해 상기 제2 엔티티에 의해 사용되도록 상기 제2 엔티티에 전송될 수 있다. 상기 제2 엔티티는 상기 제1 엔티티가 키를 소유하고 있는지를 결정하기 위해 산출을 실행하며 상기 페어링 산출은 상기 산출의 부분을 형성할 수 있다.
상기 방법은 컴퓨터-구현 방법일 수 있다. 상기 제1 엔티티는 클라이언트일 수 있으며 상기 제2 엔티티는 백-엔드 서버일 수 있다. 상기 클라이언트는 컴퓨팅 디바이스의 브라우저에서 실행된 프로그램일 수 있다. 상기 입력은 사용자로부터 수신될 수 있다. 상기 사용자는 사람 또는 컴퓨팅 디바이스일 수 있다.
결과적으로, 서버는 클라이언트가 서버에 그것의 비밀을 전송하지 않고 상기 클라이언트를 인증할 수 있다. 게다가, 페어링 계산에 수반된 헤비(heavy) 프로세싱은 서버에서 실행될 수 있다.
상기 비밀은 상기 제1 및 제2 인자를 포함하는 두 개의 인자들로 분할될 수 있고, 상기 입력은 상기 제1 인자의 추측을 포함할 수 있으며 상기 비밀은 상기 제1 인자 및 상기 제2 인자에 대한 추측으로부터 재구성된다.
상기 비밀은 대수 곡선 상에서의 포인트에 대응할 수 있으며 상기 페어링 산출은 상기 대수 곡선 상에서의 암호 페어링을 포함할 수 있다. 대수 곡선은 타원 곡선일 수 있다. 대안적으로, 그것은 초-타원 곡선일 수 있다.
방법은 상기 제1 엔티티에서 상기 제2 엔티티로부터 챌린지(challenge)를 수신하는 단계를 더 포함할 수 있으며 여기에서 복구된 상기 비밀을 사용하는 산출은 상기 제2 엔티티에 전송될 결과를 획득하기 위해 챌린지를 사용할 수 있다.
상기 제1 엔티티에서의 산출은 상기 제1 엔티티에서 상기 비밀에 대응하는 포인트로부터, 상기 대수 곡선 상에서의 포인트, 또는 적어도 상기 비밀에 대응하는 포인트로부터 도출되는 포인트의 좌표들을 산출하는 것을 포함할 수 있으며, 여기에서 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 것은 상기 포인트의 좌표들을 전송하는 것을 포함할 수 있다.
상기 제1 엔티티에서의 산출은, 상기 대수 곡선 상에서 또 다른 포인트를 획득하기 위해 상기 제1 엔티티에서, 상기 대수 곡선 상에서, 상기 비밀에 대응하는 포인트, 또는 적어도 상기 비밀에 대응하는 포인트로부터 도출된 포인트를 곱하는 것을 포함할 수 있으며 여기에서 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 것은 상기 다른 포인트의 좌표들을 전송하는 것을 포함할 수 있다.
상기 제1 엔티티의 비밀은 신뢰 기관에 의해 발생될 수 있으며 상기 제1 엔티티의 아이덴티티 및 신뢰 기관에 의해 저장된 마스터 비밀에 기초할 수 있다. 상기 신뢰 기관은 독립 엔티티일 수 있다. 상기 신뢰 기관은 또한 상기 제2 엔티티에 별개의 비밀을 발행할 수 있으며 상기 제2 엔티티는 상기 제1 엔티티를 인증하기 위해 상기 비밀을 요구할 수 있다. 상기 제2 엔티티는 상기 제1 엔티티를 인증하기 위해 그것의 산출들에서 상기 제2 엔티티 비밀을 사용할 수 있다.
상기 방법은 상기 제1 엔티티에서 랜덤 값(x)을 생성하는 단계로서, x가 q보다 낮은, 상기 랜덤 값(x)을 생성하는 단계; 상기 제1 엔티티에서
Figure pct00001
를 산출하는 단계로서, 여기에서
Figure pct00002
는 상기 제1 엔티티와 연관된 아이덴티티이며
Figure pct00003
는 대수 곡선 상에서의 포인트에 대한 아이덴티티를 해싱하는 해시 함수인, 상기 산출하는 단계; 상기 제1 엔티티에서의 상기 곡선 상에서 또 다른 포인트(
Figure pct00004
)를 산출하며
Figure pct00005
및 U를 상기 제2 엔티티에 송신하는 단계; 및 상기 제2 엔티티에서 생성된 랜덤 값(y)을 수신하는 단계로서, y는 q보다 낮은, 상기 랜덤 값(y)을 수신하는 단계를 더 포함할 수 있으며, 재구성된 상기 키를 사용하여 상기 제1 엔티티에서 상기 산출을 실행하며 상기 결과들을 상기 제2 엔티티에 전송하는 단계는 새로운 포인트(
Figure pct00006
)를 산출하며 V를 상기 제2 엔티티에 전송하는 단계를 포함한다. 상기 제1 인자는 포인트(
Figure pct00007
)의 좌표들에 대응할 수 있고, 상기 입력은 값(
Figure pct00008
)을 포함할 수 있고, 클라이언트 비밀은 신뢰 기관에 의해 발행되며 마스터 비밀(s)과 클라이언트 아이덴티티에 대응하는 포인트(A)를 곱함으로써 신뢰 기관에 의해 획득될 수 있다. 페어링 산출은 매핑(
Figure pct00009
)을 포함할 수 있으며 여기에서
Figure pct00010
Figure pct00011
는 별개이며 q는 그룹들(
Figure pct00012
,
Figure pct00013
Figure pct00014
)의 위수(order, 位數)이다.
상기 방법은 제1 엔티티에서 시간 허용치를 수신하는 단계를 더 포함할 수 있으며 재구성된 상기 비밀을 사용하는 산출은 또한 상기 제2 엔티티에 전송하기 위해 상기 결과들을 획득하기 위해 상기 시간 허용치를 사용할 수 있다. 상기 시간 허용치는 신뢰 기관에 의해 발행될 수 있으며 상기 시간 허용치는 제1 엔티티가 프로토콜을 완성할 자격이 있는 시간 기간으로부터 도출될 수 있다.
대안적으로, 상기 방법은 상기 제1 엔티티에서 시간 허용치를 수신하는 단계를 더 포함할 수 있으며 재구성된 상기 비밀을 사용한 산출은 상기 제2 엔티티에 전송하기 위한 결과들을 획득하기 위해 상기 시간 허용치를 또한 사용할 수 있다. 시간 허용치는 신뢰 기관에 의해 발행될 수 있으며 상기 시간 허용치는 상기 제1 엔티티가 프로토콜 및 부가적인 데이터를 완성하기 위한 자격이 있는 시간 기간으로부터 도출될 수 있다.
페어링 산출은 제1 엔티티를 인증하기 위해 제2 엔티티에서의 산출의 부분을 형성할 수 있으며 상기 방법은 입력이 상기 제2 인자에 대응하지 않음을 표시하는 응답을 제2 엔티티로부터 수신하는 단계 및 다시 인증하려고 노력하도록 상기 제1 엔티티에 요청하는 단계를 더 포함할 수 있다.
상기 페어링 산출은 상기 제1 엔티티를 인증하기 위해 상기 제2 엔티티에서 산출의 부분을 형성할 수 있으며 상기 방법은, 상기 제2 엔티티가 상기 제1 엔티티가 상기 비밀을 소유하고 있다고 결정하는 것에 응답하여, 상기 제1 엔티티가 상기 인증이 성공적이었다는 표시를 수신하는 단계를 더 포함할 수 있다.
상기 방법은 상기 제2 엔티티로부터 응답을 수신하는 단계 및 상기 제1 엔티티에서, 상기 응답에서의 데이터 값으로부터 암호화 키를 도출하는 단계를 더 포함할 수 있으며, 상기 응답에서의 상기 데이터 값은 상기 페어링 산출의 페이링의 결과들로부터 획득된다.
상기 페어링 산출은 매핑(
Figure pct00015
)을 포함할 수 있으며 여기에서
Figure pct00016
Figure pct00017
는 별개의 그룹들이며 q는 그룹들(
Figure pct00018
,
Figure pct00019
Figure pct00020
)의 위수이고, 상기 산출의 결과들은
Figure pct00021
에서, 상기 대수 곡선 상에서의 포인트(V)의 좌표들일 수 있고, 상기 매핑은 상기 포인트(V)를 제1 입력으로서 취하며
Figure pct00022
에서 대수 곡선 상에서의 제2 포인트를 제2 입력으로서 취할 수 있으며, 상기 제2 포인트는 상기 제2 엔티티와 연관되는 고정 포인트에 대응한다.
키를 도출하는 것은 데이터 값을 제2 엔티티에 알려지지 않은 값으로 제곱하는 것 및 상기 키를 획득하기 위해 결과들을 해싱하는 것을 포함할 수 있으며 상기 방법은 제2 엔티티에 대한 메시지들을 암호화하며 제2 엔티티로부터 수신된 메시지들을 복호화하기 위해 상기 키를 사용하는 단계를 더 포함할 수 있다.
상기 방법은 상기 제1 엔티티가 제1 및 제2 인자를 생성하기 위해 전체 비밀로부터 제2 인자를 추출하는 단계를 더 포함할 수 있다.
상기 제2 인자는 개인 식별 번호(PIN)를 포함할 수 있다. 그것은 대안적으로 패스워드 또는 소프트 생체인식을 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, 클라이언트 디바이스가 그것이 비밀을 엔티티에 전송하지 않고 비밀을 소유함을 상기 엔티티에 증명함으로써 인증 엔티티에 스스로를 인증하기 위한 컴퓨터 프로그램이 또한 제공되고 있으며, 상기 컴퓨터 프로그램은 클라이언트 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가 상기 설명된 방법을 실행하게 하는 지시들을 포함한다.
상기 컴퓨터 프로그램은 클라이언트 디바이스의 브라우저의 일부일 수 있거나, 또는 그것에서 실행될 수 있다. 인증 엔티티는 컴퓨팅 시스템일 수 있다. 상기 컴퓨팅 시스템은 인증 서버일 수 있다.
본 발명의 또 다른 양상에 따르면, 컴퓨터 프로그램을 저장한 비-일시적 유형의 컴퓨터 판독 가능한 매체가 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 제2 엔티티가 비밀 자체를 수신하지 않고 제1 엔티티가 비밀을 소유해야 함을 결정함으로써 제2 엔티티에 대해 상기 제1 엔티티를 인증하는 방법이 또한 제공되고 있으며, 상기 방법은: 상기 제2 엔티티에서, 상기 제1 엔티티에서 실행된 산출의 결과를 수신하는 단계로서, 상기 산출은 적어도 상기 비밀의 제1 인자 및 제2 인자로부터 상기 제1 엔티티에서 재구성되는 비밀을 사용하는, 상기 산출의 결과를 수신하는 단계; 및 상기 제1 엔티티가 상기 비밀을 소유하고 있음을 결정하기 위해 상기 제2 엔티티에서 산출을 실행하는 단계로서, 상기 산출은 상기 제1 엔티티로부터 수신된 상기 결과에 기초한 페어링 산출을 포함하는, 상기 산출을 실행하는 단계를 포함한다.
상기 방법은 컴퓨터-구현 방법일 수 있다. 상기 제1 엔티티는 클라이언트일 수 있다. 상기 제2 엔티티는 백 엔드 서버일 수 있다. 상기 클라이언트는 디바이스의 브라우저에서 실행된 프로그램일 수 있다.
상기 비밀은 상기 제1 및 제2 인자를 포함하는 두 개의 인자들로 분할될 수 있으며 상기 비밀은 상기 두 개의 인자들로부터 재구성될 수 있다.
상기 제1 엔티티 비밀은 대수 곡선 상에서의 포인트에 대응할 수 있으며 상기 페어링 산출은 상기 대수 곡선 상에서 페어링을 포함할 수 있다. 상기 곡선은 타원 또는 초-타원 곡선일 수 있다.
상기 페어링 산출은 입력으로서 상기 제1 엔티티로부터의 결과들을 직접 취할 수 있다. 대안적으로, 그것은 페어링 산출로의 입력을 도출하기 위해 제1 엔티티로부터의 결과들을 사용할 수 있다.
제1 엔티티가 제1 엔티티 비밀을 소유하고 있다고 결정하기 위한 산출은 또한 제2 엔티티와 연관되는 제2 엔티티 비밀을 요구할 수 있다.
제2 엔티티에서의 산출은 제1 엔티티가 비밀을 소유하고 있는지를 결정하기 위해 페어링들의 적(product)을 산출하는 것을 포함할 수 있으며, 상기 페어링들의 적은 클라이언트로부터 수신된 결과에 기초하여 제1 페어링, 및 제2 엔티티의 비밀에 기초한 제2 페어링을 포함한다. 페어링들의 적은 다중-페어링으로서 산출될 수 있다. 대안적으로, 그것은 그 후 함께 곱하여지는 두 개의 별개의 페어링들로서 산출될 수 있다.
제2 엔티티는 상기 페어링들의 적이 미리 결정된 값과 동일한지를 결정할 수 있으며 상기 적이 미리 결정된 값과 동일한 경우 제1 엔티티를 인증할 수 있다.
제1 엔티티의 비밀은 신뢰 기관에 의해 발행될 수 있으며 제1 엔티티의 아이덴티티 및 신뢰 기관에 의해 저장된 마스터 비밀에 기초할 수 있고 제2 엔티티의 비밀은 또한 신뢰 기관에 의해 발행될 수 있으며 곡선 상에서의 고정된 포인트 및 상기 마스터 비밀로부터 도출될 수 있다.
상기 방법은: 제1 엔티티로부터, 상기 제1 엔티티의 아이덴티티 및 상기 대수 곡선 상에서의 포인트(U)의 좌표들을 수신하는 단계; 상기 제2 엔티티에서 q보다 낮은, 랜덤 값(y)을 생성하며 상기 제1 엔티티에 전송하는 단계; 상기 제2 엔티티에서
Figure pct00023
를 산출하는 단계로서, 여기서
Figure pct00024
은 상기 제1 엔티티와 연관되는 아이덴티티이며
Figure pct00025
는 대수 곡선 상에서의 포인트에 대한 아이덴티티를 해싱하는 해시 함수인, 상기 산출하는 단계를 더 포함할 수 있다. 상기 제1 엔티티로부터 산출의 결과를 수신하는 것은 상기 제1 엔티티로부터 포인트(V)의 좌표들을 수신하는 것을 포함할 수 있으며, 여기서
Figure pct00026
이고, x는 q보다 낮은 또 다른 랜덤 값이며 상기 제1 엔티티의 비밀은 신뢰 기관에 의해 발행되고 포인트(sA)에 대응하며 s는 마스터 비밀이고, 상기 적어도 제1 인자는 상기 대수 곡선 상에서 포인트(
Figure pct00027
)에 대응하며 상기 제2 인자는 값(
Figure pct00028
)을 포함한다. 상기 페어링 산출을 산출하는 것은
Figure pct00029
를 획득하기 위해 제1 페어링(
Figure pct00030
) 및 제2 페어링(
Figure pct00031
)을 포함하는 페어링들의 적을 산출하는 것을 포함할 수 있으며 Q는 상기 곡선 상에서의 고정된 포인트이며 sQ는 상기 제2 엔티티의 비밀에 대응하는 곡선 상에서의 또 다른 포인트이고 상기 제1 페어링 및 상기 제2 페어링은 매핑(
Figure pct00032
)이며 여기에서
Figure pct00033
Figure pct00034
는 별개이며 q는 그룹들(
Figure pct00035
,
Figure pct00036
Figure pct00037
)의 위수이다. 상기 방법은
Figure pct00038
이면 연결을 거절하는 단계를 더 포함할 수 있다.
상기 방법은 상기 제1 엔티티가 프로토콜을 완성할 자격이 있는 시간 기간을 획득하는 단계 및 상기 제2 페어링에 대한 입력을 도출하기 위해 상기 제1 엔티티의 아이덴티티 및 상기 시간 기간을 사용하는 단계를 더 포함할 수 있다.
대안적으로, 상기 방법은 상기 제1 엔티티가 프로토콜 및 부가적인 데이터를 완성할 자격이 있는 시간 기간을 획득하는 단계 및 상기 제2 페어링에 대한 입력을 도출하기 위해 상기 제1 엔티티의 상기 시간 기간, 상기 부가적인 데이터 및 상기 아이덴티티를 사용하는 단계를 더 포함할 수 있다.
상기 방법은 상기 제1 엔티티가 암호화 키를 도출하도록 허용하기 위해 상기 제1 페어링의 결과로부터 도출된 값을 상기 제1 엔티티에 송신하는 단계를 더 포함할 수 있다.
상기 페어링 산출은 유형-3 매핑(
Figure pct00039
)인 페어링을 포함할 수 있으며 여기에서
Figure pct00040
Figure pct00041
은 별개이며 상기 페어링은 대수 곡선 상에서, 상기 제1 엔티티 비밀에 대응하는 포인트 또는 적어도 상기 제1 엔티티 비밀에 대응하는 포인트로부터 도출되는 포인트의 적어도 하나의 곱셈에 의해 도출되는,
Figure pct00042
에서 대수 곡선 상에서의 제1 포인트를 제1 입력으로서 취하며,
Figure pct00043
에서의 대수 곡선 상에서의 제2 포인트를 제2 입력으로서 취하고, 상기 제2 포인트는 제2 엔티티와 연관된 고정 포인트에 대응한다.
상기 방법은 상기 제2 엔티티가 제1 및 제2 엔티티 사이에서 추가 통신을 위해 사용될 암호화 키를 산출하는 단계를 더 포함할 수 있으며, 상기 암호화 키의 산출은 상기 제1 엔티티의 아이덴티티 및 상기 제2 엔티티 비밀에 기초하여 페어링을 산출하는 것을 포함한다. 상기 페어링은 상기 클라이언트의 아이덴티티 및 다른 데이터로부터 도출된 포인트를 입력으로서 취할 수 있다.
상기 제2 엔티티에서 수립된 상기 암호화 키는 상기 제1 엔티티에서 수립된 암호화 키와 동일하다. 새로운 키는 엔티티들이 새로운 통신 세션을 시작할 때마다 수립될 수 있다.
제2 엔티티에서 암호화 키를 획득하기 위한 페어링은 유형-3 매핑(
Figure pct00044
)일 수 있으며
Figure pct00045
Figure pct00046
는 별개이고 상기 페어링은 상기 대수 곡선 상에서, 적어도 제1 엔티티의 아이덴티티에 대응하는 포인트로부터 도출된 포인트의 적어도 하나의 곱셈에 의해 도출된,
Figure pct00047
에서의 대수 곡선 상에서의 포인트를 제1 입력으로서 취하며, 상기 제2 엔티티 비밀에 대응하는
Figure pct00048
에서의 대수 곡선 상에서의 포인트를 제2 입력으로서 취한다.
상기 제2 엔티티는 적어도 두 개의 구성요소들을 포함할 수 있으며, 각각은 상기 제2 엔티티의 비밀의 부분을 저장한다. 상기 제2 엔티티 비밀은 두 개의 부분들을 함께 더함으로써 획득될 수 있다. 제2 페어링을 실행하는 것은 각각의 구성요소에서 페어링을 산출하는 것, 그것의 각각의 부분을 입력으로서 취하는 것, 및 그 후 두 개의 페어링들의 결과들의 적을 산출하는 것을 포함할 수 있다. 두 개의 구성요소들 중 하나 또는 제2 엔티티의 별개의 구성요소는 두 개의 페어링들의 적을 실행할 수 있다. 제2 엔티티 비밀은 둘 이상의 부분들로 분할될 수 있으며 제2 엔티티는 비밀의 부분들을 저장하기 위해 둘 이상의 구성요소들을 포함할 수 있다.
방법은: 제1 엔티티가 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 제2 인자에서 임의의 에러의 정도를 결정하는 단계를 포함할 수 있다.
임의의 에러의 정도는
Figure pct00049
의 값 및 식
Figure pct00050
을 사용하여 산출되며 여기에서
Figure pct00051
는 제2 인자에서 에러의 정도이다. 대안적으로, 시간 허용치들이 사용된다면, 그것은
Figure pct00052
을 사용하여 산출될 수 있다.
상기 방법은 상기 제1 엔티티가 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 제1 엔티티에 요청하는 단계, 및 총 에러 스코어의 값을 산출하는 단계를 더 포함할 수 있으며, 상기 값은 각각의 인증 시도에 대한 변수 양만큼 증가하며, 상기 양은 각각의 인증 시도에서 상기 제2 인자에서의 에러의 정도에 의존하여 달라진다. 상기 방법은 총 에러 스코어의 값이 미리 결정된 최대 에러 스코어를 초과한다면 제1 엔티티로의 연결을 거절하는 단계를 더 포함할 수 있다. 몇몇 유형들의 에러들에 대해, 변수 양은 0일 수 있다.
상기 방법은, 상기 제2 엔티티에서 다시 인증하려고 시도하도록 상기 제1 엔티티에 요청할지를 결정할 때, 제1 엔티티의 위치, 제1 엔티티의 아이덴티티, IP 어드레스 및 인증 시간 중 적어도 하나를 포함한 부가적인 정보를 고려하는 단계를 더 포함할 수 있다.
상기 방법은 상기 에러가 미리 결정된 유형이라고 결정하는 것에 응답하여, 상기 제1 엔티티가 메시지를 전송하려고 시도함을 결정하는 단계 및 메시지가 제2 인자에서 에러로부터 옴을 결정하는 단계를 더 포함할 수 있다.
상기 제2 인자는 PIN을 포함할 수 있다. 대안적으로, 그것은 패스워드 또는 소프트 생체인식을 포함할 수 있다.
대수 곡선은 타원 곡선일 수 있다. 곡선은
Figure pct00053
이 소수이도록 BN 곡선 파라미터를 갖는 타원 곡선일 수 있으며, 여기에서 p는 소수법이며 q는 곡선 상에서 매핑(
Figure pct00054
)의 그룹들(
Figure pct00055
,
Figure pct00056
Figure pct00057
)의 위수이다.
본 발명의 또 다른 양상에 따르면, 인증 장치가 비밀 자체를 수신하지 않고 클라이언트 디바이스가 비밀을 소유해야 함을 결정함으로써 상기 클라이언트 디바이스를 인증하기 위한 인증 장치에 대한 컴퓨터 프로그램이 또한 제공되고 있으며, 상기 컴퓨터 프로그램은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 상기 설명된 제2 엔티티에서 방법을 실행하게 하는 지시들을 포함한다.
본 발명의 또 다른 양상에 따르면, 그것 상에 컴퓨터 프로그램을 기록하고 저장한 비-일시적 컴퓨터 판독 가능한 매체가 제공되어 있을 수 있다.
본 발명의 또 다른 양상에 따르면, 상기 제1 엔티티에서 실행되도록 설명된 방법을 실행하는 클라이언트를 포함하는 서버 및 상기 제2 엔티티에서 실행되도록 설명된 방법을 실행하는 서버에 클라이언트를 인증하는 방법이 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 다른 엔티티에 비밀을 드러내지 않고 그것이 비밀을 소유하고 있음을 다른 엔티티에 제공함으로써 또 다른 엔티티에 스스로를 인증하기 위한 장치가 또한 제공되고 있으며, 상기 장치는: 그것 상에 지시들을 저장한 적어도 하나의 메모리; 및 다음의 동작들을 수행하기 위해 지시들을 실행하도록 프로그램된 하나 이상의 프로세서들로서, 상기 동작들은: 상기 장치에서 사용자로부터 입력을 수신하는 동작으로서, 상기 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 비밀의 제2 인자에 관한 것인, 상기 사용자로부터 입력을 수신하는 동작; 상기 장치에서 적어도 상기 제1 인자 및 상기 제2 인자로부터 비밀을 재구성하는 동작; 및 재구성된 상기 비밀을 사용하여 상기 장치에서 산출을 실행하며 다른 엔티티에 상기 산출의 결과들을 전송하는 동작으로서, 상기 결과들은 입력을 페어링 산출에 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 동작을 포함하는, 상기 하나 이상의 프로세서들을 포함한다.
전체 비밀은 타원 곡선 상에서의 포인트에 대응할 수 있으며 상기 비-일시적 컴퓨터 판독 가능한 매체는 상기 하나 이상의 프로세서들에 의해 실행될 때: 상기 장치에서 랜덤 값(x)을 생성하는 것으로서, x는 q보다 낮은, 상기 랜덤 값(x)을 생성하는 것; 상기 장치에서
Figure pct00058
을 산출하는 것으로서,
Figure pct00059
은 상기 장치와 연관된 아이덴티티이며
Figure pct00060
는 타원 곡선 상에서의 포인트에 대해 아이덴티티를 해싱하는 해시 함수인, 상기 산출하는 것; 상기 장치에서 상기 타원 곡선 상에서 또 다른 포인트(
Figure pct00061
)를 산출하며
Figure pct00062
및 U를 다른 엔티티에 송신하는 것; 상기 다른 엔티티에서 생성된 랜덤 값(y)을 수신하는 것으로서, y는 q보다 낮은, 상기 랜덤 값(y)을 수신하는 것을 수행하는 지시들을 추가로 가질 수 있다. 재구성된 키를 사용하여 상기 장치에서 상기 산출을 실행하며 결과들을 다른 엔티티에 전송하기 위한 지시들은 새로운 포인트(
Figure pct00063
)를 산출하며 V를 다른 엔티티에 전송하기 위한 지시들을 포함할 수 있고, 상기 제1 인자는 포인트(
Figure pct00064
)의 좌표들이고, 상기 입력은 값(
Figure pct00065
)을 포함하고, 상기 비밀(
Figure pct00066
)은 신뢰 기관에 의해 발행되며 마스터 비밀(s)과 장치와 관련된 아이덴티티에 대응하는 포인트를 곱함으로써 신뢰 기관에 의해 획득되며, 상기 페어링 산출은 매핑
Figure pct00067
을 포함하고 여기에서
Figure pct00068
Figure pct00069
은 별개이며 q는 그룹들(
Figure pct00070
,
Figure pct00071
Figure pct00072
)의 위수이다.
재구성된 비밀을 사용한 산출은 또한 다른 엔티티에 전송하기 위한 결과들을 획득하기 위해 상기 장치에 수신된 시간 허용치를 사용할 수 있고, 상기 시간 허용치는 신뢰 기관에 의해 발행될 수 있으며 상기 시간 허용치는 장치가 프로토콜을 완성할 자격이 있는 시간 기간으로부터 도출될 수 있다.
적어도 하나의 메모리는 다른 엔티티에 산출의 결과를 전송하는 것에 응답하여, 다른 엔티티로부터 수신된 메시지에서의 데이터 값으로부터 암호화 키를 도출하기 위한 지시들을 더 포함할 수 있으며, 상기 응답에서의 데이터 값은 상기 페어링 산출의 페어링의 결과들로부터 획득된다.
본 발명의 또 다른 양상에 따르면, 다른 엔티티에 비밀을 드러내지 않고 그것이 비밀을 소유하고 있음을 다른 엔티티에 증명함으로써 또 다른 엔티티에 스스로를 인증하기 위한 장치가 또한 제공되고 있으며, 상기 장치는: 상기 장치에서 사용자로부터 입력을 수신하기 위한 수단으로서, 상기 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 비밀의 제2 인자에 관한 것인, 상기 사용자로부터 입력을 수신하기 위한 수단; 상기 장치에서 적어도 상기 제1 인자 및 상기 제2 인자로부터 비밀을 재구성하기 위한 수단; 및 상기 재구성된 비밀을 사용하여 상기 장치에서 산출을 실행하며 다른 엔티티에 상기 산출의 결과들을 전송하기 위한 수단으로서, 상기 결과들은 상기 다른 엔티티에서의 페어링에 입력을 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 수단을 포함한다.
또 다른 엔티티에 스스로를 인증하기 위한 장치는 클라이언트 디바이스일 수 있다. 적어도 하나의 메모리는 클라이언트의 브라우저 메모리의 부분을 형성하는 메모리를 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, 엔티티가 비밀 자체를 수신하지 않고 상기 비밀을 소유해야 한다고 결정함으로써 또 다른 엔티티를 인증하기 위한 장치가 또한 제공되고 있으며, 상기 장치는: 그것 상에 지시들을 저장한 적어도 하나의 메모리; 및 상기 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서로서: 상기 지시들은 상기 장치에서 다른 엔티티에서 실행된 산출의 결과를 수신하는 것으로서, 상기 산출은 적어도 비밀의 제1 인자 및 비밀의 제2 인자로부터 재구성되는 비밀을 사용하는, 상기 산출의 결과를 수신하는 것; 및 다른 엔티티가 비밀을 소유함을 결정하기 위해 상기 장치에서 산출을 실행하는 것으로서, 상기 산출은 다른 엔티티로부터의 결과들에 기초한 입력을 취하는 제1 페어링 및 장치와 연관된 비밀에 기초한 제2 페어링을 포함하는, 상기 산출을 실행하기 위한 것인, 상기 적어도 하나의 프로세서를 포함한다.
상기 장치는 컴퓨팅 시스템일 수 있다. 상기 컴퓨팅 시스템은 인증 서버일 수 있다.
다른 엔티티와 연관된 비밀은 대수 곡선 상에서의 포인트에 대응할 수 있으며 비-일시적 컴퓨터 판독 가능한 미디어는 다른 엔티티로부터 다른 엔티티의 아이덴티티 및 대수 곡선 상에서의 포인트(U)의 좌표들을 수신하고; q보다 낮은, 랜덤 값(y)을 생성하며, 다른 엔티티에 전송하고;
Figure pct00073
을 산출하는 것으로서,
Figure pct00074
은 제1 엔티티와 연관된 아이덴티티이며
Figure pct00075
는 대수 곡선 상에서 포인트에 대해 아이덴티티를 해싱하는 해시 함수인, 상기 생성하고 전송하기 위한 지시들을 더 포함할 수 있다. 산출의 결과를 수신하는 것은 제1 엔티티로부터 포인트(V)의 좌표들을 수신하는 것을 포함할 수 있고, 여기에서
Figure pct00076
이고, x는 q보다 낮은 또 다른 랜덤 값이고 다른 엔티티의 비밀은 신뢰 기관에 의해 발행되고 포인트(sA)에 대응하며, s는 마스터 비밀이고, 상기 인자는 대수 곡선 상에서의 포인트(
Figure pct00077
)의 좌표들을 포함하며 제2 인자는 값(
Figure pct00078
)을 포함한다. 게다가, 상기 페어링 산출을 실행하는 것은
Figure pct00079
를 획득하기 위해 제1 페어링(
Figure pct00080
) 및 제2 페어링(
Figure pct00081
)을 포함하는 페어링들의 적을 산출하는 것을 포함할 수 있으며 여기에서 Q는 타원 곡선 상에서의 고정된 포인트이며 sQ는 장치의 비밀에 대응하는 타원 곡선 상에서의 또 다른 포인트이고 상기 제1 및 제2 페어링은 매핑(
Figure pct00082
)이며 여기에서
Figure pct00083
Figure pct00084
는 별개의 그룹들이고, q는 그룹들(
Figure pct00085
,
Figure pct00086
Figure pct00087
)의 위수이다. 지시들은 또한
Figure pct00088
이면 연결을 거절하기 위한 지시들을 포함할 수 있다.
지시들은 다른 엔티티가 프로토콜을 완성할 자격을 가진 시간 기간을 획득하며 제2 페어링으로의 입력을 도출하기 위해 다른 엔티티의 아이덴티티 및 시간 기간을 사용하기 위한 지시들을 더 포함할 수 있다.
상기 적어도 하나의 메모리는 페어링 산출의 페어링의 결과들로부터 도출된 값을 송신하고, 다른 엔티티가 암호화 키를 도출하도록 허용하기 위해 다른 엔티티에 대한, 다른 엔티티로부터 수신된 결과에 기초한 입력을 취하며 상기 장치에 또 다른 페어링으로부터 키를 도출하여, 상기 장치의 비밀에 대응하는 입력을 취하기 위한 지시들을 더 포함할 수 있다.
상기 장치는 그것의 각각의 메모리 상에 저장된 지시들을 실행하기 위해, 각각이 적어도 하나의 메모리의 별개의 메모리를 포함하고, 각각이 별개의 프로세서를 가지며, 각각이 장치와 연관된 비밀의 부분을 저장하는, 적어도 하나의 프로세서의 두 개의 구성요소들을 포함할 수 있고, 상기 제2 페어링을 실행하기 위한 지시들은 각각의 구성요소에서 페어링을 실행하기 위한 지시들을 포함하여, 입력으로서 비밀의 그것의 각각의 부분을 취하며, 그 후 두 개의 페어링들의 적을 실행한다. 두 개의 부분들은 함께 더해질 때 전체 비밀을 형성하는 곡선 상에서의 두 개의 상이한 포인트들에 대응한다.
지시들은, 다른 엔티티가 다른 엔티티와 연관된 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 제2 인자에서 임의의 에러의 정도를 결정하는 것을 더 포함할 수 있다.
지시들은 다른 엔티티가 다른 엔티티와 연관된 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 다른 엔티티에 요청하는 것, 및 각각의 인증 시도에 대한 변수 양만큼 에러 카운트의 값을 증가시키는 것으로서, 상기 양은 각각의 인증 시도에서의 에러의 정도에 의존하여 달라지는, 상기 증가시키는 것을 더 포함할 수 있다.
지시들은 에러 카운트의 값이 미리 결정된 최대 에러 값을 초과한다면 다른 엔티티로의 연결을 거절하는 것을 더 포함할 수 있다.
대수 곡선은
Figure pct00089
이 소수이도록 BN 곡선 파라미터를 가진 타원 곡선일 수 있으며, 여기에서 p는 소수법이며 q는 곡선 상에서 매핑(
Figure pct00090
)의 그룹들(
Figure pct00091
,
Figure pct00092
Figure pct00093
)의 위수이다.
본 발명의 또 다른 양상에 따르면, 장치가 비밀 자체를 수신하지 않고 다른 엔티티가 비밀을 소유해야 하는지를 결정함으로써 또 다른 엔티티를 인증하기 위한 장치가 또한 제공되고 있으며, 상기 장치는: 상기 다른 엔티티에서 실행된 산출의 결과를 상기 장치에서 수신하는 것으로서, 상기 산출은 상기 다른 엔티티에서 적어도 비밀의 제1 인자 및 상기 비밀의 제2 인자로부터 재구성된 비밀을 사용하는, 상기 수신하는 것; 및 상기 다른 엔티티가 상기 비밀을 소유함을 결정하기 위해 상기 장치에서 산출을 실행하는 것으로서, 상기 산출은 상기 다른 엔티티로부터의 결과에 기초하여 입력을 취하는 페어링 산출을 포함하는, 상기 산출을 실행하기 위한 수단을 포함한다.
다른 엔티티를 인증하기 위한 장치는 서버일 수 있다.
본 발명의 또 다른 양상에 따르면, 상기 설명된 바와 같이 클라이언트 디바이스 및 상기 설명된 바와 같이 서버를 포함하는 시스템이 또한 제공되고 있다. 상기 시스템은 또한 신뢰 기관을 제공하는 독립 엔티티를 포함할 수 있다. 상기 신뢰 기관은 클라이언트에 비밀을 및 상기 서버에 또 다른 비밀을 발행할 수 있다.
본 발명의 또 다른 양상에 따르면, 제2 엔티티에 대한 제1 엔티티의 다-인자 제로-지식 증명 인증을 실행하는 컴퓨터-구현 방법이 또한 제공되고 있다.
상기 방법은 상기 인증을 실행하기 위한 페어링-기반 암호 기법을 사용할 수 있다.
상기 인증은 데이터의 후속하는 안전한 교환을 허용하기 위해 인증 키 합의로 이어질 수 있다.
상기 제1 엔티티는 타원 곡선 상에서의 포인트에 대응하며 제1 엔티티에서 적어도 제1 인자 및 적어도 제2 인자로 분할되는, 별개의 엔티티에 의해 발행되는 비밀과 연관될 수 있으며 상기 방법은 상기 제1 엔티티가 상기 제1 엔티티에 저장된 적어도 상기 제1 인자, 및 적어도 사용자로부터 수신된 제2 인자로부터 전체 비밀을 재구성하는 단계, 산출을 실행하기 위해 상기 재구성된 전체 비밀을 사용하는 단계 및 상기 산출의 결과를 상기 제2 엔티티에 전송하는 단계를 더 포함할 수 있다. 상기 제2 엔티티는 상기 제1 엔티티를 인증하기 위해 상기 산출의 결과들을 사용할 수 있다. 상기 제1 엔티티에서의 산출은 비-페어링 산출일 수 있으며 상기 제2 엔티티에서의 산출은 페어링 산출일 수 있다.
상기 제2 엔티티는, 또한 별개의 엔티티에 의해 발행된, 그 자신의 비밀을 저장할 수 있고, 상기 제2 엔티티 비밀은 또한 타원 곡선 상에서의 포인트에 대응하며 상기 방법은 제1 엔티티로부터 수신된 결과를 그것의 입력 중 하나로서 취하는 제1 페어링 및 제2 엔티티 비밀에 대응하는 곡선 상에서의 포인트를 그것의 입력들 중 하나로서 취하는 제2 페어링을 포함하는 페어링들의 적을 상기 제2 엔티티에서 실행하는 단계, 및 상기 페어링들의 적의 결과들에 기초하여 상기 제1 엔티티를 인증할지를 결정하는 단계를 더 포함할 수 있다.
페어링들의 적은 다중-페어링으로서 실행될 수 있다. 대안적으로, 제2 엔티티는 먼저 제1 및 제2 페어링을 실행하며 그 후 두 개의 페어링들의 결과들을 함께 곱할 수 있다.
본 발명의 또 다른 양상에 따르면, 인증 키 합의를 실행하는 컴퓨터 구현 방법이 또한 제공되고 있으며, 상기 방법은 상기 정의된 인증 방법을 사용하여 클라이언트를 인증하는 단계를 포함하며 인증 프로세스 동안 산출된 페어링의 결과들로부터 세션 암호화 키를 도출하는 단계를 더 포함한다.
상기 방법은 제2 엔티티가 페어링의 결과들로부터 도출된 값을 제1 엔티티에 송신하는 단계 및 상기 제1 엔티티가 수신된 값으로부터 키를 도출하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, Barreto-Naehrig(BN) 타원 곡선을 사용하여 페어링 기반 키 합의를 실행하는 컴퓨터-구현 방법이 제공되고 있으며 상기 BN 곡선 파라미터는
Figure pct00094
이 소수이도록 선택되며, p는 소수법이고 q는 타원 곡선 상에서의 매핑(
Figure pct00095
)의 그룹들(
Figure pct00096
,
Figure pct00097
Figure pct00098
)의 위수이다.
더욱이, 본 발명의 또 다른 양상에 따르면, 적어도 하나의 프로세서에 의해 실행될 때 하나 이상의 프로세서들이 또 다른 엔티티와 안전하게 통신하기 위한 키를 도출하기 위해 엔티티에서 키 합의 프로토콜의 단계들을 실행하게 하는 지시들을 포함한 컴퓨터 프로그램이 제공되고 있으며, 상기 키 합의 프로토콜은 Barreto-Naehrig(BN) 타원 곡선을 사용하며 BN 곡선 파라미터는
Figure pct00099
이 소수이도록 선택되고, p는 소수법이며 q는 타원 곡선 상에서의 매핑(
Figure pct00100
)의 그룹들(
Figure pct00101
,
Figure pct00102
Figure pct00103
)의 위수이다.
본 발명의 또 다른 양상에 따르면, 상기 정의된 바와 같이, 그것 상에 컴퓨터 프로그램을 저장한 비-일시적 컴퓨터 판독 가능한 매체가 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 상기 정의된 바와 같이 비-일시적 컴퓨터 판독 가능한 매체 및 상기 비-일시적 컴퓨터 판독 가능한 매체 상에서 지시들을 실행하기 위한 적어도 하나의 프로세서를 포함한 장치가 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 컴퓨터 구현 방법이 제공되고 있으며, 상기 방법은: 장치에서 클라이언트로부터 데이터를 수신하는 단계로서, 상기 데이터는 상기 클라이언트를 인증하기 위한 인증 시도의 일부로서 장치에 제공되는, 상기 데이터를 수신하는 단계; 상기 장치에서 수신된 데이터와 연관된 에러가 있음을 결정하는 단계, 상기 에러의 정도에 기초하여 에러 값을 결정하는 단계; 및 상기 클라이언트의 인증 시도들의 수에 대한 조합된 에러 값의 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하는 단계를 포함한다.
본 발명의 또 다른 양상에 따르면, 컴퓨터 구현 방법이 또한 제공되고 있으며, 상기 컴퓨터 구현 방법은: 장치에서 클라이언트로부터 데이터를 수신하는 단계로서, 상기 데이터는 클라이언트를 인증하기 위한 인증 시도의 부분으로서 상기 장치에 제공되고, 상기 클라이언트는 다수의 인자들로 분리되는 실제 비밀과 연관되며 상기 데이터는 상기 실제 비밀을 재구성하려고 시도하기 위해 상기 클라이언트에서 사용되는 다수의 인자들로부터 도출되는, 상기 데이터를 수신하는 단계; 상기 데이터를 도출하기 위해 사용된 다수의 인자들의 인자들 중 하나가 실제 비밀의 다수의 인자들의 대응하는 인자와 상이한지를 결정하는 단계; 상기 차이와 연관된 에러 값을 결정하는 단계; 및 상기 클라이언트의 인증 시도의 수에 대한 조합된 에러 값의 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하는 단계를 포함한다.
실제 비밀의 다수의 인자들은 장치에 알려지지 않을 수 있다. 인자는 PIN일 수 있으며 에러 값은 PIN의 얼마나 많은 숫자들이 잘못되었는지에 의존할 수 있다.
본 발명의 또 다른 양상에 따르면, 컴퓨터 프로그램이 또한 제공되고 있으며, 상기 컴퓨터 프로그램은 장치의 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서가: 클라이언트로부터 상기 장치에서 수신된 데이터를 수신하게 하는 것으로서, 상기 데이터는 상기 클라이언트를 인증하기 위한 인증 시도의 부분으로서 상기 장치에 제공되고, 상기 클라이언트는 다수의 인자들로 분리되는 실제 비밀과 연관되며 상기 데이터는 상기 실제 비밀을 재구성하려고 시도하기 위해 상기 클라이언트에서 사용된 다수의 인자들로부터 도출되는, 상기 데이터를 수신하게 하는 것; 상기 데이터를 도출하기 위해 사용된 다수의 인자들의 인자들 중 하나가 실제 비밀의 다수의 인자들의 대응하는 인자와 상이함을 결정하게 하고; 상기 다수의 인자들의 인자들 중 상기 하나 및 상기 대응하는 인자 사이에서의 차이와 연관된 에러 값을 결정하게 하며; 상기 클라이언트의 인증 시도들의 수에 대한 조합된 에러 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하게 하는 지시들을 포함한다.
본 발명의 또 다른 양상에 따르면, 장치가 또한 제공되고 있으며, 상기 장치는 그것 상에 지시들을 저장한 적어도 하나의 메모리; 및 적어도 하나의 프로세서로서, 다음의 동작들: 상기 장치에 대해 클라이언트를 인증하기 위한 인증 시도의 부분으로서 클라이언트로부터 데이터를 수신하는 것으로서, 상기 클라이언트는 다수의 인자들로 분리된 비밀과 연관되며 상기 수신된 데이터는 실제 비밀을 재구성하려고 시도하기 위해 상기 클라이언트에서 사용된 다수의 인자들로부터 도출되는, 상기 데이터를 수신하는 것; 상기 데이터를 도출하기 위해 사용된 다수의 인자들의 인자들 중 하나가 상기 실제 비밀의 다수의 인자들의 대응하는 인자와 상이함을 결정하는 것; 상기 차이와 연관된 에러 값을 결정하는 것; 및 상기 클라이언트의 다수의 인증 시도들에 대한 조합된 에러 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하는 것을 수행하기 위해 상기 지시들을 실행하도록 프로그램된, 상기 적어도 하나의 프로세서를 포함한다.
본 발명의 또 다른 양상에 따르면, 암호화 또는 인증을 실행하기 위해 비밀들을 클라이언트 및 서버에 발행하는 컴퓨터-구현 방법이 또한 제공되고 있으며, 상기 클라이언트에는 비밀(sA)이 발행되며 상기 서버에는 비밀(sQ)이 발행되고 A는 대수 곡선 상에서 클라이언트와 연관된 포인트이고, Q는 대수 곡선 상에서의 고정된 포인트이고, s는 마스터 비밀이며 sA 및 sQ는 대수 곡선 상에서, 마스터 비밀(s)에 의한, 각각 포인트들(A) 및 포인트(Q)의 곱셈에 의해 획득된 포인트들을 나타낸다.
상기 방법은 클라이언트 및 서버를 포함한 시스템을 제어하는 신뢰 기관에 의해 실행될 수 있다. 고정 포인트(Q)는 신뢰 기관에 의해 제어된 시스템에서의 모든 서버들에 대해 동일한 포인트일 수 있다. 마스터 비밀(s)은 특정한 서버와 연관될 수 있으며 상이한 서버들에 대해 상이할 수 있다. 포인트(A)는 클라이언트의 아이덴티티에 대응하는 데이터를 해싱함으로써 획득될 수 있다.
상기 방법은 컴퓨터-구현 방법일 수 있다.
본 발명의 또 다른 양상에 따르면, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 상기 정의된 방법을 실행하게 하는 지시들을 포함한 비-일시적 컴퓨터 판독 가능한 매체가 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 상기 비-일시적 컴퓨터 판독 가능한 매체 및 상기 매체 상에서 지시들을 실행하기 위한 하나 이상의 프로세서들을 포함한 신뢰 기관이 또한 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 제2 엔티티에 실제 정보를 전송하지 않고, 정보를 제2 엔티티에 전달하기 위한 제1 엔티티에서의 컴퓨터-구현 방법이 제공되고 있으며, 상기 정보는 적어도 제1 인자 및 제2 인자로 분할된 비밀과 연관되며, 상기 방법은: 적어도 상기 제1 인자 및 더미 제2 인자를 더미 비밀로 조합하는 단계로서, 상기 더미 제2 인자는 상기 제2 엔티티에 전달될 정보에 대응하는 값만큼 상기 제2 인자와 상이한, 상기 더미 비밀로 조합하는 단계; 및 재구성된 상기 더미 비밀을 사용하여 상기 제1 엔티티에서 산출을 실행하며 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 단계로서, 상기 결과들은 상기 더미 제2 인자 및 상기 제2 인자 사이에서의 차이를 결정하기 위해 상기 제2 엔티티에서의 산출에서 사용되는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 단계를 포함한다.
상기 산출은 타원 곡선 상에서 암호 페어링을 포함할 수 있으며 상기 비밀은 상기 곡선 상에서의 포인트일 수 있다.
상기 정보는 메시지의 부분을 형성할 수 있으며, 상기 메시지의 각각의 부분은 적어도 두 개의 인자들로 분리된 비밀과 연관되고 상기 방법은 적어도 제1 인자 및 더미 인자를 상기 메시지의 각각의 부분에 대한 더미 비밀로 조합하는 단계 및 상기 메시지를 모으기 위해 상기 더미 비밀들에 기초한 산출들의 결과들을 상기 제2 엔티티에 대한 제2 엔티티로 전송하는 단계를 더 포함한다.
상기 메시지는 신용 카드 정보를 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 정의된 상기 정보를 전달하는 방법을 실행하게 하는 지시들을 포함한 컴퓨터 프로그램이 또한 제공되고 있다. 상기 컴퓨터 프로그램은 컴퓨터 판독 가능한 매체 상에 저장될 수 있다.
본 발명의 또 다른 양상에 따르면, 제2 엔티티에서 제1 엔티티로부터 정보를 획득하기 위한 컴퓨터-구현 방법이 또한 제공되고 있으며, 상기 정보는 적어도 제1 인자 및 제2 인자로 분할된 비밀과 연관되고, 상기 방법은: 상기 제1 엔티티에서 실행된 산출의 결과를 상기 제2 엔티티에서 수신하는 단계로서, 상기 산출은 적어도 상기 비밀의 제1 인자 및 더미 제2 인자로부터, 상기 제1 엔티티에서 생성된 더미 비밀을 사용하고, 상기 더미 제2 인자는 상기 제2 엔티티에서 획득될 정보에 대응하는 값만큼 상기 제2 인자와 상이한, 상기 수신하는 단계; 및 상기 더미 제2 인자 및 상기 제2 인자 사이에서의 차이를 결정하기 위해 상기 제2 엔티티에서 산출을 실행하는 단계로서, 상기 산출은 상기 제1 엔티티로부터의 결과를 사용하는, 상기 실행하는 단계를 포함한다.
상기 산출은 상기 제1 엔티티로부터의 결과에 기초한 페어링을 포함할 수 있다.
상기 방법은 상기 제1 엔티티로부터 다수의 산출들의 결과를 수신하는 단계로서, 각각의 산출은 메시지의 상이한 부분과 연관된 더미 비밀에 기초하며 각각의 더미 비밀은 실제 인자와 상이한 더미 인자로부터 도출되는, 상기 수신하는 단계 및 상기 제2 엔티티에서 상기 메시지를 모으는 단계를 더 포함할 수 있다.
상기 차이를 결정하기 위한 산출은 값(
Figure pct00104
)을 획득하기 위해 산출을 실행하는 것 및
Figure pct00105
에 대해 획득된 값으로부터
Figure pct00106
의 값을 결정하는 것 및 관계
Figure pct00107
를 사용하는 것을 포함할 수 있으며,
Figure pct00108
,
Figure pct00109
및 Q는 타원 곡선 상에서의 포인트들이다.
상기 차이를 결정하기 위한 산출은 값(
Figure pct00110
)을 획득하기 위해 산출을 실행하는 것 및
Figure pct00111
에 대해 획득된 값으로부터
Figure pct00112
의 값을 결정하는 것 및 관계
Figure pct00113
를 사용하는 것을 포함할 수 있으며, R,
Figure pct00114
및 Q는 타원 곡선 상에서의 포인트들이다.
메시지는 금융 거래를 실행하기 위한 정보를 포함할 수 있다. 상기 메시지는 신용 카드 번호 또는 직불 카드 번호를 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 상기 프로세서가 상기 정의된 정보를 획득하는 방법을 실행하게 하는 지시들을 포함한 컴퓨터 프로그램이 또한 제공되고 있다. 상기 컴퓨터 프로그램은 컴퓨터 판독 가능한 매체 상에 저장될 수 있다.
본 발명의 또 다른 양상에 따르면, 메시지의 각각의 부분에 대한 비밀을 생성하며 복수의 다-인자 비밀들을 생성하기 위해 각각의 인자로부터, 상기 메시지의 부분에 대응하는, 인자를 추출하기 위한 컴퓨터 구현 방법이 또한 제공되고 있다.
부가적으로, 본 발명의 또 다른 양상에 따르면, 프로세서에 의해 실행될 때 상기 프로세서가 상기 정의된 방법을 실행하게 하는 지시들을 저장한 비-일시적 컴퓨터 판독 가능한 매체가 제공되고 있다.
본 발명의 또 다른 양상에 따르면, 상기 컴퓨터 판독 가능한 매체 및 상기 지시들을 실행하기 위한 하나 이상의 프로세서들을 포함하는 신뢰 기관이 또한 제공되고 있을 것이다.
본 발명의 또 다른 양상에 따르면, 제2 엔티티에 대해 제1 엔티티를 인증하는 컴퓨터 구현 방법이 또한 제공되고 있으며, 상기 제1 엔티티는 다수의 인자들로 분리된 비밀과 연관되고 상기 방법은 다수의 인자들로부터 재구성된 비밀로부터 도출된 데이터에 기초하여, 쌍선형 매핑들을 사용하여, 산출을 실행하는 단계 및 상기 제1 엔티티가 상기 산출에 기초하여 비밀을 소유해야 하는지를 결정하는 단계를 포함한다.
상기 방법은 상기 비밀의 다수의 인자들로부터 제1 엔티티에서의 비밀을 재구성하는 단계; 및 쌍선형 매핑으로의 입력을 도출하기 위해 상기 재구성된 비밀을 사용하는 단계를 더 포함할 수 있으며 상기 산출을 실행하는 것은 제2 엔티티와 연관된 데이터에 기초하여 제1 입력 및 제2 입력으로서 상기 입력을 취하는 제1 쌍선형 매핑을 계산하는 것 및 상기 제1 엔티티와 연관된 데이터에 기초한 제1 입력 및 상기 제2 엔티티와 연관된 비밀로부터 도출된 제2 입력 데이터를 취하는 제2 쌍선형 매핑을 계산하는 것으로서, 상기 제1 엔티티 비밀은 상기 제1 엔티티와 연관된 상기 데이터로부터 구성되며 상기 제2 엔티티 비밀은 쌍선형성을 사용하여, 매핑들의 결과들, 또는 매핑들의 결과들로부터 도출된 값들이 상기 제1 엔티티가 그것의 비밀을 소유하는지 여부를 상기 제2 엔티티에 의해 결정하기 위해 사용될 수 있도록 상기 제2 엔티티와 연관된 데이터로부터 구성되는, 상기 제2 쌍선형 매핑 계산하기를 포함한다.
상기 방법은 상기 제1 엔티티 또는 상기 제2 엔티티에서 제1 쌍선형 매핑을 산출하는 단계를 포함할 수 있다.
상기 산출은 상기 제1 및 제2 쌍선형 매핑에 대응하는 두 개의 페어링들을 실현한 다중-페어링을 실행하는 것을 포함할 수 있으며 상기 제1 엔티티가 상기 비밀을 소유해야 함을 결정하는 것은 상기 다중-페어링의 결과가 미리 결정된 값과 같은지를 결정하는 것을 포함할 수 있다.
대안적으로, 산출은 쌍선형 매핑들의 결과들을 해싱하는 것을 포함할 수 있으며 상기 제1 엔티티가 상기 비밀을 소유하여야 하는지를 결정하는 것은 상기 결과들 또는 상기 결과들의 해시를 비교하는 것을 포함할 수 있다.
본 발명의 또 다른 양상에 따르면, 그것 상에 지시들을 저장한 적어도 하나의 메모리; 및 클라이언트를 인증하기 위해 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서를 포함한 장치가 또한 제공되고 있으며, 상기 클라이언트는 다수의 인자들로 분할된 비밀과 연관되며 상기 지시들은 실행될 때, 상기 적어도 하나의 프로세서가 다수의 인자들로부터 재구성된 비밀로부터 도출된 데이터에 기초하여, 쌍선형 매핑들을 사용하여 산출을 실행하게 하며 상기 산출에 기초하여 상기 제1 엔티티가 상기 비밀을 소유하여야 하는지를 결정하게 한다.
본 발명의 또 다른 양상에 따르면, 장치의 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치의 적어도 하나의 프로세서가 클라이언트를 인증하기 위한 인증 프로세스를 실행하게 하는 지시들을 그것 상에 저장한 비-일시적 컴퓨터 판독 가능한 매체가 또한 제공되고 있으며, 상기 클라이언트는 다수의 인자들로 분할된 비밀과 연관되며 상기 지시들은, 실행될 때, 상기 하나 이상의 프로세서들이 다수의 인자들로부터 구성된 비밀로부터 도출된 데이터에 기초하여, 쌍선형 매핑들을 사용하여, 산출을 실행하게 하며 상기 산출에 기초하여 상기 제1 엔티티가 상기 비밀을 소유하여야 하는지를 결정하게 한다.
본 발명의 실시예들이 이제, 예로서, 첨부한 도면들을 참조하여 설명될 것이다.
도 1은 클라이언트, 인증 서버 및 신뢰 기관을 포함한 시스템의 예를 예시한 개략적 블록도이다;
도 2는 도 1의 시스템에서 클라이언트의 개략적 블록도이다;
도 3은 도 2의 시스템에서 인증 서버의 개략적 블록도이다;
도 4는 도 1의 시스템에서 신뢰 기관의 개략적 블록도이다;
도 5는 대안적인 시스템의 예의 개략적 블록도이다;
도 6 및 도 7은 서버에 대해 클라이언트를 인증하기 위한 프로토콜을 예시한 흐름도들이다;
도 8은 PIN 에러들을 핸들링하기 위한 인증 서버에서의 프로세스를 예시한 흐름도이다;
도 9 및 도 10은 또한 세션 키를 수립하기 위해 도 6 및 도 7의 프로토콜의 확대를 예시한 흐름도들이다;
도 11 및 도 12는 또한 시간 허용치들을 포함하는 서버에 대해 클라이언트를 인증하기 위한 프로토콜을 예시한 흐름도들이다;
도 13은 시스템의 당사자에 부가적인 정보를 전송하기 위해 시간 허용치들을 사용하는 시스템의 개략도이다;
도 14, 도 15, 및 도 16은 시스템의 엔티티들에서 셋-업 프로세스들을 예시한 흐름도들이다;
도 17, 도 18, 및 도 19는 정보가 시스템에 의해 제공된 은닉 채널에서 어떻게 전송될 수 있는지에 대한 예를 예시한 흐름도들이다.
도 1을 참조하여, 시스템(1)은 클라이언트(2), 인증 서버(3) 및 신뢰 기관(TA)(4)을 포함하여 도시된다. 클라이언트, 인증 서버 및 TA는 데이터 네트워크(5)와 같은 통신 매체를 통해 통신할 수 있다. 클라이언트(2)는 사용자(6)에 의해 동작된다.
클라이언트(2)는 예를 들면, 데이터 또는 또 다른 리소스를 액세스하고, 트랜잭션을 실행하거나 또는 데이터를 서버에 송신하기 위해 서버(3)에 스스로를 인증하고 싶어한다. 클라이언트는 또 다른 서버(도 1에 도시되지 않음)로의 액세스를 얻고 싶어할 수 있다. 클라이언트 및 서버는 또한 인증에 이어서, 안전한 방식으로 데이터를 교환하기를 원할 수 있으며, 그것들은 그러므로 데이터를 교환하기 위해 암호화 키를 수립하기를 원할 수 있다. 키는 클라이언트에 의해 메시지를 암호화하기 위해 및 서버에 의해 메시지를 복호화하기 위해 사용될 수 있으며 그 역도 또한 같다.
TA(4)는 비밀(7)을 클라이언트에 및 또 다른 비밀(8)을 서버에 발행한다. 비밀들은 TA(4)에 의해 저장된 마스터 비밀(9)로부터 도출된다. 몇몇 구현들은 클라이언트(2)로 하여금 클라이언트가 서버에 비밀 자체, 또는 비밀에 관한 어떤 것을 드러내지 않고 그것의 비밀(7)을 소유함을 서버(3)에 증명하도록 허용한다. 여기에 설명된 프로토콜들의 몇몇 예들은 또한 클라이언트가 사실상 그 자신의 비밀(7)을 가진다고 결정하기 위해 서버(3)가 서버 비밀(8)을 소유하도록 요구한다. 클라이언트(2)에 비밀(7)을 발행하기 위한 결정은 서버에 연결하려고 시도하는 클라이언트에 비밀을 발행하기 위해 요청 시 서버(3)로부터 신뢰 기관(4)으로 실행될 수 있다. 서버는 이전에 시스템에 등록할 수 있으며 신뢰 기관(4)으로부터 그 자신의 비밀(8)을 수신하였을 수 있다. 일단 비밀이 클라이언트에 발행된다면, 클라이언트는 그 후 서버에 대해 스스로를 인증할 수 있으며 서버 및 클라이언트는 통신 링크를 수립할 수 있다. 서버(3)는 TA로 하여금 클라이언트 비밀(7)을 도출하며 그것을 보안 연결을 통해 클라이언트에 전송하도록 허용하기 위해 TA에 클라이언트(2)의 아이덴티티를 제공할 수 있다. 다른 예들에서, 클라이언트는 스스로 그것의 아이덴티티를 TA에 전송하며 서버(3)에 대해 인증하기 위해 클라이언트에 의해 사용될 클라이언트 비밀을 그것에 발행하도록 TA에 요청할 수 있다. 클라이언트의 아이덴티티는 사용자 및/또는 클라이언트를 식별하는 임의의 데이터 스트링을 포함할 수 있다. 아이덴티티는 이에 제한되지 않지만, 이름, 이메일 어드레스, 사회 보장 번호, 타이틀 또는 번호판 번호를 포함할 수 있다.
클라이언트는 복수의 인자들(10 및 11)로 수신된 비밀(7)을 프로세싱한다. 도 1에서, 비밀은 제1 인자(10) 및 제2 인자(11)로 분리되는 것으로 도시된다. 그러나, 비밀은 임의의 수의 인자들로 분리될 수 있다. 셋-업 동안, 클라이언트는 사용자(6)로부터 인자들(11) 중 하나를 수신하고, 상기 인자를 클라이언트 비밀(7)로부터 추출하며 남은 것, 제1 인자(10)를 클라이언트에 저장한다. 클라이언트가 둘 이상의 인자들로 분리된다면, 클라이언트는 비밀로부터 하나 이상의 인자를 추출할 수 있다. 예를 들면, 클라이언트는 사용자로부터 또는 하나 이상의 사용자로부터 둘 이상의 인자들을 수신할 수 있으며 비밀로부터 인자들 모두를 추출할 수 있다.
도 1의 시스템에서, 비밀의 제1 인자(10)는 토큰이다. 토큰은 소프트웨어 토큰일 수 있다. 소프트웨어 토큰은 데이터의 스트링일 수 있다. 그것은 예를 들면, "쿠키(cookie)"로서 저장될 수 있다. 제2 인자(11)는 데이터의 임의의 스트링일 수 있다. 그것은 예를 들면, 개인 식별 번호(PIN), 패스워드 또는 소프트 생체인식일 수 있다. 이후, 우리는 PIN으로서 제2 인자(11)를 나타낼 것이지만 그것이 또한 또 다른 유형의 데이터일 수 있음이 인식될 것이다. 클라이언트는 단지 토큰(10)을 저장할 수 있다. PIN(11)은 사용자에 의해 기억될 수 있다.
사용자(6)가 나중에 예를 들면, 서버 또는 또 다른 엔티티에서 데이터를 액세스하거나 또는 데이터를 서버에 전송하기 위해 서버(3)에 인증하기를 원할 때, 그것은 클라이언트(2)가 비밀을 복구하기 위해 저장된 토큰과 함께 사용할 수 있는 PIN 추측(11')을 입력한다. PIN 추측(11')이 실제 PIN(11)과 일치한다면, 클라이언트는 실제 비밀(7)을 복구할 것이다. 비밀이 둘 이상의 인자들로 분리된다면, 클라이언트는 그것이 비밀을 복구하기 위해 저장된 토큰과 함께 사용하는 하나 이상의 인자를 수신할 수 있다.
클라이언트 및 서버는 이어서 복수의 메시지들(12)을 교환한다. 메시지들은 위임(commitment)(12a), 챌린지(challenge)(12b) 및 응답(12c)을 포함할 수 있다. 위임, 챌린지 및 응답의 각각은 하나 이상의 메시지를 포함할 수 있다. 메시지들(12)은 또한 부가적인 메시지들을 포함할 수 있다. 메시지에 기초하여, 서버는 그 후 이하에서 보다 상세히 설명될 바와 같이, 클라이언트를 인증할 수 있다. 서버에 대해 클라이언트를 인증하면, 클라이언트 및 서버는, 또한 보다 상세히 설명될 바와 같이, 이어서 복수의 다른 메시지들(13)을 교환할 수 있다. 클라이언트 및 서버는 이어서 메시지들에서 데이터의 일부를 암호화하기 위해 키(14)를 수립할 수 있다. 키는 또한 이하에서 보다 상세히 설명될 바와 같이, 인증 메시지(12)에서 교환된 정보, 클라이언트(2) 및 서버(3)의 각각의 비밀들 및 프로세스에서 생성되며 단지 각각의 당사자들에게만 알려진 다른 파라미터들로부터 도출될 수 있다. 서버의 비밀이 또한 키를 산출하기 위해 요구되기 때문에, 가면 서버(imposter server)는 그것이 실제 서버인 척하며 클라이언트를 인증하고 세션 키를 수립하기 위해 프로토콜을 완성할 수 없다. 대안적으로, 키들은 예를 들면, 다른 메시지들(13)에서, SSL을 사용하여 수립될 수 있다.
도 1은 단지 하나의 클라이언트 및 하나의 인증 서버를 도시하지만, 시스템은 복수의 인증 서버들 및 클라이언트들을 지원할 수 있으며 각각의 인증 서버는 복수의 클라이언트들과 보안 통신 링크들을 수립할 수 있다는 것이 인식될 것이다.
클라이언트, 서버 및 신뢰 기관의 각각이 이제 도 2, 도 3 및 도 4에 대하여 보다 상세히 설명될 것이다.
클라이언트, 서버 및 TA는 소프트웨어 또는 소프트웨어 및 하드웨어의 조합으로서 구현될 수 있다. 이하의 설명에서, 클라이언트, 서버 및 TA는 또한 소프트웨어가 실행하는 컴퓨팅 디바이스들을 포함하는 것으로 설명될 것이다. 그러나, 몇몇 구현들에서, 클라이언트, 서버 및 TA는 하나 이상의 프로세서들에 의해 실행될 때 각각 클라이언트, 서버 및 TA의 기능을 제공하는 지시들을 가진 컴퓨터 프로그램들로서 제공될 것이다. 암호 기능들은 예를 들면, 플러그-인 소프트웨어 모듈들에 의해 제공될 수 있다.
도 2를 참조하여, 클라이언트(2)는 컴퓨터, 서버 또는 다른 컴퓨팅 디바이스를 포함한다. 그것은 예를 들면, 개인용 컴퓨터, 랩탑 또는 이동 전화 또는 다른 개인 휴대용 디바이스 또는 이동 디바이스일 수 있다. 컴퓨팅 디바이스는 프로세서(21), 컴퓨터 프로그램 지시들을 저장하기 위한 메모리(22) 및 데이터를 저장하기 위한 저장 장치(23)를 포함한다. 메모리(22)는 클라이언트가 PIN(11)을 생성하며 토큰(10)을 저장하도록 허용하기 위한 초기화 프로그램(24) 및 클라이언트가 PIN(11) 및 토큰(10)을 사용하여 서버에 스스로를 인증하도록 허용하기 위한 인증 프로그램(25)을 저장할 수 있다. 클라이언트는 보안 통신 링크를 통해, TA(4)로부터 초기화 프로그램(24)을 및 인증 서버(3)로부터 인증 프로그램(25)을 수신할 수 있다. 대안적으로, 클라이언트는 TA, 인증 서버, 또는 또 다른 엔티티로부터 양쪽 프로그램들 모두를 수신한다. 몇몇 구현들에서, 초기화 프로그램 및 인증 프로그램은 동일한 컴퓨터 프로그램의 부분을 형성한다. 초기화 프로그램은 시스템에 등록하기 위한 지시들을 저장할 수 있다. 지시들은 PIN을 입력하기 위해 사용자(6)에게 그래픽 사용자 인터페이스를 제공하기 위한 지시들, PIN을 입력하기 위해 사용자에 의해 사용된, 입력 디바이스로부터 PIN을 수신하기 위한 지시들, 및 비밀의 다수의 인자들을 생성하기 위해 비밀(7)로부터 PIN을 추출하기 위한 지시들을 포함할 수 있다. 입력 디바이스는 예를 들면, 클라이언트의 부분을 형성하거나 또는 그것에 연결 가능한 키패드 또는 키보드일 수 있다. 인증 프로그램(25)은 다수의 인자들, 예를 들면 PIN 및 토큰으로부터 클라이언트 비밀을 재구성하기 위한 지시들을 포함할 수 있으며 서버와의 인증 프로토콜에 참여할 수 있다. 지시들은 또한 클라이언트가 인증 서버와의 인증 키 합의 프로세스에 참여할 수 있게 할 수 있다. 몇몇 예들에서, 초기화 프로그램(24)은 신뢰 기관(4)에 의해 웹 인터페이스를 통해 클라이언트(2)에 제공될 수 있다. 유사하게, 몇몇 예들에서, 인증 프로그램(25)은 웹 인터페이스를 통해 인증 서버(3)로부터 클라이언트(2)에 제공될 수 있다. 클라이언트는 웹 인터페이스를 통해 프로그램들을 수신하며 그것들을 메모리(22)에 저장할 수 있다. 몇몇 구현들에서, 프로그램들이 웹 인터페이스를 통해 제공될 때, 프로그램들, 또는 프로그램들의 부분은 메모리(22)에 저장되지 않을 수 있다.
메모리는 또한 서버 및 다른 디바이스들과의 통신을 위해 부가적인 지시들을 저장할 수 있다. 예를 들면 지시들은 브라우저를 제공할 수 있다. 브라우저는 월드 와이드 웹을 액세스하기 위해 사용자를 위한 웹 브라우저일 수 있지만 그것은 또한 사설 네트워크에서 리소스들을 액세스하기 위한 브라우저일 수 있다. 초기화 프로그램(24) 및 인증 프로그램(25)은 브라우저의 부분을 형성하거나 또는 그것을 통해 제공될 수 있다. 클라이언트는 예를 들면 프로그램들을 다운로드하며 클라이언트의 브라우저 메모리에 저장할 수 있다. 몇몇 예들에서, 클라이언트(2)는 브라우저에 의해 제공될 수 있다.
프로세서(21)는 지시들을 실행하도록 구성된다. 프로세서는, 메모리(22)에서의 지시들의 실행 동안 몇몇 데이터를 저장하며 빠르게 액세스하기 위해, 그 자신의 내부 임시 메모리, 예를 들면, 캐시 메모리를 가질 것이다.
저장 장치(23)는 토큰(10)을 저장할 수 있다. 저장 장치는 브라우저의 저장 장치에 의해 제공될 수 있다. 대안적으로, 저장 장치는 토큰을 저장하기 위한 별개의 범용 직렬 버스(USB) 플래시 드라이브를 포함할 수 있다. 저장 장치는 또한 클라이언트의 아이덴티티(26)를 저장할 수 있다. 예를 들면, 클라이언트의 아이덴티티는 토큰(10)을 갖고 메타데이터로서 저장될 수 있다. 다른 예들에서, 아이덴티티는 클라이언트의 저장 장치에 저장되지 않지만 그것이 요구될 때마다 사용자에 의해 입력된다. 몇몇 예들에서, 시간 허용치들이 사용되는 경우에, 저장 장치는 또한 시간 허용치(27)를 저장할 수 있다. 시간 허용치들은 이하에서 보다 상세히 설명될 것이다. 저장 장치는 보호될 필요가 없다. 저장되지 않은, PIN(11) 없이, 클라이언트 비밀은 복구될 수 없다. 결과적으로, 외부 엔티티가 토큰 및 클라이언트 아이덴티티를 찾을지라도, 그것은 전체 비밀(7)을 복구할 수 없을 것이다.
초기화 프로그램(24) 및 인증 프로그램(25)은 자바스크립트(JavaScript) 프로그램에 의해 제공될 수 있다. 자바스크립트 프로그램은 하나 이상의 별개의 프로그램 모듈들을 포함할 수 있으며 초기화 프로그램 및 인증 프로그램은 별개의 모듈들에 의해 제공될 수 있다. 자바스크립트 프로그램은 또한 사용자로부터 PIN을 수신하기 위해 사용될 수 있다. 자바스크립트 프로그램은 브라우저의 저장 장치 또는 대안적인 보호되지 않은 저장 장치에 토큰을 저장할 수 있다. 클라이언트는 이러한 자바스크립트 프로그램에 의해 제공될 수 있다. 프로그램은 범용 사용자 디바이스 상에서 실행하도록 구성될 수 있다. 자바스크립트 프로그램은 웹 인터페이스를 통해 인증 서버(3) 및/또는 TA(4)로부터 디바이스로 제공될 수 있다. 몇몇 구현들에서, 프로그램은 예를 들면 인증 서버(3) 및/또는 TA(4)로부터 수신되거나 또는 다운로딩될 수 있으며 범용 사용자 디바이스 상에 설치될 수 있다.
도 1에 대하여 언급된 바와 같이, 클라이언트는 사용자(6)에 의해 동작될 수 있다. 사용자(6)는 통상적으로 인간일 것이다. 그러나, 사용자(6)는 대신에 컴퓨터와 같은, 기계일 수 있다. 사용자가 기계일 때, PIN은 기계 생성될 수 있다. 서버(3)에 대한 인증이 요구될 때, 기계는 그 후 클라이언트가 비밀(7)을 재구성하도록 허용하기 위해, PIN을 클라이언트(2)에 제공한다.
도 3을 참조하여, 인증 서버(3)는 컴퓨터, 서버 또는 다른 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스가 프로세서(31), 컴퓨터 프로그램 지시들을 저장하기 위한 메모리(32) 및 데이터를 저장하기 위한 저장 장치(33)를 포함한다. 메모리(32)는 등록 및 인증 프로세스들의 서버 측을 실행하기 위한 컴퓨터 코드의 형태로 지시들을 가진 서버 인증 프로그램(34)을 포함한다. 인증 프로그램은 그 자신의 비밀을 획득하기 위해 TA에 등록하기 위한 지시들을 포함한다. 프로그램은 또한 클라이언트를 인증하기 위한 지시들을 포함한다. 몇몇 구현들에서, 프로그램은 세션 키를 도출하기 위한 컴퓨터 지시들을 포함할 수 있다. 프로그램은 클라이언트가 인증 프로토콜의 그것의 측을 실행하기 위한 지시들을 포함한 클라이언트 인증 프로그램(25)을 클라이언트에 전송하기 위한 지시들을 더 포함할 수 있다. 수신 시, 범용 사용자 디바이스는 시스템에 참여하기 위해 프로그램을 사용하며 TA로부터 수신된 비밀을 사용하여 서버에 스스로를 인증할 수 있다. 클라이언트는 프로그램을 저장 및 실행할 수 있으며 프로그램은 TA로부터 수신된 비밀을 사용하여 서버에 대하여 인증 프로세스를 실행하도록 클라이언트를 구성할 수 있다. 게다가, 인증 프로그램(34)은 클라이언트가 사용자로부터 부정확한 PIN을 수신하며 그러므로 서버에 인증하려고 시도하는데 실패한다면 에러 핸들링 프로세스를 실행하기 위한 지시들을 포함할 수 있다. 인증 프로그램(34)은 TA(4)에 등록하기 위한 모듈 및 클라이언트(2)와 통신하기 위한 별개의 모듈을 포함할 수 있다. 인증 프로그램(34)이 또한 에러 핸들링 프로세서를 실행하기 위한 지시들을 포함할 때, 인증 프로그램은 별개의 에러 핸들링 모듈을 포함할 수 있다. 서버(3)는 TA(4)로부터 인증 프로그램(34)을 획득하였다.
프로세서(31)는 메모리에서 지시들을 실행하도록 구성된다. 프로세서는 또한 메모리(32)에서의 지시들의 실행 동안 데이터를 임시로 저장하기 위해, 캐시 메모리와 같은, 그 자신의 내부 임시 메모리를 포함할 수 있다.
저장 장치(33)는 서버 비밀(8)을 저장하기 위한 보안 저장 장치를 포함할 수 있다. 저장 장치는 또한 그것의 사본을 그것이 서버에 인증하기를 원하는 각각의 새로운 클라이언트에 전송하는 클라이언트 인증 프로그램을 포함할 수 있다.
상기 언급된 바와 같이, 몇몇 구현들에서, 인증 서버는 소프트웨어 전용으로서 구현되며 단지 프로세서에 의해 실행될 프로그램 지시들만을 포함한다. 다른 구현들에서, 서버는 전용 하드웨어 디바이스일 수 있다.
도 4를 참조하면, TA(4)는 컴퓨터, 서버, 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. TA는 클라이언트 및 서버에 대해 별개의 엔티티이며 시스템의 제어기로서 동작한다. 컴퓨팅 디바이스는 프로세서(41), 컴퓨터 프로그램 지시들을 저장하기 위한 메모리(42) 및 데이터를 저장하기 위한 저장 장치(43)를 포함한다. 메모리는 마스터 비밀(9)을 생성하며 시스템에 참여자들을 등록하는 초기화 프로그램(44)을 저장할 수 있다. 그것은 또한 시스템의 엔티티들에 식별자들을 할당할 수 있다. 프로그램은 또한 클라이언트가 토큰 및 PIN을 생성하도록 허용하기 위해 초기화 프로그램(24)을 클라이언트에 전송하기 위한 지시들을 포함할 수 있다. 예를 들면, 상기 언급된 바와 같이 TA는 웹 인터페이스를 통해 초기화 프로그램(24)을 클라이언트에 제공할 수 있다. 초기화 프로그램은 또한 이하에서 보다 상세히 설명될 바와 같이 시간 허용치들을 발행하기 위한 지시들을 포함할 수 있다.
프로세서(41)는 메모리에서의 지시들을 실행하도록 구성된다. 프로세서는 또한 메모리(42)에서의 지시들의 실행 동안 데이터를 임시로 저장하기 위해, 캐시 메모리와 같은, 그 자신의 내부 임시 메모리를 포함한다.
저장 장치(43)는 마스터 비밀(9)을 저장하는 보안 저장 장치를 포함할 수 있다. 보안 저장 장치는 변조 방지 또는 변조 억제일 수 있다. 보안 저장 장치는 또한 시스템에 등록된 클라이언트들 및 서버들의 리스트(45)를 포함할 수 있다. 클라이언트들 및 서버들의 리스트(45)는 또한 이하에서 보다 상세히 설명될 바와 같이, 클라이언트들에 대한 시간 허용치들을 저장할 수 있다. 부가적으로, 신뢰 기관의 저장 장치는 이하에서 보다 상세히 설명될 바와 같이, 대수 곡선을 정의한 파라미터들 및 프로토콜에서 사용될 해시 함수들을 포함하여, 프로토콜들에 사용될 파라미터들(46)을 저장할 수 있다. TA는 클라이언트들 및 서버들에 이러한 정보를 전송하거나 또는 요구될 때 획득하기 위해 클라이언트들 및 서버들에 대해 그것을 공개할 수 있다. 이 정보는 클라이언트(2)에 제공된 초기화 프로그램에 포함될 수 있다.
상기 언급된 바와 같이, 몇몇 예들에서, TA는 단지 프로세서에 의해 실행될 프로그램 지시들을 포함한다. 다른 예들에서, TA는 전용 하드웨어 디바이스일 수 있다.
도 1에 대하여 설명된 바와 같이, 서버 및 TA는 데이터 네트워크와 같은, 통신 매체(5)에 의해 연결될 수 있다. 예를 들면, 엔티티들은 인터넷에 의해 연결될 수 있다. 그러나, 클라이언트, 서버 및 TA는 부가적으로 또는 대안적으로 다른 통신 미디어를 사용하여 통신할 수 있다. 클라이언트, 서버 및 TA의 프로세서들, 메모리들 및 저장 장치는 각각 하나 이상의 프로세서들, 메모리들 및 저장 모듈들을 포함할 수 있다는 것이 인식될 것이다.
시스템은 클라이언트(2)가 인증 서버(3)에 스스로를 인증하도록 허용하기 위해 쌍선형 매핑들을 사용할 수 있다. 시스템은 그것의 비밀 정보를 인증 서버에 전송하지 않고 클라이언트가 서버에 스스로를 인증하도록 허용하기 위해 쌍선형 매핑들을 사용할 수 있다. 이것은 제로 지식 증명 인증으로서 알려져 있다. 제로 지식 증명 암호 기법은 하나의 당사자(증명자)가 비밀에 대한 어떤 것을 드러내지 않고, 비밀 값을 갖고 있음을 다른 당사자(검증자)에 증명하는 기법이다. 결과적으로, 아무리 많이 클라이언트가 서버에 인증할지라도, 서버는 비밀을 결정할 수 없을 것이다.
쌍선형 매핑들은 페어링들을 포함할 수 있다. 페어링들은 특수한 페어링-적합 타원 곡선 상에서 동작한다. 비대칭 페어링 맵이 사용될 수 있다. 페어링들의 쌍선형성 특성은 여기에 설명된 암호 기법들의 제로 지식 증명의 예들을 실현하기 위해 사용될 수 있다.
타원 곡선들 상에서의 페어링들은 숙련자에 의해 알려져 있으며 여기에서 상세히 설명되지 않을 것이다. 간단히, 비대칭 페어링은 별개의 제1 및 제2 그룹들에 속하는, 곡선 상에서의 두 개의 포인트들을 입력으로서 취하며, 제3 그룹에서의 요소에 포인트들을 매핑시킨다. 페어링들의 쌍선형성 속성 때문에, 클라이언트 비밀 및 서버 비밀이 특정 방식으로, 각각, 클라이언트와 연관된 데이터 및 서버와 연관된 데이터로부터 구성될 때, 클라이언트 비밀(sA) 및 서버와 연관된 데이터는 클라이언트와 연관된 데이터 및 서버 비밀(sQ)로서 제3 그룹에서 동일한 요소에 매핑될 수 있다.
Figure pct00115
클라이언트 비밀(7)은 제1 그룹에 속하는 곡선 상에서의 포인트(A)에, 클라이언트 아이덴티티(26)의 형태로, 클라이언트와 연관된 공개 데이터를 해싱하며 그 후 곡선 상에서 마스터 비밀(s)과 포인트를 곱함으로써 TA에서 구성될 수 있다. 서버 비밀(8)은 곡선 상에서, 제2 그룹에서의 고정된 포인트(Q)를 마스터 비밀(s)과 곱함으로써 TA에서 구성된다. 결과적으로, 서버에서 그 자신의 비밀 데이터에 기초하여 페어링을 산출하며, 상기 페어링으로부터 도출된 값 또는 클라이언트 비밀에 기초하여 페어링의 결과를 분석함으로써, 서버는 클라이언트 비밀(7) 자체를 수신하지 않고 클라이언트가 클라이언트 비밀(7)을 소유하였는지를 결정할 수 있다.
숙련자는 페어링들을 실행하기 위해 사용될 수 있는 다수의 적절한 타원 곡선들이 존재하고 있음을 이해할 것이다. 게다가, 페어링들이 여기에서 타원 곡선들 상에서 실행되는 것으로 설명되지만, 다른 적절한 곡선들이 사용될 수 있다는 것이 인식될 것이다.
타원 곡선 대수는 곡선들 상에서의 포인트들의 덧셈들 및 곱셈들을 실행하기 위한 특정한 규칙들을 정의한다. 이것들은 이 기술분야에 알려져 있으며 여기에서 설명되지 않을 것이다. 간단히, 규칙들은 또 다른 포인트(C)를 획득하기 위해 두 개의 포인트들(A 및 B)을 함께 더하는 것을 수반한 덧셈으로 불리우는 연산을 정의한다. 기하학적으로, 이것은 예를 들면 상이한 x 좌표들을 가진 포인트들에 대해, 포인트들(A 및 B) 사이에서 직선을 그리며 직선이 곡선을 교차하는 포인트(C)를 찾는 것을 수반할 수 있다. 그러나, 규칙들은 또한 새로운 포인트가 어떻게 대수적으로 획득될 수 있는지를 정의할 것이다. 곱셈으로 불리우는 연산은 kA를 획득하기 위해 k회 동일한 포인트(A)의 반복된 덧셈들에 의해 정의된다. 뺄셈으로 불리우는 연산은 또 다른 포인트(A)로부터 감산될 음의 포인트(B)의 획득하는 것 및 그 후 포인트들(A 및 -B)의 덧셈을 실행하는 것을 수반한다. 음의 B는 동일한 x 좌표를 갖지만 음의 y 좌표, -B를 가진 포인트이다.
다수의 상이한 유형들의 페어링들은 숙련자에 의해 이해될 바와 같이, 여기에 설명된 암호 프로토콜들을 실현하기 위해 사용될 수 있다. 예를 들면, Weil 페어링, Tate 페어링, ate 페어링 및 R-ate 페어링은 사용될 수 있는 적절한 페어링들의 예들이다.
프로토콜들은 클라이언트(2)가 페어링을 산출하기 위해 요구되지 않으며 헤비 프로세싱이 대신에 인증 서버(3)에서 실행되도록 추가로 구성될 수 있다. 클라이언트는 그것의 비밀(7)을 사용하여, 산출을 실행하며 결과들을 서버에 전송한다. 서버는, 그 자신의 비밀(8)을 사용하며 페어링 산출을 계산함으로써, 클라이언트가 클라이언트 비밀을 소유하지 않고 수신된 결과들을 획득할 수 있는지를 확인한다. 서버가 클라이언트가 비밀을 소유하지 않고 산출의 결과들을 획득할 수 없을 것임을 결정한다면, 서버는 클라이언트를 인증한다. 서버에서 실행된 산출은 클라이언트로부터 수신된 결과들을 사용한 페어링 및 그 자신의 비밀 정보 및 두 개의 페어링들의 적에 기초한 페어링을 포함할 수 있다. 산출은 다중-페어링 산출로서 실행될 수 있다. 몇몇 예들에서, 적이 특정한 값과 같다면, 서버는 클라이언트가 사실상 키를 소유한다고 결정할 수 있다. 몇몇 예들에서, 서버가 클라이언트가 비밀을 소유하지 않는다고 결정한다면, 그것은 클라이언트에 의해 수신된 PIN에서 에러의 정도를 결정할 수 있다. 클라이언트에 대한 그것의 응답은 PIN에서의 에러의 정도에 의존할 수 있다.
일단 클라이언트가 인증된다면, 클라이언트 및 서버는 그 후 이어서 세션 키들을 계산할 수 있다. 클라이언트 및 서버는 이어서 이미 교환된 정보 및 부가적인 정보에 기초하여 동일한 비대칭 세션 키를 수립할 수 있다. 대안적으로, 클라이언트 및 서버는 수송 계층 보안/보안 소켓 계층(TLS/SSL) 프로토콜을 사용하여 세션 키들을 수립할 수 있다. 몇몇 예들에서, 사용된 키들은 각각의 세션과 상이할 것이며 클라이언트 및 서버는 세션마다 새로운 세션 키를 수립하도록 요구하여, 완전 순방향 비밀성(Perfect Forward Secrecy; PFS)을 제공한다.
도 5를 참조하면, 또 다른 시스템의 예가 도시된다. 도 1 및 도 5에서, 유사한 참조 부호들은 유사한 구성요소들을 지정한다. 도 5에서, 인증 서버(3)는 두 개의 서버들(3a 및 3b) 및 프록시(3c)로 교체된다. 상기 언급된 바와 같이, 도 3의 인증 서버(3)의 프로세서(31), 메모리(32) 및 저장 장치(33)는 각각 하나 이상의 프로세서, 메모리 및 저장 장치를 포함할 수 있으며 인증 서버(3)는 각각 그 자신의 프로세서, 메모리 및 저장 장치를 갖는 다수의 서버 모듈들을 가진 분배 서버로서 구현될 수 있다. 도 5의 시스템에서, 두 개의 서버들(3a, 3b)의 각각 및 프록시(3c)는 그 자신의 프로세서, 메모리 및 저장 장치를 가질 수 있다. 서버들(3a 및 3b)의 각각에 서버 비밀(8)의 부분(8a, 8b)에 발행되며 이를 저장한다. 자체가 별개의 서버일 수 있는, 프록시(3c)는 클라이언트(2)와 통신하며 각각의 서버(3a, 3b)에 관련 정보를 전달한다. 각각의 서버는 그 자신의 산출을 실행하며 프록시(3c)는 클라이언트(2)를 인증하기 위해 산출들의 결과들을 조합한다. 산출들은 프록시도 서버들도 전체 서버 비밀(8)을 획득할 수 없도록 하는 방식으로 실행된다. 결과적으로, 프록시 또는 서버에 대한 공격은 해커가 서버 비밀을 획득하며 클라이언트에 서버인 체하도록 허용하지 않을 것이다. 프록시(3c)는 또한 서버들(3a, 3b)로부터 수신된 결과들로부터 세션 키(14)를 수립할 수 있다. 몇몇 시스템들에서, 별개의 프록시는 존재하지 않을 수 있지만 서버들 중 하나가 대신에 프록시의 기능을 실행하며 다른 서버들에 관련 정보를 전달할 것이다. 이러한 분산 서버 배열은 이하에서 보다 상세히 설명될 것이다.
몇몇 시스템들에서, TA는 또한 해커가 마스터 비밀을 훔치는 것을 더 어렵게 만들기 위해, 그 각각이 마스터 비밀의 일 부분을 저장하는, 두 개의 구성요소들로 분리될 수 있다.
이하에 설명된 프로토콜들의 예들의 일부는 "M-핀(M-Pin)"으로서 불리울 것이다. 단지 "M-핀"만이 인증을 실행하기 위한 프로토콜을 나타낸다. "M-핀 풀(M-Pin Full)"은 또한 키 배열을 실행하기 위한 확장된 프로토콜을 나타낸다.
우리는 이하에서의 단계적으로 생기는 접근법에서 다양한 프로토콜들 및 구현들을 설명할 것이다. 우리는 다양한 알려진 프로토콜들 및 기법들 및 이들 프로토콜들 및 기법들에 대한 제안된 수정들 또는 변화들을 설명할 것이다. 우리는 그 후 M-핀 프로토콜 및 그 후 M-핀 프로토콜 상에서 형성되는 다수의 프로토콜들을 설명할 것이다. 우리는 또한 대안적인 프로토콜들을 설명할 것이다. 게다가, 우리는 프로토콜들의 구현들 및 변화들의 예들 및 프로토콜들이 어떻게 사용될 수 있는지에 대한 예들을 설명할 것이다.
기존 제안들의 검토
2003년에, 기법은 Kim 외 [A13]에 의해 제안되었으며, 이것은 "스마트 카드들 및 핑거프린트들을 사용한 ID-기반 패스워드 인증 기법"을 약속하였다. Scott의 [A20]는 그것이 어떻게 단일 트랜잭션을 수동적으로 도청한 공격자에 의해 철저히 파괴될 수 있는지를 보여주었다. 명료함을 위해, 여기에서 참조된 다른 참조 문헌들의 세부사항들과 함께, 참조 문헌들([A13] 및 [A20])의 세부사항들이 설명의 마지막에 열거된다.
Martinez-Pelaez 및 Rico-Novella [A15]에 의한 훨씬 더 최근의 2012년 논문은 그들의 논문 "스마트 카드들을 사용한 Liao 외의 인증 기법의 개선" [A23]에 설명된, Sood, Sarje 및 Singh로 인한 기법을 성공적으로 암호 해독한다. 이러한 기법은 근본적으로 2-인자 인증 제안이다. [A15]의 요약으로부터, ".. 우리는 Sood 외의 기법이 악의적인 사용자 공격들, 중간자 공격, 훔친 스마트 카드 공격, 오프-라인 ID 추측 공격, 위장 공격 및 서버 변조 공격에 여전히 취약함을 보여준다. 2-인자 식별에 대한 인용된 논문들의 리스트들을 통해 추적하면, 유사하게 깨진 프로토콜들의 불모지를 찾는다. 많은 다른 기법들은 신뢰도가 작지만, 많은 문헌을 생성하는 고장-수리-고장-수리 사이클로 나뉜다. 암호 수립은 어떤 누구도 매우 길게 살아남지 않는, 무법 천지의 암호 기법의 종류로서 이러한 영역의 연구를 크게 포기한 것처럼 보인다.
이러한 문제점은 "인증 키 교환의 영역에서 지난 30년의 연구가 그것이 단일 인자 기반 키 교환(KE) 기법을 바르게 이해하는 것이 엄청나게 어렵다. 다-인자 인증 키 교환(AKE) 프로토콜을 설계하는 것은 단지 더 어려울 수 있다는 것을 증명해왔다"는 것을 서술함으로써 그것을 설명하는 Hao 및 Clarke [A12]에 의해 인식되었다. 그러나 가벼운 판독자의 반응은 이것일 수 있다: 사용하기 용이하며 안전한 2-인자 인증의 문제점에 대해 만족스러우며 광범위하게 수용된 해법이 없는 것처럼 보이는 암호 프로토콜들의 개발에서 어떻게 이 단계에 접근했는가?
패스워드 인증 키 교환(PAKE)은 잘 연구된 영역이며, PAKE에 대한 많은 증명된 방법들이 제안되어 왔다 [A30]. 그러나, 대부분 정확하게 해커가 해킹된 서버에서 찾으며, 그것들이 서버의 보안을 완전히 잠그지 않도록 허용하는, "패스워드 파일", 또는 "패스워드 검증자 파일"의 유지를 요구한다. 가장 일반적으로 이러한 파일은 < 사용자명 , Salt, H(Salt|패스워드)>의 튜플들로 이루어지며 여기에서 Salt는 랜덤 수이고, H(.)는 단방향 해시 함수이며 | 는 연쇄를 표시한다. 잘 이해되는 바와 같이, 패스워드가 고 엔트로피를 갖는 것으로 선택되지 않는다면, 공격자는 컴퓨터 속도들에서 사전을 통해 탐색함으로써 패스워드를 찾을 때 오프-라인 사전 공격을 잘 실행할 것이다. 사전의 밖에 있는 패스워드들만이 이러한 공격에서 살아남을 것이다. 이것은 고 엔트로피 패스워드가 미리 서버에 동의해야 하는 동어 반복(tautology)를 야기한다. PAKE의 전체 목적은 고 엔트로피 암호 키를 상호 인증하며 동의하는 것임을 상기하자.
하나의 대안은 스마트 카드를 각각의 클라이언트에 발행하며 서버 상에서보다는 여기에서 패스워드 관련 정보를 저장하는 것이다. 이것은 인증 프로세스에 제2 인자를 부가하는 부가된 이득을 가진다 - 스마트 카드 자체. 그러나, 이것이 작동하기 위해, 그것은 스마트 카드 구성요소가 전체 스마트 카드 기능을 유지해야 하는 것처럼 보인다. 그것의 보안이 깨졌다면, 시스템은 작동이 안된다. 이러한 접근법의 성공적인 구현을 위해 Yang 외 [A31]을 참조하자. 그러나, 스마트 카드들은 값비싸다. 또한 이러한 기법들은 언제나 장기 비밀(s)을 유지하도록 서버에 요구한다. 다시 서버가 해킹된다면, s 가 누설될 수 있어서, 전체 시스템의 보안을 잠금 해제한다.
다-인자 인증
다-인자 인증은 일반적으로 (a) 우리가 가진 것, (b) 우리가 아는 것 및 (c) 우리인 것으로 이루어진다. 그것이 우리에게 가장 친숙한 형태는 2-인자 ATM 은행 카드 및 4 숫자 PIN 번호로서 있을 것이다. 여기에서 우리의 논의의 대부분은 2-인자 인증의 맥락에 있을 것이지만, 제3 인자에 대한 지지를 일부 고려한다.
"우리가 가진 것" 인자는 아마도 자기 스트립 상에, 또는 QR 코드, 또는 친숙한 USB 스틱에 기록된 데이터의 형태 인자로, 정적 데이터를 저장한 물리적 토큰일 수 있다. 또는 그것은 스마트-카드일 수 있다. 스마트 카드는 그것이 그 자신의 보호된 비밀들 및 컴퓨팅 능력을 가질 수 있으며, 복제될 수 없다는 점에서 추가 기능을 가질 것임을 주의하자. 그러나, 스마트 카드는 훨씬 더 비싸며, 그것을 잃는 것은 값비싼 교체를 요구한다.
"우리가 아는 것" 인자는 패스워드이다. 그러나 패스워드들은 두 개의 별개의 분위기들에 관여한다. 지금 우리에게 보다 더 일반적으로 요구되는 고-엔트로피 패스워드, 예를 들면, 8 이상의 문자들을 가져야 하며 대문자 및 소문자 양쪽 모두, 및 적어도 하나의 숫자를 수반하는 패스워드. 그 후 저 엔트로피 패스워드, 예를 들면, 4-숫자 PIN이 있다. 그 후에 결국 우리는 고 엔트로피 패스워드들에 대해 배타적으로 단어 패스워드, 및 저 엔트로피 패스워드에 대한 단어 PIN을 사용할 것이다. 그것들을 구별하기 위한 대안적인 방식은 후자가 오프-라인 사전 공격에 의해 쉽게 발견되는 반면, 전자는 바라건대 그렇지 않음을 관찰하는 것이다. 오프-라인 사전 공격은 공격자가 가능한 패스워드들/PIN들의 사전을 빨리 살펴보며 (컴퓨터 속도들에서) 그것들이 올바른 것을 찾을 때 쉽게 검출할 수 있는 경우이다.
"우리인 것" 인자는 생체 인식, 아마도 핑거프린트 또는 홍채 스캔으로서 캡처된다. 그러나, 그것들은 흔히 부정확하며, 생체 인식 측정을 위한 값들의 특정한 범위는 수용 가능한 것으로 간주될 수 있다.
생체 인식들은 "하드" 또는 "소프트"일 수 있다. 소프트 생체 인식은 개개인을 작은 그룹의 멤버쉽으로 제한하기 위해 사용될 수 있는 분류를 리턴한다. 하드 생체 인식은 정확한 식별을 하기 위해 저장된 템플릿과 함께 작동한다. 이것은 PIN 및 패스워드 사이에서의 비교와 유사하며 - 명확하게 많은 사람들이 동일한 PIN을 안전하게 공유하지만 이상적으로 모든 패스워드는 고유해야 한다. 하드 생체 인식들은 값비싼 경향이 있는 반면, 소프트 생체 인식 핑거프린트 스캐너들은 예를 들면, 매우 저렴할 수 있다. 하드 생체 인식을 위한 템플릿은 공격을 위한 귀중한 타겟을 만들며 어딘가에 안전하게 저장되어야 한다.
많은 기법들은 토큰으로서 스마트-카드를 제안한다. 그러나, 그것들은 종종 또한 스마트-카드의 보안이 구멍이 뚫리며 그것의 비밀이 누설되는 경우를 고려하며, 그 경우에 그것은 수동형 토큰 [A29], [A26]보다 양호하지 않다. 우리는 스스로를 몇몇 애플리케이션들에 대해, 가장 간단하고, 가장 용이하며 가장 저렴한 시나리오(및 그러므로 가장 실현적인)에 제한한다.
우리는 다음을 가정할 것이다
1. 정적 복제 가능한 토큰,
2. 저 엔트로피 4-자리 PIN 번호
3. (선택적) 소프트 생체 인식.
그러나, 본 발명의 실시예들은 2 또는 3 인자 인증에 제한되지 않지만 2 인자들, 3 인자들 및 3 이상의 인자들로 분리된 비밀들을 사용할 수 있다는 것이 인식될 것이다. 우리의 토큰은 정적일 수 있으므로, 우리는 소프트웨어 전용 해법을 제공할 수 있다는 것을 주의하자. 클라이언트에 대해 우리의 제안된 기법들의 일부는 시도된 그리고 신뢰된 ATM 카드(자기 스트립 상에 기록된 정적 데이터를 가진), 및 연관된 PIN 번호와 사실상 매우 유사하다. 그러나, 인터넷인 훨씬 더 적대적 도메인에 걸쳐 작동하는 것.
보안 특징들
많은 저자들은 이러한 프로토콜들의 바람직한 특징들의 도움이 되는 리스트들을 구성하였다. Tsai 외 [A25]는 이러한 기법들에 대해 9개의 보안 요건들 및 10개의 목표들의 리스트를 제공한다. 그러나 기록 시 이용 가능한 기법들에 대한 그것들의 검토는 모두가 실망스럽다는 것을 나타낸다. Liao 외 [A14]는 10개의 속성들의 리스트를 찾아내었는데, Yang 외 [31]는 이를 5로 감소시켰다. 최근에 Wang [A29]는 이러한 기법이 저항해야 하는 8개의 공격들의 리스트를 찾아내었으며, 잠재적인 공격자의 3개의 카테고리들을 식별하였다.
이러한 종래 기술에 의해 동기가 부여되면, 여기에서 우리는 기법이 충족시킬 수 있는 조건들의 그 자신의 리스트를 제공한다.
1. 프로토콜은 상호 인증되며 상호 암호 키를 도출하는 클라이언트 및 서버를 야기해야 한다.
2. 어떤 PIN 관련 데이터도 서버 상에 저장되지 않는다. 그럼에도 불구하고 서버는 클라이언트가 그것들의 잊어버린 PIN을 복구하는 것을 도울 수 있어야 한다.
3. 기본 인증 키 교환은 "키 손상 위장"에 영향을 받지 않는다. 그것은 서버가 클라이언트를 위장할 수 없으며 클라이언트는 서버를 위장할 수 없다.
4. 클라이언트는 서버를 수반하지 않고 그것들의 PIN을 국소적으로 변경할 수 있어야 한다.
5. 인증 서버의 비밀들의 소유를 얻은 공격자는 단지 (a) 거짓 서버를 셋 업하며 (b) 그것들의 PIN을 결정하기 위해 클라이언트에 토큰을 제공할 수 있어야 한다. 이것은 기본적으로 임의의 이러한 기법에 대해, 기대하게 될 수 있는 최상임을 주의하자.
6. 서버는 클라이언트의 비밀에서 임의의 작은 에러(ε)의 정도를 식별할 수 있어야 한다. 이것은 인자로서 부정확한 생체 인식 측정의 포함을 용이하게 할 것이다.
7. 기법은 "순방향 비밀성"의 속성을 지원해야 한다.
8. 기법은 실제로 "다-인자"이어야 한다. 수반된 n 인자들이 있다면, n - 1 인자들의 손실은 최종 인자가 발견되도록 허용하기에 충분하지 않아야 한다. 물론, 이것은 또한 내부자 공격들에 대해서 참이어야 한다: 예를 들면, 유효 토큰 및 PIN을 구비하며 또 다른 클라이언트의 토큰을 캡처하는 클라이언트는 그것들의 PIN 번호를 결정할 수 없어야 한다.
9. PIN 추측 공격들은 단지 온-라인으로 실행될 수 있다(및 그러므로 서버에 의해 모니터링되며 방지될 수 있다).
10. 전체 시스템은 단일-고장-점을 갖지 않아야 한다.
얼마나 다수의 기존의 프로토콜들 및 몇몇 적응된 제안들이 이들 속성들을 충족시키는데 실패하는지가 이제 설명될 것이다. 우리는 그 후 이들 속성들을 충족시키는 기법 및 이러한 기법에 대해 개선하거나 또는 이 기법에 대한 대안들 또는 수정들을 제공하는 시스템을 설명할 것이다. 우리의 문헌 검토는 어떤 이러한 기법도 여기에서 설명된 기법 전에 존재하지 않았음을 제안할 것이다. 여기에 설명된 모든 프로토콜들이 이들 속성들을 충족하는 것은 아니다. 본 발명의 실시예들은 10개의 속성들을 충족시키는 프로토콜들에 제한되지 않으며 본 발명의 실시예들 중 일부는 프로토콜들, 및 10개의 속성들을 충족시키지 않는 프로토콜들의 수정들 및 변화들을 제공한다. 여기에 설명된 프로토콜들의 예들의 일부는 10개의 속성들을 충족시키기 위해 다른 프로토콜들 또는 기법들과 함께 사용될 수 있다.
조건(3)은 서버가 클라이언트 등록을 관리하도록 허용하는 임의의 기법에 대해 충족시키기 위해 분명히 불가능함을 주의하자. 보안을 고려할 때, 우리는 서버들 및 그것의 클라이언트들 사이에서 통신들을 완전히 제어할 수 있으며, 공격 하에 있는 개개인보다는 사용자들의 임의의 수의 토큰들 및 연관된 PIN들의 소유를 가질 수 있는 상대방을 가정하는, [A31]의 적대적 모델을 전체적으로 채택할 수 있다.
추가 기존 제안들의 검토
다음으로 우리는 지금까지의 제안들을 약간 더 자세히 본다. 대부분은 수반된 단지 두 개의 당사자들, 클라이언트들 및 서버가 있는 설정에 기초한다. 전자는 서버와의 몇몇 초기 상호작용으로 들어가며(등록 단계) 몇몇 크리덴셜들이 발행된다. 변함없이 이것은 인증 프로세스에서 수반될 몇몇 마스터 비밀을 가지고 있도록 서버에 요구한다. 우리가 제안할 이러한 기법들은 서버가 해킹되는 경우(될 때) 이러한 비밀이 발견될 수 있는 것처럼, 현재 상황에 대해 개선할 가능성이 적으며, 전체 기법의 보안은 풀릴 것이다.
많은 보다 간단한 제안들의 정밀 검사는, 인증된 비밀 키의 클라이언트 인증 및 수립에 대한 기반으로서, 서버 마스터-비밀에 연쇄된 클라이언트 아이덴티티의 단방향 해시를 사용한 간단한 아이디어를 속으로 드러낸다. 따라서 클라이언트 아이덴티티 ID 및 서버 마스터 비밀(s)에 대해, 프로토콜은 예를 들면, 표준 보안 해시 알고리즘(SHA256)을 해시 함수로서 사용하는, 고 엔트로피 상호 비밀
Figure pct00116
상에서 형성될 것이다. 이러한 비밀은 그것들의 토큰(패스워드에 의해 마스킹된) 상에서 클라이언트에 의해 저장되며, 요구된 대로 서버에 의해 즉석으로 생성될 것이다. 이러한 기법들은 종종 또한 순방향 비밀성을 제공하기 위해 디피-헬만(Diffie-Hellman) 구성요소를 포함한다. 이들 간단한 아이디어들의 다수의 조합들이 제안되어 왔지만 [A32], [A14], [A31], [A26] 대부분은 장기적인 정밀 조사를 견디지 못한다. Yang 외의 기발한 아이디어 [A31]는 사실상 패스워드 인증 키 교환(PAKE)에서의 패스워드로서 H(ID|s)를 사용한다. 그러나 이미 지적된 바와 같이, 그것들이 "전체 시스템의 보안이 근본적으로 s의 보안에 의존하기 때문에 s의 비밀성이 최고 중요하다"고 서술함에 따라 이것은 토큰에 대한 스마트-카드 기능, 및 장기 서버 비밀(s)을 요구한다. 그러나 서버의 해킹은 패스워드 파일을 훔치는 것 보다 훨씬 더 치명적일 수 있는 s를 드러낼 수 있다.
대부분의 제안들의 두드러진 특징은 종종 보안의 증명을 제공하기 위해 적은 노력이 이루어진다는 것이다. 그것은 그렇게 많은 기법들이 왜 그렇게 빨리 깨지는지를 설명하도록 확실히 돕는다. 그러나 몇몇 종류의 보안의 증명을 제공하는 이들 제안들은 우리의 10개의 바람직한 속성들에 대해 측정될 때 서툰 경향이 있다. 물론 보안의 증명은 단지 그것의 가정들만큼 양호하다. 예를 들면, 2010년에서, Stebila 외 [A24]는 다-인자 패스워드-인증 키 교환을 제안하였다. 그러나, 그것은 우리의 조건 2를 충족시키지 않으며, 따라서 서버의 성공적인 해킹은 모든 정적 높지-않은-엔트로피 패스워드들을 드러낸다. Yang 외에 의한 제안 [A31]은 조건 3을 충족하지 않는다. Wang [A29]에 의한 최근의 제안은 내부자 공격의 가능성(우리의 조건 8)을 고려하지 않으며 그러므로 놀랍게도 그것으로 과해지지 않는다. Pointcheval 및 Zimmer [A16]의 기법은 우리의 조건 2를 만족시키지 않으며, 최근에 Hao 및 Clarke [A12]는 그것들의 공식적 모델의 결함들에 기초하여 그것이 가진 문제점들을 발견하였다.
데이터에 대한 만족스러운 해법의 부족은 아마도 아이덴티티-기반 암호화(IBE)에 대한 상황을 미러링한다. 이러한 개념은 1984년 [A22]에 Shamir에 의해 처음으로 제안된 이래 잘 알려졌지만, 표준 공개 키 기반 시설(PKI)을 사용하는 것은 하나의 중요한 조건 또는 또 다른 것을 위반하지 않은 발견되었던 IBE에 대한 어떤 만족스러운 기법도 구성하지 않는다. 그것은 단지 2001년에 실제 프로토콜이 가능해졌던 [A4] 암호 페어링의 신규 구성을 사용하였다. 따라서 아마도 우리의 제안된 해법이, 몇몇 구현들에서, 암호 페어링들의 속성들을 이용하는 것은 놀랍지 않다.
페어링들에 기초한 보다 양호한 해법의 가능성은 "명시적 상호 인증을 제공하며 [A14]에서 제공된 속성들 모두를 만족시키기 위해 확장될 수 있는 프로토콜"을 설명하는 것으로서 논문 [A19]을 식별하는 Yang 외 [A31]에 의해 암시되었다.
우리의 해법은 몇몇 구현들에서, 2 인자 인증을 위한 제1 소프트웨어-전용 방법에 해당한다. 몇몇 구현들은 우리가 상기 식별한 바람직한 속성들의 10개 모두를 만족시키며 그것들의 가장 간단한 형태로 단지 소프트웨어 토큰 및 쉽게 기억되는 PIN 번호를 요구한다. 그러나, 상기 언급된 바와 같이, 이하에 설명된 다른 구현들 및 프로토콜들은 모든 10개의 속성들을 충족시키지 않을 수 있다.
PKI의 표준 방법들을 이용하는 것
몇몇 애플리케이션들에 대해, 우리는 이상적으로 PKI와 다르지 않은 방법과 같을 것이며, 여기에서 클라이언트들 및 서버 양쪽 모두는 대체로 오프-라인의 잘 보호된 제3 자 신뢰 기관에 의해 상기 기법으로 등록된다. 서버의 역할로부터 기재 또는 등록의 역할들을 분리함으로써, 분명히 손상을 주지만, 서버 비밀들의 손실은 바라건대 큰 재앙이 아니어야 한다.
여러 개의 증명된 방법들은 PKI의 방법들을 사용하여 1-인자 인증 키 교환(AKE)에 대해 보고되어왔다. 기본 아이디어는 그것들이 그 후 키 교환에서 사용할 수 있는 그것들의 아이덴티티의 디지털 서명을 사용자들에게 발행하는 것이다.
Fiore 및 Gennaro [A6]의 입증 가능하게 안전한 아이덴티티-기반 디피-헬만 기법을 고려하자. 여기에서 신뢰 기관은 랜덤 그룹 발생기(g), 및 랜덤 마스터 비밀(x)을 선택하며 공개 키(
Figure pct00117
)를 발행한다. 그 후, 그것은 랜덤 k 를 선택하며
Figure pct00118
Figure pct00119
를 산출함으로써
Figure pct00120
으로서 제의된 아이덴티티 상에 Schnorr 서명 [A18]을 발행한다. 키 교환은 표 1에서처럼 진행한다.
아이덴티티-기반 디피-헬만 - Fiore 및 Gennaro [A6]
Alice - 아이덴티티
Figure pct00121

랜덤 a < q를 생성한다
Figure pct00122

Figure pct00123
Bob - 아이덴티티
Figure pct00124

랜덤 b < q를 생성한다
Figure pct00125

Figure pct00126
양쪽 참여자들 모두는 결국 동일한 키(
Figure pct00127
)가 된다 . 이제 클라이언트-서버 설정에 이러한 기법을 적응시키며 제2 인자로서 PIN 번호를 포함하도록 시도하자. 우리는 즉시 두 개의 문제점들에 직면한다. 먼저 이러한 프로토콜은 본질적으로 클라이언트-서버보다는 피어-투-피어이다. 그러므로 우리가 PIN 번호를 어떻게 내장하기 시작하든, 이러한 기법은 내부자 오프-라인 사전 공격을 시작해야 한다. 기본적으로, 토큰 및 PIN의 소유를 가진 누군가는 스스로를 "서버"로서 설정할 수 있다. 이제 그것들이 또 다른 토큰을 훔친다면 그것들은 그것들이 작동하는 PIN을 찾을 때까지 그것들의 "서버"와의 키 교환들을 오프-라인으로 수행할 수 있다. 더욱이 심지어 비-내부자들이 시스템을 고장낼 수 있다. 기본적으로 토큰을 훔치며 토큰 값이 유효 서명으로서 나타내어질 때까지 모든 가능한 PIN을 시도한다. 서명들의 유효성은 인증 기관의 공개 키가 모두에 이용 가능함에 따라 쉽게 검증될 수 있다.
저자들 자체로서 "사용자가 공개 키(
Figure pct00128
)를 사용하며 등식(
Figure pct00129
)을 확인함으로써 그것의 비밀 키의 정확도를 검증할 수 있다"고 말한다. 기법의 특징으로서 내포되지만, 우리를 위해 그것은 문제점을 나타낸다: 이러한 등식의 존재는, 이러한 등식이 오프-라인 사전 공격으로 하여금 그것을 복구하도록 허용할 것이므로, PIN이 비밀 서명과 함께 안전하게 사용될 수 없음을 의미한다. 우리가 제안할 기법들 중 일부에서, 어떤 이러한 등식도 존재하지 않는다. 몇몇 구현들에서, 비밀 키의 정확성을 검증하기 위한 유일한 방식은 진짜 서버와의 키 합의를 완성하기 위해 그것을 사용하는 것이어야 한다.
2-인자 인증을 위해 표준 PKI 방법들을 이용하는 것이 가진 이들 문제점들은 또한 Wang [A29]에 의해 언급된다.
페어링들 PIN들
페어링들의 도래로, 새로운 해법들이 가능하게 되었다. 페어링은 보통
Figure pct00130
로 나타내어진, 동일한 소수 위수(q)의 3개의 그룹들을 갖고, 특수한 페어링-적합 타원 곡선 [A2], [A7] 상에서 작동한다. 여기에서 우리는
Figure pct00131
Figure pct00132
이 개별적이며,
Figure pct00133
,
Figure pct00134
,
Figure pct00135
이고,
Figure pct00136
인 유형-3 페어링 [A9]을 가정한다. 이들 그룹들로부터의 요소들은 혼합될 수 없음을 주의하자. 우리가
Figure pct00137
에서 클라이언트들 및
Figure pct00138
에서 서버들을 위치시키도록 의도함에 따라 이것은 우리에게 매우 중요하다.
페어링들의 주된 중요한 속성은 쌍선형성이다
Figure pct00139
온-라인으로 요구되지 않는 그 자신의 마스터 비밀을 가진 독립적 신뢰 기관(TA)의 존재를 가정하자 - 그것은 오프-라인 기재/등록 및 클라이언트 및 서버 ID-기반 비밀들의 발행에만 책임이 있다. 이것은 보안의 추가 계층을 제공하며 클라이언트 또는 서버 장기 비밀들의 손실에 의해 야기된 손상을 제한한다.
Figure pct00140
을 가정하며
Figure pct00141
는 각각 Alice의 아이덴티티 및 서버의 아이덴티티임을 가정하자.
Figure pct00142
그룹(
Figure pct00143
)에서 위수(q)의 포인트에 대해 해싱하는 해시 함수이고,
Figure pct00144
는 그룹(
Figure pct00145
)에서 위수(q)의 포인트에 대해 해싱하는 해시 함수이다. 그 후 클라이언트(Alice) 및 서버 양쪽 모두에게 각각 비밀들(
Figure pct00146
Figure pct00147
)이 발행되며, 여기에서
Figure pct00148
이고,
Figure pct00149
이며 s는 특정한 서버를 가진 사용을 위한 TA의 마스터 비밀이다. 물론
Figure pct00150
Figure pct00151
을 아는 것은, 그것이 어려운 이산 대수 문제점에 의해 완전히 보호되기 때문에, s를 드러내지 않는다.
이제, 그에 의해 Alice 및 서버가 동시에 상호 인증하며 공통 키를 도출할 수 있는, 간단한 SOK 비-상호작용적 키 교환 알고리즘 [A17]을 고려하자. Alice는
Figure pct00152
로서 그것을 산출하며, 서버는 그것을
Figure pct00153
로서 산출한다. 쌍선형성에 의해, 양쪽 모두는 명확히 동일하다. 그러나 이제 Alice는 그것을 토큰 부분(
Figure pct00154
), 및 PIN 부분(
Figure pct00155
)으로 분할하기 위해, 그녀의 비밀로부터 그녀의 선택의 PIN α을 추출한다. 분명히, 이것들이 함께 더해질 때, 전체 비밀이 재구성될 수 있다. 이러한 아이디어 (원래 [A19]에서 제안된)는 우리의 제안된 2-인자 인증 기법들의 몇몇 예들에 대한 시작 포인트를 형성한다.
외부 디피-헬만(XDH) 가정은 먼저 비공식적으로 [A19]에 내포되었으며, 이제 광범위하게 사용된다. XDH 가정은 공식적으로 다음을 서술한다.
1. 이산 대수 문제(DLP), 계산적 디피-헬만 문제(CDH), 및 계산적 공동-디피-헬만 문제는 모두
Figure pct00156
Figure pct00157
에서 아주 다루기 힘들다.
2. 효율적으로 계산 가능한 쌍선형 맵(페어링)(
Figure pct00158
)이 존재하고 있다.
3. 결정적 디피-헬만 문제(DDH)는
Figure pct00159
에서 아주 다루기 힘들다.
직관은 효율적으로 계산 가능한 유형-3 페어링의 사실에도 불구하고,
Figure pct00160
은 "정상적" 디피-헬만 그룹으로서 동작한다. DDH 문제가 그에 따라 설명될 수 있다: 발생기(G)를 고려해볼 때, aG, bG cGc = ab인지를 결정한다. 이제
Figure pct00161
Figure pct00162
가 발행되며
Figure pct00163
의 소유를 얻은 아이덴티티(
Figure pct00164
)를 가진 내부 공격자(Bob)를 고려하자. 해시 함수가 그것의 작업을 정확하게 수행하였다면, A B 는 순환 그룹(
Figure pct00165
)에서 위수(q)의 독립적인 발생기들이며, 여기에서 몇몇 알려지지 않은
Figure pct00166
에 대해
Figure pct00167
이다. 그의 내부 정보를 이용하기 위한 유일한 방식은
Figure pct00168
일 때를 식별하기 위해 그가
Figure pct00169
에 대한 그의 내부 지식을 사용할 수 있을 때까지 계속해서 추측(g)을 시도하며
Figure pct00170
Figure pct00171
에 부가하는 것이다.
Figure pct00172
=
Figure pct00173
인 유형-1 페어링 상에서, 이것은 그가
Figure pct00174
일 때
Figure pct00175
인 사실을 사용할 수 있기 때문에 용이하다는 것을 관찰하자. 그러나, 유형-3 페어링 상에서, 이것은, 그것이
Figure pct00176
에서 결정적 디피-헬만(DDH) 문제를 해결하기 위한 능력을 내포하므로, XDH 가정에 따라 가능하지 않다.
증명: A = wB을 치환하며 A가 주어지면, wA, xA swAx = s인지를 결정할 수 있는 Oracle을 가정하자. 그 후 이러한 Oracle은 DDH 문제를 해결하기 위해 사용될 수 있다. 간단히 G, aG, bG cG 를 입력하며 우리의 Oracle은 b = c/ a인지 또는 c = ab인지를 결정할 것이다.
그러므로 실제로 Alice는 그녀의 비밀로부터 그녀의 선택의 PIN α을 추출할 수 있으며 이는 그것을 토큰 부분들(
Figure pct00177
) 및 PIN 부분(αA)으로 분할하기 위해서이다. 분명히, 이것들이 함께 더해질 때, 전체 비밀이 재구성될 수 있다. 캡처된 토큰은 모든 가능한 PIN과 호환 가능하며, 그러므로 그것 없이 쓸모가 없다.
그러나, 우리는 우리가 이 속성을 보유한다면 매우 신중해야 한다. PIN 추출은 이러한 속성, 예를 들면 Boneh 및 Franklin의 IBE 기법 [A4], 또는 Chen 및 Kudla 인증 키 교환 [A5] (프로토콜 1), 또는 그것의 공개 파라미터들의 부분으로서 발생기 포인트(
Figure pct00178
Figure pct00179
Figure pct00180
,
Figure pct00181
에서)를 요구하는 임의의 기법(또는 유형-1 페어링 상에서 구현된 임의의 기법, 예를 들면, [A29]의 PSCAb 기법)을 보유하도록 요구된다면 많은 페어링-기반 프로토콜들과 함께 사용될 수 없다. 이러한 경우에, Charlie가
Figure pct00182
을 포함한 Alice의 토큰을 캡처한다면, Charlie는
Figure pct00183
까지 모든
Figure pct00184
를 검사함으로써 그녀의 PIN을 빠르게 찾을 수 있다.
이것은 오프-라인 사전 공격의 또 다른 예이며, 그것은 매우 치명적이다.
서버 비밀(sS)이 누설되거나(S 및 sS를 드러내는) 또는 실제로 sG2에서 알려진 포인트의 임의의 배수이면, 이들 값들은 훔친 토큰과 연관된 PIN을 결정하기 위해 사용될 수 있다. 이것이 가능해야 하는 것은 물론 단지 상식이다. 서버 비밀이 발견된다면, 발견자는 그 자신의 거짓 서버를 설정할 수 있으며, 훔친 토큰에 대하여 모든 가능한 PIN을 시도하고, 그에 따라 PIN을 발견할 수 있다.
동일한 s를 사용하여 동일한 TA에 의해 검증된 임의의 서버를 액세스하는 모든 클라이언트들은 이들 서버들 중 하나만이 손상된다면 위험에 처한다는 것을 주의하자. 이러한 이유로, 각각의 개개의 서버는 이상적으로 상이한 마스터 비밀(s)과연관되어야 한다.
흥미롭게도 우리는 의도적으로 서버가 PIN에 대한 오프-라인 사전 공격을 시작하며, 그것을 유용한 특징으로서 이용할 수 있는 환경을 생성할 수 있다. 서버는 간단한 PIN-복구 서비스를 클라이언트에 제공한다(및 따라서 우리의 조건 2를 완전히 만족시킨다). 클라이언트(A)는 단지 토큰 및 PIN g에 대한 그것들의 부정확한 추측을 요구하는, 보안 채널을 통해
Figure pct00185
을 서버 S 에 전송한다. 그 후 클라이언트는 아마도 그것들의 아이덴티티(엄마의 결혼하기 전 성 등)를 증명하기 위해 몇몇 길이들이 된다. 일단 그것이 서버의 만족을 위해 행해진다면, 서버는 오프-라인이 되며
Figure pct00186
를 모든 가능한 i 에 대해, 그가 매칭(X = Y )을 얻을 때까지 산출한다. 그 후
Figure pct00187
추측(g) 및 정확한 PIN α 사이에서의 이러한 차이는 그 후 이메일, 또는 몇몇 다른 방법에 의해 클라이언트로 다시 전송될 수 있다. 이것은 PIN α을 서버에 드러내지 않는다는 것을 주의하자.
신뢰 기관의 마스터 비밀은 전체 시스템에서 단일 고장 점을 나타낸다는 것이 관찰될 수 있다. 그러나, 상기 언급된 바와 같이, 이러한 마스터 비밀은 다수의 독립 기관들 [A4]에 걸쳐 쉽게 비밀이 공유될 수 있다. 가장 간단한 경우에, TA들의 쌍은 각각 비밀들(
Figure pct00188
Figure pct00189
)을 독립적으로 생성하며
Figure pct00190
을 생성하기 위해 클라이언트에 의해 부가될 수 있는
Figure pct00191
Figure pct00192
를 클라이언트에 발행할 수 있다. 하드웨어 보안 모듈(HSM) - 흔히 PKI 사설 키들을 보호하기 위해 사용되는 바와 같은 - 은 보안의 추가 레벨을 제공하기 위해, 이들 산출들 중 하나 또는 양쪽 모두에 대해 사용될 수 있다. 이제 마스터 비밀(s)은 임의의 단일 엔티티에 알려지지 않는다. 이러한 식으로 우리는 공식적으로 우리의 조건 10을 만족시킬 수 있다.
SOK -기반 프로토콜
어떤 신뢰 기관 공개 키도 이 프로토콜에서 요구되지 않는다는 것을 관찰하는 것이 중요하다.
Figure pct00193
에서 배타적으로 클라이언트들을 및
Figure pct00194
에서 배타적으로 서버들을 두는 아이디어와 조합하면, 우리는 표 1의 시도된 PKI-기반 해법과 연관된 문제점들 양쪽 모두를 극복한다.
토큰을 훔치며 PIN을 모르고 서버에 로그 온하려고 시도하는 공격자를 고려하자. 그것들은
Figure pct00195
으로부터 키를 도출할 수 있는 반면, 서버는
Figure pct00196
로부터 그것을 정확하게 도출할 것이다. 서버가 그 후 공격자에게 정확한 키를 갖고 암호화된 무언가를 전송한다면, 공격자는
Figure pct00197
, S)로부터 도출된 모든 가능한 키를 갖고 그들이 유효한 복호화를 제공하는 값(g)을 찾을 때까지 복호화하려고 노력함으로써 오프라인 사전 공격을 통해 PIN을 찾을 수 있다. 이를 방지하기 위해, 우리는 클라이언트가 먼저 그것들의 산출된 키로부터 도출된 인증기를 제출하게 한다. 클라이언트가 정확한 키를 도출하였음을(정확한 PIN을 사용하여) 서버가 확신하였을 때만, 프로토콜이 계속될 것이다.
우리는 이제 우리의 간단한 SOK 기반 해법을 방지할 준비를 한다. 프로토콜이 성공적이라고 가정하면, 양쪽 측면들 모두는 키(K)를 사용하도록 진행한다. 표 2를 참조하자.
간단한 SOK-기반 프로토콜
Alice - 아이덴티티
Figure pct00198

Figure pct00199
서버 - 아이덴티티
Figure pct00200

Figure pct00201

Figure pct00202
이면, 연결을 중단한다.
다음으로 우리는 우리의 10개의 속성들에 대하여 이러한 간단한 프로토콜을 검사한다. 이미 표시된 바와 같이 우리는 속성들 2 및 10을 이행하는데 성공하였다. 우리는 또한 속성들 1 및 9를 만족시킨다. 분명히 클라이언트는 그것들의 토큰으로/으로부터 A의 배수를 간단히 가산/감산함으로써 그것들의 PIN을 국소적으로 변경할 수 있으며, 따라서 4가 또한 만족된다.
조건 8은 만족하고도 남으며 - Boneh 및 Franklin [A4]에 의해 언급된 바와 같이, 클라이언트 비밀의 간단한 형태(다수의 그것들의 아이덴티티로서)는 그것이 비밀-공유 기법을 사용하여, 다양한 방식들로 안전하게 나뉘어질 수 있음을 의미한다. 클라이언트의 재구성된 비밀이 작은 양만큼 오프된다면, 상호 키는 에러의 정도를 결정하며 그것을 보상할 수 있는, 서버에 의해 여전히 산출될 수 있다. 예를 들면 클라이언트가 그들의 비밀로서 sA + εA 를 사용한다면, 서버는 그것의 비밀로서 sS + εS 를 사용함으로써 보상할 수 있다. 더욱이 서버는 권한(ε)을 탐색하는데 얼마의 시간을 소비할 여유가 있을 수 있다. 그러므로, 이러한 기법은 가능한 생체 인식 인자를 지원하기 위해 우리의 속성 6에 의해 요구된 바와 같이 키 정정 능력을 지원한다. 본 발명자들은 동일한 행동이 다른 방식들로 이용될 수 있음을 인식하였다. 클라이언트가 잘못된 PIN을 입력한다면, 서버는 이러한 키 정정 능력을 사용하여 에러(δ)의 정도를 쉽게 결정할 수 있다. 따라서 예를 들면 클라이언트가 1234 대신에 1224를 입력한다면, 서버는 PIN이 10만큼 "벗어남"을 알아낼 수 있다. 이러한 행동은 또한 입력되는 잘못된 PIN에 지능적으로 응답하기 위해 이용될 수 있다 - 그것이 많이 벗어난다면, 또 다른 시도를 허용하지 않고, 그것이 단지 1자리만큼 벗어난다면, 추가 시도 등을 허용한다. "강제(coercion)" 관례가, 예를 들면, PIN이 단지 마지막 숫자에서 1만큼 벗어났다면 동의될 수 있고, 서버는 이것을 클라이언트가 물리적 위협하에 있는 있으면서 PIN을 입력하는 것으로서 해석하며 적절히 응답할 수 있다.
그것은 속성들 3, 5 및 7을 가진 우리를 여전히 불만족스럽게 한다. 명확히 서버는 그것들이 3 및 5를 위반하는 e(C, sS)로서 임의의 클라이언트(C)에 대한 키를 도출할 수 있기 때문에, 로그인하기 위해 임의의 클라이언트를 가장할 수 있다. 또한 다수의 다른 문제점들이 있다. 동일한 쌍의 클라이언트 및 서버는 항상 동일한 키(k)를 도출할 것이며, 따라서 우리는 공격들을 다시 볼 여지가 있다. Alice의 토큰을 캡처하며 암호화된 대화를 도청하는 공격자는 연관된 PIN을 쉽게 도출할 수 있다.
챌린지는 우리가 이미 달성한 속성들을 잃지 않으면서 이들 공격들을 차단하며 나머지 속성들을 만족시키는 것이다. 주요 아이디어는 또 다른 다소 더 정교한 구성으로 SOK 구성을 대체하는 것이다.
Wang의 프로토콜
임의의 인증 키 교환 프로토콜의 강력한 속성은 키 손상 가장(KCI) 공격 [A3]에 대한 저항이다. 키 손상 가장 공격은 Alice의 크리덴셜들(토큰 더하기 PIN)을 캡처하는 공격자(Charlie)가 Alice인체하는 서버(단지 예상되는)로 로그인할 수 있을 뿐만 아니라, 실제 Alice에 대해 서버인 체할 수 있다. 우리의 SOK 기반 프로토콜은 서버가
Figure pct00203
로서 키를 산출할 수 있는 동안, Alice의 크리덴셜들을 훔친 Charlie가 sS를 모르고,
Figure pct00204
과 동일한 값을 산출할 수 있으므로 이러한 종류의 공격에 무방비이다. 이러한 문제는 페어링의 일 측으로부터 다른 것으로 마스터 비밀(s)을 수반한 구성요소를 이동시키기 위해 쌍선형성을 이용하기 위한 능력이다. 해법은 다른 필요한 산출들을 갖고 페어링의 각각의 측을 "오버로딩"하며 그러므로 이러한 가능성을 차단하는 것이다.
클라이언트-서버 설정에서(키 교환이 보통 설명되는 피어-투-피어 설정보다는), KCI는 서버가 클라이언트로서 가장하는 서버-대-클라이언트 KCI, 또는 클라이언트가 서버로서 가장할 수 있는 클라이언트-대-서버 KCI 또는 양쪽 경우들 모두가 가능한 상호 KCI로 분해될 수 있음을 관찰하자. 포인트는 하나 또는 다른 것이 가능한 시나리오가 있을 수 있다는 것이며, 양쪽 모두는 아니다. 여기에서 우리는 양쪽 가능성들 모두를 차단하는 것을 선호한다.
[A28]에서, Wang은 효율적인 아이덴티티-기반 인증 키 합의 프로토콜을 제안한다. 그것은 피어-투-피어 설정에서 설명되지만, 우리는 유형-3 페어링 상에서 그것을 구현함으로써 클라이언트-서버 프로토콜에 그것을 적응시킬 것이다. 원래 프로토콜은 결정적 쌍선형 디피-헬만(DBDH) 가정에 기초한 보안의 증명을 가진다. 그것은 이제 우리의 속성들 3 및 5에 대한 지지를 제공하면서, SOK 프로토콜에 대한 드롭-인(drop-in) 교체를 우리에게 제공한다. Wang의 프로토콜은 P1363.3 제안된 IEEE 표준 [A1]의 부분을 형성한다.
우리는 Wang의 프로토콜의 훨씬 간소화된 버전으로 시작한다 - 표 3. 양쪽 당사자들에 대해, 합의된 키
Figure pct00205
이다. Wang의 프로토콜은 KCI 공격에 취약하지 않다. 그러나,
Figure pct00206
Figure pct00207
상에서 도청한 신뢰 기관은
Figure pct00208
로서 키를 쉽게 산출할 수 있다. 이것은 직접 결과로서 완전 순방향 비밀성(PFS)의 속성(우리의 번호 7)을 갖지 않은 프로토콜이다.
[A28]에 기초한 간소화된 프로토콜
Alice -아이덴티티
Figure pct00209

랜덤 x < q를 생성한다
Figure pct00210
서버 - 아이덴티티
Figure pct00211

랜덤 y < q를 생성한다
Figure pct00212

Figure pct00213
이면, 연결을 중단한다
PFS의 속성을 포함하기 위해, Wang은 키 교환으로 동시에 디피-헬만을 포함하는 이러한 수정을 제안한다 - 표 4. 또한 [A5]를 참조하자.
완전 순방향 비밀성을 가진 간소화된 프로토콜
Alice - 아이덴티티
Figure pct00214

랜덤 x < q를 생성한다
Figure pct00215
서버 - 아이덴티티
Figure pct00216

랜덤 y, w < q를 생성한다
Figure pct00217

Figure pct00218
이면, 연결을 중단한다
양쪽 키들 모두는 동일한
Figure pct00219
이다. Wang의 원래 논문 [A28]에서,
Figure pct00220
을 사용하는 것이 제안된다. 그러나, 이것은
Figure pct00221
라는 관찰에 기초하여, 키 손상 가장 공격을 다시 가능하게 하며, 따라서
Figure pct00222
가 캡처된다면, Charlie는 임의의 아이덴티티(Z)를 갖고 S에 로그인할 수 있다.
2-인자 클라이언트-서버 프로토콜
우리가 그것을 설명한 바와 같이, Wang의 프로토콜은 문제점을 가진다. A (및 S)의 아이덴티티들은 키 산출에 직접 포함되지 않는다. 따라서 Bob은 아이덴티티(Alice)를 주장할 수 있지만, 그 자신의 크리덴셜들을 사용하여 여전히 로그 온할 수 있다. 이것은 몇몇 애플리케이션들에서 만족스럽지 않다. Wang은 우리가 이해할 바와 같이, 이것을 고치기 위한 다소 복잡한 방법을 사용한다.
Figure pct00223
은 범위 1 내지 q 에서의 수에 대해 해싱하는 해시 함수임을 가장하자(비록 Wang에 따르면, 몇몇 성능 이득들을 갖고, q에서 비트들의 수의 절반 크기로 이러한 범위를 감소시키는 것이 OK이다). 새로운 기법이 표 5에 주어진다.
2-인자 인증 프로토콜
Alice - 아이덴티티
Figure pct00224

랜덤 x < q를 생성한다
Figure pct00225
서버 - 아이덴티티
Figure pct00226

랜덤 y, w < q를 생성한다
Figure pct00227

Figure pct00228
이면, 연결을 중단한다
양쪽 당사자들 모두에 대해,
Figure pct00229
임을 관찰한다. Alice의 토큰 및 PIN은 그것들로부터 산출된 임의의 값이 송신되기 전에 국소적으로 재조합된다는 것을 관찰한다. 잘못된 PIN이 입력되면, 서버는 연결을 중단시킨다(및 주장된 "Alice"에 대하여 보다 극단적인 동작을 취하기 전에 몇 번 더 시도들을 허용하는).
페어링-기반 프로토콜들이 본질적으로 실세계 애플리케이션에 대해 너무 느릴 수 있다는 널리 퍼진 우려가 있다. 그러나, 효율적인 구현에서의 최근의 진행은 의심자들에게 명확히 응답하였다(최근의 전행의 검토를 위해, [A21] 참조). 우리는 C 및 몇몇 자동으로 생성된 어셈블리 언어의 혼합을 사용하여, 2.4GHz에서 클로킹된, 64-비트 인텔 i5 520M 프로세서 상에서, 표준 고급 암호화 표준 - 128 (AES-128) 비트 레벨의 보안에서 Barreto-Naehrig(BN) 곡선 [A2]을 사용하여 표 5에서 구현하였다.
페어링 자체 [A21]에 대한 최적의 기술들을 사용하는 것뿐만 아니라,
Figure pct00230
[A8]에 대한 빠른 해싱을 위한
Figure pct00231
외의 방법,
Figure pct00232
[A11]에서 포인트 곱셈을 위한 잘 알려진 Gallant, Lambert 및 Vanstone (GLV) 방법, 및
Figure pct00233
[A10]에서 빠른 포인트 곱셈을 위한 Galbraith-Scott 기술을 이용할 수 있다.
임의의 사전 계산 [A21] 없이도, 상기 프로토콜은 완전히 실현 가능하다. 우리의 테스트 하드웨어 상에서, 산출의 서버 측은 4.48 밀리초를 요구하였으며 클라이언트 측은 4.10 밀리초를 요구하였다.
Wang의 프로토콜은 여기에서 유일한 선택이 아님을 주의하자. 예를 들면 또한 PIN 및 키 정정을 지원하는 S. Wang 외 [A27]에 기인한 대안적인 프로토콜이 있다. 그것은 Wang의 것보다 다소 더 명쾌하며, 더 빠르다고 주장한다. 그것은 또한 보안의 멋지고 간단한 증명을 가진다. 또 다른 대안은 Chen 및 Kudla [A5]로부터의 프로토콜 2이다.
그것의 비밀(sS)을 드러내는 서버 상에서의 성공적인 해킹의 영향들을 고려하자. 서버 상에 저장된 클라이언트 관련 비밀들(토큰, PIN 또는 생체 인식)이 없음을 주의하자. 그러나 이러한 공격은 거짓 서버가 설정되도록 허용하며, 이것은 클라이언트들이 로그 온 한다고 확신할 수 있다. 성공적인 해커가 그 후 토큰을 캡처한다면, 그것들은 연관된 PIN을 쉽게 찾을 수 있다. 그러나 그것들은 진짜 서버로 로그 온하며, 그것의 데이터를 액세스하기 위해 캡처된 서버 비밀을 사용할 수 없다. 그것들은 임의의 다른 클라이언트들을 등록할 수 없다. 따라서 우리는 우리의 속성 5를 완전히 달성하며 서버 비밀의 손실이 심각할지라도, 효과들은 완화된 최대 정도이다.
서버로부터 클라이언트 등록의 역할을 제거하며 대신에 그것을 독립적인 제3 자에 맡김으로써, 우리는 2-인자 인증의 문제점에 대한 PKI/SSL-형 해법을 가능하게 하였다. 우리는 표 5에 도시된 기법이, 동시에 더 사용자-친화적이며 더 안전한, 현재 사용자명/패스워드를 사용하는 임의의 웹-기반 애플리케이션에 대한 매우 적합한 대안임을 유지한다. 그러나, 그것은 페어링을 실행하도록, 서버뿐만 아니라, 클라이언트에 요구한다.
상기 설명된 프로토콜들에 대해 개선하고, 및/또는 그거에 대한 대안들을 제공하는 프로토콜들의 다수의 예들이 이제 설명될 것이다. 프로토콜들 및 구현들의 일부는 상기 나열된 10개의 보안 특징들의 모두가 아닌 일부를 충족시킨다.
M-핀 프로토콜들
효율적인 2-인자 클라이언트-서버 인증 메커니즘들을 특징으로 삼는, 다수의 M-핀 프로토콜들이 이제 설명될 것이다. 특히, M-핀 클라이언트가 종종 제한된 계산 능력을 가진 환경에서 구현될 것이기 때문에, 우리는 프로토콜의 클라이언트 측에서 로드를 가볍게 하는 방법을 보여준다. 여기에서의 우리의 설명은 AES-128 비트 레벨의 보안에서 Barreto-Naehrig (BN) 곡선 [B4]의 상황에 있지만, 여기에 포함된 아이디어들은 다른 콘텍스트들로 쉽게 확대된다.
상기 언급된 바와 같이, M-핀은 서버에 클라이언트를 인증하는 제로-지식 인증 프로토콜이다. 그것의 고유 특징은 그것이 쇼트 PIN 번호(11)로 하여금 토큰+PIN 조합을 생성하기 위해 클라이언트 비밀로부터 추출되도록 허용하여, 2-인자 인증을 용이하게 한다는 것이다. 아이디어는 다-인자 인증을 지원하기 위해 쉽게 확대될 수 있다. 게다가, 클라이언트 비밀(7)로부터 추출된 제2 인자(11)는 PIN일 필요는 없다. 그것은 데이터의 임의의 스트링일 수 있다.
강한 클라이언트-서버 프로토콜은 (a) 서버에 클라이언트를 인증해야 하고, (b) 클라이언트에 서버를 인증해야 하며, (c) 후속 통신들이 암호화될 수 있는 협상된 암호화 키를 야기해야 한다. 상기 언급된 바와 같이, 지금까지 이것을 구현하는 표준 방식은 서버에 클라이언트를 인증하기 위해 사용자명/패스워드 메커니즘을 사용하는 것에 의한 것이며, 클라이언트에 서버를 인증하기 위해, 및 암호화 키를 수립하기 위해 잘 알려진 TLS/SSL 프로토콜을 사용한다. 여기에서의 가장 약한 링크는 광범위하게 끊어진 것으로 간주되는 사용자명/패스워드 메커니즘이다. SSL 자체는 더 적은 정도로, 몇몇 이용 가능한 취약성들을 드러낸 집중적인 정밀 조사에 의해 약화되었다.
사용자명/패스워드를 교체하기 위해, 다-인자 인증은 가장 종종 홍보된 해법이다. 모든 가능한 형태-인자들 중에서, 토큰 및 PIN 번호의 간단한 ATM-형 조합이 가장 사용자에게 익숙하며 사용자-친화적이다. 그러나 매우 최근까지, 전통적 대칭 암호 기법으로부터 도출된 단순화된 방법들을 사용한 것 외에, 어떤 적절한 순수 암호 프로토콜도 그것을 지원하기 위해 이용 가능하지 않다. 구현들은 끊임없이 몇몇 종류의 (잠재적으로 값비싼) 하드웨어 토큰을 수반하였다. 현재의 비대칭 암호 기법에 기초한 암호 해법들은 연관된 PIN 번호를 수학적으로 즉시 결정하기 위해, 몇몇 쉽게 액세스 가능한 사이드 정보를 소유한 공격자를 허용하며, 소프트 토큰을 캡처한 약점을 겪는다. 그러므로 그것들은 진정으로 2-인자는 아니다.
여기에서 우리는 M-핀 기술 해법을 설명한다. 이것은 두 개의 종류들, (a) SSL을 계속해서 레버리징하면서 사용자명/패스워드를 간단히 교체하는 기본 M-핀 프로토콜, 및 (b) 또한 SSL을 교체하는 M-핀-풀 변형에 관여한다.
도 1에 대하여 설명된 바와 같이, M-핀의 중요한 양상은, 도 1의 설명에서 신뢰 기관(4)으로서 불리우는, 제3 자의 관여이다. 전통적 사용자명/패스워드 기법들에서, 클라이언트는 클라이언트 패스워드들의 "암호화된" (사실상 해싱된) 파일을 유지하는, 서버에 직접 등록한다. 그러므로 서버는 매일의 동작들에 책임을 지지 않으며, 그것은 또한 클라이언트 등록을 책임진다. 이것은 Verisign과 같은, 인증 발행 기관(CA)의 형태로 제3 자를 이미 수반한, (훨씬 더 성공적인) SSL 프로토콜과 대조적임을 주의하자. 상기 언급된 바와 같이, 이러한 증명 기반 기술은 공개 키 기반 시설(PKI)로서 알려져 있다. SSL과 같은 것을 갖고, 서버 등록은 매일의 서버 동작으로부터 상당히 분리된다. M-핀을 갖고, 우리는 클라이언트에 대해 유사한 어떤 것을 한다 - 우리는 이제 신뢰 기관(TA)에 의해 핸들링되는, 클라이언트 등록으로부터의 매일의 서버 기능을 분리한다. 따라서 TA와 M-핀의 관계는 CA와 SSL/PKI와 같다. 이러한 접근법의 거대한 이득들 중 하나는 서버로의 침입이, TA가 여전히 존중되는 한, 거의 그것과 같은 손상을 야기하지 않는다는 것이다. 단지 단일 SSL 서버를 해킹하는 것은 Verisign을 해킹하는 것만큼 나쁘지 않다.
TA는 클라이언트 및 서버 비밀들을 발행한다. M-핀을 사용하여, 어떤 클라이언트 비밀들, 또는 클라이언트 비밀들로부터 도출된 값들도 서버 상에 저장되지 않는다. M-핀을 갖고, Alice는 그것에 대해 어떤 것도 드러내지 않고, 그녀가 유효한 비밀을 소유한다는 것을 서버에 증명한다.
페어링-기반 암호 기법
상기 추가로 언급된 바와 같이, 우리의 해법을 실현하기 위해, 우리는페어링-기반 암호 기법(PBC)의 비교적 새로운 과학을 이용할 것이다. 페어링-기반 암호는 종종 공개-키 암호 기법의 표준 수학에 대해 다루기 힘든 것으로 증명된 복잡한 문제들에 대한 해법을 허용하는 추가 구조를 제공한다. PBC에 대한 포스터 아동은 아이덴티티-기반 암호화였으며, 그에 의해 클라이언트의 아이덴티티는 그것들의 공개 키가 된다. 아이디어가 장시간 동안 맴돌아지지만, 종래의 암호 프리미티브들은 해법을 생성하는데 반복적으로 실패하였다. 그러나, PBC 해법들의 도입으로 찾아진다 [B6].
또한 상기 언급된 바와 같이, 유형-3 페어링 [B12]은 매핑(
Figure pct00234
)이다. 그룹들(
Figure pct00235
,
Figure pct00236
Figure pct00237
)은 동일한 소수 위수(q)의 모두이다. 페어링은 특수한 페어링-적합 타원 곡선 [B4], [B11] 상에서 작동한다. BN 곡선에 대해,
Figure pct00238
은 베이스 필드(
Figure pct00239
)상에서의 포인트들이고,
Figure pct00240
는 이차 확대 필드(
Figure pct00241
)에 걸친 곡선의 6차 트위스트 상에서의 포인트들이며,
Figure pct00242
은 유한 확대 필드(
Figure pct00243
)에 내장된 원분 서브그룹에서의 요소들이다. 파라미터(p)는 페어링의 소수법을 지정한다. 페어링 자체는 두 개의 입력들을 가진 함수(
Figure pct00244
)로서 기록되며 여기에서
Figure pct00245
이고,
Figure pct00246
이며
Figure pct00247
이다. BN 페어링-적합 곡선은 AES-128 레벨에서 보안을 위한 완전한 맞춤이며, 따라서 우리는 여기에서 그것의 사용을 가정할 것임이 인식된다. 상기 언급된 바와 같이, 페어링의 가장 중요한 속성은 그것의 쌍선형성이다:
Figure pct00248
클라이언트-서버 프로토콜을 생성하기 위해, 클라이언트 및 서버 비밀들이 별개로 유지되어야 하는 것이 중요하다. 유형-3 페어링의 구조를 이용하기 위한 간단한 방식은
Figure pct00249
에서의 클라이언트 비밀들을 및
Figure pct00250
에서의 서버 비밀들을 넣는 것이다. 유형-3 페어링에 대해, 양쪽 모두가 동일한 위수일지라도, 이들 그룹들 사이에 계산 가능한 이질 동상(isomorphism)은 없다.
도 1 내지 도 5에 대하여 언급된 바와 같이, 신뢰 기관은 마스터 비밀(s)을 소유할 것이다. 마스터 비밀(s)은
Figure pct00251
의 랜덤 요소일 수 있다. 고요한 비밀 값(s)은 특정한 서버에 대한 신뢰 기관의 지원과 연관될 수 있다. 클라이언트 비밀은 형태
Figure pct00252
이며, 여기에서 ID는 클라이언트 아이덴티티이고
Figure pct00253
Figure pct00254
상에서 포인트(A)에 매핑시키는 해시 함수이다. 여기에서 우리는 [B20]을 따르며 H
Figure pct00255
(여기서
Figure pct00256
는 랜덤이며
Figure pct00257
Figure pct00258
의 고정 발생기이다)인 랜덤 oracle로서 모델링됨을 가정하자. 서버에는 비밀(
Figure pct00259
)이 발행될 것이며, 여기에서
Figure pct00260
Figure pct00261
의 고정 발생기이다. 다시 말해서, 비밀(
Figure pct00262
)은 TA 비밀(s)로 곱하여진 특수한 타원 곡선 상에서 고정 포인트(
Figure pct00263
)를 나타낸다. 고정 포인트(Q)는 TA에 의해 임의로 선택될 수 있다. 서버에는 또한 고정 포인트
Figure pct00264
의 좌표들이 발행된다. 해커가
Figure pct00265
Figure pct00266
을 찾을지라도, 해커는 그것이 이산 대수 문제에 의해 보호되기 때문에 마스터 비밀(s)을 결정할 수 없을 것이다. 몇몇 구현들에서, 이것은 TA에 의해 제공된
Figure pct00267
에서 s의 유일한 배수일 것임을 주의하자. 몇몇 구현들에서, 서버들은 항상 그 자신의 고유한 마스터 비밀들과 연관될 것이다. 다시 말해서, s의 값은 모든 서버에 대해 고유하다. 곡선은 포인트(
Figure pct00268
)가 위치되지만 포인트들(
Figure pct00269
Figure pct00270
)이 동일한 위수(q)의 상이한 그룹들(
Figure pct00271
Figure pct00272
)에 속하는 동일한 곡선이다.
TA 기능은 전체 시스템으로부터 단일 고장 점을 제거하기 위해, 비밀 공유 기법을 사용하여 분배될 수 있다는 것을 주의하자. 가장 간단한 가능한 경우에서, 그 각각이 마스터 키의 그 자신의 몫을 독립적으로 유지하는 두 개의 분배 신뢰 기관들(DTA)이 있을 수 있다. 따라서
Figure pct00273
, 및 각각의 DTA는 부분-클라이언트 비밀(
Figure pct00274
Figure pct00275
)을 발행하며, 이것은 클라이언트가 그것들의 전체 비밀을 형성하기 위해 함께 더한다. 이제 하나의 DTA가 손상될지라도, 클라이언트 비밀은 여전히 안전하다.
중요한 아이디어는 PIN 번호
Figure pct00276
가 토큰 [B16]을 생성하기 위해, 클라이언트에 의해 그것들의 비밀로부터 추출될 것이라는 것이다. 우리의 인증의 2-인자들은 그 후 이러한 기억된 PIN 및 나머지 토큰이다. 분명하게, 그 아이덴티티가 포인트
Figure pct00277
에 대해 해싱하는 개개의 Alice에 대해, TA에 의해 발행된 것과 같은 그녀의 전체 비밀은 포인트(
Figure pct00278
)이다. 이것은 토큰(
Figure pct00279
), 및 선택된 PIN 번호
Figure pct00280
로 분리된다. 토큰은
Figure pct00281
를 산출하며 그것을
Figure pct00282
로부터 감산함으로써 생성된다. 전체 비밀은
Figure pct00283
으로서 Alice에 의해 그것의 두 개의 구성요소들로부터 재구성될 수 있다. 결과적으로 토큰(
Figure pct00284
)은 몇몇 예들에서 타원 곡선 상에서의 포인트일 수 있으며 상기 포인트의 좌표들을 표현한 데이터의 임의의 스트링일 수 있다. 도 1에 대하여 설명된 바와 같이, 토큰(10)은 클라이언트에 저장된다. PIN(11)은 사용자에 의해 기억되며 사용자(6)가 클라이언트(2)로 하여금 인증 서버(3)와 세션을 수립하기를 원할 때 입력된다. PIN은 인간에 의해 선택될 수 있거나 또는 컴퓨터에 의해 자동으로 생성될 수 있다. 그러나, PIN은 임의의 다른 당사자의 관여 없이, 언제라도, 클라이언트에 의해 변경될 수 있다.
M-핀
이러한 제안된 프로토콜은 Fiat 및 Shamir [B10]의 중대한 작업에서 비롯된, 아이덴티티-기반 식별(IBI) 프로토콜들의 긴 이력으로부터 도출한다. 기본 아이디어는 검증기에 상기 비밀의 어떤 것도 노출시키지 않으면서, 증명기가, 신뢰 기관에 의해 발행된 아이덴티티-관련 비밀을 사용하여 스스로를 식별하는 것이다. 이것은 종종 비밀 자체의 어떤 것도 드러내지 않고 비밀의 소유의 증명이 수립되기 때문에, 제로-지식 증명으로 불리운다. 식별 프로토콜이 증명기(이 경우에 클라이언트)를 수용하거나 또는 거절하는 검증기(이 경우에 서버)만을 야기한다는 것을 강조하는 것이 중요하다.
페어링-기반 IBI 프로토콜들은, 그에 의해 많은 표준 식별(SI) 방법들이 IBI 기법들로서, 또는 실제로 전체 아이덴티티 기반 서명(IBS) 기법들로서 "표면화"될 수 있는 보다 큰 프레임 워크의 일부로서, Bellare 외 [B5]에 의해 상세히 연구되었다. 그것들의 기본 SI 설명에 이르기까지 몇몇 제안된(그러나 증명되지 않은) IBS 기법들을 "밀고 나감"으로써, 그것들은 그것들을 재표면화할 수 있지만, 이번은 전체 비밀 증명들을 가진다. 그것들은 몇몇 페어링-기반 기법들을 고려하였으며, 그 중 최고는 먼저 [B8] 및 [B24]에 의해 독립적으로 제안된 IBS 기법으로서 나타내어지는 것처럼 보인다. 독립적으로([B5]의), Kurosawa 및 Heng [B13]은 거의 동일한 아이디어를 찾아내었다. 이러한 연구의 모두는 Boneh, Lynn 및 Shacham [B7]의 원래(비-아이덴티티 기반) 쇼트 서명에 대한 빚 덕분이다.
IBI 방법은 여기에서 우리가 시작 포인트로서 이용할 것이다. 표준 IBI 프로토콜들에서, 검증기는 어떤 비밀들도 없음을 주의하자. 증명기는 간단히 관심 있는 누군가에게, 그것들이 그것들의 주장된 아이덴티티에 대한 자격이 있음을 증명하려고 노력한다. 그러나, 이하에 설명된 몇몇 예들에서, 비밀(
Figure pct00285
)을 소유한 단지 고유한 검증기만이 검증을 실행할 수 있다. 이렇게 함으로써, 변질된 검증기는 연관된 토큰을 훔친 누군가에 의해 PIN 추측을 테스트하는 Oracle로서 사용될 수 없다. 그러므로 우리는 SSL 또는 그것의 등가물을 실행하는 서버가 또한
Figure pct00286
를 보호할 책임을 진다고 가정한다. 서버는 데이터 저장 장치(33)에서의 보안 저장 장치에
Figure pct00287
를 저장할 수 있다. 우리가 만든 또 다른 변화는 상기 설명된 바와 같이 클라이언트 비밀을 토큰 및 PIN으로서 분리하는 것이다.
M-핀 프로토콜이 표 6에 도시된다. 클라이언트 측 상에서, 계산의 모두가 보다 간단한 그룹(
Figure pct00288
)에 있다는 것을 관찰하자. 서버 측 상에서, 두 개의 페어링들의 적은 표준 다중-페어링 방법들 [B17]을 사용하여 산출될 수 있으며, 두 개의 별개의 페어링 계산들보다 훨씬 덜 비용이 들 것이다. 프로토콜의 정확도는 쌍선형성 속성을 사용하여 빠르게 수립될 수 있다.
M-핀
Alice - 아이덴티티
Figure pct00289

랜덤 x < q를 생성한다
Figure pct00290
서버
랜덤 y < q를 생성한다
Figure pct00291

Figure pct00292
이면, 연결을 거절한다
쌍선형성을 사용하여, 다음이 도시될 수 있다.
Figure pct00293
결과적으로, 정확한 PIN이 클라이언트에서 수신된다면, 그것이 전체 클라이언트 비밀을 재구성하도록 허용하기 위해, g는 1과 같을 것이다.
표 6의 프로토콜이 이제 도 6 및 도 7에 대하여 보다 상세히 설명될 것이다. 도 6에 대하여, 단계 6.1에서, 클라이언트(2)는 사용자로부터 PIN 추측(11')을 수신한다. 표 6에 도시된 바와 같이, 단계 6.2에서, 클라이언트는 그 후
Figure pct00294
에서의 타원 곡선 상에서 포인트(A)에 대한 그것의 아이덴티티를 해싱한다. 아이덴티티는 저장 장치(23)로부터 검색될 수 있다. 단계 6.3에서, 클라이언트는 또한 랜덤 x를 발생시키며 타원 곡선 상에서, 또 다른 포인트(U)에 대한 포인트(
Figure pct00295
)의 곱셈을 실행한다. 타원 곡선 상에서의 곱셈들 및 덧셈들은 숙련자에게 알려져있으며 여기에서 상세히 설명되지 않을 것이다. x 의 값은 그룹들(
Figure pct00296
)의 소수 위수(q)보다 낮다. 단계 6.4에서, 클라이언트는 그것이 곡선 상에서 포인트(U)의 좌표들 및 그것의 아이덴티티를 인증하며 전송하기를 원하는 서버(3)에 위임을 발행한다. 클라이언트는 그 후 단계 6.5에서 서버로부터 챌린지(y)를 수신하며, 여기에서 y는 또한 q보다 낮은 랜덤 수이다. 단계 6.6에서, 클라이언트는 그 후 PIN 및 토큰으로부터 클라이언트 비밀을 복구하며 타원 곡선 상에서, 또 다른 포인트(V)의 좌표들을 획득하기 위해, -x 및 -y의 합과, 클라이언트 비밀에 대응하는 포인트를 곱한다. 클라이언트는 그 후 서버가 클라이언트를 인증하도록 허용하기 위해 서버에 이들 좌표들을 전송한다. 단계 6.7에서, 클라이언트는 서버로부터 인증 프로세스의 결과의 통지를 수신할 수 있다. 이것은 이하에서 보다 상세히 설명될 것이다.
도 6의 단계들은 도 2에 대하여 설명된, 인증 프로그램(25)의 지시들을 실행하는 클라이언트(2)의 프로세서(21)에 의해 실행될 수 있다.
도 7에 대하여, 서버(3)는 타원 곡선 상에서 포인트(U)의 좌표들 및 클라이언트의 주장된 아이덴티티를 포함하여, 단계 7.1에서 인증하기 위해 위임을 수신한다. 서버는 또한 클라이언트가 연결을 수립하기를 원한다는 것을 표시하는, 또 다른 메시지를 단계 7.1 이전에 클라이언트로부터 수신하였다. 서버는 U의 좌표들 및 아이덴티티를 송신하도록 클라이언트에 요청하였다. 단계 7.2에서, 서버는 그 후 또한 q보다 작은, 랜덤 y를 발생시키며, y의 값을 챌린지로서 클라이언트에 송신한다. 단계 7.3에서, 서버는 타원 곡선 상에서 포인트(A)에 대한 클라이언트 아이덴티티를 해싱한다. 단계 7.4에서, 서버는 타원 곡선 상에서 포인트(V)의 좌표들을 수신한다.
서버는 그 후 단계 7.5에서 페어링들의 적을 산출한다. 서버는 두 개의 페어링들을 먼저 산출하며 그 후 두 개의 페어링들을 함께 곱할 수 있다. 대안적으로, 서버는 페어링들의 적이 훨씬 더 빨리 산출되도록 허용하는 다중-페어링을 산출할 수 있다. 제1 페어링은 입력으로서 포인트(V) 및 포인트(
Figure pct00297
)를 취하며 그것들을
Figure pct00298
에서 요소에 매핑시킨다. 도 6의 설명에 표시된 바와 같이, V는 클라이언트 비밀에 대응하는 포인트로부터 시작함으로써 획득된
Figure pct00299
에서의 곡선 상에서의 포인트이다. 이미 상기 언급된 바와 같이,
Figure pct00300
Figure pct00301
의 고정 발생기이다. 다른 페어링은 클라이언트의 아이덴티티에 대응하는 포인트, 및 서버 비밀(sQ)에 대응하는 포인트로부터 시작함으로써 획득된,
Figure pct00302
에서의 또 다른 포인트의 좌표들을 입력으로서 취하며, 그것들을
Figure pct00303
에서 요소에 매핑시킨다. 포인트(
Figure pct00304
)는 물론
Figure pct00305
에서 또 다른 포인트이다.
Figure pct00306
에서의 포인트는 타원 곡선 상에서, 그 좌표들이 단계 7.1의 위임에서 클라이언트로부터 수신한 포인트(U)를
Figure pct00307
에서, 랜덤 값(y)와 클라이언트 아이덴티티에 대응하는 포인트를 곱함으로써 획득된 포인트를 물론 또한
Figure pct00308
에서 더함으로써 획득된다. 페어링들의 적의 결과들은 값(g)을 제공한다. 쌍선형성 때문에, g의 값은 정확한 PIN이 입력되며 그러므로 정확한 클라이언트 비밀이 복구되었다면 1과 같아야 한다. 단계 7.6에서, 서버는 g의 값이 1과 같은지를 확인하며 그것이 1과 같지 않다면 서버는 단계 7.7에서 클라이언트를 인증하며 단계 7.8에서 연결을 수용한다. 연결을 수용하는 것은 클라이언트가 인증되었음을 클라이언트에 알리기 위해 메시지를 클라이언트에 송신하는 것을 수반할 수 있다.
반대로, g의 값이 1과 같지 않다면, 서버는 클라이언트가 인증되지 않았음을 단계 7.9에서 결정한다. 서버는 그 후 진행을 위해 다수의 옵션들을 가진다. 단계 7.10에서, 도 8에 대하여 이하에서 설명될 바와 같이, 그것은 연결을 즉시 거절할 수 있거나 또는 그것은 PIN이 부정확해야 하는 정도를 결정하기 위해 에러 핸들링 프로세스를 실행할 수 있다.
도 7의 단계들은 도 3에 대하여 설명된, 서버 인증 프로그램(34)의 지시들을 실행하는 서버(3)의 프로세서(31)에 의해 실행될 수 있다.
도 6 및 도 7에서 단계들 중 일부의 순서는 변경될 수 있다는 것이 인식될 것이다. 예를 들면, PIN은 그것이 단계 6.6에서 사용될 때까지 수신되지 않을 수 있다. 게다가, 서버는 그것이 위임을 수신하기 전에 y를 생성할 수 있으며 및/또는 그것은 포인트(V)의 좌표들을 수신한 후 클라이언트 아이덴티티를 해싱할 수 있다.
서버는 페어링들을 실행하기 위해, 숙련자가 이해할 바와 같이, 임의의 적절한 페어링을 사용할 수 있다. 예를 들면, 클라이언트는 효율적 R-ate 페어링을 사용할 수 있다. 게다가, 타원 곡선들이 사용된다는 것이 설명되었지만, 임의의 적절한 대수 곡선들이 사용될 수 있다. 예를 들면, 초-타원 곡선들은 타원 곡선들 대신에 사용될 수 있다.
프로토콜 출력들
상기 언급된 바와 같이, 프로토콜 실행의 끝에서, 클라이언트는 그것들이 성공하였는지 여부를 여전히 알지 못한다. 이것은 성공하지 못한 연결들을 핸들링하기 위한 동작이 이제 적절히 취해질 수 있으므로 중요하다. 이러한 책임은 이용 가능한 프로토콜 출력들에 의해 통지되는, 또 다른 비-암호 프로세스에 대해 행해질 수 있다. 어떤 출력들이 완료 후 M-핀과 같은 프로토콜을 리턴해야 하는가? 사용자명/패스워드에 대해, 응답은 통상적으로 부울 - 참 또는 거짓이다. 결과는 기본적으로 그것을 액세스하거나 또는 거절하며, 또한 온-라인 패스워드 추측 공격들을 차단하기 위해 가동 중인 몇몇 간단한 메커니즘을 허용하는 것이다.
성공적인 결과의 경우에, 더 이상 수행할 것이 많지 않다. 클라이언트는 신뢰 기관에 정확하게 등록해야 하며, 그러므로 유효 토큰이 발행되며 그것들의 주장된 아이덴티티와 연관된, 유효 PIN을 입력하였다. 응답은 간단히 연결이 수립된다는 것일 수 있다. 프로토콜 실패의 경우에, 적절한 응답을 만들어내기 위해 서버가 함께 동작할 것이 비교적 적은 것처럼 보일 수 있다. 그러나, 몇몇 예들에서, 서버는 토큰을 캡처한 공격자가 그것들이 올바른 것을 떠올릴 때까지 모든 가능한 PIN들을 시도하는 것을 방지하기 위해 삼진아웃 전략을 구현할 수 있다. 서버가 반드시 등록된 사용자들의 리스트를 갖는 것은 아님을 주의하자 - 이러한 리스트가 신뢰 기관에 의해 유지되며 관리되어야 하는 것이 당연할 것이다.
그것은 (a) 그것들이 실패한 클라이언트가 유효 토큰을 가졌는지를 안다면, 및 (b) 그것들이 입력된 PIN에서 에러의 정보를 안다면 적절한 응답을 결정하도록 서버(3)를 도울 수 있다. 몇몇 구현들에서, PIN 에러의 정보를 실패한 프로토콜 런으로부터 도출하기 위한 방법이 있다. PIN 에러의 정도가 유효 PIN들의 범위 밖에 있다면, 이것은 "클라이언트"가 유효 토큰을 갖지 않음을 의미한다.
M-핀 프로토콜에서, 클라이언트 및 서버 양쪽 모두는 그것들의 계산들에 수반된 마스터 비밀(s)의 동일한 값을 갖는다는 것을 관찰하자. 클라이언트가 부정확한 PIN을 입력한다면, 그것은 그들이 그들의 산출에서 대신
Figure pct00309
를 사용한 것과 같으며, 여기에서
Figure pct00310
는 그것들의 에러의 정도이다. 서버는 그 후 프로토콜 결과가 정확할 때까지, 그것의 측 상에서
Figure pct00311
에 대한 가능성들 모두를 통해 반복함으로써
Figure pct00312
를 탐색할 수 있다. 페어링의 쌍선형성을 이용함으로써, 이것은 각각의 후보
Figure pct00313
에 대해
Figure pct00314
에서 단지 하나의 곱셈을 요구하는 방식으로 행해질 수 있다. 몇몇 예들에서, 우리는 훨씬 더 잘 할 수 있다. 프로토콜의 최종 단계가
Figure pct00315
의 값을 야기한다면, 사실상
Figure pct00316
이다.
Figure pct00317
를 찾는 것은 이산 대수 문제의 해법 및 페어링의 산출을 요구한다.
이를 달성하기 위한 하나의 적절한 알고리즘은 Pollard의 Kangaroos [B15]의 방법이다. 이것은 "제곱 근" 알고리즘이며, 이것은 4-자리 PIN에 대해,
Figure pct00318
에서 단지 수 백개의 곱셈들만이 완전히 실현 가능한,
Figure pct00319
를 찾기 위해 요구될 것임을 의미한다.
PIN 에러의 정도가 서버에 의해 결정될 수 있는 경우에(및 이것은 잠재적으로 임의의 2-인자 인증 기법에, 그러나 특히 여기에 제안된 프로토콜들에 적용한다), 전통적 및 간소화된 "삼진아웃" 메커니즘보다 더 지능적인 응답이 가능하다. 서버는 토큰을 캡처하며 모든 가능한 조합들을 시도함으로써 PIN을 찾으려고 시도하는 불량 엔티티, 및 그들의 PIN을 잘못 입력하였거나 또는 우연히 잘못된 PIN에서 타이핑한 양호한 엔티티 사이에서 지능적으로 구별하려고 시도할 수 있다. PIN 에러의 지식을 이용하기 위한 하나의 간단한 방식은 1회 이상 동일한 잘못된 PIN을 입력한 사용자를 다시 처벌하지 않는 것이다. 그것은 동일한 PIN을 두 번 추측하기 위해 불량 엔티티에 대한 값이 없으며, 따라서 어떤 것도 이를 행함으로써 손실되지 않는다는 것을 주의하자.
잘못 입력된 PIN의 경우에, 에러는 통상적으로 단지 하나의 숫자에 있을 것이다. 다시 이것은 서버에 의해 PIN 에러로부터 검출될 수 있다. 그러므로 우리는 보다 정교한 유형의 스코어링 메커니즘의 예를 제안한다. 예를 들면, 사용자는 단지 그들이 10 초과의 에러 스코어에 도달한다면 록 아웃될 수 있다. 완전히 잘못된 PIN 스코어들 4, 다시 입력된 동일하게 잘못된 PIN 스코어들 0, 단지 1 자리가 벗어난 PIN 스코어들 2, 및 단지 2 자리들이 벗어난 PIN 스코어들 3. 이러한 방식으로 진짜 양호한 엔티티는 10의 스코어에 도달하려고 노력할 것인 반면, 불량 엔티티는 통상적으로 단지 3번의 시도들 후 달성할 것이다. 물론, 10의 최대 에러 스코어는 단지 예이며 또 다른 최대 에러 스코어가 선택될 수 있다.
다른 사이드-정보는 특정한 아이덴티티를 록 아웃할지 여부에 대한 지능적 결정에 섞일 수 있는 서버에 대해 이용 가능할 것이다. 서버는 또한 클라이언트의 IP 어드레스, 및 시도된 로그-인의 시간을 알 것이다. 아이덴티티 및 PIN 에러와 조합하면, 이것은 각각의 실패한 연결에 대한 사람, 대상, 장소 및 시기에 해당한다.
제2 인자에서 에러들을 핸들링하는 하나의 대표적인 프로세스가 이제 도 8에 대하여 설명될 것이다. 도 8에 대하여 설명된 프로세스에서, PIN은 4 자리 숫자일 수 있다. 그러나, 에러 핸들링 프로세스는 임의의 형태를 취하는 PIN들에 적용 가능할 수 있다는 것이 인식될 것이다. 에러 핸들링 프로세스가 PIN들에 대하여 설명될 것이지만, 에러 핸들링 프로세스는 클라이언트 비밀의 인자로서 사용되는 데이터의 임의의 스트링에서의 차이들 또는 에러들을 찾기 위해 사용될 수 있다. 그것은 숫자들의 스트링 또는 번호로 축소 가능한 임의의 유형의 정보에 대응하는, 비밀의 인자와 함께 사용될 수 있다. 단계 8.1에서, 서버(3)는 클라이언트(2)에 입력된 PIN이 잘못되었음을 결정한다. 이것이 PIN이 현재 세션 동안 입력된 첫 번째이면, 서버는 에러 카운트(n)의 값을 0으로 설정한다. 단계 8.2에서, 서버는 상기 설명된 바와 같이 PIN 에러의 정도를 결정한다. 서버는 프로토콜의 끝에서 획득된 g의 값으로부터, 그리고
Figure pct00320
을 사용함으로써,
Figure pct00321
을 찾는다. 서버는 그 후 PIN이 단계 8.3에서 1자리가 벗어났는지를 확인하며 그렇다면 단계 8.4에서 에러 카운트(n)에 에러 카운트("a")를 더한다. 서버는 그 후 단계 8.10로 진행한다. 에러 카운트("a")의 값은 예를 들면 2일 수 있다. 그러나, 다른 구현들에서, 에러 카운트("a")는 2보다 낮거나 또는 높을 수 있다. PIN이 단계 8.3에서 1자리만큼 벗어나지 않은 것으로 발견된다면, 프로세스는 대신에 단계 8.5를 계속하며 핀이 2자리들만큼 벗어났는지를 확인한다. PIN이 2자리들만큼 벗어났다면, 적절한 에러 카운트("b")가 단계 8.6에서 에러 카운트(n)에 더해진다. 서버는 그 후 단계 8.10으로 진행한다. 2만큼 벗어난 PIN에 대한 에러 카운트("b")는 예를 들면 3일 수 있다. 그러나, 다른 구현들에서, 에러 카운트("b")는 3보다 낮거나 또는 높을 수 있다. PIN이 1 또는 2 자리들만큼 벗어나지 않았다면, 프로세스는 PIN이 단계 8.7 전에 입력되었는지를 검사한다. PIN이 전에 입력되었다면, 서버(3)는 상기 언급된 바와 같이, 1회 이상 동일한 잘못된 PIN을 입력하기 위한 불량 엔티티에 대한 어떤 값도 없기 때문에 에러 카운트를 증가시키지 않을 수 있다. 단계 8.8은 잘못된 PIN이 현재 세션에서 이전에 입력되었다고 결정되었을 때 에러 카운트는 값("c")만큼 증가된다는 것을 보여준다. 설명된 바와 같이, "c"의 값은 0과 같을 수 있다. 그러나, 다른 구현들에서, 적절하다면, "c"의 값은 0보다 클 수 있다. PIN이 1 또는 2 자리들만큼 벗어나지 않았으며 그것이 전에 입력되지 않았다면, 서버(3)는 그것이 처음으로 입력된 완전히 잘못된 PIN임을 결정하며 단계 8.9에서 에러 카운터에 적절한 에러 카운트("d")를 더한다. 에러 카운트("d")의 값은 4이지만 그것은 다른 구현들에서 더 낮거나 또는 더 높을 수 있다.
서버는 그 후 단계 8.10에서 에러 카운트의 값이 최대 에러 카운트(Nmax)보다 낮은지를 확인하기 위해 진행한다. 상기 설명된 바와 같이, 이러한 최대 에러 카운트는 10일 수 있지만 그것은 또한 더 낮거나 또는 더 높을 수 있다. 그것은 2 또는 3과 같은 매우 낮은 값에서, 10보다 훨씬 더 높은 값까지의 어떤 것일 수 있다. 물론 최대 에러 카운트는 또한 "a", "b", "c", 및 "d"의 값들에 의존하며 "a", "b", "c", 및 "d"의 값들을 고려함으로써 선택된 임의의 적절한 값일 수 있다. 에러 카운터의 값이 최대 에러 카운트 값보다 작다면, 서버는 단계 8.12에서 다시 인증하려고 시도하도록 클라이언트에 요청할 수 있다. 클라이언트는 그 후 새로운 PIN을 시도하도록 사용자(6)에게 요청할 수 있다. 그러나, 그것이 새로운 PIN을 시도하도록클라이언트에 요청하기 전에, 그것은 이에 제한되지 않지만, 클라이언트의 위치, 시간, 클라이언트의 아이덴티티 또는 클라이언트의 IP 어드레스와 같은, 단계 8.11에서 고려되어야 하는 임의의 다른 정보가 있는지를 검사할 수 있다. 서버는 이러한 부가적인 정보에 기초하여 진행할 방법을 결정하기 위해 다양한 규칙들을 저장할 수 있다. 서버가 새로운 PIN을 시도하도록 클라이언트(2)에 요청하는 것으로 여전히 결정한다면, 그것은 그렇게 하기 위해 메시지를 클라이언트에 전송할 것이다. 클라이언트가 사용자(6)로부터 새로운 잘못된 PIN을 수신한다면, 프로세스는 단계 8.1로부터 재시작할 것이다. PIN이 다시 잘못된다면, 에러 카운터(n)의 값은 단계 8.3 내지 단계 8.9에 대하여 설명된 바와 같이 증가된다.
단계 8.10에서 에러 카운터(n)의 값이 최대 에러 카운트 이상이면, 다시 서버는 연결을 거절하기 위해 디폴트 결정을 변경할 수 있는 임의의 부가적인 정보가 있는지를 고려할 수 있다. 이전과 같이, 부가적인 정보는 클라이언트의 위치, 시간, 클라이언트 아이덴티티 및 IP 어드레스를 포함할 수 있다. 서버는 단계 8.13에서 이 정보를 고려할 것이며 새로운 PIN을 시도하도록 클라이언트에요청하기 위해 결정이 이루어진다면, 프로세스는 단계 8.12로 진행한다. 대신에 연결을 거절하기 위한 결정이 이루어진다면, 서버는 단계 8.14에서 연결을 거절할 것이다. 서버는 또한 단계 8.11에서 고려된 부가적인 정보가 에러 카운트가 최대 에러 카운트보다 낮을지라도 연결이 거절되어야 함을 표시한다면 단계 8.14에서 연결을 거절하도록 진행할 것이다. 그것은 또한 계정이 차단되었으며 그것의 계정을 리셋하거나 또는 새로운 계정을 열기 위해 TA(4)를 접촉하도록 요구할 것임을 클라이언트(2)에 통지할 수 있다. 이것은 클라이언트에게 새로운 클라이언트 비밀(7)이 발행되는 것을 수반할 수 있다.
도 8에 대하여 설명된 프로세스는 에러 정정을 위한 단지 하나의 프로세스이며 다양한 수정들 및 변화들이 고려된다는 것이 인식될 것이다. 예를 들면, 부가적인 정보의 고려는 에러 카운트의 값이 조정되며 확인되기 전에 또는 후에 일어날 수 있다. 게다가, 대안적인 구현들에서, 서버는 임의의 부가적인 정보를 고려하지 않을 수 있다. 게다가 1 또는 2 자리들의 특정 PIN 에러들이 도 8에서 고려될지라도, 에러 카운터는 또한 다른 PIN 에러들을 위해 조정될 수 있다. 예를 들면, 프로세스는 PIN이 3 또는 4 자리들이 벗어나거나 또는 또 다른 특정 PIN 에러가 결정된다면 특정 값에 따라 에러 카운터를 증가시키는 것을 수반할 수 있다. 에러 카운트 값은 또한 핀의 어떤 자리가 부정확한지 및 상기 자리에서의 에러의 정도에 의존하여 달라질 수 있다. 게다가, 서버는 에러 카운터 파라미터를 사용하지 않을 수 있다. 대신에, 그것은 각각의 인증 시도의 에러 값을 저장할 수 있다. 서버는 그것이 다시 인증하도록클라이언트에 요청할지를 결정하도록 요구하거나 또는 그것이 별개의 에러 값들에 기초하여 결정을 할 수 있을 때마다 에러 값들을 늘릴 수 있다.
에러 핸들링 프로세스가 표 6의 특정 프로토콜에 대하여 설명되었지만, 에러 핸들링 프로세스는 클라이언트 비밀의 인자에서의 에러가 결정되도록 허용할 임의의 프로토콜과 함께 사용될 수 있다. 그것은 인자들 중 하나에서의 에러의 정도가 인증 엔티티에 의해 결정될 수 있는 임의의 다-인자 프로토콜에 적용할 수 있다.
게다가, 에러 핸들링이 4 자리 PIN에 대하여 설명되었지만, 에러 핸들링은 4 자리들보다 짧은 길이의 PIN 또는 5 또는 6 자리들 또는 훨씬 더 긴 길이의 PIN에 적용될 수 있다. 에러 핸들링 프로세스는 다-인자 비밀의 인자들 중 하나를 형성하는 임의의 수의 자리들의 PIN에 적용될 수 있다. 그러나, 핀이 길수록, 에러를 산출하기 위해 걸리는 시간은 더 길어진다는 것이 인식될 것이다.
우리는 이제 제안된 기법의 보안을 고려할 것이다. 우리가 사용하고 있는 기본 IBI 기법은 기법을 깨는 것이 하나 이상의 계산 디피-헬만 문제만큼 어려운 것으로 도시된다는 점에서, [B5]에 의해 안전하다고 증명되었다. 그것들은 유형-1 페어링의 콘텍스트에서 프로토콜을 고려하였다(
Figure pct00322
=
Figure pct00323
). 이것은 또한
Figure pct00324
Figure pct00325
사이에 계산 가능한 이질 동상이 존재하고 있는 유형-3 페어링으로서 고려될 수 있다. 유형-1에서 유형-3 페어링으로 보안 증명을 전달하는 문제점은 Smart 및 Vercauteren [B20]에 의해 고려되었다. 그것들의 가장 간단한 해법은 공격자에게 이용 가능해지며 이질 동상을 구현한 Oracle의 콘텍스트에서 보안 증명을 "상대화"하는 것이었다. 이러한 이질 동상이 알려지지 않았다는 사실은 명확히 증명을 약화시키지 않는다.
우리의 다음 관심사는 토큰을 캡처한 공격자가 서버의 적극적 참여 없이 연관된 PIN 번호를 결정할 수 없어야 한다는 것이다. 특히 강력한 공격자는 스스로 서버의 클라이언트이거나, 또는 그것들의 전체 클라이언트 비밀들을 기꺼이 제공하는 내부자들의 연합을 모집할 수 있는 것일 것이다.
그러므로
Figure pct00326
,
Figure pct00327
,,
Figure pct00328
...를 소유한 공격자 및 희생 토큰((
Figure pct00329
)을 고려하자. 희생 토큰에 계속해서 Z 를 부가하며 그것이 또한 sZ와 같아질 때의 경우를 구별하는 것이 가능해질 것인가? 이것은 Bao, Deng 및 Zhu [B3]에 의해 고려되는 바와 같이, 정확하게는 일반화된 결정적 디피-헬만 문제이다. 그것들은 이것이 그룹
Figure pct00330
에서 표준 DDH(결정적 디피-헬만) 가정으로 감소됨을 증명하였다.
상기 DDH 문제는 먼저 비공식적으로 [B16]에 내포되며 [B2]에서 명시적이게 된, XDH 가정으로서 알려진 유형-3 페어링 상에서의
Figure pct00331
에서 어렵다.
최종적으로 희생자 토큰으로의 액세스를 가지며 프로토콜의 런을 도청하도록 관리하거나 또는 아마도 그것을 갖고 직접 프로토콜 런에 참여하기 위해 클라이언트를 얻기 위한 "피싱(phishing)" 공격을 통해 성공한 공격자를 고려하자. 이러한 공격자는 값들(
Figure pct00332
,
Figure pct00333
, 및
Figure pct00334
), 프로토콜 런으로부터 획득된 제1 및 마지막 값들을 포집할 수 있다. 그러나, PIN을 찾기 위해, 이러한 관계 없이 3개의 값들로부터
Figure pct00335
,
Figure pct00336
Figure pct00337
를 구별할 수 있도록 공격자에게 요구하며, 이것은 다시 XDH 가정에 의해 커버된다.
전체 클라이언트 비밀은 그것이 IBI 프로토콜에서 사용되기 전에 토큰 및 PIN 으로부터 재구성된다는 것을 주의하자. 또한 서버는 PIN을 결정할 때 사용할 수 있는 어떤 것을 클라이언트에 송신하지 않는다 - 사실상 그것은 단지 랜덤 챌린지(
Figure pct00338
)만을 송신한다.
이제 서버로의 해커에 의한 성공적인 침입을 고려하자. 이것의 관련들을 고려하기 전에, 서버 비밀(클라이언트들의 수에 관계없이 지원되는)이 단지 단일 포인트
Figure pct00339
임을 언급하는 것은 가치가 있다. 그러므로 하드웨어 보안 모듈(HSM)의 내부에서 이러한 비밀을 보호하는 것은 용이할 것이다. 그러나, 이러한 비밀이 캡처된다고 가정하면, 이것은 해커가 클라이언트들이 공격될 수 있는 거짓 서버를 설정하도록 허용할 것이다. 그것은 또한 해커로 하여금 캡처된 토큰과 연관된 PIN을 찾도록 허용할 것이다. 사실상 이것은 알려진 서버 비밀들로서, 임의의 2-인자 인증 기법에도 마찬가지이어야 하고, 거짓 서버가 생성될 수 있으며 PIN 추측들은 그것에 대해 테스트될 수 있다. 그러나, 성공적인 해커는 전체 클라이언트 비밀들을 재구성할 수 없으며, 따라서 스스로 진짜 서버로 및 클라이언트 계정들로 로그 온할 수 없다. 따라서 피해에 대한 가능성은 크게 감소된다.
몇몇 구현들에서, 보안은 도 5에 대하여 이미 설명된 바와 같이 분배 서버 배열을 사용함으로써 추가로 증가될 수 있다. 도 5의 시스템에서, 서버 비밀은 2 부분들,
Figure pct00340
Figure pct00341
에서 TA에 의해 발행되며, 이것은 전체 서버 비밀(sQ)을 생성하기 위해 더해지며, 여기에서
Figure pct00342
이다. 프로토콜은 두 개의 비밀들(
Figure pct00343
Figure pct00344
)을 분리하여 유지하는 동안 완성된다. 서버 측 상에서, 서버 비밀을 수반한 산출의 부분은 몇몇 랜덤 X에 대한 페어링
Figure pct00345
이다. 그러나, 쌍선형성의 마법에 의해,
Figure pct00346
이다.
그러므로 예를 들면 서버는 두 개의 HSM들(각각 상이한 제조사로부터)을 가질 수 있다. 하나는
Figure pct00347
을 저장하며 다른 것은
Figure pct00348
을 저장할 것이다. 하나는
Figure pct00349
을 산출하며 다른 것은
Figure pct00350
을 산출할 것이다. 서버 프로세스는 그 후 간단히 이들 값들을 곱하며 정상적으로 프로토콜을 계속할 것이다. 그러나, 예를 들면
Figure pct00351
을 아는 것, 및 X를 아는 것은
Figure pct00352
에 대한 어떤 것을 드러내지 않는다. 그것은 어려운 것으로 믿어지는 역 페어링 문제이다. 따라서 어떤 단일 엔티티도 서버 비밀(sQ)을 알지 못하며 가능한 단일 고장점이 제거된다.
도 5에 도시된 바와 같이, 이것은 두 개의 상이한 서버들(3a, 3b) 및 두 개의 서버들로부터 페어링들의 결과들을 수신하며 정상으로서 프로토콜을 계속하기 위해 그것들을 곱하는 프록시(3c)로서 구현될 수 있다. 대안적으로, 서버들 중 하나는 메인 서버일 수 있으며 그것은 다른 서버로부터 상기 다른 서버에서 페어링의 결과를 수신할 수 있다. 또 다른 대안으로서, 상기 언급된 바와 같이, 두 개의 서버들은 동일한 서버의 두 개의 보안 모듈들일 수 있다.
도 5 및 도 7에 대하여, 서버 비밀이 두 개의 서버 비밀들로서 저장된다면, 단계 7.5는 입력으로서 그것의 각각의 서버 비밀 및 포인트(
Figure pct00353
)를 취하는 페어링을 실행하며, 그 후 두 개의 페어링들의 적을 실행하는 각각의 HSM(3a, 3b)을 포함하도록 수정될 것이다. 다시 말해서, 서버들(3a) 중 하나는
Figure pct00354
을 산출하며 다른 서버(3b)는
Figure pct00355
을 산출할 것이다. 두 개의 페어링들은 적을 실행하기 위해 프록시에 대한 프록시(3c)에 전송될 수 있거나 또는 전체 서버의 부분을 저장하는 HSM들 중 하나는 두 개의 페어링들의 곱셈을 실행할 수 있다.
도 2에 대하여 언급된 바와 같이, 광범위한 배치에 대해, 이러한 프로토콜의 클라이언트 측은 브라우저의 내부에서, 이상적으로 저 출력 이동 디바이스 상에 구현된 브라우저의 내부에서도 자바스크립트 언어로 구현되도록 요구될 수 있다는 것이 이해된다. 표면적으로는, 이것은 쉽지 않을 것 같은 전망이다. 그러나, 자바스크립트 엔진들은 이동 디바이스들의 프로세싱 전력을 갖는 것으로서, 지난 몇 년들에 걸쳐 급진적으로 개선하고 있다.
M-핀 프로토콜의 클라이언트 측을 검사하면, 우리는 그것이
Figure pct00356
에서 2 포인트 곱셈들을 요구한다는 것을 안다.
Figure pct00357
에서 이들 포인트 곱셈들은 Gallant, Lambert 및 Vanstone [C1]에 의해 설명된 바와 같이, BN 곡선들 상에 존재하는 효율적인 혼성 작용(endomorphism)으로부터 이득을 얻을 수 있다. 이것은 그것들을 대략 2배 빠르게 만든다. 대안적으로, 다른 유형들의 곡선들 및 곱셈들을 산출하는 방법들이 대신 사용될 수 있다.
랩탑들 및 데스크탑들에 대해, 클라이언트-측 타이밍들은 감지할 수 없다. 이동 디바이스들에 대한 몇몇 타이밍들이 표 7에 도시된다. 서버 측 상에서, 현대의 인텔 프로세서들 상에서, 프로세싱 시간은 연결당 약 수 밀리초들이다.
M-핀 클라이언트 측 타이밍들
제조사
모델
OS
브라우저
M-핀 타이밍들 (초)
애플 아이폰 4 iOS 6 사파리 2.5
애플 아이폰 5 iOS 6 사파리
1
애플 아이패드 2 iOS 6
사파리 1
삼성 갤럭시 S3 안드로이드 크롬 1
모토로라 MB256
안드로이드
파이어폭스
3
도 6 및 도 7에 대하여 설명된 기법은 서버 측 상에서 SSL의 보호 하에 실행될 수 있다. 그러나, 다른 예들에서, SSL은 사용되지 않을 수 있다. M-핀은 자체가 페어링-기반 및 아이덴티티-기반 프로토콜이므로, PKI 기반 SSL에 대한 페어링-기반 아이덴티티-기반 암호화(IBE) 대안이 고려된다. Sakai 및 Kasahara [C2]의 IBE 프로토콜이 예를 들면 사용될 수 있다. 이 프로토콜은 클라이언트 측 상에서 어떤 페어링 산출도, 및 서버 측 상에서 어떤 단일 페어링도 요구하지 않는다. 따라서 M-핀의 구현은 BN 곡선을 사용하여 IBE를 구현하기 위한 중요한 빌딩 블록들의 모두를 이미 포함한다. 몇몇 애플리케이션들에서, 단지 인증만이 요구되며 클라이언트 및 서버는 암호화 키를 수립하도록 요구하지 않는다. 따라서, 몇몇 구현들에서, 암호화 키는 수립되지 않는다.
게다가, 표 6의 프로토콜에서, 클라이언트는 서버를 인증하지 않는다. 서버의 인증이 요구된다면, 이것은 SSL을 사용하여 또는 또 다른 적절한 기법을 사용하여 실행될 수 있다.
M-핀 풀
몇몇 예들에서, 사용자명/패스워드뿐만 아니라 SSL의 기능을 교체하는 프로토콜이 또한 제공되고 있다. 우리는 이제 또한 이것을 달성하는 다수의 방식들을 설명할 것이다.
표 6의 프로토콜은 클라이언트 및 서버에서 키를 또한 수립하도록 확대될 수 있다. 미래 메시지들을 암호화하며 복호화하기 위해 세션 키를 또한 수립하는 확대된 암호 프로토콜의 예가 표 8에 도시된다.
문헌에 설명된 바와 같이 페어링 기반 키 교환 프로토콜들이 가진 하나의 문제점은 프로토콜들이 계산 부하에 대하여 "밸런싱"되며 클라이언트가 또한 페어링을 산출하도록 요구된다는 것이다. 이것은 일반적으로, 최근 몇 해 [B1]에 걸쳐 이루어진 개선들 모두를 갖고, 상당한 산출로서 인식된다. 상기 검토된 기존의 기법들의 모두는 페어링을 산출하기 위해 양쪽 당사자들 모두에 요구한다. 이것은 특히 저 출력 클라이언트가 고 출력 서버와 키 교환을 시도할 수 있는 콘텍스트에서 적합하지 않다.
하나의 아이디어는 우리에게 들어올리기 힘든 일을 할 수 있는, 계산적으로 보다 양호한 천부적 페어링 서버에 대한 페어링의 산출을 오프-로드하는 것이다. 여기에 설명된 예들의 일부에서, 방법은 프로토콜들을 "언밸런싱"하기 위해 제공되며, 따라서 클라이언트는 서버에 의한 페어링 산출의 부담을 덜어준다. 페어링 산출이
Figure pct00358
이면, 아이디어는 P Q 가 페어링 서버에 전달될 것이며, 이것은 페어링
Figure pct00359
을 산출하며 C의 값을 다시 전달할 것이라는 것이다.
그러나 이것은 명백한 보안 관련들을 가진다. 파라미터들(P 또는 Q ) 중 적어도 하나는 민감한 비밀일 것이며, 우리는 반드시는 아닌 신뢰 기관에 이 값을 전달하기를 원하지 않는다. P 및 Q의 값은 드러내 놓고 전달되지 않아야 한다. P 가 비밀 파라미터임을 가정하면, 우리는 그것이 우리에게 리턴될 때 우리가 페어링 값을 저렴하게 "언마스킹"할 수 있는 방식으로 P 를 "마스킹"하기 위해 페어링의 속성들을 이용할 수 있다. 따라서 랜덤 마스크(m)를 생성하며, mP Q를 페어링 서버에 전달하고, 이것은
Figure pct00360
을 리턴한다. 우리는 그 후
Figure pct00361
을 리턴한다. 이것은
Figure pct00362
로서 쌍선형성으로 인해 모두 작동한다.
페어링 산출을 위임하는 아이디어는 Chevalier-Mames 외 [B9]에 의해 고려된다. 그들은 악의적인 서버가 잘못된 결과로 응답할 수 있으며, 이것은 결과적으로 프로토콜에 대한 불행한 결과를 야기할 수 있는 가능성을 고려해볼 때, 정교한 해법들을 고려한다. 그러나 우리의 경우에 최종 키는 페어링 값으로부터 직접 도출되며, 그러므로 거짓 페어링 값은 간단히 프로토콜이 구별 가능하지 않은 방식으로 실패하게 한다, 말하자면 통신 실패. 그러므로 상기 해법은 우리의 목적들을 위해 적절하다.
그러나 몇 개의 관심사들이 있다. 처음에는, 클라이언트는 D 의 수신 값이 정확한 위수임을 검사하는 것이 중요하다. 이것은 작은 서브그룹 폐쇄 공격 [B14]을 방지하는 것이다. 페어링 값은
Figure pct00363
의 요소이며, BN 곡선에 대해 크기가 256 비트들인 소수 q 를 가져야 함을 상기하자. 그러나
Figure pct00364
에서의 랜덤 값은
Figure pct00365
의 임의의 정확한 나눔수인 위수를 가질 수 있으며 여기에서 p는 소수법이다. 위수 3의 값들이 존재한다는 것을 상상해보자. 그 후 M-핀 서버로서 가장한 엔티티와 공모한 악의적인 페어링 서버는, 그것의 마스킹 값(m)에 관계없이, 클라이언트가 k에 대한 3개의 가능한 값들 중 하나만을 산출할 수 있기 때문에, 이러한 값(t)을 다시 전달함으로써 표 8에 도시된 프로토콜을 성공적으로 완성할 수 있다. 거짓 "서버"는 그 후 그것들이 올바른 것을 찾을 때까지 간단히 3번 모두 시도할 수 있다.
이러한 공격에 대한 우리의 방어의 제1 라인은 페어링 값이, 당연히 위수 (
Figure pct00366
)의 원분 서브그룹의 요소라는 빠르고 저렴한 확인을 실행하는 것이다. 이것은 프로베니우스(frobenius) 동작을 이용하며
Figure pct00367
임을 확인함으로써 거의 무료로 행해질 수 있다.
Figure pct00368
가 또한 실행되어야 함을 확인하자. 그러나, 때때로 페어링의 최종 지수화의 "하드-부분"이라 불리우는 원분 서브그룹 내에서의 보조인자, (
Figure pct00369
)는 자체가 작은 나눔수들을 가질 수 있는 것이 여전히 가능하다.
우리는 이러한 보조인자가 소수(및 q보다 훨씬 더 큰)인 BN 곡선을 사용함으로써 공격의 이러한 방안을 차단할 수 있다. 이것은 예를 들면,
Figure pct00370
이 명확히 q보다 훨씬 더 큰, 소수이도록 BN 곡선 파라미터를 선택함으로써 달성될 수 있다. 우리는 이러한 BN 곡선을 "GT-Strong"으로 부른다.
BN 곡선들은 매우 충분하므로, 우리는 이러한 곡선들을 찾는데 어려움이 없다. "GT-Strong" 곡선을 찾는 것은 x에 대해 매우 낮은 해밍 가중치를 희생하여, 행하는 것이 어렵지 않다. 예를 들면, 곡선 파라미터(
Figure pct00371
)([B4] 참조)는, 효율적인 구현 [B1]을 위해 바람직하므로, x에 대한 비교적 낮은 해밍 가중치를 유지하면서, 적절한 곡선을 야기한다.
이제, 어떤 작은 서브그룹들도 없으므로, 우리는 몇몇 절감들을 갖고, 그룹 멤버쉽 테스트를 생략할 수 있다.
"GT Strong" 곡선들의 사용이 M-핀 프로토콜들과 함께 사용되는 것으로 설명되었지만, "GT Strong" 곡선들은 "GT Strong" 곡선들의 특징들이 적절한 임의의 페어링-기반 암호화 프로토콜들에서 사용될 수 있다는 것이 인식될 것이다. 게다가, M-핀 및 M-핀 풀 프로토콜, 및 여기에서 설명된 다른 프로토콜들이 또한 "GT Strong" 곡선들을 사용하지 않고 실현될 수 있다는 것이 인식될 것이다.
다음 질문은
Figure pct00372
을 얼마나 최상으로 산출할 지이다. 이것은 전체 페어링을 산출하는 것보다 훨씬 더 저렴하지만, 그것은 여전히 몇몇 비용을 가진다. 몇몇 테스팅은 가장 빠른 해법이
Figure pct00373
[B19]에서의 요소에 대한 페어링 값을 압축하며 Stam 및 Lenstra [B21]에 의해 설명된 바와 같이 빠른 XTR 방법을 사용하는 것임을 표시한다. 우리의 다음 아이디어는 별개의 페어링 서버를 배치하는 대신에, 이러한 역할을 이행하기 위해 왜 M-핀 자체를 얻지 않는가이다. 결국에는 M-핀은 온-라인 프로토콜이며 M-핀 서버는 그것을 실행하기 위해 이용 가능해야 한다. 또한 그것은 M-핀 서버가 우수한 계산 능력들을 가질 것이라는 합당한 가정이다. 사실상 이러한 역할들을 조합함으로써, 우리는 우리가 이해할 바와 같이, 몇몇 추가 간소화들을 달성한다.
일단 클라이언트 아이덴티티가 표 6의 프로토콜을 사용하여 인증된다면, 프로토콜은 키 교환을 완료하기 시작한다. 프로토콜의 두 개의 부분들은 최대 효율을 위해 신중히 조합될 수 있다. 이러한 프로토콜은 또한 연속화하는 또 다른 일반 해시 함수
Figure pct00374
를 요구하며, 그것의 입력을 256-비트 값 K로 해싱한다. 양쪽 측들 모두는 그 후 이러한 값(K)으로부터 고급 암호화 표준(AES) 키를 추출할 수 있다. 전체 프로토콜이 표 8에 제공된다.
M-핀 풀
Alice - 아이덴티티
Figure pct00375

랜덤 생성한다
Figure pct00376

Figure pct00377
서버
랜덤 생성한다
Figure pct00378

Figure pct00379

Figure pct00380
이면, 연결을 거절한다


Figure pct00381
프로토콜을 언밸런싱하는 것은 "전체 순방향 비밀성"을 그것에 주기에 충분하다. 클라이언트는, 서버가 3을 산출해야 할지라도, 페어링을 산출할 필요는 없다. 클라이언트는 또한 그룹(
Figure pct00382
)에서 임의의 산술을 행하기 위한 요건을 갖지 않는다. 실제로, 모든 포인트 곱셈들은 보다 간단한 그룹(
Figure pct00383
)에 있다. 판독자가 클라이언트 및 서버 양쪽 모두가 동일한 키로 끝남을 확신하기 위해 쌍선형성을 이용하는 것이 간단한 연습으로서 남겨진다. 프로토콜의 제1 부분이 단지 기본적으로 원래 M-핀 프로토콜이므로, 그것의 특징들의 모두가 여전히 적용된다는 것을 주의하자.
프로토콜 출력들은 PIN 에러를 결정하며 표 6의 M-핀 프로토콜에 대하여 상기 설명된 바와 같이 PIN 에러의 정도에 기초하여 클라이언트에 응답하기 위해 이용될 수 있다. 예를 들면, 도 8의 에러 핸들링 프로세스는 프로토콜의 키 합의 부분이 실행되기 전에 이러한 프로세스와 함께 사용될 수 있다.
표 8의 M-핀 풀 프로토콜이 이제 도 9 및 도 10에 대하여 보다 상세히 설명될 것이다.
클라이언트 측에서 단계들은 먼저 도 9에 대하여 설명될 것이다. 프로토콜의 시작은 사실상 단계 6.1 내지 단계 6.6에 대하여 이미 설명되었다. 그러나, 단계 6.6에서 클라이언트가 별개의 파라미터(m=-(x+y))를 저장할 수 있다는 것이 주의될 것이다. 도 6에서 단계 6.7은 도 9의 단계 9.1 내지 단계 9.4로 교체될 수 있으며 이들 단계들이 이제 설명될 것이다. 클라이언트(2)는 단계 9.1에서 서버(3)로부터의 V 및 Q에 기초한 페어링의 결과로부터 도출된 값(r)을 수신한다. 이 값을 수신함으로써, 클라이언트는 입력된 PIN이 정확하며 그것이 인증되었음을 알고 있다. 대안적으로, 클라이언트는 또한 그것이 인증되었음을 표시하는 부가적인 정보를 수신할 수 있다. 서버는 키를 도출하기 위해 클라이언트에 대해 요구된 페어링을 산출하였으며 r은 상기 페어링의 결과(t)로부터 도출된다. 결과적으로, 클라이언트(2)는 페어링을 산출하도록 요구하지 않는다. 그러나, 페어링으로의 입력들 중 하나는 m을 갖고 마스킹된 클라이언트 비밀이었으며, 클라이언트는 이제 그것이 r로부터 k를 도출할 때 서버에 알려지지 않은 상기 마스킹 값(m)을 고려할 필요가 있다. 페어링(t)의 결과는 r을 획득하기 위해 서버에서 n 제곱하였으며 클라이언트는 n의 값을 알지 못한다. 그러나, 클라이언트는 페어링의 결과들을 복구할 필요가 없으며, 그것은 단지 서버와 동일한 k를 수립하도록 요구한다. 클라이언트는 그러므로 서버가 실제 마스킹 값(m)을 공유하지 않고 동일한 키를 산출하도록 허용하기 위해 서버와 정보를 공유할 필요가 있을 것이다. 단계 9.2에서, 클라이언트는 그러므로 q보다 낮은 랜덤 값(w)을 생성하며, 새로운 포인트(W)의 좌표들을 찾기 위해, 포인트(A)의 곱셈을 타원 곡선 상에서 실행한다. 클라이언트는 그 후 이러한 포인트의 좌표들을 서버에 전송한다. 단계 9.3에서, 클라이언트는 그 후 수신된 값(r)을 w/m 제곱한다. 단계 9.4에서, 그것은 결과(k)를 키(K)에 대해 해싱한다. 그것은 그에 의해 추가 통신을 암호화하기 위해 사용될 수 있는, 세션 키를 획득하였다.
도 9의 단계들은 도 2에 대하여 설명된, 인증 프로그램(25)의 지시들을 실행한 클라이언트(2)의 프로세서(21)에 의해 실행될 수 있다.
서버 측 상에서의 단계들은 이제 도 10에 대하여 설명될 것이다. 다시, 제1 단계들은 도 7의 단계 7.1 내지 단계 7.6에 대하여 이미 설명되었다. 그러나, 서버는 그것이 나중에 값(r)을 도출할 수 있도록 단계 7.5에서 제1 페어링의 결과들(t)을 저장할 수 있다는 것이 주의될 것이다. 서버는 그것이 그것을 제2 페어링의 결과와 곱하기 전에 t를 획득하기 위해 제1 페어링을 실행할 수 있다. g의 값이 1과 같다면 또는 정확한 PIN이 예를 들면, 도 8에서 설명된 바와 같이 에러 핸들링 프로세스를 사용하여, 나중에 입력된다면, 서버(3)는 그 후 단계 10.1 내지 단계 10.5에 대하여 이제 설명될 키 도출 프로세스로 진행한다. 단계 10.1에서, 서버는 q보다 낮은 랜덤(n)을 발생시킨다. 단계 7.5에서, 서버는 페어링 산출을 실행하였다. 페어링들 중 하나는 클라이언트로부터 획득된 V의 좌표들 및 고정 포인트(Q)의 좌표들을 입력들로서 취하였다. 서버는 이제 값(r)을 획득하기 위해 상기 페어링의 결과를 n 제곱한다. 서버는 그 후 단계 10.2에서 이 값을 클라이언트에 송신한다. 서버는 그러므로 클라이언트에 대한 키를 도출하기 위해 요구된 페어링을 산출하였으며 모든 헤비 프로세싱이 서버에 있다. 클라이언트(2)는 그 후 도 9에 대하여 설명된 바와 같이 키를 도출하기 위해 r의 값을 사용할 수 있다.
서버(3)는 그 후 단계 10.3에서 클라이언트로부터 포인트(W)의 좌표들을 수신한다. W는 클라이언트 측에서 r을 키로 변환하기 위해 사용될 값(w)을 사용하여 획득되었다. 서버는 그러므로 쌍선형성을 사용하여, 동일한 키를 도출하기 위해 W의 좌표들을 요구한다. 단계 10.4에서, 서버는, 타원 곡선 상에서, n과 포인트(W)를 곱한다. 서버는 그 후 W 및 n의 곱셈에 기인한 포인트의 좌표들 및 서버 비밀(sQ)의 좌표들을 입력으로서 취하는 또 다른 페어링을 산출한다. 서버는 그 후 키(K)를 획득하기 위해 페어링의 결과들(k)을 해싱한다. 이것은, 페어링들의 쌍선형성 속성을 사용함으로써 쉽게 이해될 바와 같이, 클라이언트 측 상에서 획득된 키와 동일한 키이다.
도 10의 단계들은 도 3에 대하여 설명된, 서버 인증 프로그램(34)의 지시들을 실행한 서버(3)의 프로세서(31)에 의해 실행될 수 있다.
표 8에서 출발하며, 도 9 및 도 10에 대하여 설명된 프로토콜은 SSL과 조합된 표 6에서 출발한 프로토콜의 조합과 전체적으로 같지 않다는 것이 언급되어야 한다. 클라이언트 아이덴티티는 M-핀-풀에서 명확하게 송신되는 반면, SSL을 갖고, 전체 M-핀 프로토콜은 SSL을 숨기고 실행하며, 이것은 그러므로 익명성 특징을 제공한다. 다른 한편으로 M-핀 풀은 전체 순방향 비밀성을 갖는 반면, SSL은, 지원된 순방향-비밀 모드들이 있을지라도, 이러한 특징 없이 정상적으로 동작된다. 물론, SSL과 함께 M-핀 풀 프로토콜을 실행하는 것은 항상 가능하다.
유효 비밀을 소유하지 않은 거짓 서버가
Figure pct00384
이 그것이 또한 산출할 수 있는 값이도록 특별히 날조된 r의 값을 다시 전달한다면 어떨까? 랜덤 r을 명확하게 간단히 전송하는 것은, w 및 m의 값들이 공격자에게 알려져 있지 않기 때문에, 작동하지 않을 것이다. 그러나 그럴듯한 공격은
Figure pct00385
이 알려지도록 값
Figure pct00386
을 구성하는 것일 수 있다. 그러나, 알려지지 않은 m의 효과를 제거하기 위해, 페어링은 m의 배수를 파라미터로서 가져야 하며, V는 그것에 이용 가능한 유일한 그러한 배수이다. 페어링은, 페어링이
Figure pct00387
제곱될 때와 같이, 파라미터(A)로서 가져야 하며, 그 후
Figure pct00388
은 그것에 알려진 의 유일한 배수이다. 그러나 V 및 A의 양쪽 모두가
Figure pct00390
으로부터의 요소들이며,
Figure pct00391
으로부터의 단지 하나의 파라미터만이 페어링에 제출될 수 있다. 그러므로 이러한 값은 구성될 수 없다.
이것의 하나의 결과는 피싱 웹사이트가 상호 키(K)를 수립할 수 없을 것이므로, 소위 "피싱" 공격은 이러한 프로토콜에 대하여 비효과적일 것이라는 것이다.
시간 허용치들
프로토콜들은 또한 시간 허용치들을 포함할 수 있다. 시간 허용치들은 간단한 대안적 철회 능력을 제공한다. 아이디어는, 몇몇 예들에서, 서버가 Alice의 해싱된 아이덴티티의 그것의 구성에서 시간 기간을 포함한다는 것이다. Alice가 동일한 기간에 대한 대응하는 "시간 허용치"를 유지하지 않는다면, 그녀는 프로토콜을 완성할 수 없다. 시간 허용치는 예를 들면, 하루 또는 2일 동안 유효할 수 있다. 그러나, 시간 기간들은 훨씬 거 길게, 예를 들면, 1주 또는 1달 또는 1주 또는 1달보다 긴 동안 유효할 수 있다는 것이 인식될 것이다.
표 6 및 표 8에서의 프로토콜들에서, 우리는 프로토콜의 양쪽 측들 상에서
Figure pct00392
Figure pct00393
을 산출할 수 있으며, 여기에서
Figure pct00394
는 제 i 시간 기간에 대한 텍스트 설명이고,
Figure pct00395
Figure pct00396
와 다른 해시 함수이며 |은 연쇄를 표시한다.
Figure pct00397
는 하루 또는 한 달과 같은 명시적으로 설명된 시간 슬롯일 수 있다. 결과적으로, 포인트(A) 및 클라이언트 비밀(sA)이 이제 또한 비밀이 유효한 시간 기간으로부터 도출된다. 정확하게 작동하기 위한 프로토콜에 대해, Alice는 sA를 생성하기 위해 그녀의 조합된 PIN-더하기-토큰 비밀(
Figure pct00398
)에 더해진 허용치(
Figure pct00399
)를 갖고 신뢰 기관(4)에 의해 발행되어야 한다. 허용치는 임의의 다른 당사자에게 사용되지 않으며, 그러므로 공개적으로 발행될 수 있거나, 또는 간단히 이메일로 Alice에게 전송되거나 또는 서버를 통해 전달될 수 있다는 것을 관찰한다. 도 1에 대하여 언급된 바와 같이, 클라이언트는 저장 장치(23)에서 시간 허용치(27)를 저장할 수 있다. Boneh 및 Franklin IBE의 콘텍스트에서 이러한 아이디어에 대한 보안의 증명은 [B22]에서 발견될 수 있다. M-핀 프로토콜은 계속해서 상기 설명된 PIN 에러를 결정하기 위한 메커니즘을 지원하기 위해 및 예를 들면 도 8에 대하여 설명된 PIN 에러 핸들링 프로세스를 실행하기 위해 작은 수정을 요구한다. 이러한 에러는 PIN-더하기-토크 구성요소에서 반영되며 시간 허용치에서 반영되지 않을 것이므로, 클라이언트는 또한 프로토콜의 제1 패스에서 서버(
Figure pct00400
)를 전송해야 한다.
표 6의 프로토콜에 기초하며 시간 허용치들을 포함한 프로토콜이 표 9에 도시된다. 표 9의 프로토콜에서, 표기법은 상기 시간 허용치들의 설명에서 사용된 표기법과 상이하다. 표 9의 프로토콜에서, 아이덴티티 및 클라이언트 비밀은 표 6 및 표 8에서처럼 동일한 채로 있지만 우리는 프로토콜의 양쪽 측면들 상에서 새로운 포인트(
Figure pct00401
)를 도출하며 여기에서
Figure pct00402
는 여전히 i - 시간 기간에 대한 텍스트 설명이고,
Figure pct00403
Figure pct00404
와 다른 해시 함수이며 |는 연쇄를 표시한다. 또한, 클라이언트 비밀(sA)은 포인트(V)가 그 후 도출되는 새로운 포인트를 획득하기 위해 시간 허용치(sT)에 더해진다. 이것은 표기법이 상이할지라도 상기 설명된 방법과 수학적으로 같다.
시간 허용치들을 가진 M-핀
Alice - 아이덴티티
Figure pct00405

랜덤 x < q를 생성한다
Figure pct00406
서버
랜덤 y < q를 생성한다
Figure pct00407

Figure pct00408
이면, 연결을 거절한다
PIN 에러를 결정하기 위한 메커니즘에 대하여, 이제 프로토콜에 의해 리턴된 g의 값은
Figure pct00409
이며,
Figure pct00410
는 PIN 에러이다.
표 9의 프로토콜이 이제 도 11 및 도 12에 대하여 보다 상세히 설명될 것이다.
단계 11.1에서, 클라이언트(2)는 TA로부터 시간 허용치(sT)를 획득한다. 클라이언트는 TA(4)로부터 시간 허용치(sT)에 대응하는 포인트의 좌표들을 획득할 수 있다. 클라이언트는 또한 TA로부터, 시간 허용치가 유효한 시간 기간을 표시하는
Figure pct00411
를 획득할 수 있거나 또는 그것은 그것을 내부적으로 발생시킬 수 있다. 예를 들면, 시간 기간은 특수한 포맷으로 기록된, 시간 허용치가 유효한 날짜일 수 있다. 단계 11.2 및 단계 11.3은 도 6의 단계 6.1 및 단계 6.2와 동일하다. 클라이언트는 사용자로부터 PIN 추측(11')을 수신하며 그것은
Figure pct00412
에서 타원 곡선 상에서의 포인트에 그것의 아이덴티티를 해싱한다. 단계 11.4에서, 클라이언트는 그 후 아이덴티티 및 시간 기간(
Figure pct00413
)을 연쇄시키며
Figure pct00414
에서 타원 곡선 상에서의 포인트(T)에 연쇄된 스트링을 해싱한다. 클라이언트는 그 후 단계 11.5에서 새로운 포인트(D)의 좌표들을 획득하기 위해, 타원 곡선 상에서, 포인트들(A) 및 포인트들(T)을 더한다. 단계 11.6에서, 클라이언트는 그 후 곡선 상에서 두 개의 곱셈들을 실행한다. 그것은 랜덤 x를 발생시키며 두 개의 새로운 포인트들(U 및 R)을 획득하기 위해 x와 포인트(D) 및 포인트(A) 양쪽 모두를 곱한다. x 의 값은 그룹들(
Figure pct00415
,
Figure pct00416
Figure pct00417
)의 소수 위수(q)보다 낮다. 클라이언트는 그 후 단계 11.7에서, 포인트들(U 및 R)의 좌표들 및 클라이언트의 아이덴티티를 포함한, 위임을 서버(3)에 전송한다. 몇몇 예들에서, 클라이언트는 또한 시간 기간(
Figure pct00418
)을 서버에 전송할 수 있다.
단계 11.8에서, 클라이언트는 클라이언트가 도 6의 단계 6.5에서 챌린지(y)를 수신한 것과 동일한 방식으로 챌린지를 수신한다. y의 값은 또한 q보다 낮은 랜덤 수이다. 클라이언트는 그 후 포인트(V)의 좌표들을 산출하도록 진행한다. 표 6의 프로토콜에서, 이러한 포인트의 좌표들은 -(x+y)와 복구된 클라이언트 비밀에 대응하는 포인트를 곱함으로써 도출되었다. 표 9의 프로토콜에서, V는 대신에 토큰 및 PIN으로부터 획득될 수 있는 클라이언트 비밀(sA) 및 TA로부터 획득된 시간 허용치들(sT)로부터 도출된다. 보다 상세히, 단계 11.9에서, 클라이언트는 도 6의 단계 6.6에서와 동일하게 PIN 및 토큰으로부터 클라이언트 비밀을 복구한다. 클라이언트는 또한 -(x+y)를 획득하기 위해 두 개의 랜덤 값들(x 및 y)을 함께 더하며 -1로 곱할 수 있다. 클라이언트는 그 후 새로운 포인트를 찾기 위해, 타원 곡선 상에서, 클라이언트 비밀(sA)에 대응하는 포인트 및 시간 허용치(sT)에 대응하는 포인트를 더하며 그 후 포인트(V)의 좌표들을 획득하기 위해 곡선 상에서 값(-(x+y))과 새로운 포인트의 곱셈을 실행한다. 클라이언트는 그 후 서버로 하여금 클라이언트를 인증하도록 허용하기 위해 서버에 이러한 포인트의 좌표들을 전송한다. 단계 11.10에서, 클라이언트는 인증의 결과들을 수신할 수 있다. 단계 11.10은 이하에서 보다 상세히 설명될 것이다.
도 12에 대하여, 서버(3)는 단계 12.1에서 시간 기간(
Figure pct00419
)을 획득한다. 서버는 TA(4)로부터 시간 기간을 획득하고, 예를 들면, 그것이 날짜와 같은 알려진 포맷이라면 내부적으로 그것을 생성하거나, 또는 클라이언트(2)로부터 그것을 수신할 수 있다. 서버는 그 후 타원 곡선 상에서
Figure pct00420
에서 포인트들(U 및 R)의 좌표들 및 클라이언트의 주장된 아이덴티티를 포함한, 위임을 단계(12.2)에서 인증하기 위해 수신한다. 서버는 또한 클라이언트가 연결을 수립하고 싶어하는 것을 표시하는 또 다른 메시지를 클라이언트로부터 수신할 수 있다. 서버는 포인트들(U 및 R)의 좌표들 및 아이덴티티를 송신하도록 클라이언트에 요청하였다. 몇몇 예들에서, 단계 12.1 및 단계 12.2는 조합될 수 있으며 서버는 위임에서 시간 기간(
Figure pct00421
)을 수신한다. 단계 12.3에서, 서버는 그 후 또한 q보다 낮은, 랜덤 y를 생성하며, y의 값을 챌린지로서 클라이언트에 송신한다. 서버는 그 후 단계 12.4에서 포인트(D)의 좌표들을 산출하기 위해 클라이언트 아이덴티티 및 시간 기간을 사용한다. 단계 12.5에서, 서버는 타원 곡선 상에서 포인트(V)의 좌표들을 수신한다.
서버는 그 후 단계 12.6에서 페어링들의 적을 산출한다. 제1 페어링은 입력으로서 포인트(V) 및 포인트(Q)를 취하며
Figure pct00422
에서 요소에 그것들을 매핑시킨다. 도 11의 설명에 표시된 바와 같이, V는 클라이언트 비밀(sA)에 대응하는 포인트 및 시간 허용치(sT)에 대응하는 포인트로부터 획득된
Figure pct00423
에서 곡선 상에서의 포인트이다. 상기 이미 언급된 바와 같이, Q
Figure pct00424
의 고정 발생기이다. 다른 페어링은 포인트들(U 및 D)로부터 획득된,
Figure pct00425
에서 또 다른 포인트, 및 서버 비밀(sQ)에 대응하는 포인트의 좌표들을 입력으로서 취하며 그것들을
Figure pct00426
에서 요소에 매핑시킨다. 포인트(sQ)는 물론
Figure pct00427
에서 또 다른 포인트이다.
Figure pct00428
에서 포인트는 타원 곡선 상에서, 랜덤 값(y)과, 그 좌표들이 단계 12.2의 위임에서 클라이언트로부터 수신되는,
Figure pct00429
에서의 포인트(U), 및 단계 12.4에서 산출된, 포인트(D)를 곱함으로써 획득된, 물론 또한
Figure pct00430
에서의, 포인트를 더함으로써 획득된다. 서버는 값(g)을 주기 위해 두 개의 페어링들의 적을 획득한다. 산출은 서버가 그것들을 함께 곱하기 전에 별개의 페어링들을 실행하기보다는 하나의 산출로서 페어링들의 적을 산출하는 다중-페어링으로서 실행될 수 있다. 서버 비밀(sQ)이 각각의 별개의 모듈에 의해 저장되는, 두 개의 파트들로 분리된다면, 각각의 모듈은 대신에 그 각각의 비밀 파트에 기초하여 페어링을 산출할 수 있으며 두 개의 페어링들은 그 후
Figure pct00431
을 획득하기 위해 함께 곱하여질 수 있다. 서버 비밀(
Figure pct00432
)을 저장한 모듈은 그 후
Figure pct00433
을 산출할 것이며 서버 비밀(
Figure pct00434
)을 저장한 모듈은 그 후
Figure pct00435
을 산출할 것이다.
도 7에 대하여 설명된 바와 같이, 쌍선형성 때문에, g의 값은 정확한 PIN이 입력되었다면 1과 같아야 하며 그러므로 정확한 클라이언트 비밀이 복구된다. 단계 12.7에서, 서버(3)는 g의 값이 1과 같은지를 검사하며 그것이 1과 같지 않다면 그것은 단계 12.8에서 클라이언트를 인증하며 단계 12.9에서 연결을 수용한다. 연결을 수용하는 것은 클라이언트가 인증되었음을 클라이언트에 알리기 위해 메시지를 클라이언트에 송신하는 것을 수반할 수 있다.
반대로, g의 값이 1과 같지 않다면, 서버는 단계 12.10에서 클라이언트가 인증되지 않았음을 결정하며 그 후 다수의 방식들로 진행할 수 있다. 단계 12.11에서, 그것은 연결을 즉시 거부할 수 있거나 또는 그것은 PIN이 부정확한 정도를 결정하기 위해 에러 핸들링 프로세스를 실행할 수 있다. 그것은 예를 들면 도 8에 대하여 설명된 프로세스를 수행할 수 있다.
도 11 및 도 12에서 단계들 중 일부의 위수는 변경될 수 있다는 것이 인식될 것이다. 예를 들면, PIN은 그것이 단계 11.9에서 사용될 때까지 수신되지 않을 수 있다. 게다가, 시간 기간 및 시간 허용치는 그것들이 각각 단계들 11.4 및 단계들 11.9에서 사용될 때까지 클라이언트 측에서 획득되지 않을 수 있다. 더욱이, 서버는 그것이 포인트(V)의 좌표들을 수신한 후 클라이언트 아이덴티티를 해싱할 수 있다. 그것은 또한 그것이 단계 12.4에서 그것을 사용할 때까지 시간 기간을 획득하는 것을 연기할 수 있다. 게다가, 서버가 비밀의 제2 인자에서 에러들에 대한 보다 진보된 에러 핸들링 프로세스를 지원하지 않는다면, 포인트(R)의 좌표들은 서버에 전송될 필요가 없을 것이다.
서버는 페어링들을 실행하기 위해, 숙련자가 이해할 바와 같이, 임의의 적절한 페어링을 사용할 수 있다. 예를 들면, 클라이언트는 효율적 R-ate 페어링을 사용할 수 있다. 게다가, 타원 곡선들이 사용된다는 것이 설명되었지만, 임의의 적절한 대수 곡선들이 사용될 수 있다. 예를 들면, 초-타원 곡선들은 타원 곡선들 대신에 사용될 수 있다.
표 8의 M-핀 풀 프로토콜의 수정은, 또한 시간 허용치들을 포함하기 위해, 표 10에 도시된다.
시간 허용치들을 가진 M-핀 풀
Alice - 아이덴티티
Figure pct00436

랜덤 x, w < q를 생성한다
Figure pct00437
서버
랜덤 n, y < q를 생성한다
Figure pct00438

Figure pct00439
이면, 연결을 거절한다



Figure pct00440
표 9에 대하여 상기 언급된 바와 같이, 이제 프로토콜에 의해 리턴된 g의 값은
Figure pct00441
이며,
Figure pct00442
는 PIN 에러이다.
표 10으로부터 명백할 바와 같이, 수정들은 시간 허용치들이 단계 9.2에서, 포인트(A)의 곱셈 대신에, 포인트(D)의 곱셈이 실행되는 것보다 시간 허용치들이 사용될 때 도 9 및 도 10에 대하여 설명된 키 도출 단계들에 대해 요구되지 않을 수 있으며, 포인트(W)의 좌표들 및 새로운 포인트(W)의 좌표들을 획득하기 위해, q보다 낮은 랜덤 값(w)이 서버에 송신된다. 그러나, 프로토콜의 시작의 단계들은 도 11 및 도 12에 대하여 설명된 바와 같이 수정될 수 있다.
몇몇 예들에서, M-핀 프로토콜들은 제3 자들, 단일 서버, 많은 클라이언트들, 및 신뢰 기관(TA)을 수반하는 프로토콜들이라는 것을 명심하는 것이 중요하다. 이것의 주요 이득들 중 하나는 서버로부터 떨어져 TA의 손들로 많은 책임이 지어진다는 것이다. 특히 서버는 클라이언트 비밀들에 관련된 어떤 데이터도 유지하지 않는다. 이것은 해킹되는 서버의 문제점을 크게 완화시킨다.
신중한 설계를 갖고, 서버는 단지 활성 클라이언트 상태의 동적 데이터베이스를 유지하도록 요구한다. 이 데이터베이스는 서버에, 예를 들면 도 3에 도시된 저장 장치(33)에 저장되며, 프로세서가 데이터베이스에서 데이터를 빠르게 액세스할 필요가 있을 때 프로세서(31)의 임시 메모리로 로딩될 수 있다. 예를 들면, 새로운 사용자가 성공적으로 로그 인한다면, 서버는 그것들에 TA에 의해 유효 크리덴셜들이 발행되었다는 것을 알 것이며, 따라서 임의의 추가 확인을 할 필요가 없다. 보안 전문 지식은 이제 단지 TA를 제어하는 이것들의 관리 하에 있다 - 서버는 비-보안 전문가에 의해 구현되며 유지되도록 신뢰받는다.
시간 허용치 메커니즘은 철회를 통제하며, 서버에게서 이러한 잠재적인 부담을 덜어주기 위한 TA에 대한 방식이다. 시간 허용치들이 마스터 비밀을 요구하므로, 그것들의 발행은 TA(4)의 재량에 있다.
TA는 예를 들면, 모든 시간 허용치들을 방송할 수 있다. 클라이언트는 예를 들면, TA와 연관된 웹사이트를 액세스함으로써 그것의 시간 허용치(27)를 획득할 수 있을 것이다. 사기꾼은 또한 클라이언트의 시간 허용치를 획득할 수 있을 것이지만 그것이 클라이언트 비밀(sA)을 알지 못하므로 그것은 이러한 시간 허용치를 사용할 수 없을 것이다. TA가 클라이언트로 하여금 키들을 인증하고 및/또는 도출하기 위해 시스템 및 관련 프로토콜을 사용하도록 계속해서 허용하기를 원하는지에 대한 결정이 TA에서 각각의 새로운 시간 기간의 시작에서 이루어질 수 있으며, 그렇다면, 그것은 관련 서버, 클라이언트 아이덴티티 및 사용할 클라이언트에 대한 시간 기간과 연관된 마스터 비밀(s)로부터 획득된 시간 허용치를 공개할 것이다.
몇몇 예들에서, 시간 허용치들 대신에, 또는 시간 허용치들 외에, 부가적인 정보가 클라이언트 비밀(sA)의 생성시 포함될 수 있다. 시간 허용치(sT)는 예를 들면, 다음으로 교체될 수 있다
Figure pct00443
여기에서 Z는 TA(4)가 신뢰 당사자에 전송하고 싶어하는 데이터이다. 클라이언트는 시간 허용치 및 또한 데이터를 평문으로 수신할 것이다. 그것은 몇몇 예들에서, 프로토콜의 부분으로서, 인증 서버(3)에 이러한 데이터를 전송할 수 있다. 이것은 인증 서버가 표 9 및 표 10의 프로토콜들로부터 명백할 바와 같이
Figure pct00444
산출할 수 있어야 하기 때문이다.
도 11 및 도 12에 대하여, 클라이언트(2)는 TA로부터 부가적인 데이터(Z)를 획득하며 예를 들면 단계 12.2에서 수신하기 위해 서버에 대한 단계 11.7의 위임에서 부가적인 데이터를 전송할 수 있다. 대안적으로, 서버는 클라이언트 또는 TA로부터, 단계 12.1에서 부가적인 데이터를 수신할 수 있다. 게다가, 단계 11.4에서, 클라이언트는 또한 포인트(T)를 획득하기 위해 부가적인 데이터(Z)를 사용한다. 클라이언트는 클라이언트 아이덴티티, 시간 기간 및 부가적인 데이터를 연쇄시킬 수 있으며
Figure pct00445
에서 타원 곡선 상에서의 포인트(T)에 대해 해시 함수(
Figure pct00446
)를 사용하여 결과들을 해싱한다.
도 13에 대하여, 시스템은 복수의 클라이언트들(2a, 2b), 인증 서버(3), TA(4) 및 신뢰 당사자(16)를 포함하여 도시된다. 신뢰 당사자(16)는 클라이언트들이 연결을 수립하고 싶어할 서버 또는 다른 컴퓨팅 디바이스일 수 있다. 예를 들면, 신뢰 당사자는 클라이언트가 액세스하고 싶어할 데이터를 저장할 수 있거나 또는 그것은 인터넷 쇼핑 사이트를 호스팅할 수 있다.
TA(4)는 그것의 시간 허용치들(sT) 및 부가적인 데이터(Z)를 클라이언트(2a)에 제공한다. 클라이언트는 또한 예를 들면, TA로부터 또는 상기 설명된 바와 같이 내부적으로 그것을 생성함으로써, 시간 기간(
Figure pct00447
)을 획득할 수 있다. 인증 서버는 또한 시간 기간(
Figure pct00448
)을 획득할 수 있다. 인증 서버(3)는 또한 인증 서버에 스스로를 인증한 클라이언트(2a)를 통해 부가적인 정보(Z)를 제공받을 수 있다. 인증 서버(3)는 일단 클라이언트가 서버에 의해 인증되었다면 인증 토큰(17)을 클라이언트(2a)에 발행할 수 있으며 클라이언트는 그 후 토큰에 기초하여 리소스에 대한 액세스를 허용하거나 또는 방지할 수 있는 의존 집단(16)에 이러한 인증 토큰을 제공할 수 있다. 토큰(17)은 아이덴티티에 대한 필드들, 성공/실패, 시간-스탬프 및 또한 TA로부터 전송된 데이터(Z)를 포함할 수 있다. 토큰(17)은 AES를 사용하여 암호화된, 인증 서버에 의해 서명될 수 있으며, AES 키는 Sakai - Kasahara 키 암호화(SAKKE)를 사용하여 캡슐화될 수 있다. 암호화된 토큰은 그것이 예를 들면, 신뢰 당사자의 콘텐트를 액세스하길 원한다면, 그것을 신뢰 당사자(16)에 전송해야 하는 클라이언트에 전송된다. 신뢰 당사자는 토큰을 복호화하고, 서명을 검증하며 데이터 페이로드를 추출할 수 있다. 그러므로, 데이터는 조작되지 않고 TA(4)로부터 신뢰 당사자(16)에 전송되었다. 도 13에서, 단지 제1 클라이언트(2a)만이 그것의 시간 허용치, 부가적인 데이터(Z), 및 시간 기간을 소유한 것으로 도시되지만, 시스템을 사용한 클라이언트들 모두는 그 자신의 시간 허용치들, 부가적인 데이터 및 관련 시간 기간들을 제공받을 수 있다.
TA는 인증 서버(3)를 실행한 고객에게 사용될 수 있는 풍부한 실시간 분석 데이터의 데이터베이스를 유지한다. 시간 허용치의 생성 시 부가적인 정보를 포함하기 위해 상기 설명된 방법은 클라이언트를 통해, 인증 서버에 스스로를 인증하는 데이터를 신뢰 당사자에 송신하기 위한 방법으로서 사용될 수 있다. 게다가, 인증 서버가 그것의 PIN 에러 핸들링 프로세스를 실행하는데 도움이 될 수 있는 클라이언트에 대한 부가적인 데이터가 이러한 방식으로 송신될 수 있다. 예를 들면, 도 8의 단계 8.11 및 단계 8.13에서 고려된 부가적인 데이터의 일부는 이러한 방식으로 인증 서버에 송신될 수 있다.
또 다른 키 합의 프로토콜
표 8의 M-핀 풀 프로토콜에 대한 대안은 키들을 수립하며 클라이언트를 인증하기 위해 사용될 수 있다. 시간 포인트는 표 5로부터의 최종 프로토콜이다. 이것은 Wang [23]으로 인한, 페어링들을 사용한, 그러나 수정들을 갖는, 전체 인증 키 교환 프로토콜에 기초한다. 이러한 프로토콜에서, 키(K)가 산출되기 전에 g를 산출하며 g=1인지를 확인하는 대신에, K가 산출되며 키(K)로부터 도출된 값(M)은 그 후 서버가 클라이언트의 인증을 실행하도록 허용하기 위해 클라이언트에서 서버로 전송된다. 이러한 프로토콜은 표 11에 도시된다.
키 합의 및 인증을 위한 프로토콜
Alice - 아이덴티티
Figure pct00449

랜덤 생성한다
Figure pct00450

Figure pct00451

Figure pct00452
서버
랜덤 생성한다
Figure pct00453

Figure pct00454

Figure pct00455

Figure pct00456
이면, 연결을 거절한다
표 8의 프로토콜과 마찬가지로, 클라이언트는 더 이상 페어링을 산출할 필요가 없다. 서버는 2를 산출해야 한다. 클라이언트는 또한 그룹(
Figure pct00457
)에서 임의의 산술을 행하기 위한 요건을 갖지 않는다. 실제로, 모든 포인트 곱셈들은 보다 간단한 그룹(
Figure pct00458
)에 있다. 다시, 판독자가 클라이언트 및 서버 양쪽 모두가 동일한 키로 끝남을 확신하기 위해 쌍선형성을 이용하는 것이 간단한 연습으로서 남겨진다. 표 8의 프로토콜의 M-핀 풀과 달리, 표 11의 대안적인 프로토콜은 키의 해시가 사실상 서버로 전송되기 때문에 제로 지식 증명 프로토콜이 아님이 관찰될 것이다.
표 11의 프로토콜은 또한 PIN 에러를 결정하며 PIN의 정도에 기초하여 클라이언트에 응답하기 위해 이용될 수 있다. 예를 들면, 도 8의 에러 핸들링 프로세스는 프로토콜의 키 합의 부분이 실행되기 전에 이 프로토콜과 함께 사용될 수 있다.
셋-업
셋-업 프로세스들의 예들이 이제 도 14 내지 도 16에 대하여 보다 상세히 설명될 것이다.
도 14에 대하여, TA(4)는 단계 14.1에서 서버 비밀을 획득하기 위해 서버(3)로부터 요청을 수신한다. TA는 그 후 단계 14.2에서 인증 프로세스에서 사용될 해시 함수들의 세부 사항들 및 타원 곡선에 대한 파라미터들을 서버에 제공할 수 있다. TA는 인증 프로세스에서 사용될 해시 함수들의 세부사항들 및 타원 곡선을 이미 선택하였다. 타원 곡선 파라미터들 및 해시 함수 세부 사항들은 TA의 저장 장치(43)에 저장된 정보(46)를 사전 선택할 수 있다. TA는 또한 곡선의 파라미터들, 해시 함수 함수의 세부사항들, 및 서버가 인증 프로세스를 실행하도록 허용하기 위한 다른 공개 정보를 공개하였을 것이다. 결과적으로, 단계 14.2는 정보가 공개된 곳으로 서버를 향하게 하는 것을 수반할 수 있다. 대안적으로, 그것은 정보를 서버에 전송할 수 있다. 서버가 TA로부터 서버 인증 프로토콜(34)을 수신한다면, 프로그램은 서버가 요구하는 파라미터들 및 다른 정보를 포함할 수 있다.
TA는 그 후 단계 14.3에서 서버에 고유한 마스터 비밀(s)을 생성한다. 단계 14.4에서, TA는 그 후 타원 곡선 상에서 포인트(Q)를 생성하며 선택된 곡선 상에서, 포인트(Q)를 마스터 비밀(s)과 곱함으로써 포인트(sQ)를 획득한다. s는 몇몇 구현들에서 각각의 서버에 대해 고유하므로, 서버에 대한 아이덴티티는 이들 구현들에서 Q 및 sQ의 생성시 요구되지 않을 것이다. 포인트(Q)는 임의로 선택될 수 있다. TA는 보안 통신 채널에서 포인트(Q) 및 포인트(sQ)의 좌표들을 서버(3)에 전송한다. 몇몇 예들에서, 단계 14.2는 단계 14.4와 조합될 수 있으며 TA(4)는 단계 14.4에서 서버가 요구하는 모든 정보를 전송할 수 있다. TA는 또한 단계 14.5에서, 시스템을 사용하는 서버들 및 클라이언트들을 표시하는, 저장 장치(43)에서의 레코드(45)를 수신하며 서버에 대한 식별 정보를 그것에 더할 수 있다. 레코드는 예를 들면 데이터베이스 또는 다른 데이터 구조일 수 있다.
얼마 후에, TA(4)는 단계 14.6에서 서버(4)와 인증하기를 원하는 클라이언트(2)의 아이덴티티를 수신한다. 그것은 예를 들면, 서버로부터, 또는 그것이 어떤 서버에 인증하기를 원하는지에 대한 표시를 갖고 클라이언트로부터 직접 아이덴티티를 수신할 수 있다. TA는 클라이언트가 단계 14.7에서 인증하고 싶어하는 서버에 대해 고유한 마스터 비밀(s)을 검색하며 그것이 클라이언트에 전송하는 클라이언트 비밀을 생성한다. 클라이언트 비밀은 상기 설명된 바와 같이, 곡선 상에서의 포인트(A)에 대해 클라이언트 아이덴티티를 해싱하며, 곡선 상에서 새로운 포인트(sA)를 획득하기 위해 이 포인트를 마스터 비밀(s)과 곱함으로써 생성된다. TA는 또한 단계 14.8에서 그것이 공개하거나 또는 클라이언트에 전송하는 클라이언트에 대한 시가 허용치를 생성할 수 있다. TA는 또한 단계 14.9에서, 시스템을 사용하는 클라이언트들 및 서버들의 레코드(45)에 클라이언트의 아이덴티티를 더할 수 있다. 곡선의 파라미터들 및 해시 함수의 세부사항들이 공개되지 않으며 다른 수단에 의해 클라이언트에 제공되지 않는다면, TA는 또한 클라이언트가 요구할 수 있는 다른 정보와 함께, 상기 정보를 클라이언트에 전송할 수 있다.
얼마 후에, 단계 14.10에서, 시간 허용치가 발행된 시간 기간이 만료될 때, TA(4)는 그것의 레코드들(45)을 확인하며 여전히 시스템을 사용할 자격을 갖는 클라이언트들을 결정한다. TA는 단계 14.11에서 여전히 시스템을 사용할 자격을 가진 클라이언트들에 대한 새로운 시간 허용치들을 공개한다. 예를 들면, 클라이언트들은 인증 서비스를 사용하기 위한 요금을 지불할 필요가 있을 수 있으며 TA는 단지 그것들의 요금들을 지불한 클라이언트들에 대한 시간 허용치들만을 생성하며 공개할 수 있다.
클라이언트(2)에서 셋-업 프로세스의 예가 이제 도 15에 대하여 설명될 것이다. 프로세스는 클라이언트가 TA에 의해 제어된 인증 시스템을 사용하여, 인증 서버(3)가 인증 서버로서 동작하는 서버 또는 리소스를 액세스하려고 시도함으로써 트리거될 수 있다. 클라이언트는 단계 15.1에서 TA로부터 클라이언트 비밀을 수신한다. 그것은 또한 단계 15.2에서 TA로부터 사용할 타원 곡선의 파라미터들 및 해시 함수들의 세부사항들을 획득한다. 예를 들면, TA가 웹 사이트 상에서 이 정보를 공개한다면, 클라이언트는 그것이 서버에 인증할 필요가 있을 수 있는 다른 공개 정보와 함께, 상기 정보를 웹 사이트로부터 획득할 수 있다. 몇몇 예들에서, 클라이언트는 TA로부터 초기화 프로그램(24)을 제공받을 수 있으며 프로그램은 이미 정보를 포함할 수 있다. 초기화 프로그램은 클라이언트가 그것의 비밀을 수신하기 전에 클라이언트에 제공될 수 있다. 사용자 인터페이스를 사용하여, 클라이언트는 단계 15.3에서 PIN을 입력하도록 사용자에게 요청한다. TA로부터, 클라이언트의 브라우저에서 실행된, 초기화 프로그램은 PIN을 입력하기 위해 사용자에게 그래픽 사용자 인터페이스를 제공할 수 있다. 단계 15.4에서, 클라이언트는 토큰을 생성한다. 클라이언트는 곡선 상에서의 포인트(A)에 대해 클라이언트의 아이덴티티를 해싱하기 위해 특정된 해시 함수를 사용할 수 있다. 클라이언트는 그 후 곡선 상에서, 새로운 포인트(
Figure pct00459
)를 획득하기 위해 수신된 PIN 값과 포인트(A)를 곱한다. 그것은 토큰(
Figure pct00460
Figure pct00461
)을 획득하기 위해 클라이언트 비밀에 대응하는 포인트로부터 이 포인트를 감산한다. 그것은 그 후 이 토큰(10)을 그것의 아이덴티티와 함께 저장 장치에 저장한다.
서버(3)의 셋-업 프로세스의 예가 이제 설명될 것이다. 서버는 단계 16.1에서 등록하기 위해 요청을 TA(4)에 전송한다. 단계 16.2에서, 그것은 포인트(Q) 및 서버 비밀(sQ)에 대응하는 포인트의 좌표들을 수신하며 이것들을 안전하게 저장한다. 얼마 후에, 클라이언트가 인증하려고 시도할 때, 그것은 TA(4)에 클라이언트의 아이덴티티를 전송한다. 그것은 또한 그것으로 하여금 클라이언트를 인증하기 위해 프로토콜을 실행하도록 허용하기 위해, 그것이 요구할 수 있는 다른 정보와 함께, 곡선 파라미터들 및 해시 함수 세부사항들을 찾아볼 수 있다.
도 14, 도 15 및 도 16에 대하여 설명된 프로세스는 단계 예들이며 TA, 클라이언트 및 서버에서의 셋-업을 실행하기 위한 다른 프로세스들이 고려된다는 것이 인식될 것이다. 예를 들면, 어떤 시간 허용치들도 사용되지 않는다면, 시간 허용치들과 관련된 단계들은 실행되지 않을 것이다. 게다가, 도 14, 도 15 및 도 16의 단계들이 특정한 순서로 설명되었지만, 몇몇 단계들의 순서는 숙련자에 의해 인식될 바와 같이 변경될 수 있다.
은닉 채널
도 8의 방법이 에러 핸들링 프로세스로서 설명되었지만, 에러가 고의로 입력되었다면 유사한 방법이 또한 사용될 수 있다. 예를 들면, 예를 들면, 사용자의 은행 계좌 또는 사용자가 보호하기를 원하는 또 다른 리소스들을 액세스하기 위해, 다른 사람의 앞에서 PIN을 입력하도록 또 다른 사람에 의해 강요받은 사용자는 PIN에서 사전-합의된 에러를 입력할 수 있다. 인증 서버는 사용자가 그것의 PIN을 입력하기를 강요받았다는 표시로서 특정 에러를 인식할 것이며 연결을 거절할 것이다. 그것은 또한 사용자를 돕기 위해 추가 단계들을 자동으로 취할 수 있다. 시스템은 그러므로 은닉 채널을 제공한다.
은닉 채널은 또한 사용자가 PIN을 입력하도록 강제됨을 표시하는 정보보다는 다른 정보를 서버에 송신하기 위해 사용될 수 있다. 입력된 PIN 및 실제 PIN 사이에서의 차이는 클라이언트 및 서버 사이에서 실제로 전송되지 않고 서버 측 상에서 나타날 클라이언트로부터의, 에러가 아닌 메시지, 또는 메시지의 부분일 수 있다.
상기 설명된 시스템에서의 은닉 채널은 협-대역 식역하(subliminal) 채널로 고려될 수 있다. 그것은 작은 양의 정보가, 프로토콜의 정상 (실패한) 런과 같이(및 사실상 그로부터 구별 가능하지 않은) 외부 관찰자를 고려하면서, 클라이언트 및 서버(호환 가능한 비밀들이 발행된) 사이에서 식역하로 전달되도록 허용한다.
식역하 채널이 메시지들을 서버에 전달하기 위해 사용되는 몇몇 애플리케이션들에서, 여기에 설명된 프로토콜들 중 일부는 클라이언트를 인증할 뿐만 아니라 클라이언트가 사실상 정보를 송신하지 않고 정보가 서버에 나타나도록 허용하기 위해 사용될 수 있다. PIN이 단지 4 자리들을 포함한다고 다시 가정하면, 사용자가 4개 이상의 문자들을 요구하는 메시지 또는 데이터를 전달하기를 원한다면, 클라이언트는 TA로부터 다수의 상이한 비밀들을 획득하며 각각의 비밀에 대한 PIN을 설정할 수 있다.
정보를 전달하는 이러한 프로세스의 예가 이제 도 17, 도 18 및 도 19에 대하여 설명될 것이다. 프로세스는 클라이언트가 서버에 신용 카드 정보를 전송하지 않고 클라이언트(2)로부터의 신용 카드 정보가 서버(3)에 나타나게 하는 콘텍스트에서 설명될 것이다. 그러나, 방법은 메시지를 표현한, 숫자들의 임의의 스트링을, 사실상 클라이언트에 상기 스트링을 전송하지 않고 서버에 전달하기 위해 사용될 수 있다는 것이 인식될 것이다.
TA에서 실행된 단계들이 이제 설명될 것이다. 단계 17.1에서, TA(4)는 그것이 정보를 서버에 안전하게 전달하도록 허용하기 위해 등록하도록 클라이언트로부터 요청을 수신한다. 메시지는 그것이 서버에 전달하기를 원하는 신용 카드 정보를 포함할 수 있다. 단계 17.2에서, TA(4)는 수신된 신용 카드 정보와 연관된 다수의 클라이언트 비밀들을 발행하도록 진행한다. 클라이언트 비밀들은 신용 카드 번호의 각각의 4 자리들 더하기 CVC2 번호, 또는 카드의 뒷면 상에, 다른 보안 코드에 대한 하나의 클라이언트 비밀을 포함할 수 있다. 클라이언트 비밀은 또한 전체 신용 카드 번호에 대한 하나의 클라이언트 비밀을 포함할 수 있다. 결과적으로, 신용 카드 번호가 16 자리들 더하기 카드 뒷면 상에서의 3 자리들을 가진다면, TA는 6개의 클라이언트 비밀들을 발행할 필요가 있다. 클라이언트 비밀들은 또한 클라이언트가 신용 카드 정보를 전달하기를 원하는 서버의 서버 비밀을 도출하기 위해 사용된 마스터 비밀(s)을 사용하여 수립된다. 신용 카드 번호의 각각의 부분 더하기 보안 코드에 대한 식별 정보, 및 전체 신용 카드 번호에 대한 식별 정보가 선택되며 곡선 상에서의 포인트들에 대해 해싱될 수 있고 상기 포인트들은 그 후 비밀들을 획득하기 위해 상기 설명된 바와 같이 마스터 비밀과 곱하여진다. 식별 정보는 신용 카드 번호에서 정보를 드러내지 않은 임의의 정보일 수 있다. 식별 정보는 다양한 비밀들과 연관된 아이덴티티들로서 여기에서 나타내어질 것이다. 신용 카드 번호에 대한 클라이언트 비밀들이 어떻게 생성되는지에 대한 상기 설명은 단지 일 예이며 클라이언트 비밀들은 임의의 적절한 방식으로 수립될 수 있다는 것이 인식될 것이다. 클라이언트가 또한 신용 카드의 만료 날짜 및 다른 정보를 송신할 필요가 있다면, 부가적인 비밀들이 요구될 수 있다.
단계 17.3에서, TA(4)는 또한 PIN 번호들을 선택하는 사용자 대신에, 클라이언트 비밀들에 대한 PIN 번호들을 사전 선택한다. PIN 번호들 중 일부는 각각 카드 상에 나타나는 4개의 숫자들에 순서대로 대응할 수 있다. 결과적으로, 제1 클라이언트 비밀은 PIN 번호로서 선택된 카드 번호의 첫 4 자리들을 가질 수 있고, 제2 클라이언트 비밀은 PIN 번호로서 선택된 카드 번호의 두 번째 4 자리들 등을 가질 수 있다. 제5 클라이언트 비밀은 PIN 번호로서 선택된 널에 대해 0 및 CVC2 번호를 가진다. 더욱이, 제6 클라이언트 비밀은 카드 번호인 자리들의 번호 더하기 PIN으로서 선택된 뒷면 상에서의 CVC2 번호의 자리들의 번호를 가진다. 결과적으로, 그것이 16 자리 신용 카드 번호 더하기 카드 뒷면 상에서의 3 자리 CVC2 번호이면, PIN은 '1900'일 것이다.
예를 들면, 6456 6565 7878 9898의 카드 번호 더하기 767의 CVC2에 대해, 제1 PIN은 6456으로서 선택되고, 제2 PIN은 6565로서 선택되고, 제3 핀은 7878으로서 선택되며 제4 핀은 9898로서 선택된다. 제5 PIN은 7670으로서 선택된다. 게다가, 제6 PIN은 상기 설명된 바와 같이 '1900'으로서 선택될 수 있다.
PIN들은 그 후 6개의 토큰들을 생성하기 위해 비밀들로부터 추출되며 토큰들은 단계 17.4에서 그에 응답하여 클라이언트에 전송된다. 다양한 비밀들과 연관된 아이덴티티들이 또한 클라이언트에 전송된다. 그것들은 단계 17.4에서 그것에 응답하여 포함될 수 있다. 토큰들 및 아이덴티티들은 클라이언트에서 소프트웨어 지갑으로 전송될 수 있다. 예를 들면, 소프트웨어 지갑은 브라우저의 저장 장치에 위치될 수 있다. 대안적으로, 비밀들, 아이덴티티들, 및 PIN들은 클라이언트에 전송되며 클라이언트는 자체가 PIN들을 생성할 수 있다. TA는 또한 클라이언트가 그것이 이미 그렇게 하지 않았다면 신용 카드 정보를 전송하고 싶어하는 서버에 서버 비밀을 발행할 수 있다.
클라이언트 측에서 실행된 단계들이 이제 도 18에 대하여 설명될 것이다. 단계 18.1에서, 클라이언트(2)는 신용 카드 정보를 가진 메시지를 TA(4)에 전송한다. 단계 18.2에서, 그것은 TA(4)로부터 다시 다양한 클라이언트 비밀들과 연관된 아이덴티티들 및 6개의 클라이언트 비밀들에 대한 토큰들을 가진 응답을 수신한다. 대안적으로, 그것은 6개의 클라이언트 비밀들 및 연관된 PIN들을 수신할 수 있으며 토큰들 자체를 생성하기 위해 비밀들로부터 PIN들을 추출할 수 있다. 얼마 후에, 클라이언트는 은닉 채널에서의 비밀 정보를 서버(3)에 전달하기 위한 프로그램을 시작한다. 이 프로그램은 인증 프로그램(25)의 일부를 형성할 수 있거나 또는 메모리(22)에 저장된 또 다른 프로그램일 수 있다. 그것은 서버(3)로부터 웹 인터페이스를 통해 클라이언트에 제공될 수 있다.
단계 18.3에서, 클라이언트는 그것이 은닉 채널에서 정보를 서버에 전달하는 것을 시작할 것임을 표시하는 메시지를 서버에 전송한다. 단계 18.4에서, 클라이언트는 파라미터(P)를 전달될 전체 메시지를 위해 요구될 PIN들의 수와 동일하게 설정한다. 파라미터(P)는 클라이언트에서 사용된 PIN 및 실제 PIN 사이에서의 차이가 몇 번 서버에서 결정될 필요가 있을지를 제어할 것이다. 상기 언급된 신용 카드 예에서, 6개의 별개의 클라이언트 비밀들이 있으므로, P는 6으로 설정될 것이다. 클라이언트는 또한 카운터(p)를 0으로 설정한다. 단계 18.5에서, 클라이언트는 메시지의 제1 부분을 전달하려고 준비하기 위해 카운터(p)의 값을 1로 증가시킨다. 그것은 그 후 단계 18.5에서 서버에 위임을 송신하며 서버로부터 챌린지를 수신한다. 클라이언트는 그 후 단계 18.6에서 메시지의 제1 부분과 연관된 저장된 토큰을 검색한다. 단계 18.7에서, 그것은 "비밀"을 생성하며 V를 발생시키기 위해 "부정확한" PIN 추측("0000")을 사용한다. 위임 및 챌린지의 교환 및 V의 산출은 상기 표 6, 표 8, 표 9, 표 10 또는 표 11의 프로토콜들에 대하여 설명된 바와 같이 실행될 수 있다. 예를 들면, 클라이언트는 도 6의 단계 6.2 내지 단계 6.6 또는 다른 프로토콜들을 위해 설명된 대응하는 단계들을 사용할 수 있다. 사용자로부터 PIN을 수신하는 대신에, 클라이언트는 그 후 V를 생성하기 위해 사용되는 "더미 비밀"을 생성하기 위해 PIN("0000")을 사용한다.
"비밀"은 비밀을 생성하기 위해 사용된 PIN이 비밀을 PIN 및 토큰으로 분리하기 위해 TA에 의해 원래 입력된 PIN이 아니므로 메시지의 부분과 연관된 아이덴티티에 대한 TA에 의해 발행된 실제 클라이언트 비밀이 아닐 것이다.
클라이언트는 그 후 단계 18.8에서 p가 파라미터(P)보다 작은지를 확인한다. 그것이 P보다 작다면, 단계 18.5 내지 단계 18.8은 메시지의 제2 부분과 연관된 토큰에 대해 반복된다. 단계 18.5 내지 단계 18.8은 사실상 메시지의 임의의 부분들을 전송하지 않고 전체 메시지가 서버에 전달될 때까지 반복된다. 예로서 표 6의 프로토콜을 사용하면, 단계 18.5가 반복될 때마다, p는 1만큼 증가되며 메시지의 다음 부분에 대한 아이덴티티는 새로운 U를 생성하기 위해 사용되고 아이덴티티 및 새로운 U는 서버에 송신된다. 게다가, 단계 18.6이 반복될 때마다, 메시지의 새로운 부분과 연관된 토큰은 서버에 전송되는 새로운 V의 좌표들을 생성하기 위해 "부정확한" PIN 추측("0000")과 조합된다. 단계 8에서 카운터(p)가 파라미터(P)와 같다고 결정될 때, 프로그램은 종료된다.
서버 측 상에서의 단계들이 이제 도 19에 대하여 설명될 것이다. 서버는 클라이언트가 은닉 채널에서 정보를 전달하기 시작할 것임을 표시하는 메시지를 단계 19.1에서 수신한다. 서버는 단계 19.2에서 위임을 수신하며 챌린지를 생성 및 송신한다. 단계 19.3에서, 포인트(V)의 좌표들을 수신하며, 그것은 V를 도출하기 위해 클라이언트에서 사용된 PIN 및 우선 토큰을 생성하기 위해 사용되었던 PIN 사이에서의 차이를 결정한다. 서버는 그것이 TA로부터 그 자신의 비밀(sQ)이 발생된 이래 이를 행할 수 있다. 서버는 위임 및 챌린지의 교환 및 상기 표 6, 표 8, 표 9, 표 10 또는 표 11의 프로토콜들에 대하여 설명된 바와 같이 입력으로서 V를 취하는 페어링 산출을 실행할 수 있다. 예를 들면, 클라이언트는 도 7의 단계 7.2 내지 단계 7.5 또는 다른 프로토콜들에 대해 설명된 대응하는 단계들을 사용할 수 있다. 서버는
Figure pct00462
에 대해 획득된 값으로부터
Figure pct00463
의 값 및 시간 허용치들이 없는 프로토콜이 사용될 때 관계
Figure pct00464
또는 시간 허용치들이 사용될 때 관계
Figure pct00465
를 결정한다.
클라이언트는 그 후 단계 19.4에서 이러한 PIN 차이를 저장하며 단계 19.5에서 클라이언트가 임의의 보다 많은 정보를 전송할지를 확인한다. 클라이언트가 보다 많은 정보를 전송한다면, 서버는 그것이 클라이언트가 전송하기를 원하는 모든 정보를 복구할 때까지 단계 19.2 내지 단계 19.4를 반복한다. 몇몇 구현들에서, 클라이언트는 서버가, 그것이 PIN 차이 결정 프로세스를 몇 번 반복할 필요가 있을지를 이미 알고 있도록 서버에 P의 값을 또한 전송할 수 있다. 서버가 전체 메시지가 수신되었음을 결정할 때, 그것은 그 후 메시지를 프로세싱하기 위해 진행한다. 결과적으로, 상기 신용 카드 예를 사용하여, 서버는 그것이 64566565787898987670 및 또한 마지막 비밀과 연관된 정보를 수신할 때까지 프로세스를 통해 순환한다. 전체 신용 카드 번호에 대응하는 마지막 비밀과 연관된, PIN 차이 결정 프로세스의 마지막 반복에서 획득된 정보는 클라이언트 비밀들 상에서 PIN 에러들의 정도를 노출시킴으로써, 서버가 올바른 숫자들을 조립하였음을 보장하기 위해 사용된다.
서버는 예를 들면 토큰에서 신용 카드 번호를, 보안 채널을 통해, 사실상 임의의 신용 카드 정보를 전송하지 않고 클라이언트가 신용 카드 정보를 사용하여 상기 서버와의 트랜잭션을 실행하도록 허용하기 위해 또 다른 서버로 포워딩할 수 있다. 다른 서버는 예를 들면, 은행에 의해 동작된 서버일 수 있다.
몇몇 예들에서, 전체 신용 카드 번호에 기초한 비밀은 신용 카드 번호 더하기 보안 코드의 해시에 기초할 수 있다. 서버는 그 후 신용 카드 더하기 보안 코드의 해시 "h(6456656578789898767)에 대하여, PIN 차이 결정 프로세스를 사용하여 및 이 경우(19)에 얼마나 많은 숫자들이 조립된 정보로부터 골라 모여지기로 되어 있는지를 확인하기 위해 상기 비밀에 대한 PIN 에러의 정도를 사용하여, 그것이 조립한 것을 확인할 수 있다.
어떤 신용 카드 번호들도 클라이언트 상에 저장될 필요가 없음이 이해될 것이다. 어떤 신용 카드 번호들도 서버에 송신되지 않는다. 서버는 신용 카드 번호들을 저장할 필요가 없고, 그것은 단지 그것이 결제하도록 지시될 때, PIN 에러의 정도로부터 신용 카드 번호 및 CVC2 번호를 조립함으로써, 그것들을 투명하게 생성한다. 클라이언트 비밀들은 토큰화 시스템으로서 동작하며, 이것은 최종 사용자 소프트웨어 지갑 상에, 또는 그것들이 결제하도록 지불 프로세서에 지시하기를 요구할 때 그것들의 시스템에서 상인에 의해 저장될 수 있다. 게다가, CVC2 코드가 상기 언급되었지만, 서버 측 상에서 조립될 정보는, 부가적으로 또는 대안적으로, 다른 보안 코드 정보, 만료 날짜 정보 및/또는 다른 정보를 포함할 수 있다는 것이 이해될 것이다.
도 17, 도 18 및 도 19에 대하여 설명된 프로세스들은 단지 서버에서 비밀 클라이언트 정보를 복구하기 위한 TA, 클라이언트 및 서버에서의 프로세스들의 예임이 인식될 것이다. 다른 구현들이 고려된다. 예를 들면, 몇몇 예들에서, 클라이언트 및 서버는 단지 프로세스의 시작에서 위임 및 챌린지를 교환할 수 있다. 클라이언트는 동일한 위임에서 메시지의 부분들 모두의 ID를 전송할 수 있거나 또는 동일한 ID가 모든 부분들을 위해 사용될 수 있다. 동일한 ID가 메시지의 모든 부분들을 위해 사용된다면, 복수의 토큰들 및 PIN들은 동일한 비밀로부터 추출될 필요가 있을 것이거나 또는 TA는 다수의 클라이언트 비밀들을 생성하기 위해 다수의 마스터 비밀들을 사용할 것이다.
상기 설명된 바와 같이 은닉 채널의 사용들은 다양하다. 예를 들면, M-핀 에러 결정 프로세스는 상기 설명된 바와 같이, 서버가 구매를 실행하기 위해 요구된 만료 날짜 및 다른 정보와 함께 신용 카드 번호를 복구하도록 허용하기 위해 사용될 수 있다. 대안적으로, 클라이언트가 통신 매체에 걸쳐 송신하고 싶어하지 않는 패스워드, 은행 계정 세부사항들 또는 다른 정보를 전달하기 위해 사용될 수 있다.
여기에 설명된 프로토콜들은 컴퓨팅 시스템 또는 리소스에 클라이언트 또는 클라이언트들을 인증하기를 원하는 임의의 사람 또는 조직에 의해 사용될 수 있다. 예를 들면, 클라이언트는 서버에 비밀 정보를 송신하기를 원할 수 있으며 서버는 클라이언트가 그가 그것이라 말한 사람이며 클라이언트가 그것이 전송한 정보를 암호화하기를 원한다는 것을 수립하기를 원할 수 있다. 프로토콜들은 또한 회사 또는 조직 내에서 사용될 수 있다. 예를 들면, 조직은 그 자신의 TA 및 다수의 인증 서버들을 셋 업할 수 있으며 ID들을 조직의 멤버들에 발행한다. 그와 같이 조직 내에서의 모든 통신은 안전하게 송신될 수 있다.
본 발명의 특정 예들 및 실시예들이 설명되었지만, 본 발명의 범위는 첨부된 청구항들에 의해 정의되며 설명된 예들 및 실시예들에 제한되지 않는다. 본 발명은 그러므로 이 기술분야의 숙련자들에 의해 이해될 바와 같이, 다른 방식들로 구현될 수 있으며 다수의 수정들 및 대안적인 배열들이 고려될 수 있다.
알려진 프로토콜들, 그것들의 문제점들 및 보안 프로토콜의 원하는 특징들이 단지 콘텍스트를 제공하기 위해 설명된다는 것이 인식될 것이다. 중요한, 주요한 또는 원하는 특징들로서 설명된 특징들 중 일부는 단지 몇몇 애플리케이션들을 위한 중요한, 주요한 및 원하는 특징들일 수 있으며 본 발명의 모든 실시예들에 존재하지 않을 수 있다. 상기 언급된 바와 같이, 본 발명의 실시예들은 상기 설명된 10개의 보안 특징들 중 모두 또는 특정 수를 충족시키는 프로토콜들에 제한되지 않는다.
특정 프로토콜들이 설명에서 표들에 도시되었지만, 프로토콜들에 대한 변화들 및 수정들이 고려된다. 특정 예들로서, 입력으로서 V를 취하는 페어링을 실행하는 인증 서버 대신에, 클라이언트는 별개의 서버로서 이러한 페어링을 오프-로딩할 수 있다. 게다가, 서버는 페어링 산출에 대한 입력으로서 V를 직접 취하지 않으며 V에 기초한 페어링 산출로의 입력을 도출할 수 있다. 예를 들면, 그것은 입력으로서 그것을 사용하기 전에 값으로 V를 곱할 수 있다. 구현에 의존하여, 그것은 그 후 또한 쌍선형성을 사용하여, 서버가 여전히 클라이언트를 인증할 수 있도록 동일한 값으로 서버 비밀에 기초한 페어링에 대한 입력을 곱하도록 요구할 수 있다.
예들 중 일부에 R-ate 페어링이 사용될 수 있다는 것이 설명되었지만, 임의의 유형의 적절한 페어링이 사용될 수 있다는 것이 인식될 것이다. 예를 들면, Weil 페어링, Tate 페어링 및 ate 페어링은 R-ate 페어링 대신에 사용될 수 있는 다른 페어링들이다.
클라이언트 비밀이 토큰 및 PIN으로 분리되는 것으로 설명되었지만, 본 발명은 2-인자 인증에 제한되지 않는다. 상기 언급된 바와 같이, 클라이언트 비밀은 임의의 수의 인자들로 분리될 수 있으며 저장되지 않은 인자는 PIN에 제한되지 않는다. PIN은 예를 들면, 지문, 얼굴 인식 데이터 또는 홍채 스캔과 같은, 생체 인식으로 또는 소프트 생체 인식으로 교체될 수 있다. 소프트 생체 인식은 생체 인식들을 표현한 데이터를 감소시키기 위해 카테고리들로 카테고리화된 생체 인식 데이터에 의해 제공될 수 있다. 예를 들면, 모든 지문들이 특성들에 기초하여 10000개의 카테고리들로 카테고리화될 수 있으며 소프트 생체 인식 데이터는 사용자의 지문의 카테고리를 표시한다. 몇몇 예들에서, 비밀은 토큰, PIN, 및 소프트 생체 인식으로 분리될 수 있다. 몇몇 예들에서, PIN 및/또는 토큰이 교체될 수 있거나, 또는 비밀의 추가 인자들은 사용자의 음성 데이터 또는 지오로케이션을 포함할 수 있다.
클라이언트 및 서버가 인터넷과 같은 데이터 네트워크를 통해 통신할 수 있다고 설명되었지만, 임의의 통신 매체가 고려된다. 예를 들면, 여기에 설명된 예들에서의 프로토콜들은 무선 통신 기술 그러나 또는 비-무선 통신 기술을 사용하여 정보를 전송하기 위해 사용될 수 있다. 몇 개의 특정 예들로서, 프로토콜들은 예를 들면 3G, 4G, 블루투스, 적외선 통신 또는 광 섬유들을 사용하여 정보를 전송하기 위해 사용될 수 있다. 프로토콜들은 또한 방송, 디지털 저장 미디어 또는 심지어 인쇄된 정보를 포함하는 통신 방법들에서 사용될 수 있다.
서버에 비밀(sQ)이 발행될 것이라고 설명되었지만, 예를 들면 표 5에서의 프로토콜에서의 경우인 것처럼, Q는 대안적으로 서버에 대한 아이덴티티로부터 도출될 수 있으며, 여기에서 Q
Figure pct00466
의 고정 발생기이다.
게다가, 클라이언트는 비밀로부터 사용자로부터 수신된 PIN을 추출하며 남아있는 토큰을 저장한다고 설명되었지만, 클라이언트는 몇몇 상황들에서, 그것이 토큰으로부터 획득된 값을 추출하기 전에 수신된 PIN에 대한 몇몇 프로세싱을 실행할 수 있다. 예를 들면, 그것은 PIN에 특정한 수를 곱하거나 또는 더할 수 있다. 유사하게, 클라이언트가 PIN 추측을 수신할 때, 클라이언트는 그것이 원래 PIN을 갖고 했던 것과 PIN 추측의 동일한 변형을 실행하며 그 후 비밀을 복구하기 위해 변형된 PIN을 사용한다.
서버가 그것이 키 합의를 실행하기 전에 인증을 실행하는 M-핀 및 M-핀 풀에 대하여 설명되었지만, 클라이언트 및 서버는 키 합의로 직접 진행할 수 있다. 예를 들면, 이러한 프로토콜이 표 11에 도시된다. 표 11에서, 인증은 키들이 수립된 후 발생한다. 그러나, 몇몇 애플리케이션들에서 인증은 필수적이지 않을 수 있거나 또는 인증은 대안적인 프로세스를 사용하여 실행되었을 수 있다. 다시 말해서, 서버는 g의 값을 산출하고 표 8 및 표 10의 프로토콜들에서 1과 같은지를 확인하지 않을 수 있지만, 대신에 V에 기초하여 페어링의 결과로부터 r의 값을 산출하며 그것의 키를 도출하기 위해 클라이언트에 대한 r의 값을 클라이언트로 리턴할 것이다. 결과적으로, 표 8, 표 9 및 표 10에서, g는 산출되며 1에 비교되지 않지만 프로토콜의 다른 단계들이 동일한 채로 있을 수 있다.
게다가, 신뢰 기관이 시스템의 중요한 부분이라고 설명되었지만, 보안 요건들이 더 낮으며, 신뢰 기관이 사용되지 않는, 애플리케이션들이 있을 수 있다는 것이 인식될 것이다.
참조에 의한 통합
여기에 인용된 모든 특허들, 공개된 특허 출원들, 및 다른 참증들의 전체 콘텐트들은 여기에서 전체적으로 참조로서 명확하게 통합된다.
참증들
참증들 A의 리스트
1. IEEE P1363 홈 페이지. http://grouper.ieee.org/groups/1363/.
2. P.S.L.M. Barreto 및 M. Naehrig. 소수 위수의 페어링-적합 타원 곡선들. 암호학에서의 선택된 영역들 - SAC 2005에서, 컴퓨터 과학에서의 강의록의 볼륨 3897, 페이지들 319-331. Springer-Verlag, 2006.
3. S. Blake-Wilson, D. Johnson, 및 A. Menezes. 키 합의 프로토콜들 및 그것들의 보안 분석. 암호 기법 및 코딩, 1355:30-45, 1997.
4. D. Boneh 및 M. Franklin. Weil 페어링으로부터의 아이덴티티-기반 암호화. 컴퓨팅의 SIAM 저널, 32(3):586-615, 2003.
5. L. Chen 및 C. Kudla. 페어링들로부터의 아이덴티티 기반 키 합의 프로토콜들 제16 회 IEEE 컴퓨터 보안 재단 워크샵의 회의록에서, 페이지들 219-233. IEEE 컴퓨터 학회, 2003.
6. D. Fiore 및 R. Gennaro. 디피-헬만 프로토콜 아이덴티티-기반을 만드는 것. 암호학에서의 토픽들 - CT-RSA 2010에서, 컴퓨터 과학에서의 강의록의 볼륨 5985, 페이지들 165-178. Springer, 2010.
7. D. Freeman, M. Scott, 및 E. Teske. 페어링 적합 타원 곡선들의 분류학. 암호 기법의 저널, 23:224-280, 2010.
8. L. Fuentes-Castaneda, E. Knapp, 및
Figure pct00467
.
Figure pct00468
에 대한 보다 빠른 해싱. 암호 기법에서의 선택된 영역들 - SAC 2011에서, 컴퓨터 과학에서의 강의록의 볼륨 7118, 페이지들 412-430. Springer-Verlag, 2011.
9. S. Galbraith, K. Paterson, 및 N. Smart. 암호 사용자들에 대한 페어링들. 이산 응용 수학, 156:3113-3121, 2008.
10. S. Galbraith 및 M. Scott. 동형 사상들을 사용한 페어링-적합 그룹들에서의 지수화. 페어링 2008에서, 컴퓨터 과학에서의 강의록의 볼륨 5209, 페이지들 211-224. Springer-Verlag, 2008.
11. R.P. Gallant, R.J. Lambert, 및 S.A. Vanstone. 효율적 자기 준동형들을 가진 타원 곡선들 상에서의 보다 빠른 포인트 곱셈. 암호학에서의 전진들- 크립토 2001에서, 컴퓨터 과학에서의 강의록의 볼륨 2139, 페이지들 190-200. Springer-Verlag, 2001.
12. F. Hao 및 D. Clarke. 다-인자 인증 키 교환 프로토콜의 보안 분석. 암호학 ePrint 아카이브, 보고서 2012/039, 2012. http://eprint.iacr.org/2012/039.
13. H. S. Kim, S. W. Lee, 및 K. Y. Yoo. 스마트 카드들 및 지문들을 사용한 ID-기반 패스워드 인증 기법. ACM 운영 시스템 검토, 37(4):32-41, 2003.
14. I. Liao, C. Lee, 및 M. Hwang. 불안정한 네트워크들에 대한 패스워드 인증 기법. 컴퓨터 및 시스템 과학들의 저널, 72:727-740, 2006.
15. R. Martinez-Pelaez 및 F. Rico-Novella. 스마트 카드들을 사용한 Sood 외의 인증 기법의 암호 해독. 암호학 ePrint 아카이브, 보고서 2012/386, 2012. http://eprint.iacr.org/2012/386.
16. D. Pointcheval 및 S. Zimmer. 다-인자 인증 키 교환. 응용 암호 기법 및 네트워크 보안에 대한 제6 회 국제 컨퍼런스의 ACNS'08 회의록에서, 페이지들 277-295. Springer-Verlag, 2008.
17. R. Sakai, K. Ohgishi, 및 M. Kasahara. 페어링에 기초한 암호법들. 2000년, 일본, 오키나와, 암호 기법 및 정보 보안에 대한 2000 심포지엄.
18. C. P. Schnorr. 스마트 카드들에 대한 효율적인 식별 및 서명들. Crypto'89 : 암호학에서의 전진들에서, 컴퓨터 과학에서의 강의록의 볼륨 435, 페이지들 239-252, 1989.
19. M. Scott. 간단한 토큰 및 PIN 번호를 가진 인증된 ID-기반 키 교환 및 원격 로그-인 암호학 ePrint 아카이브, 보고서 2002/164, 2002. http://eprint.iacr.org/2002/164.
20. M. Scott. 스마트 카드들 및 지문들을 사용한 ID-기반 패스워드 인증 기법의 암호 해독. 암호학 ePrint 아카이브, 보고서 2004/017, 2004. http://eprint.iacr.org/2004/017.
21. M. Scott. 페어링-기반 프로토콜들의 효율적인 구현에 대해. 암호 기법 및 코딩 2011에서, 컴퓨터 과학에서의 강의록의 볼륨 7089, 페이지들 296-308. Springer-Verlag, 2011.
22. A. Shamir. 아이덴티티-기반 암호법들 및 서명 기법들. 암호학에서의 전진들: CRYPTO 84의 회의록, 컴퓨터 과학에서의 강의록의 볼륨 196, 페이지들 47-53, 1984.
23. S. Sood, A. Sarje, 및 K. Singh. 스마트 카드들을 사용한 Liao 외의 인증 기법의 개선. 컴퓨터 애플리케이션들의 국제 저널, 1(8):16-23, 2010.
24. D. Stebila, P. Poornaprajna, 및 S. Chang. 다-인자 패스워드-인증 키 교환. 오스트레일리아 정보 보안 컨퍼런스에서 , CPRIT 볼륨 105, 페이지들 56-66. 오스트레일리아 컴퓨터 학회, 2010.
25. C. Tsai, C. Lee, 및 M. Hwang. 패스워드 인증 기법들: 현재 상태 및 키 이슈들. 네트워크 보안의 국제 저널, 3(2):101-115, 2006.
26. D. Wang, C. Ma, 및 P. Wu. 비-변형 억제 스마트 카드들을 가진 안전한 패스워드-기반 원격 사용자 인증 기법. 암호학 ePrint 아카이브, 보고서 2012/227, 2012. http://eprint.iacr.org/2012/227.
27. Shengbao Wang, Zhenfu Cao, Zhaohui Cheng, 및 Kim-Kwang Raymond Choo. 에스크로 모드에서 완전한 순방향 보안 아이덴티티-기반 인증 키 합의 프로토콜. 중국 시리즈 F 정보 과학들에서의 과학, 52(8):1358-1370, 2009.
28. Y.Wang. 효율적인 아이덴티티-기반 및 인증 키 합의 프로토콜. 암호학 ePrint 아카이브, 보고서 2005/108, 2005. http://eprint.iacr.org/2005/108.
29. Y. Wang. 오프-라인 사전 공격들에 대한 패스워드 보호 스마트 카드 및 메모리 스틱 인증. 암호학 ePrint 아카이브, 보고서 2012/120, 2012. http://eprint.iacr.org/2012/120.
30. T. Wu. 안전한 원격 패스워드 프로토콜. 1998 인터넷 협회 네트워크 및 분산 시스템 보안 심포지언의 회의록에서, 페이지들 97-111, 1998.
31. Guomin Yang, Duncan S. Wong, HuaxiongWang, 및 Xiaotie Deng. 2-인자 인증 기법의 형식 분석 및 체계적 구성. 정보 및 통신 보안에 대한 제 8 회 국제 컨퍼런스의 회의록에서, ICICS'06, 페이지들 82-91, Springer-Verlag, 2006.
32. E. Yoon 및 K. Yoo. 단방향 해시 함수 및 디피-헬만 키 교환에 기초한 새로운 인증 기법. 암호학 및 네트워크 보안에 대한 제4 국제 컨퍼런스의 CANS'05 회의록에서, 컴퓨터 과학에서의 강의록의 볼륨 3810, 페이지들 147-160. Springer-Verlag, 2005.
참증들 B의 리스트
1. D. F. Aranha, K. Karabina, P. Longa, C. H. Gebotys, 및 J. Lopez. 보통의 곡선들에 대한 페어링들을 계산하기 위한 보다 빠른 명시적 공식들. 암호학 ePrint 아카이브, 보고서 2010/526, 2010. http://eprint.iacr.org/2010/526.
2. L. Ballard, M. Green, B. de Medeiros, 및 F. Montrose. 키워드-탐색 가능한 암호화를 통한 상관-억제 저장 장치. 암호학 ePrint 아카이브, 보고서 2005/417, 2005. http://eprint.iacr.org/2005/417.
3. F. Bao, R. Deng, 및 H. Zhu. 디피-헬만 문제점의 변화들. ICICS 2003에서, 컴퓨터 과학에서의 강의록의 볼륨 2836, 페이지들 301-312. Springer-Verlag, 2003.
4. P.S.L.M. Barreto 및 M. Naehrig. 소수 위수의 페어링-적합 타원 곡선들. 암호학에서의 선택된 영역들 - SAC 2005에서, 컴퓨터 과학에서의 강의록의 볼륨 3897, 페이지들 319-331. Springer-Verlag, 2006.
5. M. Bellare, C. Namprempre, 및 G. Neven. 아이덴티티-기반 식별 및 서명 기법들에 대한 보안 증명들. Eurocrypt 2004에서, 컴퓨터 과학에서의 강의록의 볼륨 3027, 페이지들 268-286. Springer-Verlag, 2004.
6. D. Boneh 및 M. Franklin. Weil 페어링으로부터의 아이덴티티-기반 암호화. 컴퓨팅의 SIAM 저널, 32(3):586-615, 2003.
7. D. Boneh, B. Lynn, 및 H. Shacham. Weil 페어링으로부터의 쇼트 서명들. Asiacrypt 2001에서, 컴퓨터 과학에서의 강의록의 볼륨 2248, 페이지들 514-532. Springer-Verlag, 2001.
8. J. Cha 및 J. Cheon. 갭 디피-헬만 그룹들로부터의 아이덴티티-기반 서명. PKC 2003에서, 컴퓨터 과학에서의 강의록의 볼륨 2567, 페이지들 18-30. Springer-Verlag, 2003.
9. B. Chevalier-Mames, J-S. Coron, N. McCullagh, D. Naccache, 및 M. Scott. 타원 곡선 페어링의 안전한 위임. 암호학 ePrint 아카이브, 보고서 2005/150, 2005. http://eprint.iacr.org/2005/150.
10. A. Fiat 및 A. Shamir. 스스로를 증명하는 방법: 식별 및 서명 문제점들에 대한 실질적인 해법들. Crypto 1986에서, 컴퓨터 과학에서의 강의록의 볼륨 263, 페이지들 186-194. Springer-Verlag, 1987.
11. D. Freeman, M. Scott, 및 E. Teske. 페어링 적합 타원 곡선들의 분류학. 암호 기법의 저널, 23:224-280, 2010.
12. S. Galbraith, K. Paterson, 및 N. Smart. 암호 사용자들에 대한 페어링들. 이산 응용 수학, 156:3113-3121, 2008.
13. K. Kurosawa 및 S-H. Heng. 디지털 서명에서 ID-기반 식별/서명으로. PKC 2004에서, 컴퓨터 과학에서의 강의록의 볼륨 2947, 페이지들 125-143. Springer-Verlag, 2004.
14. C. H. Lim 및 P. J. Lee. 소수 위수 서브그룹을 사용한 이산 로그-기반 기법들에 대한 키 복구 공격. Crypto 1994에서, 컴퓨터 과학에서의 강의록의 볼륨 1294, 페이지들 249-263. Springer-Verlag, 1994.
15. J. Pollard. 인덱스 계산 mod p.를 위한 Monte carlo 방법들. 계산 수학, 32, 1978.
16. M. Scott. 간단한 토큰 및 PIN 번호를 가진 인증된 ID-기반 키 교환 및 원격 로그-인. 암호학 ePrint 아카이브, 보고서 2002/164, 2002. http://eprint.iacr.org/2002/164.
17. M. Scott. tate 페어링을 계산하는 것. CT-RSA 2005에서, 컴퓨터 과학에서의 강의록의 볼륨 3376, 페이지들 293-304. Springer-Verlag, 2005.
18. M. Scott. 소프트웨어-전용 2-인자 인증으로 사용자명/패스워드를 대체하는 것. 암호학 ePrint 아카이브, 보고서 2012/148, 2012. http://eprint.iacr.org/2012/148.
19. M. Scott 및 P. S. L. M. Barreto. 압축 페어링들. 암호학 ePrint 아카이브, 보고서 2004/032, 2004. http://eprint.iacr.org/2004/032.
20. N. Smart 및 F. Vercauteren. 효율적인 페어링-기반 시스템들에서의 계산 가능한 동형 사상들에 대해. 이산 응용 수학, 155:538-547, 2007.
21. M. Stam 및 A. K. Lenstra. XTR의 속도를 높이는 것. Asiacrypt 2001에서, 컴퓨터 과학에서의 강의록의 볼륨 2248, 페이지들 125-143. Springer-Verlag, 2001.
22. Y. Tseng 및 T. Tsai. 공개 채널을 가진 효율적인 철회 가능한 ID-기반 암호화. 컴퓨터 저널, 55(4):475-486, 2012.
23. Y.Wang. 효율적인 아이덴티티-기반 및 인증 키 합의 프로토콜. 암호학 ePrint 아카이브, 보고서 2005/108, 2005. http://eprint.iacr.org/2005/108.
24. X. Yi. Weil 페어링으로부터의 아이덴티티-기반 서명 기법. IEEE 통신 레터들, 7:76-78, 2003.
참증들 C의 리스트
1. R. Gallant, R. Lambert, 및 S. Vanstone. 효율적인 자기 준동형을 가진 타원 곡선들 상에서의 보다 빠른 포인트 곱셈. Crypto 2001에서, 컴퓨터 과학에서의 강의록의 볼륨 2139, 페이지들 190-200. Springer-Verlag, 2001
2. R. Sakai 및 M. Kasahara. 타원 곡선 상에서 페어링을 가진 ID 기반 암호법들. 암호학 ePrint 아카이브, 보고서 2003/054, 2003. http://eprint.iacr.org/2003/054

Claims (77)

  1. 전체 비밀을 제2 엔티티에 전송하지 않고 그것이 전체 비밀을 소유한다는 것을 상기 제2 엔티티에 증명함으로써 상기 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법으로서,
    상기 제1 엔티티에서 사용자로부터 입력을 수신하는 단계로서, 상기 전체 비밀은 적어도 제1 인자 및 제2 인자로 나뉘어지며 상기 입력은 상기 비밀의 상기 제2 인자에 관한 것인, 상기 사용자로부터 입력을 수신하는 단계;
    상기 제1 엔티티에서 적어도 상기 제1 인자로부터의 상기 전체 비밀 및 상기 입력을 재구성하는 단계; 및
    재구성된 상기 전체 비밀을 사용하여 상기 제1 엔티티에서 산출을 실행하며 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 단계로서, 상기 결과들은 상기 제2 엔티티에서 페어링 산출에 입력을 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 단계를 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  2. 청구항 1에 있어서, 상기 전체 비밀은 상기 제1 및 제2 인자를 포함하는 두 개의 인자들로 분할되었으며, 상기 입력은 상기 제2 인자의 추측을 포함하고 상기 전체 비밀은 상기 제1 인자 및 상기 입력으로부터 재구성되는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  3. 청구항 2에 있어서, 상기 비밀은 대수 곡선 상에서의 포인트에 대응하며 상기 페어링 산출은 상기 대수 곡선 상에서의 페어링을 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  4. 청구항 3에 있어서, 상기 제1 엔티티에서, 상기 제2 엔티티로부터 챌린지(challenge)를 수신하는 단계를 더 포함하며, 복구된 상기 비밀을 사용하는 상기 산출은 또한 상기 제2 엔티티에 전송될 상기 결과들을 획득하기 위해 상기 챌린지를 사용하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  5. 청구항 3 또는 청구항 4에 있어서, 상기 제1 엔티티에서의 상기 산출은, 상기 대수 곡선 상에서, 상기 대수 곡선 상에서의 또 다른 포인트를 획득하기 위해 상기 제1 엔티티에서, 상기 비밀에 대응하는 포인트, 또는 적어도 상기 비밀에 대응하는 포인트로부터 도출된 포인트를 곱하는 단계를 더 포함하며, 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 단계는 상기 다른 포인트의 좌표들을 전송하는 단계를 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  6. 청구항 3 내지 청구항 5 중 어느 한 항에 있어서, 상기 제1 엔티티의 상기 비밀은 신뢰 기관에 의해 발행되었으며 상기 제1 엔티티의 상기 아이덴티티 및 신뢰 기관에 의해 저장된 마스터 비밀에 기초하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  7. 청구항 3에 있어서,
    상기 제1 엔티티에서 랜덤 값(x)을 생성하는 단계로서, x는 q보다 낮은, 상기 랜덤 값(x)을 생성하는 단계;
    상기 제1 엔티티에서
    Figure pct00469
    을 산출하는 단계로서,
    Figure pct00470
    는 상기 제1 엔티티와 연관된 상기 아이덴티티이며
    Figure pct00471
    는 상기 대수 곡선 상에서의 포인트에 대해 상기 아이덴티티를 해싱하는 해시 함수인, 상기 산출하는 단계;
    상기 제1 엔티티에서 상기 곡선 상에서 또 다른 포인트
    Figure pct00472
    를 산출하며
    Figure pct00473
    및 U를 상기 제2 엔티티에 송신하는 단계; 및
    상기 제2 엔티티에서 생성된 랜덤 값(y)을 수신하는 단계로서, y는 q보다 낮으며, 재구성된 상기 전체 비밀을 사용하여 상기 제1 엔티티에서 상기 산출을 실행하며 상기 결과들을 상기 제2 엔티티에 전송하는 단계는 새로운 포인트
    Figure pct00474
    를 산출하며 V를 상기 제2 엔티티에 전송하는 단계로서, 상기 제1 인자는
    Figure pct00475
    를 포함하고, 상기 입력은 값(
    Figure pct00476
    )을 포함하고, 상기 클라이언트 비밀(
    Figure pct00477
    )은 신뢰 기관에 의해 발행되며 마스터 비밀(s)과 상기 클라이언트 아이덴티티에 대응하는 상기 포인트(A)를 곱함으로써 상기 신뢰 기관에 의해 획득되고 상기 페어링 산출은 매핑
    Figure pct00478

    을 포함하며
    Figure pct00479
    Figure pct00480
    는 별개이며 q는 그룹들(
    Figure pct00481
    ,
    Figure pct00482
    Figure pct00483
    )의 위수(order, 位數)인, 상기 랜덤 값(y)을 수신하는 단계를 더 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  8. 청구항 6에 있어서, 상기 제1 엔티티에서 시간 허용치를 수신하는 단계를 더 포함하며, 재구성된 상기 전체 비밀을 사용하는 상기 산출은 또한 상기 제2 엔티티에 전송할 상기 결과들을 획득하기 위해 상기 시간 허용치를 사용하며, 상기 시간 허용치는 상기 신뢰 기관에 의해 발행되며 상기 시간 허용치는 상기 제1 엔티티가 상기 프로토콜을 완성할 자격이 있는 시간 기간으로부터 도출되는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  9. 청구항 6에 있어서, 상기 제1 엔티티에서 시간 허용치를 수신하는 단계를 더 포함하며 재구성된 상기 비밀을 사용하는 상기 산출은 또한 상기 제2 엔티티에 전송할 상기 결과들을 획득하기 위해 상기 시간 허용치를 사용하고, 상기 시간 허용치는 상기 신뢰 기관에 의해 발행되며 상기 시간 허용치는 상기 제1 엔티티가 상기 프로토콜 및 부가적인 데이터를 완성할 자격이 있는 시간 기간으로부터 도출되는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  10. 청구항 3 내지 청구항 9 중 어느 한 항에 있어서, 상기 페어링 산출은 상기 제1 엔티티를 인증하기 위해 상기 제2 엔티티에서 산출의 부분을 형성하며 상기 방법은 상기 입력이 상기 제2 인자에 대응하지 않았음을 표시하는 응답을 상기 제2 엔티티로부터 수신하는 단계 및 다시 인증하려고 시도하도록 상기 제1 엔티티에 요청하는 단계를 더 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  11. 청구항 3 내지 청구항 9 중 어느 한 항에 있어서, 상기 페어링 산출은 상기 제1 엔티티를 인증하기 위해 상기 제2 엔티티에서 산출의 부분을 형성하며 상기 방법은 상기 제1 엔티티가, 상기 제1 엔티티가 상기 비밀을 소유하였다고 상기 제2 엔티티가 결정한다면 상기 인증이 성공적이었다는 표시를 수신하는 단계를 더 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  12. 청구항 3 내지 청구항 9 중 어느 한 항에 있어서, 상기 방법은 상기 제2 엔티티가 상기 제1 엔티티를 인증하도록 허용하기 위해 상기 산출의 결과들을 전송하는 것에 응답하여, 상기 제2 엔티티로부터 응답을 수신하는 단계 및 상기 제1 엔티티에서 상기 응답에서의 데이터 값으로부터 암호화 키를 도출하는 단계를 더 포함하며, 상기 응답에서의 상기 데이터 값은 상기 페어링 산출의 페어링의 상기 결과들로부터 획득되는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  13. 청구항 12에 있어서, 상기 페어링은 매핑,
    Figure pct00484

    이며
    Figure pct00485
    Figure pct00486
    은 별개의 그룹들이며 q는 상기 그룹들(
    Figure pct00487
    ,
    Figure pct00488
    Figure pct00489
    )의 위수이고, 상기 산출의 상기 결과들은
    Figure pct00490
    에서, 상기 대수 곡선 상에서의 포인트(V)의 좌표들이고, 상기 매핑은
    Figure pct00491
    에서 상기 대수 곡선 상에서 제1 입력으로서 상기 포인트(V)를 취하며 제2 입력으로서 제2 포인트를 취하고, 상기 제2 포인트는 상기 제2 엔티티와 연관된 고정 포인트에 대응하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  14. 청구항 12 또는 청구항 13에 있어서, 키를 도출하는 단계는 상기 데이터 값을 상기 제2 엔티티에 알려지지 않은 값으로 거듭 제곱하는 단계 및 상기 키를 획득하기 위해 상기 결과들을 해싱하는 단계를 포함하며 상기 방법은 상기 제2 엔티티로의 메시지들을 암호화하며 상기 제2 엔티티로부터 수신된 메시지들을 복호화하기 위해 상기 키를 사용하는 단계를 더 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  15. 청구항 3 내지 청구항 14 중 어느 한 항에 있어서, 상기 대수 곡선은 타원 곡선인, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  16. 청구항 1 내지 청구항 15 중 어느 한 항에 있어서, 상기 적어도 제2 인자는 PIN을 포함하는, 제2 엔티티에 스스로를 인증하기 위한 제1 엔티티에서의 방법.
  17. 제2 인자가 비밀 자체를 수신하지 않고 제1 엔티티가 상기 비밀을 소유하였음을 결정함으로써 상기 제2 엔티티에서 상기 제1 엔티티를 인증하는 방법으로서,
    상기 제2 엔티티에서 상기 제1 엔티티에서 실행된 산출의 결과를 수신하는 단계로서, 상기 산출은 비밀을 사용하여, 상기 제1 엔티티에서, 적어도 상기 비밀의 제1 인자 및 상기 비밀의 제2 인자로부터 재구성되는, 상기 제1 엔티티에서 실행된 산출의 결과를 수신하는 단계; 및
    상기 제2 엔티티에서 클라이언트가 상기 비밀을 소유하고 있다고 결정하기 위해 산출을 실행하는 단계로서, 상기 산출은 상기 제1 엔티티로부터의 상기 결과에 기초하는 페어링 산출을 포함하는, 상기 산출을 실행하는 단계를 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  18. 청구항 17에 있어서, 상기 비밀은 상기 제1 및 제2 인자를 포함하는 두 개의 인자로 분할되었으며 상기 비밀은 상기 두 개의 인자들로부터 재구성되는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  19. 청구항 17 또는 청구항 18에 있어서, 제1 엔티티 비밀은 대수 곡선 상에서의 포인트에 대응하며 상기 페어링 산출은 상기 대수 곡선 상에서의 페어링을 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  20. 청구항 19에 있어서, 상기 제2 엔티티에서의 상기 산출은 상기 클라이언트로부터 수신된 상기 결과에 기초한 제1 페어링, 및 상기 제2 엔티티의 비밀에 기초한 제2 페어링을 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  21. 청구항 20에 있어서, 상기 제2 엔티티에서 상기 산출은 상기 제1 엔티티가 상기 비밀을 소유하고 있는지를 결정하기 위해 페어링들의 적(product, 積)을 산출하는 단계를 포함하고, 상기 페어링들의 적은 상기 제1 페어링 및 상기 제2 페어링을 포함하며, 상기 방법은 상기 제2 엔티티가 상기 페어링들의 적이 미리 결정된 값과 같은지를 결정하는 단계 및 상기 적이 상기 미리 결정된 값과 같다면 상기 제1 엔티티를 인증하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  22. 청구항 20 또는 청구항 21에 있어서, 상기 제1 엔티티의 상기 비밀은 신뢰 기관에 의해 발행되었으며 상기 제1 엔티티의 아이덴티티 및 신뢰 기관에 의해 저장된 마스터 비밀에 기초하고 상기 제2 엔티티의 상기 비밀은 또한 상기 신뢰 기관에 의해 발행되었으며 상기 곡선 상에서의 고정 포인트 및 상기 마스터 비밀에 기초하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  23. 청구항 19에 있어서,
    상기 제1 엔티티로부터, 상기 제1 엔티티의 상기 아이덴티티 및 상기 대수 곡선 상에서의 포인트(U)의 좌표들을 수신하는 단계;
    상기 제2 엔티티에서, q보다 낮은, 랜덤 값(y)을 생성하고 상기 값을 상기 제1 엔티티에 전송하는 단계;
    상기 제2 엔티티에서
    Figure pct00492
    를 산출하는 단계로서,
    Figure pct00493
    은 상기 제1 엔티티와 연관된 아이덴티티이며
    Figure pct00494
    은 상기 대수 곡선 상에서의 포인트에 상기 아이덴티티를 해싱하는 해시 함수이고, 상기 엔티티에서 산출의 결과를 수신하는 단계는 상기 제1 엔티티로부터 포인트(V)의 좌표들을 수신하는 단계를 포함하고,
    Figure pct00495
    , x는 q보다 낮은 또 다른 랜덤 값이고 상기 제1 엔티티의 상기 비밀은 신뢰 기관에 의해 발행되며 s가 마스터 비밀인 포인트(sA)에 대응하고, 상기 적어도 제1 인자는 상기 타원 곡선 상에서의 포인트(
    Figure pct00496
    )의 좌표들을 포함하며 상기 제2 인자는 값(
    Figure pct00497
    )을 포함하고, 상기 페어링 산출을 산출하는 단계는
    Figure pct00498
    을 획득하기 위해 제1 페어링(
    Figure pct00499
    ) 및 제2 페어링(
    Figure pct00500
    )을 포함하는 페어링들의 적을 산출하는 단계를 포함하고 Q는 상기 곡선 상에서의 고정 포인트이며 sQ는 상기 제2 엔티티의 비밀에 대응하는 상기 곡선 상에서의 또 다른 포인트이고 상기 제1 및 제2 페어링은 매핑
    Figure pct00501

    인, 상기 산출 단계를 더 포함하며
    Figure pct00502
    Figure pct00503
    은 별개이며 q는 그룹들(
    Figure pct00504
    ,
    Figure pct00505
    Figure pct00506
    )의 위수이며, 상기 방법은
    Figure pct00507
    이면 상기 연결을 거절하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  24. 청구항 20 내지 청구항 22 중 어느 한 항에 있어서, 상기 제1 엔티티가 프로토콜을 완성할 자격이 있는 시간 기간을 획득하는 단계 및 상기 제2 페어링에 대한 입력을 도출하기 위해 상기 시간 기간 및 상기 제1 엔티티의 아이덴티티를 사용하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  25. 청구항 20 내지 청구항 22 중 어느 한 항에 있어서, 상기 제1 엔티티가 상기 프로토콜 및 부가적인 데이터를 완성할 자격이 있는 시간 기간을 획득하는 단계 및 상기 제2 페어링으로의 입력을 도출하기 위해 상기 시간 기간, 상기 부가적인 데이터 및 상기 제1 엔티티의 아이덴티티를 사용하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  26. 청구항 20 내지 청구항 22, 청구항 24 또는 청구항 25 중 어느 한 항에 있어서, 상기 방법은 상기 제1 엔티티가 암호화 키를 도출하도록 허용하기 위해, 상기 제1 페어링의 결과들로부터 도출된 값을 상기 제1 엔티티에 송신하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  27. 청구항 26에 있어서, 상기 페어링은 유형-3 매핑
    Figure pct00508

    이고
    Figure pct00509
    Figure pct00510
    은 별개이며 상기 페어링은 제1 입력으로서, 적어도 상기 제1 엔티티 비밀에 대응하는 상기 포인트로부터 도출된 포인트의, 상기 대수 곡선 상에서, 적어도 하나의 곱셈에 의해 도출된,
    Figure pct00511
    에서 상기 대수 곡선 상에서의 제1 포인트를 취하며, 제2 입력으로서,
    Figure pct00512
    에서 상기 대수 곡선 상에서의 제2 포인트를 취하고, 상기 제2 포인트는 상기 제2 엔티티와 연관된 고정 포인트에 대응하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  28. 청구항 20 내지 청구항 27 중 어느 한 항에 있어서, 상기 제2 엔티티가 상기 제1 및 상기 제2 엔티티 사이에서 추가 통신을 위해 사용될 암호화 키를 산출하는 단계를 더 포함하며, 상기 암호화 키의 상기 산출은 상기 제1 엔티티의 아이덴티티 및 제2 엔티티 비밀에 기초하여 페어링을 산출하는 단계를 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  29. 청구항 28에 있어서, 상기 제2 엔티티에서 상기 암호화 키를 획득하기 위한 상기 페어링은 유형-3 매핑
    Figure pct00513

    이고
    Figure pct00514
    Figure pct00515
    은 별개이며 상기 페어링은 제1 입력으로서 적어도 상기 제1 엔티티의 아이덴티티에 대응하는 포인트로부터 도출된 포인트의, 상기 대수 곡선 상에서, 적어도 하나의 곱셈에 의해 도출된,
    Figure pct00516
    에서 상기 대수 곡선 상에서의 포인트를 취하며, 제2 입력으로서 상기 제2 엔티티 비밀에 대응하는
    Figure pct00517
    에서 상기 대수 곡선 상에서의 포인트를 취하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  30. 청구항 20 내지 청구항 29 중 어느 한 항에 있어서, 상기 제2 엔티티는 적어도 두 개의 구성요소들을 포함하며, 각각은 상기 제2 엔티티의 상기 비밀의 부분을 저장하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  31. 청구항 30에 있어서, 상기 제2 엔티티 비밀은 각각 상기 두 개의 구성요소들에 저장된 두 개의 부분들을 더함으로써 획득될 수 있으며 상기 제2 페어링을 실행하는 단계는 각각의 구성요소에서 페어링을 실행하는 단계, 입력으로서 그것의 각각의 부분을 취하는 단계, 및 그 후 상기 두 개의 구성요소에서 실행된 상기 페어링들의 적을 실행하는 단계를 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  32. 청구항 19 내지 청구항 31 중 어느 한 항에 있어서, 상기 제1 엔티티가 상기 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 상기 제2 인자에서 에러의 정도를 결정하는 단계를 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  33. 청구항 32에 있어서, 상기 방법은 상기 제2 인자에서 상기 에러의 결정된 정도에 기초하여 다시 인증하도록 상기 클라이언트에 요청할지를 결정하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  34. 청구항 32 또는 청구항 33에 있어서, 상기 제1 엔티티가 상기 비밀을 소유하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 제1 엔티티에 요청하는 단계, 및 총 에러 스코어의 값을 산출하는 단계를 더 포함하며, 상기 값은 각각의 인증 시도에 대한 변수 양만큼 증가하고, 상기 양은 각각의 인증 시도에서 상기 제2 인자에서의 에러의 정도에 의존하여 변하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  35. 청구항 34에 있어서, 상기 총 에러 스코어의 값이 미리 결정된 최대 에러 스코어를 초과한다면 상기 제1 엔티티로의 상기 연결을 거절하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  36. 청구항 34 또는 청구항 35에 있어서, 다시 인증하려고 시도하도록 상기 제1 엔티티에 요청할지에 대한 결정 시, 상기 제1 엔티티의 위치, 상기 아이덴티티, IP 어드레스 및 상기 인증 시간 중 적어도 하나를 포함하는 부가적인 정보를 고려하는 단계를 더 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  37. 청구항 32 내지 청구항 36 중 어느 한 항에 있어서, 상기 에러의 정도가 미리 결정된 유형이라고 결정하는 것에 응답하여, 상기 제1 엔티티가 메시지를 전송하려고 시도한다고 결정하며 상기 에러로부터 상기 메시지를 결정하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  38. 청구항 19 내지 청구항 37 중 어느 한 항에 있어서, 적어도 상기 제2 인자는 PIN을 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  39. 청구항 19 내지 청구항 38 중 어느 한 항에 있어서, 상기 대수 곡선은 타원 곡선인, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  40. 청구항 1 내지 청구항 39 중 어느 한 항에 있어서, 상기 제2 인자는 소프트 생체 인식을 포함하는, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  41. 청구항 1 내지 청구항 40 중 어느 한 항에 있어서, 상기 곡선은
    Figure pct00518
    이 소수(prime)이도록 Barreto-Naehrig BN 곡선 파라미터를 가진 타원 곡선이고, p는 소수법이며 q는 상기 곡선 상에서 상기 매핑
    Figure pct00519

    의 그룹들(
    Figure pct00520
    ,
    Figure pct00521
    Figure pct00522
    )의 위수인, 제2 엔티티에서 제1 엔티티를 인증하는 방법.
  42. 청구항 1 내지 청구항 16 중 어느 한 항에 따른 상기 방법을 실행하는 클라이언트를 포함하는 서버 및 청구항 19 내지 청구항 39 중 어느 한 항의 상기 방법을 실행하는 서버에 클라이언트를 인증하는 방법.
  43. 다른 엔티티에 비밀을 드러내지 않고 그것이 전체 비밀을 소유하고 있음을 상기 다른 엔티티에 제공함으로써 또 다른 엔티티에 스스로를 인증하기 위한 장치로서,
    지시들을 저장한 적어도 하나의 메모리; 및
    상기 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서를 포함하고, 상기 지시들은 다음의 동작들:
    상기 장치에서 사용자로부터 입력을 수신하는 동작으로서, 상기 전체 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 비밀의 상기 제2 인자에 관한 것인, 상기 사용자로부터 입력을 수신하는 동작;
    상기 장치에서 적어도 상기 제1 인자 및 상기 제2 인자로부터 비밀을 재구성하는 동작; 및
    상기 장치에서 재구성된 상기 비밀을 사용하여 산출을 실행하며 상기 산출의 결과들을 상기 다른 엔티티에 전송하는 동작으로서, 상기 결과들은 입력을 페어링 산출에 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 동작을 수행하기 위한 것인, 장치.
  44. 청구항 43에 있어서, 전체 비밀은 타원 곡선 상에서의 포인트에 대응하며 상기 적어도 하나의 메모리는 지시들을 더 포함하며, 상기 지시들은 상기 프로세서에 의해 실행될 때, 다음의 동작들:
    상기 장치에서 랜덤 값(x)을 생성하는 동작으로서, x는 q보다 낮은, 상기 랜덤 값(x)을 생성하는 동작;
    상기 장치에서
    Figure pct00523
    를 산출하는 동작으로서,
    Figure pct00524
    은 상기 장치와 연관된 아이덴티티이며
    Figure pct00525
    는 타원 곡선 상에서의 포인트에 대해 상기 아이덴티티를 해싱하는 해시 함수인, 상기 산출하는 동작;
    상기 장치에서 상기 타원 곡선 상에서의 또 다른 포인트(
    Figure pct00526
    )를 산출하며
    Figure pct00527
    및 U를 상기 다른 엔티티에 송신하는 동작; 및
    상기 다른 엔티티에서 생성된 랜덤 값(y)을 수신하는 동작으로서, y는 q보다 낮고, 상기 장치에서 재구성된 상기 키를 사용하여 상기 산출을 실행하며 상기 결과들을 상기 다른 엔티티에 전송하기 위한 상기 지시들은 새로운 포인트(
    Figure pct00528
    )를 산출하며 V를 상기 다른 엔티티에 전송하기 위한 지시들을 포함하고, 상기 제1 인자는 상기 타원 곡선 상에서 포인트(
    Figure pct00529
    )의 좌표들을 포함하고, 상기 입력은 값(
    Figure pct00530
    )을 포함하고, 상기 비밀(
    Figure pct00531
    )은 신뢰 기관에 의해 발행되며 마스터 비밀(s)과 상기 장치와 연관된 상기 아이덴티티에 대응하는 상기 포인트(A)를 곱함으로써 상기 신뢰 기관에 의해 획득되며 상기 페어링 산출은 매핑
    Figure pct00532

    을 포함하며
    Figure pct00533
    Figure pct00534
    은 별개이며 q는 상기 그룹들(
    Figure pct00535
    ,
    Figure pct00536
    Figure pct00537
    )의 위수인, 상기 랜덤 값(y)을 수신하는 동작을 수행하기 위한 것인, 장치.
  45. 청구항 43에 있어서, 재구성된 상기 비밀을 사용하는 상기 산출은 또한 상기 장치에서 상기 다른 엔티티에 전송할 상기 결과들을 획득하기 위해 수신되는 시간 허용치를 사용하며, 상기 시간 허용치는 신뢰 기관에 의해 발행되며 상기 시간 허용치는 상기 장치가 상기 프로토콜을 완성할 자격이 있는 시간 기간으로부터 도출되는, 장치.
  46. 청구항 43, 청구항 44 또는 청구항 45에 있어서, 적어도 하나의 메모리는 상기 장치에서 상기 산출의 상기 결과를 상기 다른 엔티티에 전송하는 것에 응답하여, 상기 다른 엔티티로부터 수신된 메시지에서의 데이터 값으로부터 암호화 키를 도출하기 위한 지시들을 더 포함하며, 상기 응답에서의 상기 데이터 값은 상기 페어링 산출의 페어링의 상기 결과들로부터 획득되는, 장치.
  47. 다른 엔티티에 비밀을 드러내지 않고 그것이 상기 비밀을 소유하고 있음을 상기 다른 엔티티에 증명함으로써 또 다른 엔티티에 스스로를 인증하기 위한 장치로서,
    입력을 수신하기 위한 수단으로서, 상기 비밀은 적어도 제1 인자 및 제2 인자로 분할되며 상기 입력은 상기 비밀의 상기 제2 인자에 관한 것인, 상기 입력을 수신하기 위한 수단;
    상기 장치에서 적어도 상기 제1 인자 및 상기 제2 인자로부터 상기 전체 비밀을 재구성하기 위한 수단; 및
    상기 장치에서 재구성된 상기 비밀을 사용하여 산출을 실행하며 상기 다른 엔티티에 상기 산출의 결과들을 전송하기 위한 수단으로서, 상기 결과들은 상기 다른 엔티티에서의 암호 페어링에 입력을 제공하는, 상기 산출을 실행하며 상기 산출의 결과들을 전송을 위한 수단을 포함하는, 장치.
  48. 비밀 자체를 수신하지 않고 엔티티가 상기 비밀을 소유하고 있음을 결정함으로써 또 다른 엔티티를 인증하기 위한 장치로서,
    지시들을 저장한 적어도 하나의 메모리; 및
    상기 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서를 포함하고, 상기 지시들은 다음의 동작들:
    상기 장치에서 상기 다른 엔티티에서 실행된 산출의 결과를 수신하는 동작으로서, 상기 산출은 적어도 상기 비밀의 제1 인자 및 적어도 상기 비밀의 제2 인자로부터 재구성된 상기 비밀을 사용하는, 상기 산출의 결과를 수신하는 동작; 및
    상기 장치에서 상기 다른 엔티티가 상기 비밀을 소유한다고 결정하기 위해 산출을 실행하는 동작으로서, 상기 산출은 상기 다른 엔티티로부터의 결과에 기초한 제1 페어링 및 상기 장치와 연관된 비밀에 기초한 제2 페어링을 포함하는, 상기 산출을 실행하는 동작을 수행하기 위한 것인, 또 다른 엔티티를 인증하기 위한 장치.
  49. 청구항 48에 있어서, 상기 다른 엔티티의 상기 비밀은 타원 곡선 상에서의 포인트에 대응하며 상기 적어도 하나의 메모리는:
    상기 다른 엔티티로부터, 상기 다른 엔티티의 상기 아이덴티티 및 상기 대수 곡선 상에서의 포인트(U)의 좌표들을 수신하기 위한 지시;
    상기 장치에서 q보다 낮은, 랜덤 값(y)을 생성하며 상기 다른 엔티티에 전송하기 위한 지시;
    상기 장치에서
    Figure pct00538
    를 산출하기 위한 지시로서,
    Figure pct00539
    는 상기 다른 엔티티와 연관된 상기 아이덴티티이며
    Figure pct00540
    은 상기 대수 곡선 상에서의 포인트에 대해 상기 아이덴티티를 해싱하는 해시 함수이고, 상기 다른 엔티티에서 실행된 산출의 결과를 수신하는 동작은 상기 다른 엔티티로부터 포인트(V)의 좌표들을 수신하는 동작을 포함하고,
    Figure pct00541
    , x는 q보다 낮은 또 다른 랜덤 값이고 상기 다른 엔티티의 상기 비밀은 신뢰 기관에 의해 발행되며 s가 마스터 비밀인 포인트(sA)에 대응하고, 상기 적어도 제1 인자는 상기 대수 곡선 상에서의 포인트(
    Figure pct00542
    )의 좌표들을 포함하며 상기 제2 인자는 값(
    Figure pct00543
    )을 포함하고, 페어링 산출을 산출하는 동작은
    Figure pct00544
    를 획득하기 위해 제1 페어링(
    Figure pct00545
    ) 및 제2 페어링(
    Figure pct00546
    )을 포함하는 페어링들의 적을 산출하는 동작을 포함하고, Q는 상기 대수 곡선 상에서의 고정 포인트이고 sQ는 상기 장치와 연관된 비밀에 대응하는 상기 타원 곡선 상에서의 또 다른 포인트이며 상기 제1 페어링 및 상기 제2 페어링은 매핑
    Figure pct00547

    이고
    Figure pct00548
    Figure pct00549
    은 별개의 그룹들이며 q는 그룹들(
    Figure pct00550
    ,
    Figure pct00551
    Figure pct00552
    )의 위수인, 상기 산출하기 위한 지시들을 더 포함하며,
    상기 적어도 하나의 메모리는
    Figure pct00553
    이면 연결을 거절하기 위한 지시들을 더 포함하는, 또 다른 엔티티를 인증하기 위한 장치.
  50. 청구항 48 또는 청구항 49에 있어서, 상기 적어도 하나의 메모리는 상기 페어링 산출의 페어링의 결과들로부터 도출된 값을 송신하기 위한 지시, 상기 다른 엔티티가 암호화 키를 도출하도록 허용하기 위해 상기 다른 엔티티에 대해, 상기 다른 엔티티로부터 수신된 상기 결과에 기초한 입력을 취하며 상기 장치에서 또 다른 페어링으로부터 키를 도출하기 위한 지시, 상기 장치와 연관된 상기 비밀에 대응하는 입력을 취하기 위한 지시를 더 포함하는, 또 다른 엔티티를 인증하기 위한 장치.
  51. 청구항 48 내지 청구항 50 중 어느 한 항에 있어서, 상기 장치는 상기 지시들을 실행하기 위해, 각각이 지시들을 저장한 상기 적어도 하나의 메모리의 별개의 메모리를 포함하며 각각이 별개의 프로세서를 갖는, 상기 하나 이상의 프로세서들의 두 개의 구성요소들을 포함하고, 상기 장치와 연관된 상기 비밀은 두 개의 부분들을 포함하며 상기 제2 페어링을 실행하는 동작은 각각의 구성요소에서 페어링을 실행하는 동작, 입력으로서, 상기 장치와 연관된 상기 비밀의 그것의 각각의 부분을 취하는 동작, 및 상기 두 개의 페어링들의 적을 실행하는 동작을 포함하는, 또 다른 엔티티를 인증하기 위한 장치.
  52. 비밀을 엔티티에 전송하지 않고 그것이 상기 비밀을 소유하고 있음을 상기 엔티티에 증명함으로써 인증 엔티티에 스스로를 인증하기 위한 클라이언트 디바이스를 위한 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 상기 클라이언트 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 청구항 1 내지 청구항 16 중 어느 한 항의 방법을 실행하게 하는 지시들을 포함하는, 컴퓨터 프로그램.
  53. 인증 장치가 비밀 자체를 수신하지 않고 클라이언트 디바이스가 상기 비밀을 소유하고 있다고 결정함으로써 상기 클라이언트 디바이스를 인증하기 위한 컴퓨터 시스템을 위한 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서가 청구항 17 내지 청구항 39 중 어느 한 항의 방법을 실행하게 하는 지시들을 포함하는, 컴퓨터 프로그램.
  54. 제2 엔티티에 대한 제1 엔티티의 다-인자 제로-지식 증명 인증을 실행하는 컴퓨터-구현 방법.
  55. 청구항 54에 있어서, 상기 방법은 상기 인증을 실행하기 위해 페어링-기반 암호 기법을 사용하는, 컴퓨터-구현 방법.
  56. 청구항 55에 있어서, 상기 제1 엔티티는 별개의 엔티티에 의해 발행되고, 타원 곡선 상에서의 포인트에 대응하며 상기 제1 엔티티에서 적어도 제1 인자 및 적어도 제2 인자로 분할된 비밀과 연관되고, 상기 방법은 산출을 실행하기 위해 재구성된 전체 비밀을 사용하여, 상기 제1 엔티티에서 상기 제1 엔티티에 저장된 적어도 상기 제1 인자, 및 사용자로부터 수신된 적어도 상기 제2 인자로부터 상기 전체 비밀을 재구성하여 상기 산출의 결과를 상기 제2 엔티티에 전송하는 단계 및 상기 제2 엔티티에서 상기 제1 엔티티를 인증하기 위해 산출에서 상기 제1 엔티티로부터 수신된 상기 결과들을 사용하는 단계를 더 포함하며, 상기 제1 엔티티에서의 상기 산출은 비-페어링 산출이며 상기 제2 엔티티에서의 상기 산출은 페어링 산출인, 컴퓨터-구현 방법.
  57. 청구항 56에 있어서, 상기 제2 엔티티는 또한, 상기 별개의 엔티티에 의해 발행된, 그 자신의 비밀을 저장하고, 상기 제2 엔티티 비밀은 또한 상기 타원 곡선 상에서의 포인트에 대응하며, 상기 방법은:
    상기 제1 엔티티로부터 수신된 상기 결과를 그것의 입력의 하나로서 취하는 제1 페어링 및 상기 제2 엔티티 비밀에 대응하는 상기 곡선 상에서의 포인트를 그것의 입력들 중 하나로서 취하는 제2 페어링을 포함하는 페어링들의 적을 상기 제2 엔티티에서 실행하는 단계, 및
    상기 페어링들의 적의 결과들에 기초하여 상기 제1 엔티티를 인증할지를 결정하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  58. 인증 키 합의를 실행하는 방법으로서, 청구항 54 내지 청구항 57 중 어느 한 항의 방법을 사용하여 클라이언트를 인증하는 단계를 포함하며 상기 제1 엔티티의 상기 인증 동안 산출된 페어링의 결과들로부터 세션 암호화 키를 도출하는 단계를 더 포함하는, 인증 키 합의를 실행하는 방법.
  59. 청구항 58에 있어서, 상기 제2 엔티티가 상기 페어링의 결과들로부터 도출된 값을 상기 제1 엔티티에 송신하는 단계 및 상기 제1 엔티티가 수신된 상기 값으로부터 상기 키를 도출하는 단계를 더 포함하는, 인증 키 합의를 실행하는 방법.
  60. Barreto-Naehrig (BN) 타원 곡선을 사용하여 페어링-기반 키 합의를 실행하는 컴퓨터-구현 방법으로서, 상기 BN 곡선 파라미터는 이 소수이도록 선택되고, p는 소수법이며 q는 상기 타원 곡선 상에서 상기 매핑
    Figure pct00555

    의 그룹들(
    Figure pct00556
    ,
    Figure pct00557
    Figure pct00558
    )의 위수인, 컴퓨터 판독 가능한 매체.
  61. 장치의 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서가 장치에서 또 다른 엔티티와 안전하게 통신하기 위한 키를 도출하기 위해 키 합의 프로토콜의 단계들을 실행하게 하는 지시들을 저장한 컴퓨터 판독 가능한 매체에 있어서, 상기 키 합의 프로토콜은 Barreto-Naehrig (BN) 타원 곡선을 사용하고 상기 BN 곡선 파라미터는
    Figure pct00559
    이 소수이도록 선택되고, p는 소수법이며 q는 상기 타원 곡선 상에서 매핑
    Figure pct00560

    의 그룹들(
    Figure pct00561
    ,
    Figure pct00562
    Figure pct00563
    )의 위수인, 컴퓨터 판독 가능한 매체.
  62. 장치에서 클라이언트로부터 데이터를 수신하는 단계로서, 상기 데이터는 상기 장치에 상기 클라이언트를 인증하기 위한 인증 시도의 부분으로서 제공되고, 상기 클라이언트는 다수의 인자들로 분리된 실제 비밀과 연관되며 상기 데이터는 상기 실제 비밀을 재구성하려고 시도하기 위해 상기 클라이언트에서 사용되는 다수의 인자들로부터 도출된, 상기 데이터를 수신하는 단계;
    상기 데이터를 도출하기 위해 사용되는 상기 다수의 인자들의 상기 인자들 중 하나는 상기 실제 비밀의 상기 다수의 인자들의 대응하는 인자와 상이하다는 것을 결정하며 상기 차이의 정도를 결정하는 단계;
    상기 차이와 연관된 에러 값을 결정하는 단계; 및
    상기 클라이언트의 다수의 인증 시도들에 대한 조합된 에러 값의 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하는 단계를 포함하는, 컴퓨터 구현 방법.
  63. 지시들을 저장한 적어도 하나의 메모리; 및
    상기 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서를 포함하고, 상기 지시들은 다음의 동작들:
    상기 장치에 상기 클라이언트를 인증하기 위한 인증 시도의 일부로서 클라이언트로부터 데이터를 수신하는 동작으로서, 상기 클라이언트는 다수의 인자들로 분리된 비밀과 연관되며 수신된 상기 데이터는 상기 실제 비밀을 재구성하려고 시도하기 위해 상기 클라이언트에서 사용되는 다수의 인자들로부터 도출된, 상기 데이터를 수신하는 동작;
    상기 장치에서 상기 데이터를 도출하기 위해 사용되는 상기 다수의 인자들의 상기 인자들 중 하나는 상기 실제 비밀의 상기 다수의 인자들의 대응하는 인자와 상이하다는 것을 결정하며 상기 차이의 정도를 결정하는 동작;
    상기 차이와 연관된 에러 값을 결정하는 동작; 및
    상기 클라이언트의 다수의 인증 시도들에 대한 조합된 에러 값이 미리 결정된 최대 에러 값을 초과하지 않는다고 결정하는 것에 응답하여, 다시 인증하려고 시도하도록 상기 클라이언트에 요청하는 동작을 수행하기 위한 것인, 장치.
  64. 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서가 청구항 62의 방법을 실행하게 하는 지시들을 포함하는 컴퓨터 프로그램.
  65. 암호화 또는 인증을 실행하기 위해 비밀들을 클라이언트 및 서버에 발행하는 컴퓨터-구현 방법으로서, 상기 클라이언트에는 비밀(sA)이 발행되며 상기 서버에는 비밀(sQ)이 발행되고, A는 대수 곡선 상에서, 상기 클라이언트와 연관되는 포인트이고, Q는 상기 대수 곡선 상에서의 고정 포인트이고, s는 마스터 비밀이며 sA 및 sQ는 상기 대수 곡선 상에서, 상기 마스터 비밀(s)에 의한, 각각 상기 포인트(A) 및 상기 포인트(Q)의 곱셈에 의해 획득되는 포인트들을 나타내는, 컴퓨터-구현 방법.
  66. 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서가 청구항 65의 방법을 실행하게 하는 지시들을 포함하는 컴퓨터 프로그램.
  67. 제2 엔티티에 실제 정보를 전송하지 않고, 상기 제2 엔티티에 정보를 전달하기 위한 제1 엔티티에서의 컴퓨터-구현 방법으로서, 상기 정보는 적어도 제1 인자 및 제2 인자로 분할된 비밀과 연관되고, 상기 방법은:
    적어도 상기 제1 인자 및 더미(dummy) 제2 인자를 더미 비밀로 조합하는 단계로서, 상기 더미 제2 인자는 상기 제2 엔티티에 전달될 상기 정보에 대응하는 값만큼 상기 제2 인자와 상이한, 상기 더이 비밀로 조합하는 단계; 및
    재구성된 상기 더미 비밀을 사용하여 상기 제1 엔티티에서 산출을 실행하며 상기 제2 엔티티에 상기 산출의 결과들을 전송하는 단계로서, 상기 결과들은 상기 더미 제2 인자 및 상기 제2 인자 사이에서의 차이를 결정하기 위해 상기 제2 엔티티에서 산출 시 사용되는, 상기 산출을 실행하며 상기 산출의 결과들을 전송하는 단계를 포함하는, 제2 엔티티에 정보를 전달하기 위한 제1 엔티티에서의 컴퓨터-구현 방법.
  68. 청구항 67에 있어서, 상기 산출은 타원 곡선 상에서의 암호 페어링을 포함하며 상기 비밀은 곡선 상에서의 포인트인, 제2 엔티티에 정보를 전달하기 위한 제1 엔티티에서의 컴퓨터-구현 방법.
  69. 청구항 67 또는 청구항 68에 있어서, 상기 정보는 메시지의 부분을 형성하고, 상기 메시지의 각각의 부분은 적어도 두 개의 인자들로 분리된 비밀과 연관되며, 상기 방법은 적어도 제1 인자 및 더미 인자를 상기 메시지의 각각의 부분에 대한 더미 비밀로 조합하는 단계 및 상기 메시지를 조립하기 위해 상기 제2 엔티티에 대한 상기 더미 비밀들에 기초하여 산출들의 결과들을 상기 제2 엔티티에 전송하는 단계를 더 포함하는, 제2 엔티티에 정보를 전달하기 위한 제1 엔티티에서의 컴퓨터-구현 방법.
  70. 제1 엔티티로부터 정보를 획득하기 위한 제2 엔티티에서의 컴퓨터 구현 방법으로서, 상기 정보는 적어도 제1 인자 및 제2 인자로 분할되는 비밀과 연관되고, 상기 방법은:
    상기 제2 엔티티에서, 상기 제1 엔티티에서 실행된 산출의 결과를 수신하는 단계로서, 상기 산출은 상기 제1 엔티티에서, 적어도 상기 비밀의 제1 인자 및 더미 제2 인자로부터 생성되는 더미 비밀을 사용하고, 상기 더미 제2 인자는 상기 제2 엔티티에서 획득될 상기 정보에 대응하는 값만큼 상기 제2 인자와 상이한, 상기 산출의 결과를 수신하는 단계; 및
    상기 더미 제2 인자 및 상기 제2 인자 간 상기 차이를 결정하기 위해 상기 제2 엔티티에서 산출을 실행하는 단계로서, 상기 산출은 상기 제1 엔티티로부터의 상기 결과를 사용하는, 상기 산출을 실행하는 단계를 포함하는, 제1 엔티티로부터 정보를 획득하기 위한 제2 엔티티에서의 컴퓨터 구현 방법.
  71. 청구항 70에 있어서, 상기 제1 엔티티로부터 다수의 산출들의 결과를 수신하는 단계를 더 포함하며, 각각의 산출은 메시지의 상이한 부분과 연관되는 더미 비밀에 기초하며 각각의 더미 비밀은 실제 제2 인자와 상이한 더미 제2 인자로부터 도출된, 제1 엔티티로부터 정보를 획득하기 위한 제2 엔티티에서의 컴퓨터 구현 방법.
  72. 청구항 67 내지 청구항 71 중 어느 한 항에 있어서, 상기 메시지는 신용 카드 정보를 포함하는, 제1 엔티티로부터 정보를 획득하기 위한 제2 엔티티에서의 컴퓨터 구현 방법.
  73. 제2 엔티티에 제1 엔티티를 인증하는 컴퓨터 구현 방법으로서, 상기 제1 엔티티는 다수의 인자들로 분리되는 제1 엔티티 비밀과 연관되고, 상기 방법은 상기 다수의 인자들로부터 재구성되는 제1 엔티티 비밀로부터 도출되는 데이터에 기초하여, 쌍선형 매핑들을 사용하여 산출을 실행하는 단계 및 상기 제1 엔티티가 상기 산출의 결과에 기초하여 상기 제1 엔티티 비밀을 소유하고 있는지를 상기 제2 엔티티에서 결정하는 단계를 포함하는, 제2 엔티티에 제1 엔티티를 인증하는 컴퓨터 구현 방법.
  74. 청구항 73에 있어서,
    상기 비밀의 다수의 인자들로부터 상기 제1 엔티티에서 상기 비밀을 재구성하는 단계; 및
    쌍선형 매핑에 대한 입력을 도출하기 위해 재구성된 상기 비밀을 사용하는 단계로서, 상기 산출을 실행하는 단계는 상기 제2 엔티티와 연관되는 데이터에 기초하여 제1 입력 및 제2 입력으로서 상기 입력을 취하는 제1 쌍선형 매핑을 계산하는 단계 및 상기 제1 엔티티와 연관된 데이터에 기초한 제1 입력 및 제2 엔티티 비밀로부터 도출되는 제2 입력 데이터를 취하는 제2 쌍선형 매핑을 계산하는 단계를 포함하고, 상기 제1 엔티티 비밀은 상기 제1 엔티티와 연관되는 상기 데이터로부터 구성되었으며 상기 제2 엔티티 비밀은 상기 매핑들의 결과들, 또는 상기 매핑들의 결과들로부터 도출되는 값들이 상기 제1 엔티티가 그것의 비밀을 소유하고 있는지를 상기 제2 엔티티에 의해 결정하기 위해 사용될 수 있도록 상기 제2 엔티티와 연관되는 상기 데이터로부터 구성된, 상기 재구성된 비밀을 사용하는 단계를 더 포함하는, 제2 엔티티에 제1 엔티티를 인증하는 컴퓨터 구현 방법.
  75. 청구항 74에 있어서, 상기 산출은 상기 제1 및 제2 쌍선형 매핑에 대응하는 두 개의 페어링들을 실현하는 다중-페어링을 실행하는 단계 및 상기 다중-페어링의 결과가 미리 결정된 값과 동일한지를 결정하는 단계를 포함하는, 제2 엔티티에 제1 엔티티를 인증하는 컴퓨터 구현 방법.
  76. 지시들을 저장한 적어도 하나의 메모리; 및
    클라이언트를 인증하기 위한 상기 지시들을 실행하도록 프로그램된 적어도 하나의 프로세서로서, 상기 클라이언트는 다수의 인자들로 분할된 비밀과 연관되며 상기 지시들은, 실행될 때, 상기 적어도 하나의 프로세서가, 쌍선형 매핑들을 사용하여, 상기 다수의 인자들로부터 재구성되는 상기 비밀로부터 도출되는 데이터에 기초하여, 산출을 실행하게 하며 상기 제1 엔티티가 상기 산출에 기초하여 상기 비밀을 소유해야 하는지를 결정하게 하는, 상기 적어도 하나의 프로세서를 포함하는, 장치.
  77. 장치의 하나 이상의 프로세서들에 의해 실행될 때, 상기 장치의 상기 하나 이상의 프로세서들이 클라이언트를 인증하기 위한 인증 프로세스를 실행하게 하는 지시들을 저장한 비-일시적 컴퓨터 판독 가능한 매체에 있어서, 상기 클라이언트는 다수의 인자들로 분할된 비밀과 연관되며 상기 지시들은, 실행될 때, 상기 하나 이상의 프로세서들이 쌍선형 매핑들을 사용하여, 상기 다수의 인자들로부터 재구성되는 상기 비밀로부터 도출되는 데이터에 기초하여 산출을 실행하게 하며 상기 제1 엔티티가 상기 산출에 기초하여 상기 비밀을 소유해야 하는지를 결정하게 하는, 비-일시적 컴퓨터 판독 가능한 매체.
KR1020157035150A 2013-05-30 2014-05-30 페어링을 이용한 다중 요소 제로 지식 인증 KR20160013905A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1309702.7 2013-05-30
GBGB1309702.7A GB201309702D0 (en) 2013-05-30 2013-05-30 Security
PCT/GB2014/051666 WO2014191768A2 (en) 2013-05-30 2014-05-30 Authentication

Publications (1)

Publication Number Publication Date
KR20160013905A true KR20160013905A (ko) 2016-02-05

Family

ID=48805510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157035150A KR20160013905A (ko) 2013-05-30 2014-05-30 페어링을 이용한 다중 요소 제로 지식 인증

Country Status (6)

Country Link
US (1) US9698985B2 (ko)
EP (1) EP3005608B1 (ko)
JP (1) JP2016526342A (ko)
KR (1) KR20160013905A (ko)
GB (1) GB201309702D0 (ko)
WO (1) WO2014191768A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180123112A (ko) * 2016-03-15 2018-11-14 알리바바 그룹 홀딩 리미티드 웹사이트 로그인 방법 및 장치

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172687B2 (en) * 2012-12-28 2015-10-27 Nok Nok Labs, Inc. Query system and method to determine authentication capabilities
US9396320B2 (en) 2013-03-22 2016-07-19 Nok Nok Labs, Inc. System and method for non-intrusive, privacy-preserving authentication
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US9887983B2 (en) 2013-10-29 2018-02-06 Nok Nok Labs, Inc. Apparatus and method for implementing composite authenticators
US9654469B1 (en) 2014-05-02 2017-05-16 Nok Nok Labs, Inc. Web-based user authentication techniques and applications
US9893894B2 (en) * 2015-03-13 2018-02-13 Intel IP Corporation Systems, methods, and devices for secure device-to-device discovery and communication
WO2017087552A1 (en) * 2015-11-17 2017-05-26 Cryptography Research, Inc. Authenticating a secondary device based on encrypted tables
US9973342B2 (en) * 2016-06-16 2018-05-15 International Business Machines Corporation Authentication via group signatures
EP3273635B1 (en) * 2016-07-20 2019-10-30 Mastercard International Incorporated Secure channel establishment
CN105978920B (zh) * 2016-07-28 2019-05-24 恒宝股份有限公司 一种访问可信应用的方法及ta
US10637853B2 (en) 2016-08-05 2020-04-28 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10769635B2 (en) 2016-08-05 2020-09-08 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10237070B2 (en) 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators
JP6720113B2 (ja) * 2017-06-02 2020-07-08 日本電信電話株式会社 認証システム、サービス提供サーバ、認証方法、及びプログラム
EP4210271A1 (en) 2017-06-07 2023-07-12 nChain Licensing AG Credential generation and distribution method and system for a blockchain network
CN111108732A (zh) * 2017-06-30 2020-05-05 维萨国际服务协会 用于确定数字资产交易所的偿付能力的方法、系统和计算机程序产品
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
JP6808609B2 (ja) * 2017-12-01 2021-01-06 日本電信電話株式会社 サーバ装置、通信装置、鍵共有システム、鍵共有方法、及びプログラム
SG11202005570XA (en) * 2017-12-15 2020-07-29 Nchain Holdings Ltd Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords
US11122033B2 (en) * 2017-12-19 2021-09-14 International Business Machines Corporation Multi factor authentication
US11012435B2 (en) 2017-12-19 2021-05-18 International Business Machines Corporation Multi factor authentication
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
JP2021518687A (ja) * 2018-03-23 2021-08-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited トラストレスゼロ知識付帯支払のためのコンピュータ実装されたシステム及び方法
US11184173B2 (en) 2018-08-24 2021-11-23 Powch, LLC Secure distributed information system
WO2020084751A1 (ja) * 2018-10-26 2020-04-30 日本電気株式会社 秘密計算サーバ、システム、秘密計算方法及びプログラム
US11005656B2 (en) * 2018-12-07 2021-05-11 Arris Enterprises Llc Embedding information in elliptic curve base point
US10630467B1 (en) * 2019-01-04 2020-04-21 Blue Ridge Networks, Inc. Methods and apparatus for quantum-resistant network communication
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
US11102004B2 (en) * 2019-04-29 2021-08-24 Google Llc Systems and methods for distributed verification of online identity
CN111010279A (zh) * 2019-11-29 2020-04-14 中国人民解放军国防科技大学 一种基于零知识证明的远程多因子认证协议
CN111062029A (zh) * 2019-12-17 2020-04-24 湖南安方信息技术有限公司 一种基于标识密码的多因子认证协议
US11272363B2 (en) * 2020-03-25 2022-03-08 Nxp B.V. Authentication method in a communication system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0723251A3 (en) * 1995-01-20 1998-12-30 Tandem Computers Incorporated Method and apparatus for user and security device authentication
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
US7239701B1 (en) 2000-05-02 2007-07-03 Murata Machinery Ltd. Key sharing method, secret key generating method, common key generating method and cryptographic communication method in ID-NIKS cryptosystem
EP1425874B1 (en) 2001-08-13 2010-04-21 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
JP2003242421A (ja) * 2002-02-20 2003-08-29 Fujitsu Ltd 商品貸出管理システム及び方法並びにプログラム
CN1682485A (zh) 2002-09-20 2005-10-12 皇家飞利浦电子股份有限公司 产生公共密钥的方法和系统
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US7590236B1 (en) 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
EP1813051B1 (en) 2004-11-12 2017-09-13 Dublin City University Identity based encryption
EP1675299B1 (en) * 2004-12-23 2018-08-01 Hewlett-Packard Development Company, L.P. Authentication method using bilinear mappings
US8285996B2 (en) 2005-03-30 2012-10-09 Dublin City University Verification of identity based signatures
JP4555859B2 (ja) * 2005-07-13 2010-10-06 日本電信電話株式会社 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体
WO2007080633A1 (ja) 2006-01-11 2007-07-19 Mitsubishi Denki Kabushiki Kaisha 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
US8180047B2 (en) 2006-01-13 2012-05-15 Microsoft Corporation Trapdoor pairings
US20090327704A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Strong authentication to a network
US8412938B2 (en) * 2009-08-31 2013-04-02 Apple Inc. Zero-knowledge based authentication method, system, and apparatus
US8868923B1 (en) * 2010-07-28 2014-10-21 Sandia Corporation Multi-factor authentication
US9154302B2 (en) 2012-01-25 2015-10-06 CertiVox Ltd. System and method for secure two-factor authenticated ID-based key exchange and remote login using an insecure token and simple second-factor such as a PIN number

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180123112A (ko) * 2016-03-15 2018-11-14 알리바바 그룹 홀딩 리미티드 웹사이트 로그인 방법 및 장치
US10721231B2 (en) 2016-03-15 2020-07-21 Alibaba Group Holding Limited Website login method and apparatus
US10868813B2 (en) 2016-03-15 2020-12-15 Advanced New Technologies Co., Ltd. Website login method and apparatus

Also Published As

Publication number Publication date
EP3005608A2 (en) 2016-04-13
WO2014191768A3 (en) 2015-04-09
US20150244525A1 (en) 2015-08-27
EP3005608B1 (en) 2019-07-17
GB201309702D0 (en) 2013-07-17
JP2016526342A (ja) 2016-09-01
WO2014191768A2 (en) 2014-12-04
US9698985B2 (en) 2017-07-04

Similar Documents

Publication Publication Date Title
EP3005608B1 (en) Authentication
US8971540B2 (en) Authentication
US9106644B2 (en) Authentication
Kumari et al. Design of a provably secure biometrics-based multi-cloud-server authentication scheme
Tsai et al. A privacy-aware authentication scheme for distributed mobile cloud computing services
Jiang et al. Improvement of robust smart‐card‐based password authentication scheme
Li et al. Applying biometrics to design three‐factor remote user authentication scheme with key agreement
Tsai et al. Novel anonymous authentication scheme using smart cards
Lee et al. Three‐factor control protocol based on elliptic curve cryptosystem for universal serial bus mass storage devices
Wang et al. A smart card based efficient and secured multi-server authentication scheme
Amin et al. A more secure and privacy‐aware anonymous user authentication scheme for distributed mobile cloud computing environments
Zhu Flexible and password-authenticated key agreement scheme based on chaotic maps for multiple servers to server architecture
Choi et al. Security enhanced multi-factor biometric authentication scheme using bio-hash function
Irshad et al. A provable and secure mobile user authentication scheme for mobile cloud computing services
Irshad et al. An improved lightweight multiserver authentication scheme
Djellali et al. User authentication scheme preserving anonymity for ubiquitous devices
Zhu A provable one-way authentication key agreement scheme with user anonymity for multi-server environment
Mir et al. Decentralized, Privacy‐Preserving, Single Sign‐On
Rana et al. Provably secure authenticated content key distribution framework for IoT-enabled enterprise digital rights management systems
Li et al. An improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks
Chen et al. An efficient and secure smart card based authentication scheme
Mao et al. Trusted authority assisted three‐factor authentication and key agreement protocol for the implantable medical system
Zhu et al. A biometrics-based multi-server key agreement scheme on chaotic maps cryptosystem.
Li et al. A simple and robust anonymous two‐factor authenticated key exchange protocol
Jiang et al. An anonymous user authentication with key agreement scheme without pairings for multiserver architecture using SCPKs

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid