KR102070061B1 - 묶음 검증 방법 및 장치 - Google Patents
묶음 검증 방법 및 장치 Download PDFInfo
- Publication number
- KR102070061B1 KR102070061B1 KR1020140036212A KR20140036212A KR102070061B1 KR 102070061 B1 KR102070061 B1 KR 102070061B1 KR 1020140036212 A KR1020140036212 A KR 1020140036212A KR 20140036212 A KR20140036212 A KR 20140036212A KR 102070061 B1 KR102070061 B1 KR 102070061B1
- Authority
- KR
- South Korea
- Prior art keywords
- verification
- bundle
- equation
- indices
- instance
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
Abstract
본 발명의 실시 예들은, 다수의 인증 데이터 또는 전자 서명 값들의 검증을 위한 묶음 검증 방법 및 장치에 관한 것으로, 본 발명의 일 실시 예에 따른 묶음 검증 방법은, 묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 재배열하는 단계; 묶음 검증에 이용되는 검증 지수 집합 E로부터 N-1개의 검증 지수를 선택하는 단계; 및 상기 선택된 검증 지수를 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하는 단계를 포함한다. 본 발명의 실시 예들은, 전자서명 기법과 암호학적 증명 방법에 적용될 수 있다. 본 발명의 실시 예들에 따르면, 다수의 인증 데이터 또는 전자 서명 값들의 검증 계산량이 현저히 감소될 수 있다.
Description
본 발명의 실시 예들은, 다수의 인증 데이터 또는 전자 서명 값들의 검증을 위한 묶음 검증 방법 및 장치에 관한 것이다.
정보 통신 기술의 진보와 더불어 컴퓨터 환경은 지능화되고 있으며, 넓은 영역에서 대량의 다양한 정보들이 분배, 수집 및 처리되고 있다. 또한, 최근 서로 다른 필드 간의 융합 현상은, 디바이스와 환경들 사이에 상호 메시지 교환을 빈번히 요구하고 있다. 일반적으로 메시지는, 공개된 네트워크상에서 전송되고 있다. 공격자가 네트워크를 능동적으로 제어할 수 있으므로, 메시지는 유효한 정보로 신속히 사용되기 위하여 올바르고 적절하게 인증되어야 한다.
인증(authentication) 특성은, 수학적인 관계식(mathematical relation)에 의하여 정의된다. 암호학적 프로토콜이나 암호 기법이 인증 특성을 제공함을 보이기 위해서, 검증(verification) 프로세스는 생성된 파라미터 값들이 미리 정해진 검증 관계식들을 충족하는지를 확인한다.
예를 들어, 비밀 서명키와 이에 대응하는 공개 검증키를 이용하는 전자 서명(digital signature) 기법을 고려하자. 서명은 공개키와 잘 정의된 대수적 관계(algebraic relation)를 갖는 비밀키를 이용하여 생성된다. 검증자는 서명의 유효성을 메시지, 서명 및 공개키 사이의 정의된 관계식을 검토함으로써 확인할 수 있다. 이렇듯 검증 과정은, 검증 관계식들로부터 기인하는 계산적인 작업을 수반한다.
본 발명의 실시 예들은, 인증 데이터 또는 전자 서명 값들의 검증을 신속하게 수행할 수 있도록 하는 방안을 제공한다.
본 발명의 일 실시 예에 따른 묶음 검증 방법은, 묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 재배열하는 단계; 묶음 검증에 이용되는 검증 지수 집합 E로부터 N-1개의 검증 지수를 선택하는 단계; 및 상기 선택된 검증 지수를 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하는 단계를 포함한다.
한편, 본 발명의 일 실시 예에 따른 프로세서 및 메모리를 포함하는 묶음 검증 장치는, 상기 메모리에 묶음 검증에 이용되는 검증 지수 집합 E 및 묶음 검증을 수행하기 위한 명령어들이 저장되며, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 재배열하고, 상기 검증 지수 집합 E로부터 N-1개의 검증 지수를 선택하며, 상기 선택된 검증 지수를 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하도록 하는 명령어들을 포함한다.
본 발명의 실시 예들은, 전자서명 기법과 암호학적 증명 방법에 적용될 수 있다. 본 발명의 실시 예들에 따르면, 다수의 인증 데이터 또는 전자 서명 값들의 검증 계산량이 현저히 감소될 수 있다. 본 발명의 실시 예들에 따르면, 계산량의 감소를 통해 인증 또는 검증에 수반되는 불필요한 계산 비용을 줄일 수 있으며 미래의 IT(Information Technology) 환경에서 에너지 절약에도 상당히 기여할 수 있다. 본 발명의 실시 예들에 따르면, 신속한 인증 과정을 통해서 다양한 정보들이 유효한 정보로 신속히 사용될 수 있어 빅데이터(big data)/클라우드 컴퓨팅(cloud computing) 등 차세대 ICT(Information & Communications Technology) 환경의 효율성을 크게 증진시킬 수 있다.
도 1은 본 발명의 실시 예들에 따른 묶음 검증 방법의 개념을 설명하기 위한 흐름도,
도 2는 본 발명의 실시 예들이 적용되는 묶음 검증 장치를 설명하기 위한 블록도.
도 2는 본 발명의 실시 예들이 적용되는 묶음 검증 장치를 설명하기 위한 블록도.
이하에서, 본 발명의 실시 예들을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
최근의 고도화된 정보 통신 환경에서, 대규모의 메시지들은 신속히 인증되고 처리되어야 할 필요가 있다. 이를 위해서 대응하는 검증 과정이 계산적인 관점에서 압축된 방식으로 처리된다면 많은 장점을 가질 것이다. 이러한 문제를 해결하기 위해서 묶음 검증(batch verification) 방법이 연구되고 있다. 실제로 묶음 검증 방법은 인증서 체인, 인증 데이터베이스, 옥션/입찰의 데이터 검증, 전자 화폐, 전자 코인 및 전자 투표의 검증, 교통망 메시지 인증 및 다자간 인증된 키 동의 프로토콜 등 다양한 응용 분야에 적용 가능하다.
전술한 바와 같이, 검증 방법은 수학적인 관계식(mathematical relation)상에서 정의되므로 모듈라 지수승(modular exponentiation)과 같은 기본 연산을 수행하게 된다. 예를 들어, 소수 위수 p를 갖는 곱셈군(multiplicative group) G와, G의 임의의 생성원(generator) g가 주어졌다고 가정하자. 그리고, x를 0에서 p-1사이의 양의 정수, y를 군 G의 원소라고 가정하자. 이러한 경우, 만일 등식 g x = y이 성립한다면 주어진 인스턴스(x, y)는 유효하다고 하기로 하자. 여기서, 인스턴스 (x, y)의 유효성 검증은, 등식 g x = y이 만족하는지 검증하는 것이다.
학계에서는 모듈라 지수승(modular exponentiation)을 위한 묶음 검증(batch verification)의 기초 알고리즘으로 소위 작은 지수 테스트(Small Exponent Test, SET) 방법이 널리 알려져 있다. SET 방법은 다음과 같이 수행될 수 있다.
예를 들어, 소수 위수 p를 갖는 곱셈군 G와 G의 임의의 생성원 g를 가정하자(군 G가 덧셈군(additive group)이라 하더라도 동일한 절차가 수행될 수 있다). 또한 묶음 검증 인스턴스가 {(x 1, y 1), (x 2, y 2), ... ,(x n , y n )}와 같이 주어졌다고 가정하자. 여기서, 각 x i 는 0에서 p-1 사이의 정수이고, 각 y i 는 군 G의 원소라 가정하자. SET 방법의 목적은, 각 i에 대해 등식 g x i = y i 이 만족되는지 검증하는 것이고, 이를 위해서 다음과 같은 연산이 수행된다. 미리 정해진 작은 크기의 검증 지수들의 집합 E로부터 n개의 검증 지수들(e 1, e 2, ... , e n )이 선택되고 다음 등식이 성립하는지 검증된다.
n개의 인스턴스에 대해 등식 g x i = y i 을 만족하는지 개별적으로 검증하는 것에 비하여, SET 방법을 이용하면 전체 계산량은 적어지게 된다. 이유는 검증식의 좌변에서는 압축된 단일 지수 x = x 1 e 1 + x 2 e 2 + ... + x n e n 에 대한 단일 지수승을 계산하고, 우변에서는 을 계산하기 위해서 동시 다중 지수승(simultaneous multi-exponentiation)을 이용할 수 있기 때문이다. 여기서, 단일 지수 x의 계산에는, 상대적으로 무시할만한 계산량이 필요하다.
현재까지 알려진 다양한 묶음 검증 방법은, 모두 SET에 기반하여 제안되고 있다. 즉, n개의 인스턴스를 검증하기 위해서 부가적으로 n개의 작은 지수들을 임의 선택하고 묶음 검증에서 이용하는 것이다.
만일 다음의 관점들에서 SET 방법의 계산량을 추가적으로 줄일 수 있는 보다 효율적인 방법이 고안된다면 매우 유용할 것이다.
첫째, DSA(Digital Signature Algorithm), ECDSA(Elliptic Curve Digital Signature Algorithm) 및 KCDSA(Korea Certification-based Digital Signature Algorithm) 와 같은 표준 서명 기법은 물론, ID기반 서명 기법, 그룹 서명 및 링 서명과 같은 프라이버시 보호형 서명 기법 등 다양한 전자 서명 기법들에는 SET에 기반한 묶음 검증이 적용될 수 있다. 따라서 계산량이 적은 보다 단순화된 SET 방법이 개발된다면 전술한 다양한 서명 기법들 모두에 효율적으로 묶음 검증 방법이 적용될 수 있다.
또한 최근에는 특히 SET 방법에 기반한 자동화된 묶음 검증 방법을 생성하는 알고리즘이 알려져 있다. 이 알고리즘은 전자 서명 기법이 입력되면 효율적인 성능을 제공하는 묶음 검증 방법을 생성해서 출력한다. 따라서, 계산량이 적은 단순화된 SET을, SET과 유사하게, 모듈식으로 자동화된 묶음 검증 방법 생성 알고리즘에 적용하면 성능 개선을 쉽게 얻을 수 있을 것이다.
마지막으로, SET 방법은 묶음 검증 인스턴스의 크기가 작을 경우 개별적인 검증을 여러 번 수행하는 것보다 성능 효율성이 좋지 않다. 예를 들어, 단일 인스턴스로 구성된 묶음 검증의 경우 SET 방법은 등식 g x 1 e 1=y 1 e 1을 확인하지만 본래의 검증은 등식 g x 1=y 1을 확인하므로 SET 방법을 이용하는 대신 단순히 개별적인 검증을 한 번 수행하는 것이 계산량이 더 적게 된다. 유사하게 2개로 구성된 인스턴스의 경우에도 비슷한 문제가 발생한다. 이 경우 SET은 등식 g x 1 e 1 + x 2 e 2 = y 1 e 1 y 2 e 2을 확인하지만 개별 검증을 두 번 적용하는 경우는 등식 g x 1=y 1과 g x 2=y 2을 확인한다. 만일 약간의 메모리를 이용할 수 있고 사전 계산이 허용되는 경우라면, 지수승을 위해 기존에 알려진 fixed-base comb 방법 등을 쓰면 개별 검증을 두 번 하는 것이, 즉 등식 g x 1=y 1과 g x 2=y 2을 확인하는 것이 계산량 측면에서 더 저렴하다.
본 발명의 실시 예들은, 다수의 인증 데이터 또는 전자 서명 값 검증 시에, 기존의 SET 방법보다 묶음 검증을 신속히 수행할 수 있도록 하는 단순화된 지수 테스트 방법(Simplified SET, SSET)을 제공한다.
본 발명의 실시 예들은, 모듈라 지수승에 대해, 주어진 n개의 인스턴스를 묶음 검증하기 위해서 사전에 정의된 집합 E로부터 n개의 임의의 지수들을 이용하는 기존의 SET 방법과는 다르게, 단지 n-1개의 지수들만을 이용하는 단순화된 지수 테스트 방법을 제공한다.
본 발명의 실시 예들에서, 작은 지수들의 집합(검증 지수 집합) E는 사전에 정의될 수 있다. 집합 E는, 계산 효율성 증진을 위해서 특정한 형태를 가질 수 있다. 예를 들어, 집합 E는, 단순히 크기가 작은 값들로 이루어지거나, 또는 해밍 웨이트(Hamming weight) 또는 해밍 거리(Hamming distance)가 작은 값들로 이루어질 수 있다.
본 발명의 실시 예들은, 특정한 대수적 구조에 의존하지 않으며 일반적으로 적용 가능하다. 즉, 주어진 군(mathematical group)의 연산 표현에 의존하지 않으며 군의 연산이 곱셈이나 덧셈으로 정의되어도 표현만 다르게 나타날 뿐 동일하게 적용될 수 있다. 예를 들어, 유한체 곱셈군, 연산이 덧셈으로 표현되는 타원곡선군, 정수군 및 Z n ={0, 1, 2, ... , n-1} 등 모든 군에 적용 가능하다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 설명한다.
도 1은 본 발명의 실시 예들에 따른 묶음 검증 방법의 개념을 설명하기 위한 흐름도이다.
단계(101)에서, 묶음 검증 인스턴스가 입력된다. 상기 묶음 검증 인스턴스는, 검증 대상이 되는 다수의 인증 데이터 또는 전자 서명 값일 수 있다.
단계(103)에서, 묶음 검증 인스턴스의 구성 원소들, 즉 개별 인스턴스들이 설정된 방식에 따라 재배열된다. 예를 들어, 각 개별 인스턴스들이 임의의(random) 위치를 갖도록 고르게(uniformly) 섞일 수 있다. 다시 말해, 묶음 검증 인스턴스가 일반성을 잃지 않도록 각 개별 인스턴스들의 위치가 섞일 수 있다.
단계(105)에서, 검증 지수 집합 E로부터 N-1개의 검증 지수(e 1, ... ,e n -1)가 선택된다.
검증 지수 집합 E는 사전에 미리 정의될 수 있다. 검증 지수 집합 E는, 안전성을 고려하여, 예를 들어, 현실적인 공격에 안전하도록, 일정한 크기를 가질 수 있다. 예를 들어, 검증 지수 집합 E는, 모든 λ-비트열들의 집합 {0,1} λ 으로 정의될 수 있다. 즉, 검증 지수 집합 E는, 각 비트가 0 또는 1로 표현되며 λ 비트의 길이를 갖는 수들의 집합일 수 있다. 검증 지수 집합 E의 원소들(e i )은, 특정한 형태를 가질 수 있다. 예를 들어, 검증 지수 집합 E의 원소들은, 해밍 웨이트(Hamming weight)가 설정 값 이하인 비트 표현을 가질 수 있다. 또한, 예를 들어, 검증 지수 집합 E의 원소들은, 해밍 거리(Hamming distance)가 설정 값 이하인 원소들로 이루어질 수 있다.
단계(107)에서, 지수 테스트 방법을 이용한 묶음 검증이 수행된다.
단계(109)에서, 검증 결과가 출력된다. 검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
-일 실시 예 - 고정된 밑(base)을 이용하는 경우
소수 위수(prime order) p와 임의의 생성원(generator) g를 갖는 곱셈군 G를 가정한다. 전술한 바와 같이, 본 발명의 실시 예들은, 주어진 군의 연산 표현에 의존하지 않으며, 군의 연산이 곱셈이나 덧셈으로 정의되어도 표현만 다르게 나타날 뿐, 동일하게 적용될 수 있으며, 곱셈군에 한정되지 않는다.
묶음 검증 인스턴스(D)가 <수학식 1>과 같이 주어진다고 가정하자.
<수학식 1>에서, x i 는 0에서 p-1 사이의 정수, y i 는 군 G의 원소를 나타낸다. 임의의 두 x i , x j 들은 서로 다르다고 가정하자. 즉 x i ≠ x j 을 만족한다. 묶음 검증의 목적은, 각 i에 대해 <수학식 2>가 만족하는지 검증하는 것이다.
묶음 검증 인스턴스의 구성 원소들, 즉 개별 인스턴스(x i , y i )들을 설정된 방식에 따라 재배열된다. 예를 들어, 각 개별 인스턴스(x i , y i )들이 임의의(random) 위치를 갖도록 고르게(uniformly) 섞일 수 있다. 다시 말해, 묶음 검증 인스턴스가 일반성을 잃지 않도록 각 개별 인스턴스들의 위치가 섞일 수 있다.
일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)는 <수학식 3>과 같이 표현될 수 있다.
검증 지수 집합 E로부터 N-1개의 검증 지수(e 1, ..., e n -1)가 선택된다.
그리고, 선택된 검증 지수를 이용한 지수 테스트 방법에 따라 묶음 검증이 이루어진다. 지수 테스트 방법에 따른 묶음 검증은, 예를 들어, <수학식 4>의 등식이 만족되는지 여부를 판단함으로써 이루어진다.
여기서, 좌변에 대한 단일 지수(single exponent)(x)는 <수학식 5>와 같이 계산될 수 있다.
그리고, 검증 결과가 출력된다.
검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
등식이 성립한다는 것은, 각 i에 대해 등식 g x i = y i 이 만족됨을 의미한다. 등식이 성립하는 경우, 예를 들어, '1'이 출력될 수 있다.
등식이 성립하지 않는다는 것은, 어떤 i에 대해 등식 g x i = y i 이 만족되지 않음을 의미한다. 다시 말해, g x i = y i 가 성립하지 않은 i가 존재함을 의미한다. 등식이 성립하지 않는 경우, 예를 들어 '0'이 출력될 수 있다.
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 4> 대신 <수학식 6>을 이용한 묶음 검증이 수행될 수 있다.
본 발명의 실시 예들에서, 검증을 위해 선택된 n-1개의 검증 지수들(e 1, ..., e n -1)은 특정한 위치에서 이용되는 대신 임의의 위치에서 이용될 수 있다. 예를 들어, <수학식 7>과 같이, 첫 번째 위치에서 검증 지수가 이용되지 않을 수도 있고,
<수학식 8>과 같이, 두 번째 위치에서 검증 지수가 이용되지 않을 수 있다.
이는 다른 실시 예들에서도 마찬가지이다.
일 실시 예 - 가변적인 밑을 이용하는 경우
앞선 실시 예와 달리, 개별 인스턴스의 유효성 검증 등식에서 밑(base) g가 고정되지 않은 경우를 다룬다. 즉, 개별 인스턴스(x i , g i , y i )에 대해서 <수학식 9>가 만족하는지 검증하는 것이다. <수학식 9>에서, x i 는 0에서 p-1 사이의 정수이고, g i 및 y i 는 군 G의 원소를 나타낸다.
묶음 검증 인스턴스(D)가 <수학식 10>과 같이 주어졌다고 가정하자. 그리고, 임의의 두 x i , x j 들은 서로 다르다고 가정하자.
입력으로 주어진 묶음 검증 인스턴스(D)의 구성 원소들, 즉 개별 인스턴스(x i , g i , y i )들이 설정된 방식에 따라 재배열된다. 예를 들어, 앞선 실시 예와 마찬가지로, 유니폼(uniform) 분포에 따라서 위치를 섞을 수 있다. 일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)가 <수학식 11>과 같이 표현될 수 있다.
검증 지수 집합 E로부터 n-1개의 검증 지수값들(e 1, ..., e n -1)이 선택된다. 그리고, 선택된 검증 지수를 이용한 지수 테스트 방법에 따라 묶음 검증이 이루어진다. 지수 테스트 방법에 따른 묶음 검증은, 예를 들어, <수학식 12>의 등식이 만족되는지 여부를 판단함으로써 이루어진다.
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 12> 대신 <수학식 13>을 이용하여 묶음 검증이 수행될 수 있다.
그리고, 검증 결과가 출력된다.
검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
등식이 성립한다는 것은, 각 i에 대해 등식 g i x i = y i 이 만족됨을 의미한다. 등식이 성립하는 경우, 예를 들어, '1'이 출력될 수 있다.
등식이 성립하지 않는다는 것은, 어떤 i에 대해 등식 g i x i = y i 이 만족되지 않음을 의미한다. 다시 말해, g i x i = y i 가 성립하지 않은 i가 존재함을 의미한다. 등식이 성립하지 않는 경우, 예를 들어 '0'이 출력될 수 있다.
앞선 실시 예와 마찬가지로, 검증을 위해 선택된 n-1개의 검증 지수들(e 1, ..., e n -1)은 특정한 위치에서 이용되는 대신 임의의 위치에서 이용될 수 있다.
- 일 실시 예 - DSA에 적용되는 경우
보다 일반적인 인증 데이터 또는 전자 서명 값들의 유효성 검증 등식을 위한 단순화된 지수 테스트(Simplified SET, SSET) 방법의 적용 방식을 제시한다.
일반적인 인증 데이터 또는 전자 서명 값들의 유효성 검증 등식은 상대적으로 더 복잡하다. 다시 말해서, 복잡한 대수적 관계식을 이용하거나, 밑(base)이 고정되어지지 않고 가변적인 경우도 많이 있다. 이러한 경우에도 본 발명의 실시 예들은 자연스럽고 쉽게 확장되어 적용된다. 이를 위한 예로, 미국 표준 전자서명인 DSA를 고려해 보자.
소수 p에 대하여 q가 p-1의 약수라고 가정하자. 아래 설명에서 H는 해쉬 함수를 나타낸다. 서명자의 비밀 서명키는 x, 공개키는 g x (mod p)으로 가정하자. 메시지 m에 대하여 DSA 전자서명 값을 생성하기 위해서 다음과 같이 진행한다.
먼저 임의의 난수 k∈Z q 가 선택되고 서명 인스턴스가 <수학식 14> 및 <수학식 15>와 같이 계산된다. H(m)은 메시지의 해쉬 값을 의미하고, Zq는 {0, 1, 2, ..., q-1}이다.
계산된 값(r, s)이 메시지 m에 대한 DSA 전자서명 값으로 정의된다.
한편, DSA 서명 인스턴스(r, s)에 대한 검증을 위하여, <수학식 16> 내지 <수학식 18>과 같은 연산이 이루어진다.
그리고, 검증식은 <수학식 19>와 같이 정의될 수 있다.
검증을 위하여, 등식 W = r이 성립하는지 확인된다. 만일 등식이 성립하면 서명의 유효함이 출력되고, 등식이 성립하지 않으면 서명이 유효하지 않음이 출력된다.
만일 여러 개의 DSA의 전자 서명 값을 검증하는 경우에는 다음과 같이 단순화된 지수 테스트(Simplified SET, SSET) 방법을 이용하여 묶음 검증을 효율적으로 수행할 수 있다.
DSA 전자 서명 기법에 대해서 묶음 검증 인스턴스(D)가 <수학식 20>과 같이 주어졌다고 가정하자.
여기서는 설명의 명확성을 위해서 각 서명 값은 서로 다른 비밀 서명키 x i 로 생성되었으며, 서로 다른 공개 검증키 y i =g x i 를 이용하여 서명의 유효성이 검증된다고 가정한다.
입력으로 주어진 묶음 검증 인스턴스(D)의 개별 인스턴스들(m i , r i , s i )의 위치가 미리 정해진 방식으로 섞인다. 예를 들어, 전술한 실시 예들과 마찬가지로, 각 인스턴스들이 임의의(random) 위치를 갖도록 고르게(uniformly) 섞일 수 있다. 일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)는 <수학식 21>과 같이 표현될 수 있다.
검증 지수 집합 E로부터 n-1개의 검증 지수들(e 1, ..., e n -1)이 선택된다. 그리고, <수학식 22> 내지 <수학식 24>에 따른 연산이 수행된다.
그리고 <수학식 25>의 등식이 만족되는지 여부를 판단함으로써 묶음 검증이 이루어진다.
그리고, 검증 결과가 출력된다. 검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 26>과 같이 역원을 이용하는 변형된 검증식을 이용할 수 있다.
앞선 실시 예와 마찬가지로, 검증을 위해 선택된 n-1개의 검증 지수들(e 1, ..., e n -1)은 특정한 위치에서 이용되는 대신 임의의 위치에서 이용될 수 있다.
이상에서는, 본 발명의 일 실시 예에 따른 단순화된 지수 테스트(Simplified SET, SSET) 방법을 DSA 서명 기법에 적용하는 예를 설명하였으나, 다양한 DSA 서명의 변형들을 포함하여 Schnorr 전자 서명 기법, 시그마 타입의 전자 서명 기법, 타원 곡선 또는 이선형 함수(bilinear map)에 기반한 서명 및 증명 기법, 그룹 서명, 환 서명, 대리서명, ID기반 서명, Certificateless 서명 등 다양한 암호 기법의 묶음 검증에도 본 발명의 실시 예들에 따른 단순화된 지수 테스트 방법은 쉽게 적용됨을 알 수 있다.
본 발명에 따른 참가 구성요소들은 묶음 검증(batch verification)을 수행하게 해주는 단순화된 지수 테스트 방법을 실행하는 사용자 장치들이다. 사용자 장치들은 서비스 제공자 또는 서비스 소비자들이 될 수 있다. 본 발명의 설명에서 장치는 주어진 입력 값에 대해 특별한 값을 출력하는 알고리즘의 개념으로 사용 가능하다. 다만 참가자들의 구성은 이에 한정되는 것은 아니며 설계되는 방식에 따라 유연하게 참가자의 역할이 새로운 주체의 정의로 분리되거나 또는 통합될 수 있으며, 필요 시 새로운 참가자를 정의할 수 있다.
본 발명의 실시 예들은, 컴퓨터 시스템 내에, 예를 들어, 컴퓨터 판독가능 기록 매체로 구현될 수 있다. 도 2에 도시된 바와 같이, 컴퓨터 시스템(900)은 하나 이상의 프로세서(910), 메모리(920), 저장부(930), 사용자 인터페이스 입력부(940) 및 사용자 인터페이스 출력부(950) 중 적어도 하나 이상의 요소를 포함할 수 있으며, 이들은 버스(960)를 통해 서로 통신할 수 있다. 또한, 컴퓨터 시스템(900)은 네트워크에 접속하기 위한 네트워크 인터페이스(970)를 또한 포함할 수 있다. 프로세서(910)는 메모리(920) 및/또는 저장소(930)에 저장된 처리 명령어를 실행시키는 CPU 또는 반도체 소자일 수 있다. 메모리(920) 및 저장부(930)는 다양한 유형의 휘발성/비휘발성 기억 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(924) 및 RAM(925)을 포함할 수 있다.
이에 따라, 본 발명의 실시 예들은 컴퓨터로 구현되는 방법 또는 컴퓨터 실행 가능 명령어들이 저장된 비휘발성 컴퓨터 기록 매체로 구현될 수 있다. 상기 명령어들은 프로세서에 의해 실행될 때 본 발명의 적어도 일 실시 예에 따른 방법을 수행할 수 있다.
Claims (18)
- 묶음 검증 장치에서 프로세서에 의해 수행되는 묶음 검증 방법으로서,
묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 설정된 방식에 따라 재배열하는 단계;
묶음 검증에 이용되는 검증 지수 집합으로부터 N-1개의 검증 지수를 임의 선택하는 단계; 및
상기 선택된 N-1개의 검증 지수를 포함하는 수학식을 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하는 단계
를 포함하며,
상기 수학식은 소수 위수(prime order)를 가지는 군의 원소 또는 생성원(generator)을 가지는 N개의 요소를 포함하고,
상기 N개의 요소 중 하나는 상기 N-1개의 검증 지수를 이용하지 않는 묶음 검증 방법.
- 제 1 항에 있어서, 상기 검증 지수 집합은,
람다(λ) 비트열들의 집합인
묶음 검증 방법.
- 제 1 항에 있어서, 상기 검증 지수 집합은,
해밍 웨이트(Hamming weight) 또는 해밍 거리(Hamming distance)가 설정된 값 이하인 구성 원소들로 이루어진
묶음 검증 방법.
- 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
상기 묶음 검증 인스턴스가 상기 수학식을 만족하는지 여부를 확인하는 단계를 포함하고,
상기 수학식은 이며,
상기 b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+en -1 H(mn )sn -1 (mod q)이고, 상기 d 1 =r 1 s 1 -1이며, 상기 di=eirisi -1 (mod q) (i=2, 3, ...,n)이고, 상기 h는 해쉬 함수이며, 상기 (mi , ri , si )는 개별 인스턴스 쌍이고, 상기 ei는 검증 지수 집합의 원소이며, 상기 g는 소수 위수 p를 갖는 군 G의 생성원이고, 상기 yi는 G의 원소이며, 상기 q는 p-1의 약수인
묶음 검증 방법.
- 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
상기 묶음 검증 인스턴스가 상기 수학식을 만족하는지 여부를 확인하는 단계를 포함하고,
상기 수학식은 이며,
상기 b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+en -1 H(mn )sn -1 (mod q)이고, 상기 d 1 =r 1 s 1 -1이며, 상기 di=eirisi -1 (mod q) (i=2, 3, ..., n)이고, 상기 h는 해쉬 함수이며, 상기 (mi , ri , si )는 개별 인스턴스 쌍이고, 상기 ei는 검증 지수 집합의 원소이며, 상기 g는 소수 위수 p를 갖는 군 G의 생성원이고, 상기 yi는 G의 원소이며, 상기 q는 p-1의 약수인
묶음 검증 방법.
- 프로세서 및 메모리를 포함하는 묶음 검증 장치로서,
상기 메모리에 묶음 검증에 이용되는 검증 지수 집합 및 묶음 검증을 수행하기 위한 명령어들이 저장되며,
상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 설정된 방식에 따라 재배열하고,
상기 검증 지수 집합으로부터 N-1개의 검증 지수를 임의 선택하며,
상기 선택된 N-1개의 검증 지수를 포함하는 수학식을 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하도록 하는 명령어들을 포함하고,
상기 수학식은 소수 위수(prime order)를 가지는 군의 원소 또는 생성원(generator)을 가지는 N개의 요소를 포함하고,
상기 N개의 요소 중 하나는 상기 N-1개의 검증 지수를 이용하지 않는
묶음 검증 장치.
- 제 10 항에 있어서, 상기 검증 지수 집합은,
람다(λ) 비트열들의 집합인
묶음 검증 장치.
- 제 10 항에 있어서, 상기 검증 지수 집합은,
해밍 웨이트(Hamming weight) 또는 해밍 거리(Hamming distance)가 설정된 값 이하인 구성 원소들로 이루어진
묶음 검증 장치.
- 제 10 항에 있어서, 상기 명령어들은,
상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 상기 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하고,
상기 수학식은 이며,
상기 b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+en -1 H(mn )sn -1 (mod q)이고, 상기 d 1 =r 1 s 1 -1이며, 상기 di=eirisi -1 (mod q) (i=2, 3, ..., n)이고, 상기 h는 해쉬 함수이며, 상기 (mi , ri , si )는 개별 인스턴스 쌍이고, 상기 ei는 검증 지수 집합의 원소이며, 상기 g는 소수 위수 p를 갖는 군 G의 생성원이고, 상기 yi는 G의 원소이며, 상기 q는 p-1의 약수인
묶음 검증 장치.
- 제 10 항에 있어서, 상기 명령어들은,
상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 상기 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하고,
상기 수학식은 이며,
상기 b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+en -1 H(mn )sn -1 (mod q)이고, 상기 d 1 =r 1 s 1 -1이며, 상기 di=eirisi -1 (mod q) (i=2, 3, ..., n)이며, 상기 h는 해쉬 함수이고, 상기 (mi , ri , si )는 개별 인스턴스 쌍이며, 상기 ei는 검증 지수 집합의 원소이고, 상기 g는 소수 위수 p를 갖는 군 G의 생성원이며, 상기 yi는 G의 원소이고, 상기 q는 p-1의 약수인
묶음 검증 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140036212A KR102070061B1 (ko) | 2014-03-27 | 2014-03-27 | 묶음 검증 방법 및 장치 |
US14/668,566 US9577828B2 (en) | 2014-03-27 | 2015-03-25 | Batch verification method and apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140036212A KR102070061B1 (ko) | 2014-03-27 | 2014-03-27 | 묶음 검증 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150112315A KR20150112315A (ko) | 2015-10-07 |
KR102070061B1 true KR102070061B1 (ko) | 2020-01-29 |
Family
ID=54192027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140036212A KR102070061B1 (ko) | 2014-03-27 | 2014-03-27 | 묶음 검증 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9577828B2 (ko) |
KR (1) | KR102070061B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10924287B2 (en) * | 2017-06-23 | 2021-02-16 | Onboard Security, Inc. | Digital signature technique |
CN112636915B (zh) * | 2020-11-27 | 2024-03-22 | 杭州趣链科技有限公司 | 基于国密sm2算法的批量签名验证方法、装置、设备及介质 |
CN112491560A (zh) * | 2020-12-11 | 2021-03-12 | 武汉大学 | 一种支持批验证的sm2数字签名方法及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080320557A1 (en) * | 2007-06-25 | 2008-12-25 | Keisuke Hakuta | Batch verification device, program and batch verification method |
US20090112956A1 (en) | 2005-03-31 | 2009-04-30 | Seoul National University Industry Foundation | Fast Batch Verification Method And Apparatus There-of |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347581A (en) * | 1993-09-15 | 1994-09-13 | Gemplus Developpement | Verification process for a communication system |
US5493614A (en) * | 1994-05-03 | 1996-02-20 | Chaum; David | Private signature and proof systems |
KR101273465B1 (ko) * | 2007-03-16 | 2013-06-14 | 재단법인서울대학교산학협력재단 | 집합 검증 장치 및 그 방법 |
US7890763B1 (en) | 2007-09-14 | 2011-02-15 | The United States Of America As Represented By The Director, National Security Agency | Method of identifying invalid digital signatures involving batch verification |
EP2705629A4 (en) * | 2011-05-06 | 2015-07-29 | Certicom Corp | VALIDATION OF A LOT OF IMPLIED CERTIFICATES |
-
2014
- 2014-03-27 KR KR1020140036212A patent/KR102070061B1/ko active IP Right Grant
-
2015
- 2015-03-25 US US14/668,566 patent/US9577828B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090112956A1 (en) | 2005-03-31 | 2009-04-30 | Seoul National University Industry Foundation | Fast Batch Verification Method And Apparatus There-of |
US20080320557A1 (en) * | 2007-06-25 | 2008-12-25 | Keisuke Hakuta | Batch verification device, program and batch verification method |
Also Published As
Publication number | Publication date |
---|---|
US20150281256A1 (en) | 2015-10-01 |
US9577828B2 (en) | 2017-02-21 |
KR20150112315A (ko) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110637441B (zh) | 应用于数据重复数据删除的加密密钥生成 | |
CA2792267C (en) | Verifying implicit certificates and digital signatures | |
Herranz | Deterministic identity-based signatures for partial aggregation | |
US20130326602A1 (en) | Digital Signatures | |
US8688977B2 (en) | Validating a batch of implicit certificates | |
EP3035587B1 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
WO2019110399A1 (en) | Two-party signature device and method | |
US20160149708A1 (en) | Electronic signature system | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
CN118160275A (zh) | 阈值签名方案 | |
KR102070061B1 (ko) | 묶음 검증 방법 및 장치 | |
Kuang et al. | Benchmark performance of a new quantum-safe multivariate polynomial digital signature algorithm | |
CN115694822A (zh) | 基于零知识证明的验证方法、装置和***、设备及介质 | |
Chande et al. | An improvement of a elliptic curve digital signature algorithm | |
Qin et al. | Certificate-free ad hoc anonymous authentication | |
Dossogne et al. | Secure and practical threshold RSA | |
El Kinani et al. | Proposed Developments of Blind Signature Scheme based on The Elliptic Curve Discrete Logarithm Problem | |
Chen et al. | A distributed electronic authentication scheme based on elliptic curve | |
CN116896440B (zh) | 基于区块链的声明数据的验证方法和装置、设备和介质 | |
Zhang et al. | Efficient Non-Interactive Polynomial Commitment Scheme in the Discrete Logarithm Setting | |
Luu et al. | SOME VARIANTS OF THE SCHNORR SIGNATURE SCHEMA ON THE FINITE FIELD AND THE ELLIPTIC CURVE | |
JP2024529095A (ja) | デジタル署名の生成 | |
KR20240046201A (ko) | 디지털 서명들의 생성 | |
Tan et al. | Adding variables variation to Rainbow‐like scheme to enhance its security level against MinRank attack | |
WO2023163654A2 (en) | Computer-implemented method, computer program and computer-readable medium using a chameleon hash function |
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 |