KR20140046455A - 정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체 - Google Patents

정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체 Download PDF

Info

Publication number
KR20140046455A
KR20140046455A KR20147002640A KR20147002640A KR20140046455A KR 20140046455 A KR20140046455 A KR 20140046455A KR 20147002640 A KR20147002640 A KR 20147002640A KR 20147002640 A KR20147002640 A KR 20147002640A KR 20140046455 A KR20140046455 A KR 20140046455A
Authority
KR
South Korea
Prior art keywords
information
algorithm
message
verifier
prover
Prior art date
Application number
KR20147002640A
Other languages
English (en)
Other versions
KR101986392B1 (ko
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 KR20140046455A publication Critical patent/KR20140046455A/ko
Application granted granted Critical
Publication of KR101986392B1 publication Critical patent/KR101986392B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3271Cryptographic 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 challenge-response

Landscapes

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

Abstract

높은 안전성을 갖는 효율적인 공개 키 인증 방식을 실현하는 것을 과제로 한다. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s에 기초하여 메시지를 생성하고, 상기 다차다변수 다항식의 조 F 및 벡터 y=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하고, k개의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 정보 처리 장치가 제공된다. 단, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성된다. 또한, 벡터 xl=(xl1, …, xln)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성된다.

Description

정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체{INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, PROGRAM, AND RECORDING MEDIUM}
본 기술은, 정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체에 관한 것이다.
정보 처리 기술이나 통신 기술의 급속한 발전에 따라서, 공문서, 사문서를 막론하고, 문서의 전자화가 급속히 진행되고 있다. 이에 수반하여, 많은 개인이나 기업은, 전자 문서의 안전 관리에 큰 관심을 기울이고 있다. 이러한 관심의 고조에 부응하여, 각 방면에서 전자 문서의 도청이나 위조 등의 탬퍼링(tempering) 행위에 대한 대항책이 활발히 연구되어 왔다. 전자 문서의 도청에 대해서는, 예를 들어 전자 문서를 암호화함으로써 안전성이 확보된다. 또한, 전자 문서의 위조에 대해서는, 예를 들어 전자 서명을 이용함으로써 안전성이 확보된다. 단, 이용하는 암호나 전자 서명이 높은 탬퍼링 내성을 갖고 있지 않으면, 충분한 안전성이 보증되지 않는다.
전자 서명은, 전자 문서의 작성자를 특정하기 위해 이용된다. 그 때문에, 전자 서명은, 전자 문서의 작성자밖에 생성할 수 없도록 해야 한다. 가령, 악의 있는 제3자가 동일한 전자 서명을 생성할 수 있게 되면, 그 제3자가 전자 문서의 작성자 행세를 할 수 있게 되어 버린다. 즉, 악의 있는 제3자에 의해 전자 문서가 위조되어버린다. 이러한 위조를 방지하기 위해서, 전자 서명의 안전성에 대해서는 다양한 논의가 교환되고 있다. 현재 널리 이용되고 있는 전자 서명 방식으로서는, 예를 들어 RSA 서명 방식이나 DSA 서명 방식 등이 알려져 있다.
RSA 서명 방식은, 「큰 합성수(composite number)에 대한 소인수분해의 곤란성(이하, '소인수분해 문제')」를 안전성의 근거로 한다. 또한, DSA 서명 방식은, 「이산대수(discrete logarithm) 문제에 대한 해의 도출 곤란성」을 안전성의 근거로 한다. 이들 근거는, 고전적인 컴퓨터를 이용하여 소인수분해 문제나 이산대수 문제를 효율적으로 풀이하는 알고리즘이 존재하지 않는 것에 기인한다. 즉, 상기한 곤란성은, 고전적인 컴퓨터에 있어서의 계산량적인 곤란성을 의미한다. 그러나, 양자 컴퓨터를 이용하면, 소인수분해 문제나 이산대수 문제에 대한 해답이 효율적으로 산출된다고 말해지고 있다.
현재 이용되고 있는 전자 서명 방식이나 공개 키 인증 방식의 대부분은, RSA 서명 방식이나 DSA 서명 방식과 마찬가지로, 소인수분해 문제나 이산대수 문제의 곤란성에 안전성의 근거를 두고 있다. 그 때문에, 이러한 전자 서명 방식이나 공개 키 인증 방식은, 양자 컴퓨터가 실용화된 경우에, 그 안전성이 확보되지 않게 된다. 따라서, 소인수분해 문제나 이산대수 문제 등, 양자 컴퓨터에 의해 용이하게 풀려버리는 문제와는 다른 문제에 안전성의 근거를 두는 새로운 전자 서명 방식 및 공개 키 인증 방식의 실현이 요구되고 있다. 양자 컴퓨터에 의해 용이하게 푸는 것이 어려운 문제로서는, 예를 들어 다변수 다항식 문제가 있다.
다변수 다항식 문제에 안전성의 근거를 두는 전자 서명 방식으로서는, 예를 들어 MI(Matsumoto-Imai cryptography), HFE(Hidden Field Equation cryptography), OV(Oil-Vinegar signature scheme), TTM(Tamed Transformation Method cryptography)에 기초하는 방식이 알려져 있다. 예를 들어, 하기의 비특허문헌 1, 2에는, HFE에 기초하는 전자 서명 방식이 개시되어 있다.
Jacques Patarin Asymmetric Cryptography with a Hidden Monomial. CRYPTO 1996, pp. 45-60. Patarin, J., Courtois, N., and Goubin, L. QUARTZ, 128-Bit Long Digital Signatures. In Naccache, D., Ed. Topics in Cryptology-CT-RSA 2001(San Francisco, CA, USA, April 2001), vol. 2020 of Lecture Notes in Computer Science, Springer-Verlag., pp. 282-297.
상기와 같이, 다변수 다항식 문제는, 양자(quantum) 컴퓨터를 이용하여도 풀이가 곤란한 NP 곤란(NP-hard) 문제라 불리는 문제의 일례이다. 통상, HFE 등으로 대표되는 다변수 다항식 문제를 이용한 공개 키 인증 방식은, 특수한 트랩도어(trapdoor)가 도입된 다차다변수 연립방정식을 이용하고 있다. 예를 들어, x1, …, xn에 관한 다차다변수 연립방정식 F(x1, …, xn)=y와 선형 변환 A 및 B가 준비되고, 선형 변환 A 및 B가 비밀리에 관리된다. 이 경우, 다차다변수 연립방정식 F, 선형 변환 A 및 B가 트랩도어로 된다.
트랩도어 F, A, B를 알고 있는 엔티티(entity)는, x1, …, xn에 관한 방정식 B(F(A (x1, …, xn)))=y'를 풀 수 있다. 한편, 트랩도어 F, A, B를 모르는 엔티티는, x1, …, xn에 관한 방정식 B(F(A(x1, …, xn)))=y'를 풀 수 없다. 이 시스템을 이용함으로써, 다차다변수 연립방정식의 해답 곤란성을 안전성의 근거로 하는 공개 키 인증 방식이나 전자 서명 방식이 실현된다.
상기와 같이, 이러한 공개 키 인증 방식이나 전자 서명 방식을 실현하기 위해서는, B(F(A(x1, …, xn)))=y를 만족하는 특수한 다차다변수 연립방정식을 준비할 필요가 있다. 또한, 서명 생성 시에 다차다변수 연립방정식 F를 풀 필요가 있다. 그 때문에, 이용 가능한 다차다변수 연립방정식 F는, 비교적 용이하게 풀리는 것으로 한정되어 있었다. 즉, 지금까지의 방식에 있어서는, 비교적 용이하게 풀리는 3개의 함수(트랩도어) B, F, A를 합성한 형태의 다차다변수 연립방정식 B(F(A(x1, …, xn)))=y밖에 이용할 수 없어, 충분한 안전성을 확보하는 것이 어려웠다.
본 기술은, 상기한 사정을 감안하여 효율적으로 푸는 수단(트랩도어)이 알려져 있지 않은 다차다변수 연립방정식을 이용하여 높은 안전성을 갖는 효율적인 공개 키 인증 방식 및 전자 서명 방식을 실현하는 것이 가능한, 신규이면서 개량된 정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체의 제공을 의도하여 고안된 것이다.
본 기술의 어떤 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성부와, 상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공부와, 상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성부와, 상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공부와, k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공부를 구비하고, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln) (l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 정보 처리 장치가 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지부와, 상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득부와, 상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공부와, 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득부와, k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공부와, 상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와, 상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증부를 구비하고, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 정보 처리 장치가 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 것과, 상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 것과, 상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 것과, 상기 검증자에게 상기 제3 정보를 제공하는 것과, k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 것을 포함하고, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 정보 처리 방법이 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 처리 장치가, 상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 것과, 상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 것과, 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 것과, k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 것과, 상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 것과, 상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 것을 포함하고, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 정보 처리 방법이 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과, 상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과, 상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과, 상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과, k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능을 컴퓨터에 실현시키기 위한 프로그램이며, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 프로그램이 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과, 상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과, 상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과, 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과, k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과, 상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와, 상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능을 컴퓨터에 실현시키기 위한 프로그램이며, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 프로그램이 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과, 상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과, 상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과, 상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과, k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체이며, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 기록 매체가 제공된다.
또한, 본 기술의 다른 관점에 의하면, 다차다변수 다항식의 조 F=(f1 …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과, 상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과, 상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과, 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과, k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과, 상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와, 상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체이며, 상기 벡터 s는 비밀 키이며, 상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며, 상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며, 상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는 기록 매체가 제공된다.
이상 설명한 바와 같이 본 기술에 의하면, 효율적으로 푸는 수단(트랩도어)이 알려져 있지 않은 다차다변수 연립방정식을 이용하여, 높은 안전성을 갖는 효율적인 공개 키 인증 방식 또는 전자 서명 방식을 실현하는 것이 가능해진다.
도 1은 공개 키 인증 방식에 관한 알고리즘의 구성에 대하여 설명하기 위한 설명도이다.
도 2는 전자 서명 방식에 관한 알고리즘의 구성에 대하여 설명하기 위한 설명도이다.
도 3은 n 패스의 공개 키 인증 방식에 관한 알고리즘의 구성에 대하여 설명하기 위한 설명도이다.
도 4는 3 패스의 공개 키 인증 방식에 관한 구체적인 알고리즘의 구성예에 대하여 설명하기 위한 설명도이다.
도 5는 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘에 대하여 설명하기 위한 설명도이다.
도 6은 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병렬화에 대하여 설명하기 위한 설명도이다.
도 7은 3 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #1)의 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 8은 3 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #1)의 병렬화 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 9는 5 패스의 공개 키 인증 방식에 관한 구체적인 알고리즘의 구성예에 대하여 설명하기 위한 설명도이다.
도 10은 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 구성예에 대하여 설명하기 위한 설명도이다.
도 11은 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병렬화에 대하여 설명하기 위한 설명도이다.
도 12는 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #1)의 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 13은 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #1)의 병렬화 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 14는 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #2)의 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 15는 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #2)의 병렬화 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 16은 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #2)의 효율적인 병렬화 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 17은 5 패스의 고차다변수 다항식을 이용한 공개 키 인증 방식(방식 #2)의 더욱 효율적인 병렬화 알고리즘의 일례에 대하여 설명하기 위한 설명도이다.
도 18은 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 방법에 대하여 설명하기 위한 설명도이다.
도 19는 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘을 더 효율적인 전자 서명 방식의 알고리즘으로 변형하는 방법에 대하여 설명하기 위한 설명도이다.
도 20은 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 방법에 대하여 설명하기 위한 설명도이다.
도 21은 5 패스의 공개 키 인증 방식에 관한 더욱 효율적인 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 방법에 대하여 설명하기 위한 설명도이다.
도 22는 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병직렬 구성에 대하여 설명하기 위한 설명도이다.
도 23은 3 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 직병렬 구성에 대하여 설명하기 위한 설명도이다.
도 24는 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병직렬 구성(병직렬 구성 #1)에 대하여 설명하기 위한 설명도이다.
도 25는 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병직렬 구성(병직렬 구성 #2)에 대하여 설명하기 위한 설명도이다.
도 26은 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 직병렬 구성(직병렬 구성 #1)에 대하여 설명하기 위한 설명도이다.
도 27은 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 직병렬 구성(직병렬 구성 #2)에 대하여 설명하기 위한 설명도이다.
도 28은 본 기술의 각자 실시 형태에 따른 알고리즘을 실행하는 것이 가능한 정보 처리 장치의 하드웨어 구성예에 대하여 설명하기 위한 설명도이다.
도 29는 본 기술의 제1 및 제 2 실시 형태에 따른 공개 키 인증 방식에 있어서 이용되는 파라미터의 바람직한 설정 방법 및 그 효과에 대하여 설명하기 위한 설명도이다.
이하에 첨부 도면을 참조하면서, 본 기술의 바람직한 실시 형태에 대하여 상세히 설명한다. 또한, 본 명세서 및 도면에 있어서, 실질적으로 동일한 기능 구성을 갖는 구성 요소에 대해서는, 동일한 번호를 부여함으로써 중복된 설명을 생략한다.
[설명의 흐름에 대하여]
여기서, 이하에 기재하는 본 기술의 실시 형태에 따른 설명의 흐름에 대하여 간단히 설명한다. 우선, 도 1을 참조하면서, 공개 키 인증 방식의 알고리즘 구성에 대하여 설명한다. 계속해서, 도 2를 참조하면서, 전자 서명 방식의 알고리즘 구성에 대하여 설명한다. 계속해서, 도 3을 참조하면서, n 패스의 공개 키 인증 방식에 대하여 설명한다.
계속해서, 도 4 내지 도 8을 참조하면서, 3 패스의 공개 키 인증 방식에 관한 알고리즘의 구성예에 대하여 설명한다. 계속해서, 도 5 내지 도 17을 참조하면서, 5 패스의 공개 키 인증 방식에 관한 알고리즘의 구성예에 대하여 설명한다. 계속해서, 도 18 내지 도 21을 참조하면서, 3 패스 및 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 방법에 대하여 설명한다.
계속해서, 도 22 내지 도 27을 참조하면서, 3 패스 및 5 패스의 공개 키 인증 방식에 관한 효율적인 알고리즘의 병직렬 구성 및 직병렬 구성에 대하여 설명한다. 계속해서, 도 28을 참조하면서, 본 기술의 제1 및 제 2 실시 형태에 따른 각 알고리즘을 실현하는 것이 가능한 정보 처리 장치의 하드웨어 구성예에 대하여 설명한다. 마지막으로, 본 실시 형태의 기술적 사상에 대하여 정리하고, 상기 기술적 사상으로부터 얻어지는 작용 효과에 대하여 간단히 설명한다.
(설명 항목)
1: 서론
1-1: 공개 키 인증 방식의 알고리즘
1-2: 전자 서명 방식의 알고리즘
1-3: n 패스의 공개 키 인증 방식
2: 3 패스의 공개 키 인증 방식에 관한 알고리즘의 구성
2-1: 구체적인 알고리즘의 구성예
2-2: 2차 다변수 다항식에 기초하는 효율적인 알고리즘
2-2-1: 기본 구성
2-2-2: 병렬화 알고리즘
2-3: 고차다변수 다항식에 기초하는 효율적인 알고리즘(방식 #1)
2-3-1: 기본 구성
2-3-2: 병렬화 알고리즘
3: 5 패스의 공개 키 인증 방식에 관한 알고리즘의 구성
3-1: 구체적인 알고리즘의 구성예
3-2: 2차 다변수 다항식에 기초하는 효율적인 알고리즘
3-2-1: 기본 구성
3-2-2: 병렬화 알고리즘
3-3: 고차다변수 다항식에 기초하는 효율적인 알고리즘(실시예 1)
3-3-1: 기본 구성
3-3-2: 병렬화 알고리즘
3-4: 고차다변수 다항식에 기초하는 효율적인 알고리즘(실시예 2)
3-4-1: 기본 구성
3-4-2: 병렬화 알고리즘(구성예 1)
3-4-3: 병렬화 알고리즘(구성예 2: 고효율)
3-4-4: 병렬화 알고리즘(구성예 2: 더욱 고효율)
4: 전자 서명 방식으로의 변형
4-1: 3 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형
4-1-1: 전자 서명 알고리즘(구성예 1)
4-1-2: 전자 서명 알고리즘(구성예 2: 고효율)
4-2: 5 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형
4-2-1: 전자 서명 알고리즘(구성예 1)
4-2-2: 전자 서명 알고리즘(구성예 2: 고효율)
5: 하이브리드형 알고리즘
5-1: 3 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘
5-1-1: 병직렬 알고리즘
5-1-2: 직병렬 알고리즘
5-2: 5 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘
5-2-1: 병직렬 알고리즘(구성예 #1)
5-2-2: 병직렬 알고리즘(구성예 #2)
5-2-3: 직병렬 알고리즘(구성예 #1)
5-2-4: 직병렬 알고리즘(구성예 #2)
6: 보충
6-1: 시스템 파라미터의 설정 방법
6-2: 비정상적 요구에 대한 응답 방법
6-2-1: 증명자에 의한 응답 방법에 대하여
6-2-2: 검증자에 의한 응답 방법에 대하여
7: 하드웨어 구성예
8: 결론
<1: 서론>
본 실시 형태는, 다차다변수 연립방정식에 대한 해를 구하는 문제의 곤란성에 안전성의 근거를 두는 공개 키 인증 방식 및 전자 서명 방식에 관한 것이다. 단, 본 실시 형태는, HFE 전자 서명 방식 등의 종래 방법과는 달리, 효율적으로 푸는 수단(트랩도어)을 갖지 않는 다차다변수 연립방정식을 이용하는 공개 키 인증 방식 및 전자 서명 방식에 관한 것이다. 우선, 공개 키 인증 방식의 알고리즘, 전자 서명 방식의 알고리즘 및 n 패스의 공개 키 인증 방식에 대하여, 그 개요를 간단히 설명한다.
[1-1: 공개 키 인증 방식의 알고리즘]
우선, 도 1을 참조하면서, 공개 키 인증 방식의 알고리즘에 대하여 개요를 설명한다. 도 1은, 공개 키 인증 방식의 알고리즘에 대하여 개요를 설명하기 위한 설명도이다.
공개 키 인증은, 어떤 사람(증명자)이 공개 키 pk 및 비밀 키 sk를 이용하여, 타인(검증자)에게 본인임을 납득시키기 위해 이용된다. 예를 들어, 증명자 A의 공개 키 pkA는, 검증자 B에게 공개된다. 한편, 증명자 A의 비밀 키 skA는, 증명자 A에 의해 비밀리에 관리된다. 공개 키 인증의 시스템에 있어서는, 공개 키 pkA에 대응하는 비밀 키 skA를 아는 자가 증명자 A 본인이라고 간주된다.
공개 키 인증의 시스템을 이용하여 증명자 A가 증명자 A 본인임을 검증자 B에게 증명하기 위해서는, 대화 프로토콜을 통하여, 증명자 A가 공개 키 pkA에 대응하는 비밀 키 skA를 알고 있다는 증거를 검증자 B에게 제시하면 된다. 그리고, 증명자 A가 비밀 키 skA를 알고 있다는 증거가 검증자 B에게 제시되고, 그 증거를 검증자 B가 확인을 마친 경우, 증명자 A의 정당성(본인인 것)이 증명되게 된다.
단, 공개 키 인증의 시스템에는, 안전성을 담보하기 위해 이하의 조건이 요구된다.
첫 번째 조건은, 「대화 프로토콜을 실행하였을 때 비밀 키 sk를 갖지 않는 위증자에 의해 위증이 성립되어버릴 확률을 한없이 작게 한다」는 것이다. 이 첫 번째 조건이 성립되는 것을 「건전성」이라 한다. 즉, 건전성이란, 「비밀 키 sk를 갖지 않는 위증자에 의해, 대화 프로토콜의 실행 중에 무시할 수 없는 확률로 위증이 성립되는 일은 없는 것」이라고 바꿔 말할 수 있다. 두 번째 조건은, 「대화 프로토콜을 실행하였다고 해도, 증명자 A가 갖는 비밀 키 skA의 정보가 검증자 B에게 일절 누설되는 경우가 없다」는 것이다. 이 두 번째 조건이 성립되는 것을 「영지식성(zero knowledge)」이라고 한다.
안전하게 공개 키 인증을 행하기 위해서는, 건전성 및 영지식성을 갖는 대화 프로토콜을 이용할 필요가 있다. 가령, 건전성 및 영지식성을 갖지 않는 대화 프로토콜을 이용하여 인증 처리를 행한 경우에는, 위증된 가능성 및 비밀 키의 정보가 누설되어버릴 가능성을 부정할 수 없기 때문에, 처리 자체가 성공리에 완료되어도 증명자의 정당성을 증명한 것으로는 되지 않는다. 따라서, 대화 프로토콜의 건전성 및 영지식성을 어떻게 보증할지가 중요해진다.
(모델)
공개 키 인증 방식의 모델에는, 도 1에 도시한 바와 같이, 증명자와 검증자라고 하는 2개의 엔티티가 존재한다. 증명자는, 키 생성 알고리즘 Gen을 이용하여, 증명자 고유의 비밀 키 sk과 공개 키 pk의 조를 생성한다. 계속해서, 증명자는, 키 생성 알고리즘 Gen을 이용하여 생성한 비밀 키 sk과 공개 키 pk의 조를 이용하여 검증자와 대화 프로토콜을 실행한다. 이때, 증명자는, 증명자 알고리즘 P를 이용하여 대화 프로토콜을 실행한다. 상기와 같이, 증명자는, 증명자 알고리즘 P를 이용하여, 대화 프로토콜 중에서 비밀 키 sk를 보유하고 있는 증거를 검증자에게 제시한다.
한편, 검증자는, 검증자 알고리즘 V를 이용하여 대화 프로토콜을 실행하고, 증명자가 공개하고 있는 공개 키에 대응하는 비밀 키를, 그 증명자가 보유하고 있는지 여부를 검증한다. 즉, 검증자는, 증명자가 공개 키에 대응하는 비밀 키를 보유하고 있는지 여부를 검증하는 엔티티이다. 이와 같이, 공개 키 인증 방식의 모델은, 증명자와 검증자라고 하는 2개의 엔티티 및 키 생성 알고리즘 Gen, 증명자 알고리즘 P, 검증자 알고리즘 V라고 하는 3개의 알고리즘에 의해 구성된다.
또한, 이하의 설명에 있어서, 「증명자」 「검증자」라고 하는 표현을 사용하지만, 이들 표현은 어디까지나 엔티티를 의미하는 것이다. 따라서, 키 생성 알고리즘 Gen, 증명자 알고리즘 P를 실행하는 주체는, 「증명자」의 엔티티에 대응하는 정보 처리 장치이다. 마찬가지로, 검증자 알고리즘 V를 실행하는 주체는, 정보 처리 장치이다. 이들 정보 처리 장치의 하드웨어 구성은, 예를 들어 도 28에 나타낸 바와 같다. 즉, 키 생성 알고리즘 Gen, 증명자 알고리즘 P, 검증자 알고리즘 V는, ROM(904), RAM(906), 기억부(920), 리무버블 기록 매체(928) 등에 기록된 프로그램에 기초하여 CPU(902) 등에 의해 실행된다.
(키 생성 알고리즘 Gen)
키 생성 알고리즘 Gen은, 증명자에 의해 이용된다. 키 생성 알고리즘 Gen은, 증명자에게 고유한 비밀 키 sk와 공개 키 pk의 조를 생성하는 알고리즘이다. 키 생성 알고리즘 Gen에 의해 생성된 공개 키 pk는 공개된다. 그리고, 공개된 공개 키 pk는, 검증자에 의해 이용된다. 한편, 키 생성 알고리즘 Gen에 의해 생성된 비밀 키 sk는, 증명자가 비밀리에 관리한다. 그리고, 증명자에 의해 비밀리에 관리되는 비밀 키 sk는, 공개 키 pk에 대응하는 비밀 키 sk를 증명자가 보유하고 있는 것을 검증자에 대하여 증명하기 위해 이용된다. 형식적으로, 키 생성 알고리즘 Gen은, 시큐리티 파라미터 1λ(λ는 0 이상의 정수)를 입력으로 하고, 비밀 키 sk와 공개 키 pk를 출력하는 알고리즘으로서, 하기의 수학식 1과 같이 표현된다.
Figure pct00001
(증명자 알고리즘 P)
증명자 알고리즘 P는, 증명자에 의해 이용된다. 증명자 알고리즘 P는, 공개 키 pk에 대응하는 비밀 키 sk를 증명자가 보유하고 있는 것을 검증자에 대하여 증명하기 위한 알고리즘이다. 즉, 증명자 알고리즘 P는, 비밀 키 sk와 공개 키 pk를 입력으로 하고, 대화 프로토콜을 실행하는 알고리즘이다.
(검증자 알고리즘 V)
검증자 알고리즘 V는, 검증자에 의해 이용된다. 검증자 알고리즘 V는, 대화 프로토콜 중에서, 공개 키 pk에 대응하는 비밀 키 sk를 증명자가 보유하고 있는 것인지 여부를 검증하는 알고리즘이다. 검증자 알고리즘 V는, 공개 키 pk를 입력으로 하고, 대화 프로토콜의 실행 결과에 따라서 0 또는 1(1bit)을 출력하는 알고리즘이다. 또한, 검증자는, 검증자 알고리즘 V가 0을 출력한 경우에는 증명자가 부정한 것이라고 판단하고, 1을 출력한 경우에는 증명자가 정당한 것이라고 판단한다. 형식적으로, 검증자 알고리즘 V는, 하기의 수학식 2와 같이 표현된다.
Figure pct00002
상기와 같이, 의미가 있는 공개 키 인증을 실현하기 위해서는, 대화 프로토콜이 건전성 및 영지식성이라고 하는 2개의 조건을 만족하고 있을 필요가 있다. 그러나, 증명자가 비밀 키 sk를 보유하고 있는 것을 증명하기 위해서는, 증명자가 비밀 키 sk에 의존한 수속을 실행하고, 그 결과를 검증자에게 통지한 후에, 그 통지 내용에 기초하는 검증을 검증자에게 실행시킬 필요가 있다. 비밀 키 sk에 의존한 수속을 실행하는 것은, 건전성을 담보하기 위해 필요하다. 한편으로, 비밀 키 sk의 정보가 일절 검증자에게 누설되지 않도록 할 필요가 있다. 그 때문에, 이들의 요건을 충족시키도록, 상기한 키 생성 알고리즘 Gen, 증명자 알고리즘 P, 검증자 알고리즘 V를 교묘하게 설계할 필요가 있다.
이상, 공개 키 인증 방식의 알고리즘에 대하여, 그 개요를 설명하였다.
[1-2: 전자 서명 방식의 알고리즘]
다음으로, 도 2를 참조하면서, 전자 서명 방식의 알고리즘에 대하여 개요를 설명한다. 도 2는, 전자 서명 방식의 알고리즘에 대하여 개요를 설명하기 위한 설명도이다.
종이 문서와는 달리, 어떤 전자화된 데이터에 대하여 날인하거나 서명을 기재하거나 할 수는 없다. 그 때문에, 전자화된 데이터의 작성자를 증명하기 위해서는, 종이 문서에 날인하거나 서명을 기재하거나 하는 것과 동등한 효과가 얻어지는 전자적인 시스템을 필요로 한다. 이 시스템이 전자 서명이다. 전자 서명이란, 데이터의 작성자밖에 모르는 서명 데이터를 데이터에 관련지어 수령자에게 제공하고, 그 서명 데이터를 수령자측에서 검증하는 시스템을 말한다.
(모델)
전자 서명 방식의 모델에는, 도 2에 도시한 바와 같이, 서명자 및 검증자라고 하는 2개의 엔티티가 존재한다. 그리고, 전자 서명 방식의 모델은, 키 생성 알고리즘 Gen, 서명 생성 알고리즘 Sig, 서명 검증 알고리즘 Ver이라고 하는 3개의 알고리즘에 의해 구성된다.
서명자는, 키 생성 알고리즘 Gen을 이용하여 서명자 고유의 서명 키 sk와 검증 키 pk의 조를 생성한다. 또한, 서명자는, 서명 생성 알고리즘 Sig를 이용하여 문서 M에 부여하는 전자 서명 σ를 생성한다. 즉, 서명자는, 문서 M에 전자 서명을 부여하는 엔티티이다. 한편, 검증자는, 서명 검증 알고리즘 Ver을 이용하여 문서 M에 부여된 전자 서명 σ를 검증한다. 즉, 검증자는, 문서 M의 작성자가 서명자인지 여부를 확인하기 위해서, 전자 서명 σ를 검증하는 엔티티이다.
또한, 이하의 설명에 있어서, 「서명자」 「검증자」라고 하는 표현을 사용하지만, 이들 표현은 어디까지나 엔티티를 의미하는 것이다. 따라서, 키 생성 알고리즘 Gen, 서명 생성 알고리즘 Sig를 실행하는 주체는, 「서명자」의 엔티티에 대응하는 정보 처리 장치이다. 마찬가지로, 서명 검증 알고리즘 Ver을 실행하는 주체는, 정보 처리 장치이다. 이들 정보 처리 장치의 하드웨어 구성은, 예를 들어 도 28에 나타낸 바와 같다. 즉, 키 생성 알고리즘 Gen, 서명 생성 알고리즘 Sig, 서명 검증 알고리즘 Ver은, ROM(904), RAM(906), 기억부(920), 리무버블 기록 매체(928) 등에 기록된 프로그램에 기초하여 CPU(902) 등에 의해 실행된다.
(키 생성 알고리즘 Gen)
키 생성 알고리즘 Gen은, 서명자에 의해 이용된다. 키 생성 알고리즘 Gen은, 서명자 고유의 서명 키 sk와 검증 키 pk의 조를 생성하는 알고리즘이다. 키 생성 알고리즘 Gen에 의해 생성된 검증 키 pk는 공개된다. 한편, 키 생성 알고리즘 Gen에 의해 생성된 서명 키 sk는, 서명자에 의해 비밀리에 관리된다. 그리고, 서명 키 sk는, 문서 M에 부여되는 전자 서명 σ의 생성에 이용된다. 예를 들어, 키 생성 알고리즘 Gen은, 시큐리티 파라미터 1λ(λ는 0 이상의 정수)를 입력으로 하고, 서명 키 sk 및 공개 키 pk를 출력한다. 이 경우, 키 생성 알고리즘 Gen은, 형식적으로, 하기의 수학식 3과 같이 표현할 수 있다.
Figure pct00003
(서명 생성 알고리즘 Sig)
서명 생성 알고리즘 Sig는, 서명자에 의해 이용된다. 서명 생성 알고리즘 Sig는, 문서 M에 부여되는 전자 서명 σ를 생성하는 알고리즘이다. 서명 생성 알고리즘 Sig는, 서명 키 sk와 문서 M을 입력으로 하고, 전자 서명 σ를 출력하는 알고리즘이다. 이 서명 생성 알고리즘 Sig는, 형식적으로, 하기의 수학식 4와 같이 표현할 수 있다.
Figure pct00004
(서명 검증 알고리즘 Ver)
서명 검증 알고리즘 Ver은, 검증자에 의해 이용된다. 서명 검증 알고리즘 Ver은, 전자 서명 σ가 문서 M에 대한 정당한 전자 서명인지 여부를 검증하는 알고리즘이다. 서명 검증 알고리즘 Ver은, 서명자의 검증 키 pk, 문서 M, 전자 서명 σ를 입력으로 하고, 0 또는 1(1bit)을 출력하는 알고리즘이다. 이 서명 검증 알고리즘 Ver은, 형식적으로, 하기의 수학식 5와 같이 표현할 수 있다. 또한, 검증자는, 서명 검증 알고리즘 Ver이 0을 출력한 경우(공개 키 pk가 문서 M과 전자 서명 σ를 거부한 경우)에 전자 서명 σ가 부당하다고 판단하고, 1을 출력한 경우(공개 키 pk가 문서 M과 전자 서명 σ를 수리한 경우)에 전자 서명 σ가 정당하다고 판단한다.
Figure pct00005
이상, 전자 서명 방식의 알고리즘에 대하여, 그 개요를 설명하였다.
[1-3: n 패스의 공개 키 인증 방식]
다음으로, 도 3을 참조하면서, n 패스의 공개 키 인증 방식에 대하여 설명한다. 도 3은, n 패스의 공개 키 인증 방식에 대하여 설명하기 위한 설명도이다.
상기와 같이, 공개 키 인증 방식은, 대화 프로토콜 중에서, 증명자가 공개 키 pk에 대응하는 비밀 키 sk를 보유하고 있는 것을 검증자에게 증명하는 인증 방식이다. 또한, 대화 프로토콜은, 건전성 및 영지식성이라고 하는 2개의 조건을 만족할 필요가 있다. 그 때문에, 대화 프로토콜 중에서는, 도 3에 도시한 바와 같이, 증명자 및 검증자의 양쪽이 각각 처리를 실행하면서 n회의 정보 교환을 행한다.
n 패스의 공개 키 인증 방식의 경우, 증명자 알고리즘 P를 이용하여 증명자에 의해 처리(공정 #1)가 실행되고, 정보 T1이 검증자에게 송신된다. 계속해서, 검증자 알고리즘 V를 이용하여 검증자에 의해 처리(공정 #2)가 실행되고, 정보 T2가 증명자에게 송신된다. 또한, k=3 내지 n에 대하여 처리(공정 #k)의 실행 및 정보 Tk의 송신이 순차 행해지고, 마지막으로 처리(공정 #n+1)가 실행된다. 이와 같이, 정보가 n회 송수신되는 방식의 것을 「n 패스」의 공개 키 인증 방식이라 한다.
이상, n 패스의 공개 키 인증 방식에 대하여 설명하였다.
<2: 3 패스의 공개 키 인증 방식에 관한 알고리즘의 구성>
이하, 3 패스의 공개 키 인증 방식에 관한 알고리즘에 대하여 설명한다. 또한, 이하의 설명에 있어서, 3 패스의 공개 키 인증 방식을 「3 패스 방식」이라 칭하는 경우가 있다.
[2-1: 구체적인 알고리즘의 구성예]
우선, 도 4를 참조하면서, 3 패스 방식에 관한 구체적인 알고리즘의 구성예에 대하여 소개한다. 도 4는, 3 패스 방식에 관한 구체적인 알고리즘의 구성에 대하여 설명하기 위한 설명도이다. 또한, 3 패스 방식의 알고리즘은, 키 생성 알고리즘 Gen, 증명자 알고리즘 P, 검증자 알고리즘 V에 의해 구성된다. 이하, 각 알고리즘의 구성에 대하여 설명한다.
(키 생성 알고리즘 Gen)
키 생성 알고리즘 Gen은, 환 K로 정의되는 m개의 다변수 다항식 f1(x1, …, xn), …, fm(x1, …, xn) 및 벡터 s=(s1, …, sn)∈Kn을 생성한다. 다음으로, 키 생성 알고리즘 Gen은, y=(y1, …, ym)←(f1(s), …, fm(s))를 계산한다. 그리고, 키 생성 알고리즘 Gen은, (f1(x1, …, xn), …, fm(x1, …, xn), y)를 공개 키 pk에 설정하고, s를 비밀 키로 설정한다. 또한, 이하에서는, 벡터(x1, …, xn)를 x라 표기하고, 다변수 다항식의 조(f1(x), …, fm(x))를 F(x)라 표기하기로 한다.
(증명자 알고리즘 P, 검증자 알고리즘 V)
다음으로, 도 4를 참조하면서, 대화 프로토콜 중에서 증명자 알고리즘 P가 실행하는 처리 및 검증자 알고리즘 V가 실행하는 처리에 대하여 설명한다.
상기한 대화 프로토콜 중에서, 증명자는, 비밀 키 s의 정보를 검증자에게 일절 누설하지 않고, 「자신이 y=F(s)를 만족하는 s를 알고 있다는 것」을 검증자에게 나타낸다. 한편, 검증자는, 증명자가 y=F(s)를 만족하는 s를 알고 있는지 여부를 검증한다. 또한, 공개 키 pk는, 검증자에게 공개되어 있는 것으로 한다. 또한, 비밀 키 s는, 증명자에 의해 비밀리에 관리되어 있는 것으로 한다. 이하, 도 4에 나타낸 흐름도를 따라서 설명을 진행시킨다.
공정 #1:
우선, 증명자 알고리즘 P는, 임의로 수 seed0을 선택한다. 계속해서, 증명자 알고리즘 P는, 의사 난수 생성기 PRNG에 수 seed0을 적용하여 벡터 r0∈Kn 및 수seed1을 생성한다. 즉, 증명자 알고리즘 P는, (r0, seed1)←PRNG(seed0)을 계산한다. 계속해서, 증명자 알고리즘 P는, 의사 난수 생성기 PRNG에 수 seed1을 적용하여 다변수 다항식 F1(x)=(f11(x), …, f1m(x))를 생성한다. 즉, 증명자 알고리즘 P는, F1←PRNG(seed1)을 계산한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 또한, 증명자 알고리즘 P는, F2(x)←F(x+r0)+F1(x)를 계산한다. 이 계산은, x에 관하여 다변수 다항식 F(x+r0)을 다변수 다항식 F1(x)에 의해 마스크하는 조작에 상당한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, F1(r1) 및 r1의 해시값 c0을 생성한다. 즉, 증명자 알고리즘 P는, c0←H(F1(r1), r1)을 계산한다. 또한, 증명자 알고리즘 P는, 수 seed1의 해시값 c1을 생성한다. 즉, 증명자 알고리즘 P는, c1←H(seed1)를 계산한다. 또한, 증명자 알고리즘 P는, 다변수 다항식 F2의 해시값 c2를 생성한다. 즉, 증명자 알고리즘 P는, c2←H(F2)를 계산한다. 이 해시값(c0, c1, c2)은 메시지로서 검증자 알고리즘 V로 보내진다. 이때, s에 관한 정보, r0에 관한 정보, r1에 관한 정보가 검증자에게 일절 누설되지 않는 점에 주의하길 바란다.
공정 #2:
메시지(c0, c1, c2)를 수취한 검증자 알고리즘 V는, 3개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 3개의 수치 {0, 1, 2} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 Ch에 설정한다. 이 요구 Ch는 증명자 알고리즘 P로 보내진다.
공정 #3:
요구 Ch를 수취한 증명자 알고리즘 P는, 수취한 요구 Ch에 따라서 검증자 알고리즘 V로 보내는 회답 Rsp를 생성한다. Ch=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=seed0을 생성한다. Ch=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=(seed1, r1)을 생성한다. Ch=2의 경우, 증명자 알고리즘 P는, 회답 Rsp=(F2, r1)을 생성한다. 공정 #3에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다. 이때, Ch=0의 경우에는 r1에 관한 정보가 검증자에게 일절 누설되어 있지 않으며, Ch=1 또는 2의 경우에는 r0에 관한 정보가 검증자에게 일절 누설되지 않는다는 점에 주의하길 바란다.
공정 #4:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
Ch=0의 경우, 검증자 알고리즘 V는, (r0, seed1)←PRNG(Rsp)를 계산한다. 또한, 검증자 알고리즘 V는, F1←PRNG(seed1)을 계산한다. 그리고, 검증자 알고리즘 V는, c1=H(seed1)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, c2=H(F(x+r0)+F1(x))의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=1의 경우, 검증자 알고리즘 V는, (seed1, r1)←Rsp라 한다. 또한, 검증자 알고리즘 V는, F1←PRNG(seed1)을 계산한다. 그리고, 검증자 알고리즘 V는, c0=H(F1(r1), r1)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, c1=H(seed1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=2의 경우, 검증자 알고리즘 V는, (F2, r1)←Rsp라 한다. 그리고, 검증자 알고리즘 V는, c0=H(F2(r1)-y, r1))의 등호가 성립되는 여부를 검증한다. 또한, 검증자 알고리즘 V는, c2=H(F2)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
(건전성에 대하여)
여기서, 3 패스 방식에 관한 알고리즘의 건전성에 대하여 설명을 보충한다. 3 패스 방식에 관한 알고리즘의 건전성은, 「검증자 알고리즘 V가 선택 가능한 요구 Ch=0, 1, 2의 모두에 대하여, 증명자 알고리즘 P가 올바른 회답 Rsp를 되돌린다면, 하기의 수학식 6 및 7을 만족하는 F2, F1, r0, r1이 계산 가능해진다」라고 하는 논리에 기초하여 보증되어 있다.
Figure pct00006
Figure pct00007
상기한 건전성이 보증됨으로써, 다차다변수 연립방정식의 해를 구하는 문제를 풀지 않는 한은 2/3보다 높은 확률로 위증이 성공하는 것은 불가능하다고 보증된다. 즉, 검증자의 요구 Ch=0, 1, 2의 모두에 정확하게 회답하기 위해서는, 위증자가 상기의 수학식 6 및 7을 만족하는 F2, F1, r0, r1 을 계산할 요가 있다. 다시 말하면, 위증자는 F(s)=y를 만족하는 s를 계산할 필요가 있다. 단, 검증자의 요구 Ch=0, 1, 2의 기껏해야 2개에 대하여 위증자가 정확하게 회답할 수 있게 될 가능성은 남는다. 그 때문에, 위증의 성공 확률은 2/3로 된다. 또한, 상기한 대화 프로토콜을 충분한 횟수만큼 반복하여 실행하게 되면, 위증의 성공 확률은 무시할 수 있을 정도로 작아진다.
(해시 함수 H에 대하여)
여기서, 해시 함수 H에 대하여 설명을 보충한다. 상기한 알고리즘에서는, 해시 함수 H를 이용하여 c0, c1, c2 등을 계산하고 있지만, 해시 함수 H 대신에 커미트먼트(commitment) 함수 COM을 이용하여도 된다. 커미트먼트 함수 COM은, 문자열 S 및 난수 ρ를 인수로 취하는 함수이다. 커미트먼트 함수의 예로서는, Shai Halevi와 Silvio Micali에 의해 국제 회의 CRYPTO1996에서 발표된 방식 등이 있다.
예를 들어, 커미트먼트 함수 COM을 이용하여 c0, c1, c2를 계산하는 경우에 대하여 생각해 보기로 하자. 이 경우, c0, c1, c2를 계산하기 전에 난수 ρ0, ρ1, ρ2를 준비하고, 해시 함수 H(·)를 적용하는 대신에 커미트먼트 함수 COM(·, ρ0), COM(·, ρ1), COM(·, ρ2)를 적용하여 c0, c1, c2를 생성한다. 또한, 검증자가 ci를 생성하기 위해 필요한 ρi는, 회답 Rsp에 포함하여 보내지도록 한다.
이상, 3 패스 방식에 관한 구체적인 알고리즘의 구성예에 대하여 소개하였다.
[2-2: 2차 다변수 다항식에 기초하는 효율적인 알고리즘]
다음으로, 3 패스 방식에 관한 알고리즘을 효율화하는 방법에 대하여 설명한다. 여기에서는, 다변수 다항식 F로서 2차 다항식의 조(f1(x), …, fm(x))를 이용하는 경우에 대하여 설명한다. 단, 2차 다항식 fi(x)는 하기의 수학식 8과 같이 표현되는 것으로 한다.
Figure pct00008
또한, 2차 다항식의 조(f1(x), …, fm(x))는 하기의 수학식 9와 같이 표현할 수 있다. 단, x=(x1, …, xn)이다. 또한, A1, …, Am은, n×n 행렬이다. 또한, b1, …, bm은 각각 n×1 벡터이다.
Figure pct00009
이 표현을 이용하면, 다변수 다항식 F는, 하기의 수학식 10 및 11과 같이 표현할 수 있다. 이 표현이 성립되는 것은, 하기의 수학식 12로부터 용이하게 확인할 수 있다.
Figure pct00010
Figure pct00011
Figure pct00012
이와 같이 F(x+y)를 x에 의존하는 제1 부분과, y에 의존하는 제2 부분과, x 및 y의 양쪽에 의존하는 제3 부분으로 나누었을 때, 제3 부분에 대응하는 항 G(x, y)는 x 및 y에 대하여 쌍선형이 된다. 이 성질을 이용하면, 효율적인 알고리즘을 구축하는 것이 가능해진다.
예를 들어, 벡터 t0∈Kn, e0∈Km을 이용하여, 다변수 다항식 F(x+r)의 마스크에 이용하는 다변수 다항식 F1(x)를 F1(x)=G(x, t0)+e0이라 표현한다. 이 경우, 다변수 다항식 F(x+r0)과 G(x)의 합은, 하기의 수학식 13과 같이 표현된다.
여기서, t1=r0+t0, e1=F(r0)+e0으로 놓으면, 다변수 다항식 F2(x)=F(x+r0)+F1(x)는 벡터 t1∈Kn, e1∈Km에 의해 표현할 수 있다. 그 때문에, F1(x)=G(x, t0)+e0으로 설정하면, Kn 상의 벡터 및 Km 상의 벡터를 이용하여 F1 및 F2를 표현할 수 있게 되고, 통신에 필요한 데이터 사이즈를 대폭 저감시키는 것이 가능해진다. 구체적으로는, 수천 내지 수만 배 정도, 통신 효율이 향상된다.
Figure pct00013
또한, 상기한 변형에 의해, F2(또는 F1)로부터 r0에 관한 정보가 일절 누설되는 경우는 없다. 예를 들어, e1 및 t1(또는 e0 및 t0)을 부여하여도, e0 및 t0(또는 e1 및 t1)을 모르는 한, r0의 정보를 일절 알 수 없다. 따라서, 영지식성이 담보된다. 이하, 도 5 및 도 6을 참조하면서, 3 패스 방식에 관한 효율적인 알고리즘에 대하여 설명한다.
(2-2-1: 기본 구성(도 5))
우선, 도 5를 참조하면서, 3 패스 방식에 관한 효율적인 알고리즘의 기본 구성에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 5에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 벡터 r0, t0∈Kn 및 e0∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 또한, 증명자 알고리즘 P는, t1←r0-t0을 계산한다. 계속해서, 증명자 알고리즘 P는, e1←F(r0)-e0을 계산한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, c0←H(r1, G(t0, r1)+e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c1←H(t0, e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c2←H(t1, e1)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1, c2)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1, c2)를 수취한 검증자 알고리즘 V는, 3개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 3개의 수치 {0, 1, 2} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 Ch에 설정한다. 이 요구 Ch는 증명자 알고리즘 P로 보내진다.
공정 #3:
요구 Ch를 수취한 증명자 알고리즘 P는, 수취한 요구 Ch에 따라서 검증자 알고리즘 V로 보내는 회답 Rsp를 생성한다. Ch=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r0, t1, e1)을 생성한다. Ch=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r1, t0, e0)을 생성한다. Ch=2의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r1, t1, e1)을 생성한다. 공정 #3에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #4:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
Ch=0의 경우, 검증자 알고리즘 V는, c1=H(r0-t1, F(r0)-e1)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, c2=H(t1, e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=1의 경우, 검증자 알고리즘 V는, c0=H(r1, G(t0, r1)+e0)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, c1=H(t0, e0)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=2의 경우, 검증자 알고리즘 V는, c0=H(r1, y-F(r1)-G(t1, r1)-e1)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, c2=H(t1, e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 3 패스 방식에 관한 효율적인 알고리즘의 구성예에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다.
(2-2-2: 병렬화 알고리즘(도 6))
다음으로, 도 6을 참조하면서, 도 5에 나타낸 효율적인 알고리즘을 병렬화하는 방법에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
전술한 바와 같이, 상기한 대화 프로토콜을 적용하면, 위증이 성공할 확률을 2/3 이하로 억제할 수 있다. 따라서, 이 대화 프로토콜을 2회 실행하면, 위증이 성공할 확률을 (2/3)2 이하로 억제할 수 있다. 또한, 이 대화 프로토콜을 N회 실행하면, 위증이 성공할 확률은 (2/3)N으로 되고, N을 충분히 큰 수(예를 들어, N=140)로 하면, 위증이 성공할 확률은 무시할 수 있을 정도로 작아진다.
대화 프로토콜을 복수회 실행하는 방법으로서는, 예를 들어, 메시지, 요구, 회답의 교환을 축차적으로 복수회 반복하는 직렬적인 방법과, 1회분의 교환에서 복수회분의 메시지, 요구, 회답의 교환을 행하는 병렬적인 방법이 생각된다. 여기에서는, 3 패스 방식에 관한 상기한 대화 프로토콜을 병렬적으로 실행하는 알고리즘(이하, 병렬화 알고리즘)에 대하여 설명한다.
공정 #1:
증명자 알고리즘 P는, i=1 내지 N에 대하여 이하의 처리 (1) 내지 처리 (6)을 실행한다.
처리 (1): 증명자 알고리즘 P는, 랜덤하게 벡터 r0i, t0i∈Kn 및 e0i∈Km을 생성한다.
처리 (2): 증명자 알고리즘 P는, r1i←s-r0i를 계산한다. 이 계산은, 비밀 키 s를 벡터 r0i에 의해 마스크하는 조작에 상당한다. 또한, 증명자 알고리즘 P는, t1i←r0i+t0i를 계산한다.
처리 (3): 증명자 알고리즘 P는, e1i←F(r0i)-e0i를 계산한다.
처리 (4): 증명자 알고리즘 P는, c0i←H(r1i, G(r1i, t0i)+e0i)를 계산한다.
처리 (5): 증명자 알고리즘 P는, c1i←H(t0i, e0i)를 계산한다.
처리 (6): 증명자 알고리즘 P는, c2i←H(t1i, e1i)를 계산한다.
공정 #1(계속)
i=1 내지 N에 대하여 상기한 처리 (1) 내지 처리 (6)을 실행한 후, 증명자 알고리즘 P는, Cmt←H(c01, c11, c21, …, c0N, c1N, c2N)를 계산한다. 공정 #1에서 생성된 해시값 Cmt는, 검증자 알고리즘 V로 보내진다. 이와 같이, 메시지(c01, c11, c21, …, c0N, c1N, c2N)를 해시값으로 변환하고 나서 검증자 알고리즘 V로 보냄으로써, 통신량을 삭감하는 것이 가능해진다.
공정 #2:
해시값 Cmt를 수취한 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 3개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 검증 패턴의 종류를 나타내는 3개의 수치 {0, 1, 2} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 Chi에 설정한다. 요구 Ch1, …, ChN은, 증명자 알고리즘 P로 보내진다.
공정 #3:
요구 Ch1, …, ChN을 수취한 증명자 알고리즘 P는, 수취한 요구 Ch1, …, ChN의 각각에 대응하여 검증자 알고리즘 V로 보내는 회답 Rsp1, …, RspN을 생성한다. Chi=0의 경우, 증명자 알고리즘 P는, Rspi=(r0i, t1i, e1i, c0i)를 생성한다. Chi=1의 경우, 증명자 알고리즘 P는, Rspi=(r1i, t0i, e0i, c2i)를 생성한다. Chi=2의 경우, 증명자 알고리즘 P는, Rspi=(r1i, t1i, e1i, c1i)를 생성한다.
공정 #3에서 생성된 회답 Rsp1, …, RspN은, 검증자 알고리즘 V로 보내진다.
공정 #4:
회답 Rsp1, …, RspN을 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp1, …, RspN을 이용하여 이하의 처리 (1) 내지 처리 (3)을 i=1 내지 N에 대하여 실행한다. 단, 검증자 알고리즘 V는, Chi=0의 경우에 처리 (1)을 실행하고, Chi=1의 경우에 처리 (2)를 실행하고, Chi=2의 경우에 처리 (3)을 실행한다.
처리 (1): Chi=0의 경우, 검증자 알고리즘 V는, Rspi로부터 (r0i, t1i, e1i, c0i)를 취출한다. 계속해서, 검증자 알고리즘 V는, c1i=H(r0i-t1i, F(r0i)-e1i)를 계산한다. 또한, 검증자 알고리즘 V는, c2i=H(t1i, e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i)를 유지한다.
처리 (2): Chi=1의 경우, 검증자 알고리즘 V는, Rspi로부터 (r1i, t0i, e0i, c2i)를 취출한다. 계속해서, 검증자 알고리즘 V는, c0i=H(r1i, G(r1i, t0i)+e0i)를 계산한다. 또한, 검증자 알고리즘 V는, c1i=H(t0i, e0i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i)를 유지한다.
처리 (3): Chi=2의 경우, 검증자 알고리즘 V는, Rspi로부터 (r1i, t1i, e1i, c1i)를 취출한다. 계속해서, 검증자 알고리즘 V는, c0i=H(r1i, y-F(r1i)-G(t1i, r1i)-e1i)를 계산한다. 또한, 검증자 알고리즘 V는, c2i=H(t1i, e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i)를 유지한다.
처리 (1) 내지 처리 (3)을 i=1 내지 N에 대하여 실행한 후, 검증자 알고리즘 V는, Cmt=H(c01, c11, c21, …, c0N, c1N, c2N)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패한 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 3 패스 방식에 관한 효율적인 병렬화 알고리즘의 구성예에 대하여 설명하였다. 또한, 도 6에 나타낸 병렬화 알고리즘에는, 메시지를 해시값으로 변환하고 나서 송신하는 고안을 포함시켰다. 이 고안에 의해, 통신 효율이 향상된다. 마찬가지로, 요구 Ch1, …, ChN이나 회답 Rsp1, …, RspN을 해시값으로 변환하고 나서 송신하도록 구성을 변형하여도 된다. 이와 같이 구성을 변형함으로써, 또 다른 통신 효율의 향상을 기대할 수 있다.
[2-3: 고차다변수 다항식에 기초하는 효율적인 알고리즘(방식 #1)]
상기한 효율적인 알고리즘은, 상기의 수학식 8에서 정의되는 2차 다항식 fi의 조에 의해 다변수 다항식 F를 표현함으로써, 상기의 수학식 10에서 정의되는 다항식 G가 쌍선형으로 된다는 성질을 이용하고 있었다. 그러나, 다항식 G가 가법준동형(加法準同型)이면, 다항식 G가 쌍선형이 아니더라도, 마찬가지로 효율적인 알고리즘을 구축하는 것이 가능하다.
(2차 다항식 fi를 이용한 효율적인 알고리즘의 구축에 대하여)
다항식 G가 가법준동형인 경우, 변수 r0, r1, t0, e0을 이용하여, 하기의 수학식 14 내지 16의 관계가 성립된다. 또한, 하기의 수학식 14는 비밀 키 s를 s=r0+r1로 분할하고, 공개 키 F(s)를 전개한 것이다. 하기의 수학식 14 내지 16은 (r0, t1, e1)로 재현 가능한 제1 부분과, (r1, t0, e0)으로 재현 가능한 제2 부분과, (r1, t1, e1)로 재현 가능한 제3 부분으로 나눌 수 있다.
예를 들어, 하기의 수학식 15에 포함되는 「r0, t1」, 하기의 수학식 16에 포함되는 「F(r0), e1」은 제1 부분이다. 또한, 하기의 수학식 14에 포함되는 「e0, G(t0, r1)」, 하기의 수학식 15에 포함되는 「t0」, 하기의 수학식 16에 포함되는 「e0」은 제2 부분이다. 또한, 하기의 수학식 14에 포함되는 「e1, F(r1), G(t1, r1)」은 제3 부분이다. 다시 말하면, 하기의 수학식 14는 제2 및 제3 부분으로 구성되고, 하기의 수학식 15는 제1 및 제2 부분으로 구성되며, 하기의 수학식 16은 제1 및 제2 부분으로 구성되어 있다.
상기와 같이, 하기의 수학식 14 내지 수학식 16은 각각 2종류의 부분으로 구성되어 있다. 또한, 비밀 키 s의 정의 및 하기의 수학식 14 내지 수학식 16의 관계로부터, (r0, t1, e1), (r1, t0, e0), (r1, t1, e1) 중 어느 1개를 이용하여도 비밀 키 s는 얻지 못하는 경우가 보증된다. 이들 성질을 이용하면, 예를 들어 도 5에 나타낸 3 패스 방식에 관한 효율적인 알고리즘을 구축할 수 있다.
Figure pct00014
Figure pct00015
Figure pct00016
(3차 다항식 fl을 이용한 효율적인 알고리즘의 구축에 대하여)
2차 다항식 fi을 이용하는 경우에 관한 상기의 고찰을 발전시켜서, 하기의 수학식 17로 표현되는 환 R 상의 3차 다항식 fl을 이용한 효율적인 알고리즘의 구축 방법에 대하여 검토해 보기로 하자. 3차 다항식 fl의 조로 표현되는 다변수 다항식 F=(f1, …, fm)은 하기의 수학식 18의 관계를 만족한다. 단, Gx(x, y)는 x에 관하여 1차로 되는 항을 나타낸다. 또한, Gy(x, y)는 y에 관하여 1차로 되는 항을 나타낸다. Gx=(gx1, …, gxm), Gy=(gy1, …, gym)이라고 표현하면, gxl 및 gyl은, 각각 하기의 수학식 19 및 수학식 20과 같이 전개할 수 있다. 단, gxl의 우변 제2항은, x 및 y 중 어느 것에 관해서도 1차이기 때문에, gyl에 포함시켜도 된다.
Figure pct00017
Figure pct00018
Figure pct00019
Figure pct00020
상기의 수학식 19 및 20에서 알 수 있는 바와 같이, Gx(x, y) 및 Gy(x, y)는 x 및 y에 대하여 가법준동형으로 되어 있다. 따라서, 이들 성질을 이용하여, 2차 다항식 fi를 이용한 효율적인 알고리즘의 구축 방법과 마찬가지로, 새로운 변수 r0, r1, t0, u0, e0을 도입하여 공개 키 F(s)를 분할한다.
다항식 Gx, Gy가 가법준동형이기 때문에, 변수 r0, r1, t0, u0, e0을 이용하여, 하기의 수학식 21 내지 수학식 24의 관계가 성립된다. 하기의 수학식 21 내지 수학식 24는 (r0, t0, u0, e0)으로 재현 가능한 제1 부분과, (r0, u1, e1)로 재현 가능한 제2 부분과, (r1, t0, e0)으로 재현 가능한 제3 부분과, (r1, t1, u1, e1)로 재현 가능한 제4 부분으로 나눌 수 있다.
예를 들어, 하기의 수학식 22에 포함되는 「r0, t0」, 하기의 수학식 23에 포함되는 「u0」, 하기의 수학식 24에 포함되는 「F(r0), Gy(r0, u0), e0」은 제1 부분이다. 또한, 하기의 수학식 24에 포함되는 「Gy(r0, u1), e1」은 제2 부분이다. 또한, 하기의 수학식 21에 포함되는 「e0, Gx(r0, r1)」은 제3 부분이다. 그리고, 하기의 수학식 21에 포함되는 「e1, F(r1), Gx(t1, r1)」, 하기의 수학식 22에 포함되는 「t1」, 하기의 수학식 23에 포함되는 「u1」은 제4 부분이다.
다시 말하면, 하기의 수학식 21은 제3 및 제4 부분으로 구성되고, 하기의 수학식 22 및 하기의 수학식 23은 제1 및 제4 부분으로 구성되며, 하기의 수학식 24는 제1 및 제2 부분으로 구성되어 있다. 이와 같이, 하기의 수학식 21 내지 수학식 24는 각각 2종류의 부분으로 구성되어 있다.
또한, 비밀 키 s의 정의 및 하기의 수학식 21 내지 수학식 24의 관계로부터, (r0, t0, u0, e0), (r0, u1, e1), (r1, t0, e0), (r1, t1, u1, e1) 중 어느 1개를 이용하여도 비밀 키 s는 얻지 못하는 경우가 보증된다. 이들 성질을 이용하면, 예를 들어 환 R 상의 3차 다항식 fl을 이용한 3 패스 방식에 관한 효율적인 알고리즘(이하, 확장 알고리즘)을 구축할 수 있다.
Figure pct00021
Figure pct00022
Figure pct00023
Figure pct00024
이하, 구체적인 확장 알고리즘의 구성예에 대하여 설명한다. 확장 알고리즘의 설계에 관한 기본적인 포인트는, 하기의 수학식 25 내지 수학식 27로 표현되는 메시지를 검증자에게 보내는 것, 및 제1 내지 제4 부분 중 어느 하나에 관한 검증을 행하는 것의 2점이다. 단, 이 검증만으로는, 제3 부분에 포함되는 「r1」과 제4 부분에 포함되는 「r1」이 동등한지를 검증할 수 없다. 마찬가지로, 제1 부분에 포함되는 「r0」과 제2 부분에 포함되는 「r0」이 동등한지, 제1 부분에 포함되는 「t0, e0」과 제3 부분에 포함되는 「t0, e0」이 동등한지도 검증할 수 없다. 또한, 제2 부분에 포함되는 「u1, e1」과 제4 부분에 포함되는 「u1, e1」이 동등한지도 검증할 수 없다. 따라서, 이하에서는, 이들의 검증도 가능하게 한 구성예를 소개한다.
Figure pct00025
Figure pct00026
Figure pct00027
(2-3-1: 기본 구성(도 7))
우선, 도 7을 참조하면서, 3 패스 방식에 관한 확장 알고리즘의 기본 구성에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 7에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 벡터 r0, t0, u0∈Kn 및 e0∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, t1←r0-t0을 계산한다. 계속해서, 증명자 알고리즘 P는, u1←r1-u0을 계산한다. 계속해서, 증명자 알고리즘 P는, e1←F(r0)-e0을 계산한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, c0←H(r1, Gx(t0, r1)+e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c1←H(r0-t0, u0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c2←H(r0, e1-Gy(r0, u1))을 계산한다. 계속해서, 증명자 알고리즘 P는, c3←H(t0, e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c4←H(u1, e1)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1, c2, c3, c4)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1, c2, c3, c4)를 수취한 검증자 알고리즘 V는, 4개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 4개의 수치 {0, 1, 2, 3} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 Ch에 설정한다. 이 요구 Ch는 증명자 알고리즘 P로 보내진다.
공정 #3:
요구 Ch를 수취한 증명자 알고리즘 P는, 수취한 요구 Ch에 따라서 검증자 알고리즘 V로 보내는 회답 Rsp를 생성한다. Ch=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r0, t0, u0, e0)을 생성한다. Ch=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r0, u1, e1)을 생성한다. Ch=2의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r1, t0, e0)을 생성한다. Ch=3의 경우, 증명자 알고리즘 P는, 회답 Rsp=(r1, t1, u1, e1)을 생성한다. 공정 #3에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #4:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
Ch=0의 경우, 검증자 알고리즘 V는, c1=H(r0-t0, u0)의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c2=H(r0, F(r0)+Gy(r0, u0)-e0)의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c3=H(t0, e0)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=1의 경우, 검증자 알고리즘 V는, c2=H(r0, e1-Gy(r0, u1))의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c4=H(u1, e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=2의 경우, 검증자 알고리즘 V는, c0=H(r1, e0+Gx(t0, r1))의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c3=H(t0, e0)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
Ch=3의 경우, 검증자 알고리즘 V는, c0=H(r1, y-F(r1)-e1-Gx(t1, r1))의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c1=H(t1, r1-u1)의 등호가 성립되는지 여부를 검증한다. 계속해서, 검증자 알고리즘 V는, c4=H(u1, e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 3 패스 방식에 관한 확장 알고리즘의 구성예에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 3차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
(2-3-2: 병렬화 알고리즘(도 8))
다음으로, 도 8을 참조하면서, 3 패스 방식에 관한 확장 알고리즘의 병렬화에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 8에 도시한 바와 같이, 증명자 알고리즘 P는, i=1 내지 N에 대하여, 이하의 처리를 실행한다. 우선, 증명자 알고리즘 P는, 랜덤하게 벡터 r0i, t0i, u0i∈Kn 및 e0i∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1i←s-r0i를 계산한다. 이 계산은, 비밀 키 s를 벡터 r0i에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, t1i←r0i-t0i를 계산한다. 계속해서, 증명자 알고리즘 P는, u1i←r1i-u0i를 계산한다. 계속해서, 증명자 알고리즘 P는, e1i←F(r0i)-e0i를 계산한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, c0i←H(r1i, Gx(t0i, r1i)+e0i)를 계산한다. 계속해서, 증명자 알고리즘 P는, c1i←H(r0i-t0i, u0i)를 계산한다. 계속해서, 증명자 알고리즘 P는, c2i←H(r0i, e1i-Gy(r0i, u1i))를 계산한다. 계속해서, 증명자 알고리즘 P는, c3i←H(t0i, e0i)를 계산한다. 계속해서, 증명자 알고리즘 P는, c4i←H(u1i, e1i)를 계산한다. (c01, c11, c21, c31, c41, …, c0N, c1N, c2N, c3N, c4N)을 생성한 후, 증명자 알고리즘 P는, 해시값 Cmt←H(c01, c11, c21, c31, c41, …, c0N, c1N, c2N, c3N, c4N)을 계산한다.
공정 #1에서 생성된 해시값 Cmt는, 검증자 알고리즘 V로 보내진다.
공정 #2:
해시값 Cmt를 수취한 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 4개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 검증 패턴의 종류를 나타내는 4개의 수치 {0, 1, 2, 3} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 Chi에 설정한다. 요구 Chi(i=1 내지 N)은 증명자 알고리즘 P로 보내진다.
공정 #3:
요구 Chi(i=1 내지 N)을 수취한 증명자 알고리즘 P는, i=1 내지 N에 대하여, 수취한 요구 Chi에 따라서 검증자 알고리즘 V로 보내는 회답 Rspi를 생성한다. Chi=0의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r0i, t0i, u0i, e0i, c0i, c4i)를 생성한다. Chi=1의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r0i, u1i, e1i, c0i, c1i, c3i)를 생성한다. Chi=2의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r1i, t0i, e0i, c1i, c2i, c4i)를 생성한다. Chi=3의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r1i, t1i, u1i, e1i, c2i, c3i)를 생성한다. 공정 #3에서 생성된 회답 Rspi(i=1 내지 N)은 검증자 알고리즘 V로 보내진다.
공정 #4:
회답 Rspi(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 수취한 회답 Rspi를 이용하여, i=1 내지 N에 대하여 이하의 처리를 실행한다.
Chi=0의 경우, 검증자 알고리즘 V는, c1i=H(r0i-t0i, u0i)를 계산한다. 계속해서, 검증자 알고리즘 V는, c2i=H(r0i, F(r0i)+Gy(r0i, u0i)-e0i)를 계산한다. 계속해서, 검증자 알고리즘 V는, c3i=H(t0i, e0i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i, c3i, c4i)를 유지한다.
Chi=1의 경우, 검증자 알고리즘 V는, c2i=H(r0i, e1i-Gy(r0i, u1i))를 계산한다. 계속해서, 검증자 알고리즘 V는, c4i=H(u1i, e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i, c3i, c4i)를 유지한다.
Chi=2의 경우, 검증자 알고리즘 V는, c0i=H(r1i, Gx(t0i, r1i)+e0i)를 계산한다. 계속해서, 검증자 알고리즘 V는, c3i=H(t0i, e0i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i, c3i, c4i)를 유지한다.
Chi=3의 경우, 검증자 알고리즘 V는, c0i=H(r1i, y-F(r1i)-e1i-Gx(t1i, r1i))를 계산한다. 계속해서, 검증자 알고리즘 V는, c1i=H(t1i, r1i-u1i)를 계산한다. 계속해서, 검증자 알고리즘 V는, c4i=H(u1i, e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i, c2i, c3i, c4i)를 유지한다.
i=1 내지 N에 대하여 상기한 처리를 실행한 후, 검증자 알고리즘 V는, Cmt=H(c01, c11, c21, c31, c41, …, c0N, c1N, c2N, c3N, c4N)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 3 패스 방식에 관한 확장 알고리즘의 병렬화에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 3차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
<3: 5 패스의 공개 키 인증 방식에 관한 알고리즘의 구성>
이하, 5 패스의 공개 키 인증 방식에 관한 알고리즘에 대하여 설명한다. 또한, 이하의 설명에 있어서, 5 패스의 공개 키 인증 방식을 「5 패스 방식」이라 칭하는 경우가 있다.
3 패스 방식의 경우에는 대화 프로토콜 1회당 위증 확률이 2/3이었지만, 5 패스 방식의 경우에는 대화 프로토콜 1회당 위증 확률이 1/2+1/q로 된다. 단, q는, 이용하는 환의 위수이다. 따라서, 환의 위수가 충분히 큰 경우, 5 패스 방식 쪽이 1회당 위증 확률을 저감하는 것이 가능하게 되어, 적은 대화 프로토콜의 실행 횟수로, 위증 확률을 충분히 작게 할 수 있다.
예를 들어, 위증 확률을 1/2n 이하로 하려는 경우, 3 패스 방식에 있어서는, n/(log3-1)=1.701n회 이상, 대화 프로토콜을 실행할 필요가 있다. 한편, 위증 확률을 1/2n 이하로 하려는 경우, 5 패스 방식에 있어서는, n/(1-log(1+1/q))회 이상, 대화 프로토콜을 실행할 필요가 있다. 따라서, q=24로 하면, 동일한 시큐리티 레벨을 실현하는 데 필요한 통신량은, 3 패스 방식에 비하여, 5 패스 방식 쪽이 적어지는 것이다.
[3-1: 구체적인 알고리즘의 구성예(도 9)]
우선, 도 9를 참조하면서, 5 패스 방식에 관한 구체적인 알고리즘의 구성예에 대하여 소개한다. 도 9는, 5 패스 방식에 관한 구체적인 알고리즘의 구성에 대하여 설명하기 위한 설명도이다. 또한, 5 패스 방식의 알고리즘은, 키 생성 알고리즘 Gen, 증명자 알고리즘 P, 검증자 알고리즘 V에 의해 구성된다. 이하, 각 알고리즘의 구성에 대하여 설명한다.
(키 생성 알고리즘 Gen)
키 생성 알고리즘 Gen은, 환 K로 정의되는 다변수 다항식 f1(x1, …, xn), …, fm(x1, …, xn) 및 벡터 s=(s1, …, sn)∈Kn을 생성한다. 다음으로, 키 생성 알고리즘 Gen은, y=(y1, …, ym)←(f1(s), …, fm(s))를 계산한다. 그리고, 키 생성 알고리즘 Gen은, (f1, …, fm, y)를 공개 키 pk로 설정하고, s를 비밀 키로 설정한다. 또한, 이하에서는, 벡터(x1, …, xn)을 x라 표기하고, 다변수 다항식의 조(f1(x), …, fm(x))를 F(x)라 표기한다.
(증명자 알고리즘 P, 검증자 알고리즘 V)
다음으로, 도 9를 참조하면서, 대화 프로토콜 중에서 증명자 알고리즘 P 및 검증자 알고리즘 V에 의해 실행되는 처리에 대하여 설명한다.
공정 #1:
도 9에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 수 seed0을 선택한다. 계속해서, 증명자 알고리즘 P는, 의사 난수 생성기 PRNG에 수 seed0을 적용하여 벡터 r0∈Kn 및 다변수 다항식의 조 F1(x)=(f11(x), …, f1m(x))를 생성한다. 즉, 증명자 알고리즘 P는, (r0, F1)←G(seed0)을 계산한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다.
공정 #1(계속):
계속해서, 증명자 알고리즘 P는, F1(r1) 및 r1의 해시값 c0을 생성한다. 즉, 증명자 알고리즘 P는, c0←H(F1(r1), r1)을 계산한다. 또한, 증명자 알고리즘 P는, 수 seed0의 해시값 c1을 생성한다. 즉, 증명자 알고리즘 P는, c1←H(seed0)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1)를 수취한 검증자 알고리즘 V는, q개 존재하는 환 K의 원으로부터 랜덤하게 1개의 수 ChA를 선택하고, 선택한 수 ChA를 증명자 알고리즘 P로 보낸다.
공정 #3:
수 ChA를 수취한 증명자 알고리즘 P는, F2(x)←ChA·F(x+r0)+F1(x)를 계산한다. 이 계산은, x에 관하여 다변수 다항식 F(x+r0)을 다변수 다항식 F1(x)에 의해 마스크하는 조작에 상당한다. 공정 #3에서 생성된 다변수 다항식 F2는, 검증자 알고리즘 V로 보내진다.
공정 #4:
다변수 다항식 F2를 수취한 검증자 알고리즘 V는, 2개의 검증 패턴 중 어느쪽의 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChB에 설정한다. 이 요구 ChB는 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChB를 수취한 증명자 알고리즘 P는, 수취한 요구 ChB에 따라서 검증자 알고리즘 V로 돌려보내는 회답 Rsp를 생성한다. ChB=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=seed0을 생성한다. ChB=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=r1을 생성한다. 공정 #5에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
ChB=0의 경우, 검증자 알고리즘 V는, (r0, F1)←PRNG(Rsp)를 계산한다. 그리고, 검증자 알고리즘 V는, c1=H(Rsp)의 등호가 성립되는지 여부를 검증한다. 또한, 검증자 알고리즘 V는, F2(x)=ChA·F(x+r0)+F1(x)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이들 검증이 모두 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
ChB=1의 경우, 검증자 알고리즘 V는, r1←Rsp라 한다. 그리고, 검증자 알고리즘 V는, c0=H(F2(r1)-ChA·y, r1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
(건전성에 대하여)
5 패스 방식의 건전성은, 증명자 알고리즘 P가 (c0, c1) 및 검증자 알고리즘 V가 선택하는 2개의 (ChA, ChA')에 대하여, 요구 ChB=0 및 1에 정확하게 회답한 경우에, 그 회답 내용으로부터 하기의 수학식 28 내지 수학식 30을 만족하는 F1, F2, F2', r0, r1을 계산할 수 있다는 점에서 보증되고 있다.
Figure pct00028
Figure pct00029
Figure pct00030
5 패스 방식의 건전성이 보증됨으로써, 다차다변수 연립방정식의 해를 구하는 문제를 풀지 않는 한 1/2+1/q보다 높은 확률로 위증하는 것은 불가능한 것이 보증된다. 즉, 검증자의 요구 ChA=0 및 1의 모두에 정확하게 회답하기 위해서는, 위증자가 상기의 수학식 28 내지 수학식 30을 만족하는 F1, F2, F2', r0, r1을 계산할 필요가 있다. 다시 말하면, 위증자는 F(s)=y를 만족하는 s를 계산할 필요가 있다. 따라서, 다차다변수 연립방정식의 해를 구하는 문제를 풀지 않는 한, 위증자는, 1/2+1/q보다 높은 확률로 위증을 성공시킬 수 없는 것이다. 또한, 상기한 대화 프로토콜을 충분히 많은 횟수 실행함으로써, 위증의 성공 확률을 무시할 수 있을 정도로 작게 할 수 있다.
(해시 함수 H에 대하여)
여기서, 해시 함수 H에 대하여 설명을 보충한다. 상기한 알고리즘에서는, 해시 함수 H를 이용하여 c0, c1 등을 계산하고 있지만, 해시 함수 H 대신에 커미트먼트 함수 COM을 이용하여도 된다. 커미트먼트 함수 COM은, 문자열 S 및 난수 ρ를 인수로 취하는 함수이다. 커미트먼트 함수의 예로서는, Shai Halevi와 Silvio Micali에 의해 국제 회의 CRYPTO1996에서 발표된 방식 등이 있다.
예를 들어, 커미트먼트 함수 COM을 이용하여 c0, c1을 계산하는 경우에 대하여 생각해 보기로 하자. 이 경우, c0, c1을 계산하기 전에 난수 ρ0, ρ1을 준비하고, 해시 함수 H(·)를 적용하는 대신에 커미트먼트 함수 COM(·, ρ0), COM(·, ρ1)을 적용하여 c0, c1을 생성한다. 또한, 검증자가 ci를 생성하기 위해 필요한 ρi는, 회답 Rsp에 포함하여 보내지도록 한다.
이상, 5 패스 방식에 관한 구체적인 알고리즘의 구성예에 대하여 설명하였다.
[3-2: 2차 다변수 다항식에 기초하는 효율적인 알고리즘]
다음으로, 5 패스 방식에 관한 알고리즘을 효율화하는 방법에 대하여 설명한다. 여기에서는, 다변수 다항식 F로서 2차 다항식의 조(f1(x), …, fm(x))를 이용하는 경우에 대하여 설명한다.
3 패스 방식의 효율적인 알고리즘과 마찬가지로, 2개의 벡터 t0∈Kn, e0∈Km을 이용하여, 다변수 다항식 F(x+r0)을 마스크하기 위해 이용한 다변수 다항식 F1(x)를 F1(x)=G(x, t0)+e0과 같이 표현한다. 이 표현을 이용하면, 다변수 다항식 F(x+r0)에 대하여, 하기의 수학식 31로 표현되는 관계가 얻어진다.
Figure pct00031
그로 인해, t1=ChA·r0+t0, e1=ChA·F(r0)+e0이라 하면, 마스크 후의 다변수 다항식 F2(x)=ChA·F(x+r0)+F1(x)도, 2개의 벡터 t1∈Kn, e1∈Km에 의해 표현할 수 있다. 이들 이유로부터, F1(x)=G(x, t0)+e0이라 설정하면, Kn 상의 벡터 및 Km 상의 벡터를 이용하여 F1 및 F2를 표현할 수 있게 되고, 통신에 필요한 데이터 사이즈를 대폭 저감시키는 것이 가능해진다. 구체적으로는, 수천 내지 수만 배 정도, 통신 비용이 삭감된다.
또한, 상기한 변형에 의해, F2(또는 F1)로부터 r0에 관한 정보가 일절 누설되는 경우는 없다. 예를 들어, e1 및 t1(또는 e0 및 t0)이 부여되어도, e0 및 t0(또는 e1 및 t1)을 모르는 한, r0의 정보를 일절 알 수 없다. 따라서, 영지식성은 담보된다. 이하, 도 10 및 도 11을 참조하면서, 5 패스 방식에 관한 효율적인 알고리즘에 대하여 설명한다.
(3-2-1: 기본 구성(도 10))
우선, 도 10을 참조하면서, 5 패스 방식에 관한 효율적인 알고리즘의 기본 구성에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 10에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 벡터 r0∈Kn, t0∈Kn, e0∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, 벡터 r0, t0, e0의 해시값 c0을 생성한다. 즉, 증명자 알고리즘 P는, c0←H(r0, t0, e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, G(t0, r1)+e0 및 r1의 해시값 c1을 생성한다. 즉, 증명자 알고리즘 P는, c0←H(r1, G(t0, r1)+e0)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1)를 수취한 검증자 알고리즘 V는, q개 존재하는 환 K의 원으로부터 랜덤하게 1개의 수 ChA를 선택하고, 선택한 수 ChA를 증명자 알고리즘 P로 보낸다.
공정 #3:
수 ChA를 수취한 증명자 알고리즘 P는, t1←ChA·r0-t0을 계산한다. 또한, 증명자 알고리즘 P는, e1←ChA·F(r0)-e0을 계산한다. 그리고, 증명자 알고리즘 P는, t1 및 e1을 검증자 알고리즘 V로 보낸다.
공정 #4:
t1 및 e1을 수취한 검증자 알고리즘 V는, 2개의 검증 패턴 중, 어느 쪽의 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChB에 설정한다. 이 요구 ChB는 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChB를 수취한 증명자 알고리즘 P는, 수취한 요구 ChB에 따라서 검증자 알고리즘 V로 돌려보내는 회답 Rsp를 생성한다. ChB=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=r0을 생성한다. ChB=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=r1을 생성한다. 공정 #5에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
ChB=0의 경우, 검증자 알고리즘 V는, r0←Rsp를 실행한다. 그리고, 검증자 알고리즘 V는, c0=H(r0, ChA·r0-t1, ChA·F(r0)-e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
ChB=1의 경우, 검증자 알고리즘 V는, r1←Rsp를 실행한다. 그리고, 검증자 알고리즘 V는, c1=H1(r1, ChA·(y-F(r1))-G(t1, r1)-e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 효율적인 알고리즘의 구성예에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다.
(3-2-2: 병렬화 알고리즘(도 11))
다음으로, 도 11을 참조하면서, 도 10에 나타낸 효율적인 알고리즘을 병렬화하는 방법에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
전술한 바와 같이, 5 패스 방식에 관한 대화 프로토콜을 적용하면, 위증이 성공할 확률을 (1/2+1/q) 이하로 억제할 수 있다. 따라서, 이 대화 프로토콜을 2회 실행하면, 위증이 성공할 확률을 (1/2+1/q)2 이하로 억제할 수 있다. 또한, 이 대화 프로토콜을 N회 실행하면, 위증이 성공할 확률은 (1/2+1/q)N으로 되고, N을 충분히 큰 수(예를 들어, N=80)로 하면, 위증이 성공할 확률은 무시할 수 있을 정도로 작아진다.
대화 프로토콜을 복수회 실행하는 방법으로서는, 예를 들어, 메시지, 요구, 회답의 교환을 축차적으로 복수회 반복하는 직렬적인 방법과, 1회분의 교환으로 복수회분의 메시지, 요구, 회답의 교환을 행하는 병렬적인 방법이 생각된다. 여기에서는, 5 패스 방식에 관한 상기의 대화 프로토콜을 병렬적으로 실행하는 알고리즘(이하, 병렬화 알고리즘)에 대하여 설명한다.
공정 #1:
증명자 알고리즘 P는, i=1 내지 N에 대하여 처리 (1) 내지 처리 (4)를 실행한다.
처리 (1): 증명자 알고리즘 P는, 랜덤하게 벡터 r0i, t0i∈Kn 및 e0i∈Km을 생성한다.
처리 (2): 증명자 알고리즘 P는, r1i←s-r0i를 계산한다. 이 계산은, 비밀 키 s를 벡터 r0i에 의해 마스크하는 조작에 상당한다.
처리 (3): 증명자 알고리즘 P는, c0i←H(r0i, t0i, e0i)를 계산한다.
처리 (4): 증명자 알고리즘 P는, c1i←H(r1i, G(t0i, r1i)+e0i)를 계산한다.
i=1 내지 N에 대하여 처리 (1) 내지 처리 (4)를 실행한 후, 증명자 알고리즘 P는, 해시값 Cmt←H(c01, c11, …, c0N, c1N)을 실행한다. 그리고, 공정 #1에서 생성된 해시값 Cmt는, 검증자 알고리즘 V로 보내진다.
공정 #2:
해시값 Cmt를 수취한 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, q개 존재하는 환 K의 원으로부터 랜덤하게 1개의 수 ChAi를 선택하고, 선택한 수 ChAi(i=1 내지 N)을 증명자 알고리즘 P로 보낸다.
공정 #3:
수 ChAi(i=1 내지 N)을 수취한 증명자 알고리즘 P는, i=1 내지 N의 각각에 대하여, t1i←ChAi·r0i-t0i를 계산한다. 또한, 증명자 알고리즘 P는, i=1 내지 N의 각각에 대하여, e1i←ChAi·F(r0i)-e0i를 계산한다. 그리고, 증명자 알고리즘 P는, t11, …, t1N 및 e11, …, e1N을 검증자 알고리즘 V로 보낸다.
공정 #4:
t11, …, t1N 및 e11, …, e1N을 수취한 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 2개의 검증 패턴 중, 어느 쪽의 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChBi에 설정한다. 요구 ChBi(i=1 내지 N)은 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChBi(i=1 내지 N)를 수취한 증명자 알고리즘 P는, i=1 내지 N에 대하여, 수취한 요구 ChBi에 따라서 검증자 알고리즘 V로 돌려보내는 회답 Rspi를 생성한다. ChBi=0의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r0i, c1i)를 생성한다. ChBi=1의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r1i, c0i)를 생성한다. 공정 #5에서 생성된 회답 Rspi(i=1 내지 N)은 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rspi(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 수취한 회답 Rspi(i=1 내지 N)을 이용하여 이하의 처리 (1) 및 처리 (2)를 실행한다.
처리 (1): ChBi=0의 경우, 검증자 알고리즘 V는, (r0i, c1i)←Rspi를 실행한다. 그리고, 검증자 알고리즘 V는, c0i=H(r0i, ChAi·r0i-t1i, ChAi·F(r0i)-e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i)를 유지한다.
처리 (2): ChBi=1의 경우, 검증자 알고리즘 V는, (r1i, c0i)←Rspi를 실행한다. 그리고, 검증자 알고리즘 V는, c1i=H(r1i, ChAi·(y-F(r1i))-G(t1i, r1i)-e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i)를 유지한다.
i=1 내지 N에 대하여 처리 (1) 및 처리 (2)를 실행한 후, 검증자 알고리즘 V는, Cmt=H(c01, c11, …, c0N, c1N)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 효율적인 병렬화 알고리즘의 구성예에 대하여 설명하였다. 또한, 도 11에 나타낸 병렬화 알고리즘에는, 메시지를 해시값으로 변환하고 나서 송신하는 고안을 포함시켰다. 이 고안에 의해, 통신 효율이 향상된다. 마찬가지로, 요구 ChA1, …, ChAN, ChB1, …, ChBN이나 회답 Rsp1, …, RspN 등을 해시값으로 변환하고 나서 송신하도록 구성을 변형하여도 된다. 이와 같이 구성을 변형함으로써, 또 다른 통신 효율의 향상을 기대할 수 있다.
[3-3: 고차다변수 다항식에 기초하는 효율적인 알고리즘(방식 #1)]
상기한 효율적인 알고리즘은, 상기의 수학식 8에서 정의되는 2차 다항식 fi의 조로 다변수 다항식 F를 표현함으로써, 상기의 수학식 10에서 정의되는 다항식 G가 쌍선형이 된다는 성질을 이용하고 있다. 단, 도 10에 나타낸 효율적인 알고리즘은, 공개 키 F(s)를 ChA배한 항이 ChA에 의존하는 부분과, 그 이외의 부분으로 분할할 수 있는 것을 이용하고 있었다. 그러나, 5 패스 방식의 경우도 다항식 G가 x이거나 y의 적어도 한쪽에 대하여 선형이면, 다항식 G가 쌍선형이 아니더라도, 마찬가지로 효율적인 알고리즘을 구축하는 것이 가능하다.
(3차 다항식 fi를 이용한 효율적인 알고리즘의 구축에 대하여)
3 패스 방식의 경우와 마찬가지로, 환 R 상의 3차 다항식 fl을 이용한 효율적인 알고리즘의 구축 방법에 대하여 검토해 보기로 하자. 3차 다항식 fl을 상기의 수학식 17과 같이 표현한 경우에, Gx(x, y) 및 Gy(x, y)가 x 및 y에 대하여 선형이 되는 것에 대해서는 수학식 19와 수학식 20으로부터 알 수 있다.
따라서, 상기한 성질을 이용하여, 새로운 변수 r0, r1, t0, u0, e0을 도입하여, 공개 키 F(s)를 ChA배한 항을 분할한다. 다항식 Gx, Gy가 각각 x와 y에 대하여 선형이기 때문에, 변수 r0, r1, t0, u0, e0을 이용하여, 하기의 수학식 32 내지 수학식 35의 관계가 성립된다. 또한, 하기의 수학식 32 내지 수학식 35는 ChA에 의존하는 제1 부분과, ChA에 의존하지 않는 제2 부분으로 나눌 수 있다. 단, 제1 부분은, (r1, t1, u1, e1)로 재현 가능하다. 또한, 제2 부분은, (r0, t1, u1, e1)로 재현 가능하다.
예를 들어, 하기의 수학식 32에 포함되는 「e0, Gx(t0, r1)」, 하기의 수학식 33에 포함되는 「t0」, 하기의 수학식 34에 포함되는 「u0」, 하기의 수학식 35에 포함되는 「e0, Gy(r0, u0)」은 제1 부분이다. 한편, 하기의 수학식 32에 포함되는 「ChA·F(r0+r1), e1, ChA·F(r1), Gx(t1, r1)」, 하기의 수학식 33에 포함되는 「ChA·r0, t1」, 하기의 수학식 34에 포함되는 「ChA·r1, u1」, 하기의 수학식 35에 포함되는 「ChA·F(r0), Gy(r0, u1), e1」은 제2 부분이다.
또한, 비밀 키 s의 정의 및 하기의 수학식 32 내지 수학식 35의 관계로부터, (r1, t1, u1, e1), (r0, t1, u1, e1) 중 어느 1개를 이용하여도 비밀 키 s는 얻지 못하는 경우가 보증된다. 이들 성질을 이용하면, 예를 들어 환 R 상의 3차 다항식 fl을 이용한 5 패스 방식에 관한 효율적인 알고리즘(이하, 확장 알고리즘)을 구축할 수 있다.
Figure pct00032
Figure pct00033
Figure pct00034
Figure pct00035
이하, 구체적인 확장 알고리즘의 구성예에 대하여 설명한다. 확장 알고리즘의 설계에 관한 기본적인 포인트는, 하기의 수학식 36 및 수학식 37로 표현되는 메시지를 검증자에게 보내는 것 및 검증자가 선택한 ChA에 대하여, ChA에 의존하는 부분(제1 부분)에 관한 검증을 행하는 것의 2점이다. 단, 「메시지를 생성할 때 이용한 r0 및 r1을, 검증 시에 다른 r0 및 r1로 대체되는 것을 방지하기」 위해, r0 및 r1에 관한 검증을 추가한 구성예를 이하에서 소개한다.
Figure pct00036
Figure pct00037
(3-3-1: 기본 구성(도 12))
우선, 도 12를 참조하면서, 5 패스 방식에 관한 확장 알고리즘의 기본 구성에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 12에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 벡터 r0, t0, u0∈Kn 및 e0∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, c0←H(r0, t0, e0-Gy(r0, u0))을 계산한다. 계속해서, 증명자 알고리즘 P는, c1←H(r1, u0, Gx(t0, r1)+e0)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1)를 수취한 검증자 알고리즘 V는, 랜덤하게 수 ChA를 선택한다. 이 수 ChA는 증명자 알고리즘 P로 보내진다.
공정 #3:
수 ChA를 수취한 증명자 알고리즘 P는, t1←ChA·r0-t0을 계산한다. 계속해서, 증명자 알고리즘 P는, u1←ChA·r1-u0을 계산한다. 계속해서, 증명자 알고리즘 P는, e1←ChA·F(r0)+ChA·Gy(r0, r1)-e0을 계산한다. 공정 #3에서 생성된 (t1, u1, e1)은 검증자 알고리즘 V로 보내진다.
공정 #4:
(t1, u1, e1)을 수취한 검증자 알고리즘 V는, 2개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChB에 설정한다. 이 요구 ChB는 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChB를 수취한 증명자 알고리즘 P는, 수취한 요구 ChB에 따라서 검증자 알고리즘 V로 보내는 회답 Rsp를 생성한다. ChB=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=r0을 생성한다. ChB=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=r1을 생성한다. 공정 #5에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
ChB=0의 경우, 검증자 알고리즘 V는, c0=H(r0, ChA·r0-t1, ChA·F(r0)+Gy(r0, u1)-e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
ChB=1의 경우, 검증자 알고리즘 V는, c1=H(r1, ChA·r1-u1, ChA·(y-F(r1))-Gx(t1, r1)-e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 확장 알고리즘의 구성예에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 3차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
(3-3-2: 병렬화 알고리즘(도 13))
다음으로, 도 13을 참조하면서, 5 패스 방식에 관한 확장 알고리즘의 병렬화에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 13에 도시한 바와 같이, 증명자 알고리즘 P는, i=1 내지 N에 대하여, 다음 처리를 실행한다. 우선, 증명자 알고리즘 P는, 랜덤하게 벡터 r0i, t0i, u0i∈Kn 및 e0i∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1i←s-r0i를 계산한다. 이 계산은, 비밀 키 s를 벡터 r0i에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, c0i←H(r0i, t0i, e0i-Gy(r0i, u0i))를 계산한다. 계속해서, 증명자 알고리즘 P는, c1i←H(r1i, u0i, Gx(t0i, r1i)+e0i)를 계산한다.
공정 #1(계속):
(c01, c11, …, c0N, c1N)을 계산한 후, 증명자 알고리즘 P는, 해시값 Cmt←H(c01, c11, …, c0N, c1N)을 계산한다. 공정 #1에서 생성된 해시값 Cmt는, 검증자 알고리즘 V로 보내진다.
공정 #2:
해시값 Cmt를 수취한 검증자 알고리즘 V는, 랜덤하게 수 ChA1, …, ChAN을 선택한다. 수 ChA1, …, ChAN은 증명자 알고리즘 P로 보내진다.
공정 #3:
수 ChA1, …, ChAN을 수취한 증명자 알고리즘 P는, i=1 내지 N에 대하여, 다음 처리를 실행한다. 우선, 증명자 알고리즘 P는, t1i←ChAi·r0i-t0i를 계산한다. 계속해서, 증명자 알고리즘 P는, u1i←ChAi·r1i-u0i를 계산한다. 계속해서, 증명자 알고리즘 P는, e1i←ChAi·F(r0i)+ChAi·Gy(r0i, r1i)-e0i를 계산한다.
공정 #3에서 생성된 (t11, u11, e11, …, t1N, u1N, e1N)은 검증자 알고리즘 V로 보내진다.
공정 #4:
(t11, u11, e11, …, t1N, u1N, e1N)을 수취한 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 2개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, i=1 내지 N의 각각에 대하여, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChBi에 설정한다. 요구 ChB1, …, ChBN은 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChB1, …, ChBN을 수취한 증명자 알고리즘 P는, i=1 내지 N의 각각에 대하여, 수취한 요구 ChBi에 따라서 검증자 알고리즘 V로 보내는 회답 Rspi를 생성한다. ChBi=0의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r0i, c1i)를 생성한다. ChBi=1의 경우, 증명자 알고리즘 P는, 회답 Rspi=(r1i, c0i)를 생성한다. 공정 #5에서 생성된 회답 Rspi는, 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rspi(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 수취한 회답 Rspi를 이용하고, i=1 내지 N에 대하여 다음의 처리를 실행한다.
ChBi=0의 경우, 검증자 알고리즘 V는, c0i=H(r0i, ChAi·r0i-t1i, ChAi·F(r0i)+Gy(r0i, u1i)-e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i)를 유지한다.
ChBi=1의 경우, 검증자 알고리즘 V는, c1i=H(r1i, ChAi·r1i-u1i, ChAi·(y-F(r1i))-Gx(t1i, r1i)-e1i)를 계산한다. 그리고, 검증자 알고리즘 V는, (c0i, c1i)를 유지한다.
i=1 내지 N에 대하여 상기한 처리를 실행한 후, 검증자 알고리즘 V는, Cmt=H(c01, c11, …, c0N, c1N)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 확장 알고리즘의 병렬화에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 3차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
[3-4: 고차다변수 다항식에 기초하는 효율적인 알고리즘(방식 #2)]
지금까지, 환 R 상의 3차 다항식 fl을 이용한 효율적인 알고리즘의 구축 방법에 대하여 설명해 왔다. 여기에서는 표수 q 및 위수 qk의 환 R로 정의되는 고차 다항식 fl을 이용한 확장 알고리즘의 구축 방법에 대하여 생각한다. 이 고차 다항식 fl은, 예를 들어 하기의 수학식 38과 같이 표현된다. 이 고차 다항식 fl을 이용하는 경우, G(x, y)=F(x+y)-F(x)-F(y)=(g1, …, gm)으로 정의되는 다항식 G의 성분 gl은, 하기의 수학식 39와 같이 표현된다.
Figure pct00038
Figure pct00039
따라서, ChA∈R에 대하여, 하기의 수학식 40에 나타내는 관계가 성립된다. 또한, 하기의 수학식 41에 나타내는 관계도 성립된다. 따라서, 이들 성질(이하, 준선형성이라 칭함)을 이용하고, 새로운 변수 r0, r1, t0z, e0을 도입하여, 공개 키F(s)를 ChA배한 항을 분할한다. 다항식 G가 준선형성을 갖는 점에서, 변수 r0, r1, t0z, e0을 이용하여, 하기의 수학식 42 내지 수학식 44의 관계가 성립된다. 또한, 하기의 수학식 42 내지 수학식 44는 ChA에 의존하는 제1 부분과, ChA에 의존하지 않는 제2 부분으로 나눌 수 있다. 단, 제1 부분은, (r1, t1z, e1)로 재현 가능하다. 또한, 제2 부분은, (r0, t1z, e1)로 재현 가능하다.
예를 들어, 하기의 수학식 42에 포함되는 「e0, ΣGz(t0z, r1)」, 하기의 수학식 43에 포함되는 「t0z」, 하기의 수학식 44에 포함되는 「e0」은 제1 부분이다. 한편, 하기의 수학식 42에 포함되는 「ChA·F(r0+r1), e1, ChA·F(r1), ΣGz(t1z, r1)」, 하기의 수학식 43에 포함되는 「ChA q (-z)·r0, t1z」 (단, q(z)=qz; 이하 마찬가지), 하기의 수학식 44에 포함되는 「ChA·F(r0), e1」은 제2 부분이다.
또한, 비밀 키 s의 정의 및 하기의 수학식 42 내지 수학식 44의 관계로부터, (r1, t1z, e1), (r0, t1z, e1) 중 어느 1개를 이용하여도 비밀 키 s는 얻지 못하는 경우가 보증된다. 이들 성질을 이용하면, 예를 들어 환 R 상의 고차 다항식 fl을 이용한 5 패스 방식에 관한 효율적인 알고리즘(이하, 고차 확장 알고리즘)을 구축할 수 있다.
Figure pct00040
Figure pct00041
Figure pct00042
Figure pct00043
Figure pct00044
이하, 구체적인 고차 확장 알고리즘의 구성예에 대하여 설명한다. 고차 확장 알고리즘의 설계에 관한 기본적인 포인트는, 하기의 수학식 45 및 수학식 46으로 표현되는 메시지를 검증자에게 보내는 것 및 검증자가 선택한 ChA에 대하여, ChA에 의존하는 부분(제1 부분)에 관한 검증을 행하는 것의 2점이다. 단, 「메시지를 생성할 때 이용한 r0 및 r1을, 검증 시에 다른 r0 및 r1로 대체할 수 있는 것을 방지하기」 위해, r0 및 r1에 관한 검증을 추가한 구성예를 이하에서 소개한다.
Figure pct00045
Figure pct00046
(3-4-1: 기본 구성(도 14))
우선, 도 14를 참조하면서, 5 패스 방식에 관한 고차 확장 알고리즘의 기본 구성에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 14에 도시한 바와 같이, 증명자 알고리즘 P는, 랜덤하게 벡터 r0, t01, …, t0k∈Kn 및 e0∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1←s-r0을 계산한다. 이 계산은, 비밀 키 s를 벡터 r0에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, c0←H(r0, t01, …, t0k, e0)을 계산한다. 계속해서, 증명자 알고리즘 P는, c1←H(r1, ΣzGz(t0z, r1)+e0)(단, Σz는 z=1 내지 k에 대한 합을 나타냄)을 계산한다. 공정 #1에서 생성된 메시지(c0, c1)는 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0, c1)를 수취한 검증자 알고리즘 V는, 랜덤하게 수 ChA를 선택한다. 이 수 ChA는 증명자 알고리즘 P로 보내진다.
공정 #3:
수 ChA를 수취한 증명자 알고리즘 P는, z=1 내지 k에 대하여, t1z←(ChA)q(z-1)·r0-t0z를 계산한다. 계속해서, 증명자 알고리즘 P는, e1←ChA·F(r0)-e0을 계산한다. 공정 #3에서 생성된 (t11, …, t1k, e1)은 검증자 알고리즘 V로 보내진다.
공정 #4:
(t11, …, t1k, e1)을 수취한 검증자 알고리즘 V는, 2개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChB에 설정한다. 이 요구 ChB는 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChB를 수취한 증명자 알고리즘 P는, 수취한 요구 ChB에 따라서 검증자 알고리즘 V로 보내는 회답 Rsp를 생성한다. ChB=0의 경우, 증명자 알고리즘 P는, 회답 Rsp=r0을 생성한다. ChB=1의 경우, 증명자 알고리즘 P는, 회답 Rsp=r1을 생성한다. 공정 #5에서 생성된 회답 Rsp는, 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rsp를 수취한 검증자 알고리즘 V는, 수취한 회답 Rsp를 이용하여 이하의 검증 처리를 실행한다.
ChB=0의 경우, 검증자 알고리즘 V는, c0=H(r0, (ChA)q(0)·r0-t11, …, (ChA)q(k-1)·r0-t1k, ChA·F(r0)-e1)의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
ChB=1의 경우, 검증자 알고리즘 V는, c1=H(r1, ChA·(y-F(r1))-ΣzGz(t1z, r1))의 등호가 성립되는지 여부를 검증한다. 검증자 알고리즘 V는, 이 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 고차 확장 알고리즘의 구성예에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 고차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
(3-4-2: 병렬화 알고리즘(구성예 1)(도 15))
다음으로, 도 15를 참조하면서, 5 패스 방식에 관한 고차 확장 알고리즘의 병렬화에 대하여 설명한다. 또한, 키 생성 알고리즘 Gen의 구성에 대해서는 설명을 생략한다.
공정 #1:
도 15에 도시한 바와 같이, 증명자 알고리즘 P는, i=1 내지 N에 대하여, 다음 처리를 실행한다. 우선, 증명자 알고리즘 P는, 랜덤하게 벡터 r0i, t01i, …, t0ki∈Kn 및 e0i∈Km을 생성한다. 계속해서, 증명자 알고리즘 P는, r1i←s-r0i를 계산한다. 이 계산은, 비밀 키 s를 벡터 r0i에 의해 마스크하는 조작에 상당한다. 계속해서, 증명자 알고리즘 P는, c0i←H(r0i, t01i, …, t0ki, e0i)를 계산한다. 계속해서, 증명자 알고리즘 P는, c1i←H(r1i, ΣzGz(t0zi, r1i)+e0i)(단, Σz는 z=1 내지 k에 대한 합을 나타냄)를 계산한다. 공정 #1에서 생성된 메시지(c0i, c1i)(i=1 내지 N)은 검증자 알고리즘 V로 보내진다.
공정 #2:
메시지(c0i, c1i)(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 랜덤하게 수 ChA1, …, ChAN을 선택한다. 이 수 ChA1, …, ChAN은 증명자 알고리즘 P로 보내진다.
공정 #3:
수 ChA1, …, ChAN을 수취한 증명자 알고리즘 P는, i=1 내지 N 및 z=1 내지 k에 대하여, t1zi←(ChAi)q(z-1)·r0i-t0zi를 계산한다. 계속해서, 증명자 알고리즘 P는, e1i←ChAi·F(r0i)-e0i를 계산한다. 공정 #3에서 생성된 (t11i, …, t1ki, e1i)(i=1 내지 N)은 검증자 알고리즘 V로 보내진다.
공정 #4:
(t11i, …, t1ki, e1i)(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 2개의 검증 패턴 중, 어느 검증 패턴을 이용할지를 선택한다. 예를 들어, 검증자 알고리즘 V는, 검증 패턴의 종류를 나타내는 2개의 수치 {0, 1} 중에서 1개의 수치를 선택하고, 선택한 수치를 요구 ChBi에 설정한다. 요구 ChBi(i=1 내지 N)은 증명자 알고리즘 P로 보내진다.
공정 #5:
요구 ChBi(i=1 내지 N)을 수취한 증명자 알고리즘 P는, i=1 내지 N의 각각에 대하여, 수취한 요구 ChBi에 따라서 검증자 알고리즘 V로 보내는 회답 Rspi를 생성한다. ChBi=0의 경우, 증명자 알고리즘 P는, 회답 Rspi=r0i를 생성한다. ChBi=1의 경우, 증명자 알고리즘 P는, 회답 Rspi=r1i를 생성한다. 공정 #5에서 생성된 회답 Rspi(i=1 내지 N)은 검증자 알고리즘 V로 보내진다.
공정 #6:
회답 Rspi(i=1 내지 N)을 수취한 검증자 알고리즘 V는, 수취한 회답 Rspi를 이용하여, i=1 내지 N에 대하여 다음 인증 처리를 실행한다.
ChBi=0의 경우, 검증자 알고리즘 V는, c0i=H(r0i, (ChAi)q(0)·r0i-t11i, …, (ChAi)q(k-1)·r0i-t1ki, ChAi·F(r0i)-e1i)의 등호가 성립되는지 여부를 검증한다. ChBi=1의 경우, 검증자 알고리즘 V는, c1i=H(r1i, ChAi·(y-F(r1i))-ΣzGz(t1zi, r1i))의 등호가 성립되는지 여부를 검증한다.
검증자 알고리즘 V는, 모든 검증이 성공한 경우에 인증 성공을 나타내는 값 1을 출력하고, 검증에 실패가 있는 경우에 인증 실패를 나타내는 값 0을 출력한다.
이상, 5 패스 방식에 관한 고차 확장 알고리즘의 병렬화에 대하여 설명하였다. 이 알고리즘을 이용함으로써, 통신에 필요한 데이터 사이즈가 대폭 삭감된다. 또한, 고차 다항식을 이용하고 있음으로써, 보다 높은 안전성이 실현되고 있다.
(3-4-3: 병렬화 알고리즘(구성예 2: 고효율)(도 16))
그런데, 도 15에 나타낸 고차 확장 알고리즘의 병렬화 구성에 있어서, 1 패스째에 메시지(c0i, c1i)(i=1 내지 N)를 그대로 보내고 있었다. 그러나, 통신 효율을 생각하면, 메시지(c0i, c1i)(i=1 내지 N)를 1개의 해시값으로 통합하여 보내는 편이 바람직하다. 1 패스째에서 메시지(c0i, c1i)(i=1 내지 N)를 1개의 해시값으로 통합하여 보내기 위해서는, 도 16에 도시한 바와 같이 알고리즘의 구성을 변형하면 된다.
도 16의 구성예에 있어서, 증명자 알고리즘 P는, 공정 #1에서 해시값 Cmt←H(c01, c11, …, c0N, c1N)을 계산하고 있다. 또한, 증명자 알고리즘 P는, 공정 #5에서 회답 Rspi를 생성할 때, ChBi=0의 경우에 회답 Rspi=(r0i, c1i)를 생성하고, ChBi=1의 경우에 회답 Rspi=(r1i, c0i)를 생성하고 있다. 한편, 검증자 알고리즘 V는, 공정 #6에 있어서, (ChAi, ChBi, Rspi)(i=1 내지 N)으로부터 (c01, c11, …, c0N, c1N)을 생성하고, Cmt=(c01, c11, …, c0N, c1N)의 등호가 성립되는지 여부를 검증하고 있다. 이들 변형을 행함으로써, 통신 효율을 높이는 것이 가능해진다.
이상, 고차 확장 알고리즘에 기초하는 효율적인 병렬화 알고리즘에 대하여 설명하였다.
(3-4-4: 병렬화 알고리즘(구성예 2: 더욱 고효율)(도 17))
그런데, 도 15에 나타낸 고차 확장 알고리즘의 병렬화 구성에 있어서, 1 패스째에 메시지(c0i, c1i)(i=1 내지 N)를 그대로 보내고 있었다. 또한, 3 패스째에 (t11i, …, t1ki, e1i)(i=1 내지 N)을 그대로 보내고 있었다. 그러나, 통신 효율을 생각하면, 메시지(c0i, c1i)(i=1 내지 N)를 1개의 해시값으로 통합하여 보내는 편이 바람직하다. 또한, (t11i, …, t1ki, e1i)(i=1 내지 N)을 1개의 해시값으로 통합하여 보내는 편이 바람직하다. 1 패스째에서 메시지(c0i, c1i)(i=1 내지 N)를 1개의 해시값으로 통합하여 보내고, 3 패스째에서 (t11i, …, t1ki, e1i)(i=1 내지 N)을 1개의 해시값으로 통합하여 보내기 위해서는, 도 17에 도시한 바와 같이 알고리즘의 구성을 변형하면 된다.
도 17의 구성예에 있어서, 증명자 알고리즘 P는, 공정 #1에서 해시값 CmtA ←H(c01, c11, …, c0N, c1N)을 계산하고 있다. 증명자 알고리즘 P는, 공정 #3에서 해시값 CmtB←H(t111, …, t1kN, e11, …, e1N)을 계산하고 있다. 또한, 증명자 알고리즘 P는, 공정 #5에서 회답 Rspi를 생성할 때, ChBi=0의 경우에 회답 Rspi=(r0i, t01i, …, t0ki, e0i, c1i)를 생성하고, ChBi=1의 경우에 회답 Rspi=(r1i, t11i, …, t1ki, e1i, c0i)를 생성하고 있다.
한편, 검증자 알고리즘 V는, 공정 #6에 있어서, (ChAi, ChBi, Rspi)(i=1 내지 N)로부터 (c01, c11, …, c0N, c1N) 및 (t111, …, t1kN, e11, …, e1N)을 생성하고, CmtA=(c01, c11, …, c0N, c1N) 및 CmtB=(t111, …, t1kN, e11, …, e1N)의 등호가 성립되는지 여부를 검증하고 있다. 이들 변형을 행함으로써, 통신 효율을 더욱 높이는 것이 가능해진다.
이상, 고차 확장 알고리즘에 기초하는 더욱 효율적인 병렬화 알고리즘에 대하여 설명하였다.
이상 설명한 고차 확장 알고리즘을 적용함으로써, 보다 안전성이 높고 효율적인 공개 키 인증 방식을 실현하는 것이 가능해진다. 예를 들어, 5 패스 방식의 확장 알고리즘에 있어서, (q, n, m, N)=(24, 45, 30, 88)로 하는 경우, 공개 키의 사이즈는 120비트, 비밀 키의 사이즈는 180비트, 통신 데이터의 사이즈는 27512비트로 된다.
동일 정도의 안전성을 담보하려고 하면, 5 패스 방식의 고차 확장 알고리즘의 경우, 예를 들어 (q, n, m, N)=(22, 42, 40, 118)의 조건이어도 된다. 이 조건에 있어서, 공개 키의 사이즈는 80비트, 비밀 키의 사이즈는 84비트, 통신 데이터의 사이즈는 27814비트로 된다. 즉, 고차 확장 알고리즘을 적용함으로써, 통신 데이터의 사이즈를 동일 정도로 유지하면서, 공개 키의 사이즈 및 비밀 키의 사이즈를 대폭 저감하는 것이 가능해진다.
또한, 조건을 (q, n, m, N)=(23, 28, 27, 97)로 변경하여도 된다. 이 경우, 공개 키의 사이즈는 81비트, 비밀 키의 사이즈는 84비트, 통신 데이터의 사이즈는 27145비트가 된다. 또한, 조건을 (q, n, m, N)=(24, 21, 20, 88)로 변경하여도 된다. 이 경우, 공개 키의 사이즈는 80비트, 비밀 키의 사이즈는 84비트, 통신 데이터의 사이즈는 28392비트로 된다. 어느 쪽의 조건에 있어서도, 대폭적인 효율화가 달성되어 있다.
<4: 전자 서명 방식으로의 변형>
여기서, 상기한 공개 키 인증 방식을 전자 서명 방식으로 변형하는 방법을 소개한다.
공개 키 인증 방식의 모델에 있어서의 증명자를 전자 서명 방식에 있어서의 서명자에 대응시키면, 증명자만이 검증자를 납득시킨다고 하는 점에서, 전자 서명 방식의 모델과 근사하고 있는 것이 용이하게 이해될 것이다. 이러한 생각에 기초하여, 전술한 공개 키 인증 방식을 전자 서명 방식으로 변형하는 방법에 대하여 설명한다.
[4-1: 3 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형]
우선, 3 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형에 대하여 설명한다.
(4-1-1: 전자 서명 알고리즘(구성예 1)(도 18))
도 18에 도시한 바와 같이, 3 패스 방식에 관한 효율적인 알고리즘(예를 들어, 도 6 및 도 8을 참조)은 3회의 대화 및 4개의 공정 #1 내지 공정 #4로 표현된다.
공정 #1은, i=1 내지 N에 대하여, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i, c2i)를 생성하는 처리 (1)과, Cmt←H(c01, c11, c21, …, c0N, c1N, c2N)을 계산하는 처리 (2)로 구성된다. 공정 #1에서 증명자 알고리즘 P에 의해 생성된 Cmt는, 검증자 알고리즘 V로 보내진다.
공정 #2는, Ch1, …, ChN을 선택하는 처리로 구성된다. 공정 #2에서 검증자 알고리즘 V에 의해 선택된 Ch1, …, ChN은, 증명자 알고리즘 P로 보내진다.
공정 #3은, Ch1, …, ChN 및 a1, …, aN을 이용하여 Rsp1, …, RspN을 생성하는 처리로 구성된다. 이 처리를 Rspi←Select(Chi, ai)로 표현한다. 공정 #3에서 증명자 알고리즘 P에 의해 생성된 Rsp1, …, RspN은, 검증자 알고리즘 V로 보내진다.
공정 #4는, Ch1, …, ChN 및 Rsp1, …, RspN을 이용하여 c01, c11, c21, …, c0N, c1N, c2N을 재생하는 처리 (1)과, 재생한 c01, c11, c21, …, c0N, c1N, c2N을 이용하여 Cmt=H(c01, c11, c21, …, c0N, c1N, c2N)을 검증하는 처리 (2)로 구성된다.
상기한 공정 #1 내지 공정 #4로 표현되는 공개 키 인증 방식의 알고리즘은, 도 18에 도시한 바와 같은 서명 생성 알고리즘 Sig 및 서명 검증 알고리즘 Ver으로 변형된다.
(서명 생성 알고리즘 Sig)
우선, 서명 생성 알고리즘 Sig의 구성에 대하여 설명한다. 서명 생성 알고리즘 Sig는, 이하의 처리 (1) 내지 처리 (5)로 구성된다.
처리 (1): 서명 생성 알고리즘 Sig는, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i, c2i)를 생성한다.
처리 (2): 서명 생성 알고리즘 Sig는, Cmt←H(c01, c11, c21, …, c0N, c1N, c2N)을 계산한다.
처리 (3): 서명 생성 알고리즘 Sig는, (Ch1, …, ChN)←H(M, Cmt)를 계산한다. 이 M은, 서명을 부여하는 문서이다.
처리 (4): 서명 생성 알고리즘 Sig는, Rspi←Select(Chi, ai)를 계산한다.
처리 (5): 서명 생성 알고리즘 Sig는, (Cmt, Rsp1, …, RspN)을 서명에 설정한다.
(서명 검증 알고리즘 Ver)
다음으로, 서명 검증 알고리즘 Ver의 구성에 대하여 설명한다. 서명 검증 알고리즘 Ver은, 이하의 처리 (1) 내지 처리 (3)으로 구성된다.
처리 (1): 서명 검증 알고리즘 Ver은, (Ch1, …, ChN)←H(M, Cmt)를 계산한다.
처리 (2): 서명 검증 알고리즘 Ver은, Ch1, …, ChN 및 Rsp1, …, RspN을 이용하여 c01, c11, c21, …, c0N, c1N, c2N을 생성한다.
처리 (3): 서명 검증 알고리즘 Ver은, 재생한 c01, c11, c21, …, c0N, c1N, c2N을 이용하여 Cmt=H(c01, c11, c21, …, c0N, c1N, c2N)을 검증한다.
이상 설명한 바와 같이, 공개 키 인증 방식의 모델에 있어서의 증명자를 전자 서명 방식에 있어서의 서명자에 대응시킴으로써, 공개 키 인증 방식의 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 것이 가능해진다.
(4-1-2: 전자 서명 알고리즘(구성예 2: 고효율)(도 19))
그런데, 도 18에 나타낸 서명 생성 알고리즘 Sig의 구성에 주목하면, 처리 (2) 및 처리 (3)에서 해시값의 계산을 행하고 있는 것을 알게 될 것이다. 또한, 서명 검증 알고리즘 Ver의 구성에 주목하면, 처리 (1)에 있어서, 서명 생성 알고리즘 Sig의 처리 (3)과 동일한 해시값의 계산을 행하고 있는 것을 알게 될 것이다. 이들 처리에 주목하여, 도 19에 도시한 바와 같이 서명 생성 알고리즘 Sig 및 서명 검증 알고리즘 Ver의 구성을 개량하면, 계산 효율을 더욱 향상시킬 수 있다.
(서명 생성 알고리즘 Sig)
우선, 도 19를 참조하면서, 개량 후의 서명 생성 알고리즘 Sig의 구성에 대하여 설명한다. 서명 생성 알고리즘 Sig는, 이하의 처리 (1) 내지 처리 (4)로 구성된다.
처리 (1): 서명 생성 알고리즘 Sig는, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i, c2i)를 생성한다.
처리 (2): 서명 생성 알고리즘 Sig는, (Ch1, …, ChN)←H(M, c01, c11, c21, …, c0N, c1N, c2N)을 계산한다. 이 M은, 서명을 부여하는 문서이다.
처리 (3): 서명 생성 알고리즘 Sig는, Rspi←Select(Chi, ai)를 계산한다.
처리 (4): 서명 생성 알고리즘 Sig는, (Ch1, …, ChN, Rsp1, …, RspN)을 서명에 설정한다.
(서명 검증 알고리즘 Ver)
다음으로, 개량 후의 서명 검증 알고리즘 Ver의 구성에 대하여 설명한다. 서명 검증 알고리즘 Ver은, 이하의 처리 (1) 및 처리 (2)로 구성된다.
처리 (1): 서명 검증 알고리즘 Ver은, Ch1, …, ChN 및 Rsp1, …, RspN을 이용하여 c01, c11, c21, …, c0N, c1N, c2N을 생성한다.
처리 (2): 서명 검증 알고리즘 Ver은, 재생한 c01, c11, c21, …, c0N, c1N, c2N을 이용하여 (Ch1, …, ChN)=H(c01, c11, c21, …, c0N, c1N, c2N)을 검증한다.
상기와 같이 서명 생성 알고리즘 Sig 및 서명 검증 알고리즘 Ver의 구성을 개량함으로써, 각 알고리즘에 있어서 해시값의 계산이 1회씩 삭감되고, 계산 효율이 향상된다.
[4-2: 5 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형]
다음으로, 5 패스의 공개 키 인증 방식으로부터 전자 서명 방식으로의 변형에 대하여 설명한다.
(4-2-1: 전자 서명 알고리즘(구성예 1)(도 20))
도 20에 도시한 바와 같이, 5 패스 방식에 관한 효율적인 알고리즘(예를 들어, 도 11, 도 13 및 도 16을 참조)은 5회의 대화 및 6개의 공정 #1 내지 공정 #6으로 표현된다.
공정 #1은, i=1 내지 N에 대하여, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i)를 생성하는 처리 (1)과, Cmt←H(c01, c11, …, c0N, c1N)을 계산하는 처리 (2)로 구성된다. 공정 #1에서 증명자 알고리즘 P에 의해 생성된 Cmt는, 검증자 알고리즘 V로 보내진다.
공정 #2는, ChA1, …, ChAN을 선택하는 처리로 구성된다. 공정 #2에서 검증자 알고리즘 V에 의해 선택된 ChA1, …, ChAN은, 증명자 알고리즘 P로 보내진다.
공정 #3은, i=1 내지 N에 대하여, bi=(t1i, e1i)를 생성하는 처리로 구성된다. 공정 #3에서 증명자 알고리즘 P에 의해 생성된 b1, …, bN은, 검증자 알고리즘 V로 보내진다.
공정 #4는, ChB1, …, ChBN을 선택하는 처리로 구성된다. 공정 #4에서 검증자 알고리즘 V에 의해 선택된 ChB1, …, ChBN은, 증명자 알고리즘 P로 보내진다.
공정 #5는, ChB1, …, ChBN, a1, …, aN, b1, …, bN을 이용하여 Rsp1, …, RspN을 생성하는 처리로 구성된다. 이 처리를 Rspi←Select(ChBi, ai, bi)로 표현한다. 공정 #5에서 증명자 알고리즘 P에 의해 생성된 Rsp1, …, RspN은, 검증자 알고리즘 V로 보내진다.
공정 #6은, ChA1, …, ChAN, ChB1, …, ChBN, Rsp1, …, RspN을 이용하여 c01, c11, …, c0N, c1N을 재생하는 처리 (1)과, 재생한 c01, c11, …, c0N, c1N을 이용하여 Cmt=H(c01, c11, …, c0N, c1N)을 검증하는 처리 (2)로 구성된다.
상기한 공정 #1 내지 공정 #6으로 표현되는 공개 키 인증 방식의 알고리즘은, 도 20에 도시한 바와 같은 서명 생성 알고리즘 Sig 및 서명 검증 알고리즘 Ver로 변형된다.
(서명 생성 알고리즘 Sig)
우선, 서명 생성 알고리즘 Sig의 구성에 대하여 설명한다. 서명 생성 알고리즘 Sig는, 이하의 처리 (1) 내지 처리 (7)로 구성된다.
처리 (1): 서명 생성 알고리즘 Sig는, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i)를 생성한다.
처리 (2): 서명 생성 알고리즘 Sig는, Cmt←H(c01, c11, …, c0N, c1N)을 계산한다.
처리 (3): 서명 생성 알고리즘 Sig는, (ChA1, …, ChAN)←H(M, Cmt)를 계산한다. 이 M은, 서명을 부여하는 문서이다.
처리 (4): 서명 생성 알고리즘 Sig는, i=1 내지 N에 대하여, bi=(t1i, e1i)를 생성한다.
처리 (5): 서명 생성 알고리즘 Sig는, (ChB1, …, ChBN)←H(M, Cmt, ChA1, …, ChAN, b1, …, bN)을 계산한다. 또한, (ChB1, …, ChBN)←H(ChA1, …, ChAN, b1, …, bN)으로 변형되어도 된다.
처리 (6): 서명 생성 알고리즘 Sig는, Rspi←Select(ChBi, ai, bi)를 계산한다.
처리 (7): 서명 생성 알고리즘 Sig는, (Cmt, b1, …, bN, Rsp1, …, RspN)을 전자 서명에 설정한다.
(서명 검증 알고리즘 Ver)
다음으로, 서명 검증 알고리즘 Ver의 구성에 대하여 설명한다. 서명 검증 알고리즘 Ver은, 이하의 처리 (1) 내지 처리 (4)로 구성된다.
처리 (1): 서명 검증 알고리즘 Ver은, (ChA1, …, ChAN)←H(M, Cmt)를 계산한다.
처리 (2): 서명 검증 알고리즘 Ver은, (ChB1, …, ChBN)←H(M, Cmt, ChA1, …, ChAN, b1, …, bN)을 계산한다. 또한, 서명 검증 알고리즘 Ver이 실행하는 처리 (5)에 있어서, (ChB1, …, ChBN)←H(ChA1, …, ChAN, b1, …, bN)으로 변형된 경우, 서명 검증 알고리즘 Ver은, (ChB1, …, ChBN)←H(ChA1, …, ChAN, b1, …, bN)을 계산한다.
처리 (3): 서명 검증 알고리즘 Ver은, ChA1, …, ChAN, ChB1, …, ChBN, Rsp1, …, RspN을 이용하여 c01, c11, …, c0N, c1N을 생성한다.
처리 (4): 서명 검증 알고리즘 Ver은, 재생한 c01, c11, …, c0N, c1N을 이용하여 Cmt=H(c01, c11, …, c0N, c1N)을 검증한다.
이상 설명한 바와 같이, 공개 키 인증 방식의 모델에 있어서의 증명자를 전자 서명 방식에 있어서의 서명자에 대응시킴으로써, 공개 키 인증 방식의 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 것이 가능해진다.
(4-2-2: 전자 서명 알고리즘(구성예 2: 고효율)(도 21))
도 21에 도시한 바와 같이, 5 패스 방식에 관한 더욱 효율적인 알고리즘(예를 들어, 도 17을 참조)은 5회의 대화 및 6개의 공정 #1 내지 공정 #6으로 표현된다.
공정 #1은, i=1 내지 N에 대하여, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i)를 생성하는 처리 (1)과, CmtA ←H(c01, c11, …, c0N, c1N)을 계산하는 처리 (2)로 구성된다. 공정 #1에서 증명자 알고리즘 P에 의해 생성된 CmtA는, 검증자 알고리즘 V로 보내진다.
공정 #2는, ChA1, …, ChAN을 선택하는 처리로 구성된다. 공정 #2에서 검증자 알고리즘 V에 의해 선택된 ChA1, …, ChAN은, 증명자 알고리즘 P로 보내진다.
공정 #3은, i=1 내지 N에 대하여 bi=(t1i, e1i)를 생성하는 처리 (1)과, CmtB←H(b1, …, bN)을 계산하는 처리 (2)로 구성된다. 공정 #3에서 증명자 알고리즘 P에 의해 생성된 CmtB는, 검증자 알고리즘 V로 보내진다.
공정 #4는, ChB1, …, ChBN을 선택하는 처리로 구성된다. 공정 #4에서 검증자 알고리즘 V에 의해 선택된 ChB1, …, ChBN은, 증명자 알고리즘 P로 보내진다.
공정 #5는, ChB1, …, ChBN, a1, …, aN, b1, …, bN을 이용하여 Rsp1, …, RspN을 생성하는 처리로 구성된다. 이 처리를 Rspi←Select(ChBi, ai, bi)로 표현한다. 공정 #5에서 증명자 알고리즘 P에 의해 생성된 Rsp1, …, RspN은, 검증자 알고리즘 V로 보내진다.
공정 #6은, ChA1, …, ChAN, ChB1, …, ChBN, Rsp1, …, RspN을 이용하여 c01, c11, …, c0N, c1N, b1, …, bN을 재생하는 처리 (1)과, 재생한 c01, c11, …, c0N, c1N을 이용하여 CmtA=H(c01, c11, …, c0N, c1N)을 검증하는 처리 (2)와, 재생한 b1, …, bN을 이용하여 CmtB=H(b1, …, bN)을 검증하는 처리 (3)으로 구성된다.
상기한 공정 #1 내지 공정 #6으로 표현되는 공개 키 인증 방식의 알고리즘은, 도 21에 도시한 바와 같은 서명 생성 알고리즘 Sig 및 서명 검증 알고리즘 Ver로 변형된다.
(서명 생성 알고리즘 Sig)
우선, 서명 생성 알고리즘 Sig의 구성에 대하여 설명한다. 서명 생성 알고리즘 Sig는, 이하의 처리 (1) 내지 처리 (8)로 구성된다.
처리 (1): 서명 생성 알고리즘 Sig는, ai=(r0i, t0i, e0i, r1i, t1i, e1i, c0i, c1i)를 생성한다.
처리 (2): 서명 생성 알고리즘 Sig는, CmtA←H(c01, c11, …, c0N, c1N)을 계산한다.
처리 (3): 서명 생성 알고리즘 Sig는, (ChA1, …, ChAN)←H(M, CmtA)를 계산한다. 이 M은, 서명을 부여하는 문서이다.
처리 (4): 서명 생성 알고리즘 Sig는, i=1 내지 N에 대하여, bi=(t1i, e1i)를 생성한다.
처리 (5): 서명 생성 알고리즘 Sig는, CmtB ←H(b1, …, bN)을 계산한다.
처리 (6): 서명 생성 알고리즘 Sig는, (ChB1, …, ChBN)←H(M, Cmt, ChA1, …, ChAN, CmtB)를 계산한다. 또한, (ChB1, …, ChBN)←H(ChA1, …, ChAN, CmtB)로 변형하여도 된다.
처리 (7): 서명 생성 알고리즘 Sig는, Rspi←Select(ChBi, ai, bi)를 계산한다.
처리 (8): 서명 생성 알고리즘 Sig는, (CmtA, CmtB, Rsp1, …, RspN)을 전자 서명에 설정한다.
(서명 검증 알고리즘 Ver)
다음으로, 서명 검증 알고리즘 Ver의 구성에 대하여 설명한다. 서명 검증 알고리즘 Ver은, 이하의 처리 (1) 내지 처리 (5)로 구성된다.
처리 (1): 서명 검증 알고리즘 Ver은, (ChA1, …, ChAN)←H(M, CmtA)를 계산한다.
처리 (2): 서명 검증 알고리즘 Ver은, (ChB1, …, ChBN)←H(M, CmtA, ChA1, …, ChAN, CmtB)를 계산한다. 또한, 서명 검증 알고리즘 Ver이 실행하는 처리 (6)에 있어서, (ChB1, …, ChBN)←H(ChA1, …, ChAN, CmtB)로 변형된 경우, 서명 검증 알고리즘 Ver은, (ChB1, …, ChBN)←H(ChA1, …, ChAN, CmtB)를 계산한다.
처리 (3): 서명 검증 알고리즘 Ver은, ChA1, …, ChAN, ChB1, …, ChBN, Rsp1, …, RspN을 이용하여 c01, c11, …, c0N, c1N, b1, …, bN을 생성한다.
처리 (4): 서명 검증 알고리즘 Ver은, 재생한 c01, c11, …, c0N, c1N을 이용하여 CmtA=H(c01, c11, …, c0N, c1N)을 검증한다.
처리 (5): 서명 검증 알고리즘 Ver은, 재생한 b1, …, bN을 이용하여 CmtB=H(b1, …, bN)을 검증한다.
이상 설명한 바와 같이, 공개 키 인증 방식의 모델에 있어서의 증명자를 전자 서명 방식에 있어서의 서명자에 대응시킴으로써, 공개 키 인증 방식의 알고리즘을 전자 서명 방식의 알고리즘으로 변형하는 것이 가능해진다.
<5: 하이브리드형 알고리즘>
위증이 성공할 확률을 무시할 수 있을 정도로까지 작게 하기 위해서, 대화 프로토콜을 복수회 실행할 필요성에 대해서는 이미 설명한 바와 같다. 또한, 대화 프로토콜을 복수회 실행하는 방법으로서, 직렬적인 방법과 병렬적인 방법을 소개하였다. 특히, 병렬적인 방법에 대해서는, 구체적인 병렬화 알고리즘을 나타내어 설명하였다. 여기에서는, 직렬적인 방법과 병렬적인 방법을 조합한 하이브리드형 알고리즘을 소개한다.
[5-1: 3 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘]
우선, 3 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘에 대하여 설명한다.
(5-1-1: 병직렬 알고리즘(도 22))
도 22를 참조하면서, 하이브리드형 일 구성예(이하, 병직렬 구성)에 대하여 설명한다. 도 22에는, 기본 구성의 알고리즘 및 병직렬 구성의 알고리즘을 나타내었다.
기본 구성의 경우, 1 패스째에 메시지 Cmt가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 요구 Ch가 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 회답 Rsp가 보내진다.
한편, 병직렬 구성의 경우, 1 패스째에 N회분의 메시지(Cmt1, …, CmtN)가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 1회분의 요구 Ch1이 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 1회분의 회답 Rsp1이 보내진다. 그 후, 증명자와 검증자의 사이에서 요구 Ch2, …, ChN 및 회답 Rsp2, …, RspN의 교환이 축차적으로 행해진다.
지금까지 설명해 온 공개 키 인증 방식의 알고리즘에 기초하는 병직렬 구성의 경우, 수동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 2N+1회이어도 된다. 또한, 1 패스째에서 송신되는 N회분의 메시지를 1개의 해시값으로 통합하면, 통신 효율을 향상시킬 수 있다.
(5-1-2: 직병렬 알고리즘(도 23))
도 23을 참조하면서, 하이브리드형의 다른 일 구성예(이하, 직병렬 구성)에 대하여 설명한다. 도 23에는, 기본 구성의 알고리즘 및 직병렬 구성의 알고리즘을 나타내었다.
기본 구성의 경우, 1 패스째에 메시지 Cmt가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 요구 Ch가 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 회답 Rsp가 보내진다.
직병렬 구성의 경우, 1 패스째에 1회분의 메시지 Cmt1이 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 1회분의 요구 Ch1이 보내진다. 그 후, 증명자와 검증자의 사이에서 메시지 Cmt2, …, CmtN 및 요구 Ch2, …, ChN의 교환이 축차적으로 행해진다. 요구 ChN이 검증자로부터 증명자에게 보내진 후, 증명자로부터 검증자에게 N회분의 회답 Rsp2, …, RspN이 보내진다.
지금까지 설명해 온 공개 키 인증 방식의 알고리즘에 기초하는 직병렬 구성의 경우, 능동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 2N+1회이어도 된다.
[5-2: 5 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘]
다음으로, 5 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘에 대하여 설명한다.
(5-2-1: 병직렬 알고리즘(구성예 #1)(도 24))
우선, 도 24를 참조하면서, 하이브리드형의 일 구성예(이하, 병직렬 구성 #1)에 대하여 설명한다. 도 24에는, 기본 구성의 알고리즘 및 병직렬 구성 #1의 알고리즘을 나타내었다.
기본 구성의 경우, 1 패스째에 메시지 CmtA가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 수 ChA가 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 벡터 CmtB가 보내진다. 4 패스째에서는, 검증자로부터 증명자에게 요구 ChB가 보내진다. 5 패스째에서는, 증명자로부터 검증자에게 회답 Rsp가 보내진다.
병직렬 구성 #1의 경우, 1 패스째에 N회분의 메시지(CmtA1, …, CmtAN)가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 1회분의 수 ChA1이 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 1회분의 벡터 CmtB1이 보내진다. 4 패스째에서는, 검증자로부터 증명자에게 1회분의 요구 ChB1이 보내진다. 5 패스째에서는, 증명자로부터 검증자에게 1회분의 회답 Rsp1이 보내진다. 그 후, 증명자와 검증자의 사이에서, ChA2, …, ChAN, CmtB2, …, CmtBN, ChB2, …, ChBN, Rsp2, …, RspN의 교환이 축차적으로 행해진다.
병직렬 구성 #1의 경우, 수동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 4N+1회이어도 된다. 또한, 1 패스째에서 송신되는 N회분의 메시지를 1개의 해시값으로 통합함으로써, 통신 효율을 향상시킬 수 있다.
(5-2-2: 병직렬 알고리즘(구성예 #2)(도 25))
다음으로, 도 25를 참조하면서, 하이브리드형의 다른 일 구성예(이하, 병직렬 구성 #2)에 대하여 설명한다. 도 25에는, 기본 구성의 알고리즘 및 병직렬 구성 #2의 알고리즘을 나타내었다.
병직렬 구성 #2의 경우, 1 패스째에 N회분의 메시지(CmtA1, …, CmtAN)가 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 N회분의 수(ChA1, …, ChAN)가 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 N회분의 벡터(CmtB1, …, CmtBN)가 보내진다. 4 패스째에서는, 검증자로부터 증명자에게 1회분의 요구 ChB1이 보내진다. 5 패스째에서는, 증명자로부터 검증자에게 1회분의 회답 Rsp1이 보내진다. 그 후, 증명자와 검증자의 사이에서, ChB2, …, ChBN, Rsp2, …, RspN의 교환이 축차적으로 행해진다.
병직렬 구성 #2의 경우, 수동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 2N+3회이어도 된다. 또한, 1 패스째에서 송신되는 N회분의 메시지나 3 패스째에서 송신되는 N회분의 벡터 등을 1개의 해시값으로 통합함으로써, 통신 효율을 향상시킬 수 있다.
(5-2-3: 직병렬 알고리즘(구성예 #1)(도 26))
다음으로, 도 26을 참조하면서, 하이브리드형의 다른 일 구성예(이하, 직병렬 구성 #1)에 대하여 설명한다. 도 26에는, 기본 구성의 알고리즘 및 직병렬 구성 #1의 알고리즘을 나타냈다.
직병렬 구성 #1의 경우, 1 패스째에 1회분의 메시지 CmtA1이 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 1회분의 수 ChA1이 보내진다. 3 패스째에서는, 증명자로부터 검증자에게 1회분의 벡터 CmtB1이 보내진다. 4 패스째에서는, 검증자로부터 증명자에게 1회분의 요구 ChB1이 보내진다. 그 후, 증명자와 검증자의 사이에서, CmtA2, …, CmtAN, ChA2, …, ChAN, CmtB2, …, CmtBN, ChB2, …, ChBN의 교환이 축차적으로 행해진다. 마지막으로, 증명자로부터 검증자에게 N회분의 회답(Rsp1…, RspN)이 보내진다.
직병렬 구성 #1의 경우, 능동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 4N+1회이어도 된다.
(5-2-4: 직병렬 알고리즘(구성예 #2)(도 27))
다음으로, 도 27을 참조하면서, 하이브리드형의 다른 일 구성예(이하, 직병렬 구성 #2)에 대하여 설명한다. 도 27에는, 기본 구성의 알고리즘 및 직병렬 구성 #2의 알고리즘을 나타냈다.
직병렬 구성 #2의 경우, 1 패스째에 1회분의 메시지 CmtA1이 증명자로부터 검증자에게 보내진다. 2 패스째에서는, 검증자로부터 증명자에게 1회분의 수 ChA1이 보내진다. 그 후, 증명자와 검증자의 사이에서, CmtA2, …, CmtAN, ChA2, …, ChAN의 교환이 축차적으로 행해진다. ChAN의 교환을 종료한 후, 증명자로부터 검증자에게 N회분의 벡터(CmtB1, …, CmtBN)가 보내진다. 계속해서, 검증자로부터 증명자에게 N회분의 요구(ChB1, …, ChB1)가 보내진다. 마지막으로, 증명자로부터 검증자에게 N회분의 회답(Rsp1…, RspN)이 보내진다.
직병렬 구성 #2의 경우, 능동적 공격에 대한 안전성이 보증된다. 또한, 대화의 횟수가 2N+3회이어도 된다.
이상, 5 패스의 공개 키 인증 방식에 관한 하이브리드형 알고리즘에 대하여 설명하였다.
<6: 보충>
여기서, 상기한 공개 키 인증 방식에 관한 설명의 보충을 행한다.
[6-1: 파라미터의 설정 방법]
여기서, 파라미터의 설정 방법에 대하여 설명을 보충한다.
(다변수 다항식의 계수에 대하여)
지금까지, 다변수 다항식의 계수 또는 그 계수의 생성에 이용하는 난수 시드(이하, 다변수 다항식의 계수 등)를 어떻게 설정할지에 대해서는 상세히 언급하지 않았다. 다변수 다항식의 계수 등은, 시스템에 공통인 파라미터로 하여도 되고, 유저마다 서로 다른 파라미터로 하여도 된다.
그러나, 다변수 다항식의 계수 등을 시스템에 공통인 파라미터로 하면, 그 다변수 다항식에 취약성이 발견된 경우, 시스템 전체에 대하여 설정을 갱신할 필요가 생겨버린다. 또한, 랜덤하게 선택한 계수를 갖는 다변수 다항식에 대하여, 평균적인 완강성(풀이의 어려움)은 해석되어 있지만, 어떤 특정한 계수를 갖는 다변수 다항식에 대하여 충분한 완강성을 갖는 것을 보증하는 것은 어렵다.
따라서, 본건 발명자는, 각 유저가 선택한 문자열 등을 의사 난수 생성기의 시드에 이용하여 다변수 다항식의 계수를 생성하는 시스템을 고안하였다. 예를 들어, 유저의 e-메일 어드레스를 시드에 이용하거나, e-메일 어드레스와 갱신 일시 등을 결합한 문자열을 시드에 이용하거나 하는 방법 등이 생각된다. 이러한 방법을 이용하면, 만일, 어떤 문자열로부터 생성된 계수를 갖는 다변수 다항식에 취약성이 발견된 경우이더라도, 그 계수를 갖는 다변수 다항식을 이용하고 있는 유저에게만 영향이 한정된다. 또한, 문자열을 바꾸는 것만으로 다변수 다항식이 변경되기 때문에, 용이하게 취약성을 해소할 수 있다.
이상, 시스템 파라미터의 설정 방법에 대하여 설명하였다. 또한, 상기한 설명에서는 문자열을 예로 들었지만, 유저마다 서로 다른 숫자의 열이나 기호의 열을 이용하여도 된다.
(다항식의 수 m 및 변수의 수 n에 대하여)
그런데, 지금까지 설명해 온 대화 프로토콜은, 수동적 공격에 대한 안전성이 보증되어 있다. 그러나, 이 대화 프로토콜을 병렬적으로 반복 실행하는 경우, 능동적 공격에 대한 안전성이 확실하게 보증되는 것을 증명할 수 있도록 하기 위해서는, 이하에서 설명하는 조건이 필요해진다.
상기한 대화 프로토콜은, 1조의 키 페어(공개 키 y, 비밀 키 s)를 이용하여, 「증명자가 y에 대하여 y=F(s)로 되는 s를 알고 있는 것」을 검증자에게 검증시키기 위한 알고리즘이었다. 그 때문에, 검증에서 수리되는 대화를 행한 경우, 「대화 시에 증명자가 s를 이용하였다」라고 하는 정보가 검증자에게 알려져 버릴 가능성을 부정할 수 없다. 또한, 다변수 다항식 F에 대하여 충돌 곤란성이 보증되지 않는다. 그 때문에, 상기한 대화 프로토콜을 병렬적으로 반복 실행하는 경우, 능동적 공격에 대한 안전성이 확실하게 보증되어 있는 것을 무조건 증명하는 것은 어렵다.
따라서, 본건 발명자는, 검증에서 수리되는 대화를 행한 경우에 있어서도, 「대화 시에 증명자가 s를 이용하였다」라고 하는 정보를 검증자에게 알려지지 않도록 하는 방법에 대하여 검토하였다. 그리고, 본건 발명자는, 상기한 대화 프로토콜을 병렬적으로 반복 실행하는 경우에 있어서도, 능동적 공격에 대한 안전성을 보증하는 것이 가능하게 되는 방법을 고안하였다. 이 방법은, 공개 키로서 이용하는 다변수 다항식 f1, …, fm의 수 m을 그 변수의 수 n보다도 충분히 작은 값으로 설정한다는 것이다. 예를 들어, 2m-n≪1이 되도록 m 및 n이 설정된다(예를 들어, n=160, m=80의 경우 2-80≪1임) .
다차다변수 방정식의 해를 구하는 문제에 대한 해답의 곤란성에 안전성의 근거를 두는 방식에 있어서, 비밀 키 s1과, 그에 대응하는 공개 키 pk가 부여되어도, 그 공개 키 pk에 대응하는 다른 비밀 키 s2를 생성하는 것은 어렵다. 그로 인해, 공개 키 pk에 대한 비밀 키 s가 2개 이상 존재하는 것을 보증하면, 검증에서 수리되는 대화를 행한 경우에 있어서도, 「대화 시에 증명자가 s를 이용하였다」라고 하는 정보가 검증자에게 알려지지 않도록 하는 것이 가능해진다. 즉, 이 보증이 성립되면, 대화 프로토콜을 병렬적으로 반복 실행하는 경우에 있어서도, 능동적 공격에 대한 안전성을 보증하는 것이 가능해진다.
도 29를 참조하면서, m개의 n변수 다차 다항식으로 구성되는 함수 F: Kn→Km에 대하여 생각하면(단, n>m), 두 번째 원상을 갖지 않는 정의 영역의 요소 수는, 최대 |K|m-1개밖에 존재하지 않는다. 그 때문에, |K|m-n을 충분히 작게 하면, 두 번째 원상을 갖지 않는 정의 영역의 요소가 선택될 확률을 무시할 수 있을 정도로까지 작게 할 수 있다. 즉, n 변수 다차 다항식 f1, …, fm의 수 m이 그 변수의 수 n보다도 충분히 작은 값으로 설정되어 있으면, 공개 키 pk에 대하여 2개 이상의 비밀 키 s가 존재하는 것을 보증할 수 있다. 그 결과, 검증에서 수리되는 대화를 행한 경우에 있어서도, 「대화 시에 증명자가 s를 이용하였다」라고 하는 정보가 검증자에게 알려지지 않도록 하는 것이 가능하게 되고, 대화 프로토콜을 병렬적으로 반복 실행하는 경우에 있어서도, 능동적 공격에 대한 안전성이 보증된다.
이상 설명한 바와 같이, n 변수 다차 다항식 f1, …, fm의 수 m이 그 변수의 수 n보다도 작은 값(n>m; 바람직하게는 2m-n≪1)으로 설정하는 설정 조건을 부과함으로써 대화 프로토콜을 병렬적으로 반복 실행하는 경우의 안전성을 보증하는 것이 가능해진다.
[6-2: 비정상적 요구에 대한 응답 방법]
여기서, 비정상적 요구에 대한 응답 방법에 대하여 고찰한다.
(6-2-1: 증명자에 의한 응답 방법에 대하여)
대화 프로토콜 중에서 검증자가 위증 요구를 제기해 올 가능성에 대하여 생각해 보기로 하자. 예를 들어, 3 패스 방식의 경우, 증명자가 검증자에게 메시지(c0, c1, c2)를 보내고, 검증자가 증명자에게 요구 Ch=0을 보낸 후, 증명자로부터 검증자에게 요구 Ch=0에 대응하는 회답 Rsp가 보내진다. 여기까지는 정상적인 대화이다.
그 후에, 검증자가, 증명자에게 요구 Ch=1에 대응하는 회답 Rsp를 더 요구했다고 하자. 만약에 이 요구에 따라서, 증명자가 요구 Ch=1에 대응하는 회답 Rsp를 검증자에게 보내버리면, 비밀 키가 검증자에게 누설되어 버린다. 이러한 비밀 키의 누설은 현실적으로 일어날 수 있는 것이다. 예를 들어, 검증자는, 2 패스째에서 요구 Ch=1을 송신한 것이 아니라, 요구 Ch=0을 송신한 것이라고 속여서, 요구 Ch=1에 대응하는 회답 Rsp를 더 요구할지도 모른다. 한편, 증명자는, 2 패스째에서 송신된 요구 Ch의 비트가 통신 에러에 의해 다른 비트로 되어버렸다고 착각할지도 모른다.
따라서, 본건 발명자는, 비밀 키의 누설이 발생하는 것을 피하는 방법으로서, 1 회분의 메시지에 대하여 증명자가 2가지 이상의 요구 Ch에 대응하는 회답을 요구해 온 경우에, 대화를 종료하거나, 또는 새로운 난수를 이용하여 1 패스째로부터 대화를 다시 하는 방법을 고안하였다. 이 방법을 적용하면, 검증자가 속여서 2가지 이상의 요구 Ch에 대응하는 회답을 요구해 와도, 비밀 키가 누설되는 일은 없어진다.
(6-2-2: 검증자에 의한 응답 방법에 대하여)
다음으로, 증명자가 속이고 요구 Ch의 재송을 요구해 올 가능성에 대하여 생각해 보기로 하자. 예를 들어, 3 패스 방식에 있어서, 증명자가 검증자에게 메시지(c0, c1, c2)를 보내고, 검증자가 증명자에게 요구 Ch=0을 보낸 후, 증명자가 요구 Ch의 재송을 요구해 왔다고 하자. 이 요구에 따라서, 검증자가 다시 랜덤하게 요구 Ch를 선택하면, 먼저 보낸 요구 Ch=0과는 다른 요구 Ch=1이 선택될 가능성이 있다. 이 경우, 검증자로부터 증명자에게 요구 Ch=1이 보내진다. 가령, 증명자가 요구 Ch=1에 대응하는 회답 Rsp를 검증자에게 보낼 수 있었다고 하자.
이 경우, 증명자는, 요구 Ch=1에는 회답할 수 있지만, 요구 Ch=0에는 회답할 수 없을지도 모른다. 즉, 증명자가 위증하고 있을 가능성을 부정할 수 없다. 예를 들어, 증명자는, 요구 Ch를 분실해버렸으므로 요구 Ch를 재송해주기 원한다고 검증자에게 요구할지도 모른다. 한편, 검증자는, 통신 에러에 의해 먼저 송신한 요구가 분실되었다고 생각하고, 증명자의 요구에 따라서 요구 Ch를 재송해버릴지도 모른다. 그리고, 재송한 요구 Ch가 먼저 송신한 요구 Ch와 상이한 경우, 위증이 성공해 버린다.
이 예에서 알 수 있는 바와 같이, 요구 Ch가 랜덤하게 선택됨으로써, 증명자에게 위증의 기회를 부여해버린다. 따라서, 본건 발명자는, 위증의 기회를 부여하지 않도록 하기 위해서, 1 회분의 메시지에 대하여 증명자가 요구 Ch의 송신을 다시 요구해 온 경우에, 검증자가 대화를 종료하거나, 또는 새로운 난수를 생성하지 않고 전회와 동일한 요구 Ch를 재송하도록 대화 프로토콜을 개량하는 방법을 고안하였다. 이 방법을 적용하면, 요구 Ch의 재송 요구를 이용한 위증의 기회를 없앨 수 있다.
이상, 비정상적 요구에 대한 안전한 응답 방법에 대하여 설명하였다. 또한, 상기한 설명에 있어서는 3 패스의 기본 구성을 예로 들었지만, 직렬적인 반복 구성, 병렬적인 반복 구성, 또는 하이브리드형의 반복 구성에 대해서도 마찬가지의 고안을 가함으로써, 안전성을 향상시킬 수 있다. 물론, 5 패스의 알고리즘에 대해서도 마찬가지이다.
<7: 하드웨어 구성예>
상기한 각 알고리즘은, 예를 들어 도 28에 나타낸 정보 처리 장치의 하드웨어 구성을 이용하여 실행하는 것이 가능하다. 즉, 상기 각 알고리즘의 처리는, 컴퓨터 프로그램을 이용하여 도 28에 나타낸 하드웨어를 제어함으로써 실현된다. 또한, 이 하드웨어의 형태는 임의이며, 예를 들어 퍼스널 컴퓨터, 휴대 전화, PHS, PDA 등의 휴대 정보 단말기, 게임기, 접촉식 또는 비접촉식의 IC 칩, 접촉식 또는 비접촉식의 IC 카드, 또는 다양한 정보 가전이 이에 포함된다. 단, 상기한 PHS는, Personal Handy-phone System의 약어이다. 또한, 상기한 PDA는, Personal Digital Assistant의 약어이다.
도 28에 도시한 바와 같이, 이 하드웨어는, 주로 CPU(902)와, ROM(904)과, RAM(906)과, 호스트 버스(908)와, 브리지(910)를 갖는다. 또한, 이 하드웨어는, 외부 버스(912)와, 인터페이스(914)와, 입력부(916)와, 출력부(918)와, 기억부(920)와, 드라이브(922)와, 접속 포트(924)와, 통신부(926)를 갖는다. 단, 상기한 CPU는, Central Processing Unit의 약어이다. 또한, 상기한 ROM은, Read Only Memory의 약어이다. 그리고, 상기한 RAM은, Random Access Memory의 약어이다.
CPU(902)는, 예를 들어 연산 처리 장치 또는 제어 장치로서 기능하고, ROM(904), RAM(906), 기억부(920), 또는 리무버블 기록 매체(928)에 기록된 각종 프로그램에 기초하여 각 구성 요소의 동작 전반 또는 그 일부를 제어한다. ROM(904)는, CPU(902)에 읽어 들여지는 프로그램이나 연산에 이용하는 데이터 등을 저장하는 수단이다. RAM(906)에는, 예를 들어 CPU(902)에 읽어 들여지는 프로그램이나, 그 프로그램을 실행할 때 적절히 변화하는 각종 파라미터 등이 일시적 또는 영속적으로 저장된다.
이들 구성 요소는, 예를 들어 고속의 데이터 전송이 가능한 호스트 버스(908)를 통해 서로 접속된다. 한편, 호스트 버스(908)는, 예를 들어 브리지(910)를 통해 비교적 데이터 전송 속도가 저속한 외부 버스(912)에 접속된다. 또한, 입력부(916)로서는, 예를 들어 마우스, 키보드, 터치 패널, 버튼, 스위치 및 레버 등이 이용된다. 또한, 입력부(916)로서는, 적외선이나 그 밖의 전파를 이용하여 제어 신호를 송신하는 것이 가능한 리모트 컨트롤러(이하, 리모콘)가 이용되는 경우도 있다.
출력부(918)로서는, 예를 들어 CRT, LCD, PDP, 또는 ELD 등의 디스플레이 장치, 스피커, 헤드폰 등의 오디오 출력 장치, 프린터, 휴대 전화, 또는 팩시밀리 등, 취득한 정보를 이용자에 대하여 시각적 또는 청각적으로 통지하는 것이 가능한 장치이다. 단, 상기한 CRT는, Cathode Ray Tube의 약어이다. 또한, 상기한 LCD는, Liquid Crystal Display의 약어이다. 그리고, 상기한 PDP는, Plasma Display Panel의 약어이다. 또한, 상기한 ELD는, Electro-Luminescence Display의 약어이다.
기억부(920)는, 각종 데이터를 저장하기 위한 장치이다. 기억부(920)로서는, 예를 들어 하드디스크 드라이브(HDD) 등의 자기 기억 디바이스, 반도체 기억 디바이스, 광 기억 디바이스, 또는 광자기 기억 디바이스 등이 이용된다. 단, 상기한 HDD는, Hard Disk Drive의 약어이다.
드라이브(922)는, 예를 들어 자기 디스크, 광 디스크, 광자기 디스크, 또는 반도체 메모리 등의 리무버블 기록 매체(928)에 기록된 정보를 판독하거나, 또는 리무버블 기록 매체(928)에 정보를 기입하는 장치이다. 리무버블 기록 매체(928)는, 예를 들어 DVD 미디어, Blu-ray 미디어, HD DVD 미디어, 각종 반도체 기억 미디어 등이다. 물론, 리무버블 기록 매체(928)는, 예를 들어 비접촉형 IC 칩을 탑재한 IC 카드, 또는 전자 기기 등이어도 된다. 단, 상기한 IC는, Integrated Circuit의 약어이다.
접속 포트(924)는, 예를 들어 USB 포트, IEEE1394 포트, SCSI, RS-232C 포트, 또는 광 오디오 단자 등과 같은 외부 접속 기기(930)를 접속하기 위한 포트이다. 외부 접속 기기(930)는, 예를 들어 프린터, 휴대 음악 플레이어, 디지털 카메라, 디지털 비디오 카메라, 또는 IC 레코더 등이다. 단, 상기한 USB는, Universal Serial Bus의 약어이다. 또한, 상기한 SCSI는, Small Computer System Interface의 약어이다.
통신부(926)는, 네트워크(932)에 접속하기 위한 통신 디바이스이며, 예를 들어 유선 또는 무선 LAN, Bluetooth(등록상표), 또는 WUSB용 통신 카드, 광통신용 라우터, ADSL용 라우터, 또는 접촉 또는 비접촉 통신용 디바이스 등이다. 또한, 통신부(926)에 접속되는 네트워크(932)는, 유선 또는 무선에 의해 접속된 네트워크에 의해 구성되고, 예를 들어 인터넷, 가정 내 LAN, 적외선 통신, 가시광 통신, 방송, 또는 위성 통신 등이다. 단, 상기한 LAN은, Local Area Network의 약어이다. 또한, 상기한 WUSB는, Wireless USB의 약어이다. 그리고, 상기한 ADSL은, Asymmetric Digital Subscriber Line의 약어이다.
<8: 결론>
마지막으로, 본 기술의 실시 형태에 따른 기술 내용에 대하여 간단히 정리한다. 여기에서 설명하는 기술 내용은, 예를 들어 PC, 휴대 전화, 게임기, 정보 단말기, 정보 가전, 카 내비게이션 시스템 등, 다양한 정보 처리 장치에 대하여 적용할 수 있다. 또한, 이하에서 설명하는 정보 처리 장치의 기능은, 1대의 정보 처리 장치를 이용하여 실현하는 것도 가능하고, 복수대의 정보 처리 장치를 이용하여 실현하는 것도 가능하다. 또한, 이하로 설명하는 정보 처리 장치가 처리를 실행할 때 이용하는 데이터 기억 수단 및 연산 처리 수단은, 상기 정보 처리 장치에 설치된 것이어도 되고, 네트워크를 통하여 접속된 기기에 설치된 것이어도 된다.
상기한 정보 처리 장치의 기능 구성은 이하와 같이 표현된다. 예를 들어, 하기 [1]에 기재된 정보 처리 장치는, 다차다변수 연립방정식의 해를 구하는 곤란성에 안전성의 근거를 두는 효율적인 공개 키 인증 방식에 관한 알고리즘을 실행하는 기능을 갖는다.
[1]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성부와,
상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1 (s), …, fm (s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공부와,
상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성부와,
상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공부와,
k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공부
를 구비하고,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln) (l=1, 2)에 대하여 G(x1, x2)=F(x1, x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 장치.
[2]
상기 메시지 생성부는, N회분(N≥2)의 메시지를 생성하고,
상기 메시지 제공부는, N회분의 상기 메시지를 1회의 대화로 상기 검증자에게 제공하고,
상기 중간 정보 생성부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 N회분의 상기 제3 정보를 생성하고,
상기 중간 정보 제공부는, N회분의 상기 제3 정보를 1회의 대화로 검증자에게 제공하고,
상기 회답 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 검증 패턴에 대응하는 N회분의 상기 회답 정보를 1회의 대화로 상기 검증자에게 제공하는, 상기 [1]에 기재된 정보 처리 장치.
[3]
상기 메시지 생성부는, N회분(N≥2)의 메시지를 생성함과 함께, N회분의 상기 메시지로부터 1개의 해시값을 생성하고,
상기 메시지 제공부는, 상기 해시값을 상기 검증자에게 제공하고,
상기 중간 정보 생성부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 N회분의 상기 제3 정보를 생성하고,
상기 중간 정보 제공부는, N회분의 상기 제3 정보를 1회의 대화로 검증자에게 제공하고,
상기 회답 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 검증 패턴에 대응하는 N회분의 상기 회답 정보 및 상기 공개 키 및 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행하여도 얻어지지 않는 일부 메시지를 1회의 대화로 상기 검증자에게 제공하는, 상기 [2]에 기재된 정보 처리 장치.
[4]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지부와,
상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득부와,
상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공부와,
상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득부와,
k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공부와,
상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증부
를 구비하고,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln) (l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 장치.
[5]
상기 메시지 취득부는, N회분(N≥2)의 상기 메시지를 1회의 대화로 취득하고,
상기 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 제1 정보를 랜덤하게 선택하고, 선택한 N회분의 상기 제1 정보를 1회의 대화로 상기 증명자에게 제공하고,
상기 중간 정보 취득부는, N회분의 상기 제1 정보 및 N회분의 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 상기 증명자가 생성한 N회분의 상기 제3 정보를 취득하고,
상기 패턴 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 검증 패턴을 선택하고, 선택한 N회분의 검증 패턴의 정보를 1회의 대화로 상기 증명자에게 제공하고,
상기 회답 취득부는, 상기 선택한 N회분의 검증 패턴에 대응하는 N회분의 상기 회답 정보를 1회의 대화로 상기 증명자로부터 취득하고,
상기 검증부는, N회분의 상기 메시지 모두에 대하여 검증이 성공한 경우에, 상기 증명자가 상기 벡터 s를 유지하고 있다고 판정하는, 상기 [4]에 기재된 정보 처리 장치.
[6]
상기 메시지 취득부는, N회분(N≥2)의 상기 메시지로부터 생성된 1개의 해시값을 취득하고,
상기 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 제1 정보를 랜덤하게 선택하고, 선택한 N회분의 상기 제1 정보를 1회의 대화로 상기 증명자에게 제공하고,
상기 중간 정보 취득부는, N회분의 상기 제1 정보 및 N회분의 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 상기 증명자가 생성한 N회분의 상기 제3 정보를 취득하고,
상기 패턴 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 검증 패턴을 선택하고, 선택한 N회분의 검증 패턴의 정보를 1회의 대화로 상기 증명자에게 제공하고,
상기 회답 취득부는, 상기 선택한 검증 패턴에 대응하는 회답 정보 및 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행하여도 얻어지지 않는 일부 메시지를 상기 증명자로부터 취득하고,
상기 검증부는, 상기 해시값, 상기 일부 메시지, 상기 공개 키 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하고, N회분의 상기 메시지 모두에 대하여 검증이 성공한 경우에, 상기 증명자가 상기 벡터 s를 유지하고 있다고 판정하는, 상기 [5]에 기재된 정보 처리 장치.
[7]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 것과,
상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 것과,
상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 것과,
상기 검증자에게 상기 제3 정보를 제공하는 것과,
k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 것
을 포함하고,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 방법.
[8]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 처리 장치가,
상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 것과,
상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 것과,
상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 것과,
k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 것과,
상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 것과,
상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 것
을 포함하고,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 방법.
[9]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과,
상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과,
상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과,
상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과,
k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능
을 컴퓨터에 실현시키기 위한 프로그램으로서,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 프로그램.
[10]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과,
상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과,
상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과,
상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과,
k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과,
상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능
을 컴퓨터에 실현시키기 위한 프로그램으로서,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 프로그램.
[11]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과,
상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과,
상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과,
상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과,
k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능
을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체로서,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 기록 매체.
[12]
다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과,
상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과,
상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과,
상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과,
k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과,
상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능
을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체로서,
상기 벡터 s는 비밀 키이며,
상기 다차다변수 다항식의 조 F 및 상기 벡터 y는 공개 키이며,
상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 기록 매체.
[13]
상기 m 및 n은, m<n의 관계를 갖는, 상기 [1] 내지 [6] 중 어느 하나에 기재된 장치.
[14]
상기 m 및 n은, 2m-n≪1의 관계를 갖는, 상기 [13]에 기재된 장치.
(비고)
상기한 증명자 알고리즘 P는, 메시지 생성부, 메시지 제공부, 회답 제공부, 중간 정보 생성부, 중간 정보 제공부의 일례이다. 또한, 상기한 검증자 알고리즘 V는, 정보 유지부, 메시지 취득부, 패턴 정보 제공부, 회답 취득부, 검증부, 중간 정보 취득부의 일례이다.
이상, 첨부 도면을 참조하면서 본 기술의 바람직한 실시 형태에 대하여 설명하였지만, 본 기술은 이러한 예에 한정되지 않는 것은 물론이다. 당업자라면 특허청구범위에 기재된 범주 내에서, 각종 변경예 또는 수정예에 상도할 수 있는 것은 명백하며, 그들에 대해서도 당연히 본 기술의 기술적 범위에 속하는 것이라고 이해된다.
Gen: 키 생성 알고리즘
P: 증명자 알고리즘
V: 검증자 알고리즘
Sig: 서명 생성 알고리즘
Ver: 서명 검증 알고리즘

Claims (12)

  1. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성부와,
    상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공부와,
    상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성부와,
    상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공부와,
    k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공부
    를 구비하고,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 메시지 생성부는, N회분(N≥2)의 메시지를 생성하고,
    상기 메시지 제공부는, N회분의 상기 메시지를 1회의 대화로 상기 검증자에게 제공하고,
    상기 중간 정보 생성부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 N회분의 상기 제3 정보를 생성하고,
    상기 중간 정보 제공부는, N회분의 상기 제3 정보를 1회의 대화로 검증자에게 제공하고,
    상기 회답 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 검증 패턴에 대응하는 N회분의 상기 회답 정보를 1회의 대화로 상기 검증자에게 제공하는, 정보 처리 장치.
  3. 제2항에 있어서,
    상기 메시지 생성부는, N회분(N≥2)의 메시지를 생성함과 함께, N회분의 상기 메시지로부터 1개의 해시값을 생성하고,
    상기 메시지 제공부는, 상기 해시값을 상기 검증자에게 제공하고,
    상기 중간 정보 생성부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 N회분의 상기 제3 정보를 생성하고,
    상기 중간 정보 제공부는, N회분의 상기 제3 정보를 1회의 대화로 검증자에게 제공하고,
    상기 회답 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 검증자가 선택한 검증 패턴에 대응하는 N회분의 상기 회답 정보 및 상기 공개 키 및 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행하여도 얻어지지 않는 일부 메시지를 1회의 대화로 상기 검증자에게 제공하는, 정보 처리 장치.
  4. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지부와,
    상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득부와,
    상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공부와,
    상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득부와,
    k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공부와,
    상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
    상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증부
    를 구비하고,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 장치.
  5. 제4항에 있어서,
    상기 메시지 취득부는, N회분(N≥2)의 상기 메시지를 1회의 대화로 취득하고,
    상기 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 제1 정보를 랜덤하게 선택하고, 선택한 N회분의 상기 제1 정보를 1회의 대화로 상기 증명자에게 제공하고,
    상기 중간 정보 취득부는, N회분의 상기 제1 정보 및 N회분의 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 상기 증명자가 생성한 N회분의 상기 제3 정보를 취득하고,
    상기 패턴 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 검증 패턴을 선택하고, 선택한 N회분의 검증 패턴의 정보를 1회의 대화로 상기 증명자에게 제공하고,
    상기 회답 취득부는, 상기 선택한 N회분의 검증 패턴에 대응하는 N회분의 상기 회답 정보를 1회의 대화로 상기 증명자로부터 취득하고,
    상기 검증부는, N회분의 상기 메시지 모두에 대하여 검증이 성공한 경우에, 상기 증명자가 상기 벡터 s를 유지하고 있다고 판정하는, 정보 처리 장치.
  6. 제5항에 있어서,
    상기 메시지 취득부는, N회분(N≥2)의 상기 메시지로부터 생성된 1개의 해시값을 취득하고,
    상기 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 상기 제1 정보를 랜덤하게 선택하고, 선택한 N회분의 상기 제1 정보를 1회의 대화로 상기 증명자에게 제공하고,
    상기 중간 정보 취득부는, N회분의 상기 제1 정보 및 N회분의 상기 메시지를 생성할 때 얻어지는 N회분의 상기 제2 정보를 이용하여 상기 증명자가 생성한 N회분의 상기 제3 정보를 취득하고,
    상기 패턴 정보 제공부는, N회분의 상기 메시지의 각각에 대하여 검증 패턴을 선택하고, 선택한 N회분의 검증 패턴의 정보를 1회의 대화로 상기 증명자에게 제공하고,
    상기 회답 취득부는, 상기 선택한 검증 패턴에 대응하는 회답 정보 및 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행하여도 얻어지지 않는 일부 메시지를 상기 증명자로부터 취득하고,
    상기 검증부는, 상기 해시값, 상기 일부 메시지, 상기 공개 키 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하고, N회분의 상기 메시지 모두에 대하여 검증이 성공한 경우에, 상기 증명자가 상기 벡터 s를 유지하고 있다고 판정하는, 정보 처리 장치.
  7. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 것과,
    상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 것과,
    상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 것과,
    상기 검증자에게 상기 제3 정보를 제공하는 것과,
    k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 것
    을 포함하고,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 방법.
  8. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 처리 장치가,
    상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 것과,
    상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 것과,
    상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 것과,
    k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 것과,
    상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 것과,
    상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 것
    을 포함하고,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1,2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 정보 처리 방법.
  9. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과,
    상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과,
    상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과,
    상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과,
    k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능
    을 컴퓨터에 실현시키기 위한 프로그램으로서,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 프로그램.
  10. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과,
    상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과,
    상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과,
    상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과,
    k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과,
    상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
    상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능
    을 컴퓨터에 실현시키기 위한 프로그램으로서,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 프로그램.
  11. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 s∈Kn에 기초하여 메시지를 생성하는 메시지 생성 기능과,
    상기 다차다변수 다항식의 조 F 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 검증자에게 상기 메시지를 제공하는 메시지 제공 기능과,
    상기 검증자가 랜덤하게 선택한 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 제3 정보를 생성하는 중간 정보 생성 기능과,
    상기 검증자에게 상기 제3 정보를 제공하는 중간 정보 제공 기능과,
    k가지(k≥2)의 검증 패턴 중에서 상기 검증자가 선택한 검증 패턴에 대응하는 회답 정보를 상기 검증자에게 제공하는 회답 제공 기능
    을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체로서,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여, 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 기록 매체.
  12. 다차다변수 다항식의 조 F=(f1, …, fm) 및 벡터 y=(y1, …, ym)=(f1(s), …, fm(s))를 유지하는 정보 유지 기능과,
    상기 다차다변수 다항식의 조 F 및 벡터 s∈Kn에 기초하여 생성된 메시지를 취득하는 메시지 취득 기능과,
    상기 메시지를 제공한 증명자에 대하여 랜덤하게 선택한 제1 정보를 제공하는 정보 제공 기능과,
    상기 제1 정보 및 상기 메시지를 생성할 때 얻어지는 제2 정보를 이용하여 상기 증명자가 생성한 제3 정보를 취득하는 중간 정보 취득 기능과,
    k가지(k≥3)의 검증 패턴 중에서 랜덤하게 선택한 1개의 검증 패턴의 정보를 상기 증명자에게 제공하는 패턴 정보 제공 기능과,
    상기 선택한 검증 패턴에 대응하는 회답 정보를 상기 증명자로부터 취득하는 회답 취득부와,
    상기 메시지, 상기 제1 정보, 상기 제3 정보, 상기 다차다변수 다항식의 조 F 및 상기 회답 정보에 기초하여 상기 증명자가 상기 벡터 s를 유지하고 있는지 여부를 검증하는 검증 기능
    을 컴퓨터에 실현시키기 위한 프로그램이 기록된, 컴퓨터에 의해 판독 가능한 기록 매체로서,
    상기 벡터 s는 비밀 키이며,
    상기 다차다변수 다항식의 조 F는 공개 키 또는 시스템 파라미터이며, 상기 벡터 y는 공개 키이며,
    상기 메시지는, 상기 공개 키, 상기 제1 정보, 상기 제3 정보, 상기 회답 정보를 이용하여 상기 회답 정보에 대응하는 검증 패턴용으로 미리 준비된 연산을 실행함으로써 얻어지는 정보이며,
    상기 다차다변수 다항식의 조 F는, 표수 q 및 위수 qk의 환 R로 정의되는 다항식 f1, …, fm으로 구성되고, 벡터 xl=(xl1, …, xln)(l=1, 2)에 대하여 G(x1, x2)=F(x1+x2)-F(x1)-F(x2)로 정의되는 다항식 G(x1, x2)가 (x1i)q(z)(단, 1≤i≤n, q(z)=qz, 1≤z≤k)에 비례하는 항으로 구성되도록 설정되어 있는, 기록 매체.
KR1020147002640A 2011-08-12 2012-06-25 정보 처리 장치, 정보 처리 방법, 및 기록 매체 KR101986392B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011177071A JP5790287B2 (ja) 2011-08-12 2011-08-12 情報処理装置、情報処理方法、プログラム、及び記録媒体
JPJP-P-2011-177071 2011-08-12
PCT/JP2012/066125 WO2013024629A1 (ja) 2011-08-12 2012-06-25 情報処理装置、情報処理方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
KR20140046455A true KR20140046455A (ko) 2014-04-18
KR101986392B1 KR101986392B1 (ko) 2019-06-05

Family

ID=47714958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002640A KR101986392B1 (ko) 2011-08-12 2012-06-25 정보 처리 장치, 정보 처리 방법, 및 기록 매체

Country Status (12)

Country Link
US (1) US9178700B2 (ko)
EP (1) EP2744146A4 (ko)
JP (1) JP5790287B2 (ko)
KR (1) KR101986392B1 (ko)
CN (1) CN103718502B (ko)
AU (1) AU2012296044B2 (ko)
BR (1) BR112014002854A2 (ko)
CA (1) CA2839690A1 (ko)
MX (1) MX338025B (ko)
RU (1) RU2603551C2 (ko)
TW (1) TWI511517B (ko)
WO (1) WO2013024629A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014090372A (ja) * 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
US10484186B2 (en) * 2016-09-30 2019-11-19 Intel Corporation Cascading multivariate quadratic identification schemes for chain of trust
CN110995438B (zh) * 2019-10-24 2022-07-12 南京可信区块链与算法经济研究院有限公司 一种非交互零知识证明方法、系统及存储介质
CN111090842B (zh) * 2019-12-23 2022-04-26 上海源庐加佳信息科技有限公司 一种基于零知识证明的供应链金融客户贷款信息保护方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005253107A (ja) * 1999-04-29 2005-09-15 Bull Cp 8 Sa 公開鍵を署名する方法とシステム
JP2008048451A (ja) * 1999-10-01 2008-02-28 Fr Telecom エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
KR20080020448A (ko) * 2006-08-30 2008-03-05 삼성전자주식회사 다항식환을 이용한 키 합의 방법 및 이를 위한 장치
JP2011254155A (ja) * 2010-05-31 2011-12-15 Sony Corp 認証装置、認証方法、プログラム、及び署名生成装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19513898B4 (de) * 1995-04-12 2006-11-30 Deutsche Telekom Ag Public-Key-Verfahren zur Verschlüsselung von Daten
AU716797B2 (en) * 1996-08-19 2000-03-09 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US9059838B2 (en) * 2007-03-30 2015-06-16 Verizon Patent And Licensing Inc. Encryption algorithm with randomized buffer
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和系统
US8019079B2 (en) * 2007-07-08 2011-09-13 Georgia Tech Research Corporation Asymmetric cryptosystem employing paraunitary matrices
JP4612027B2 (ja) * 2007-09-03 2011-01-12 村田機械株式会社 署名システム
WO2009128010A1 (en) * 2008-04-14 2009-10-22 Philips Intellectual Property & Standards Gmbh A method for distributing encryption means
JP5594034B2 (ja) * 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
US8903083B2 (en) * 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005253107A (ja) * 1999-04-29 2005-09-15 Bull Cp 8 Sa 公開鍵を署名する方法とシステム
JP2008048451A (ja) * 1999-10-01 2008-02-28 Fr Telecom エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
KR20080020448A (ko) * 2006-08-30 2008-03-05 삼성전자주식회사 다항식환을 이용한 키 합의 방법 및 이를 위한 장치
JP2011254155A (ja) * 2010-05-31 2011-12-15 Sony Corp 認証装置、認証方法、プログラム、及び署名生成装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jacques Patarin Asymmetric Cryptography with a Hidden Monomial. CRYPTO 1996, pp. 45-60.
Patarin, J., Courtois, N., and Goubin, L. QUARTZ, 128-Bit Long Digital Signatures. In Naccache, D., Ed. Topics in Cryptology-CT-RSA 2001(San Francisco, CA, USA, April 2001), vol. 2020 of Lecture Notes in Computer Science, Springer-Verlag., pp. 282-297.

Also Published As

Publication number Publication date
RU2603551C2 (ru) 2016-11-27
MX2014001451A (es) 2014-02-27
KR101986392B1 (ko) 2019-06-05
EP2744146A4 (en) 2015-06-17
AU2012296044B2 (en) 2016-02-25
CN103718502A (zh) 2014-04-09
TWI511517B (zh) 2015-12-01
TW201308969A (zh) 2013-02-16
CA2839690A1 (en) 2013-02-21
RU2014104084A (ru) 2015-08-10
EP2744146A1 (en) 2014-06-18
JP2013042295A (ja) 2013-02-28
US9178700B2 (en) 2015-11-03
US20140153717A1 (en) 2014-06-05
AU2012296044A1 (en) 2014-01-30
MX338025B (es) 2016-03-31
BR112014002854A2 (pt) 2017-03-01
CN103718502B (zh) 2017-02-22
WO2013024629A1 (ja) 2013-02-21
JP5790287B2 (ja) 2015-10-07

Similar Documents

Publication Publication Date Title
JP5736816B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP2013042315A (ja) 情報処理装置、及び情報処理方法
WO2013031555A1 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
KR101986392B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
US10122531B2 (en) Information processing apparatus, information processing method, and recording medium
KR20130100959A (ko) 인증 장치, 인증 방법 및 프로그램
JP5790291B2 (ja) 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体
EP2822217A1 (en) Information processing device, information processing method, and program
JP5790286B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
US9184914B2 (en) Information processing apparatus and information processing method
EP2752836A1 (en) Information processing device, signature generation device, signature verification device, information processing method, signature generation method, and signature verification method
US9490978B2 (en) Information processing apparatus and information processing method
WO2013024628A1 (ja) 情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant