KR101880517B1 - Lwe에 기반한 공개키 암호화 방법 - Google Patents

Lwe에 기반한 공개키 암호화 방법 Download PDF

Info

Publication number
KR101880517B1
KR101880517B1 KR1020160149246A KR20160149246A KR101880517B1 KR 101880517 B1 KR101880517 B1 KR 101880517B1 KR 1020160149246 A KR1020160149246 A KR 1020160149246A KR 20160149246 A KR20160149246 A KR 20160149246A KR 101880517 B1 KR101880517 B1 KR 101880517B1
Authority
KR
South Korea
Prior art keywords
value
rti
column vector
secret key
matrix
Prior art date
Application number
KR1020160149246A
Other languages
English (en)
Other versions
KR20180052207A (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 KR1020160149246A priority Critical patent/KR101880517B1/ko
Publication of KR20180052207A publication Critical patent/KR20180052207A/ko
Application granted granted Critical
Publication of KR101880517B1 publication Critical patent/KR101880517B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨터가 수행하는 LWE 기반 공개키 암호화 방법에 관한 것으로서, 비밀키 행렬(
Figure 112016109830901-pat00241
)을 다음 수학식과 같이 집합
Figure 112016109830901-pat00242
의 균등 분포를 독립적으로 k번 샘플링하여 산출되는 행렬로 설정하는 것을 특징으로 한다.
[수학식]
Figure 112016109830901-pat00243

n: 공개키 행렬의 열의 개수
k: 평문 메시지 벡터의 원소의 개수
Figure 112016109830901-pat00244
: 0이 아닌 원소가
Figure 112016109830901-pat00245
에서 선택되고 0이 아닌 원소의 개수가
Figure 112016109830901-pat00246
인 열벡터(
Figure 112016109830901-pat00247
)로 구성되는 집합

Description

LWE에 기반한 공개키 암호화 방법{Public Key Crypto-Method Based on LWE}
본 발명은 LWE에 기반한 공개키 암호화 방법에 관한 것으로서 좀 더 자세하게는 계산 속도가 월등하게 빠른 양자컴퓨터에 의해서도 보안성이 담보되는 공개키 암호화 방법에 관한 것이다.
암호화 방법에는 크게 대칭키 암호화 방법과 비대칭키 암호화 방법이 있다. 대칭키 암호화 방법은 암호화에 사용하는 키와 복호화에 사용하는 키가 동일하기 때문에 속도는 빠르지만 키의 분실 등으로 인해 보안성이 담보되지 않는 단점이 있었다. 그러한 문제를 해결하기 위하여 등장한 것이 비대칭키 암호화 방법이다. 비대칭키 암호화 방법에 의하면 제3자에게 공개하는 공개키와, 사용자 본인만 보유하는 비밀키(개인키)를 사용하며, 암호문을 수신인의 공개키로 암호화하면, 수신인은 암호문을 자신만이 가지고 있는 비밀키로 복호화하게 된다.
비대칭암호화 방법 중에서 대표적인 것이 1978년에 Ron Rivest, Adi Shamir, Leonard Adleman이 제안한 RSA 방식이며, 초기 스킴(scheme)에서 계속 발전하여 현재 가장 상업적으로 널리 사용되고 있다.
그러나 현재 연구가 활발하고 향후 등장할 예정인 양자 컴퓨터가 실용화되면 RSA 방식의 비대칭 암호문은 양자 컴퓨터에 의해 손쉽게 풀릴 수 있기 때문에 그에 대한 대안이 필요해지는 상황이다.
2005년에 Regev는 LWE에 기반한 공개키 암호화 방법을 제안한 바 있다.(O. Regev. On lattices, learning with errors, random linear codes, and cryptography. In STOC, LNCS, pages 84-93, 2005) 이 논문의 내용은 본 발명의 기술적 사상과 배치되지 않는 한 본 발명의 설명을 위해 본 명세서의 일부로서 합체된다. Regev가 상기 논문에서 제안한 LWE에 기반한 공개키 암호화 방법 및 그에 기초한 변형 암호화 방법을 본 명세서에서는 "LWE 기반 공개키 암호화 방법"이라고 표기한다.
그러나 이 방식은 파라미터의 크기가 크고 속도가 느리기 때문에 사물 인터넷 환경, TLS, 클라우드 컴퓨팅, 서버 연산 등의 실제 용도에 적합하지 않은 단점이 존재한다.
본 발명은 종래 기술의 이러한 단점을 해결하고, 파라미터의 크기가 상대적으로 작고 속도도 빠른 LWE 기반 공개키 암호화 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 컴퓨터가 수행하는 공유 비밀키 생성 방법은, 시드값으로부터 얻어지는 랜덤값으로 구성된 행렬(
Figure 112016109830901-pat00001
) 를 산출하는 제1 단계와, 에러 행렬 (
Figure 112016109830901-pat00002
;
Figure 112016109830901-pat00003
)를 산출하는 제2 단계와, 행렬 (
Figure 112016109830901-pat00004
;
Figure 112016109830901-pat00005
)를 산출하는 제3 단계와,
Figure 112016109830901-pat00006
를 행렬(
Figure 112016109830901-pat00007
)로 산출하는 제4 단계와, 행렬(
Figure 112016109830901-pat00008
)를 비밀키(sk)로 설정하는 제5 단계와, (시드값,
Figure 112016109830901-pat00009
) 또는 행렬(
Figure 112016109830901-pat00010
)을 공개키(pk)로 설정하는 제6 단계와, 열벡터 (
Figure 112016109830901-pat00011
;
Figure 112016109830901-pat00012
)를 산출하는 제7 단계와, 열벡터쌍 (
Figure 112016109830901-pat00013
;
Figure 112016109830901-pat00014
)를 산출하는 제8 단계와, 열벡터(
Figure 112016109830901-pat00015
)를 산출하는 제9 단계와, 제1 값(
Figure 112016109830901-pat00016
;
Figure 112016109830901-pat00017
,
Figure 112016109830901-pat00018
)과, 제2 값(
Figure 112016109830901-pat00019
)을 산출하여 제1 암호문(
Figure 112016109830901-pat00020
)을 출력하는 제10 단계와, 공유 비밀키(
Figure 112016109830901-pat00021
)를 설정하는 제11 단계를 포함한다.
상기 방법에 의해서 생성된 공유 비밀키를 수신자의 컴퓨터가 획득하는 방법은, 송신자 컴퓨터로부터 제1 암호문(
Figure 112016109830901-pat00022
)을 수신하는 제1 단계와, 열벡터(
Figure 112016109830901-pat00023
)를 산출하는 제2 단계와, 공유 비밀키(
Figure 112016109830901-pat00024
)를 산출하여 획득하는 제3 단계를 포함한다.
상기 방법에 의해 생성된 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법은, 메시지(
Figure 112016109830901-pat00025
)와 공유 비밀키의 XOR 연산을 통해 열벡터(
Figure 112016109830901-pat00026
)를 구하여 제2 암호문(
Figure 112016109830901-pat00027
)을 출력하는 제1 단계를 더 포함한다.
상기 방법에 의해 암호화된 암호문을 수신자의 컴퓨터가 복호화하는 방법은, 수신자의 컴퓨터가 송신자의 컴퓨터로부터 제1 암호문과 제2 암호문을 수신하는 제1 단계와, 열벡터(
Figure 112016109830901-pat00028
)를 산출하는 제2 단계와, 공유 비밀키(
Figure 112016109830901-pat00029
)를 산출하여 획득하는 제3 단계와, 메시지(
Figure 112016109830901-pat00030
)를 복호화하는 제4 단계를 포함한다.
상기 방법에 의해 생성된 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법의 다른 형태는, 제1 해쉬 함수(G;
Figure 112018036365040-pat00031
; j는 무작위성(randomness)에 관련된 정수, L: 랜덤 비트(random bits)의 개수,
Figure 112018036365040-pat00274
은 메시지 비트의 길이)와 제2 해쉬 함수(H;
Figure 112018036365040-pat00033
)와 제3 해쉬 함수(H';
Figure 112018036365040-pat00034
)을 설정하는 제1 단계와, 임의의(random)
Figure 112018036365040-pat00035
값(
Figure 112018036365040-pat00036
)을 선택하는 제2 단계와, 메시지 암호화 값(
Figure 112018036365040-pat00037
;
Figure 112018036365040-pat00038
)을 산출하는 제3 단계와,
Figure 112018036365040-pat00039
값을 공개키로 암호화한 열벡터쌍((
Figure 112018036365040-pat00040
);
Figure 112018036365040-pat00041
)을 산출하되, L 비트를 가지는 임의의(random) 스트링
Figure 112018036365040-pat00042
에 의해서 샘플링이 수행되어 열벡터쌍이 선택되는 제4 단계와,
Figure 112018036365040-pat00043
값을 제3 해쉬 함수로 해쉬한 해쉬값(
Figure 112018036365040-pat00044
;
Figure 112018036365040-pat00045
)을 산출하는 제5 단계와, 제3 암호문
Figure 112018036365040-pat00046
을 출력하는 제6 단계를 포함한다.
위 방법에 의해 암호화된 암호문을 수신하여 컴퓨터가 복호화하는 방법은, 제1 암호문(
Figure 112016109830901-pat00047
)과 제3 암호문
Figure 112016109830901-pat00048
을 수신하는 제1 단계와, 열벡터(
Figure 112016109830901-pat00049
)를 산출하는 제2 단계와, 공유 비밀키(
Figure 112016109830901-pat00050
)를 산출하여 획득하는 제3 단계와, 열벡터쌍(
Figure 112016109830901-pat00051
)과 공유 비밀키를 XOR 연산하여
Figure 112016109830901-pat00052
값을 획득하는 제4 단계와, 메시지값(
Figure 112016109830901-pat00053
;
Figure 112016109830901-pat00054
)을 복호화하는 제5 단계를 포함한다.
본 발명은 컴퓨터가 수행하는 LWE 기반 공개키 암호화 방법에 관한 것으로서, 비밀키 행렬(
Figure 112016109830901-pat00055
)을 다음 수학식과 같이 집합
Figure 112016109830901-pat00056
의 균등 분포를 독립적으로 k번 샘플링하여 산출되는 행렬로 설정하는 것을 특징으로 한다.
[수학식]
Figure 112016109830901-pat00057
n: 공개키 행렬의 열의 개수
k: 평문 메시지 벡터의 원소의 개수
Figure 112016109830901-pat00058
: 0이 아닌 원소가
Figure 112016109830901-pat00059
에서 선택되고 0이 아닌 원소의 개수가
Figure 112016109830901-pat00060
인 열벡터(
Figure 112016109830901-pat00061
)로 구성되는 집합
상기 방법에서
Figure 112016109830901-pat00062
는 1인 것이 바람직하다.
본 발명에 의하면, 종래 기술에 비해 메시지를 암호화한 암호문의 크기가 작아지며, 암호화 속도도 빠른 작용효과가 제공된다.
도 1은 본 발명의 제1 실시예에 의한 암호화/복호화 과정의 흐름도.
도 2는 본 발명의 제2 실시예에 의한 암호화/복호화 과정의 흐름도.
이하에서는 본 발명에 대해서 자세하게 설명하기로 한다.
본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것 뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터도 포함하는 개념으로 정의된다.
후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
본 발명의 기술적 사상은 전술한 정의의 "LWE 기반 공개키 암호화 방법"에 있어서 sparse secret을 사용하는 것에 있으며, 이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며 본 발명의 권리범위가 본 명세서에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
본 명세서에서는 다음과 같이 표기를 정하기로 한다.
영문 대문자 볼드체: 행렬
영문 소문자 볼드체: 열벡터(column vector)
Figure 112016109830901-pat00063
: 분포(D)에 따라서 원소(a)를 선택
Figure 112016109830901-pat00064
또는
Figure 112016109830901-pat00065
: 집합(
Figure 112016109830901-pat00066
)의 균등 분포(uniform distribution)에 따라서 원소를 선택
본 발명의 제1 실시예를 먼저 설명하고 제2 실시예를 설명하기로 한다.
본 발명의 제1 실시예에 의한 암호화 및 복호화를 위한 키 생성을 위해서 랜덤값으로 구성된 행렬(
Figure 112016109830901-pat00067
)를 산출한다(100). 랜덤 행렬의 산출을 위해서 먼저 시드값(seedA)을 다음과 같이 y 비트열을 가지는 임의의 값으로 획득하고 획득한 시드값을 유사 난수 생성기에 입력해서 랜덤 행렬(
Figure 112016109830901-pat00068
)을 산출한다.
Figure 112016109830901-pat00069
랜덤 행렬(
Figure 112016109830901-pat00070
)의 산출은 다른 방식에 의해서 수행되어도 무방하며 반드시 유사 난수 생성기에 의한 생성에 제한되지는 않는다.
다음으로 다음과 같이 에러 행렬(
Figure 112016109830901-pat00071
)을 산출한다.
Figure 112016109830901-pat00072
이는 파라미터
Figure 112016109830901-pat00073
를 가지며 정수의 집합
Figure 112016109830901-pat00074
의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution;
Figure 112016109830901-pat00075
)를
Figure 112016109830901-pat00076
번 독립적으로 샘플링하여 생성한 m개의 행과 k개의 열을 가지는 에러 행렬(
Figure 112016109830901-pat00077
)을 구성한다는 의미이다.
Figure 112016109830901-pat00078
은 공개키(pk)의 행렬의 행의 개수가 되고,
Figure 112016109830901-pat00079
는 평문 벡터(
Figure 112016109830901-pat00080
)의 원소의 개수에 대응한다.
래티스(L)는 열벡터(
Figure 112016109830901-pat00081
)의 정수 선형 결합의 집합(set of integer linear combination)으로서 다음과 같이 표현될 수 있다.
Figure 112016109830901-pat00082
파라미터 s에 대해서 래티스(L)의 이산 가우스 분포(D)는 다음과 같이 정의된다.
Figure 112016109830901-pat00083
;
Figure 112016109830901-pat00084
Figure 112016109830901-pat00085
다음으로 행렬(
Figure 112016109830901-pat00086
)를 아래 수학식에 의해서 산출한다(110). 이 행렬은 후술하는 바와 같이 비밀키로 설정된다.
Figure 112016109830901-pat00087
즉 집합
Figure 112016109830901-pat00088
의 균등 분포를 독립적으로 k번 샘플링하여 행렬(
Figure 112016109830901-pat00089
)을 산출한다. 행렬(
Figure 112016109830901-pat00090
)는 비밀키(sk)로 설정하고 보관된다. 상기 집합(
Figure 112016109830901-pat00091
)은, 0이 아닌 원소가
Figure 112016109830901-pat00092
에서 선택되고 0이 아닌 원소의 개수가
Figure 112016109830901-pat00093
인 열벡터(
Figure 112016109830901-pat00094
)로 구성되는 집합이다. 여기에서 sparse secret에 바람직하기로는
Figure 112016109830901-pat00095
가 가급적 작은 정수, 가장 바람직하게는 "1"인 것이 바람직하다. 이처럼 비밀키의 원소를 작은 수와 0에서 추출하면 비밀키의 norm이 작아지고 그에 따라서 암호화 속도가 현저하게 빨라진다.
다음으로는 행렬(
Figure 112016109830901-pat00096
)를 다음과 같은 수학식에 의해서 산출한다(115).
Figure 112016109830901-pat00097
행렬(
Figure 112016109830901-pat00098
)를 비밀키(sk)로 설정하고 보관한다(120). 그리고 공개키(pk)는 (
Figure 112016109830901-pat00099
)로 설정하고 공개한다(125). 신뢰할 수 있는 랜덤 소스(random source)가 있다면 시스템 내의 모든 사용자가 미리
Figure 112016109830901-pat00100
를 공유할 수 있으며, 그런 경우에는 공개키(pk)가
Figure 112016109830901-pat00101
로만 설정될 수 있다.
다음으로 제1 암호문(
Figure 112016109830901-pat00102
)의 출력(130)과, 송신자와 수신자가 임시로 공유하는 임시 공유 비밀키의 설정(135)에 대해서 설명하기로 한다.
먼저 집합(
Figure 112016109830901-pat00103
)를 샘플링하여 열벡터(
Figure 112016109830901-pat00104
)를 산출한다.
집합(
Figure 112016109830901-pat00105
)은, 0이 아닌 원소가
Figure 112016109830901-pat00106
에서 선택되고 0이 아닌 원소의 개수가
Figure 112016109830901-pat00107
인 열벡터(
Figure 112016109830901-pat00108
)로 구성되는 집합이다.
Figure 112016109830901-pat00109
역시 가급적 작은 정수, 가장 바람직하게는 "1"이 된다.
다음으로 열벡터의 쌍(pair)을 다음과 같이 산출한다.
Figure 112016109830901-pat00110
열벡터(
Figure 112016109830901-pat00111
)은 파라미터(
Figure 112016109830901-pat00112
)를 가지며 정수의 집합
Figure 112016109830901-pat00113
의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution;
Figure 112016109830901-pat00114
)를 k번 독립적으로 샘플링하여 생성한 열벡터이며, 열벡터(
Figure 112016109830901-pat00115
)는 파라미터(
Figure 112016109830901-pat00116
)를 가지며 정수의 집합
Figure 112016109830901-pat00117
의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution;
Figure 112016109830901-pat00118
)를 n번 독립적으로 샘플링하여 생성한 열벡터이다.
추가적인 열벡터(
Figure 112016109830901-pat00119
)는 다음과 같이 산출한다.
Figure 112016109830901-pat00120
이는 0과 1을 원소로 가지는 집합에서 독립적으로 k번 원소를 선택하여 구성한 열벡터이다.
이어서, 다음과 같은 수학식에 의해서 제1 암호문(
Figure 112016109830901-pat00121
)을 구성하는 열벡터의 쌍
Figure 112016109830901-pat00122
을 산출해서 출력한다.
Figure 112016109830901-pat00123
;
Figure 112016109830901-pat00124
;
Figure 112016109830901-pat00125
Figure 112016109830901-pat00126
본 명세서에서 다음과 같이 기호를 정의한다.
Figure 112016109830901-pat00127
일 때에(
Figure 112016109830901-pat00128
가 짝수면,
Figure 112016109830901-pat00129
)
Figure 112016109830901-pat00130
:
Figure 112016109830901-pat00131
를 2로 나눈 나머지
Figure 112016109830901-pat00132
:
Figure 112016109830901-pat00133
를 반올림
Figure 112016109830901-pat00134
:
Figure 112016109830901-pat00135
를 올림
Figure 112016109830901-pat00136
:
Figure 112016109830901-pat00137
를 내림
Figure 112016120336624-pat00138

Figure 112016120336624-pat00250
삭제
그리고 다음과 같은 열벡터(
Figure 112016109830901-pat00140
)를 데이터 암호를 위한 공유 비밀키로 설정한다.
Figure 112016109830901-pat00141
다음으로 메시지의 암호화하여 제3 값(
Figure 112016109830901-pat00142
)을 산출하고 제2 암호문을 아래와 같이 출력한다(140).
Figure 112016109830901-pat00143
제2 암호문 =
Figure 112016109830901-pat00144
위 과정을 통해서 암호화한 제1 암호문과 제2 암호문을 수신한 수신자는 다음과 같이 복호화 과정을 수행한다.
먼저 공유 비밀키(
Figure 112016109830901-pat00145
)를 다음과 같은 과정을 통해서 획득한다(145).
Figure 112016109830901-pat00146
Figure 112016109830901-pat00147
본 명세서에서 rec 함수는 다음과 같이 정의되는 함수이다.
디스조인트 구간
Figure 112016109830901-pat00148
Figure 112016109830901-pat00149
에 대해서
Figure 112016109830901-pat00150
일 때에,
Figure 112016109830901-pat00151
위와 같은 과정을 통해서 제1 암호문으로부터 공유 비밀키를 획득한 다음에는 아래 과정을 거쳐서 메시지(
Figure 112016109830901-pat00152
)를 복호화한다(150).
Figure 112016109830901-pat00153
이하에서는 본 발명의 제2 실시예에 의한 암호화 및 복호화 과정에 대해서 설명한다. 제1 실시예와 동일한 과정에 대해서는 중복을 피하기 위해 설명을 생략한다.
이 실시예에서 다음과 같은 파라미터가 먼저 정의된다.
j: 제2 실시예의 무작위성(randomness)에 관련된 정수
L: 제1 실시예에 요구되는 랜덤 비트(random bits)의 개수
본 실시예에서도 제1 실시예와 같은 방식으로 공개키(pk)와 비밀키(sk)가 설정된다.
제2 실시예에서는 다음과 같이 세 개의 해쉬 함수를 먼저 설정한다(200).
제1 해쉬 함수(G):
Figure 112016109830901-pat00154
제2 해쉬 함수(H):
Figure 112016109830901-pat00155
제3 해쉬 함수(H'):
Figure 112018036365040-pat00156

Figure 112018036365040-pat00275
은 메시지 비트의 길이를 의미한다.
삭제
다음으로 임의의(random)
Figure 112016109830901-pat00158
값을 다음과 같이 선택한다.
Figure 112016109830901-pat00159
Figure 112016109830901-pat00160
값은 제1 실시예에서와 같이 공개키로 암호화되어 수신자에게 전달된다.
메시지 암호화 값을 다음과 같은 수학식에 의해 산출한다(210).
Figure 112016109830901-pat00161
그리고
Figure 112016109830901-pat00162
값의 해쉬값을 아래와 같이 산출한다(215).
Figure 112016109830901-pat00163
다음으로 열벡터 쌍(
Figure 112016109830901-pat00164
)을 다음과 같이 산출한다(220).
Figure 112016109830901-pat00165
기호(
Figure 112016109830901-pat00166
)는 열벡터 또는 행렬의 연접을 의미한다.
위 수학식은 제1 실시예와 같은 방식으로
Figure 112016109830901-pat00167
값을 공개키(pk)로 암호화하되 L 비트를 가지는 임의의(random) 스트링
Figure 112016109830901-pat00168
에 의해서 샘플링이 수행되어 열벡터 쌍이 선택되는 것을 의미한다.
위 과정을 거쳐 산출된 열벡터의 쌍으로 아래와 같이 암호문을 출력한다.
암호문 =
Figure 112016109830901-pat00169
암호문을 전달받은 수신자는 다음과 같이 복호화를 수행한다(230).
먼저 (
Figure 112016109830901-pat00170
)를 제1 실시예에서 설명한 방식을 통해 비밀키로 복호화하여
Figure 112016109830901-pat00171
값을 획득한다. 복호화 과정은 제1 실시예에서 복호화하는 과정과 동일하다.
다음으로 아래 수학식에 의해 메시지(
Figure 112016109830901-pat00172
)를 복호화한다.
Figure 112016109830901-pat00173
Figure 112016109830901-pat00174
값을 제1 실시예의 방식으로 공개키(pk) 암호화를 한 값이 (
Figure 112016109830901-pat00175
)와 같은지 여부 및
Figure 112016109830901-pat00176
값을 제3 해쉬함수(H')에 의해 계산된 값이 암호문에 포함된
Figure 112016109830901-pat00177
값과 같은지 여부를 판단해 보고, 그러한 경우에 위에서 복호화된 메시지값(
Figure 112016109830901-pat00178
)을 출력한다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.

Claims (8)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법에 있어서,
    제1 해쉬 함수(G;
    Figure 112018036365040-pat00209
    ; j는 무작위성(randomness)에 관련된 정수, L: 랜덤 비트(random bits)의 개수,
    Figure 112018036365040-pat00276
    은 메시지 비트의 길이)와 제2 해쉬 함수(H;
    Figure 112018036365040-pat00211
    )와 제3 해쉬 함수(H';
    Figure 112018036365040-pat00212
    )을 설정하는 제1 단계와,
    임의의(random)
    Figure 112018036365040-pat00213
    값(
    Figure 112018036365040-pat00214
    )을 선택하는 제2 단계와,
    메시지 암호화 값(
    Figure 112018036365040-pat00215
    ;
    Figure 112018036365040-pat00216
    )을 산출하는 제3 단계와,
    Figure 112018036365040-pat00217
    값을 공유 비밀키(
    Figure 112018036365040-pat00251
    )로 암호화한 열벡터쌍((
    Figure 112018036365040-pat00218
    );
    Figure 112018036365040-pat00219
    )을 산출하되, L 비트를 가지는 임의의(random) 스트링
    Figure 112018036365040-pat00220
    에 의해서 샘플링이 수행되어 열벡터쌍이 선택되는 제4 단계와,
    Figure 112018036365040-pat00221
    값을 제3 해쉬 함수로 해쉬한 해쉬값(
    Figure 112018036365040-pat00222
    ;
    Figure 112018036365040-pat00223
    )을 산출하는 제5 단계와,
    제3 암호문
    Figure 112018036365040-pat00224
    을 출력하는 제6 단계를 포함하며,
    상기 공유 비밀키(
    Figure 112018036365040-pat00252
    )는,
    시드값으로부터 얻어지는 랜덤값으로 구성된 행렬(
    Figure 112018036365040-pat00253
    ) 를 산출하는 제1-1 단계와,
    에러 행렬 (
    Figure 112018036365040-pat00254
    ;
    Figure 112018036365040-pat00255
    )를 산출하는 제2-1 단계와,
    행렬 (
    Figure 112018036365040-pat00256
    ;
    Figure 112018036365040-pat00257
    )를 산출하는 제3-1 단계와,
    Figure 112018036365040-pat00258
    를 행렬(
    Figure 112018036365040-pat00259
    )로 산출하는 제4-1 단계와,
    행렬(
    Figure 112018036365040-pat00260
    )를 비밀키(sk)로 설정하는 제5-1 단계와,
    (시드값,
    Figure 112018036365040-pat00261
    ) 또는 행렬(
    Figure 112018036365040-pat00262
    )을 공개키(pk)로 설정하는 제6-1 단계와,
    열벡터 (
    Figure 112018036365040-pat00263
    ;
    Figure 112018036365040-pat00264
    )를 산출하는 제7-1 단계와,
    열벡터쌍 (
    Figure 112018036365040-pat00265
    ;
    Figure 112018036365040-pat00266
    )를 산출하는 제8-1 단계와,
    열벡터(
    Figure 112018036365040-pat00267
    )를 산출하는 제9-1 단계와,
    제1 값(
    Figure 112018036365040-pat00268
    ;
    Figure 112018036365040-pat00269
    ,
    Figure 112018036365040-pat00270
    )과, 제2 값(
    Figure 112018036365040-pat00271
    )을 산출하여 제1 암호문(
    Figure 112018036365040-pat00272
    )을 출력하는 제10-1 단계와,
    공유 비밀키(
    Figure 112018036365040-pat00273
    )를 설정하는 제11-1 단계를 포함하는 방법에 의해 생성되는,
    암호화 방법.
  6. 청구항 5에 의해 암호화된 암호문을 수신하여 컴퓨터가 복호화하는 방법에 있어서,
    제1 암호문(
    Figure 112016109830901-pat00225
    )과 제3 암호문
    Figure 112016109830901-pat00226
    을 수신하는 제1 단계와,
    열벡터(
    Figure 112016109830901-pat00227
    )를 산출하는 제2 단계와,
    공유 비밀키(
    Figure 112016109830901-pat00228
    )를 산출하여 획득하는 제3 단계와,
    열벡터쌍(
    Figure 112016109830901-pat00229
    )과 공유 비밀키를 XOR 연산하여
    Figure 112016109830901-pat00230
    값을 획득하는 제4 단계와,
    메시지값(
    Figure 112016109830901-pat00231
    ;
    Figure 112016109830901-pat00232
    )을 복호화하는 제5 단계를 포함하는,
    복호화 방법.
  7. 컴퓨터가 수행하는 LWE 기반 공개키 암호화 방법에 있어서,
    비밀키 행렬(
    Figure 112016109830901-pat00233
    )을 다음 수학식과 같이 집합
    Figure 112016109830901-pat00234
    의 균등 분포를 독립적으로 k번 샘플링하여 산출되는 행렬로 설정하는 암호화 방법.
    [수학식]
    Figure 112016109830901-pat00235

    n: 공개키 행렬의 열의 개수
    k: 평문 메시지 벡터의 원소의 개수
    Figure 112016109830901-pat00236
    : 0이 아닌 원소가
    Figure 112016109830901-pat00237
    에서 선택되고 0이 아닌 원소의 개수가
    Figure 112016109830901-pat00238
    인 열벡터(
    Figure 112016109830901-pat00239
    )로 구성되는 집합
  8. 청구항 7에 있어서,
    Figure 112016109830901-pat00240
    는 1인,
    암호화 방법.


KR1020160149246A 2016-11-10 2016-11-10 Lwe에 기반한 공개키 암호화 방법 KR101880517B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160149246A KR101880517B1 (ko) 2016-11-10 2016-11-10 Lwe에 기반한 공개키 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160149246A KR101880517B1 (ko) 2016-11-10 2016-11-10 Lwe에 기반한 공개키 암호화 방법

Publications (2)

Publication Number Publication Date
KR20180052207A KR20180052207A (ko) 2018-05-18
KR101880517B1 true KR101880517B1 (ko) 2018-07-20

Family

ID=62453729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160149246A KR101880517B1 (ko) 2016-11-10 2016-11-10 Lwe에 기반한 공개키 암호화 방법

Country Status (1)

Country Link
KR (1) KR101880517B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150032928A (ko) * 2012-04-12 2015-03-31 진타이 딩 오류를 갖는 페어링을 이용한 새로운 암호 시스템들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150032928A (ko) * 2012-04-12 2015-03-31 진타이 딩 오류를 갖는 페어링을 이용한 새로운 암호 시스템들

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Peikert, Chris. "Lattice Cryptography for the Internet." International Workshop on Post-Quantum Cryptography. Springer, Cham, 2014. (2014.07.16.) *
Prasad, M. N. M., Mohammed Ali Hussain, and C. V. Sastry. "LWE Encryption Using LZW Compression." Global Journal of Computer Science and Technology (2014). (2015.11.23.) *
논문:(2008) *
논문:(2009) *
논문:(2014) *
논문:(2015) *

Also Published As

Publication number Publication date
KR20180052207A (ko) 2018-05-18

Similar Documents

Publication Publication Date Title
US10057057B2 (en) Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
KR101861089B1 (ko) 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
US8345861B2 (en) Sharing a secret using polynomial division over GF(Q)
KR102019159B1 (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
EP3467808B1 (en) Encryption device, encryption method, decryption device, and decryption method
Iyer et al. A novel idea on multimedia encryption using hybrid crypto approach
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
US11329799B2 (en) Calculation device for encryption using public key and encryption method thereof
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
KR101905689B1 (ko) 공개키를 이용하여 암호화하는 연산 장치 및 그 암호화 방법
US11075889B2 (en) Method and system for encrypting/decrypting data with ultra-low latency for secure data storage and/or communication
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
JP5689826B2 (ja) 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム
Kish et al. Enhanced usage of keys obtained by physical, unconditionally secure distributions
KR101880517B1 (ko) Lwe에 기반한 공개키 암호화 방법
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
Aïssa et al. Image encryption using stream cipher based on nonlinear combination generator with enhanced security
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
Dharani et al. Quantum Resistant Cryptographic Systems for Blockchain Network
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법
RU2291578C1 (ru) Способ поточного шифрования данных
Rasool et al. Secure Data Transmission over Networks
Rasool et al. Enhanced Secure Algorithm for Message Communication
Chen et al. A multi-bit fully homomorphic encryption with shorter public key from LWE

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant