KR102364047B1 - 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 - Google Patents
구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 Download PDFInfo
- Publication number
- KR102364047B1 KR102364047B1 KR1020190149105A KR20190149105A KR102364047B1 KR 102364047 B1 KR102364047 B1 KR 102364047B1 KR 1020190149105 A KR1020190149105 A KR 1020190149105A KR 20190149105 A KR20190149105 A KR 20190149105A KR 102364047 B1 KR102364047 B1 KR 102364047B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- map
- signature
- key
- expressed
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/3026—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 details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Abstract
키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법이 개시된다. 상기 방법은 아핀 맵과 비밀 센트럴 맵을 획득하고, 상기 아핀 맵과 상기 비밀 센트럴 맵을 이용하여 공개키와 비밀키를 생성하는 단계를 포함하고, 상기 비밀 센트럴 맵은 o개의 다변수 이차식들의 시스템으로 표현되고, 상기 o개의 다변수 이차식들의 시스템은, 유한체에서 정의된 v개의 일차식들과 v개의 변수들이 주어졌을 때, 구조화된 행렬 또는 구조화된 행렬의 부분 행렬과 벡터의 곱으로 표현 가능하다.
Description
본 발명은 공개키 암호에 관한 것으로, 특히 구조화된 행렬들에 기초한 다변수 이차식 기반 디지털 서명 알고리즘을 수행할 수 있는 방법과 장치에 관한 것이다.
다변수 이차식 기반 디지털 서명(digital signature based on multivariate quadratic equations)은 다변수 암호(multivariate cryptography) 시스템에서 사용되는 디지털 서명(또는 '전자 서명'이라고도 함.)을 의미한다. 여기서, 다변수 암호 시스템은 유한체(finite field) 위에서 정의된 다변수 다항식들(multivariate polynomials)을 기반으로 하는 비대칭 암호 기본 요소들(asymmetric cryptographic primitives)을 갖는 시스템을 의미한다.
특히, 다변수 암호 시스템에서 사용되는 다변수 다항식들의 차수(degree)가 2인 경우, 상기 다변수 암호 시스템을 다변수 이차식 기반 암호 시스템이라고 한다.
본 발명이 이루고자 하는 기술적인 과제는 구조화된 행렬들을 사용함으로써 비밀키의 길이를 크게 줄일 수 있으며, 계산의 효율성을 증대시켜 빠르게 서명 생성을 수행할 수 있는 다변수 이차식 기반 전자 서명 알고리즘을 수행할 수 있는 방법, 장치, 및 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법은 아핀 맵()과 맵()을 획득하는 단계와 상기 아핀 맵과 상기 맵을 이용하여 공개키()와 비밀키를 생성하는 단계를 포함하고, 상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고, 유한체()에서 정의된 개의 일차식들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템 ()은 아래와 같이 표현되고,
여기서, 이고, 이고, 는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고, 이고, , , 이고, 이고, 는 비니거(Vinegar) 변수들을 정의하기 위한 인덱스 집합이고, 는 오일(Oil) 변수들을 정의하기 위한 인덱스 집합이다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 상기 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법을 저장한다.
본 발명의 실시 예들에 따른 전자 서명기는 상기 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기와, 상기 아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기와, 상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 포함하고, 상기 서명 생성기는 상기 메시지(M)에 대한 해시 메시지()를 계산하고, 가 주어질 때, 의 해()를 을 이용하여 계산하고, 를 계산하고, 상기 서명 검증기는 인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고, 이고,이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법은 아핀 맵()과 맵()을 획득하는 단계와, 상기 아핀 맵과 상기 맵을 이용하여 공개키()와 비밀키를 생성하는 단계를 포함하고, 상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고, 유한체()에서 정의된 개의 변수들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템 ()은 아래와 같이 표현되고,
여기서,
각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택된다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 상기 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법을 저장한다.
본 발명의 실시 예들에 따른 전자 서명기는 상기 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기와, 상기 아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기와, 상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 포함하고, 상기 서명 생성기는 상기 메시지(M)에 대한 해시 메시지()를 계산하고, 가 주어질 때, 의 해()를 을 이용하여 계산하고, 를 계산하고, 상기 서명 검증기는 인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고, 이고, 이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법은 제1아핀 맵(), 제2아핀 맵()과 맵()을 획득하는 단계와, 상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 ()와 비밀키()를 생성하는 단계를 포함하고, 상기 맵()은 개의 방정식들과 개의 변수들을 갖는 다변수 이차식들의 시스템 ()으로 표현될 때, 에 대해 는 아래와 같이 표현되고,
여기서, 는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고, 이고, 이고, 이고, 이고, 이고, , , , 여기서, 이고, i = 1과 2에 대해 이고, 는 비니거 변수들을 정의하기 위한 인덱스 집합이고, 과 는 오일 변수들을 정의하기 위한 인덱스 집합들이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법은 제1아핀 맵(), 제2아핀 맵()과 맵 ()을 획득하는 단계와, 상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 ()와 비밀키()를 생성하는 단계를 포함하고, 상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고, 유한체()에서 정의된 개의 변수들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템()은 아래와 같이 표현되고,
여기서,
와 로 주어지고, 이고, 각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되고,
여기서,
이고, 각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되고, 이고, 이고, 이고, 이다.
본 발명의 실시 예에 따른 다변수 이차식 기반 전자 서명 알고리즘을 수행하는 방법, 장치 또는 컴퓨터 프로그램은 구조화된 행렬들을 사용함으로써 비밀키의 길이를 크게 줄일 수 있으며, 계산의 효율성을 증대시켜 빠르게 서명 생성을 수행할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예들에 따른 레이어가 1개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 2는 도 1에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예들에 따른 레이어가 2개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 4는 도 3에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 1은 본 발명의 실시 예들에 따른 레이어가 1개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 2는 도 1에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예들에 따른 레이어가 2개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 4는 도 3에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
본 명세서에서는 적당한 연산(또는 연산들)을 수행한 후에, 구조화된 행렬 (structured matrix) 또는 구조화된 행렬의 부분 행렬(submatrix)과 벡터(vector)의 곱으로 표현할 수 있는 다변수 이차식들의 시스템(systems of multivariate quadratic equations)의 생성에 기반한 전자 서명 알고리즘(또는 상기 전자 서명 알고리즘을 수행할 수 있는 장치, 방법, 및/또는 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램)이 개시된다.
1. (여기서,는 자연수)개의 일차식들과 개의 변수들(여기서, , )을 이용하여 구조화된 행렬(structured matrix) 또는 구조화된 행렬의 부분 행렬(submatix)과 벡터(vector)의 곱으로 표현 가능한 (여기서, 는 자연수)개의 이차식들을 생성.
가 원소의 개수가 (여기서, 는 자연수)개인 유한체(finite field)일 때, 유한체()에서 정의된 개의 일차식들()과 개의 변수들 ()이 주어졌을 때, 수학식 1과 같이 구조화된 행렬(또는 구조화된 행렬의 부분 행렬)과 벡터의 곱의 형태로 표현할 수 있는 개의 이차식들의 시스템()이 생성된다.
[수학식 1]
1-1. 구조화된 행렬는 순환 행렬(circulant matrix)이다.
개의 일차방정식들()과 개의 변수들()이 장치 또는 컴퓨터 프로그램에게 주어졌을 때, 수학식 2와 같이 개의 이차 방정식들을 포함하는 이차식들의 시스템()이 생성된다. 여기서, 는 이차 방정식들의 개수로, 레이어(layer)가 한 개인 경우에는 로 표현되고, 레이어가 두 개일 때 첫 번째 레이어는 으로 표현되고 두 번째 레이어는 로 표현된다.
[수학식 2]
수학식 2의 이차식들의 시스템은 수학식 3과 같이 순환 행렬(또는 순환 행렬의 부분 행렬)와 벡터와의 곱의 형태로 표현될 수 있어야 한다. 즉, 수학식 3에서 는 순환 행렬 또는 순환 행렬의 부분 행렬이 된다.
[수학식 3]
1-2. 블록 순환 행렬(block circulant matrix)로 표현되는 이차식들의 시스템을 추가로 생성
[수학식 4]
수학식 4의 이차식들의 시스템과 수학식 2의 이차식들의 시스템이 합쳐져서 (여기서, i와 j 각각은 자연수)를 만족하는 이차항들(quadratic terms)이 없는 수학식 5와 같은 이차식들의 시스템이 생성된다. 여기서, 는 유한체()에서 선택된 상수항이다.
[수학식 5]
2. 계수 행렬이 구조화된 행렬(structured matrix) 구조를 갖는 이차식들의 시스템을 생성
[수학식 6]
[수학식 7]
이때, 각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되면 원하는 이차식들의 시스템이 생성된다.
여기서, 구조화된 행렬이란 기존의 구조화된 행렬 또는 역행렬을 구하거나 구조화된 행렬을 계수 행렬로 갖는 일차식의 시스템의 해를 찾는 복잡도가 보다 작거나 같은 경우를 포함한다. 이때, 일차식의 시스템의 계수 행렬의 크기는 이다.
[수학식 8]
[수학식 9]
먼저, 의 역행렬()이 구해지고, 의 역행렬()은 을 계산해서 구해진다. 이때, 의 역행렬을 구하기 위해 확장 유클리드 알고리즘(Extended Euclidean Algorithm) 등의 효율적인 알고리즘이 이용된다.
3. 구조화된 행렬을 이용한 랜덤화(randomization)
부채널(side-channel) 공격 등 다양한 공격들에 대응하기 위한 메시지 랜덤화나 비밀키 랜덤화의 실시 예들은 아래와 같다.
(i) 행렬과 메시지(또는 비밀키)를 더하여 제1연산 결과를 생성한 후, 상기 제1연산 결과로부터 상기 행렬을 빼기, 또는
(ⅱ) 행렬과 메시지(또는 비밀키)를 곱하여 제2연산 결과를 생성한 후, 상기 제2연산 결과에 상기 행렬의 역행렬을 곱하기.
이때, 행렬이 구조화된 행렬로 선택되면, 계산 효율이 높아지는 효과가 있다.
3-1. 순환 행렬 또는 블록 순환 행렬을 이용한 랜덤화(randomization)
부채널(side-channel) 공격 등 다양한 공격들에 대응하기 위한 메시지 랜덤화나 비밀키 랜덤화의 실시 예들은 아래와 같다.
(i) 행렬과 메시지(또는 비밀키)를 더하여 제1연산 결과를 생성한 후, 상기 제1연산 결과로부터 상기 행렬을 빼기, 또는
(ⅱ) 행렬과 메시지(또는 비밀키)를 곱하여 제2연산 결과를 생성한 후, 상기 제2연산 결과에 상기 행렬의 역행렬을 곱하기.
이때, 랜덤 행렬이 순환 행렬 또는 블록 순환 행렬로 선택되면, 계산 효율이 높아지는 효과가 있다.
3-2. 가 원소의 개수가 q개인 유한체(finite field)일 때, 의 벡터 ()와 비밀키()와의 곱()에서 비밀키()의 랜덤화를 위해, 수학식 10과 같이 랜덤 행렬()이 순환 행렬로 선택되면, 계산 효율은 높아지는 효과가 있다.
[수학식 10]
본 발명에 따른 다변수 이차식 기반 전자(또는 디지털) 서명 알고리즘은 키 생성 알고리즘, 서명 생성 알고리즘, 및 서명 검증 알고리즘을 포함한다. 상기 다변수 이차식 기반 전자 서명 알고리즘은 전자 장치(또는 디지털 서명 장치)에 의해 실행되거나 상기 전자 장치에서 실행되는 컴퓨터 프로그램에 의해 실행된다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 구조화된 행렬에 기초한 전자 서명 알고리즘(인증(authentication), 부인 방지(non-repudiation), 및/또는 메시지(또는 데이터)의 무결성(integrity)를 보호하는 알고리즘)를 위한 방법을 수행하기 위한 프로그램 코드를 갖고, 상기 프로그램 코드는 컴퓨팅 장치에서 실행된다.
컴퓨팅 장치는 PC, 서버, 또는 모바일 장치를 의미하고, 상기 모바일 장치는 이동 전화기, 스마트폰, 인터넷 모바일 장치(internet mobile device(MID)), 랩탑 컴퓨터 등을 의미하나 이에 한정되는 것은 아니다.
도 1은 본 발명의 실시 예들에 따른 레이어가 1개인 다변수 이차식 기반 전자 서명기의 블록도이고, 도 2는 도 1에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 1의 전자 서명기(100)는 1개의 레이어(layer)를 갖는 비밀 센트럴 맵 (security central map)을 구성하고, 이를 이용하여 다변수 이차식 기반 전자 서명 알고리즘을 실행하고, 키 생성기(110), 서명 생성기(120), 및 서명 검증기(130)를 포함한다.
본 명세서에서 전자 서명기(100 또는 200)는 하드웨어 컴포넌트 또는 소프트웨어 컴포넌트로 구현될 수 있다. 전자 서명기(100 또는 200)가 하드웨어 컴포넌트로 구현될 때 구성 요소들(110, 120, 및 130) 각각은 하드웨어 컴포넌트로 구현되고, 전자 서명기(100)가 소프트웨어 컴포넌트로 구현될 때 구성 요소들(110, 120, 및 130) 각각은 소프트웨어 컴포넌트로 구현된다.
키 생성(key generation) 알고리즘
키 생성기(110)는 공개키(public key)를 계산하는 키 생성(key generation) 알고리즘을 수행하기 위해 단계들(S110~S130)을 수행한다.
1. 한 개의 아핀 맵()이 랜덤하게 선택된다(S110). 아핀 맵()이 역변환 가능(invertable)하지 않다면, 새로운 아핀 맵이 랜덤하게 다시 선택된다. 여기서, 이고, 이다. 아핀 맵들과 비밀 센트럴 맵 ()은 키 생성기(110)가 액세스할 수 있는 장치(예컨대, 데이터 저장장치)에 안전하게 저장되어 있다고 가정한다.
구조화된 행렬을 이용한 다변수 이차식 기반 전자서명 알고리즘으로의 응용을 위해, 본 발명에 따른 새로운 센트럴 맵의 구성은 레이어(layer)가 한(1) 개인 경우 2개의 인덱스 집합들()이 필요하다. 이고, 과 각각은 자연수이다.
[수학식 11]
[수학식 12]
[수학식 13]
3. 공개키()가 계산된다(S130). 여기서, 원(circle)은 합성 (composition)을 의미하고, 공개키 ()는 서명 검증을 위해 필요하고, 비밀키(=)는 서명 검증을 위해 필요하다.
서명 생성(signature generation) 알고리즘
서명 생성기(120)는 서명 생성(signature generation) 알고리즘, 즉 본 발명에 따른 새로운 센트럴 맵을 역변환하는 방법(how to invert the central map)을 수행하기 위해 단계들(S140 내지 S160)을 수행한다.
서명 생성기(120)는 아핀 맵 (), 비밀 센트럴 맵(), 및 메시지(M)를 수신한다. 메시지(M)는 원문(plaintext) 그대로 통신 매체(예컨대, 유선 또는 무선)를 통해 전송될 메시지를 의미한다.
1. 메시지(M)에 대해 해시(hash) 메시지()가 계산된다(S140). 여기서, 는 충돌 방지 해시 함수(collision resistant hash function)이다. 이 계산된다.
랜덤 값들의 벡터, 를 선택한다. 벡터()를 에 대한 에 대입(plug)하여, 순환 행렬의 부분 행렬과 벡터()의 전치 행렬(transpose)의 곱을 계산하고, 그 결과로 를 얻는다. 이때, 부분 행렬은 수학식 3의 이다.
만약, 블록 순환 행렬()의 역행렬()이 존재하지 않으면, 서명 생성 알고리즘의 처음으로 돌아가 새로운 랜덤 값들의 벡터()를 선택하여 앞에서 설명한 방법들(또는 과정들)을 다시 수행한다.
3. 가 계산된다(S160). 는 메시지(M)의 서명(여기서, 서명은 디지털 서명(digital signature) 또는 전자 서명(electronic signature)을 의미함)이다.
서명 검증 또는 검증 알고리즘
서명 검증기(130)는 서명 검증 또는 검증 알고리즘을 수행하기 위해 단계 (S170)을 수행한다. 서명 검증기(130)는 서명 생성기(120)로부터 공개키()와 공개키()를 포함하는 인증서 중에서 어느 하나, 메시지(M), 및 서명()을 수신하고, 즉 메시지(M)에 대한 서명()과 공개키()가 주어지면, 인지가 확인된다. 이면 서명()이 수락되고, 그렇지 않으면 서명()은 거절된다.
도 3은 본 발명의 실시 예들에 따른 레이어가 2개인 다변수 이차식 기반 전자 서명기의 블록도이고, 도 4는 도 3에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 3의 전자 서명기(200)는 2개의 레이어들(layers)을 갖는 비밀 센트럴 맵을 구성하고 처리한다.
키 생성기(210)는 공개키를 계산하는 키 생성 알고리즘을 수행하기 위해 단계들(S210~S230)을 수행한다.
키생성 알고리즘:
1. 두 개의 아핀 맵들( 와 )이 랜덤하게 선택된다(S210). 와 가 역변환가능(invertable)하지 않다면, 두 개의 (새로운) 아핀 맵들(와 )이 랜덤하게 다시 선택된다. 여기서, 와 이고, 와 이다. 아핀 맵들( 와 )을 포함하는 아핀 맵들과 비밀 센트럴 맵 ()은 키 생성기(210)에 의해 액세스 가능한 장치에 안전하게 저장될 수 있다.
구조화된 행렬을 이용한 다변수 이차식 기반 전자서명 알고리즘으로의 응용을 위해, 본 발명에 따른 새로운 센트럴 맵의 구성은 레이어들이 두개인 경우 3개의 인덱스 집합들(, , 및 )이 필요하다.
[수학식 14]
여기서, 는 수학식 2와 같이 정의되고, 는 수학식 4와 같이 정의된다. 이때, 앞에서 설명한 1-2에서 처럼 가 (, 여기서 은 자연수)으로 대체되면, 수학식 3은 수학식 15로 되고, 수학식 6은 수학식 16으로 되고, 수학식 8과 수학식 9는 수학식 17로 된다.
[수학식 15]
[수학식 16]
여기서,
이다.
[수학식 17]
[수학식 18]
[수학식 19]
는 수학식 4와 같이 정의된다. 이때, 1-2에서 설명한 가 으로 대체되고, 가 (, 여기서 는 자연수)로 대체되면, 수학식 3은 수학식 20으로 되고, 수학식 6은 수학식 21로 되고, 수학식 8과 수학식 9는 수학식 22로 된다.
[수학식 20]
[수학식 21]
여기서,
[수학식 22]
서명 생성 알고리즘
서명 생성기(220)는 서명 생성 알고리즘, 즉 본 발명에 따른 새로운 센트럴 맵을 역변환하는 방법을 수행하기 위해 단계들(S240 내지 S260)을 수행한다. 서명 생성기(220)는 아핀 맵들( 와 ), 비밀 센트럴 맵(), 및 메시지(M)을 수신한다.
제1 레이어에서,
벡터()를 에 대한 제1레이어()에 대입(plug)하여 순환 행렬의 부분 행렬과 벡터의 전치 행렬의 곱을 계산하고 그 결과로서 을 얻는다. 이때, 벡터()를 대입한 부분 행렬은 이다.
제2 레이어에서,
만약, 블록 순환 행렬()의 역행렬()이 존재하지 않거나 블록 순환 행렬()의 역행렬()이 존재하지 않으면, 전자 서명 알고리즘의 처음으로 돌아가 새로운 랜덤 값들의 벡터()를 선택하여 앞에서 설명한 방법들(또는 과정들)을 다시 수행한다.
서명 검증 또는 검증 단계:
서명 검증기(230)는 메시지(M), 서명(), 및 공개키()를 수신하고, 즉 메시지(M)에 대한 서명()과 공개키()가 주어지면, 인지가 확인한다(S270). 이면 서명()이 수락되고, 그렇지 않으면 서명()은 거절된다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 200: 전자 서명기
110, 210: 키 생성기
120, 220: 서명 생성기
130, 230: 서명 검증기
110, 210: 키 생성기
120, 220: 서명 생성기
130, 230: 서명 검증기
Claims (21)
- 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법에 있어서,
아핀 맵()과 맵()을 획득하는 단계; 및
상기 아핀 맵과 상기 맵을 이용하여 공개키()와 비밀키를 생성하는 단계를 포함하고,
상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고,
유한체()에서 정의된 개의 일차식들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템 ()은 아래와 같이 표현되고,
여기서, 이고, 이고,
는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
이고,
이고, 이고, 는 비니거(Vinegar) 변수들을 정의하기 위한 인덱스 집합이고, 는 오일(Oil) 변수들을 정의하기 위한 인덱스 집합인 공개키와 비밀키를 생성하는 방법. - 제1항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
- 제1항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
상기 아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기; 및
상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 더 포함하고,
상기 서명 생성기는,
상기 메시지(M)에 대한 해시 메시지()를 계산하고,
가 주어질 때, 의 해()를 을 이용하여 계산하고,
를 계산하고,
상기 서명 검증기는 인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고,
인 전자 서명기. - 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법에 있어서,
아핀 맵()과 맵()을 획득하는 단계; 및
상기 아핀 맵과 상기 맵을 이용하여 공개키()와 비밀키를 생성하는 단계를 포함하고,
상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고,
유한체()에서 정의된 개의 변수들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템 ()은 아래와 같이 표현되고,
여기서,
이고,
이고,
이고, 이고,
각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되는 공개키와 비밀키를 생성하는 방법. - 제5항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
- 제5항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
상기 아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기; 및
상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 더 포함하고,
상기 서명 생성기는,
상기 메시지(M)에 대한 해시 메시지()를 계산하고,
가 주어질 때, 의 해()를 을 이용하여 계산하고,
를 계산하고,
상기 서명 검증기는 인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고,
인 전자 서명기. - 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법에 있어서,
제1아핀 맵(), 제2아핀 맵()과 맵()을 획득하는 단계; 및
상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 ()와 비밀키()를 생성하는 단계를 포함하고,
상기 맵()은 개의 방정식들과 개의 변수들을 갖는 다변수 이차식들의 시스템 ()으로 표현될 때,
에 대해 는 아래와 같이 표현되고,
유한체()에서 정의된 개의 일차식들()과 개의 변수들 ()가 주어졌을 때,
에 대해 는 아래와 같이 표현되고,
여기서, 는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
에 대해 는 아래와 같이 표현되고,
의 변수를 갖는 일차식들()과 개의 변수들이 주어졌을 때, 에 대해 는 아래와 같이 표현되고,
여기서, 는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
이고,
이고, 이고, 이고, 이고,
,
,
여기서, 이고, i = 1과 2에 대해 이고, 는 비니거 변수들을 정의하기 위한 인덱스 집합이고, 과 는 오일 변수들을 정의하기 위한 인덱스 집합들인 공개키와 비밀키를 생성하는 방법. - 제9항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
- 제9항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
상기 제1아핀 맵(), 상기 제2아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기; 및
상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 포함하고,
상기 서명 생성기는,
상기 메시지(M)에 대해 해시 메시지()를 계산하고,
을 계산하고,
가 주어질 때, , 의 해 ()를 을 이용하여 계산하고,
를 계산하고,
상기 서명 검증기는,
인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고,
인 전자 서명기. - 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법에 있어서,
제1아핀 맵(), 제2아핀 맵()과 맵 ()을 획득하는 단계; 및
상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 ()와 비밀키()를 생성하는 단계를 포함하고,
상기 맵()은 개의 다변수 이차식들의 시스템 ()으로 표현되고,
유한체()에서 정의된 개의 변수들()과 개의 변수들 ()이 주어졌을 때, 상기 개의 다변수 이차식들의 시스템()은 아래와 같이 표현되고,
여기서,
와 로 주어지고,
이고,
각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되고,
에 대해 는 아래와 같이 주어지고,
여기서,
와 로 주어지고,
이고,
각 열 벡터()를 하나의 행렬의 원소로 간주했을 때, 가 구조화된 행렬이 되도록 각 열 벡터()가 선택되고, 도 와 동일한 형태의 구조화된 행렬이 되도록 원소 값들()이 선택되고,
이고, 이고, 이고, 인 공개키와 비밀키를 생성하는 방법. - 제15항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
- 제15항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
상기 제1아핀 맵(), 상기 제2아핀 맵(), 상기 맵(), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명()을 생성하는 서명 생성기; 및
상기 메시지(M), 상기 전자 서명(), 및 상기 공개키()를 이용하여 상기 전자 서명()을 검증하는 서명 검증기를 포함하고,
상기 서명 생성기는,
상기 메시지(M)에 대해 해시 메시지()를 계산하고,
을 계산하고,
가 주어질 때, , 의 해 ()를 을 이용하여 계산하고,
를 계산하고,
상기 서명 검증기는,
인지를 판단하고 판단 결과에 따라 상기 전자 서명()을 검증하고,
인 전자 서명기.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190149105A KR102364047B1 (ko) | 2019-11-19 | 2019-11-19 | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 |
US16/845,601 US20210152348A1 (en) | 2019-11-19 | 2020-04-10 | Method and apparatus for public-key cryptography based on structured matrices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190149105A KR102364047B1 (ko) | 2019-11-19 | 2019-11-19 | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210061194A KR20210061194A (ko) | 2021-05-27 |
KR102364047B1 true KR102364047B1 (ko) | 2022-02-16 |
Family
ID=75909346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190149105A KR102364047B1 (ko) | 2019-11-19 | 2019-11-19 | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210152348A1 (ko) |
KR (1) | KR102364047B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597540B (zh) * | 2021-01-28 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的多重共线性检测方法、装置及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101768641B1 (ko) | 2017-04-04 | 2017-08-30 | 기초과학연구원 | 짧은 키 길이를 갖는 다변수 이차 서명 스킴을 수행하는 전자 장치와 그 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375170A (en) * | 1992-11-13 | 1994-12-20 | Yeda Research & Development Co., Ltd. | Efficient signature scheme based on birational permutations |
US20040258240A1 (en) | 2003-05-02 | 2004-12-23 | Singh Mukesh K. | Cryptosystems |
US7961876B2 (en) * | 2005-01-11 | 2011-06-14 | Jintai Ding | Method to produce new multivariate public key cryptosystems |
DE102005028221B4 (de) | 2005-06-17 | 2007-10-11 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Schutz der Integrität von Daten |
JP2008203548A (ja) * | 2007-02-20 | 2008-09-04 | Oki Electric Ind Co Ltd | 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 |
US8019079B2 (en) * | 2007-07-08 | 2011-09-13 | Georgia Tech Research Corporation | Asymmetric cryptosystem employing paraunitary matrices |
US8861716B2 (en) * | 2010-03-30 | 2014-10-14 | International Business Machines Corporation | Efficient homomorphic encryption scheme for bilinear forms |
IL205803A0 (en) * | 2010-05-16 | 2010-12-30 | Yaron Sella | Collision-based signature scheme |
JP5736816B2 (ja) * | 2010-05-31 | 2015-06-17 | ソニー株式会社 | 認証装置、認証方法、プログラム、及び署名生成装置 |
IL206139A0 (en) * | 2010-06-02 | 2010-12-30 | Yaron Sella | Efficient multivariate signature generation |
JP5422053B2 (ja) * | 2010-07-23 | 2014-02-19 | 日本電信電話株式会社 | 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体 |
US9191199B2 (en) | 2011-04-09 | 2015-11-17 | Universitat Zurich | Method and apparatus for public-key cryptography based on error correcting codes |
US9948460B2 (en) * | 2015-08-28 | 2018-04-17 | City University Of Hong Kong | Multivariate cryptography based on clipped hopfield neural network |
-
2019
- 2019-11-19 KR KR1020190149105A patent/KR102364047B1/ko active IP Right Grant
-
2020
- 2020-04-10 US US16/845,601 patent/US20210152348A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101768641B1 (ko) | 2017-04-04 | 2017-08-30 | 기초과학연구원 | 짧은 키 길이를 갖는 다변수 이차 서명 스킴을 수행하는 전자 장치와 그 방법 |
Non-Patent Citations (3)
Title |
---|
Moya Riera, Joan. Performance Analysis of Rainbow on ARM Cortex-M4. BS thesis. Universitat Politecnica de Catalunya, 2019 |
Petzoldt, Albrecht 외 2명, "Fast Verification for Improved Versions of the UOV and Rainbow Signature Schemes." International Workshop on Post-Quantum Cryptography, 2013 |
Petzoldt, Albrecht. Selecting and Reducing Key Sizes for Multivariate Cryptography. Diss. tuprints, 2013. |
Also Published As
Publication number | Publication date |
---|---|
US20210152348A1 (en) | 2021-05-20 |
KR20210061194A (ko) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110363030B (zh) | 用于执行基于格的密码操作的方法和处理设备 | |
JP5564053B2 (ja) | 暗号鍵を生成する方法、ネットワーク及びコンピュータプログラム | |
US10142105B2 (en) | Hypersphere-based multivariable public key encryption/decryption system and method | |
Eldefrawy et al. | Mobile one‐time passwords: two‐factor authentication using mobile phones | |
CN113098691B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
Sengupta et al. | Efficient proofs of retrievability with public verifiability for dynamic cloud storage | |
Nguyen et al. | Lattice-based fault attacks on signatures | |
CN109831306B (zh) | 基于多个密钥池的抗量子计算环签名方法和系统 | |
US9948463B2 (en) | Multivariate public key signature/verification system and signature/verification method | |
US11870911B2 (en) | Providing a cryptographic information | |
WO2015004065A1 (en) | Electronic signature system | |
CN112865973A (zh) | 基于格的加密密钥和数字签名的生成方法 | |
CN116346328A (zh) | 一种数字签名方法、系统、设备及计算机可读存储介质 | |
CN117527223B (zh) | 一种基于格的抗量子密码的分布式解密方法及系统 | |
KR102364047B1 (ko) | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 | |
Zhou et al. | An efficient code-based threshold ring signature scheme with a leader-participant model | |
Bellare et al. | Defending against key exfiltration: efficiency improvements for big-key cryptography via large-alphabet subkey prediction | |
KR20210066713A (ko) | 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법 | |
Shijin et al. | Security analysis and improvement of hybrid signcryption scheme based on heterogeneous system | |
Shooshtari et al. | Provably secure strong designated verifier signature scheme based on coding theory | |
US11616994B2 (en) | Embedding information in elliptic curve base point | |
CN112818362A (zh) | 基于r-lwe的公钥加密方法 | |
KR102637234B1 (ko) | 격자 기반 공개키 암호 시스템 및 이에 포함된 전자장치 | |
Kaminaga et al. | Determining the optimal random-padding size for rabin cryptosystems | |
Diaz-Tellez et al. | Context-aware multifactor authentication based on dynamic pin |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |