KR20150112315A - 묶음 검증 방법 및 장치 - Google Patents

묶음 검증 방법 및 장치 Download PDF

Info

Publication number
KR20150112315A
KR20150112315A KR1020140036212A KR20140036212A KR20150112315A KR 20150112315 A KR20150112315 A KR 20150112315A KR 1020140036212 A KR1020140036212 A KR 1020140036212A KR 20140036212 A KR20140036212 A KR 20140036212A KR 20150112315 A KR20150112315 A KR 20150112315A
Authority
KR
South Korea
Prior art keywords
verification
bundle
bundle verification
equation
instance
Prior art date
Application number
KR1020140036212A
Other languages
English (en)
Other versions
KR102070061B1 (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 한국전자통신연구원
Priority to KR1020140036212A priority Critical patent/KR102070061B1/ko
Priority to US14/668,566 priority patent/US9577828B2/en
Publication of KR20150112315A publication Critical patent/KR20150112315A/ko
Application granted granted Critical
Publication of KR102070061B1 publication Critical patent/KR102070061B1/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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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/0844Key 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
    • 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/3006Public 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/3013Public 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
    • 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
    • H04L9/3252Cryptographic 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

묶음 검증 방법 및 장치{BATCH VERIFICATION METHOD AND APPARATUS THEREOF}
본 발명의 실시 예들은, 다수의 인증 데이터 또는 전자 서명 값들의 검증을 위한 묶음 검증 방법 및 장치에 관한 것이다.
정보 통신 기술의 진보와 더불어 컴퓨터 환경은 지능화되고 있으며, 넓은 영역에서 대량의 다양한 정보들이 분배, 수집 및 처리되고 있다. 또한, 최근 서로 다른 필드 간의 융합 현상은, 디바이스와 환경들 사이에 상호 메시지 교환을 빈번히 요구하고 있다. 일반적으로 메시지는, 공개된 네트워크상에서 전송되고 있다. 공격자가 네트워크를 능동적으로 제어할 수 있으므로, 메시지는 유효한 정보로 신속히 사용되기 위하여 올바르고 적절하게 인증되어야 한다.
인증(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는 본 발명의 실시 예들이 적용되는 묶음 검증 장치를 설명하기 위한 블록도.
이하에서, 본 발명의 실시 예들을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
최근의 고도화된 정보 통신 환경에서, 대규모의 메시지들은 신속히 인증되고 처리되어야 할 필요가 있다. 이를 위해서 대응하는 검증 과정이 계산적인 관점에서 압축된 방식으로 처리된다면 많은 장점을 가질 것이다. 이러한 문제를 해결하기 위해서 묶음 검증(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 )이 선택되고 다음 등식이 성립하는지 검증된다.
Figure pat00001
n개의 인스턴스에 대해 등식 g x i = y i 을 만족하는지 개별적으로 검증하는 것에 비하여, SET 방법을 이용하면 전체 계산량은 적어지게 된다. 이유는 검증식의 좌변에서는 압축된 단일 지수 x = x 1 e 1 + x 2 e 2 + ... + x n e n 에 대한 단일 지수승을 계산하고, 우변에서는
Figure pat00002
을 계산하기 위해서 동시 다중 지수승(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 1g x 2=y 2을 확인한다. 만일 약간의 메모리를 이용할 수 있고 사전 계산이 허용되는 경우라면, 지수승을 위해 기존에 알려진 fixed-base comb 방법 등을 쓰면 개별 검증을 두 번 하는 것이, 즉 등식 g x 1=y 1g 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>과 같이 주어진다고 가정하자.
Figure pat00003
<수학식 1>에서, x i 는 0에서 p-1 사이의 정수, y i 는 군 G의 원소를 나타낸다. 임의의 두 x i , x j 들은 서로 다르다고 가정하자. 즉 x i x j 을 만족한다. 묶음 검증의 목적은, 각 i에 대해 <수학식 2>가 만족하는지 검증하는 것이다.
Figure pat00004
묶음 검증 인스턴스의 구성 원소들, 즉 개별 인스턴스(x i , y i )들을 설정된 방식에 따라 재배열된다. 예를 들어, 각 개별 인스턴스(x i , y i )들이 임의의(random) 위치를 갖도록 고르게(uniformly) 섞일 수 있다. 다시 말해, 묶음 검증 인스턴스가 일반성을 잃지 않도록 각 개별 인스턴스들의 위치가 섞일 수 있다.
일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)는 <수학식 3>과 같이 표현될 수 있다.
Figure pat00005
검증 지수 집합 E로부터 N-1개의 검증 지수(e 1, ..., e n -1)가 선택된다.
그리고, 선택된 검증 지수를 이용한 지수 테스트 방법에 따라 묶음 검증이 이루어진다. 지수 테스트 방법에 따른 묶음 검증은, 예를 들어, <수학식 4>의 등식이 만족되는지 여부를 판단함으로써 이루어진다.
Figure pat00006
여기서, 좌변에 대한 단일 지수(single exponent)(x)는 <수학식 5>와 같이 계산될 수 있다.
Figure pat00007
그리고, 검증 결과가 출력된다.
검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
등식이 성립한다는 것은, 각 i에 대해 등식 g x i = y i 이 만족됨을 의미한다. 등식이 성립하는 경우, 예를 들어, '1'이 출력될 수 있다.
등식이 성립하지 않는다는 것은, 어떤 i에 대해 등식 g x i = y i 이 만족되지 않음을 의미한다. 다시 말해, g x i = y i 가 성립하지 않은 i가 존재함을 의미한다. 등식이 성립하지 않는 경우, 예를 들어 '0'이 출력될 수 있다.
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 4> 대신 <수학식 6>을 이용한 묶음 검증이 수행될 수 있다.
Figure pat00008
본 발명의 실시 예들에서, 검증을 위해 선택된 n-1개의 검증 지수들(e 1, ..., e n -1)은 특정한 위치에서 이용되는 대신 임의의 위치에서 이용될 수 있다. 예를 들어, <수학식 7>과 같이, 첫 번째 위치에서 검증 지수가 이용되지 않을 수도 있고,
Figure pat00009
<수학식 8>과 같이, 두 번째 위치에서 검증 지수가 이용되지 않을 수 있다.
Figure pat00010
이는 다른 실시 예들에서도 마찬가지이다.
일 실시 예 - 가변적인 밑을 이용하는 경우
앞선 실시 예와 달리, 개별 인스턴스의 유효성 검증 등식에서 밑(base) g가 고정되지 않은 경우를 다룬다. 즉, 개별 인스턴스(x i , g i , y i )에 대해서 <수학식 9>가 만족하는지 검증하는 것이다. <수학식 9>에서, x i 는 0에서 p-1 사이의 정수이고, g i y i 는 군 G의 원소를 나타낸다.
Figure pat00011
묶음 검증 인스턴스(D)가 <수학식 10>과 같이 주어졌다고 가정하자. 그리고, 임의의 두 x i , x j 들은 서로 다르다고 가정하자.
Figure pat00012
입력으로 주어진 묶음 검증 인스턴스(D)의 구성 원소들, 즉 개별 인스턴스(x i , g i , y i )들이 설정된 방식에 따라 재배열된다. 예를 들어, 앞선 실시 예와 마찬가지로, 유니폼(uniform) 분포에 따라서 위치를 섞을 수 있다. 일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)가 <수학식 11>과 같이 표현될 수 있다.
Figure pat00013
검증 지수 집합 E로부터 n-1개의 검증 지수값들(e 1, ..., e n -1)이 선택된다. 그리고, 선택된 검증 지수를 이용한 지수 테스트 방법에 따라 묶음 검증이 이루어진다. 지수 테스트 방법에 따른 묶음 검증은, 예를 들어, <수학식 12>의 등식이 만족되는지 여부를 판단함으로써 이루어진다.
Figure pat00014
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 12> 대신 <수학식 13>을 이용하여 묶음 검증이 수행될 수 있다.
Figure pat00015
그리고, 검증 결과가 출력된다.
검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
등식이 성립한다는 것은, 각 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에 대하여 qp-1의 약수라고 가정하자. 아래 설명에서 H는 해쉬 함수를 나타낸다. 서명자의 비밀 서명키는 x, 공개키는 g x (mod p)으로 가정하자. 메시지 m에 대하여 DSA 전자서명 값을 생성하기 위해서 다음과 같이 진행한다.
먼저 임의의 난수 k∈Z q 가 선택되고 서명 인스턴스가 <수학식 14> 및 <수학식 15>와 같이 계산된다. H(m)은 메시지의 해쉬 값을 의미하고, Zq는 {0, 1, 2, ..., q-1}이다.
Figure pat00016
Figure pat00017
계산된 값(r, s)이 메시지 m에 대한 DSA 전자서명 값으로 정의된다.
한편, DSA 서명 인스턴스(r, s)에 대한 검증을 위하여, <수학식 16> 내지 <수학식 18>과 같은 연산이 이루어진다.
Figure pat00018
Figure pat00019
Figure pat00020
그리고, 검증식은 <수학식 19>와 같이 정의될 수 있다.
Figure pat00021
검증을 위하여, 등식 W = r이 성립하는지 확인된다. 만일 등식이 성립하면 서명의 유효함이 출력되고, 등식이 성립하지 않으면 서명이 유효하지 않음이 출력된다.
만일 여러 개의 DSA의 전자 서명 값을 검증하는 경우에는 다음과 같이 단순화된 지수 테스트(Simplified SET, SSET) 방법을 이용하여 묶음 검증을 효율적으로 수행할 수 있다.
DSA 전자 서명 기법에 대해서 묶음 검증 인스턴스(D)가 <수학식 20>과 같이 주어졌다고 가정하자.
Figure pat00022
여기서는 설명의 명확성을 위해서 각 서명 값은 서로 다른 비밀 서명키 x i 로 생성되었으며, 서로 다른 공개 검증키 y i =g x i 를 이용하여 서명의 유효성이 검증된다고 가정한다.
입력으로 주어진 묶음 검증 인스턴스(D)의 개별 인스턴스들(m i , r i , s i )의 위치가 미리 정해진 방식으로 섞인다. 예를 들어, 전술한 실시 예들과 마찬가지로, 각 인스턴스들이 임의의(random) 위치를 갖도록 고르게(uniformly) 섞일 수 있다. 일반성을 잃지 않고 위치가 섞어진 후의 묶음 검증 인스턴스(D)는 <수학식 21>과 같이 표현될 수 있다.
Figure pat00023
검증 지수 집합 E로부터 n-1개의 검증 지수들(e 1, ..., e n -1)이 선택된다. 그리고, <수학식 22> 내지 <수학식 24>에 따른 연산이 수행된다.
Figure pat00024
Figure pat00025
Figure pat00026
그리고 <수학식 25>의 등식이 만족되는지 여부를 판단함으로써 묶음 검증이 이루어진다.
Figure pat00027
그리고, 검증 결과가 출력된다. 검증 결과는, 묶음 검증에 이용된 등식이 성립하는지 또는 등식이 성립하지 않는지 여부에 대한 결과로서 출력된다.
일 실시 예에서, 역원 계산이 쉬운 군(예를 들어, 타원 곡선군)에 대한 묶음 검증을 수행하는 경우, <수학식 26>과 같이 역원을 이용하는 변형된 검증식을 이용할 수 있다.
Figure pat00028
앞선 실시 예와 마찬가지로, 검증을 위해 선택된 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)

  1. 묶음 검증 방법으로서,
    묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 재배열하는 단계;
    묶음 검증에 이용되는 검증 지수 집합 E로부터 N-1개의 검증 지수를 선택하는 단계; 및
    상기 선택된 검증 지수를 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하는 단계
    를 포함하는 묶음 검증 방법.
  2. 제 1 항에 있어서, 상기 검증 지수 집합 E는,
    람다(λ) 비트열들의 집합인
    묶음 검증 방법.
  3. 제 1 항에 있어서, 상기 검증 지수 집합 E는,
    해밍 웨이트(Hamming weight) 또는 해밍 거리(Hamming distance)가 설정된 값 이하인 구성 원소들로 이루어진
    묶음 검증 방법.
  4. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00029

    {여기서, g는 소수 위수 p를 갖는 군 G의 생성원, xi는 0에서 p-1 사이의 정수, yi는 G의 원소, ei는 E의 원소}
  5. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00030

    {여기서, g는 소수 위수 p를 갖는 군 G의 생성원, xi는 0에서 p-1 사이의 정수, yi는 G의 원소, ei는 E의 원소}
  6. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00031

    {여기서, giyi는 소수 위수 p를 갖는 군 G의 원소, xi는 0에서 p-1 사이의 정수, ei는 E의 원소}
  7. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00032

    {여기서, giyi는 소수 위수 p를 갖는 군 G의 원소, xi는 0에서 p-1 사이의 정수, ei는 E의 원소}
  8. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00033

    {여기서, b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+e n -1 H(m n )s n -1 (mod q), d 1 = r 1 s 1 -1, d i = e i r i s i -1 (mod q) (i=2, 3, ...,n), H는 해쉬 함수, (m i , r i , s i )는 개별 인스턴스 쌍, ei는 E의 원소, g는 소수 위수 p를 갖는 군 G의 생성원, yi는 G의 원소, qp-1의 약수}
  9. 제 1 항에 있어서, 상기 묶음 검증을 수행하는 단계는,
    상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인하는 단계를 포함하는
    묶음 검증 방법.
    <수학식>
    Figure pat00034

    {여기서, b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+e n -1 H(m n )s n -1 (mod q), d 1 = r 1 s 1 -1, d i = e i r i s i -1 (mod q) (i=2, 3, ..., n), H는 해쉬 함수, (m i , r i , s i )는 개별 인스턴스 쌍, ei는 E의 원소, g는 소수 위수 p를 갖는 군 G의 생성원, yi는 G의 원소, qp-1의 약수}
  10. 프로세서 및 메모리를 포함하는 묶음 검증 장치로서,
    상기 메모리에 묶음 검증에 이용되는 검증 지수 집합 E 및 묶음 검증을 수행하기 위한 명령어들이 저장되며,
    상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    묶음 검증 인스턴스를 구성하는 N쌍의 개별 인스턴스들을 재배열하고,
    상기 검증 지수 집합 E로부터 N-1개의 검증 지수를 선택하며,
    상기 선택된 검증 지수를 이용하여 상기 재배열된 묶음 검증 인스턴스에 대한 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
  11. 제 10 항에 있어서, 상기 검증 지수 집합 E는,
    람다(λ) 비트열들의 집합인
    묶음 검증 장치.
  12. 제 10 항에 있어서, 상기 검증 지수 집합 E는,
    해밍 웨이트(Hamming weight) 또는 해밍 거리(Hamming distance)가 설정된 값 이하인 구성 원소들로 이루어진
    묶음 검증 장치.
  13. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00035

    {여기서, g는 소수 위수 p를 갖는 군 G의 생성원, xi는 0에서 p-1 사이의 정수, yi는 G의 원소, ei는 E의 원소}
  14. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00036

    {여기서, g는 소수 위수 p를 갖는 군 G의 생성원, xi는 0에서 p-1 사이의 정수, yi는 G의 원소, ei는 E의 원소}
  15. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00037

    {여기서, giyi는 소수 위수 p를 갖는 군 G의 원소, xi는 0에서 p-1 사이의 정수, ei는 E의 원소}
  16. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00038

    {여기서, giyi는 소수 위수 p를 갖는 군 G의 원소, xi는 0에서 p-1 사이의 정수, ei는 E의 원소}
  17. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00039

    {여기서, b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+e n -1 H(m n )s n -1 (mod q), d 1 = r 1 s 1 -1, d i = e i r i s i -1 (mod q) (i=2, 3, ..., n), H는 해쉬 함수, (m i , r i , s i )는 개별 인스턴스 쌍, ei는 E의 원소, g는 소수 위수 p를 갖는 군 G의 생성원, yi는 G의 원소, qp-1의 약수}
  18. 제 10 항에 있어서, 상기 명령어들은,
    상기 프로세서로 하여금, 상기 묶음 검증 인스턴스가 하기의 수학식을 만족하는지 여부를 확인함으로써 묶음 검증을 수행하도록 하는 명령어들을 포함하는
    묶음 검증 장치.
    <수학식>
    Figure pat00040

    {여기서, b=H(m 1)s 1 -1+e 1 H(m 2)s 2 -1+...+e n -1 H(m n )s n -1 (mod q), d 1 = r 1 s 1 -1, d i = e i r i s i -1 (mod q) (i=2, 3, ..., n), H는 해쉬 함수, (m i , r i , s i )는 개별 인스턴스 쌍, ei는 E의 원소, g는 소수 위수 p를 갖는 군 G의 생성원, yi는 G의 원소, qp-1의 약수}
KR1020140036212A 2014-03-27 2014-03-27 묶음 검증 방법 및 장치 KR102070061B1 (ko)

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 true KR20150112315A (ko) 2015-10-07
KR102070061B1 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060104823A (ko) * 2005-03-31 2006-10-09 재단법인서울대학교산학협력재단 빠른 집합 검증 방법 및 그 장치
US20080320557A1 (en) * 2007-06-25 2008-12-25 Keisuke Hakuta Batch verification device, program and batch verification method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060104823A (ko) * 2005-03-31 2006-10-09 재단법인서울대학교산학협력재단 빠른 집합 검증 방법 및 그 장치
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
US9577828B2 (en) 2017-02-21
US20150281256A1 (en) 2015-10-01
KR102070061B1 (ko) 2020-01-29

Similar Documents

Publication Publication Date Title
JP5329676B2 (ja) 鍵合意プロトコルの加速
CA2331442C (en) Robust efficient distributed rsa-key generation
US8745376B2 (en) Verifying implicit certificates and digital signatures
EP3035587B1 (en) Hypersphere-based multivariable public key signature/verification system and method
US20130326602A1 (en) Digital Signatures
CN112187469B (zh) 一种基于密钥因子的sm2多方协同数字签名方法和系统
CN104468476A (zh) 无证书多重代理签名的方法和装置
CN110599164B (zh) 一种可监管的链下任意收款方快速支付方法
WO2012151653A1 (en) Validating a batch of implicit certificates
Yavuz Eta: efficient and tiny and authentication for heterogeneous wireless systems
CN112436938B (zh) 数字签名的生成方法、装置和服务器
US20160149708A1 (en) Electronic signature system
Junru The improved elliptic curve digital signature algorithm
KR102070061B1 (ko) 묶음 검증 방법 및 장치
Hwang et al. Simplified small exponent test for batch verification
Borges et al. IKUP keeps users' privacy in the smart grid
Magons Applications and Benefits of Elliptic Curve Cryptography.
Xiang et al. Verifiable and secure outsourcing schemes of modular exponentiations using one untrusted cloud server and their application
El Kinani et al. Proposed Developments of Blind Signature Scheme based on The Elliptic Curve Discrete Logarithm Problem
Yanlong Cryptanalysis of the cryptosystems based on the generalized hidden discrete logarithm problem
CN116896440B (zh) 基于区块链的声明数据的验证方法和装置、设备和介质
Chen Homomorphic Hashing Based on Elliptic Curve Cryptography
CN116975935B (zh) 数据比较方法、存储介质及电子设备
Phalakarn et al. Single-round Lattice-based Multisignatures
Zhang et al. Efficient Non-Interactive Polynomial Commitment Scheme in the Discrete Logarithm Setting

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