KR102443255B1 - 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법 - Google Patents

래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법 Download PDF

Info

Publication number
KR102443255B1
KR102443255B1 KR1020200147995A KR20200147995A KR102443255B1 KR 102443255 B1 KR102443255 B1 KR 102443255B1 KR 1020200147995 A KR1020200147995 A KR 1020200147995A KR 20200147995 A KR20200147995 A KR 20200147995A KR 102443255 B1 KR102443255 B1 KR 102443255B1
Authority
KR
South Korea
Prior art keywords
calculating
message
digital signature
calculated
signature information
Prior art date
Application number
KR1020200147995A
Other languages
English (en)
Other versions
KR20210066713A (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 SG10202011677UA priority Critical patent/SG10202011677UA/en
Priority to US17/104,987 priority patent/US11522718B2/en
Priority to CN202011357550.0A priority patent/CN112865973A/zh
Priority to EP20210244.8A priority patent/EP3829102A1/en
Priority to JP2020197521A priority patent/JP7183242B2/ja
Publication of KR20210066713A publication Critical patent/KR20210066713A/ko
Application granted granted Critical
Publication of KR102443255B1 publication Critical patent/KR102443255B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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

Landscapes

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

Abstract

전자서명 정보를 생성하는 방법이 개시된다. 본 전자 사명 정보를 생성하는 방법은 메시지를 입력받는 단계, 공개키에 특수해를 연산한 결과가 입력된 메시지에 기설정된 함수처리 출력값이 되는 특수해를 산출하는 단계, 및 산출된 특수해를 이용하여 메시지에 대한 전자서명 정보를 생성하는 단계를 포함하고, 공개키는 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된다.

Description

래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법{Method for Generating Encryption Key and Digital Signature Based on Lattices}
본 개시는 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법에 관한 것으로, 보다 구체적으로는 파라미터 유연성을 확보할 수 있는 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법에 관한 것이다.
전자적 메시지(데이터)를 전송하고 수신하는 과정에서 중간에 메시지를 제3자가 탈취하더라도 내용을 알 수 없도록 암호화하는 방법이 널리 알려져있다. 암호화 방식은 크게 대칭키 암호화 방식과 비대칭키 암호화 방식으로 나뉜다.
대칭키 암호화 방식은 암호화하는 키와 복호화하는 키가 동일한 방식이며, 비대칭키 암호화 방식은 암호화하는 키와 복호화하는 키가 다른 방식이다. 비대칭키암호화 방식에서는 통상 수신자의 공개키로 메시지를 암호화하고, 수신자는 수신자의 비밀키로 암호화된 메시지를 복호화한다.
비대칭키 암호화 방식에서는, 메시지의 무결성을 증명하기 위해 메시지에 대해서 전자서명을 수행하는데, 전자서명은 통상 메시지를 해쉬한 값(무결성 확인 값)을 발신자의 비밀키로 암호화함으로써 수행된었다.
암호화된 메시지와 전자서명 정보를 수신한 수신자는, 수신자의 비밀키로 복호화를 수행해서 메시지를 획득하고, 전자서명 정보를 발신자의 공개키로 복호화하여 메시지 무결성 확인 값을 획득하였다. 수신자는 획득한 메시지에 대해서 해쉬를 해서 산출된 출력값이 무결성 확인 결과와 동일한지를 판단함으로써 해당 메시지가 위변조되지 않았는지 여부를 확인할 수 있다.
종래에는 RSA 방식이나 Elgamal 방식 등이 비대칭 암호화 키 생성에 많이 사용되고 있는데, 양자 컴퓨팅 기술의 발전으로 종래 암호 방식은 쉽게 무력화될 가능성이 높아지고 있다.
그러한 양자 컴퓨팅 기술에 대해서도 안전한 방법으로 TrapdoorLattice 방식이 제안된 바 있다.
2014년에 공개된 논문 "Efficient Identity-Based Encryption overNTRU Lattices"에서 Leo Ducas 등은 신원 기반 암호화의 비밀키와 마스터공개키를 생성하는 방법의 하나로서 NTRU 래티스에 기반한 방법을 제안한 바 있다.
종래 기술에서의 키 생성 과정은 다항식 환(polynomial ring)
Figure 112020118985884-pat00001
에서 수행된다. 그런데 종래 기술에서는, 전체 차원(totaldimension)이 2의 거듭제곱이 되어야 하며 그렇지 않은 경우의 안전성은 증명되지 않았기 때문에 파라미터 유연성에 한계가 있었다.
예를 들어 차원이 210인 경우보다 보안성을 증대하기 위해서는 차원을 211 값으로 해야 하는데 그 경우 차원(dimension)이 1024에서 2048로 급격하게 상승해 버리기 때문에 키 생성에 필요한 계산량이나 계산시간이 급격하게 상승하는 단점이 있었다.
본 개시는 이상과 같은 문제점을 해결하기 위하여 고안된 것으로, 파라미터 경직성을 해소하여 파라미터를 유연하게 선택할 수 있게 함과 동시에 안정성 역시 확보할 수 있는 래티스에 기반한 암호화 방법 및 전자서명 방법을 제공하는 것을 목적으로 한다.
이상과 같은 목적을 달성하기 위하여, 본 개시의 일 실시 예에 따른 전자서명 정보를 생성하는 방법은 메시지를 입력받는 단계, 공개키에 특수해를 연산한 결과가 상기 입력된 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하는 단계, 및 상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 단계를 포함하고, 상기 공개키는, 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된다.
이 경우, 상기 전자서명 정보를 생성하는 단계는 비밀키를 이용하여 상기 산출된 특수해를 축소하여 전자서명 정보를 생성할 수 있다.
한편, 본 방법은 트랩도어(T)를 산출하는 단계, 및 상기 산출된 트랩도어(T)를 비밀키로 설정하는 단계를 더 포함할 수 있다.
이 경우, 본 방법은 상기 환에서 상호 선형 독립인 원소들(
Figure 112020118985884-pat00002
)을 샘플링하여, 열의 개수가 상기 차원보다 1 작고, 행의 개수는 상기 차원 수인 제1 랜덤 행렬(S)을 산출하는 단계, 열의 개수가 상기 차원의 수와 같고, 행의 개수는 1인 제2 랜덤 행렬(A)을 산출하는 단계, 및 상기 제2 랜덤 행렬(A)에 기초하여 상기 공개키를 산출하는 단계를 더 포함할 수 있다.
이 경우, 상기 제2 랜덤 행렬을 산출하는 단계는, 행렬
Figure 112020118985884-pat00003
에서 i번째 행을 제외한 d×d 행렬(Mi)을 산출하고,
Figure 112020118985884-pat00004
를 행렬식(ai)으로 설정하고,
Figure 112020118985884-pat00005
를 제2 랜덤 행렬로 산출할 수 있다.
이 경우, 상기 트랩도어(T)를 산출하는 단계는,
Figure 112020118985884-pat00006
관계를 만족하는 벡터(
Figure 112020118985884-pat00007
)를 샘플링하는 단계를 포함하고,
Figure 112020118985884-pat00008
를 트랩도어(T)로 산출할 수 있다.
이 경우, 상기 벡터(
Figure 112020118985884-pat00009
)를 샘플링하는 단계는, 상기 원소들(
Figure 112020118985884-pat00010
)을 이용하여 상기 벡터의 원소들을 축소시킨 후에 결과 값 벡터를 출력할 수 있다.
이 경우, 상기 벡터(
Figure 112020118985884-pat00011
)를 샘플링하는 단계는, 상기 벡터의 원소들(
Figure 112020118985884-pat00012
)에서 상기 원소들(
Figure 112020118985884-pat00013
)의 상수배를 빼어서 상기 원소 방향 성분을 제거하여 축소시킬 수 있다.
한편, 상기 벡터(
Figure 112020118985884-pat00014
)를 샘플링하는 단계는, 확장 유클리드 알고리즘(Extended Euclidean Algorithm)을 이용하여 상기 벡터의 원소들을 축소할 수 있다.
한편, 상기 기설정된 함수 처리는, 해시 처리일 수 있다.
한편, 본 개시의 일 실시 예에 따른 메시지 검증 방법은 메시지 및 전자서명 정보를 수신하는 단계, 공개키에 상기 수신된 전자서명 정보를 연산한 결과가 상기 메시지에 기설정된 함수처리 출력값이 되는지 확인하는 단계, 상기 수신된 전자서명 정보가 기설정된 파라미터보다 작은 값보다 작은지 판단하는 단계, 및 상기 확인 결과 및 상기 판단 결과에 기초하여 상기 수신한 메시지를 검증하는 단계를 포함하고, 상기 공개키는, 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된다.
이 경우, 상기 함수처리는 해시 처리일 수 있다.
한편, 본 개시의 일 실시 예에 따른 연산 장치는 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리, 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는, 공개키에 특수해를 연산한 결과가 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하고, 상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 프로세서를 포함하고, 상기 공개키는, 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된다.
이 경우, 상기 프로세서는, 비밀키를 이용하여 상기 산출된 특수해를 축소하고, 상기 축소된 특수해를 상기 전자서명 정보로 생성할 수 있다.
한편, 상기 프로세서는 메시지 및 전자서명 정보가 수신되면, 공개키에 상기 수신된 전자서명 정보를 연산한 결과가 상기 메시지에 기설정된 함수처리 출력값이 되는지 확인하고, 상기 수신된 전자서명 정보가 기설정된 파라미터보다 작은 값을 갖는지 판단하고 상기 확인 결과 및 상기 판단 결과에 기초하여 상기 메시지를 검증할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자서명 정보를 생성하는 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서, 상기 방법은 메시지를 입력받는 단계, 공개키에 특수해를 연산한 결과가 상기 입력된 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하는 단계, 및 상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 단계를 포함하고, 상기 공개키는 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된다.
이상과 같은 본 개시의 다양한 실시 예들에 따르면, 트랩도어 래티스 방식의 암호키 생성에 있어서 요구되는 보안성을 만족시키도록 파라미터를 유연하게 선택 즉, 전체 차원이 2의 거듭제곱이 아닌 정수를 사용할 수 있게 할 수 있는 효과가 있다.
또한, 보안성에 정확히 맞는 파라미터를 자유롭게 선택할 수 있으므로 암호시스템의 전체적인 효율성을 증대시키며 공개키/비밀키와 암호문 모두의 크기를 줄일 수 있다.
도 1은 본 개시에 따른 비밀키 및 공개키를 생성하는 동작을 설명하기 위한 흐름도,
도 2는 본 개시에 따른 비밀키로 전자서명을 생성하는 동작을 설명하기 위한 흐름도,
도 3은 본 개시에 따라 생성된 전자서명 정보를 이용한 메시지 검증 과정을 설명하기 위한 흐름도,
도 4는 본 개시의 랜덤 행렬의 구조를 도시한 도면,
도 5는 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면, 그리고,
도 6은 본 개시의 일 실시 예에 따른 연산 장치의 구성을 나타낸 블럭도이다.
이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 개시에서 "모듈" 또는 "유닛"이라 함은 범용적인 하드웨어 또는 그 기능을 수행하는 소프트웨어이거나, 하드웨어와 소프트웨어와의 논리적인 결합일 수 있다.
본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
본 개시는 전자적 연산이 가능한 컴퓨터, 서버, 스마트폰과 같은 모바일 디바이스 등의 전자적인 연산 장치에 의해 수행될 수 있으며, 후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 프로그램의 실행에 다른 연산으로 구현될 수 있다. 본 개시를 실행하는 컴퓨터 프로그램은 컴퓨터에 의해 판독 가능한 기록 매체에 저장될 수 있다.
그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터, 행렬, 다항식 등 수학식으로 표현될 수 있는 모든 값을 포함하는 광의의 개념으로 정의될 수 있다.
본 개시에서 특정값에 대한 암호화 또는 해시 등과 같은 연산을 하여 소정의 값을 획득한다는 의미는 해당 특정 값뿐만 아니라, 해당 특정 값의 변형 값(예를 들어, 특정 값에 소정의 값을 추가로 연산하거나 소정의 규칙에 따라서 해당 특정 값을 변화시키는 등의 과정을 통해서 산출된 다른 값)에 대한 암호화 또는 해시 등의 연산도 포함하는 것으로 정의될 수 있다.
후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
본 명세서의 첨부 도면에 도시되어 있는 장치의 각 구성요소는 도면에 명시적으로 도시된 형태, 크기, 치수뿐만 아니라 본 개시가 의도하는 기능을 수행할 수 있는 형태, 크기, 치수라면 어느 것이든 적용될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다.
a ← D : 분포(D)에 따라서 원소(a)를 선택함
s1, s2 ∈ R : S1, S2 각각은 R 집합에 속하는 원소이다.
mod(q) : q 원소로 모듈(modular) 연산
Figure 112020118985884-pat00015
: 내부 값을 반올림함
이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
본 개시에서는 NTRU 기반의 암호화의 차원 유연성을 해결할 수 있는 moduled-NTRU(MNTRU) 격자라 부르는 NTRU 격자의 일반화된 개념을 제안한다. 이러한 MNTRU 격자는 효율적인 트랩도어 생성을 보이며, 기존의 NTRU 트랩도어보다 효율성을 갖는다. 이하에서는 먼저 MNTRU 트랩도어에 기초하여 새로운 신원 기반 암호화에 적용한다.
먼저, NTRU 트랩도어를 일반화하는 동작을 먼저 설명한다.
ring-LWE으로부터 module-LWE로 일반화와 유사하게, R2 내의 NTRU 격자의 컨텍스트를 고차원의 Rd의 MNTRU 격자로 일반화할 수 있다.
먼저, 행렬(
Figure 112020118985884-pat00016
)에서 샘플링된 두 개의 작은 다항식(f, g)을 샘플링하고, f를 환에서 역이라고 가정하며, NTRU 인스턴스(instance)는
Figure 112020118985884-pat00017
로 정의되고, 여기서
Figure 112020118985884-pat00018
이고, 다음과 같은 수학식 1을 만족할 수 있다.
[수학식 1]
Figure 112020118985884-pat00019
여기서, h는 NTRU 인스턴스, SNTRU는 행렬이다.
그리고 NTRU 격자는 다음과 같은 수학식 2와 같이 정의될 수 있다.
[수학식 2]
Figure 112020118985884-pat00020
여기서, ANTRU는 NTRU 격자이고, q는 소수이다.
이러한 내용은 일반적이지 않은 짧은 벡터(g, -f)를 포함하는 Z2n 내의 정수 격자로 이해될 수 있으며, f, g는 다음의 수학식 3을 만족하는 F, G ∈R를 찾음으로써 ANTRU의 트랩도어 베이시스(
Figure 112020118985884-pat00021
)를 생성할 수 있다.
[수학식 3]
Figure 112020118985884-pat00022
여기서 g, f는 짧은 벡터, F, G는 행렬, q는 소수이다.
NTRU 식으로 불리는 것은 다음과 같은 수학식 4와 같다.
[수학식 4]
Figure 112020118985884-pat00023
여기서 A는 다항식의 역 행렬 변환(anti-circulant matrix transform)을 나타낸다.
이러한 프레임워크를 d≥2 경우를 일반화할 수 있다. 이를 위하여, 먼저 SMNTRU ∈ Rd×(d-1)에서 작은 계수를 갖는 원소를 샘플링할 수 있고, 다음의 수학식 5를 만족하는 벡터 hMNTRU =(h1, … , hd)∈ Rq d-1를 구성할 수 있다.
[수학식 5]
Figure 112020118985884-pat00024
이를 기초로 n차원의 MNTRU 격자를 다음과 같은 수학식 6과 같이 정의할 수 있다.
[수학식 6]
Figure 112020118985884-pat00025
여기서 h =(h1,… ,hd-1)은 deti/det1에 의해 결정될 수 있고, mod q는 deti가 SMNTRU의 (d-1)×(d-1) 서브매트릭스의 디터미네이트이다.
이러한 내용을 기초로, 본 개시의 트랩도어는 수학식 7과 같이 계산될 수 있다.
[수학식 7]
Figure 112020118985884-pat00026
여기서, F는
Figure 112020118985884-pat00027
로 MNTRU 식이다.
이하에서는 상술한 트랩도어를 생성할 수 있는 격자 구조를 도 4를 참조하여 설명한다.
도 4는 본 개시의 랜덤 행렬을 구조를 도시한 도면이다.
도 4를 참조하면, 본 개시에 따른 래티스 구조에서는 제1 랜덤 행렬(S)과 제2 랜덤 행렬(A)이 사용된다.
제1 랜덤 행렬(S)은 열의 개수가 d-k(즉, d-1)이고, 행의 개수(d)가 1이고, 제2 랜덤 행렬(A)은 열의 개수가 d 이고, 행의 개수(k)가 1이다. 여기서 열(d)의 개수는 2보다 큰 소정의 정수일 수 있으며, 종래 기술과 달리 전체 차원을 2의 거듭제곱이 아닌 다른 정수로 설정될 수 있는바, 파라미터 유연성이 높아질 수 있다.
제1 랜덤 행렬(S)과 제2 랜덤 행렬(A)은 도 4에 표시된 관계를 만족할 수 있다.
본 개시에 의한 래티스에 기반한 연산 처리가 수행되는 환경은 도 5에 도시되어 있다.
도 5는 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면이다.
도 5를 참조하면, 네트워크 시스템(600)은 사용자 단말기(10), 키 생성 서버(20) 및 전자서명 검증 서버(40)를 포함할 수 있으며, 각 구성들은 데이터 통신망(30)을 통해 서로 연결될 수 있다.
데이터 통신망(30)은 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다.
키 생성 서버(20)는 래티스 기반 암호화 방식에 이용되는 각종 키 값을 생성할 수 있다. 구체적으로 설명하면, 키 생성 서버(20)는 먼저 각종 파라미터 및 환(ring)을 설정하고, 설정된 파라미터와 환에 기초하여 공개키, 비밀키를 생성할 수 있다.
여기서 환(ring)은 다음과 같은 수학식 8로 표현될 수 있다.
[수학식 8]
Figure 112020118985884-pat00028
여기서 R은 환, Z는 계수이다. 여기서 환은 기설정된 계수를 가지는 다항식의 집합으로, 원소들 사이에 덧셈과 곱셈이 정의되어 있으며 덧셈과 곱셈에 대해서 닫혀 있는 집합을 의미한다. 이러한 환은 링으로 지칭될 수 있다.
여기서, 환의 원소들의 N차 미만의 정수 계수 다항식이며, 집합에 속하는 원소 사이에 덧셈 연산과 곱셈 연산이 정의되어 있다. 예를 들어, 덧셈 연산은 다항식 간의 곱으로 정의될 수 있고, 곱셈 연산은 각 다항식을 곱한 다음에 해당 원소의 mod xN+1로 정의될 수 있다. 그러한 정의에 따르면 XN-1*x는 다항식의 곱으로는 xN이고, mod XN+1에 대해 XN=-1이므로 XN-1*x = -1 이될 수 있다.
[수학식 9]
Figure 112020118985884-pat00029
수학식 9에서 환은 N차 미만이면서 계수가 [0, q-1] 내의 정수만으로 구성된 다항식들의 집합을 의미한다. 해당 집합 위에서의 덧셈 연산과 곱셈 연산이 정의되어 있으며, 예를 들어, 곱셈 연산을 mod xN+1과 동시에 각 계수별로 mod q를 수행하는 것으로 정의될 수 있다.
본 개시에 따른 환은 2의 거듭제곱과 2 이상의 정수 곱으로 표현되는 차원을 가지며, 이와 같은 차수 값에 대응되는 격자 트랩도어가 이용될 수 있다. 이와 같이 정수 곱으로 표현되는 차원을 이용하는바, 보안성 증가가 필요하여 차원 증가가 필요한 경우라도 2배수 단위로 변경할 필요 없는바, 보다 유연성있게 파라미터 선택이 가능하다.
키 생성 서버(20)는 상술한 환의 설정에 기초하여 제1 랜덤 행렬과 제2 랜덤 행렬을 산출하고, 트랩도어를 산출할 수 있다. 여기서 트랩도어는 자체적으로 수행하기 어려운 기능의 역을 계산할 수 있도록 하는 특별한 비밀 정보이다. 본 개시에서의 트랩도어는 도 4와 같은 격자 기반(또는 래티스) 암호 기법에 이용되며, 구체적인 산출 동작은 도 1을 참조하여 후술한다.
키 생성 서버(20)는 산출된 랜덤 행렬과 트랩도어를 기초로 공개키, 비밀키를 산출할 수 있다. 구체적인 생성 동작에 대해서는 도 1을 참조하여 후술한다.
그리고 키 생성 서버(20)는 사용자 단말기(10)로부터 암호문을 수신하고, 암호문을 복호화하지 않고 암호문 상태로 저장할 수도 있다.
한편, 도 5에서는 키 생성 서버(20)가 암호화에 필요한 키들을 생성하고, 사용자 단말기(10)가 생성된 키 중 일부를 제공받아 암호화 동작을 수행하는 것으로 설명하였지만, 키 생성 동작, 암호화 동작, 복호화 동작은 환경에 따라 다양한 기기에서 수행될 수 있다.
사용자 단말기(10)에서는 키 생성 서버(20)에서 생성한 공개키를 이용하여 전자서명 정보를 생성하고, 메시지와 전자서명 정보를 전자서명 검증 서버(40)에 전송할 수 있다. 여기서 전자서명 정보(또는 전자서명 값)는 메시지가 위변조되지 않았는지를 확인하는 데 이용되는 정보이다.
전자서명 검증 서버(40)는 메시지와 전자서명 정보를 수신하고, 수신된 전자서명 정보를 이용하여 메시지에 대한 검증을 수행할 수 있다.
사용자는 자신이 사용하는 사용자 단말기(10)를 통해서 다양한 정보를 입력할 수 있다. 입력된 정보는 사용자 단말기(10) 자체에 저장될 수도 있지만, 저장 용량 및 보안 등을 이유로 외부 장치로 전송되어 저장될 수도 있다. 도 5에서 키 생성 서버(20)는 이러한 정보들을 저장하는 역할을 수행하고, 키 생성 서버(20)는 키 생성 서버(20)에 저장된 정보의 일부 또는 전부를 이용하는 역할을 수행할 수 있다.
사용자 단말기(10)는 키 생성 서버(20)로부터 암호화에 필요한 키 정보를 수신하고, 수신된 키 정보를 이용하여 메시지를 암호화할 수 있다. 예를 들어, 사용자 단말기(10)는 키 생성 서버(20)로부터 공개키를 수신할 수 있으며, 수신된 공개키를 이용하여 메시지를 암호화하여 암호문을 생성할 수 있다. 이때, 사용자 단말기(10)는 암호화에 필요한 작은 원소들, 함수처리 출력값도 수신하여 이용할 수도 있으며 자체적으로 생성하여 이용할 수도 있다.
그리고 사용자 단말기(10)는 암호문 및 전자서명 정보를 전자서명 검증 서버(40)로 전송할 수 있다.
그리고 전자서명 검증 서버(40)는 암호문에 대한 복호화를 수행할 수 있다. 예를 들어, 사용자 단말기(10)는 비밀키를 이용하여 암호문에 대한 복호화를 수행할 수 있다. 한편, 복호화 동작은 키 생성 서버(20) 측에서 수행할 수도 있다.
그리고 전자서명 검증 서버(40)는 수신한 전자서명 정보를 이용하여 수신한 메시지에 대한 검증을 수행할 수 있다.
도 5에서는 사용자 단말기가 하나인 것으로 도시하였으나, 복수개가 이용될 수 있다. 일 예로, 사용자 단말기(10)는 스마트폰, 태블릿, 게임 플레이어, PC, 랩톱 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.
도 1은 본 개시에 따른 공개키 및 비밀키를 생성하는 동작을 설명하기 위한 흐름도이다.
도 1을 참조하면, 제1 랜덤 행렬(S)을 산출한다(100). 예를 들어, 아래와 같은 수학식 10을 만족하는 원소 값들을 샘플링하여 제1 랜덤 행렬(S)을 산출할 수 있다. 구체적으로, 링에서 상호 선형 독립인 원소들(
Figure 112020118985884-pat00030
)을 샘플링하여, 열의 개수가 상기 차원보다 1 작고, 행의 개수는 상기 차원 수인 제1 랜덤 행렬(S)을 산출할 수 있다.
[수학식 10]
Figure 112020118985884-pat00031
여기서,
Figure 112020118985884-pat00032
는 샘플링된 원소 값들이고, 모든
Figure 112020118985884-pat00033
값들은 Rq에서 선형 독립인 관계이다. 만약, 선형 독립인 관계가 아니면, 원소값들을 다시 샘플링할 수 있다.
그리고 제2 랜덤 행렬(A)을 산출한다(110). 구체적으로, 랜덤한 계수(r)를 샘플링하고, 제1 랜덤 행렬의 행 개수에 대응되는 행렬식(ai)과 샘플링된 랜덤한 계수(r)를 이용하여 아래의 수학식 11와 같이 제2 랜덤 행렬(A)를 산출할 수 있다.
[수학식 11]
Figure 112020118985884-pat00034
여기서 행렬식(ai)은
Figure 112020118985884-pat00035
이고, Mi는 행렬
Figure 112020118985884-pat00036
에서 i 번째 행렬(Mi)을 제외한 d×d 행렬이다. 그리고 r은 랜덤 계수
Figure 112020118985884-pat00037
이다.
예를 들어, 랜덤한 계수(r)를 a1 -1으로 하면, 제2 랜덤 행렬(A)은 (1, A1, …, Ad-1)이 될 수 있다.
그리고 트랩도어(T)를 산출한다(120). 예를 들어, 아래의 수학식 12와 같이 제1 랜덤 행렬(s)과 새롭게 샘플링된
Figure 112020118985884-pat00038
를 이용하여 트랩도어(T)를 산출할 수 있다.
[수학식 12]
Figure 112020118985884-pat00039
여기서 T는 트랩도어,
Figure 112020118985884-pat00040
는 제1 랜덤 행렬(s)의 원소 값,
Figure 112020118985884-pat00041
는 아래의 수학식 6을 만족하도록 환에서 샘플링된 짧은 벡터이다. 그리고, "∥"은 연접을 의미한다.
[수학식 13]
Figure 112020118985884-pat00042
여기서, det는 행렬식(determinant) 연산이고,
Figure 112020118985884-pat00043
는 제1 랜덤 행렬(s)의 원소 값,
Figure 112020118985884-pat00044
는 샘플링된 짧은 벡터, q는 상수이다.
이하에서는 짧은 벡터(
Figure 112020118985884-pat00045
)를 샘플링하는 구체적인 방법에 대해서 이하에서 설명한다.
먼저,
Figure 112020118985884-pat00046
을 만족하는 αi를 계산할 수 있다. 여기서,
Figure 112020118985884-pat00047
로 가정하며,
Figure 112020118985884-pat00048
이다.
αi의 계산은 확장 유클리드 알고리즘(Extended Euclidean Algorithm)에 의해 실행될 수 있다. 그리고 전술한 산출 값들에 기초하여 Fi를 다음과 같이 산출할 수 있다.
[수학식 14]
Figure 112020118985884-pat00049
이렇게 하면, 다음과 같은 수학식 15의 관계가 성립된다.
[수학식 15]
Figure 112020118985884-pat00050
Figure 112020118985884-pat00051
를 이용하여
Figure 112020118985884-pat00052
를 축소한 다음에, 결과값(
Figure 112020118985884-pat00053
)을 출력할 수 있다.
이러한 축소는
Figure 112020118985884-pat00054
에서
Figure 112020118985884-pat00055
의 적당한 상수배를 빼주면서,
Figure 112020118985884-pat00056
방향 성분을 지우는 과정을 의미한다. 그러한 축소에 의해서 트랩도어(T)의 크기를 작게 만드는 효과가 있다. 정수로 예를 들면, F = (2, 5), f = (1, 2)인 경우, [F, f]와 [F-2f, f]를 비교하면 같은 열 공간을 정의하지만 뒤의 축소된 행렬의 열의 크기가 작아질 수 있다.
그리고 비밀키 및 공개키를 설정한다(130). 구체적으로, 산출된 트랩도어(T)를 비밀키로 설정하고, 공개키는 (A1, …, Ad-1)로 설정할 수 있다.
이와 같이 비밀키 및 공개키가 설정되면, 공개키를 해시 함수(hash Function)(
Figure 112020118985884-pat00057
)에 적용하여 공개할 수 있다.
도 2는 본 개시에 따른 비밀키로 전자서명을 생성하는 동작을 설명하기 위한 흐름도이다.
도 2를 참조하면, 전자서명할 메시지(m)를 수신한다(200).
공개키에 특수해를 연산한 결과가 입력된 메시지에 기설정된 함수처리 출력값이 되는 특수해를 산출한다(210). 구체적으로,
Figure 112020118985884-pat00058
를 만족하는 특수해
Figure 112020118985884-pat00059
를 산출할 수 있다. 여기서, 특수해는 예를 들어 가우스 소거법을 이용하여 산출될 수 있다. 그리고 공개키는 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된 것일 수 있다.
그리고 산출된 특수해를 이용하여 메시지에 대한 전자서명 정보를 생성한다(220). 구체적으로, 비밀키(T)를 이용하여 s0를 축소시킨 후에 그 결과 값인
Figure 112020118985884-pat00060
를 메시지(m)의 전자서명 정보로 출력할 수 있다. 이와 같은 전자서명 정보는 상술한 바와 같은 As = H(m)을 만족할 수 있다.
여기서 축소 과정은 비밀키(T)를 이용하여 집합 {s: As = 0}상에서, 단계(200)에서 산출된 s를 중심으로 가지는 작은 이산정규분포를 샘플링하는 과정이 될 수 있다. 구체적으로 표준 편차(σ) 선택하고, GaussianSampler에 의하여 c를 산출하고, 제2 랜덤 행렬과의 곱이 해시 값이 되는 크기가 작은 해(s=(s0, s1, …, sd-1)를 산출하고, 산출된 작은 해 중 s을 상술한 전자서명 정보로 출력할 수 있다.
전자서명 정보는 메시지를 전송하고자 하는 사용자 단말기(10)에 의해서 생성되며, 이 전자서명 정보는 전자서명 검증 서버(40)에 의해서 검증된다. 도 5에는 전자서명 검증 서버(40)가 전자서명을 검증하는 것으로 설명되지만, 메시지(m)를 수신하는 수신자 단말기가 전자서명을 검증할 수도 있으며, 검증 주체에 본 개시의 권리범위가 제한되지는 않는다.
도 3은 본 개시에 따라 생성된 전자서명 정보를 이용한 메시지 검증 과정을 설명하기 위한 흐름도이다.
도 3을 참조하면, 먼저, 전자서명 검증을 수행하는 주체(예를 들어, 전자서명 검증 서버(40) 또는 메시지(m) 수신 단말기)가 전자서명 정보(s)를 수신한다(S300). 이때, 메시지(m)를 함께 수신할 수 있다. 여기서 메시지는 전자서명 정보를 송신한 장치로부터 수신할수도 있으며, 다른 주체로부터 수신할 수도 있다.
그리고 공개키에 수신된 전자서명 정보를 연산한 결과가 메시지에 기설정된 함수처리 출력값이 되는지 확인한다(S310). 구체적으로, 전자서명 검증 주체는
Figure 112020118985884-pat00061
를 만족하는지를 판단할 수 있다. 여기서, s는 전자서명 정보, H()는 기설정된 함수 처리로, 예를 들어, 해시 처리일 수 있으며, m은 메시지이다. 그리고 A는 공개키로, 2의 거듭제곱과 3 이상의 정수 곱으로 표현되는 차원(d)을 갖는 환을 이용하여 산출된 것일 수 있다.
그리고 수신된 전자서명 정보가 기설정된 파라미터보다 작은 값보다 작은지 판단한다(S320). 즉, 전자서명 정보(s)의 크기가 충분히 작은지 여부를 판단할 수 있다. 여기서, 기설정된 파라미터는 전자서명 정보(s)의 크기 비교 대상은 검증실패확률, 안정성 등을 고려하여 설정될 수 있다.
확인 결과 및 판단 결과에 기초하여 수신한 메시지를 검증한다. 예를 들어, 두 조건을 모두 만족하면 전자서명 검증에 성공한 것으로 판단하고(S330). 그렇지 않으면 검증에 실패한 것으로 판단할 수 있다(S340).
한편, 도시된 예에서는 먼저, 계산 식이 성립되는지를 확인한 이후에 전자서명 정보의 크기를 비교하는 것으로 도시하고 설명하였지만, 구현시에는 먼저 전자서명 정보의 크기를 비교하고 계산식이 성립되는지를 확인할 수도 있다.
이상과 같은 도 2 또는 도 3의 방법은 보안성 증대를 위하여 차원을 2배로 증가할 필요 없이 2의 거듭제곱과 정수의 곱을 표현되는 차원을 이용하는 것이 가능한바 키 생성에 필요한 계산량이나 계산시간을 줄일 수 있다.
한편, 상술한 도 2 또는 도 3에 따른 방법들은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 방법 등의 동작들을 수행할 수 있다.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
한편, 도 2 및 도 3에서는 메시지에 대한 전자 서명 정보를 생성하고, 생성된 전자 서명 정보를 이용하여 메시지의 검증 동작을 수행하는 것으로 도시하고 설명하였지만, 구현시에는 암호화된 메시지에 대한 전자 서명 정보를 생성하고, 즉, 암호문에 대한 전자 서명 생성 및 암호문에 대한 검증 동작을 수행할 수도 있다.
도 6은 본 개시의 일 실시 예에 따른 연산 장치의 구성을 나타낸 블럭도이다.
구체적으로, 도 5의 시스템에서 사용자 단말기 등과 같이 암호화를 수행하는 장치, 키 생성 서버 등과 같이 암호문 생성에 필요한 키를 생성하는 장치 및 암호문을 이용하는 장치 등을 연산 장치라고 지칭할 수 있다. 이러한 연산 장치는 PC(Personal computer), 노트북, 스마트폰, 태블릿, 서버 등 다양한 장치일 수 있다.
도 6을 참조하면, 연산 장치(600)는 통신 장치(610), 메모리(620), 플레이(630), 조작 입력 장치(640) 및 프로세서(650)를 포함할 수 있다.
통신 장치(610)는 연산 장치(600)를 외부 장치(미도시)와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(610)는 송수신부(transceiver)로 지칭될 수도 있다.
통신 장치(610)는 암호문 생성에 필요한 각종 키들을 수신할 수 있다. 예를 들어, 키 생성시에 통신 장치(610)는 3 개의 파라미터(n, q, d)를 입력받을 수 있다. 여기서 n은 차원을 구성하는 2의 거듭제곱의 제곱 값이고, d는 정수이다. 따라서, 해당 파라미터에 의해 생성되는 링의 차원은 2n*d일 수 있다. 그리고 q는 소수값이다. 이와 같은 각종 키는 조작 입력 장치(640)를 통하여 입력받을 수도 있다.
그리고 통신 장치(610)는 자체적으로 생성한 키를 외부 장치에 전송할 수 있다. 여기서 키는 공개키, 비밀키 등일 수 있다.
그리고 통신 장치(610)는 외부 장치로부터 메시지를 수신할 수 있으며, 생성한 암호문 및/또는 전자서명 정보를 외부 장치로 송신할 수 있다.
또한, 통신 장치(610)는 키 또는 암호문 생성에 필요한 각종 파라미터를 외부 장치로부터 수신할 수 있다. 한편, 구현시에 각종 파라미터는 후술하는 조작 입력 장치(640)를 통하여 사용자로부터 직접 입력받을 수 있다.
또한, 통신 장치(610)는 암호문을 수신할 수도 있다. 이때, 해당 암호문(또는 메시지)에 대한 전자서명 정보를 함께 수신할 수 있다.
메모리(620)는 연산 장치(600)를 구동하기 위한 O/S나 각종 소프트웨어, 데이터 등을 저장하기 위한 구성요소이다. 메모리(620)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
메모리(620)는 신원 정보(또는 사용자 정보)를 저장할 수 있다. 여기서 신원 정보는 주민등록번호, 이메일 주소, 전화번호, 지문 정보, 홍채 정보 등일 수 있으며, 사용자 비밀키를 생성할때나 암호문 생성시에 이용될 수 있다.
그리고 메모리(620)는 암호화할 메시지를 저장할 수 있다. 여기서 메시지는 사용자가 각종 인용한 각종 신용 정보, 개인 정보 등일 수 있으며, 연산 장치(600)에서 사용되는 위치 정보, 인터넷 사용 시간 정보 등 사용 이력 등과 관련된 정보일 수도 있다.
그리고 메모리(620)는 공개키를 저장할 수 있으며, 연산 장치(600)가 직접 공개키를 생성한 장치인 경우, 비밀키뿐만 아니라, 공개키 및 비밀키 생성에 필요한 각종 파라미터 등을 저장할 수 있다.
그리고 메모리(620)는 후술한 과정에서 생성된 암호문 및/또는 전자서명 정보를 저장할 수 있다. 그리고 메모리(620)는 암호문 및/또는 전자서명 정보의 생성 과정의 중간 데이터 등을 저장할 수 있다.
그리고 메모리(620)는 외부 장치에서 전송한 암호문을 저장할 수도 있다. 그리고 메모리(620)는 암호문에 대한 복호 결과인 메시지를 저장할 수 있다. 또한, 메모리(620)는 외부 장치에서 전송한 전자서명 정보를 저장할 수도 있다.
디스플레이(630)는 연산 장치(600)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 예를 들어, 플레이(630)는 연산 장치(600)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 플레이(630)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(640)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
디스플레이(630)는 비밀키 및 공개키 생성에 필요한 파라미터의 입력을 요청하는 메시지를 표시할 수 있다. 그리고 디스플레이(630)는 암호화 대상이 메시지를 선택을 요청하는 UI(User Interface)를 표시할 수 있다. 예를 들어, 래티스 기반 신원 기반 암호화에 이용할 신원 정보를 사용자로부터 선택받기 위한 UI를 표시할 수 있다.
한편, 구현시에 암호화 대상은 사용자가 직접 선택할 수도 있고, 자동으로 선택될 수 있다. 즉, 암호화가 필요한 개인 정보 등은 사용자가 직접 메시지를 선택하지 않더라도 자동으로 설정될 수 있다.
조작 입력 장치(640)는 사용자로부터 연산 장치(600)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 예를 들어, 조작 입력 장치(640)는 사용자로부터 비밀키 및 공개키 생성에 필요한 파라미터를 입력받을 수 있다. 또한, 조작 입력 장치(640)는 사용자로부터 암호화될 메시지를 설정받을 수 있다.
프로세서(650)는 연산 장치(600) 내의 각 구성을 제어한다. 이러한 프로세서(650)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.
프로세서(650)는 전송하고자 하는 메시지가 입력되면 메모리(620)에 저장한다. 프로세서(650)는 메모리(620)에 저장된 각종 설정 값 및 프로그램을 이용하여, 메시지를 암호화할 수 있다. 이 경우, 공개키가 사용될 수 있다.
프로세서(650)는 암호화를 수행하는데 필요한 공개키를 자체적으로 생성하여 사용할 수도 있고, 외부 장치로부터 수신하여 사용할 수도 있다. 일 예로, 복호화를 수행하는 키 생성 서버(20)가 공개키를 다른 장치들에 배포할 수 있다.
자체적으로 공개키를 생성하는 경우, 프로세서(650)는 도 5를 만족하는 제1 랜덤 행렬(S)과 제2 랜덤 행렬(A)을 생성하고, 제2 랜덤 행렬에 기초하여 공개키를 생성할 수 있다.
프로세서(650)는 공개키가 생성되면, 다른 장치들에 전송되도록 통신 장치(610)를 제어할 수 있다.
그리고 프로세서(650)는 메시지에 대한 암호문을 생성할 수 있다. 예를 들어, 프로세서(650)는 신원 정보를 입력받으면, 입력된 신원 정보를 함수 처리하여 함수처리 출력 값을 생성할 수 있다. 그리고 프로세서(650)는 작은 원소들을 랜덤하게 샘플링하고, 샘플링된 작은 원소들, 함수처리 출력 값, 공개키를 이용하여 메시지에 대한 암호문을 생성할 수 있다.
그리고 프로세서(650)는 암호문이 생성되면 메모리(620)에 저장하거나, 사용자 요청 또는 기 설정된 디폴트 명령에 따라 동형 암호문을 다른 장치에 전송하도록 통신 장치(610)를 제어할 수 있다.
그리고 프로세서(650)는 암호문 또는 메시지에 대한 전자서명 정보를 생성할 수 있다. 예를 들어, 공개키에 특수해를 연산한 결과가 메시지에 기설정된 함수처리 출력값이 되는 특수해를 산출하고, 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성할 수 있다.
그리고 프로세서(650)는 암호문을 사용자 비밀키를 이용하여 복호할 수 있다. 또한, 프로세서(650)는 메시지 및 전자서명 정보를 수신하면, 수신된 전자서명 정보를 이용하여 메시지에 대한 검증을 수행할 수 있다. 구체적으로, 프로세서(650)는 공개키에 상기 수신된 전자서명 정보를 연산한 결과가 상기 메시지에 기설정된 함수처리 출력값이 되는지 확인하고, 수신된 전자서명 정보가 기설정된 파라미터보다 작은 값보다 작은지 판단하여, 수신한 메시지(또는 암호문)를 검증할 수 있다.
이상과 같이 본 개시에 따른 연산 장치는 2의 거듭제곱과 2 이상의 정수 곱으로 표현되는 차원을 갖는 환을 이용하여 암호화 처리를 수행하는바, 보안성 증대를 위하여 차원을 2배로 증가할 필요 없이 2의 거듭제곱과 정수의 곱을 표현되는 차원을 이용하는 것이 가능한바 키 생성에 필요한 계산량이나 계산시간을 줄일 수 있다.
한편, 도 6을 도시하고 설명함에 있어서, 하나의 장치에서 암호화 동작 및 복호화 동작 모두를 수행하는 것으로 도시하고 설명하였지만, 구현시에 하나의 장치에서 하나의 동작 예를 들어, 키 생성 동작, 암호화 동작, 복호화 동작 중 하나만을 수행할 수도 있다.
이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
10: 사용자 단말기 20: 키 생성 서버
30: 통신망 40: 전자서명 검증 서버
600: 연산 장치 610: 통신 장치
620: 메모리 630: 디스플레이
640: 조작 입력 장치 650: 프로세서

Claims (16)

  1. 전자서명 정보를 생성하는 방법에 있어서,
    메시지를 입력받는 단계;
    트랩도어(T)를 산출하고, 상기 산출된 트랩도어(T)를 비밀키로 설정하는 단계:
    2의 거듭제곱과 3 이상의 정수 곱으로 표현되며 2의 거듭제곱이 아닌 정수 차원(d)을 갖는 환 에서 상호 선형 독립인 원소들(
    Figure 112022044419482-pat00081
    )을 샘플링하여, 열의 개수가 상기 차원보다 1 작고, 행의 개수는 상기 차원 수인 제1 랜덤 행렬(S)을 산출하는 단계;
    상기 제1 랜덤 행렬의 행 개수에 대응되는 행렬식과 랜덤한 계수를 이용하여, 열의 개수가 상기 차원의 수와 같고, 행의 개수는 1인 제2 랜덤 행렬(A)을 산출하는 단계;
    상기 제2 랜덤 행렬(A)에 기초하여 공개키를 산출하는 단계;
    상기 공개키에 특수해를 연산한 결과가 상기 입력된 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하는 단계; 및
    상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 단계;를 포함하는 방법.
  2. 제1항에 있어서,
    상기 전자서명 정보를 생성하는 단계는,
    비밀키를 이용하여 상기 산출된 특수해를 축소하여 전자서명 정보를 생성하는 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제2 랜덤 행렬을 산출하는 단계는,
    행렬
    Figure 112022044419482-pat00063
    에서 i번째 행을 제외한 d×d 행렬(Mi)을 산출하고,
    Figure 112022044419482-pat00064
    를 행렬식(ai)으로 설정하고,
    Figure 112022044419482-pat00065
    를 제2 랜덤 행렬로 산출하는 방법.
  6. 제5항에 있어서,
    상기 트랩도어(T)를 산출하는 단계는,
    Figure 112020118985884-pat00066
    관계를 만족하는 벡터(
    Figure 112020118985884-pat00067
    )를 샘플링하는 단계를 포함하고,
    Figure 112020118985884-pat00068
    를 트랩도어(T)로 산출하는 방법.
  7. 제6항에 있어서,
    상기 벡터(
    Figure 112020118985884-pat00069
    )를 샘플링하는 단계는,
    상기 원소들(
    Figure 112020118985884-pat00070
    )을 이용하여 상기 벡터의 원소들을 축소시킨 후에 결과 값 벡터를 출력하는 방법.
  8. 제7항에 있어서,
    상기 벡터(
    Figure 112022044419482-pat00071
    )를 샘플링하는 단계는,
    상기 벡터의 원소들(
    Figure 112022044419482-pat00072
    )에서 상기 원소들(
    Figure 112022044419482-pat00073
    )의 상수배를 빼어서 원소 방향 성분을 제거하여 축소시키는 방법.
  9. 제7항에 있어서,
    상기 벡터(
    Figure 112020118985884-pat00074
    )를 샘플링하는 단계는,
    확장 유클리드 알고리즘(Extended Euclidean Algorithm)을 이용하여 상기 벡터의 원소들을 축소하는 방법.
  10. 제1항에 있어서,
    상기 기설정된 함수 처리는,
    해시 처리인 방법.
  11. 삭제
  12. 삭제
  13. 연산 장치에 있어서,
    적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및
    상기 적어도 하나의 인스트럭션을 실행하는 프로세서;를 포함하고,
    상기 프로세서는,
    트랩도어(T)를 산출하고, 상기 산출된 트랩도어(T)를 비밀키로 설정하고, 2의 거듭제곱과 3 이상의 정수 곱으로 표현되며 2의 거듭제곱이 아닌 정수 차원(d)을 갖는 환 에서 상호 선형 독립인 원소들을 샘플링하여, 열의 개수가 상기 차원보다 1 작고, 행의 개수는 상기 차원 수인 제1 랜덤 행렬(S)을 산출하고, 상기 제1 랜덤 행렬의 행 개수에 대응되는 행렬식과 랜덤한 계수를 이용하여, 열의 개수가 상기 차원의 수와 같고, 행의 개수는 1인 제2 랜덤 행렬(A)을 산출하고, 상기 제2 랜덤 행렬(A)에 기초하여 공개키를 산출하고, 상기 공개키에 특수해를 연산한 결과가 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하고, 상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 연산 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    비밀키를 이용하여 상기 산출된 특수해를 축소하고, 상기 축소된 특수해를 상기 전자서명 정보로 생성하는 연산 장치.
  15. 삭제
  16. 전자서명 정보를 생성하는 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 방법은,
    메시지를 입력받는 단계;
    트랩도어(T)를 산출하고, 상기 산출된 트랩도어(T)를 비밀키로 설정하는 단계:
    2의 거듭제곱과 3 이상의 정수 곱으로 표현되며 2의 거듭제곱이 아닌 정수 차원(d)을 갖는 환 에서 상호 선형 독립인 원소들(
    Figure 112022044419482-pat00082
    )을 샘플링하여, 열의 개수가 상기 차원보다 1 작고, 행의 개수는 상기 차원 수인 제1 랜덤 행렬(S)을 산출하는 단계;
    상기 제1 랜덤 행렬의 행 개수에 대응되는 행렬식과 랜덤한 계수를 이용하여, 열의 개수가 상기 차원의 수와 같고, 행의 개수는 1인 제2 랜덤 행렬(A)을 산출하는 단계;
    상기 제2 랜덤 행렬(A)에 기초하여 공개키를 산출하는 단계;
    상기 공개키에 특수해를 연산한 결과가 상기 입력된 메시지에 기설정된 함수처리 출력값이 되는 상기 특수해를 산출하는 단계; 및
    상기 산출된 특수해를 이용하여 상기 메시지에 대한 전자서명 정보를 생성하는 단계;를 포함하는 컴퓨터 판독가능 기록매체.
KR1020200147995A 2019-11-28 2020-11-06 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법 KR102443255B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
SG10202011677UA SG10202011677UA (en) 2019-11-28 2020-11-24 Methods of generating encryption key and digital signature based on lattices
US17/104,987 US11522718B2 (en) 2019-11-28 2020-11-25 Methods of generating encryption key and digital signature based on lattices
CN202011357550.0A CN112865973A (zh) 2019-11-28 2020-11-27 基于格的加密密钥和数字签名的生成方法
EP20210244.8A EP3829102A1 (en) 2019-11-28 2020-11-27 Methods of generating a cryptographic key and a digital signature based on lattices
JP2020197521A JP7183242B2 (ja) 2019-11-28 2020-11-27 格子ベースの暗号鍵生成方法及び電子署名方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190155709 2019-11-28
KR20190155709 2019-11-28

Publications (2)

Publication Number Publication Date
KR20210066713A KR20210066713A (ko) 2021-06-07
KR102443255B1 true KR102443255B1 (ko) 2022-09-15

Family

ID=76374455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200147995A KR102443255B1 (ko) 2019-11-28 2020-11-06 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법

Country Status (2)

Country Link
KR (1) KR102443255B1 (ko)
SG (1) SG10202011677UA (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102637234B1 (ko) * 2023-07-06 2024-02-15 기초과학연구원 격자 기반 공개키 암호 시스템 및 이에 포함된 전자장치
CN117151713B (zh) * 2023-10-30 2024-01-09 国网浙江省电力有限公司 基于累积前景理论与vikor法的评估交易一体化算力优化方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Behnia 외 2명. "Lattice-Based Public Key Searchable Encryption from Experimental Perspectives." IEEE Transactions on Dependable and Secure Computing 17.6 (2018.)
Howe, James 외 4명. "Practical Lattice-based Digital Signature Schemes." ACM Transactions on Embedded Computing Systems (TECS) 14.3 (2015.)
Kamil D. Gur 외 5명, Practical Applications of Improved Gaussian Sampling for Trapdoor Lattices, IACR Transactions on Cryptographic Hardware and Embedded Systems (2018.)*
Leo Ducas 외 6명, CRYSTALS-Dilithium: A Lattice-Based Digital Signature Scheme, IEEE Transactions on Computers (2018.)*

Also Published As

Publication number Publication date
KR20210066713A (ko) 2021-06-07
SG10202011677UA (en) 2021-06-29

Similar Documents

Publication Publication Date Title
US11101976B2 (en) Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
US9590807B2 (en) Identity based public key cryptosystem
JP7183242B2 (ja) 格子ベースの暗号鍵生成方法及び電子署名方法
JPWO2007007836A1 (ja) 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体
KR102297536B1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
EP3038287A1 (en) General encoding functions for modular exponentiation encryption schemes
KR102443255B1 (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
US20240205007A1 (en) Identity-based encryption method based on lattices
WO2021098152A1 (zh) 基于区块链的数据处理方法、装置及计算机设备
US11799628B2 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
CN114553590A (zh) 数据传输方法及相关设备
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
US11671251B1 (en) Application programming interface to generate data key pairs
US11983419B2 (en) Sharing data in an organized storage system
US11902428B2 (en) Key exchange system, communication apparatus, key exchange method and program
KR102062377B1 (ko) 전자서명을 은닉서명으로 변환하는 암호화 방법
KR102418016B1 (ko) 래티스를 기반으로 하는 신원 기반 암호화 방법
KR20230049052A (ko) 격자전자서명의 비밀 키 생성 방법 및 이를 이용한 장치
KR20200099957A (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
KR102466016B1 (ko) 동형 암호문을 처리하는 서버 장치 및 그 방법
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩
US11652612B2 (en) Sharing access to data
CN111971677A (zh) 用于移动装置的防篡改数据编码

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right