KR101880517B1 - Lwe에 기반한 공개키 암호화 방법 - Google Patents
Lwe에 기반한 공개키 암호화 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation 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
Description
본 발명은 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 기반 공개키 암호화 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 컴퓨터가 수행하는 공유 비밀키 생성 방법은, 시드값으로부터 얻어지는 랜덤값으로 구성된 행렬() 를 산출하는 제1 단계와, 에러 행렬 (; )를 산출하는 제2 단계와, 행렬 ( ; )를 산출하는 제3 단계와, 를 행렬()로 산출하는 제4 단계와, 행렬()를 비밀키(sk)로 설정하는 제5 단계와, (시드값, ) 또는 행렬()을 공개키(pk)로 설정하는 제6 단계와, 열벡터 ( ; )를 산출하는 제7 단계와, 열벡터쌍 (; )를 산출하는 제8 단계와, 열벡터()를 산출하는 제9 단계와, 제1 값(; , )과, 제2 값()을 산출하여 제1 암호문()을 출력하는 제10 단계와, 공유 비밀키()를 설정하는 제11 단계를 포함한다.
상기 방법에 의해서 생성된 공유 비밀키를 수신자의 컴퓨터가 획득하는 방법은, 송신자 컴퓨터로부터 제1 암호문()을 수신하는 제1 단계와, 열벡터()를 산출하는 제2 단계와, 공유 비밀키()를 산출하여 획득하는 제3 단계를 포함한다.
상기 방법에 의해 생성된 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법은, 메시지()와 공유 비밀키의 XOR 연산을 통해 열벡터()를 구하여 제2 암호문()을 출력하는 제1 단계를 더 포함한다.
상기 방법에 의해 암호화된 암호문을 수신자의 컴퓨터가 복호화하는 방법은, 수신자의 컴퓨터가 송신자의 컴퓨터로부터 제1 암호문과 제2 암호문을 수신하는 제1 단계와, 열벡터()를 산출하는 제2 단계와, 공유 비밀키()를 산출하여 획득하는 제3 단계와, 메시지()를 복호화하는 제4 단계를 포함한다.
상기 방법에 의해 생성된 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법의 다른 형태는, 제1 해쉬 함수(G; ; j는 무작위성(randomness)에 관련된 정수, L: 랜덤 비트(random bits)의 개수, 은 메시지 비트의 길이)와 제2 해쉬 함수(H; )와 제3 해쉬 함수(H'; )을 설정하는 제1 단계와, 임의의(random) 값()을 선택하는 제2 단계와, 메시지 암호화 값(; )을 산출하는 제3 단계와, 값을 공개키로 암호화한 열벡터쌍((); )을 산출하되, L 비트를 가지는 임의의(random) 스트링 에 의해서 샘플링이 수행되어 열벡터쌍이 선택되는 제4 단계와, 값을 제3 해쉬 함수로 해쉬한 해쉬값(; )을 산출하는 제5 단계와, 제3 암호문을 출력하는 제6 단계를 포함한다.
위 방법에 의해 암호화된 암호문을 수신하여 컴퓨터가 복호화하는 방법은, 제1 암호문()과 제3 암호문을 수신하는 제1 단계와, 열벡터()를 산출하는 제2 단계와, 공유 비밀키()를 산출하여 획득하는 제3 단계와, 열벡터쌍()과 공유 비밀키를 XOR 연산하여 값을 획득하는 제4 단계와, 메시지값(; )을 복호화하는 제5 단계를 포함한다.
본 발명은 컴퓨터가 수행하는 LWE 기반 공개키 암호화 방법에 관한 것으로서, 비밀키 행렬()을 다음 수학식과 같이 집합 의 균등 분포를 독립적으로 k번 샘플링하여 산출되는 행렬로 설정하는 것을 특징으로 한다.
[수학식]
n: 공개키 행렬의 열의 개수
k: 평문 메시지 벡터의 원소의 개수
본 발명에 의하면, 종래 기술에 비해 메시지를 암호화한 암호문의 크기가 작아지며, 암호화 속도도 빠른 작용효과가 제공된다.
도 1은 본 발명의 제1 실시예에 의한 암호화/복호화 과정의 흐름도.
도 2는 본 발명의 제2 실시예에 의한 암호화/복호화 과정의 흐름도.
도 2는 본 발명의 제2 실시예에 의한 암호화/복호화 과정의 흐름도.
이하에서는 본 발명에 대해서 자세하게 설명하기로 한다.
본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것 뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터도 포함하는 개념으로 정의된다.
후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
본 발명의 기술적 사상은 전술한 정의의 "LWE 기반 공개키 암호화 방법"에 있어서 sparse secret을 사용하는 것에 있으며, 이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며 본 발명의 권리범위가 본 명세서에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
본 명세서에서는 다음과 같이 표기를 정하기로 한다.
영문 대문자 볼드체: 행렬
영문 소문자 볼드체: 열벡터(column vector)
본 발명의 제1 실시예를 먼저 설명하고 제2 실시예를 설명하기로 한다.
본 발명의 제1 실시예에 의한 암호화 및 복호화를 위한 키 생성을 위해서 랜덤값으로 구성된 행렬()를 산출한다(100). 랜덤 행렬의 산출을 위해서 먼저 시드값(seedA)을 다음과 같이 y 비트열을 가지는 임의의 값으로 획득하고 획득한 시드값을 유사 난수 생성기에 입력해서 랜덤 행렬()을 산출한다.
이는 파라미터 를 가지며 정수의 집합 의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution; )를 번 독립적으로 샘플링하여 생성한 m개의 행과 k개의 열을 가지는 에러 행렬()을 구성한다는 의미이다.
파라미터 s에 대해서 래티스(L)의 이산 가우스 분포(D)는 다음과 같이 정의된다.
즉 집합 의 균등 분포를 독립적으로 k번 샘플링하여 행렬()을 산출한다. 행렬()는 비밀키(sk)로 설정하고 보관된다. 상기 집합()은, 0이 아닌 원소가 에서 선택되고 0이 아닌 원소의 개수가 인 열벡터()로 구성되는 집합이다. 여기에서 sparse secret에 바람직하기로는 가 가급적 작은 정수, 가장 바람직하게는 "1"인 것이 바람직하다. 이처럼 비밀키의 원소를 작은 수와 0에서 추출하면 비밀키의 norm이 작아지고 그에 따라서 암호화 속도가 현저하게 빨라진다.
행렬()를 비밀키(sk)로 설정하고 보관한다(120). 그리고 공개키(pk)는 ()로 설정하고 공개한다(125). 신뢰할 수 있는 랜덤 소스(random source)가 있다면 시스템 내의 모든 사용자가 미리 를 공유할 수 있으며, 그런 경우에는 공개키(pk)가 로만 설정될 수 있다.
다음으로 열벡터의 쌍(pair)을 다음과 같이 산출한다.
열벡터()은 파라미터()를 가지며 정수의 집합 의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution; )를 k번 독립적으로 샘플링하여 생성한 열벡터이며, 열벡터()는 파라미터()를 가지며 정수의 집합 의 래티스(lattice)에 대한 이산 가우스 분포(discrete Gaussian distribution;
)를 n번 독립적으로 샘플링하여 생성한 열벡터이다.
이는 0과 1을 원소로 가지는 집합에서 독립적으로 k번 원소를 선택하여 구성한 열벡터이다.
본 명세서에서 다음과 같이 기호를 정의한다.
삭제
위 과정을 통해서 암호화한 제1 암호문과 제2 암호문을 수신한 수신자는 다음과 같이 복호화 과정을 수행한다.
본 명세서에서 rec 함수는 다음과 같이 정의되는 함수이다.
이하에서는 본 발명의 제2 실시예에 의한 암호화 및 복호화 과정에 대해서 설명한다. 제1 실시예와 동일한 과정에 대해서는 중복을 피하기 위해 설명을 생략한다.
이 실시예에서 다음과 같은 파라미터가 먼저 정의된다.
j: 제2 실시예의 무작위성(randomness)에 관련된 정수
L: 제1 실시예에 요구되는 랜덤 비트(random bits)의 개수
본 실시예에서도 제1 실시예와 같은 방식으로 공개키(pk)와 비밀키(sk)가 설정된다.
제2 실시예에서는 다음과 같이 세 개의 해쉬 함수를 먼저 설정한다(200).
삭제
메시지 암호화 값을 다음과 같은 수학식에 의해 산출한다(210).
위 수학식은 제1 실시예와 같은 방식으로 값을 공개키(pk)로 암호화하되 L 비트를 가지는 임의의(random) 스트링 에 의해서 샘플링이 수행되어 열벡터 쌍이 선택되는 것을 의미한다.
위 과정을 거쳐 산출된 열벡터의 쌍으로 아래와 같이 암호문을 출력한다.
암호문을 전달받은 수신자는 다음과 같이 복호화를 수행한다(230).
값을 제1 실시예의 방식으로 공개키(pk) 암호화를 한 값이 ()와 같은지 여부 및 값을 제3 해쉬함수(H')에 의해 계산된 값이 암호문에 포함된 값과 같은지 여부를 판단해 보고, 그러한 경우에 위에서 복호화된 메시지값()을 출력한다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
Claims (8)
- 삭제
- 삭제
- 삭제
- 삭제
- 공유 비밀키를 이용하여 컴퓨터가 수행하는 암호화 방법에 있어서,
제1 해쉬 함수(G; ; j는 무작위성(randomness)에 관련된 정수, L: 랜덤 비트(random bits)의 개수, 은 메시지 비트의 길이)와 제2 해쉬 함수(H; )와 제3 해쉬 함수(H'; )을 설정하는 제1 단계와,
임의의(random) 값()을 선택하는 제2 단계와,
메시지 암호화 값(; )을 산출하는 제3 단계와,
값을 공유 비밀키()로 암호화한 열벡터쌍((); )을 산출하되, L 비트를 가지는 임의의(random) 스트링 에 의해서 샘플링이 수행되어 열벡터쌍이 선택되는 제4 단계와,
값을 제3 해쉬 함수로 해쉬한 해쉬값(; )을 산출하는 제5 단계와,
제3 암호문을 출력하는 제6 단계를 포함하며,
상기 공유 비밀키()는,
시드값으로부터 얻어지는 랜덤값으로 구성된 행렬() 를 산출하는 제1-1 단계와,
에러 행렬 (; )를 산출하는 제2-1 단계와,
행렬 ( ; )를 산출하는 제3-1 단계와,
를 행렬()로 산출하는 제4-1 단계와,
행렬()를 비밀키(sk)로 설정하는 제5-1 단계와,
(시드값, ) 또는 행렬()을 공개키(pk)로 설정하는 제6-1 단계와,
열벡터 ( ; )를 산출하는 제7-1 단계와,
열벡터쌍 (; )를 산출하는 제8-1 단계와,
열벡터()를 산출하는 제9-1 단계와,
제1 값(; , )과, 제2 값()을 산출하여 제1 암호문()을 출력하는 제10-1 단계와,
공유 비밀키()를 설정하는 제11-1 단계를 포함하는 방법에 의해 생성되는,
암호화 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150032928A (ko) * | 2012-04-12 | 2015-03-31 | 진타이 딩 | 오류를 갖는 페어링을 이용한 새로운 암호 시스템들 |
-
2016
- 2016-11-10 KR KR1020160149246A patent/KR101880517B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150032928A (ko) * | 2012-04-12 | 2015-03-31 | 진타이 딩 | 오류를 갖는 페어링을 이용한 새로운 암호 시스템들 |
Non-Patent Citations (6)
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 |