KR102354456B1 - 프라임 모듈로 이중 캡슐화에 기초한 일대다 분산 키 관리 기능을 갖춘 포스트 퀀텀 비대칭 키 암호 시스템 - Google Patents
프라임 모듈로 이중 캡슐화에 기초한 일대다 분산 키 관리 기능을 갖춘 포스트 퀀텀 비대칭 키 암호 시스템 Download PDFInfo
- Publication number
- KR102354456B1 KR102354456B1 KR1020190102150A KR20190102150A KR102354456B1 KR 102354456 B1 KR102354456 B1 KR 102354456B1 KR 1020190102150 A KR1020190102150 A KR 1020190102150A KR 20190102150 A KR20190102150 A KR 20190102150A KR 102354456 B1 KR102354456 B1 KR 102354456B1
- Authority
- KR
- South Korea
- Prior art keywords
- array
- key
- prime
- inverse
- public
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Electromagnetism (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
포스트-퀀텀 비대칭 키 생성 방법 및 시스템에서, 처리 유닛은 프라임 및 산술 함수 또는 클래식 스트링에 기초하여, 무한한 개수의 성분들을 갖는 프라임 벡터를 생성하며(S31), 프라임 벡터에 기초하여 p-어레이를 생성하며(S32), 프라임 어레이에 기초하여 관련 매트릭스를 생성하며(S35), 관련 매트릭스 및 제1 기준 프라임에 기초하여, 개인키 역할을 하는 제1 기준 인버스 프라임 어레이를 획득하며(S38), 그리고 제2 기준 인버스 프라임 어레이에 기초하여 개인키와 쌍을 이루는 공개키를 획득한다(S40). 제2 기준 인버스 프라임 어레이는 관련 매트릭스, 제1 기준 프라임, 제2 기준 프라임 및 랜덤화 어레이에 기초하여 획득된다.
Description
본 발명은 비대칭 키 생성 방법에 관한 것으로, 더 구체적으로는 격자 대수 기반의 포스트 퀀텀 비대칭 키 생성 방법(lattice algebra based post-quantum asymmetric key generation method) 및 시스템, 키-리프레시 방법, 암호화 방법, 복호화 방법 및 암호화 통신 시스템에 관한 것이다.
고전적인 암호 시스템은 대칭 키 알고리즘과 비대칭 키 알고리즘의 두 가지 주요 카테고리들로 분류될 수 있다. 대칭 키 알고리즘(예를 들어, AES(Advanced Encryption Standard))은 공유 키를 사용하여 암호화 및 복호화를 수행한다. 비대칭 키 알고리즘은 서로 다른 키, 즉 쌍을 이루는 공개키와 개인키를 사용하여 암호화 및 복호화를 수행한다. 예를 들어, RSA는 최초의 공개키 암호 시스템들 중 하나이며, 그리고 보안 데이터 전송에 널리 사용되고; NTRU(number theory research unit)는 또 다른 비대칭 키 알고리즘이며; 그리고 ECC(elliptic curve cryptography)는 타원 곡선들의 대수 구조를 기반으로 하는 공개키 암호화에 대한 접근법이다. 대칭 키 알고리즘의 구현에는 두 당사자들 간의 키 교환을 위한 보안 채널이 필요하다. 비대칭 키 알고리즘의 구현에는 보안 채널이 필요하지 않지만, 비대칭 키 알고리즘은 쌍을 이루는 키의 생성, 암호화 및 복호화에 비교적 많은 양의 계산을 요구할 수 있다. RSA와 비교하여, ECC가 더 나은 보안을 제공할 수 있지만, 암호화 및 복호화에 더 많은 시간이 필요하다.
전통적인 암호 시스템에는 다음과 같은 단점이 있을 수 있다 :
1. 현재의 비대칭 키 알고리즘에 대한 프로토콜은 암호화 및 해독화가 한 번에 한 문자씩 처리되기 때문에 짧은 시간 내에 많은 양의 데이터를 전송할 수 없다.
2. 현재의 비대칭키 알고리즘은 동일한 대수 그룹, 링 또는 벡터 공간에 속하는 것과 같은 수학적 특성을 가지며 본질적으로 유사한 공개키 및 개인키를 사용하므로, 평문 공격(plaintext attack) 또는 무작위 대입 공격(brute force attack)을 받기 쉽다.
3. 현재 비대칭 키 알고리즘의 경우, 사용자가 자신의 공개키를 새로운 공개키로 변경하면, 다른 모든 사용자는 자신의 개인키를 새로운 공개키와 쌍을 이루도록 업데이트해야 한다. 그렇지 않으면, 이전 개인키를 계속 사용하는 사용자로부터의 가능한 통신은 유효하지 않을 것이다.
4. 시스템 설치시 모든 사용자가 키 리프레시를 수행해야 하는 경우, 키 리프레시 시간을 나타내는 중앙집중형 엔티티가 필요하다.
5. 소인수 분해 기반 알고리즘(예를 들어, RSA, DSA) 또는 이산 로그 문제 기반 알고리즘(예를 들어, ECC)은 Shor 및 Grover의 알고리즘에 기초한 포스트 퀀텀 공격에 약하다.
6. 분산 키 리프레시는 이러한 암호 시스템에 대한 프로토콜의 기본 정의의 일부가 아니기 때문에, RSA, AES 그리고 NTRU를 사용하는 네트워크에는 분산 키 리프레시가 존재하지 않는다.
7. 전통적인 공개키 암호 시스템은 강하게 결합된 공개-개인키들을 갖는다(즉, 각각의 공개키는 유일한 개인키와 쌍을 이룬다). 쌍을 이룬 키들 중 하나에 대한 공격은 종종 다른 하나의 정보를 누설한다.
따라서, 본 발명의 목적은 종래 기술의 결점들 중 적어도 하나를 완화할 수 있는 격자 대수 기반의 포스트 퀀텀 비대칭 키 생성 방법(lattice algebra based post-quantum asymmetric key generation method) 및 시스템, 키-리프레시 메커니즘, 암호화 방법, 복호화 방법 및 암호화 통신 시스템에 관한 것이다.
본 개시서에 따르면, 포스트-퀀텀 비대칭 키 생성 방법은 처리 유닛에 의해 구현되며, 다음의 단계들을 포함한다 :
A) 프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, p-벡터로 표시되고 프라임 p에 의존하는 로서 표기되는 벡터를 생성하는 단계로서, 상기 p-벡터()는 무한한 개수의 성분들을 가지며, 그리고 로 정의되며, 여기서 f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, 단계;
B) I = (p, s, t)로서 인스턴스의 개념을 정의하는 단계로서, p는 프라임이며, s 및 t는 사용자-정의되는 양의 정수들인, 단계;
C) p-벡터() 및 인스턴스 I = (p, s, t)에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하는 단계로서, 상기 p-어레이()는 로 정의되며, I = (p, s, t)가 공지된 경우 상기 p-어레이()는 로도 표현되는, 단계;
E) 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하는 단계로서, 상기 인버스 p-어레이()는 로 정의되며, 여기서, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 단계;
F) 제1 기준 프라임(p 1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p 1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p 2 )을 결정하는 단계로서, 상기 미리 결정된 기준은 을 포함하는, 단계;
G) 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 ) 각각이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이() 및 제2 기준 인버스 p-어레이()를 획득하는 단계로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(K private ) 역할을 하는, 단계; 및
H) 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p 1 ), 상기 제2 기준 프라임(p 2 ) 및 상기 키-생성 랜덤화 어레이()와 관련하여 공개키(K public )를 생성하는 단계로서, 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(K public )는 개인키(K private )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 라고도 표시되는 어레이()이며, 를 나타내며, 는 키 생성 랜덤화 어레이()에 대한 제2 기준 인버스 p-어레이()의 키 생성 랜덤화 함수이며, 그리고 로 정의되며, 여기서 는 컨볼루션 곱셈 연산자를 나타내는, 단계.
이 개시서에 따르면, 암호화 방법은 프로세서에 의해 구현되며, 상기 암호화 방법은 :
이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에 따라 생성되는 공개키(K public ), 이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 프라임(p 2 ), 그리고 0과 이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 전송될 평문에 대응하고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대한 암호화 절차를 수행하고, 상기 암호화 랜덤화 어레이()에 관한 암호문()을 획득하는 단계로서, 상기 암호문()은 m 개의 암호화된 숫자 성분들을 갖는, 단계를 포함한다.
이 개시서에 따르면, 해독 방법은 프로세서에 의해 구현되며, 상기 해독 방법은 :
이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 p-어레이(), 개인키(K private ), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 사용하여, 암호문()에 대해 해독 절차를 수행하고, m 개의 해독된 숫자성분들을 갖는 평문 어레이()를 획득하는 단계를 포함하며,
이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에 따라 생성되는 공개키, 이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 프라임(p 2 ), 그리고 0과 이 개시서의 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 전송될 평문에 대응하고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대한 암호화 절차를 수행하고, 그리고 상기 암호화 랜덤화 어레이()와 관련되고 m 개의 암호화된 숫자 성분들을 갖는 암호문()을 획득함으로써 생성된다.
이 개시서에 따르면, 포스트-퀀텀 비대칭 키 생성 시스템은 :
프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분들을 갖는 p-벡터()를 생성하도록 구성된 p-벡터 생성 모듈로서, 상기 p-벡터()는 로 정의되며, 여기서 f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, p-벡터 생성 모듈;
상기 p-벡터 생성 모듈에 연결되고, 그리고 상기 p-벡터()에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하도록 구성되는 p-어레이 생성 모듈로서, 상기 p-어레이()는 로 정의되며, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트(I)를 구성하며, 상기 p-어레이()는 로도 표현되는, p-어레이 생성 모듈;
상기 관련 매트릭스 생성 모듈에 연결되고, 그리고 상기 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하도록 구성된 인버스 p-어레이 생성 모듈로서, 상기 인버스 p-어레이()는 로 정의되며, 여기서, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 인버스 p-어레이 생성 모듈;
제1 기준 프라임(p 1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p 1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p 2 )을 결정하도록 구성된 기준 프라임 결정 모듈로서, 상기 미리 결정된 기준은 을 포함하는, 기준 프라임 결정 모듈;
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제1 기준 프라임(p 1 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이()를 획득하도록 구성된 개인키 생성 모듈로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(K private ) 역할을 하는, 개인키 생성 모듈; 및
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제2 기준 프라임(p 2 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제2 기준 인버스 p-어레이()를 획득하도록 구성되고, 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p 1 ), 상기 제2 기준 프라임(p 2 ) 및 상기 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(K public )를 생성하도록 구성되는 공개키 생성 모듈로서, 상기 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(K public )는 개인키(K private )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 라고도 표시되는 어레이()이며, 를 나타내는, 공개키 생성 모듈을 포함하며,
이 개시서에 따르면, 암호화 통신 시스템은 키 서버, 송신단 및 수신단을 포함하며,
상기 키 서버는 :
프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분들을 갖는 p-벡터()를 생성하도록 구성된 p-벡터 생성 모듈로서, 상기 p-벡터()는 로 정의되며, 여기서 f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, p-벡터 생성 모듈;
상기 p-벡터 생성 모듈에 연결되고, 그리고 상기 p-벡터()에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하도록 구성되는 p-어레이 생성 모듈로서, 상기 p-어레이()는 로 정의되며, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트(I)를 구성하며, 상기 p-어레이()는 로도 표현되는, p-어레이 생성 모듈;
상기 관련 매트릭스 생성 모듈에 연결되고, 그리고 상기 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하도록 구성된 인버스 p-어레이 생성 모듈로서, 상기 인버스 p-어레이()는 로 정의되며, 여기서, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 인버스 p-어레이 생성 모듈;
제1 기준 프라임(p 1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p 1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p 2 )을 결정하도록 구성된 기준 프라임 결정 모듈로서, 상기 미리 결정된 기준은 을 포함하는, 기준 프라임 결정 모듈;
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제1 기준 프라임(p 1 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이()를 획득하도록 구성된 개인키 생성 모듈로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(K private ) 역할을 하는, 개인키 생성 모듈; 및
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제2 기준 프라임(p 2 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제2 기준 인버스 p-어레이()를 획득하도록 구성되고, 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p 1 ), 상기 제2 기준 프라임(p 2 ) 및 상기 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(K public )를 생성하도록 구성되는 공개키 생성 모듈로서, 상기 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(K public )는 개인키(K private )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 라고도 표시되는 어레이()이며, 를 나타내는, 공개키 생성 모듈을 포함하며,
상기 송신단은 상기 공개키(K public ), 상기 제2 기준 프라임(p 2 ) 및 상기 제2 기준 양의 정수()를 저장하는 제1 저장 유닛, 그리고 상기 제1 저장 유닛에 연결된 제1 프로세서를 포함하며,
상기 수신단은 상기 개인키(K private ), 상기 p-어레이(), 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 )을 저장하는 제2 저장 유닛, 그리고 상기 제2 저장 유닛에 연결된 제2 프로세서를 포함하며,
상기 수신단에 전송될 평문에 대응하고 그리고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대해, 상기 제1 프로세서는 상기 제1 저장 유닛에 저장된 공개키(K public ) 및 제2 기준 프라임(p 2 ), 그리고 0과 상기 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 상기 데이터 어레이()에 대한 암호화 절차를 수행하고, 그리고 상기 암호화 랜덤화 어레이()에 관한 암호문()을 획득하며, 그리고 상기 송신단은 제1 통신 채널을 통해 상기 수신단에 상기 암호문()을 송신하며, 상기 암호문()은 m 개의 암호화된 숫자 성분들을 가지며,
본 개시서의 다른 특징들 및 이점들은 첨부 도면을 참조하여 실시예(들)에 대한 다음의 상세한 설명에서 명백해질 것이다.
도 1은 본 발명에 따른 암호화된 통신 시스템의 일 실시예를 나타내는 블록도이다.
도 2는 암호화된 통신 시스템의 키 서버를 도시하는 블록도이다.
도 3 및 도 4는 본 발명에 따른 키 생성 절차의 단계들을 설명하는 흐름도를 협력적으로 형성한다.
도 5는 암호화된 통신 시스템의 송신단을 나타내는 블록도이다.
도 6은 암호화된 통신 시스템의 수신단을 나타내는 블록도이다.
도 7은 본 발명에 따른 암호화 절차의 단계들을 설명하는 흐름도이다.
도 8은 본 발명에 따른 해독 절차의 단계들을 설명하는 흐름도이다.
도 1은 본 발명에 따른 암호화된 통신 시스템의 일 실시예를 나타내는 블록도이다.
도 2는 암호화된 통신 시스템의 키 서버를 도시하는 블록도이다.
도 3 및 도 4는 본 발명에 따른 키 생성 절차의 단계들을 설명하는 흐름도를 협력적으로 형성한다.
도 5는 암호화된 통신 시스템의 송신단을 나타내는 블록도이다.
도 6은 암호화된 통신 시스템의 수신단을 나타내는 블록도이다.
도 7은 본 발명에 따른 암호화 절차의 단계들을 설명하는 흐름도이다.
도 8은 본 발명에 따른 해독 절차의 단계들을 설명하는 흐름도이다.
본 개시서가 보다 상세하게 설명되기 전에, 적절한 것으로 고려되는 경우, 참조부호들 또는 참조부호들의 끝부분(terminal portion)은 옵션으로 유사한 특성을 가질 수 있는 대응하는 또는 유사한 요소들을 나타내기 위해 도면들 사이에서 반복되었다는 점에 유의해야 한다.
도 1을 참조하면, 본 개시서에 따른 암호화된 통신 시스템(100)의 실시예는 키 서버(1)를 포함하고 다수의 사용자단(user end)을 포함하는 것으로 도시되어 있다. 각각의 사용자단은 암호화 절차 및 해독 절차를 사용하는 통신 프로토콜에 기초하여 다른 사용자단과 통신할 수 있다. 각각의 사용자단은 메시지를 송신할 때 송신단으로서 기능하고, 메시지를 수신할 때 수신단으로서 기능할 수 있다. 도 1은 2 개의 사용자단들을 간단히 예시하는데, 그 중 하나는 송신단(2)으로서 기능하고, 다른 하나는 수신단(3)으로서 기능하지만, 본 개시서는 이와 관련하여 제한되지 않는다. 송신단(2)은 저장 유닛(21), 그리고 저장 유닛(21)에 연결된 프로세서(22)를 포함한다. 수신단(3)은 저장 유닛(31), 그리고 저장 유닛(31)에 연결된 프로세서(32)를 포함한다. 이 실시예에서, 키 서버(1)는 송신단(2) 및 수신단(3)과 독립적이다. 그러나, 다른 실시예들에서 키 서버(1)는 송신단(2) 내에 통합될 수 있다.
키 서버(1)는 포스트-퀀텀 비대칭 키 생성 시스템(10)으로 구성된다. 도 2를 참조하면, 포스트-퀀텀 비대칭 키 시스템(10)은 p-벡터(prime vector) 생성 모듈(11), 상기 p-벡터 생성 모듈(11)에 연결된 p-어레이(prime array) 생성 모듈(13), 상기 p-어레이 생성 모듈(13)에 연결된 관련 매트릭스 생성 모듈(14), 상기 관련 매트릭스 생성 모듈(14)에 연결된 인버스 p-어레이 생성 모듈(15), 기준(reference) 프라임 결정 모듈(16), 상기 인버스 p-어레이 생성 모듈(15)과 상기 기준 프라임 결정 모듈(16)에 연결된 개인키 생성 모듈(17), 상기 인버스 p-어레이 생성 모듈(15)과 상기 기준 프라임 결정 모듈(16)에 연결된 공개키 생성 모듈(18), 그리고 상기 p-어레이 생성 모듈(13), 상기 기준 프라임 결정 모듈(16), 상기 개인키 생성 모듈(17) 및 상기 공개키 생성 모듈(18)에 연결된 저장 모듈(19)을 포함한다. 상기 p-벡터 생성 모듈(11), 상기 p-어레이 생성 모듈(13), 상기 관련 매트릭스 생성 모듈(14), 상기 인버스 p-어레이 생성 모듈(15), 상기 기준 프라임 결정 모듈(16), 상기 개인키 생성 모듈(17) 및 상기 공개키 생성 모듈(18)은 프로세서(미도시) 내에 통합될 수 있지만, 본 발명은 이와 관련하여 한정되지 않는다는 것에 유의한다.
암호화된 통신 시스템(100)을 사용하기 전에, 키 서버(1)는 암호화 및 복호화를 위해 비대칭 키들(예를 들어, 개인키, 그리고 상기 개인키와 쌍을 이루는 적어도 하나의 공개키)을 생성한다. 도 3 및 도 4는 도 2에 예시된 포스트-퀀텀 비대칭 키 생성 시스템(10)이 비대칭 키 생성 절차를 수행하는 방법을 협력적으로 예시한다.
단계 S31에서, p-벡터 생성 모듈(11)은, 프라임 p 그리고 시드 역할을 하는 산술 함수 및 클래식 스트링(classical string)(예를 들어, 정수들의 시퀀스, 또는 ASCII 코드와 같은 정수로 매핑될 수 있는 문자들) 중 하나(즉, 산술 함수 또는 클래식 스트링 중 하나가 시드로서 역할함)에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분을 갖는 p-벡터 를 생성한다. 이 실시예에서, p-벡터 는 다음과 같이 정의된다 :
여기서, f는 시드 역할을 하는 산술 함수 또는 클래식 스트링이다(후자의 경우, f( p n )는 클래식 스트링에서 n번째 문자를 나타낸다).
일례에서, 시드는 다음의 산술 함수 f( p n )로서 예시된다 :
여기서, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트 I를 구성한다(이하, I=(p, s, t) 라고도 지칭됨). p-어레이 의 표현은 이후에 로 간략화될 수 있다. 예를 들어, I=(3, 0, 1) 그리고 m = 5일 때, p-벡터 3 및 p-어레이 (또는 간단히 )는 각각 다음의 방정식 (2) 및 방정식 (3)과 같이 구할 수 있다.
상기 2 개의 예들은 시드 및 제1 파라미터 세트 I에 기초하여 p-어레이가 생성되는 방법을 예시적으로 보여준다. 제1 파라미터 세트 I를 저장함으로써, 대응하는 p-어레이는 언제든지 시드에 기초하여 획득될 수 있다.
단계 S33에서, p-어레이 생성 모듈(13)은 p-어레이 의 m 개의 성분들 각각이 0이 아닌지 여부를 판단한다. 판단이 긍정적일 때(즉, p-어레이 의 m 개의 성분들 모두가 0이 아닐 때), p-어레이 생성 모듈(13)은 p-어레이 를 관련 매트릭스 생성 모듈(14)에 출력하고, p-어레이 를 저장 모듈(19)에 저장한다(단계 S34). 예를 들어, 방정식 (3) 및 방정식 (4) 각각에 도시된 바와 같이 p-어레이 의 5 개의 성분들 모두가 0이 아니다. p-어레이 생성 모듈(13)이 p-어레이 의 m 개의 성분들 중 임의의 하나가 0이라고 판단할 때, 흐름도는 단계 S32로 되돌아가서, 사용자가 상이한 제1 파라미터 세트 I(즉, 새로운 제1 파라미터 세트 I에서의 프라임 p 및 파라미터들 s, t 중 적어도 하나는 원래의 제1 파라미터 세트 I에서의 것과 다르다)를 단계 S32에 적용할 수 있게 한다. 단계 S32는 단계 S33에서의 판단이 긍정적일 때까지 상이한 제1 파라미터 세트들 I로 반복될 수 있다.
단계 S35에서, 관련 매트릭스 생성 모듈(14)은 p-어레이 생성 모듈(13)로부터 수신된 p-어레이 에 기초하여 관련 매트릭스 를 생성하며, 그리고 상기 관련 매트릭스 를 인버스 p-어레이 생성 모듈(15)에 출력한다. 관련 매트릭스 는 다음과 같이 정의된다 :
여기서, (j)는 p-어레이의 m 개의 성분들 중 (j+1) 번째 성분을 나타낸다(여기서, 0 ≤ j ≤ (m-1)). 방정식 (4)에서의 p-어레이 에 이어, 관련 매트릭스 생성 모듈(14)에 의해 생성되는 관련 매트릭스는 방정식 (5)에 도시된 바와 같을 것이다 :
단계 S36에서, 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 인버스 p-어레이 생성 모듈(15)은 모듈러스 에 대하여 인버스 p-어레이 를 생성한다. 인버스 p-어레이 생성 모듈(15)은 개인키 생성 모듈(17) 및 공개키 생성 모듈(18)에 상기 인버스 p-어레이 를 출력한다. 인버스 p-어레이 는 다음과 같이 정의된다 :
여기서, 는 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타낸다.
단계 S37에서, 기준 프라임 결정 모듈(16)은 제1 기준 프라임(p 1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p 1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p 2 )을 결정한다. 상기 미리 결정된 기준은 을 포함한다. 상기 기준 프라임 결정 모듈(16)은 개인키 생성 모듈(17)에 제1 기준 프라임(p 1 )을 출력하며, 공개키 생성 모듈(18)에 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 출력하며, 그리고 저장 모듈(19)에 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 저장한다. 방정식 (4)의 예에 따르면, 이 획득된다. 또한, S = (m, , r) = (5, 120, 120) 및 = 120의 예시적인 조건 하에서, 기준 프라임 결정 모듈(16)이 p 1 = 251을 선택할 때, 미리 결정된 기준은 :
을 포함할 것이며, 예를 들어, p 2 = 18072001인 것으로 결정될 수 있지만, 본 개시서는 미리 결정된 기준이 만족되는 한 이와 관련하여 제한되지 않는다.
단계 S36 및 S37에 후속하는 단계 S38에서, 개인키 생성 모듈(17)은 제1 기준 인버스 p-어레이 를 획득하기 위해 제1 기준 프라임(p 1 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 한다. 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(K private ) 역할을 한다(즉, K private = ). 개인키 생성 모듈(17)은 저장 모듈(19)에 제1 기준 인버스 p-어레이()를 저장한다. p 1 = 251 인 방정식(5)의 이전 예에 따르면, 이기 때문에, L251 =(68)-1(mod 251)=48이 획득될 수 있으며, 그리고 개인키(K private )는 다음과 같이 획득될 것이다 :
= [164, 128, 92, 223, 74]
----(6)
단계 S36 및 S37에 후속하는 단계 S39에서, 공개키 생성 모듈(18)은 제2 기준 인버스 p-어레이 를 획득하기 위해 제2 기준 프라임(p 2 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 하며, 그리고 저장 모듈(19)에 제2 기준 인버스 p-어레이()를 저장한다. m = 5, p = 3, p 2 = 18072001 및 = 120의 이전 예에 따라, 및 이기 때문에, 다음이 획득된다 :
단계 S40에서, 공개키 생성 모듈(18)은 제2 기준 인버스 p-어레이(), 제1 기준 프라임(p 1 ), 제2 기준 프라임(p 2 ) 및 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(K public )를 생성한다. 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의(0과 포함) m 개의 숫자 성분을 갖는다(예를 들어, 0과 사이의 m개의 임의의 정수). 공개키(K public )는 개인키(K private )와 쌍을 이룬다. 이 실시예에서, 공개키(K public )는 m 개의 숫자 성분들을 포함하고 라고도 표시되는 어레이()이며, 를 나타낸다. 는 키 생성 랜덤화 어레이()에 대한 제2 기준 인버스 p-어레이()의 키 생성 랜덤화 함수이며, 그리고 로 정의되며, 여기서 는 컨볼루션 곱셈 연산자를 나타낸다. 방정식 (7)에서 m=5, p=3, p 1 =251, p 2 =18072001, =120 및 인 이전 예에 따르면, 라고 가정되는 예시적인 키-생성 랜덤화 어레이가 사용되는 경우, 공개키(K public )는 다음과 같이 방정식(6)의 개인키(K private )를 사용하여 획득된다 :
그러나, 방정식(6)에서 개인키(K private )를 사용하여 획득되는 공개키(K public )는 이에 한정되지는 않는다. 라고 가정되는 다른 예시적인 키 생성 랜덤화 어레이가 공개키 생성 모듈(18)에 의해 사용된다면, 다른 공개키(K * public)는 다음과 같이 방정식(6)의 개인키(K private )를 사용하여 획득된다 :
즉, 공개키 생성 모듈(18)은 상이한 키-생성 랜덤화 어레이를 사용함으로써 동일한 개인키(K private )와 쌍을 이루는 상이한 공개키들을 생성할 수 있으며, 공개키를 리프레시할 때 키 서버(1)를 선호(favoring)한다.
비대칭 키 생성 절차가 완료되면, 키 서버(1)는 키 서버(1)와 송신단(2) 사이의 통신 채널(도 1의 C2)을 통해 송신단(2)에 공개키(K public )(공개키(K public )가 생성된 경우), 제2 기준 프라임(p 2 ) 및 제2 기준 양의 정수()를 송신하며, 그리고 키 서버(1)와 수신단(3) 사이의 통신 채널(도 1의 C3)을 통해 수신단(3)에 개인키(K private ), p-어레이(), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 송신한다.
도 5를 참조하면, 송신단(2)의 프로세서(22)는 키 서버(1)로부터 수신된 공개키(K public ), 제2 기준 프라임(p 2 ) 및 제2 기준 양의 정수()를 저장 유닛(21)에 저장한다. 이 실시예에서, 프로세서(22)는 텍스트 변환 모듈(221), 암호화 랜덤화 함수 생성 모듈(encryption randomization function generation module)(222), 그리고 상기 텍스트 변환 모듈(221) 및 상기 암호화 랜덤화 함수 생성 모듈(222)에 연결된 암호문 생성 모듈(223)을 갖도록 구성된다.
또한, 도 7을 참조하면, 송신단(2)에 의해 수행되는 암호화 절차가 도시되어 있다. 단계 S71에서, 텍스트 변환 모듈(221)은 ASCII 코드와 같은 미리 결정된 문자-숫자 기술을 사용하여, 암호화될 m 개의 문자들을 갖는 평문을 m 개의 숫자 성분을 갖는 데이터 어레이()로 변환한다. 구체적으로, 데이터 어레이()의 m 개의 숫자 성분들 각각은 0과 제1 기준 양의 정수() 사이이며, 그리고 평문의 m 개의 문자들 중 대응하는 하나를 나타낸다. 예를 들어, 평문 “Hello”(즉, m = 5)의 경우, ASCII 코드에 기초하여 획득되는 데이터 어레이()는 :
일 것이지만, 본 개시서는 임의의 특정 문자-숫자 기술로 제한되지 않는다.
단계 S72에서, 암호화 랜덤화 함수 생성 모듈(222)은 공개키(K public ) 및 암호화 랜덤화 어레이()에 기초하여 암호화 랜덤화 함수()를 생성한다. 암호화 랜덤화 어레이()는 0과 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는다. 암호화 랜덤화 함수()는 로서 정의된다. 제2 파라미터 세트 S=(m, , r)=(5, 120, 120)이고 공개키 K public = = 인 이전 예에 따라, 암호화 랜덤화 어레이가 로 예시되는 경우, 결과물인 암호화 랜덤화 함수()는 다음과 같을 것이다 :
---------- (11)
--- (12)
즉, 암호화 랜덤화 함수 생성 모듈(222)은 상이한 암호화 랜덤화 어레이들을 사용하여 상이한 암호화 랜덤화 함수들을 생성할 수 있다.
단계 S71 및 S72에 후속하는 단계 S73에서, 암호문 생성 모듈(223)은 (텍스트 변환 모듈(221)로부터 수신된) 데이터 어레이()와 (암호화 랜덤화 함수 생성 모듈(222)로부터 수신된) 암호화 랜덤화 함수()의 합에 대해 제2 기준 프라임(p 2 )으로 모듈로 연산을 수행함으로써 암호화 랜덤화 함수와 관련하여 암호문()을 획득한다. 암호문()은 m 개의 암호화된 숫자 성분들을 가지며, 그리고 로 표현된다. 데이터 어레이() 및 암호화 랜덤화 함수()가 방정식 (10) 및 방정식 (11)으로 표시되는 예에서, 결과물인 암호문()은 다음과 같을 것이다 :
암호화 절차 완료 후에, 송신단(2)은 송신단(2)과 수신단(3) 사이의 통신 채널(도 1의 C1)을 통해 수신단(3)에 암호문()을 송신한다. 통신 채널(C1)은 본 개시서에 따라 암호화 통신 시스템(100)에 의해 암호화되지 않은 채널일 수 있다.
도 1 및 도 6을 참조하면, 송신단(3)의 프로세서(32)는 키 서버(1)로부터 수신되는 개인키(K private ), p-어레이(), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 저장 유닛(31)에 저장한다. 이 실시예에서, 프로세서(32)는 제1 컨볼루션 모듈(321), 그리고 상기 제1 컨볼루션 모듈(321)에 연결된 제2 컨볼루션 모듈(322)을 갖도록 구성된다.
도 8을 더 참조하면, 수신단(3)에 의해 수신되는 암호문()에 수행될 해독 절차가 도시된다. 단계 S81에서, 제1 컨볼루션 모듈(321)은 암호문()과 p-어레이()의 제1 컨볼루션 결과(즉, )를 계산하며, 상기 제1 컨볼루션 결과에 대해 제2 기준 프라임(p 2 )으로 모듈로 연산을 수행하여 제1 모듈로 연산 결과(즉, )를 획득하며, 그리고 상기 제1 모듈로 연산 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 제2 모듈로 연산 결과()를 획득한다. 제2 모듈로 연산 결과()는 로 정의된다. p 1 = 251, p 2 = 18072001, p-어레이는 방정식 (4)의 이며, 암호문은 방정식 (13)의 인 이전 예에 따라, 결과물인 제1 모듈로 연산 결과 및 제2 모듈로 연산 결과는 다음과 같을 것이다 :
p 1 = 251, p 2 = 18072001, p-어레이는 방정식 (4)의 이며, 암호문은 방정식 (14)의 인 다른 예에 따라, 결과물인 제1 모듈로 연산 결과 및 제2 모듈로 연산 결과는 다음과 같을 것이다 :
단계 S82에서, 제2 컨볼루션 모듈(322)은 제2 모듈로 연산 결과() 그리고 개인키(K private ) 역할을 하는 제1 기준 인버스 p-어레이()의 제2 컨볼루션 결과를 계산하며, 상기 제2 컨볼루션 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 평문 어레이()를 획득한다. 이 때, 평문 어레이()는 m 개의 해독된 숫자 성분들을 가지며, 그리고 로 정의된다. p 1 = 251인 이전 예에 따르면, 개인키(K private )는 방정식 (6)의 이며, 그리고 제2 모듈로 연산 결과는 방정식 (15)의 이며, 획득된 평문 어레이()는 다음과 같을 것이다 :
획득된 평문 어레이()가 방정식 (10)의 데이터 어레이()와 동일한 것을 볼 수 있다. 따라서, 수신단(3)은 평문 어레이()의 해독된 숫자 성분들 모두를 문자들로 변환함으로써 평문 “Hello”를 성공적으로 획득할 수 있다.
다시 도 1 및 도 2를 참조하면, 암호 통신 시스템(100)이 키 리프레시를 수행할 필요가 있을 때, 키 서버(1)의 공개키 생성 모듈(18)은 원래의 공개키(K public )를 생성하는데 사용되는 키-생성 랜덤화 어레이()와 상이한 키-생성 랜덤화 어레이()(예를 들어, )와 관련하여, 제2 기준 인버스 p-어레이(), 제1 기준 프라임(p 1 ), 제2 기준 프라임(p 2 ) 및 키-생성 랜덤화 어레이()에 기초하여, 개인키(K private )와 쌍을 이루는 업데이트된 공개키(K * public)(예를 들어, 방정식 (9)의 )를 생성하기 위해 단계 S40(도 4 참조)을 수행하는데 사용될 수 있다. 이와 유사하게, 업데이트된 공개키(K * public)는 로 표기되는 로 표현될 수 있다. 그 다음, 키 서버(1)는 통신 채널(C2)을 통해 송신단(2)에 업데이트된 공개키(K * public)를 송신하며, 그리고 송신단(2)의 프로세서(22)는 저장부(21)에서 공개키(K public)를 업데이트된 공개키(K * public)로 업데이트한다.
저장 유닛(21)의 공개키를 업데이트한 후, 송신단(2)의 프로세서(22)는 업데이트된 공개키(K * public), 제2 기준 프라임(p 2 ) 및 암호화 랜덤화 어레이()를 사용하여, 데이터 어레이()에 대해 암호화 절차를 수행할 수 있으며, 그리고 업데이트된 공개키(K * public) 및 암호화 랜덤화 어레이()와 관련하여 다른 암호문()을 획득할 수 있다. 암호문()은 m 개의 암호화된 숫자 성분들을 가지며, 그리고 송신단(2)의 프로세서(22)에 의해 통신 채널(C1)을 통해 수신단(3)에 전송된다. m = 5, = 120인 이전 예에서, 데이터 어레이는 방정식(10)의 이며, 그리고 공개키는 방정식 (9)의 K * public이며, 일 때, 결과물인 암호문()은 다음과 같을 것이다 :
수신단(3)의 프로세서(32)가 송신단(2)으로부터 암호문()을 수신할 때, 프로세서(32)는 개인키(K private ), p-어레이(), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 사용하여 암호문()에 대해 해독 절차를 수행하며, 이로써 평문 어레이()를 획득한다. p 1 = 251, p 2 = 18072001인 이전 예에 따르면, p-어레이는 방정식(4)의 이며, 그리고 암호문은 방정식 (17)의 이며, 결과물인 제1 모듈로 연산 결과 및 제2 모듈로 연산 결과()는 각각 다음과 같을 것이다 :
p 1 = 251, p 2 = 18072001, p-어레이가 방정식 (4)의 이며, 암호문이 방정식 (18)의 인 다른 예에서, 결과물인 제1 모듈로 연산 결과 및 제2 모듈로 연산 결과는 각각 다음과 같을 것이다 :
수신단(3)이 업데이트된 공개키(K * public)를 사용하여 암호화된 상이한 암호문들(예를 들어, 및 )을 수신하더라도, 개인키(K private )를 사용하여 동일한 제2 모듈로 연산 결과( )가 획득될 수 있으며, 이에 따라 동일한 평문이 획득될 수 있다는 것이 유의되어야 한다.
따라서, 상기 상세한 설명으로부터 다음과 같이 알려져 있다 :
1. 포스트-퀀텀 비대칭 키 생성 시스템(10)은 제1 파라미터 세트(I), 제2 파라미터 세트(S), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )의 상이한 조합과 협력하여 단일 산술 함수 및 클래식 스트링(classical string)만을 사용함으로써 다수의 개인키들을 생성하기 위해 비대칭 키 생성 절차를 수행할 수 있다;
2. 특정 개인키에 대해, 포스트-퀀텀 비대칭 키 생성 시스템(10)은 빠르고 개인키를 재계산할 필요가 없는 소프트 키 리셋 알고리즘을 사용하여 개인키와 각각 쌍을 이루는 다수의 공개키들을 생성할 수 있으며, 이에 따라 키 서버(1)는 키 리프레시를 더 쉽게 수행할 수 있다;
3. p-어레이를 생성하는 독특한(unique) 방법이 존재하지 않는다. 패딩을 0으로 만들거나 p-어레이의 형성에 임의성을 추가하여 p-벡터에 임의성을 추가할 수 있다;
4. 무작위 대입 공격(brute force attack)의 어려움을 높이기 위해 더 큰 파라미터 m을 선택하여 키 공간이 증가될 수 있다. 이 실시예에서, m = 5 그리고 p 1 = 251의 선택은 설명의 편의를 위한 것일 뿐이다. m = 16이거나 심지어 m = 64인 경우, 가능한 키 공간이 너무 커져, 무차별 대입 공격이 성공하는데 시간이 오래 걸릴 것이다. 메시지 공간과 키 공간의 크기는 수많은 가능성을 포함할 것이며, 이는 무차별 대입 공격이 작동하지 않게 할 것이다.
표 1은 옥타-코어 프로세서 및 32GB RAM(random access memory)의 하드웨어 사양 하에서 암호화 통신 시스템(100)을 사용하여 상이한 길이의 메시지들에 대한 암호화 및 복호화에 필요한 시간의 실험 결과를 나열한다.
메시지 길이 (bytes) |
암호화 시간 (ms) |
해독 시간 (ms) |
4 | 0.000193 | 0.001184 |
8 | 0.000225 | 0.001224 |
16 | 0.000279 | 0.000759 |
32 | 0.000399 | 0.001048 |
64 | 0.000687 | 0.001526 |
128 | 0.000886 | 0.002171 |
196 | 0.000997 | 0.002934 |
표 1의 데이터에 기초하여, 본 개시서의 암호화 통신 시스템(100)의 사용은 메시지 길이에 상관 없이 종래의 AES 및 RSA 프로토콜에 비해 암호화 및 복호화에 필요한 시간을 수백배만큼 감소시킬 수 있다는 것이 알려져 있다. 분명히, 본 개시서의 암호화 통신 시스템(100)은 암호화 및 해독화의 속도를 상당히 증가시킬 수 있다.
본 개시서의 실시예에서, 공개키 및 개인키는 산술 함수 또는 클래식 스트링, p-벡터, 그리고 본질적으로 벡터인 p-어레이에 기초하여 생성되어, 비교적 많은 양의 데이터에 대한 암호화 및 해독을 가능하게하며, 이로써, 암호화 및 해독화 속도가 향상되고 데이터 보안이 보장된다. 제안된 암호화 통신 시스템은 포스트-퀀텀 보안, 즉 포스트-퀀텀 컴퓨터들의 공격에 효과적으로 저항할 수 있는 보안을 보장할 수 있다. p-벡터 및 p-어레이의 특성으로 인해, 실시예의 구현을 위한 하드웨어 요건들은 저장 용량 및/또는 계산 능력면에서 상대적으로 낮다. 본 실시예는 개인키의 사용에 영향을 미치지 않으면서 공개키의 리프레시를 허용하여, 동일한 네트워크 내의 모든 사용자들에 대해 분산된 키 리프레시를 가능하게 한다. 또한, 개인키를 생성하는데 사용되는 산술 함수(f)가 무한한 양의 데이터를 생성할 수 있는 함수이기 때문에, 하나의 단일 함수만으로도 다수의 상이한 공개키들이 생성될 수 있다.
상기 설명에서, 설명의 목적으로, 실시예(들)의 철저한 이해를 제공하기 위해 다수의 특정 세부사항들이 설명되었다. 그러나, 하나 이상의 다른 실시예들이 이들 특정 세부사항들 중 일부 없이 실시될 수 있다는 것이 당업자에게 명백할 것이다. 또한, 본 명세서 전체에서 “일 실시예”, “실시예”, 서수를 나타내는 실시예 등을 언급한다는 것은 특정 특징, 구조, 또는 특성이 본 개시서의 실시에 포함될 수 있음을 의미한다는 것을 이해해야 한다. 상세한 설명에서, 본 개시서를 간소화하고 다양한 발명의 측면들의 이해를 돕기 위해 다양한 특징들은 하나의 실시예, 도면, 또는 그것의 설명에서 때때로 함께 그룹화된다는 것, 그리고 본 개시서의 실시에서 적절한 경우 하나의 실시예로부터의 하나 이상의 특징들 또는 특정 세부사항들은 다른 실시예의 하나 이상의 특징들 또는 특정 세부사항들과 함께 실시될 수 있다는 것 또한 이해되어야 한다.
본 개시서는 예시적인 실시예(들)로 간주되는 것과 관련하여 설명되었지만, 본 개시서는 개시된 실시예(들)로 제한되지 않으며, 모든 그러한 수정들 및 등가의 구성들을 포함하도록 가장 넓은 해석의 사상 및 범위 내에 포함되는 다양한 구성들을 포함하도록 의도된다는 것이 이해되어야 한다.
Claims (16)
- 처리 유닛에 의해 구현되는 포스트-퀀텀 비대칭 키 생성 방법으로서,
A) 프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분들을 갖는 p-벡터()를 생성하는 단계로서, 상기 p-벡터()는 로 정의되는데, f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, 단계;
B) p-벡터()에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하는 단계로서, 상기 p-어레이()는 로 정의되며, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트(I)를 구성하며, 상기 p-어레이()는 로도 표현되는, 단계;
C) 상기 p-어레이()에 기초하여, 관련 매트릭스()를 생성하는 단계로서, 상기 관련 매트릭스()는 :
로 정의되는데, (j)는 p-어레이의 m 개의 성분들 중 (j+1) 번째 성분을 나타내고, 0 ≤ j ≤ (m-1)인, 단계;
D) 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하는 단계로서, 상기 인버스 p-어레이()는 로 정의되는데, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 단계;
E) 제1 기준 프라임(p1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p2 )을 결정하는 단계로서, 상기 미리 결정된 기준은 을 포함하는, 단계;
F) 제1 기준 프라임(p1 ) 및 제2 기준 프라임(p2 ) 각각이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이() 및 제2 기준 인버스 p-어레이()를 획득하는 단계로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(Kprivate ) 역할을 하는, 단계; 및
G) 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p1 ), 상기 제2 기준 프라임(p2 ) 및 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(Kpublic )를 생성하는 단계로서, 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(Kpublic )는 개인키(Kprivate )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 를 나타내는 라고도 표시되는 어레이()이며, 는 키 생성 랜덤화 어레이()에 대한 제2 기준 인버스 p-어레이()의 키 생성 랜덤화 함수이며, 그리고 로 정의되며, 여기서 는 컨볼루션 곱셈 연산자를 나타내는, 단계를 포함하는, 포스트-퀀텀 비대칭 키 생성 방법. - 프로세서에 의해 구현되는 암호화 방법으로서,
청구항 1에 따른 포스트-퀀텀 비대칭 키 생성 방법에 따라 생성되는 공개키(K public ), 상기 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 프라임(p 2 ), 그리고 0과 상기 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 전송될 평문에 대응하고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대한 암호화 절차를 수행하고, 그리고 상기 암호화 랜덤화 어레이()에 관한 암호문()을 획득하는 단계로서, 상기 암호문()은 m 개의 암호화된 숫자 성분들을 갖는, 단계를 포함하는, 암호화 방법. - 프로세서에 의해 구현되는 해독 방법으로서,
청구항 1에 따른 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 p-어레이(), 개인키(K private ), 제1 기준 프라임(p 1 ) 및 제2 기준 프라임(p 2 )을 사용하여, 암호문()에 대해 해독 절차를 수행하고, m 개의 해독된 숫자 성분들을 갖는 평문 어레이()를 획득하는 단계를 포함하며,
상기 암호문()은 :
상기 포스트-퀀텀 비대칭 키 생성 방법에 따라 생성되는 공개키, 상기 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 프라임(p 2 ), 그리고 0과 상기 포스트-퀀텀 비대칭 키 생성 방법에서 사용되는 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 전송될 평문에 대응하고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대한 암호화 절차를 수행하고, 그리고 상기 암호화 랜덤화 어레이()와 관련되고 m 개의 암호화된 숫자 성분들을 갖는 암호문()을 획득함으로써 생성되는, 해독 방법. - 청구항 5에 있어서,
상기 해독 절차는 :
상기 암호문()과 상기 p-어레이()의 제1 컨볼루션 결과에 대해 제2 기준 프라임(p 2 )으로 모듈로 연산을 수행하여 제1 모듈로 연산 결과를 획득하며, 그리고 상기 제1 모듈로 연산 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 제2 모듈로 연산 결과()를 획득하는 단계로서, 상기 제2 모듈로 연산 결과()는 로 정의되는, 단계; 및
제2 모듈로 연산 결과() 그리고 개인키(K private ) 역할을 하는 제1 기준 인버스 p-어레이()의 제2 컨볼루션 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 평문 어레이()를 획득하는 단계로서, 상기 평문 어레이()는 로 정의되는, 단계를 포함하는, 해독 방법. - 포스트-퀀텀 비대칭 키 생성 시스템으로서,
프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분들을 갖는 p-벡터()를 생성하도록 구성된 p-벡터 생성 모듈로서, 상기 p-벡터()는 로 정의되는데, f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, p-벡터 생성 모듈;
상기 p-벡터 생성 모듈에 연결되고, 그리고 상기 p-벡터()에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하도록 구성되는 p-어레이 생성 모듈로서, 상기 p-어레이()는 로 정의되며, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트(I)를 구성하며, 상기 p-어레이()는 로도 표현되는, p-어레이 생성 모듈;
상기 p-어레이 생성 모듈에 연결되고, 그리고 상기 p-어레이()에 기초하여, 관련 매트릭스()를 생성하도록 구성되는 관련 매트릭스 생성 모듈로서, 상기 관련 매트릭스()는 :
로 정의되는데, (j)는 p-어레이의 m 개의 성분들 중 (j+1) 번째 성분을 나타내며, 0 ≤ j ≤ (m-1)인, 관련 매트릭스 생성 모듈;
상기 관련 매트릭스 생성 모듈에 연결되고, 그리고 상기 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하도록 구성된 인버스 p-어레이 생성 모듈로서, 상기 인버스 p-어레이()는 로 정의되는데, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 인버스 p-어레이 생성 모듈;
제1 기준 프라임(p1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p2 )을 결정하도록 구성된 기준 프라임 결정 모듈로서, 상기 미리 결정된 기준은 을 포함하는, 기준 프라임 결정 모듈;
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제1 기준 프라임(p1 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이()를 획득하도록 구성된 개인키 생성 모듈로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(Kprivate ) 역할을 하는, 개인키 생성 모듈; 및
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제2 기준 프라임(p2 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제2 기준 인버스 p-어레이()를 획득하도록 구성되고, 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p1 ), 상기 제2 기준 프라임(p2 ) 및 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(Kpublic )를 생성하도록 구성되는 공개키 생성 모듈로서, 상기 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(Kpublic )는 개인키(Kprivate )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 를 나타내는 라고도 표시되는 어레이()인, 공개키 생성 모듈을 포함하며,
는 키 생성 랜덤화 어레이()에 대한 제2 기준 인버스 p-어레이()의 키 생성 랜덤화 함수이며, 그리고 로 정의되며, 여기서 는 컨볼루션 곱셈 연산자를 나타내는, 포스트-퀀텀 비대칭 키 생성 시스템. - 청구항 7에 있어서,
상기 p-어레이 생성 모듈, 상기 기준 프라임 결정 모듈, 상기 개인키 생성 모듈 및 상기 공개키 생성 모듈에 연결된 저장 모듈을 더 포함하며,
상기 저장 모듈은 :
상기 p-어레이 생성 모듈로부터 수신된 p-어레이(), 상기 기준 프라임 결정 모듈로부터 수신된 상기 제1 기준 프라임(p1 ) 및 상기 제2 기준 프라임(p2 ), 상기 개인키 생성 모듈로부터 수신된 제1 기준 인버스 p-어레이(), 그리고 상기 공개키 생성 모듈로부터 수신된 제2 기준 인버스 p-어레이()를 저장하는, 포스트-퀀텀 비대칭 키 생성 시스템. - 청구항 8에 있어서,
상기 공개키 생성 모듈은 :
상기 저장 모듈에 저장된 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p1 ) 및 상기 제2 기준 프라임(p2 ), 그리고 키-생성 랜덤화 어레이()와 상이한 다른 키-생성 랜덤화 어레이()에 기초하여, 상기 다른 키-생성 랜덤화 어레이()와 관련하여 업데이트된 공개키(K* public)를 생성하도록 더 구성되며,
상기 업데이트된 공개키(K* public)는 개인키(Kprivate )와 쌍을 이루며,
상기 다른 키-생성 랜덤화 어레이()는 0과 상기 제1 기준 양의 정수() 사이의 m 개의 숫자 성분들을 가지며, 그리고
상기 공개키(K public)는 를 나타내는 라고도 표시되는, 포스트-퀀텀 비대칭 키 생성 시스템. - 암호화 통신 시스템으로서,
상기 암호화된 통신 시스템은 키 서버, 송신단 및 수신단을 포함하며,
상기 키 서버는 :
프라임 p 그리고 시드 역할을 하는 클래식 스트링(classical string) 및 산술 함수 중 하나에 기초하여, 프라임 p와 관련되고 무한한 개수의 성분들을 갖는 p-벡터()를 생성하도록 구성된 p-벡터 생성 모듈로서, 상기 p-벡터()는 로 정의되는데, f는 상기 시드 역할을 하는 클래식 스트링 및 산술 함수 중 상기 하나를 나타내는, p-벡터 생성 모듈;
상기 p-벡터 생성 모듈에 연결되고, 그리고 상기 p-벡터()에 기초하여, m 개의 성분들을 갖고 프라임 p와 관련되는 p-어레이()를 생성하도록 구성되는 p-어레이 생성 모듈로서, 상기 p-어레이()는 로 정의되며, 파라미터들 m, s 및 t 각각은 사용자-정의되는 양의 정수이며, 그리고 프라임 p 및 파라미터들 s, t는 협력하여 제1 파라미터 세트(I)를 구성하며, 상기 p-어레이()는 로도 표현되는, p-어레이 생성 모듈;
상기 p-어레이 생성 모듈에 연결되고, 그리고 상기 p-어레이()에 기초하여, 관련 매트릭스()를 생성하도록 구성된 관련 매트릭스 생성 모듈로서, 상기 관련 매트릭스()는 :
로 정의되는데, (j)는 p-어레이의 m 개의 성분들 중 (j+1) 번째 성분을 나타내며, 0 ≤ j ≤ (m-1)인, 관련 매트릭스 생성 모듈;
상기 관련 매트릭스 생성 모듈에 연결되고, 그리고 상기 관련 매트릭스 와 사용자-정의된 양의 정수인 모듈러스 에 기초하여, 상기 모듈러스 에 대하여 인버스 p-어레이()를 생성하도록 구성된 인버스 p-어레이 생성 모듈로서, 상기 인버스 p-어레이()는 로 정의되는데, 는 상기 모듈러스 에 대한 관련 매트릭스 의 행렬식(determinant)의 인버스 모듈러스를 나타내며, 로 정의되고, 그리고 는 상기 관련 매트릭스 의 수반 행렬(adjoint matrix)을 나타내는, 인버스 p-어레이 생성 모듈;
제1 기준 프라임(p1 )을 임의로 선택하고, 그리고 상기 제1 기준 프라임(p1 ), b로 표시되는 p-어레이 의 m 개의 성분들 중 가장 큰 것, 제1 기준 양의 정수() 그리고 파라미터(m), 제2 기준 양의 정수() 및 제3 기준 양의 정수(r)로 구성된 제2 파라미터 세트(S)와 관련된 미리 결정된 기준에 기초하여 제2 기준 프라임(p2 )을 결정하도록 구성된 기준 프라임 결정 모듈로서, 상기 미리 결정된 기준은 을 포함하는, 기준 프라임 결정 모듈;
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제1 기준 프라임(p1 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제1 기준 인버스 p-어레이()를 획득하도록 구성된 개인키 생성 모듈로서, 상기 제1 기준 인버스 p-어레이()는 로 정의되는 개인키(Kprivate ) 역할을 하는, 개인키 생성 모듈; 및
상기 인버스 p-어레이 생성 모듈 및 상기 기준 프라임 결정 모듈에 연결되고, 그리고 제2 기준 프라임(p2 )이 인버스 p-어레이()의 모듈러스(modulus)()로서 기능하게 함으로써, 제2 기준 인버스 p-어레이()를 획득하도록 구성되고, 상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p1 ), 상기 제2 기준 프라임(p2 ) 및 키-생성 랜덤화 어레이()에 기초하여 키-생성 랜덤화 어레이 와 관련하여 공개키(Kpublic )를 생성하도록 구성되는 공개키 생성 모듈로서, 상기 키-생성 랜덤화 어레이()는 0과 제1 기준 양의 정수() 사이의 m 개의 숫자 성분을 가지며, 그리고 공개키(Kpublic )는 개인키(Kprivate )와 쌍을 이루며, 그리고 m 개의 숫자 성분들을 포함하고 를 나타내는 라고도 표시되는 어레이()인, 공개키 생성 모듈을 포함하며,
는 키 생성 랜덤화 어레이()에 대한 제2 기준 인버스 p-어레이()의 키 생성 랜덤화 함수이며, 그리고 로 정의되며, 여기서 는 컨볼루션 곱셈 연산자를 나타내며,
상기 송신단은 상기 공개키(Kpublic ), 상기 제2 기준 프라임(p2 ) 및 상기 제2 기준 양의 정수()를 저장하는 제1 저장 유닛, 그리고 상기 제1 저장 유닛에 연결된 제1 프로세서를 포함하며,
상기 수신단은 상기 개인키(Kprivate ), 상기 p-어레이(), 상기 제1 기준 프라임(p1 ) 및 상기 제2 기준 프라임(p2 )을 저장하는 제2 저장 유닛, 그리고 상기 제2 저장 유닛에 연결된 제2 프로세서를 포함하며,
상기 수신단에 전송될 평문에 대응하고 그리고 m 개의 숫자 성분들을 갖는 데이터 어레이()에 대해, 상기 제1 프로세서는 상기 제1 저장 유닛에 저장된 공개키(Kpublic ) 및 제2 기준 프라임(p2 ), 그리고 0과 상기 제2 기준 양의 정수() 사이의 m 개의 숫자 성분들을 갖는 암호화 랜덤화 어레이()를 사용하여, 상기 데이터 어레이()에 대한 암호화 절차를 수행하고, 그리고 상기 암호화 랜덤화 어레이()에 관한 암호문()을 획득하며, 그리고 상기 송신단은 제1 통신 채널을 통해 상기 수신단에 상기 암호문()을 송신하며, 상기 암호문()은 m 개의 암호화된 숫자 성분들을 가지며,
상기 제2 프로세서에 의한 상기 암호문()의 수신시, 상기 제2 프로세서는 상기 제2 저장 유닛에 저장된 개인키(Kprivate ), p-어레이(), 제1 기준 프라임(p1 ) 및 제2 기준 프라임(p2 )을 사용하여, 암호문()에 대해 해독 절차를 수행하고, m 개의 해독된 숫자 성분들을 갖고 상기 데이터 어레이()와 동일한 평문 어레이()를 획득하는, 암호화 통신 시스템. - 청구항 11에 있어서,
상기 제1 프로세서는 암호화 랜덤화 함수 생성 모듈, 그리고 상기 텍스트 변환 모듈 및 상기 암호화 랜덤화 함수 생성 모듈에 연결된 암호문 생성 모듈을 가지며, 그리고
상기 암호화 절차에서, 상기 암호화 랜덤화 함수 생성 모듈은, 공개키(K public ) 및 암호화 랜덤화 어레이()에 기초하여, 로 정의되는 암호화 랜덤화 함수()를 생성하고; 그리고 상기 암호문 생성 모듈은 상기 데이터 어레이()와 상기 암호화 랜덤화 함수()의 합에 대해 제2 기준 프라임(p 2 )으로 모듈로 연산(modulo operation)을 수행함으로써 암호문()을 획득하고, 상기 암호문()은 로 표현되는, 암호화 통신 시스템. - 청구항 10에 있어서,
상기 제2 프로세서는 제1 컨볼루션 모듈 및 상기 제1 컨볼루션 모듈에 연결된 제2 컨볼루션 모듈을 가지며,
상기 해독 절차에서, 상기 제1 컨볼루션 모듈은 상기 암호문()과 상기 p-어레이()의 제1 컨볼루션 결과를 계산하고, 상기 제1 컨볼루션 결과에 대해 제2 기준 프라임(p 2 )으로 모듈로 연산을 수행하여 제1 모듈로 연산 결과를 획득하며, 그리고 상기 제1 모듈로 연산 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 제2 모듈로 연산 결과()를 획득하며, 상기 제2 모듈로 연산 결과()는 로 정의되고; 그리고 상기 제2 컨볼루션 모듈은 제2 모듈로 연산 결과() 그리고 개인키(K private ) 역할을 하는 제1 기준 인버스 p-어레이()의 제2 컨볼루션 결과를 계산하고, 상기 제2 컨볼루션 결과에 대해 제1 기준 프라임(p 1 )으로 모듈로 연산을 수행하여 평문 어레이()를 획득하고, 상기 평문 어레이()는 로 정의되는, 암호화 통신 시스템. - 청구항 10에 있어서,
상기 공개키(K public ) 전에, 상기 제2 기준 프라임(p 2 ) 및 상기 제2 기준 양의 정수()는 상기 제1 저장 유닛에 저장되며, 상기 키 서버는 제2 통신 채널을 통해 상기 공개키(K public ), 상기 제2 기준 프라임(p 2 ) 및 상기 제2 기준 양의 정수()를 상기 송신단에 송신하며, 그리고 상기 제1 프로세서는 상기 키 서버로부터 수신된 상기 공개키(K public ), 상기 제2 기준 프라임(p 2 ) 및 상기 제2 기준 양의 정수()를 상기 제1 저장 유닛에 저장하며; 그리고
상기 개인키(K private )전에, 상기 p-어레이(), 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 )은 상기 제2 저장 유닛에 저장되며, 상기 키 서버는 제3 통신 채널을 통해 상기 개인키(K private ), 상기 p-어레이(), 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 )을 상기 수신단에 송신하며, 그리고 상기 제2 프로세서는 상기 키 서버로부터 수신된 상기 개인키(K private ), 상기 p-어레이(), 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 )을 상기 제2 저장 유닛에 저장하는, 암호화 통신 시스템. - 청구항 14에 있어서,
상기 키 서버는 상기 p-어레이 생성 모듈, 상기 기준 프라임 결정 모듈, 상기 개인키 생성 모듈 및 상기 공개키 생성 모듈에 연결된 저장 모듈을 더 포함하며,
상기 저장 모듈은 상기 p-어레이 생성 모듈로부터 수신된 p-어레이(), 상기 기준 프라임 결정 모듈로부터 수신된 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 ), 상기 개인키 생성 모듈로부터 수신된 제1 기준 인버스 p-어레이(), 그리고 상기 공개키 생성 모듈로부터 수신된 제2 기준 인버스 p-어레이()를 저장하는, 암호화 통신 시스템. - 청구항 15에 있어서,
상기 공개키 생성 모듈은 :
상기 제2 기준 인버스 p-어레이(), 상기 제1 기준 프라임(p 1 ), 상기 제2 기준 프라임(p 2 ), 그리고 키-생성 랜덤화 어레이()와 상이한 다른 키-생성 랜덤화 어레이()에 기초하여, 상기 다른 키-생성 랜덤화 어레이()와 관련하여 업데이트된 공개키(K * public)를 생성하도록 더 구성되며, 상기 업데이트된 공개키(K * public)는 개인키(K private )와 쌍을 이루며, 상기 다른 키-생성 랜덤화 어레이()는 0과 상기 제1 기준 양의 정수() 사이의 m 개의 숫자 성분들을 가지며, 그리고 상기 공개키(K public)는 를 나타내는 라고도 표시되며;
상기 키 서버는 상기 제2 통신 채널을 통해 상기 송신단에 상기 업데이트된 공개키(K * public)를 송신하며;
상기 키 서버로부터의 상기 업데이트된 공개키(K * public)의 수신시, 상기 제1 프로세서는 상기 제1 저장 유닛에 저장된 상기 공개키(K public)가 상기 업데이트된 공개키(K * public)가 되도록 업데이트하며;
상기 공개키(K public)가 상기 업데이트된 공개키(K * public)가 되도록 업데이트한 후, 상기 제1 프로세서는 상기 업데이트된 공개키(K * public), 상기 제2 기준 프라임(p 2 ) 및 암호화 랜덤화 어레이()를 사용하여, 데이터 어레이()에 대해 암호화 절차를 수행하며, 그리고 상기 업데이트된 공개키(K * public) 및 암호화 랜덤화 어레이()와 관련하여 다른 암호문()을 획득하며, 그리고 상기 송신단은 상기 제1 통신 채널을 통해 상기 다른 암호문()을 상기 수신단에 송신하며, 상기 다른 암호문()은 m 개의 암호화된 숫자 성분들을 가지며; 그리고
상기 제2 프로세서에 의한 상기 다른 암호문()의 수신시, 상기 제2 프로세서는 상기 제2 저장 유닛에 저장된 상기 개인키(K private ), 상기 p-어레이(), 상기 제1 기준 프라임(p 1 ) 및 상기 제2 기준 프라임(p 2 )을 사용하여 상기 다른 암호문()에 대해 해독 절차를 수행하며, 그리고 평문 어레이()를 획득하는, 암호화 통신 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107134068A TWI672932B (zh) | 2018-09-27 | 2018-09-27 | 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統 |
TW107134068 | 2018-09-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200036727A KR20200036727A (ko) | 2020-04-07 |
KR102354456B1 true KR102354456B1 (ko) | 2022-01-21 |
Family
ID=67211545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190102150A KR102354456B1 (ko) | 2018-09-27 | 2019-08-21 | 프라임 모듈로 이중 캡슐화에 기초한 일대다 분산 키 관리 기능을 갖춘 포스트 퀀텀 비대칭 키 암호 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11218308B2 (ko) |
EP (1) | EP3629517A1 (ko) |
JP (2) | JP7053537B6 (ko) |
KR (1) | KR102354456B1 (ko) |
CN (1) | CN110958112B (ko) |
TW (1) | TWI672932B (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11343270B1 (en) | 2019-09-10 | 2022-05-24 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11240014B1 (en) | 2019-09-10 | 2022-02-01 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11477016B1 (en) * | 2019-09-10 | 2022-10-18 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11626983B1 (en) | 2019-09-10 | 2023-04-11 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11449799B1 (en) | 2020-01-30 | 2022-09-20 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11322050B1 (en) * | 2020-01-30 | 2022-05-03 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11838410B1 (en) | 2020-01-30 | 2023-12-05 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11533175B1 (en) | 2020-01-30 | 2022-12-20 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography on a smartcard |
KR102222080B1 (ko) * | 2020-02-24 | 2021-03-04 | 한국전자통신연구원 | 양자 개체 인증 장치 및 방법 |
US11256783B2 (en) * | 2020-02-26 | 2022-02-22 | Amera IoT Inc. | Method and apparatus for simultaneous key generation on device and server for secure communication |
US10817590B1 (en) * | 2020-02-26 | 2020-10-27 | Amera IoT Inc. | Method and apparatus for creating and using quantum resistant keys |
US11258602B2 (en) * | 2020-02-26 | 2022-02-22 | Amera IoT Inc. | Method and apparatus for secure private key storage on IoT device |
US11271911B2 (en) | 2020-02-26 | 2022-03-08 | Amera Lot Inc. | Method and apparatus for imprinting private key on IoT |
CN112347498B (zh) * | 2020-12-01 | 2022-10-28 | 南阳理工学院 | 一种加密方法、装置、电子设备及可读存储介质 |
CN113792305B (zh) * | 2021-08-18 | 2023-11-14 | 广州城建职业学院 | 加密解密方法、系统、设备及计算机可读存储介质 |
WO2023198036A1 (zh) * | 2022-04-11 | 2023-10-19 | 华为技术有限公司 | 一种密钥生成方法、装置及设备 |
US20240037553A1 (en) * | 2022-07-28 | 2024-02-01 | Brax Kinsey | Digital Forge Systems and Methods |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0920753B1 (en) | 1996-08-19 | 2006-12-13 | NTRU Cryptosystems, Inc. | Public key cryptosystem method and apparatus |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
EP0804758B1 (en) | 1994-07-29 | 2005-11-09 | Certicom Corp. | Elliptic curve encryption systems |
US6493449B2 (en) | 1998-02-26 | 2002-12-10 | Arithmetica, Inc. | Method and apparatus for cryptographically secure algebraic key establishment protocols based on monoids |
US7421076B2 (en) | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
JP6019453B2 (ja) * | 2012-07-05 | 2016-11-02 | 株式会社クリプト・ベーシック | 暗号化装置、復号化装置、及びプログラム |
US20170063530A1 (en) * | 2013-08-13 | 2017-03-02 | Michael Stephen Fiske | NADO Cryptography with Key Generators |
US20160234009A1 (en) * | 2015-02-08 | 2016-08-11 | Wenhua Li | Chaotic Baseband Modulation Hopping Based Post-Quantum Physical-Layer Encryption |
GB2549981B (en) * | 2016-05-05 | 2018-10-10 | Jung Tjhai Cen | A public key cryptosystem based on the partitioning of elements of vectors |
CN107483206B (zh) * | 2017-09-30 | 2023-08-11 | 数字兵符(福州)科技有限公司 | 一种快速的量子安全的非对称加密方法 |
US10581604B2 (en) * | 2017-10-17 | 2020-03-03 | Comsats Institute Of Information Technology | Post-quantum cryptographic communication protocol |
JP6988912B2 (ja) * | 2017-11-29 | 2022-01-05 | 日本電信電話株式会社 | 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体 |
CN108173651A (zh) * | 2018-02-11 | 2018-06-15 | 众算(上海)数据科技有限公司 | 一种自有后量子密钥分配方法 |
DE102018108313A1 (de) * | 2018-04-09 | 2019-10-10 | Infineon Technologies Ag | Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis |
US11456877B2 (en) * | 2019-06-28 | 2022-09-27 | Intel Corporation | Unified accelerator for classical and post-quantum digital signature schemes in computing environments |
-
2018
- 2018-09-27 TW TW107134068A patent/TWI672932B/zh active
- 2018-12-18 CN CN201811570509.4A patent/CN110958112B/zh active Active
-
2019
- 2019-06-21 US US16/448,445 patent/US11218308B2/en active Active
- 2019-07-02 JP JP2019123599A patent/JP7053537B6/ja active Active
- 2019-07-07 EP EP19184840.7A patent/EP3629517A1/en not_active Withdrawn
- 2019-08-21 KR KR1020190102150A patent/KR102354456B1/ko active IP Right Grant
-
2022
- 2022-02-17 JP JP2022022840A patent/JP2022059057A/ja not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0920753B1 (en) | 1996-08-19 | 2006-12-13 | NTRU Cryptosystems, Inc. | Public key cryptosystem method and apparatus |
Non-Patent Citations (2)
Title |
---|
Jeff Hoffstein et al "NTRU: A public key cryptosystem." NTRU Cryptosystems, Inc.(www. ntru. com) (1999.) |
Vinay Kumar et al "Matrix Formulation of NTRU Algorithm using multiple Public keys from Matrix Data Bank for High Degree polynomials." (2013.) |
Also Published As
Publication number | Publication date |
---|---|
CN110958112B (zh) | 2022-06-28 |
TW202013927A (zh) | 2020-04-01 |
JP2020052393A (ja) | 2020-04-02 |
JP7053537B6 (ja) | 2023-12-20 |
US20200106606A1 (en) | 2020-04-02 |
EP3629517A1 (en) | 2020-04-01 |
CN110958112A (zh) | 2020-04-03 |
TWI672932B (zh) | 2019-09-21 |
JP2022059057A (ja) | 2022-04-12 |
US11218308B2 (en) | 2022-01-04 |
KR20200036727A (ko) | 2020-04-07 |
JP7053537B2 (ja) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102354456B1 (ko) | 프라임 모듈로 이중 캡슐화에 기초한 일대다 분산 키 관리 기능을 갖춘 포스트 퀀텀 비대칭 키 암호 시스템 | |
US11394526B2 (en) | Compressible (F)HE with applications to PIR | |
US11431498B2 (en) | Quantum-augmentable hybrid encryption system and method | |
US11991285B2 (en) | Configurable cryptographic device | |
US7054445B2 (en) | Authentication method and schemes for data integrity protection | |
US8320559B1 (en) | Identity-based-encryption system | |
US11212099B2 (en) | Cryptographic device with updatable shared matrix | |
WO1997031448A1 (fr) | Methode de communication utilisant une cle commune | |
US20230019301A1 (en) | Attribute-based encryption (abe) method with multiple tracing attribute authorities for cloud-assisted internet-of-things (iot) | |
US20170005792A1 (en) | Key agreement device and method | |
Yusfrizal et al. | Key management using combination of Diffie–Hellman key exchange with AES encryption | |
CN107147626B (zh) | 一种AES算法与ElGamal算法相结合的加密文件传输方法 | |
Balasubramanian | Hash functions and their applications | |
KR20030047148A (ko) | Rsa를 이용한 클라이언트/서버 기반의 메신저 보안 방법 | |
CN108768923A (zh) | 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法 | |
EP1456997B1 (en) | System and method for symmetrical cryptography | |
JP2004246350A (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
US20140044261A1 (en) | Method and system of cryptographic processing of a message | |
Xu et al. | Efficient Private Information Retrieval Protocol with Homomorphically Computing Univariate Polynomials | |
JP2014017763A (ja) | 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム | |
Wang et al. | CP-ABE Optimization via the Flexible Integration of Access Policies Containing Multiple Shared Subpolicies | |
JP2886516B2 (ja) | 暗号鍵共有システム | |
Abdelgader et al. | Design of a secure file transfer system using hybrid encryption techniques | |
JPH1079729A (ja) | 共通鍵通信方法 | |
Atighehchi et al. | A cryptographic keys transfer protocol for secure communicating systems |
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 |