KR102364047B1 - 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 - Google Patents

구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 Download PDF

Info

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
Application number
KR1020190149105A
Other languages
English (en)
Other versions
KR20210061194A (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 KR1020190149105A priority Critical patent/KR102364047B1/ko
Priority to US16/845,601 priority patent/US20210152348A1/en
Publication of KR20210061194A publication Critical patent/KR20210061194A/ko
Application granted granted Critical
Publication of KR102364047B1 publication Critical patent/KR102364047B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • 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
    • 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/3026Public 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
    • 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/3236Cryptographic 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Abstract

키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법이 개시된다. 상기 방법은 아핀 맵과 비밀 센트럴 맵을 획득하고, 상기 아핀 맵과 상기 비밀 센트럴 맵을 이용하여 공개키와 비밀키를 생성하는 단계를 포함하고, 상기 비밀 센트럴 맵은 o개의 다변수 이차식들의 시스템으로 표현되고, 상기 o개의 다변수 이차식들의 시스템은, 유한체에서 정의된 v개의 일차식들과 v개의 변수들이 주어졌을 때, 구조화된 행렬 또는 구조화된 행렬의 부분 행렬과 벡터의 곱으로 표현 가능하다.

Description

구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치{METHOD AND APPARATUS FOR PUBLIC-KEY CRYPTOGRAPHY BASED ON STRUCTURED MATRICES}
본 발명은 공개키 암호에 관한 것으로, 특히 구조화된 행렬들에 기초한 다변수 이차식 기반 디지털 서명 알고리즘을 수행할 수 있는 방법과 장치에 관한 것이다.
다변수 이차식 기반 디지털 서명(digital signature based on multivariate quadratic equations)은 다변수 암호(multivariate cryptography) 시스템에서 사용되는 디지털 서명(또는 '전자 서명'이라고도 함.)을 의미한다. 여기서, 다변수 암호 시스템은 유한체(finite field) 위에서 정의된 다변수 다항식들(multivariate polynomials)을 기반으로 하는 비대칭 암호 기본 요소들(asymmetric cryptographic primitives)을 갖는 시스템을 의미한다.
특히, 다변수 암호 시스템에서 사용되는 다변수 다항식들의 차수(degree)가 2인 경우, 상기 다변수 암호 시스템을 다변수 이차식 기반 암호 시스템이라고 한다.
미국등록특허공보: US 9,191,199 B2 (2015.11.17) 미국공개특허공보: US 2004/0258240 A1 (2004.12.23) 미국공개특허공보: US 2007/0033417 A1 (2007.02.08)
본 발명이 이루고자 하는 기술적인 과제는 구조화된 행렬들을 사용함으로써 비밀키의 길이를 크게 줄일 수 있으며, 계산의 효율성을 증대시켜 빠르게 서명 생성을 수행할 수 있는 다변수 이차식 기반 전자 서명 알고리즘을 수행할 수 있는 방법, 장치, 및 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법은 아핀 맵(
Figure 112019119008272-pat00001
)과 맵(
Figure 112019119008272-pat00002
)을 획득하는 단계와 상기 아핀 맵과 상기 맵을 이용하여 공개키(
Figure 112019119008272-pat00003
)와 비밀키
Figure 112019119008272-pat00004
를 생성하는 단계를 포함하고, 상기 맵(
Figure 112019119008272-pat00005
)은
Figure 112019119008272-pat00006
개의 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00007
)으로 표현되고, 유한체(
Figure 112019119008272-pat00008
)에서 정의된
Figure 112019119008272-pat00009
개의 일차식들(
Figure 112019119008272-pat00010
)과
Figure 112019119008272-pat00011
개의 변수들 (
Figure 112019119008272-pat00012
)이 주어졌을 때, 상기
Figure 112019119008272-pat00013
개의 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00014
)은 아래와 같이 표현되고,
Figure 112019119008272-pat00015
여기서,
Figure 112019119008272-pat00016
이고,
Figure 112019119008272-pat00017
이고,
Figure 112019119008272-pat00018
는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
Figure 112019119008272-pat00019
이고,
Figure 112019119008272-pat00020
,
Figure 112019119008272-pat00021
,
Figure 112019119008272-pat00022
이고,
Figure 112019119008272-pat00023
이고,
Figure 112019119008272-pat00024
는 비니거(Vinegar) 변수들을 정의하기 위한 인덱스 집합이고,
Figure 112019119008272-pat00025
는 오일(Oil) 변수들을 정의하기 위한 인덱스 집합이다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 상기 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법을 저장한다.
본 발명의 실시 예들에 따른 전자 서명기는 상기 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기와, 상기 아핀 맵(
Figure 112020027853775-pat00026
), 상기 맵(
Figure 112020027853775-pat00027
), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
Figure 112020027853775-pat00028
)을 생성하는 서명 생성기와, 상기 메시지(M), 상기 전자 서명(
Figure 112020027853775-pat00029
), 및 상기 공개키(
Figure 112020027853775-pat00030
)를 이용하여 상기 전자 서명(
Figure 112020027853775-pat00031
)을 검증하는 서명 검증기를 포함하고, 상기 서명 생성기는 상기 메시지(M)에 대한 해시 메시지(
Figure 112020027853775-pat00836
)를 계산하고,
Figure 112020027853775-pat00033
가 주어질 때,
Figure 112020027853775-pat00034
의 해(
Figure 112020027853775-pat00035
)를
Figure 112020027853775-pat00036
을 이용하여 계산하고,
Figure 112020027853775-pat00037
를 계산하고, 상기 서명 검증기는
Figure 112020027853775-pat00837
인지를 판단하고 판단 결과에 따라 상기 전자 서명(
Figure 112020027853775-pat00039
)을 검증하고,
Figure 112020027853775-pat00040
이고,
Figure 112020027853775-pat00838
이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법은 아핀 맵(
Figure 112019119008272-pat00042
)과 맵(
Figure 112019119008272-pat00043
)을 획득하는 단계와, 상기 아핀 맵과 상기 맵을 이용하여 공개키(
Figure 112019119008272-pat00044
)와 비밀키
Figure 112019119008272-pat00045
를 생성하는 단계를 포함하고, 상기 맵(
Figure 112019119008272-pat00046
)은
Figure 112019119008272-pat00047
개의 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00048
)으로 표현되고, 유한체(
Figure 112019119008272-pat00049
)에서 정의된
Figure 112019119008272-pat00050
개의 변수들(
Figure 112019119008272-pat00051
)과
Figure 112019119008272-pat00052
개의 변수들 (
Figure 112019119008272-pat00053
)이 주어졌을 때, 상기
Figure 112019119008272-pat00054
개의 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00055
)은 아래와 같이 표현되고,
Figure 112019119008272-pat00056
여기서,
Figure 112019119008272-pat00057
이고,
Figure 112019119008272-pat00058
이고,
Figure 112019119008272-pat00059
이고,
Figure 112019119008272-pat00060
이고,
각 열 벡터(
Figure 112019119008272-pat00061
)를 하나의 행렬의 원소로 간주했을 때,
Figure 112019119008272-pat00062
가 구조화된 행렬이 되도록 각 열 벡터(
Figure 112019119008272-pat00063
)가 선택되고,
Figure 112019119008272-pat00064
Figure 112019119008272-pat00065
와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
Figure 112019119008272-pat00066
)이 선택된다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 상기 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법을 저장한다.
본 발명의 실시 예들에 따른 전자 서명기는 상기 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기와, 상기 아핀 맵(
Figure 112020027853775-pat00067
), 상기 맵(
Figure 112020027853775-pat00068
), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
Figure 112020027853775-pat00069
)을 생성하는 서명 생성기와, 상기 메시지(M), 상기 전자 서명(
Figure 112020027853775-pat00070
), 및 상기 공개키(
Figure 112020027853775-pat00071
)를 이용하여 상기 전자 서명(
Figure 112020027853775-pat00072
)을 검증하는 서명 검증기를 포함하고, 상기 서명 생성기는 상기 메시지(M)에 대한 해시 메시지(
Figure 112020027853775-pat00839
)를 계산하고,
Figure 112020027853775-pat00074
가 주어질 때,
Figure 112020027853775-pat00075
의 해(
Figure 112020027853775-pat00076
)를
Figure 112020027853775-pat00077
을 이용하여 계산하고,
Figure 112020027853775-pat00078
를 계산하고, 상기 서명 검증기는
Figure 112020027853775-pat00840
인지를 판단하고 판단 결과에 따라 상기 전자 서명(
Figure 112020027853775-pat00080
)을 검증하고,
Figure 112020027853775-pat00081
이고,
Figure 112020027853775-pat00841
이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법은 제1아핀 맵(
Figure 112019119008272-pat00083
), 제2아핀 맵(
Figure 112019119008272-pat00084
)과 맵(
Figure 112019119008272-pat00085
)을 획득하는 단계와, 상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 (
Figure 112019119008272-pat00086
)와 비밀키(
Figure 112019119008272-pat00087
)를 생성하는 단계를 포함하고, 상기 맵(
Figure 112019119008272-pat00088
)은
Figure 112019119008272-pat00089
개의 방정식들과
Figure 112019119008272-pat00090
개의 변수들을 갖는 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00091
)으로 표현될 때,
Figure 112019119008272-pat00092
에 대해
Figure 112019119008272-pat00093
는 아래와 같이 표현되고,
Figure 112019119008272-pat00094
유한체(
Figure 112019119008272-pat00095
)에서 정의된
Figure 112019119008272-pat00096
개의 일차식들(
Figure 112019119008272-pat00097
)과
Figure 112019119008272-pat00098
개의 변수들 (
Figure 112019119008272-pat00099
)가 주어졌을 때,
Figure 112019119008272-pat00100
에 대해
Figure 112019119008272-pat00101
는 아래와 같이 표현되고,
Figure 112021106230111-pat00879
여기서,
Figure 112019119008272-pat00103
는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
Figure 112019119008272-pat00104
에 대해
Figure 112019119008272-pat00105
는 아래와 같이 표현되고,
Figure 112021106230111-pat00880
Figure 112019119008272-pat00107
의 변수를 갖는 일차식들(
Figure 112019119008272-pat00108
)과
Figure 112019119008272-pat00109
개의 변수들이 주어졌을 때,
Figure 112019119008272-pat00110
에 대해
Figure 112019119008272-pat00111
는 아래와 같이 표현되고,
Figure 112019119008272-pat00112
여기서,
Figure 112019119008272-pat00113
는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
Figure 112019119008272-pat00114
이고,
Figure 112019119008272-pat00115
이고,
Figure 112019119008272-pat00116
이고,
Figure 112019119008272-pat00117
이고,
Figure 112019119008272-pat00118
이고,
Figure 112019119008272-pat00119
,
Figure 112019119008272-pat00120
,
Figure 112019119008272-pat00121
, 여기서,
Figure 112019119008272-pat00122
이고, i = 1과 2에 대해
Figure 112019119008272-pat00123
이고,
Figure 112019119008272-pat00124
는 비니거 변수들을 정의하기 위한 인덱스 집합이고,
Figure 112019119008272-pat00125
Figure 112019119008272-pat00126
는 오일 변수들을 정의하기 위한 인덱스 집합들이다.
본 발명의 실시 예들에 따라, 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법은 제1아핀 맵(
Figure 112019119008272-pat00127
), 제2아핀 맵(
Figure 112019119008272-pat00128
)과 맵 (
Figure 112019119008272-pat00129
)을 획득하는 단계와, 상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 (
Figure 112019119008272-pat00130
)와 비밀키(
Figure 112019119008272-pat00131
)를 생성하는 단계를 포함하고, 상기 맵(
Figure 112019119008272-pat00132
)은
Figure 112019119008272-pat00133
개의 다변수 이차식들의 시스템 (
Figure 112019119008272-pat00134
)으로 표현되고, 유한체(
Figure 112019119008272-pat00135
)에서 정의된
Figure 112019119008272-pat00136
개의 변수들(
Figure 112019119008272-pat00137
)과
Figure 112019119008272-pat00138
개의 변수들 (
Figure 112019119008272-pat00139
)이 주어졌을 때, 상기
Figure 112019119008272-pat00140
개의 다변수 이차식들의 시스템(
Figure 112019119008272-pat00141
)은 아래와 같이 표현되고,
Figure 112019119008272-pat00142
여기서,
Figure 112019119008272-pat00143
Figure 112019119008272-pat00144
로 주어지고,
Figure 112019119008272-pat00145
이고, 각 열 벡터(
Figure 112019119008272-pat00146
)를 하나의 행렬의 원소로 간주했을 때,
Figure 112019119008272-pat00147
가 구조화된 행렬이 되도록 각 열 벡터(
Figure 112019119008272-pat00148
)가 선택되고,
Figure 112019119008272-pat00149
Figure 112019119008272-pat00150
와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
Figure 112019119008272-pat00151
)이 선택되고,
Figure 112019119008272-pat00152
에 대해
Figure 112019119008272-pat00153
는 아래와 같이 주어지고,
Figure 112019119008272-pat00154
여기서,
Figure 112019119008272-pat00155
Figure 112019119008272-pat00156
로 주어지고,
Figure 112019119008272-pat00157
이고, 각 열 벡터(
Figure 112019119008272-pat00158
)를 하나의 행렬의 원소로 간주했을 때,
Figure 112019119008272-pat00159
가 구조화된 행렬이 되도록 각 열 벡터(
Figure 112019119008272-pat00160
)가 선택되고,
Figure 112019119008272-pat00161
Figure 112019119008272-pat00162
와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
Figure 112019119008272-pat00163
)이 선택되고,
Figure 112019119008272-pat00164
이고,
Figure 112019119008272-pat00165
이고,
Figure 112019119008272-pat00166
이고,
Figure 112019119008272-pat00167
이다.
본 발명의 실시 예에 따른 다변수 이차식 기반 전자 서명 알고리즘을 수행하는 방법, 장치 또는 컴퓨터 프로그램은 구조화된 행렬들을 사용함으로써 비밀키의 길이를 크게 줄일 수 있으며, 계산의 효율성을 증대시켜 빠르게 서명 생성을 수행할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예들에 따른 레이어가 1개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 2는 도 1에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예들에 따른 레이어가 2개인 다변수 이차식 기반 전자 서명기의 블록도이다.
도 4는 도 3에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
본 명세서에서는 적당한 연산(또는 연산들)을 수행한 후에, 구조화된 행렬 (structured matrix) 또는 구조화된 행렬의 부분 행렬(submatrix)과 벡터(vector)의 곱으로 표현할 수 있는 다변수 이차식들의 시스템(systems of multivariate quadratic equations)의 생성에 기반한 전자 서명 알고리즘(또는 상기 전자 서명 알고리즘을 수행할 수 있는 장치, 방법, 및/또는 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램)이 개시된다.
1.
Figure 112019119008272-pat00168
(여기서,
Figure 112019119008272-pat00169
는 자연수)개의 일차식들과
Figure 112019119008272-pat00170
개의 변수들(여기서,
Figure 112019119008272-pat00171
,
Figure 112019119008272-pat00172
)을 이용하여 구조화된 행렬(structured matrix) 또는 구조화된 행렬의 부분 행렬(submatix)과 벡터(vector)의 곱으로 표현 가능한
Figure 112019119008272-pat00173
(여기서,
Figure 112019119008272-pat00174
는 자연수)개의 이차식들을 생성.
Figure 112019119008272-pat00175
가 원소의 개수가
Figure 112019119008272-pat00176
(여기서,
Figure 112019119008272-pat00177
는 자연수)개인 유한체(finite field)일 때, 유한체(
Figure 112019119008272-pat00178
)에서 정의된
Figure 112019119008272-pat00179
개의 일차식들(
Figure 112019119008272-pat00180
)과
Figure 112019119008272-pat00181
개의 변수들 (
Figure 112019119008272-pat00182
)이 주어졌을 때, 수학식 1과 같이 구조화된 행렬(또는 구조화된 행렬의 부분 행렬)과 벡터의 곱의 형태로 표현할 수 있는
Figure 112019119008272-pat00183
개의 이차식들의 시스템(
Figure 112019119008272-pat00184
)이 생성된다.
이차식들의 시스템(
Figure 112019119008272-pat00185
)은 수학식 1로 표현되며, 이때,
Figure 112019119008272-pat00186
는 구조화된 행렬(또는 구조화된 행렬의 부분 행렬)로 정의된다.
[수학식 1]
Figure 112019119008272-pat00187
여기서, 구조화된 행렬은 구조화된 행렬(또는 구조화된 행렬의 부분 행렬)과 벡터의 곱의 복잡도가
Figure 112019119008272-pat00188
보다 작거나 같은 경우도 포함한다.
1-1. 구조화된 행렬는 순환 행렬(circulant matrix)이다.
Figure 112019119008272-pat00189
개의 일차방정식들(
Figure 112019119008272-pat00190
)과
Figure 112019119008272-pat00191
개의 변수들(
Figure 112019119008272-pat00192
)이 장치 또는 컴퓨터 프로그램에게 주어졌을 때, 수학식 2와 같이
Figure 112019119008272-pat00193
개의 이차 방정식들을 포함하는 이차식들의 시스템(
Figure 112019119008272-pat00194
)이 생성된다. 여기서,
Figure 112019119008272-pat00195
는 이차 방정식들의 개수로, 레이어(layer)가 한 개인 경우에는
Figure 112019119008272-pat00196
로 표현되고, 레이어가 두 개일 때 첫 번째 레이어는
Figure 112019119008272-pat00197
으로 표현되고 두 번째 레이어는
Figure 112019119008272-pat00198
로 표현된다.
[수학식 2]
Figure 112019119008272-pat00199
수학식 2의 이차식들의 시스템은 수학식 3과 같이 순환 행렬(또는 순환 행렬의 부분 행렬)와 벡터와의 곱의 형태로 표현될 수 있어야 한다. 즉, 수학식 3에서
Figure 112019119008272-pat00200
는 순환 행렬 또는 순환 행렬의 부분 행렬이 된다.
[수학식 3]
Figure 112019119008272-pat00201
1-2. 블록 순환 행렬(block circulant matrix)로 표현되는 이차식들의 시스템을 추가로 생성
1-1에서 설명한 바와 같이 변수들(
Figure 112019119008272-pat00202
)에 대한 이차식들이 선택된 후, 추가로
Figure 112019119008272-pat00203
(여기서, k는 자연수)개의 변수(
Figure 112019119008272-pat00204
)에 대한 이차식의 시스템(
Figure 112019119008272-pat00205
)이 수학식 4와 같이 생성된다.
[수학식 4]
Figure 112019119008272-pat00206
여기서,
Figure 112019119008272-pat00207
이고,
Figure 112019119008272-pat00208
각각은 벡터들의 순환 행렬이고,
Figure 112019119008272-pat00209
는 벡터들의 블록 순환 행렬이고,
Figure 112019119008272-pat00210
Figure 112019119008272-pat00211
와 같은 구조를 가지는 블록 순환 행렬이다.
수학식 4의 이차식들의 시스템과 수학식 2의 이차식들의 시스템이 합쳐져서
Figure 112019119008272-pat00212
(여기서, i와 j 각각은 자연수)를 만족하는 이차항들(quadratic terms)이 없는 수학식 5와 같은 이차식들의 시스템이 생성된다. 여기서,
Figure 112019119008272-pat00213
는 유한체(
Figure 112019119008272-pat00214
)에서 선택된 상수항이다.
[수학식 5]
Figure 112019119008272-pat00215
2. 계수 행렬이 구조화된 행렬(structured matrix) 구조를 갖는 이차식들의 시스템을 생성
수학식 6과 같이 표현될 수 있는
Figure 112019119008272-pat00216
(n은 자연수)개의 변수들을 가지는 이차식들의 시스템에서,
Figure 112019119008272-pat00217
개의 변수들(
Figure 112019119008272-pat00218
)과
Figure 112019119008272-pat00219
개의 변수들 (
Figure 112019119008272-pat00220
)에 대한 이차식들의 시스템(
Figure 112019119008272-pat00221
)이 있다고 가정한다.
[수학식 6]
Figure 112019119008272-pat00222
여기서,
Figure 112019119008272-pat00223
이고,
Figure 112019119008272-pat00224
Figure 112019119008272-pat00225
는 수학식 7과 같이 표현된다.
[수학식 7]
Figure 112019119008272-pat00226
이때, 각 열 벡터(
Figure 112019119008272-pat00227
)를 하나의 행렬의 원소로 간주했을 때,
Figure 112019119008272-pat00228
가 구조화된 행렬이 되도록 각 열 벡터(
Figure 112019119008272-pat00229
)가 선택되고,
Figure 112019119008272-pat00230
Figure 112019119008272-pat00231
와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
Figure 112019119008272-pat00232
)이 선택되면 원하는 이차식들의 시스템이 생성된다.
여기서, 구조화된 행렬이란 기존의 구조화된 행렬 또는 역행렬을 구하거나 구조화된 행렬을 계수 행렬로 갖는 일차식의 시스템의 해를 찾는 복잡도가
Figure 112019119008272-pat00233
보다 작거나 같은 경우를 포함한다. 이때, 일차식의 시스템의 계수 행렬의 크기는
Figure 112019119008272-pat00234
이다.
2-1.
Figure 112019119008272-pat00235
Figure 112019119008272-pat00236
는 블록 순환 행렬(block circulant matrix(BC))이다.
Figure 112019119008272-pat00237
가 짝수일 때, 수학식 8과 수학식 9와 같이
Figure 112019119008272-pat00238
Figure 112019119008272-pat00239
각각이 블록 순환 행렬이 되도록,
Figure 112019119008272-pat00240
Figure 112019119008272-pat00241
각각이 선택된다.
[수학식 8]
Figure 112019119008272-pat00242
여기서,
Figure 112019119008272-pat00243
각각은 벡터들의 순환 행렬이고,
Figure 112019119008272-pat00244
는 벡터들의 블록 순환 행렬이다.
[수학식 9]
Figure 112019119008272-pat00245
여기서,
Figure 112019119008272-pat00246
는 블록 순환 행렬이다.
2-2. 주어진 블록 순환 행렬(
Figure 112019119008272-pat00247
)의 역행렬(
Figure 112019119008272-pat00248
)을 효율적으로 계산하는 방법
주어진 블록 순환 행렬(
Figure 112019119008272-pat00249
)의 블록 행렬식(
Figure 112019119008272-pat00250
)이 구해진다.
Figure 112019119008272-pat00251
모두가 순환 행렬이므로,
Figure 112019119008272-pat00252
도 역시 순환 행렬이다.
먼저,
Figure 112019119008272-pat00253
의 역행렬(
Figure 112019119008272-pat00254
)이 구해지고,
Figure 112019119008272-pat00255
의 역행렬(
Figure 112019119008272-pat00256
)은
Figure 112019119008272-pat00257
을 계산해서 구해진다. 이때,
Figure 112019119008272-pat00258
의 역행렬을 구하기 위해 확장 유클리드 알고리즘(Extended Euclidean Algorithm) 등의 효율적인 알고리즘이 이용된다.
3. 구조화된 행렬을 이용한 랜덤화(randomization)
부채널(side-channel) 공격 등 다양한 공격들에 대응하기 위한 메시지 랜덤화나 비밀키 랜덤화의 실시 예들은 아래와 같다.
(i) 행렬과 메시지(또는 비밀키)를 더하여 제1연산 결과를 생성한 후, 상기 제1연산 결과로부터 상기 행렬을 빼기, 또는
(ⅱ) 행렬과 메시지(또는 비밀키)를 곱하여 제2연산 결과를 생성한 후, 상기 제2연산 결과에 상기 행렬의 역행렬을 곱하기.
이때, 행렬이 구조화된 행렬로 선택되면, 계산 효율이 높아지는 효과가 있다.
3-1. 순환 행렬 또는 블록 순환 행렬을 이용한 랜덤화(randomization)
부채널(side-channel) 공격 등 다양한 공격들에 대응하기 위한 메시지 랜덤화나 비밀키 랜덤화의 실시 예들은 아래와 같다.
(i) 행렬과 메시지(또는 비밀키)를 더하여 제1연산 결과를 생성한 후, 상기 제1연산 결과로부터 상기 행렬을 빼기, 또는
(ⅱ) 행렬과 메시지(또는 비밀키)를 곱하여 제2연산 결과를 생성한 후, 상기 제2연산 결과에 상기 행렬의 역행렬을 곱하기.
이때, 랜덤 행렬이 순환 행렬 또는 블록 순환 행렬로 선택되면, 계산 효율이 높아지는 효과가 있다.
3-2.
Figure 112019119008272-pat00259
가 원소의 개수가 q개인 유한체(finite field)일 때,
Figure 112019119008272-pat00260
의 벡터 (
Figure 112019119008272-pat00261
)와 비밀키(
Figure 112019119008272-pat00262
)와의 곱(
Figure 112019119008272-pat00263
)에서 비밀키(
Figure 112019119008272-pat00264
)의 랜덤화를 위해, 수학식 10과 같이 랜덤 행렬(
Figure 112019119008272-pat00265
)이 순환 행렬로 선택되면, 계산 효율은 높아지는 효과가 있다.
[수학식 10]
Figure 112020027853775-pat00842
또는
Figure 112020027853775-pat00843
여기서,
Figure 112020027853775-pat00268
이고,
Figure 112020027853775-pat00844
은 메시지(M)에 대한 해시 값으로
Figure 112020027853775-pat00845
으로 표현된다.
본 발명에 따른 다변수 이차식 기반 전자(또는 디지털) 서명 알고리즘은 키 생성 알고리즘, 서명 생성 알고리즘, 및 서명 검증 알고리즘을 포함한다. 상기 다변수 이차식 기반 전자 서명 알고리즘은 전자 장치(또는 디지털 서명 장치)에 의해 실행되거나 상기 전자 장치에서 실행되는 컴퓨터 프로그램에 의해 실행된다.
하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램은 구조화된 행렬에 기초한 전자 서명 알고리즘(인증(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)을 수행한다.
보안 파라미터(λ)에 대해, 공개키(PK)와 비밀키(SK)의 쌍(
Figure 112019119008272-pat00271
)은 다음과 같이 생성된다. 보안 파라미터(λ)는 비도(security level)를 나타낸다.
1. 한 개의 아핀 맵(
Figure 112019119008272-pat00272
)이 랜덤하게 선택된다(S110). 아핀 맵(
Figure 112019119008272-pat00273
)이 역변환 가능(invertable)하지 않다면, 새로운 아핀 맵이 랜덤하게 다시 선택된다. 여기서,
Figure 112019119008272-pat00274
이고,
Figure 112019119008272-pat00275
이다. 아핀 맵들과 비밀 센트럴 맵 (
Figure 112019119008272-pat00276
)은 키 생성기(110)가 액세스할 수 있는 장치(예컨대, 데이터 저장장치)에 안전하게 저장되어 있다고 가정한다.
2. 비밀 센트럴 맵(
Figure 112019119008272-pat00277
)은 아래와 같이 선택된다(S120).
구조화된 행렬을 이용한 다변수 이차식 기반 전자서명 알고리즘으로의 응용을 위해, 본 발명에 따른 새로운 센트럴 맵의 구성은 레이어(layer)가 한(1) 개인 경우 2개의 인덱스 집합들(
Figure 112019119008272-pat00278
)이 필요하다.
Figure 112019119008272-pat00279
이고,
Figure 112019119008272-pat00280
Figure 112019119008272-pat00281
각각은 자연수이다.
Figure 112019119008272-pat00282
Figure 112019119008272-pat00283
여기서,
Figure 112019119008272-pat00284
이고,
Figure 112019119008272-pat00285
이다.
Figure 112019119008272-pat00286
는 비니거(Vinegar) 변수들을 정의하기 위한 인덱스 집합이고,
Figure 112019119008272-pat00287
는 오일(Oil) 변수들을 정의하기 위한 인덱스 집합이다.
비밀 센트럴 맵(
Figure 112019119008272-pat00288
),
Figure 112019119008272-pat00289
개의 방정식들과
Figure 112019119008272-pat00290
개의 변수들을 갖는 다변수 이차식들의 시스템에서,
Figure 112019119008272-pat00291
에 대해
Figure 112019119008272-pat00292
는 수학식 11과 같이 정의된다.
[수학식 11]
Figure 112019119008272-pat00293
Figure 112019119008272-pat00294
에 대해
Figure 112019119008272-pat00295
는 수학식 12와 같이 정의되고,
[수학식 12]
Figure 112019119008272-pat00296
여기서,
Figure 112019119008272-pat00297
는 순환 행렬 또는 순환 행렬의 부분 행렬이다.
Figure 112019119008272-pat00298
에 대해
Figure 112019119008272-pat00299
는 수학식 13과 같이 정의되고,
[수학식 13]
Figure 112019119008272-pat00300
여기서,
Figure 112019119008272-pat00301
는 수학식 9의
Figure 112019119008272-pat00302
와 같고,
Figure 112019119008272-pat00303
는 수학식 8의
Figure 112019119008272-pat00304
와 같다.
Figure 112019119008272-pat00305
Figure 112019119008272-pat00306
상수항(
Figure 112019119008272-pat00307
)는 유한체(
Figure 112019119008272-pat00308
)에서 랜덤하게 선택된다.
3. 공개키(
Figure 112019119008272-pat00309
)가 계산된다(S130). 여기서, 원(circle)은 합성 (composition)을 의미하고, 공개키 (
Figure 112019119008272-pat00310
)는 서명 검증을 위해 필요하고, 비밀키(
Figure 112019119008272-pat00311
=
Figure 112019119008272-pat00312
)는 서명 검증을 위해 필요하다.
서명 생성(signature generation) 알고리즘
서명 생성기(120)는 서명 생성(signature generation) 알고리즘, 즉 본 발명에 따른 새로운 센트럴 맵을 역변환하는 방법(how to invert the central map)을 수행하기 위해 단계들(S140 내지 S160)을 수행한다.
서명 생성기(120)는 아핀 맵 (
Figure 112020027853775-pat00313
), 비밀 센트럴 맵(
Figure 112020027853775-pat00314
), 및 메시지(M)를 수신한다. 메시지(M)는 원문(plaintext) 그대로 통신 매체(예컨대, 유선 또는 무선)를 통해 전송될 메시지를 의미한다.
1. 메시지(M)에 대해 해시(hash) 메시지(
Figure 112020027853775-pat00846
)가 계산된다(S140). 여기서,
Figure 112020027853775-pat00315
는 충돌 방지 해시 함수(collision resistant hash function)이다.
Figure 112020027853775-pat00847
이 계산된다.
2.
Figure 112019119008272-pat00317
가 주어질 때,
Figure 112019119008272-pat00318
, 즉
Figure 112019119008272-pat00319
의 해 (solution)
Figure 112019119008272-pat00320
를 찾는 과정들은 아래와 같다(S150).
랜덤 값들의 벡터,
Figure 112019119008272-pat00321
를 선택한다. 벡터(
Figure 112019119008272-pat00322
)를
Figure 112019119008272-pat00323
에 대한
Figure 112019119008272-pat00324
에 대입(plug)하여,
Figure 112019119008272-pat00325
순환 행렬의
Figure 112019119008272-pat00326
부분 행렬과 벡터(
Figure 112019119008272-pat00327
)의 전치 행렬(transpose)의 곱을 계산하고, 그 결과로
Figure 112019119008272-pat00328
를 얻는다. 이때,
Figure 112019119008272-pat00329
부분 행렬은 수학식 3의
Figure 112019119008272-pat00330
이다.
벡터(
Figure 112019119008272-pat00331
)를
Figure 112019119008272-pat00332
에 대한
Figure 112019119008272-pat00333
에 대입하여
Figure 112019119008272-pat00334
개의 변수들
Figure 112019119008272-pat00335
을 갖는
Figure 112019119008272-pat00336
개의 일차 방정식들의 시스템을 구하면, 계수 행렬의 형태는 블록 순환 행렬(
Figure 112019119008272-pat00337
)로 된다.
여기서, 블록 순환 행렬(
Figure 112019119008272-pat00338
)은 벡터(
Figure 112019119008272-pat00339
)를 수학식 13의
Figure 112019119008272-pat00340
로 구성된 행렬에 대입해서 얻어진 행렬에
Figure 112019119008272-pat00341
를 곱해서 얻어진 행렬이다.
앞에서 설명한 2-2에서 정의한 방법으로 구한 역행렬(
Figure 112019119008272-pat00342
)에
Figure 112019119008272-pat00343
의 전치 행렬(transpose)을 곱하여 해
Figure 112019119008272-pat00344
를 구한다. 그러면, 벡터
Figure 112019119008272-pat00345
Figure 112019119008272-pat00346
의 해이다.
만약, 블록 순환 행렬(
Figure 112019119008272-pat00347
)의 역행렬(
Figure 112019119008272-pat00348
)이 존재하지 않으면, 서명 생성 알고리즘의 처음으로 돌아가 새로운 랜덤 값들의 벡터(
Figure 112019119008272-pat00349
)를 선택하여 앞에서 설명한 방법들(또는 과정들)을 다시 수행한다.
3.
Figure 112020027853775-pat00350
가 계산된다(S160).
Figure 112020027853775-pat00351
는 메시지(M)의 서명(여기서, 서명은 디지털 서명(digital signature) 또는 전자 서명(electronic signature)을 의미함)이다.
서명 검증 또는 검증 알고리즘
서명 검증기(130)는 서명 검증 또는 검증 알고리즘을 수행하기 위해 단계 (S170)을 수행한다. 서명 검증기(130)는 서명 생성기(120)로부터 공개키(
Figure 112020027853775-pat00352
)와 공개키(
Figure 112020027853775-pat00353
)를 포함하는 인증서 중에서 어느 하나, 메시지(M), 및 서명(
Figure 112020027853775-pat00354
)을 수신하고, 즉 메시지(M)에 대한 서명(
Figure 112020027853775-pat00355
)과 공개키(
Figure 112020027853775-pat00356
)가 주어지면,
Figure 112020027853775-pat00848
인지가 확인된다.
Figure 112020027853775-pat00849
이면 서명(
Figure 112020027853775-pat00359
)이 수락되고, 그렇지 않으면 서명(
Figure 112020027853775-pat00360
)은 거절된다.
도 3은 본 발명의 실시 예들에 따른 레이어가 2개인 다변수 이차식 기반 전자 서명기의 블록도이고, 도 4는 도 3에 도시된 다변수 이차식 기반 전자 서명기의 동작을 설명하기 위한 플로우 차트이다.
도 3의 전자 서명기(200)는 2개의 레이어들(layers)을 갖는 비밀 센트럴 맵을 구성하고 처리한다.
키 생성기(210)는 공개키를 계산하는 키 생성 알고리즘을 수행하기 위해 단계들(S210~S230)을 수행한다.
키생성 알고리즘:
보안 파라미터(λ)에 대해, 공개키(PK)와 비밀키(SK)의 쌍(
Figure 112019119008272-pat00361
)이 다음과 같이 생성된다. 보안 파라미터(λ)는 비도를 나타낸다.
1. 두 개의 아핀 맵들(
Figure 112019119008272-pat00362
Figure 112019119008272-pat00363
)이 랜덤하게 선택된다(S210).
Figure 112019119008272-pat00364
Figure 112019119008272-pat00365
가 역변환가능(invertable)하지 않다면, 두 개의 (새로운) 아핀 맵들(
Figure 112019119008272-pat00366
Figure 112019119008272-pat00367
)이 랜덤하게 다시 선택된다. 여기서,
Figure 112019119008272-pat00368
Figure 112019119008272-pat00369
이고,
Figure 112019119008272-pat00370
Figure 112019119008272-pat00371
이다. 아핀 맵들(
Figure 112019119008272-pat00372
Figure 112019119008272-pat00373
)을 포함하는 아핀 맵들과 비밀 센트럴 맵 (
Figure 112019119008272-pat00374
)은 키 생성기(210)에 의해 액세스 가능한 장치에 안전하게 저장될 수 있다.
2. 비밀 센트럴 맵(
Figure 112019119008272-pat00375
)을 아래와 같이 선택한다 (S220).
구조화된 행렬을 이용한 다변수 이차식 기반 전자서명 알고리즘으로의 응용을 위해, 본 발명에 따른 새로운 센트럴 맵의 구성은 레이어들이 두개인 경우 3개의 인덱스 집합들(
Figure 112019119008272-pat00376
,
Figure 112019119008272-pat00377
, 및
Figure 112019119008272-pat00378
)이 필요하다.
Figure 112019119008272-pat00379
,
Figure 112019119008272-pat00380
,
Figure 112019119008272-pat00381
여기서,
Figure 112019119008272-pat00382
이고,
Figure 112019119008272-pat00383
에 대해
Figure 112019119008272-pat00384
이다.
Figure 112019119008272-pat00385
는 비니거 변수들을 정의하기 위한 인덱스 집합이고,
Figure 112019119008272-pat00386
Figure 112019119008272-pat00387
는 오일 변수들을 정의하기 위한 인덱스 집합들이다.
비밀 센트럴 맵(
Figure 112019119008272-pat00388
) ,
Figure 112019119008272-pat00389
(여기서,
Figure 112019119008272-pat00390
Figure 112019119008272-pat00391
각각은 자연수)개의 방정식들과
Figure 112019119008272-pat00392
개의 변수들을 갖는 이차식들의 시스템에서,
Figure 112019119008272-pat00393
에 대해
Figure 112019119008272-pat00394
는 수학식 14와 같이 정의된다.
[수학식 14]
Figure 112019119008272-pat00395
여기서,
Figure 112019119008272-pat00396
는 수학식 2와 같이 정의되고,
Figure 112019119008272-pat00397
는 수학식 4와 같이 정의된다. 이때, 앞에서 설명한 1-2에서 처럼
Figure 112019119008272-pat00398
Figure 112019119008272-pat00399
(
Figure 112019119008272-pat00400
, 여기서
Figure 112019119008272-pat00401
은 자연수)으로 대체되면, 수학식 3은 수학식 15로 되고, 수학식 6은 수학식 16으로 되고, 수학식 8과 수학식 9는 수학식 17로 된다.
[수학식 15]
Figure 112019119008272-pat00402
여기서,
Figure 112019119008272-pat00403
는 순환 행렬 또는 순환 행렬의 부분 행렬이고,
Figure 112019119008272-pat00404
에 대해
Figure 112019119008272-pat00405
는 수학식 16과 같다.
[수학식 16]
Figure 112019119008272-pat00406
여기서,
Figure 112019119008272-pat00407
이고,
Figure 112019119008272-pat00408
이고,
Figure 112019119008272-pat00409
이다.
여기서,
Figure 112019119008272-pat00410
은 각각이 크기(
Figure 112019119008272-pat00411
)를 갖는 열 벡터들(
Figure 112019119008272-pat00412
)을 원소로 하는 블록 순환 행렬이고,
Figure 112019119008272-pat00413
은 블록 순환 행렬이다.
벡터들의 블록 순환 행렬(
Figure 112019119008272-pat00414
)과 블록 순환 행렬(
Figure 112019119008272-pat00415
)은 수학식 17과 같다.
[수학식 17]
Figure 112019119008272-pat00416
여기서,
Figure 112019119008272-pat00417
은 벡터들의 순환 행렬이고,
Figure 112019119008272-pat00418
는 벡터들의 블록 순환 행렬이다.
마지막으로, 상수항(
Figure 112019119008272-pat00419
)은 유한체(
Figure 112019119008272-pat00420
)에서 랜덤하게 선택된다.
Figure 112019119008272-pat00421
에 대해
Figure 112019119008272-pat00422
는 수학식 18과 같이 정의된다.
[수학식 18]
Figure 112019119008272-pat00423
여기서,
Figure 112019119008272-pat00424
는 수학식 2와 같이 정의된다. 이때, 앞에서 설명한 1-1의
Figure 112019119008272-pat00425
Figure 112019119008272-pat00426
으로 대체되고,
Figure 112019119008272-pat00427
Figure 112019119008272-pat00428
으로 대체되면,
Figure 112019119008272-pat00429
는 수학식 19와 같다.
[수학식 19]
Figure 112019119008272-pat00430
Figure 112019119008272-pat00431
는 수학식 4와 같이 정의된다. 이때, 1-2에서 설명한
Figure 112019119008272-pat00432
Figure 112019119008272-pat00433
으로 대체되고,
Figure 112019119008272-pat00434
Figure 112019119008272-pat00435
(
Figure 112019119008272-pat00436
, 여기서
Figure 112019119008272-pat00437
는 자연수)로 대체되면, 수학식 3은 수학식 20으로 되고, 수학식 6은 수학식 21로 되고, 수학식 8과 수학식 9는 수학식 22로 된다.
[수학식 20]
Figure 112019119008272-pat00438
여기서,
Figure 112019119008272-pat00439
는 순환 행렬 또는 순환 행렬의 부분 행렬이고,
Figure 112019119008272-pat00440
에 대해
Figure 112019119008272-pat00441
는 수학식 21과 같이 정의된다.
[수학식 21]
Figure 112019119008272-pat00442
여기서,
Figure 112019119008272-pat00443
이고,
Figure 112019119008272-pat00444
이고,
Figure 112019119008272-pat00445
이다.
여기서,
Figure 112019119008272-pat00446
는 크기(
Figure 112019119008272-pat00447
)를 갖는 열 벡터(
Figure 112019119008272-pat00448
)를 원소로 하는 블록 순환 행렬이고,
Figure 112019119008272-pat00449
는 블록 순환 행렬이다.
벡터들의 블록 순환 행렬(
Figure 112019119008272-pat00450
)과 블록 순환 행렬
Figure 112019119008272-pat00451
은 수학식 22과 같다.
[수학식 22]
Figure 112019119008272-pat00452
여기서,
Figure 112019119008272-pat00453
는 각각 크기(
Figure 112019119008272-pat00454
)를 가지는 열 벡터들이고,
Figure 112019119008272-pat00455
각각은 벡터들의 순환 행렬이고,
Figure 112019119008272-pat00456
은 벡터들의 블록 순환 행렬이다.
마지막으로, 상수항(
Figure 112019119008272-pat00457
)은 유한체(
Figure 112019119008272-pat00458
)에서 랜덤하게 선택된다.
3. 공개키(
Figure 112019119008272-pat00459
)가 계산된다(S230).
서명 생성 알고리즘
서명 생성기(220)는 서명 생성 알고리즘, 즉 본 발명에 따른 새로운 센트럴 맵을 역변환하는 방법을 수행하기 위해 단계들(S240 내지 S260)을 수행한다. 서명 생성기(220)는 아핀 맵들(
Figure 112020027853775-pat00460
Figure 112020027853775-pat00461
), 비밀 센트럴 맵(
Figure 112020027853775-pat00462
), 및 메시지(M)을 수신한다.
1. 메시지(M)에 대해 해시 메시지(
Figure 112020027853775-pat00850
)가 계산된다(S240).
여기서,
Figure 112019119008272-pat00463
는 충돌 방지 해시 함수(collision resistant hash function)이다.
2.
Figure 112020027853775-pat00851
을 계산한다(S240). 랜덤 행렬 (
Figure 112020027853775-pat00465
), 즉 순환 행렬이 주어지면(또는 제공되면), 3-2에서 설명한 바와 같이,
Figure 112020027853775-pat00852
는 수학식 10에 따라 계산된다.
3.
Figure 112019119008272-pat00467
가 주어질 때,
Figure 112019119008272-pat00468
, 즉
Figure 112019119008272-pat00469
의 해 (solutions)
Figure 112019119008272-pat00470
를 찾는 과정들은 아래와 같다(S250).
제1 레이어에서,
랜덤 벡터,
Figure 112019119008272-pat00471
Figure 112019119008272-pat00472
가 랜덤하게 선택된다.
벡터(
Figure 112019119008272-pat00473
)를
Figure 112019119008272-pat00474
에 대한 제1레이어(
Figure 112019119008272-pat00475
)에 대입(plug)하여
Figure 112019119008272-pat00476
순환 행렬의
Figure 112019119008272-pat00477
부분 행렬과 벡터
Figure 112019119008272-pat00478
의 전치 행렬의 곱을 계산하고 그 결과로서
Figure 112019119008272-pat00479
을 얻는다. 이때, 벡터(
Figure 112019119008272-pat00480
)를 대입한
Figure 112019119008272-pat00481
부분 행렬은
Figure 112019119008272-pat00482
이다.
벡터(
Figure 112019119008272-pat00483
)를
Figure 112019119008272-pat00484
에 대한
Figure 112019119008272-pat00485
에 대입하여
Figure 112019119008272-pat00486
개의 변수들을 갖는
Figure 112019119008272-pat00487
개의 방정식들의 일차 방정식들의 시스템을 얻는다. 이때, 일차 방정식들의 시스템의 계수 행렬은 블록 순환 행렬(
Figure 112019119008272-pat00488
)이 된다.
여기서, 블록 순환 행렬(
Figure 112019119008272-pat00489
)은 벡터(
Figure 112019119008272-pat00490
)를 수학식 16의
Figure 112019119008272-pat00491
로 구성된 행렬에 대입해서 얻어진 행렬에
Figure 112019119008272-pat00492
를 곱해서 얻어진 행렬이다.
앞에서 설명한 2-2에서 정의한 방법으로 구한 역행렬(
Figure 112019119008272-pat00493
)을
Figure 112019119008272-pat00494
의 전치 행렬에 곱하여 해 (
Figure 112019119008272-pat00495
)를 구한다.
제2 레이어에서,
벡터
Figure 112019119008272-pat00496
Figure 112019119008272-pat00497
에 대한 제2레이어(
Figure 112019119008272-pat00498
)에 대입하여,
Figure 112019119008272-pat00499
순환 행렬의
Figure 112019119008272-pat00500
부분 행렬과 벡터(
Figure 112019119008272-pat00501
)의 전치 행렬의 곱을 계산하여
Figure 112019119008272-pat00502
를 얻는다.
이때, 벡터(
Figure 112019119008272-pat00503
)를 대입한
Figure 112019119008272-pat00504
부분 행렬은
Figure 112019119008272-pat00505
이다.
벡터(
Figure 112019119008272-pat00506
)를
Figure 112019119008272-pat00507
에 대한
Figure 112019119008272-pat00508
에 대입하여,
Figure 112019119008272-pat00509
개의 변수들을 갖는
Figure 112019119008272-pat00510
개의 방정식들의 일차방정식의 시스템을 구한다. 이때, 일차 방정식들의 시스템의 계수 행렬은 블록 순환 행렬(
Figure 112019119008272-pat00511
)이 된다.
여기서, 블록 순환 행렬(
Figure 112019119008272-pat00512
)은 벡터(
Figure 112019119008272-pat00513
)를 수학식 21의
Figure 112019119008272-pat00514
로 구성된 행렬에 대입해서 얻어진 행렬에
Figure 112019119008272-pat00515
를 곱해서 얻어진 행렬이다.
앞에서 설명한 2-2에서 정의한 방법으로 구한 역행렬(
Figure 112019119008272-pat00516
)을
Figure 112019119008272-pat00517
의 전치 행렬에 곱해 해(
Figure 112019119008272-pat00518
)를 구한다. 그러면, 벡터
Figure 112019119008272-pat00519
Figure 112019119008272-pat00520
의 해이다.
만약, 블록 순환 행렬(
Figure 112019119008272-pat00521
)의 역행렬(
Figure 112019119008272-pat00522
)이 존재하지 않거나 블록 순환 행렬(
Figure 112019119008272-pat00523
)의 역행렬(
Figure 112019119008272-pat00524
)이 존재하지 않으면, 전자 서명 알고리즘의 처음으로 돌아가 새로운 랜덤 값들의 벡터(
Figure 112019119008272-pat00525
)를 선택하여 앞에서 설명한 방법들(또는 과정들)을 다시 수행한다.
4.
Figure 112020027853775-pat00526
가 계산된다(S260).
Figure 112020027853775-pat00527
는 메시지(M)의 서명(여기서, 서명은 디지털 서명 또는 전자 서명)이다.
서명 검증 또는 검증 단계:
서명 검증기(230)는 메시지(M), 서명(
Figure 112020027853775-pat00528
), 및 공개키(
Figure 112020027853775-pat00529
)를 수신하고, 즉 메시지(M)에 대한 서명(
Figure 112020027853775-pat00530
)과 공개키(
Figure 112020027853775-pat00531
)가 주어지면,
Figure 112020027853775-pat00853
인지가 확인한다(S270).
Figure 112020027853775-pat00854
이면 서명(
Figure 112020027853775-pat00534
)이 수락되고, 그렇지 않으면 서명(
Figure 112020027853775-pat00535
)은 거절된다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 200: 전자 서명기
110, 210: 키 생성기
120, 220: 서명 생성기
130, 230: 서명 검증기

Claims (21)

  1. 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법에 있어서,
    아핀 맵(
    Figure 112019119008272-pat00536
    )과 맵(
    Figure 112019119008272-pat00537
    )을 획득하는 단계; 및
    상기 아핀 맵과 상기 맵을 이용하여 공개키(
    Figure 112019119008272-pat00538
    )와 비밀키
    Figure 112019119008272-pat00539
    를 생성하는 단계를 포함하고,
    상기 맵(
    Figure 112019119008272-pat00540
    )은
    Figure 112019119008272-pat00541
    개의 다변수 이차식들의 시스템 (
    Figure 112019119008272-pat00542
    )으로 표현되고,
    유한체(
    Figure 112019119008272-pat00543
    )에서 정의된
    Figure 112019119008272-pat00544
    개의 일차식들(
    Figure 112019119008272-pat00545
    )과
    Figure 112019119008272-pat00546
    개의 변수들 (
    Figure 112019119008272-pat00547
    )이 주어졌을 때, 상기
    Figure 112019119008272-pat00548
    개의 다변수 이차식들의 시스템 (
    Figure 112019119008272-pat00549
    )은 아래와 같이 표현되고,
    Figure 112019119008272-pat00550

    여기서,
    Figure 112019119008272-pat00551
    이고,
    Figure 112019119008272-pat00552
    이고,
    Figure 112019119008272-pat00553
    는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
    Figure 112019119008272-pat00554
    이고,
    Figure 112019119008272-pat00555

    Figure 112019119008272-pat00556

    Figure 112019119008272-pat00557
    이고,
    Figure 112019119008272-pat00558
    이고,
    Figure 112019119008272-pat00559
    는 비니거(Vinegar) 변수들을 정의하기 위한 인덱스 집합이고,
    Figure 112019119008272-pat00560
    는 오일(Oil) 변수들을 정의하기 위한 인덱스 집합인 공개키와 비밀키를 생성하는 방법.
  2. 제1항에 있어서,
    상기
    Figure 112019119008272-pat00561
    개의 다변수 이차식들의 시스템(
    Figure 112019119008272-pat00562
    )이 아래와 같이 표현될 때,
    Figure 112019119008272-pat00563

    여기서,
    Figure 112019119008272-pat00564
    는 순환 행렬 또는 순환 행렬의 부분 행렬인 공개키와 비밀키를 생성하는 방법.
  3. 제1항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
  4. 제1항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
    상기 아핀 맵(
    Figure 112020027853775-pat00565
    ), 상기 맵(
    Figure 112020027853775-pat00566
    ), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
    Figure 112020027853775-pat00567
    )을 생성하는 서명 생성기; 및
    상기 메시지(M), 상기 전자 서명(
    Figure 112020027853775-pat00568
    ), 및 상기 공개키(
    Figure 112020027853775-pat00569
    )를 이용하여 상기 전자 서명(
    Figure 112020027853775-pat00570
    )을 검증하는 서명 검증기를 더 포함하고,
    상기 서명 생성기는,
    상기 메시지(M)에 대한 해시 메시지(
    Figure 112020027853775-pat00855
    )를 계산하고,
    Figure 112020027853775-pat00572
    가 주어질 때,
    Figure 112020027853775-pat00573
    의 해(
    Figure 112020027853775-pat00574
    )를
    Figure 112020027853775-pat00575
    을 이용하여 계산하고,
    Figure 112020027853775-pat00576
    를 계산하고,
    상기 서명 검증기는
    Figure 112020027853775-pat00856
    인지를 판단하고 판단 결과에 따라 상기 전자 서명(
    Figure 112020027853775-pat00578
    )을 검증하고,
    Figure 112020027853775-pat00579

    Figure 112020027853775-pat00857
    인 전자 서명기.
  5. 키 생성기를 이용하여 공개키와 비밀키를 생성하는 방법에 있어서,
    아핀 맵(
    Figure 112019119008272-pat00581
    )과 맵(
    Figure 112019119008272-pat00582
    )을 획득하는 단계; 및
    상기 아핀 맵과 상기 맵을 이용하여 공개키(
    Figure 112019119008272-pat00583
    )와 비밀키
    Figure 112019119008272-pat00584
    를 생성하는 단계를 포함하고,
    상기 맵(
    Figure 112019119008272-pat00585
    )은
    Figure 112019119008272-pat00586
    개의 다변수 이차식들의 시스템 (
    Figure 112019119008272-pat00587
    )으로 표현되고,
    유한체(
    Figure 112019119008272-pat00588
    )에서 정의된
    Figure 112019119008272-pat00589
    개의 변수들(
    Figure 112019119008272-pat00590
    )과
    Figure 112019119008272-pat00591
    개의 변수들 (
    Figure 112019119008272-pat00592
    )이 주어졌을 때, 상기
    Figure 112019119008272-pat00593
    개의 다변수 이차식들의 시스템 (
    Figure 112019119008272-pat00594
    )은 아래와 같이 표현되고,
    Figure 112019119008272-pat00595

    여기서,
    Figure 112019119008272-pat00596
    이고,
    Figure 112019119008272-pat00597
    이고,
    Figure 112019119008272-pat00598
    이고,
    Figure 112019119008272-pat00599
    이고,
    각 열 벡터(
    Figure 112019119008272-pat00600
    )를 하나의 행렬의 원소로 간주했을 때,
    Figure 112019119008272-pat00601
    가 구조화된 행렬이 되도록 각 열 벡터(
    Figure 112019119008272-pat00602
    )가 선택되고,
    Figure 112019119008272-pat00603
    Figure 112019119008272-pat00604
    와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
    Figure 112019119008272-pat00605
    )이 선택되는 공개키와 비밀키를 생성하는 방법.
  6. 제5항에 있어서,
    Figure 112019119008272-pat00606
    가 짝수일 때,
    Figure 112019119008272-pat00607
    가 아래와 같이 표현될 때,
    Figure 112019119008272-pat00608
    는 벡터들의 블록 순환 행렬이고,
    Figure 112019119008272-pat00609

    Figure 112019119008272-pat00610
    각각은 크기(
    Figure 112019119008272-pat00611
    )를 가지는 열 벡터이고,
    Figure 112019119008272-pat00612
    각각은 벡터들의 순환 행렬이고,
    Figure 112019119008272-pat00613
    가 아래와 같이 표현될 때,
    Figure 112019119008272-pat00614
    는 블록 순환 행렬인,
    Figure 112019119008272-pat00615

    공개키와 비밀키를 생성하는 방법.
  7. 제5항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
  8. 제5항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
    상기 아핀 맵(
    Figure 112020027853775-pat00616
    ), 상기 맵(
    Figure 112020027853775-pat00617
    ), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
    Figure 112020027853775-pat00618
    )을 생성하는 서명 생성기; 및
    상기 메시지(M), 상기 전자 서명(
    Figure 112020027853775-pat00619
    ), 및 상기 공개키(
    Figure 112020027853775-pat00620
    )를 이용하여 상기 전자 서명(
    Figure 112020027853775-pat00621
    )을 검증하는 서명 검증기를 더 포함하고,
    상기 서명 생성기는,
    상기 메시지(M)에 대한 해시 메시지(
    Figure 112020027853775-pat00858
    )를 계산하고,
    Figure 112020027853775-pat00623
    가 주어질 때,
    Figure 112020027853775-pat00624
    의 해(
    Figure 112020027853775-pat00625
    )를
    Figure 112020027853775-pat00626
    을 이용하여 계산하고,
    Figure 112020027853775-pat00627
    를 계산하고,
    상기 서명 검증기는
    Figure 112020027853775-pat00859
    인지를 판단하고 판단 결과에 따라 상기 전자 서명(
    Figure 112020027853775-pat00629
    )을 검증하고,
    Figure 112020027853775-pat00630

    Figure 112020027853775-pat00860
    인 전자 서명기.
  9. 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법에 있어서,
    제1아핀 맵(
    Figure 112021106230111-pat00632
    ), 제2아핀 맵(
    Figure 112021106230111-pat00633
    )과 맵(
    Figure 112021106230111-pat00634
    )을 획득하는 단계; 및
    상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 (
    Figure 112021106230111-pat00635
    )와 비밀키(
    Figure 112021106230111-pat00636
    )를 생성하는 단계를 포함하고,
    상기 맵(
    Figure 112021106230111-pat00637
    )은
    Figure 112021106230111-pat00638
    개의 방정식들과
    Figure 112021106230111-pat00639
    개의 변수들을 갖는 다변수 이차식들의 시스템 (
    Figure 112021106230111-pat00640
    )으로 표현될 때,
    Figure 112021106230111-pat00641
    에 대해
    Figure 112021106230111-pat00642
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00643

    유한체(
    Figure 112021106230111-pat00644
    )에서 정의된
    Figure 112021106230111-pat00645
    개의 일차식들(
    Figure 112021106230111-pat00646
    )과
    Figure 112021106230111-pat00647
    개의 변수들 (
    Figure 112021106230111-pat00648
    )가 주어졌을 때,
    Figure 112021106230111-pat00649
    에 대해
    Figure 112021106230111-pat00650
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00881

    여기서,
    Figure 112021106230111-pat00652
    는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
    Figure 112021106230111-pat00653
    에 대해
    Figure 112021106230111-pat00654
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00655

    Figure 112021106230111-pat00656
    의 변수를 갖는 일차식들(
    Figure 112021106230111-pat00657
    )과
    Figure 112021106230111-pat00658
    개의 변수들이 주어졌을 때,
    Figure 112021106230111-pat00659
    에 대해
    Figure 112021106230111-pat00660
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00661

    여기서,
    Figure 112021106230111-pat00662
    는 구조화된 행렬 또는 구조화된 행렬의 부분 행렬이고,
    Figure 112021106230111-pat00663
    이고,
    Figure 112021106230111-pat00664
    이고,
    Figure 112021106230111-pat00665
    이고,
    Figure 112021106230111-pat00666
    이고,
    Figure 112021106230111-pat00667
    이고,
    Figure 112021106230111-pat00668
    ,
    Figure 112021106230111-pat00669
    ,
    Figure 112021106230111-pat00670

    여기서,
    Figure 112021106230111-pat00671
    이고, i = 1과 2에 대해
    Figure 112021106230111-pat00672
    이고,
    Figure 112021106230111-pat00673
    는 비니거 변수들을 정의하기 위한 인덱스 집합이고,
    Figure 112021106230111-pat00674
    Figure 112021106230111-pat00675
    는 오일 변수들을 정의하기 위한 인덱스 집합들인 공개키와 비밀키를 생성하는 방법.
  10. 제9항에 있어서,
    상기 맵(
    Figure 112021106230111-pat00676
    )이
    Figure 112021106230111-pat00677
    개의 방정식들과
    Figure 112021106230111-pat00678
    개의 변수들을 갖는 다변수 이차식들의 시스템(
    Figure 112021106230111-pat00679
    )으로 표현될 때,
    Figure 112021106230111-pat00680
    에 대해
    Figure 112021106230111-pat00681
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00682

    여기서,
    Figure 112021106230111-pat00683
    는 순환 행렬 또는 순환 행렬의 부분 행렬이고,
    Figure 112021106230111-pat00684
    에 대해
    Figure 112021106230111-pat00685
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00882

    Figure 112021106230111-pat00687
    에 대해
    Figure 112021106230111-pat00688
    는 아래와 같이 표현되고,
    Figure 112021106230111-pat00689

    여기서,
    Figure 112021106230111-pat00690
    는 순환 행렬 또는 순환 행렬의 부분 행렬인 공개키와 비밀키를 생성하는 방법.
  11. 제9항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
  12. 제9항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
    상기 제1아핀 맵(
    Figure 112020027853775-pat00691
    ), 상기 제2아핀 맵(
    Figure 112020027853775-pat00692
    ), 상기 맵(
    Figure 112020027853775-pat00693
    ), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
    Figure 112020027853775-pat00694
    )을 생성하는 서명 생성기; 및
    상기 메시지(M), 상기 전자 서명(
    Figure 112020027853775-pat00695
    ), 및 상기 공개키(
    Figure 112020027853775-pat00696
    )를 이용하여 상기 전자 서명(
    Figure 112020027853775-pat00697
    )을 검증하는 서명 검증기를 포함하고,
    상기 서명 생성기는,
    상기 메시지(M)에 대해 해시 메시지(
    Figure 112020027853775-pat00861
    )를 계산하고,
    Figure 112020027853775-pat00862
    을 계산하고,
    Figure 112020027853775-pat00699
    가 주어질 때, ,
    Figure 112020027853775-pat00700
    의 해 (
    Figure 112020027853775-pat00701
    )를
    Figure 112020027853775-pat00702
    을 이용하여 계산하고,
    Figure 112020027853775-pat00703
    를 계산하고,
    상기 서명 검증기는,
    Figure 112020027853775-pat00863
    인지를 판단하고 판단 결과에 따라 상기 전자 서명(
    Figure 112020027853775-pat00705
    )을 검증하고,
    Figure 112020027853775-pat00706
    인 전자 서명기.
  13. 제12항에 있어서, 상기 서명 생성기는,
    Figure 112020027853775-pat00707
    의 벡터(
    Figure 112020027853775-pat00708
    )와 상기 제1아핀 맵(
    Figure 112020027853775-pat00709
    )의 곱(
    Figure 112020027853775-pat00710
    )에서 상기 제1아핀 맵(
    Figure 112020027853775-pat00711
    )의 랜덤화를 위해 주어진 행렬(
    Figure 112020027853775-pat00712
    )이 순환 행렬일 때,
    Figure 112020027853775-pat00864
    을 아래의 수학식으로,
    Figure 112020027853775-pat00865
    계산하는 전자 서명기.
  14. 제12항에 있어서, 상기 서명 생성기는,
    Figure 112020027853775-pat00715
    의 벡터(
    Figure 112020027853775-pat00716
    )와 상기 제1아핀 맵(
    Figure 112020027853775-pat00717
    )의 곱(
    Figure 112020027853775-pat00718
    )에서 상기 제1아핀 맵(
    Figure 112020027853775-pat00719
    )의 랜덤화를 위해 주어진 행렬(
    Figure 112020027853775-pat00720
    )이 순환 행렬일 때,
    Figure 112020027853775-pat00866
    을 아래의 수학식으로,
    Figure 112020027853775-pat00867
    계산하는 전자 서명기.
  15. 키 생성기를 이용한 공개키와 비밀키를 생성하는 방법에 있어서,
    제1아핀 맵(
    Figure 112019119008272-pat00723
    ), 제2아핀 맵(
    Figure 112019119008272-pat00724
    )과 맵 (
    Figure 112019119008272-pat00725
    )을 획득하는 단계; 및
    상기 제1아핀 맵, 상기 제2아핀 맵, 및 상기 맵을 이용하여 공개키 (
    Figure 112019119008272-pat00726
    )와 비밀키(
    Figure 112019119008272-pat00727
    )를 생성하는 단계를 포함하고,
    상기 맵(
    Figure 112019119008272-pat00728
    )은
    Figure 112019119008272-pat00729
    개의 다변수 이차식들의 시스템 (
    Figure 112019119008272-pat00730
    )으로 표현되고,
    유한체(
    Figure 112019119008272-pat00731
    )에서 정의된
    Figure 112019119008272-pat00732
    개의 변수들(
    Figure 112019119008272-pat00733
    )과
    Figure 112019119008272-pat00734
    개의 변수들 (
    Figure 112019119008272-pat00735
    )이 주어졌을 때, 상기
    Figure 112019119008272-pat00736
    개의 다변수 이차식들의 시스템(
    Figure 112019119008272-pat00737
    )은 아래와 같이 표현되고,
    Figure 112019119008272-pat00738

    여기서,
    Figure 112019119008272-pat00739
    Figure 112019119008272-pat00740
    로 주어지고,
    Figure 112019119008272-pat00741
    이고,
    각 열 벡터(
    Figure 112019119008272-pat00742
    )를 하나의 행렬의 원소로 간주했을 때,
    Figure 112019119008272-pat00743
    가 구조화된 행렬이 되도록 각 열 벡터(
    Figure 112019119008272-pat00744
    )가 선택되고,
    Figure 112019119008272-pat00745
    Figure 112019119008272-pat00746
    와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
    Figure 112019119008272-pat00747
    )이 선택되고,
    Figure 112019119008272-pat00748
    에 대해
    Figure 112019119008272-pat00749
    는 아래와 같이 주어지고,
    Figure 112019119008272-pat00750

    여기서,
    Figure 112019119008272-pat00751
    Figure 112019119008272-pat00752
    로 주어지고,
    Figure 112019119008272-pat00753
    이고,
    각 열 벡터(
    Figure 112019119008272-pat00754
    )를 하나의 행렬의 원소로 간주했을 때,
    Figure 112019119008272-pat00755
    가 구조화된 행렬이 되도록 각 열 벡터(
    Figure 112019119008272-pat00756
    )가 선택되고,
    Figure 112019119008272-pat00757
    Figure 112019119008272-pat00758
    와 동일한 형태의 구조화된 행렬이 되도록 원소 값들(
    Figure 112019119008272-pat00759
    )이 선택되고,
    Figure 112019119008272-pat00760
    이고,
    Figure 112019119008272-pat00761
    이고,
    Figure 112019119008272-pat00762
    이고,
    Figure 112019119008272-pat00763
    인 공개키와 비밀키를 생성하는 방법.
  16. 제15항에 있어서,
    Figure 112019119008272-pat00764
    Figure 112019119008272-pat00765
    로 주어질 때,
    Figure 112019119008272-pat00766
    에 대해
    Figure 112019119008272-pat00767
    는 아래와 같이 표현되고,
    Figure 112019119008272-pat00768

    여기서,
    Figure 112019119008272-pat00769
    이고,
    Figure 112019119008272-pat00770
    각각은 크기(
    Figure 112019119008272-pat00771
    )를 가지는 열 벡터이고,
    Figure 112019119008272-pat00772
    각각은 벡터들의 순환 행렬이고,
    Figure 112019119008272-pat00773
    는 벡터들의 블록 순환 행렬이고,
    Figure 112019119008272-pat00774

    Figure 112019119008272-pat00775
    은 블록 순환 행렬이고,
    Figure 112019119008272-pat00776
    에 대해
    Figure 112019119008272-pat00777
    은 아래와 같이 표현되고,
    Figure 112019119008272-pat00778

    여기서,
    Figure 112019119008272-pat00779

    Figure 112019119008272-pat00780
    각각은 크기(
    Figure 112019119008272-pat00781
    )를 가지는 열 벡터이고,
    Figure 112019119008272-pat00782
    각각은 벡터들의 순환 행렬이고,
    Figure 112019119008272-pat00783
    는 벡터들의 블록 순환 행렬이고,
    Figure 112019119008272-pat00784

    Figure 112019119008272-pat00785
    은 블록 순환 행렬이고,
    Figure 112019119008272-pat00786
    인 공개키와 비밀키를 생성하는 방법.
  17. 제16항에 있어서,
    상기 유한체에서 정의된
    Figure 112019119008272-pat00787
    개의 일차식들(
    Figure 112019119008272-pat00788
    )과
    Figure 112019119008272-pat00789
    개의 변수들 (
    Figure 112019119008272-pat00790
    )가 주어졌을 때
    Figure 112019119008272-pat00791
    에 대해
    Figure 112019119008272-pat00792
    는 아래와 같이 표현되고,
    Figure 112019119008272-pat00793

    여기서,
    Figure 112019119008272-pat00794
    는 순환 행렬 또는 순환 행렬의 부분 행렬이고,
    Figure 112019119008272-pat00795
    의 변수를 갖는 일차식들 (
    Figure 112019119008272-pat00796
    )과
    Figure 112019119008272-pat00797
    개의 변수들이 주어졌을 때,
    Figure 112019119008272-pat00798
    에 대해
    Figure 112019119008272-pat00799
    는 아래와 같이 표현되고,
    Figure 112019119008272-pat00800

    여기서,
    Figure 112019119008272-pat00801
    는 순환 행렬 또는 순환 행렬의 부분 행렬이고,
    Figure 112019119008272-pat00802
    에 대해
    Figure 112019119008272-pat00803
    는 아래와 같이,
    Figure 112019119008272-pat00804
    표현되고,
    Figure 112019119008272-pat00805
    인 공개키와 비밀키를 생성하는 방법.
  18. 제15항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하기 위해 하드웨어와 결합되어 저장 매체에 저장된 컴퓨터 프로그램.
  19. 제15항에 기재된 공개키와 비밀키를 생성하는 방법을 수행하는 상기 키 생성기;
    상기 제1아핀 맵(
    Figure 112020027853775-pat00806
    ), 상기 제2아핀 맵(
    Figure 112020027853775-pat00807
    ), 상기 맵(
    Figure 112020027853775-pat00808
    ), 및 메시지(M)를 이용하여 상기 메시지(M)의 전자 서명(
    Figure 112020027853775-pat00809
    )을 생성하는 서명 생성기; 및
    상기 메시지(M), 상기 전자 서명(
    Figure 112020027853775-pat00810
    ), 및 상기 공개키(
    Figure 112020027853775-pat00811
    )를 이용하여 상기 전자 서명(
    Figure 112020027853775-pat00812
    )을 검증하는 서명 검증기를 포함하고,
    상기 서명 생성기는,
    상기 메시지(M)에 대해 해시 메시지(
    Figure 112020027853775-pat00868
    )를 계산하고,
    Figure 112020027853775-pat00869
    을 계산하고,
    Figure 112020027853775-pat00814
    가 주어질 때, ,
    Figure 112020027853775-pat00815
    의 해 (
    Figure 112020027853775-pat00816
    )를
    Figure 112020027853775-pat00817
    을 이용하여 계산하고,
    Figure 112020027853775-pat00818
    를 계산하고,
    상기 서명 검증기는,
    Figure 112020027853775-pat00870
    인지를 판단하고 판단 결과에 따라 상기 전자 서명(
    Figure 112020027853775-pat00820
    )을 검증하고,
    Figure 112020027853775-pat00821
    인 전자 서명기.
  20. 제19항에 있어서, 상기 서명 생성기는,
    Figure 112020027853775-pat00822
    의 벡터(
    Figure 112020027853775-pat00823
    )와 상기 제1아핀 맵(
    Figure 112020027853775-pat00824
    )과의 곱(
    Figure 112020027853775-pat00825
    )에서 상기 제1아핀 맵(
    Figure 112020027853775-pat00826
    )의 랜덤화를 위해 주어진 행렬(
    Figure 112020027853775-pat00827
    )이 순환 행렬일 때,
    Figure 112020027853775-pat00871
    을 아래의 수학식으로,
    Figure 112020027853775-pat00872
    계산하는 전자 서명기.
  21. 제19항에 있어서, 상기 서명 생성기는,
    Figure 112020027853775-pat00830
    의 벡터(
    Figure 112020027853775-pat00831
    )와 상기 제1아핀 맵(
    Figure 112020027853775-pat00832
    )과의 곱(
    Figure 112020027853775-pat00833
    )에서 상기 제1아핀 맵(
    Figure 112020027853775-pat00834
    )의 랜덤화를 위해 주어진 행렬(
    Figure 112020027853775-pat00835
    )이 순환 행렬일 때,
    Figure 112020027853775-pat00873
    을 아래의 수학식으로,
    Figure 112020027853775-pat00874
    계산하는 전자 서명기.
KR1020190149105A 2019-11-19 2019-11-19 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 KR102364047B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112597540B (zh) * 2021-01-28 2021-10-01 支付宝(杭州)信息技术有限公司 基于隐私保护的多重共线性检测方法、装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101768641B1 (ko) 2017-04-04 2017-08-30 기초과학연구원 짧은 키 길이를 갖는 다변수 이차 서명 스킴을 수행하는 전자 장치와 그 방법

Family Cites Families (13)

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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101768641B1 (ko) 2017-04-04 2017-08-30 기초과학연구원 짧은 키 길이를 갖는 다변수 이차 서명 스킴을 수행하는 전자 장치와 그 방법

Non-Patent Citations (3)

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