KR20230046921A - 랜덤 요소의 풀로부터의 고유 암호화 키 생성 - Google Patents

랜덤 요소의 풀로부터의 고유 암호화 키 생성 Download PDF

Info

Publication number
KR20230046921A
KR20230046921A KR1020217036006A KR20217036006A KR20230046921A KR 20230046921 A KR20230046921 A KR 20230046921A KR 1020217036006 A KR1020217036006 A KR 1020217036006A KR 20217036006 A KR20217036006 A KR 20217036006A KR 20230046921 A KR20230046921 A KR 20230046921A
Authority
KR
South Korea
Prior art keywords
elements
matrix
length
key
generating
Prior art date
Application number
KR1020217036006A
Other languages
English (en)
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 크립트 인크.
Publication of KR20230046921A publication Critical patent/KR20230046921A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • 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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

고정된 캐릭터 길이를 갖는 평문(plaintext) 메시지를 수신하고 소스로부터 복수의 난수를 수신하는 것에 의한 암호화 키 생성을 위한 시스템 및 방법. 행렬은 복수의 난수로부터 생성되고, 행 또는 열의 개수 중 적어도 하나가 캐릭터 길이보다 크거나 같다. 행렬 내에서 초기 요소를 선택하고, 어레이 내의 요소의 개수가 캐릭터 길이와 같아질 때까지 선택 기술을 사용하여 후속 요소를 선택하고, 어레이로부터 임의의 이전에 선택된 요소를 거부함으로써, 암호화 키 또는 암호 키의 시드로 사용될 수 있는 어레이가 생성된다.

Description

랜덤 요소의 풀로부터의 고유 암호화 키 생성
관련 출원에 대한 교차 참조
본 출원은 2019년 4월 5일 출원된 미국 특허 출원 번호 제16/375,921호의 우선권을 주장한다. 이의 전체 내용은 본 명세서에 참조에 의해 포함된다.
기술분야
본 출원은 통신문의 생성 및 암호화, 통신 네트워크를 통한 이의 전송, 전송된 메시지의 수신 및 복호화에 관한 것이고; 특히, 고유 키의 생성 및 사용에 관한 것이다.
데이터 저장소와 컴퓨팅 장치는 점점 더 해커와 기타 보안 위협의 표적이 되고 있으며, 여기에는 고의의 내부자 및 고의가 아닌 내부자를 포함한다. 기본적인 방어 전술은 이 데이터와 전체 장치를 모두 암호화하여 손상되거나 도난당한 경우 데이터를 쓸모 없게 만들고 데이터에 액세스할 수 없게 만드는 것이다. 많은 비대칭 및 대칭 키 기반 암호화 알고리즘은 암호화 키의 안전한 생성, 배포 및 저장에 의존한다. 이러한 암호화 키는 어려운 것으로 평가된 알고리즘과 진정한 무작위인 것으로 간주되는 숫자 생성기를 기반으로 데이터를 신뢰성 있게 암호화하고 복호화화하는 데 사용된다.
양자 컴퓨터의 출현은 이 접근 방식에서 2가지 결함을 드러냈다. 대부분의 알고리즘, 특히 비대칭 암호화 체계의 수학적 난해함은 수학에서의 발전에 의해 효율적으로 깨질 수 없다는 엄격한 수학적 증거를 가지지 않는다. 또한, 대부분의 경우, 대부분의 알고리즘은 충분히 큰 컴퓨팅 리소스를 갖는 양자 컴퓨터에 의해 쉽게 깨질 수 있다. 두 번째 결함은 대부분의 난수 생성기가 증명 가능한 난수를 생성하기 위해 진정한 확률 이벤트를 샘플링하지 않는다는 것이다. 이 문제는 추출된 각각의 랜덤 비트에 대한 기본적인 양자 효과를 측정하는 양자 난수 생성기의 개발에 의해 해결되었다. 이것은 일부 기술적 주장의 "양자성(quantumness)"에 대한 새로운 논쟁으로 발전하였다. 모든 현대 전자 장치는, 생성하는 무작위성이 고전적 노이즈로 간주될지라도, 어느 정도는 양자적이다. 위험은 양자 컴퓨터 또는 수학적 분석에서의 발전이 이 고전적 노이즈에서 패턴을 발견하고 생성된 키의 스펙트럼을 예측할 수 있다는 것이다.
고전적 또는 양자 엔트로피 소스로부터의 대규모 랜덤 키 생성기는 암호화에 영향을 미치는 양자 컴퓨터 및 기타 과학적 발전에 대한 보안의 필수 수단이다. 일반적으로, 키가 길수록 비슷하거나 유사한 알고리즘에 대해 더 큰 암호화 내구성을 제공한다. Claude Shannon은 1949년에 이상적인 솔루션은 키가 암호화를 필요로 하는 평문(plaintext)만큼 길고 평문이 임의의 크기를 갖는 일회성 패드(one-time pad)라고도 하는 Vernam cipher라는 것을 입증하였다. 그러나, 실제로, 암호화 내구성은 변경될 수 있으며 일회성 패드 또는 AES(Advanced Encryption Standard)와 같이 더 약한 것으로 조정될 수 있다. 어느 경우에서든, 적절한 길이의 키가 필요하며, 개시된 생성기 설계에 의해 지원되어야 한다.
본 발명의 목적은 암호화 키를 생성, 추적 및 관리하기 위한 시스템, 장치 및 방법을 제공하는 것이다. 랜덤 요소의 집합(set) 또는 풀(pool)은 이진수로 효율적으로 변환될 수 있는 숫자, 기호 또는 고유한 요소의 임의의 표현의 모음일 수 있다. 이 난수 풀은 임의로 클 수 있으며 키로 정의된 난수의 부분 집합을 선택하거나 생성하기 위한 기초로 사용될 수 있다. 또한, 전체 랜덤 풀은 랜덤 집합보다 큰 키를 생성하도록 변환될 수도 있다. 일 실시예에서, X 랜덤 요소의 집합은 A 행(row) 및 B 열(column)의 행렬(M)로 구성될 수 있으며, 여기서 B는 X에서의 요소의 개수를 A로 나눈 것이고, 여기서 A는 1보다 크다. X의 전체 집합을 사용하는 것은 A와 B가 정수인 것을 필요로 하거나, X의 추가 요소가 사용되지 않을 수 있다. A와 B는 조정 가능한 파라미터이며 임의의 집합 X에 대해 다를 수 있다.
일회성 패드(OTP)를 사용하여 길이 L의 평문을 암호화하기 위해, 길이 L의 키 K가 개별적으로 또는 함께 여러 별개의 절차를 사용하여 행렬로부터 추출될 수 있다. 길이 L의 선형 시퀀스 또는 1차원 어레이(J)는, 첫 번째를 포함하여, 임의의 요소 I에서 시작하는 행렬의 제1 행으로부터 선택될 수 있다. (B-I)가 L보다 작으면 (B-I+1) 요소의 선택이 A의 제1 열에서 시작하여 L이 완료될 때까지 순차적으로 계속된다. 선형 시퀀스 J는 OTP로 사용될 수 있다.
추가 시퀀스 또는 키 K는 동일한 열 I 또는 임의의 열에서 시작하여 행마다 변화하는 행렬에서의 행들의 일부 또는 모두로부터 샘플링될 수 있다. 이들은 개별적으로 OTP로서 사용될 수 있거나, 길이 L의 단일 OTP를 생성하기 위해 전체 또는 다양한 행 조합으로 함께 XOR 연산될 수 있다. 개별 선형 시퀀스는 다양한 조합을 생성하기 위해 각각의 행으로부터 비순차적으로 선택될 수 있다. 예를 들어, 요소를 순차적으로 선택하는 대신, 시퀀스 J를 조합하기 위하여 요소는 2개 마다 또는 3개 마다 사용될 수 있다. 이 선택 기준은 무작위로 지정되거나 알려진 기능을 기초할 수 있다.
난수는 검증 가능한 랜덤 프로세스로부터 키를 생성하는 양자 엔트로피 소스에서 생성될 수 있다. 이것은 일정 수준에서 결정적인 엔트로피의 의사 난수 생성기 및 비양자 전자 노이즈 소스와 대조된다. 수학, 컴퓨터 과학 및 물리학에서의 발전이 이러한 의사 랜덤 시스템에서 재현 가능한 패턴을 나타내지 않을 것이라는 증거나 보장은 없다.
이 행렬 시스템은 고전적인 랜덤 소스에 랜덤화를 도입하고 양자 랜덤 소스의 양자 랜덤성을 보존한다. 양자적이고 고전적인 다수의 랜덤 소스를 결합하여 행렬에서 각각의 행을 제공하거나 나중에 결합되는 별도의 행렬을 제공하는 것은 본 시스템의 자연스러운 확장이다. 잘린 키(truncated key) 및 다른 크기의 1차원 어레이를 포함하는 더욱 복잡한 조합도 동일하게 유효하다.
본 발명의 한 예는, 고정된 캐릭터 길이를 포함하는 평문 메시지를 수신하는 단계와, 소스로부터 복수의 난수를 수신하는 단계를 가질 수 있는 암호화 키 생성을 위한 방법이다. 행렬은 캐릭터 길이보다 크거나 같은 행의 개수 및 열의 개수 중 어느 하나 또는 모두를 갖는 행렬이 복수의 난수로부터 생성될 수 있다. 행렬 내에서 초기 요소를 선택하고, 어레이 내의 요소의 개수가 캐릭터 길이와 동일할 때까지 선택 기술을 이용하여 후속 요소를 선택하고, 어레이로부터 임의의 이전에 선택된 요소를 거부함으로써 어레이가 생성될 수 있다.
어레이 생성 단계는, 동일한 행 및 동일한 열 중 하나로부터 후속 요소를 선택하는 단계를 포함할 수 있고, 사용된 행 또는 열은 캐릭터 길이보다 크거나 같은 치수를 갖는 것이다. 다른 예에서, 생성 단계는, 그 행 또는 열에서의 마지막에 도달되면 초기 요소의 행 또는 열 중 하나에서의 초기 요소로 다시 래핑(wrapping)하는 단계를 포함할 수 있다.
다른 예에서, 선택 기술은 초기 요소로부터 순차적으로 선택하는 것일 수 있거나, 어레이는 임의의 열로부터의 요소를 재사용하지 않으면서 임의의 예측 가능한 선택 기술을 이용하여 초기 요소의 행으로부터 선택된다.
추가 어레이는 동일한 행 또는 열로부터 생성될 수 있으며, 일례에서, 키 또는 최종 어레이는 최종 어레이를 생성하기 위하여 복수의 상기 추가 어레이를 XOR 연산함으로써 형성될 수 있다. 대안적으로, 복수의 추가 어레이를 생산하는데 각각 사용되는 복수의 행렬을 생성될 수 있고, 그 다음 복수의 추가 어레이를 함께 XOR 연산하여 최종 어레이를 생성할 수 있다.
또한, 시스템이 상기 방법을 구현하기 위해 사용될 수 있다.
본 발명의 전술한 양태 및 추가 양태는 다양한 도면에서 유사한 도면 부호가 유사한 구성 요소 및 특징을 나타내는 첨부된 도면과 함께 이어지는 설명을 참조하여 논의될 것이다. 도면은 반드시 축적에 맞을 필요는 없으며, 대신에 본 발명의 원리를 나타냄에 따라 강조될 수 있다. 도면들은 본 발명의 장치의 하나 이상의 구현예를 한정이 아니라 단지 예시로서만 도시한다.
도 1은 예시적인 암호화된 통신문을 도시하고;
도 2는 본 발명의 시스템의 일례를 도시하는 블록도이고;
도 3은 행렬로부터 키 시퀀스를 생성하는 데 사용되는 패턴의 다양한 예를 도시하고;
도 4a 및 4b는 중간 시퀀스와, 중간 시퀀스로부터 키 시퀀스를 생성하는 예를 도시하고;
도 5는 다수의 키와 최종 키를 생성하는 예를 도시하고;
도 6은 예시적인 암호화된 통신문을 암호화하는 일례를 도시하고;
도 7은 예시적인 통신문을 암호화하는 방법의 일례이고;
도 8은 통신문을 암호화하는 방법의 추가적인 예를 도시하고; 그리고
도 9는 본 발명에 따른 통신문을 암호화하는 시스템의 다른 예를 도시한다.
일반적으로, 본 명세서에 제시된 예시적인 장치, 시스템 및 방법은 비보안(unsecure) 채널을 통해 통신 장치들 사이의 안전한 종단간(end-to-end) 메시지 전송을 가능하게 할 수 있으며, 그 기본 구성은 도 1에 도시된다. 여기서, 제1 사용자(10)("Alice")는 비보안 네트워크(30)(예를 들어, 인터넷)를 통해 제2 사용자(20)("Bob")에게 통신문을 전송하기 원한다. Alice(10)는 암호화 키(50)의 사용에 의해 보안 메시지(45)로 암호화되는 평문 메시지(40)를 생성한다. 이 키(50)는 Alice의 하드웨어에 상주하거나 서드 파티에 의해 제공되는 암호화 엔진(55)에 의해 생성된다. 암호화된 텍스트(45)는 네트워크(30)를 통해 전송되고, 제2 키(50')를 사용하여 복호화되며, 평문(40)은 Bob(20)이 액세스할 수 있다. 제2 키(50')는 제1 키(50)와 동일하거나 암호화된 텍스트(45)를 복호화하기 위하여 수학적으로 관련된다(예를 들어, 비대칭 키). Bob(20)과 Alice(10) 사이의 통신은 동일한 키, 다른 키 또는 평문(40)을 보호하기 위한 임의의 다른 키 교환을 계속 이용할 수 있다.
본 발명은 임의의 키 교환 방법을 사용하여 임의의 데이터 교환을 보호하거나 인증하기 위한 키의 생성에 초점을 맞춘다. 시스템 및 방법은 키의 길이가 암호화된 메시지와 동일한 길이인 평문과 동일한 길이인 일회성(OTP 패드) 방법을 사용한다.
도 2는 n개의 요소(E)를 갖는 평문 메시지(100)를 도시한다. 요소의 개수(n)는 메시지의 길이(L)다. OTP 암호화/복호화(crypto(크립토)) 엔진(200)은 평문 메시지(100)를 수신하고 암호화 프로세스를 시작한다. 크립토 엔진(200)은 바람직하게는 양자 엔트로피 소스(202)로부터 난수를 생성하거나 수신한다. 양자 엔트로피 소스(202)는 미국 특허 번호 제9,425,954호, 미국 특허 번호 제9,660,803호 및 미국 출원 번호 제16/288,722호에 설명된 것일 수 있다. 또한, 양자 또는 고전 엔트로피 소스, 반양자(semi-quantum) 또는 난수 생성기가 사용되어 소프트웨어, 하드웨어 또는 이들의 임의의 조합에 의해 생성될 수도 있다. 단 하나의 소스(202)가 도시되어 있지만, 임의의 개수의 소스가 사용될 수 있다는 점에 유의하라. 또한, 난수(R)는 풀링(204)되어 암호화 시에 검색되거나 요청 시 호출되어 풀링될 수 있다. X개의 난수(R)가 있을 수 있다.
크립토 엔진(200)은 난수 풀(204)로부터 A개의 행(row)(208) 및 B개의 열(column)의 행렬(206)을 형성할 수 있다. 이 예에서, A×B < X이고, 행렬(205)의 차원수는 임의의 세션의 시작에서 암호화 함수에 의해 결정될 수 있다. 일례에서, 행렬(206)은 상기 캐릭터 길이(L)의 길이보다 크거나 같은 개수(B)의 열(210)로 형성되고, 행(208)의 개수(A)는 적어도 1이다. 행렬(206)은 난수(R) 모두를 사용하지 않고 풀(204)로부터 선형으로 채워질 수 있다. 또한, 난수는 "비트(bit)"일 수 있고 추가 비트가 무작위로 선택되거나 풀(204) 내의 개별 포인트에서 선택되어 폐기될 수 있다. 행렬(206)은 정사각행렬이거나 정사각행렬이 아닐 수 있다. 각각의 행렬(206)의 요소, 행(208) 또는 열(210)을 채우는 랜덤 요소는 임의의 규정된 방법에 따라 순차적으로 또는 다른 방법으로 수행될 수 있다. A×B 요소를 초과하는 풀(204)의 모든 요소(Y)는 폐기되거나 추가 작업을 통해 행렬에 통합될 수 있다. 예를 들어, 추가 요소(Y)는 Y가 모두 소모될 때까지 제1 요소 또는 임의의 요소에서 시작하여 행렬(206)로 순차적으로 XOR 연산될 수 있다. 수학적 시퀀스 또는 함수에 기초한 임의의 알고리즘 방법이 추가 요소(Y)를 행렬(206)에 통합하는데 사용될 수 있어, 풀(204) 내의 모든 난수(R)가 사용된다. 크립토 엔진(200)은 각각의 평문 문자열(100)에 대해 새로운 풀(204)을 형성하거나 나중에 사용하기 위해 풀(204)에 난수(Y)를 유보할 수 있다.
일단 행렬(206)이 형성되면, 크립토 엔진(200)은 키(212)를 형성할 수 있다. 일례에서, 키(212)는 새로운 1차원 어레이를 생성함으로써 형성된다. 키 어레이(212)는 행렬(206) 내의 초기 요소를 선택하고 상기 시작 요소와 동일한 행으로부터 후속 추가 요소를 선택함으로써 생성될 수 있다. 다른 예에서, 초기 요소에 따라, 키(212)는 일단 최종 열(210B)에 도달하면 상기 초기 요소의 행에 있는 제1 요소로 다시 래핑(wrapping)함으로써 형성될 수 있다. 키 시퀀스는 새로운 1차원 어레이(212) 내의 요소의 개수가 임의의 열(210)로부터의 요소를 재사용하지 않고 평문 메시지의 캐릭터 길이(L)와 같을 때까지 행렬(206)로부터 생성된다. 도 2에서 도시된 예에서, 키(212)는 제1 행(2081)으로부터 형성되고 제1 열(2101)에서 시작한다. 다른 예는 초기 요소의 행(208)으로부터만 다시 이용한 후 임의의 열(210)로부터의 요소를 재사용하지 않고 임의의 예측 가능한 순서 또는 함수를 이용하여 행렬(206)로부터 키(212)에 대한 키 요소(K)를 선택하는 것을 포함한다. 따라서, 시퀀스는, 예로서, 키(212)가 평문 길이(L)와 동일한 길이일 때까지, K1 = (2081, 2102), (2081, 2103), (2081, 2101), (2081, 210B), 등일 수 있다.
도 3은 행렬(206) 및 결과적인 키(312)의 다른 예를 도시한다. 여기에서, 키(312)(여전히 1차원 어레이일 수 있음)는 행렬(206)에서의 임의의 행(208)으로부터 순차적으로 또는 비순차적으로 선택된다. 따라서, 일례에서, 제1 키(312A)는 다수의 행으로부터 취해지고 그리고 순서를 벗어난 KAi 내지 KAv로 표시된 요소로부터 생성될 수 있다. 행렬(206)에서의 나머지 요소가 주어지면, 순차적 또는 비순차적 기술을 사용하여 해칭된 영역으로부터 예시된 바와 같이 추가 키(312)가 형성될 수 있다.
도 4a는 임의의 상기 기술을 사용하여 행렬(206)로부터 풀링된 중간 시퀀스(214)를 형성하는 것을 예시한다. 시퀀스(214)는 Q개 요소를 가질 수 있고 1차원 어레이일 수 있다. 시퀀스(214)는 행렬(206)의 요소들로부터 샘플링되거나 조합될 수 있다. 또한, 시퀀스(214)는 키(212)로서 사용되거나 임의의 차원의 딸(daughter) 행렬(212') 및/또는 추가 시퀀스(214')를 생성하기 위한 랜덤 요소로서 사용될 수 있다. 시퀀스(214)의 길이(Q)는 필요한 키 크기에 의해 결정되거나, OTP 기반 시스템의 경우, 일대일 대응 관계(예를 들어, Q = L)로 암호화를 필요로 하는 평문의 크기(L)에 의해 결정될 수 있다. 시퀀스(214)의 크기(Q)가 계산되면, 암호화 키에 통합하거나 다른 시퀀스(214)와 XOR 연산하기 전에 추가 연산 및 변환이 적용될 수 있다.
도 4b는 어레이/시퀀스(214)의 집합이 함께 XOR 연산되어 길이 L의 최종 키 시퀀스(412)를 생성할 수 있다는 것을 도시한다. 개별 시퀀스(214i 내지 214iv)는 모두 동일한 길이일 수 있거나 서로 달라질 수 있다. 시퀀스(214)가 불균일한 길이를 갖는 경우, 이는 연결되거나(concatenated), 패딩되거나(padded) 또는 추가 선형 연산이 적용되어 동일한 길이 Q의 모든 시퀀스(214)를 얻을 수 있다. 이러한 연산은 키 시퀀스(412)의 길이가 중간 시퀀스(214)의 길이보다 짧을 때 동일하게 적용된다. 하나의 예에서, 모든 시퀀스(214)가 시퀀스(214) 집합에 대한 XOR 연산 적용 이전에 키 시퀀스(412)의 길이로 감소되어야 한다는 것을 의미한다. 추가 연산은 임의의 개별 시퀀스(214)에 대해 유효하거나 최종 키 시퀀스(412)를 달성하기 위한 XOR 연산에 대한 중간 단계로서 유효하다. 예를 들어, 제1 시퀀스(214i)는 다자간 암호화 키 시스템에서 모든 사용자에게 고유한 개인 키와 개별적으로 XOR 연산될 수 있다. 키 시퀀스(412)를 생성하기 전에 추가 요소가 모든 시퀀스(214)에 덧붙여지거나 추가될 수 있다.
키 시퀀스(212)와 중간 시퀀스(214) 모두를 생성하는 추가 예인 도 3은 순차적인 순서 및 비순차적인 순서를 모두 도시한다. 비순차적 패턴은 각각의 행으로부터의 요소(E)를 2개의 행마다, 3개의 행 마다 또는 임의의 예측 가능한 규칙적이거나 무작위적인 열 순서로 정렬할 수 있다. 시퀀스(212, 214)를 생성할 때, 행(208)에서의 임의의 요소 A는 한 번만 사용될 수 있고, 이는 시퀀스(212, 214)에서 다음 요소를 선택하기 전에 각각의 요소가 소비된 것으로 간주되어야 한다는 것을 의미한다. 함수 또는 알려진 시퀀스의 적용은, 예를 들어, 행(208)으로부터의 요소 A를 시퀀스(212, 214)로 배치한 후에 동일한 행(208)에 적용될 수 있다. 시퀀스(212, 214)를 채우는 데 사용되는 각각의 단계는 행(208)에서 선택하기 위해 사용 가능한 요소 A를 효과적으로 줄인다. 시퀀스(212, 214)의 다음 요소를 선택하기 전에 행(208)에서의 나머지 요소 A에 추가 혼합 또는 연결 함수가 적용될 수 있다. 시퀀스 예는 행(2081)에 있고, 래핑 시퀀스가 행(2083)에 있고, 비순차적 패턴이 행(2084 내지 208A)에 있다.
시퀀스(212, 214)를 생성하는 다른 예는 난수(R)의 전체 풀(204)을 활용한다. 이 예에서, Y개의 초과 난수가 있다. 전체 풀(204)은 풀 집합 X보다 큰 시퀀스(212, 214)를 생성하도록 변환될 수 있다. 일례에서, X 랜덤 요소의 집합은 A개의 행(208) 및 B개의 열(210)의 하나 이상의 행렬(206)로 구성될 수 있으며, 여기에서 B는 X에서의 요소의 개수를 A로 나눈 값이고, A는 1보다 크다. X 랜덤 요소의 전체 집합을 사용하는 것은 A와 B가 정수인 것을 필요로 하거나, 전체 풀 집합 X의 추가 요소 Y가 사용되지 않을 수 있다. 행 및 열의 길이 A 및 B는 조정 가능한 파라미터이고, 임의의 집합 X에 대해 서로 다를 수 있다.
일회성 패드(OTP)를 사용하여 길이 L의 평문(100)을 암호화하기 위해, 길이 L의 키(212)가 개별적으로 또는 함께 여러 별개의 절차를 사용하여 행렬(206)로부터 추출될 수 있다. 길이 L의 선형 시퀀스 또는 1차원 어레이(212, 214)는 첫 번째를 포함하는 임의의 요소 i에서 시작하는 행렬의 제1 행에서 선택될 수 있다. (B-i)가 L보다 작은 경우, (B-i+1) 요소의 선택이 그 행(208)의 제1 열(210)에서 시작하여 L이 완료될 때까지 순차적으로 계속된다. 선형 시퀀스(212, 214)는 OTP로 사용될 수 있다.
도 5는 시퀀스 개념을 행렬(206) 및 키 집합(212) 레벨로 예시한다. 다양한 차원의 다수의 행렬(206i 내지 206n)이 랜덤 풀(204)로부터 또는 이전 행렬(206)로부터 조작된 일련의 시퀀스(214)로부터 개별적으로 생성될 수 있다. 각각의 행렬(206)은 키(212)를 생성하고, 이는 다음에 암호화에 사용되는 최종 키(512) 또는 OTP를 성하기 위하여 함께 XOR 연산될 수 있다.
풀(204)을 생성하기 위해 사용되는 고전 또는 양자 엔트로피 소스(202)는 각각 개별 난수 생성기 또는 임의의 조합과 상관되는 개별 행렬(206) 또는 여러 행렬(206)과 연관될 수 있다. 풀(204)이 사실상 난수(R)의 큰 풀이지만, 풀(204)은 양자적이거나 고전적인 자신의 엔트로피 기원에 대한 복잡한 관계를 갖는 더 작은 집합들로 세분될 수 있다. 이들은 각각의 행렬(206)과 상관된 개별 키 집합(212)을 생성하기 전에 복수의 행렬(206)을 생성하는 데 사용될 수 있다. 각각의 행렬(206)로부터 생성된 키 집합(212)은 개별 시퀀스(214)를 이용하는 것과 유사하게 최종 키 집합(512)로 XOR 연산되기 전에 균일하거나 불균일한 길이를 가질 수 있다.
도 6은 평문(600)이 "hello"인 예를 도시한다. 평문 캐릭터 길이 L은 5이므로 n = 5이다. 도시된 예에서, 크립토 엔진(600)은 행(608) 및 열(610)의 개수가 동일하고 따라서 A = L, B = L이며, 이에 따라 5×5 행렬(606)인 정사각행렬로서 행렬(606)을 형성한다. 크립토 엔진(600)은 행렬(606)을 형성하기 위하여 풀로부터 랜덤 요소를 뽑는다. 단순 치환 키(612)가 행렬(606)에서의 비순차적인 선택으로부터 형성된다. 순차 키(612)는 행(6082)으로부터 "FGHIJ"일 수 있는 반면, 단일 어레이의 비순차적 키는 6083행의 "KMOLN"일 수 있다.
도 7과 8은 컴퓨터로 구현되는 암호화 키 생성을 위한 다양한 방법을 도시한다. 여기에서, 임의의 계산 장치는 범용 컴퓨터 및 서버, FPGA(Field Programmable Gate Array), 프로세서 어레이 및 네트워크, 전용 ASIC(Applications Specific Integrated Circuit), 가상 기계(Virtual Machine(VM)) 등을 포함할 수 있지만 이에 한정되지 않는다. 또한, 특정 장치는 휴대 전화기, 태블릿 컴퓨터, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치를 포함할 수 있다. 일부 예에서, 프로세서 및 프로세서에 의해 실행될 때 프로세서가 엔트로피 소스로부터 난수를 조작하고, 기록하고, 확장하고, 풀 내로 집계하고, 이러한 집계 난수를 갖는 행렬을 생성하고, 키 또는 중간 시퀀스를 생성하고, 시퀀스를 분배하는 것을 포함하는 다양한 작업을 수행할 수 있는 컴퓨터 실행 가능한 명령어를 저장하는 비일시적 메모리를 포함할 수 있는 컴퓨터 시스템이 제공될 수 있다. 이것은 단일 장치(예를 들어, 모바일 또는 현장 배포 장치 내의 시스템 온 칩)에 의해 수행되거나 네트워크에 걸쳐 수행될 수 있다. 이러한 컴퓨터 시스템 중 몇몇은 물리적이거나 가상화될 수 있는 개별 노드의 더 큰 네트워크 구조를 생성하는 시스템 그룹으로 조합될 수 있다.
도 7은 암호화될 평문을 선택하는 단계를 포함하는 방법의 예를 도시하며, 상기 평문은 고정된 캐릭터 길이를 갖는다(단계 700). 단일 또는 복수의 하드웨어 및/또는 소프트웨어 엔트로피 소스로부터 난수의 소스를 설정하고(단계 702), 상기 난수로부터 행렬을 생성한다(단계 704). 위에서와 같이, 단일 또는 복수의 하드웨어 또는 소프트웨어 소스(202)는 양자 난수 생성기일 수 있다.
위에서 언급한 바와 같이, 행렬(206, 606)은 2차원 어레이일 수 있고 평문 메시지(100)의 길이 L보다 크거나 같은 열(210, 610)의 개수 B를 가질 수 있다. 모든 예에서, 열(210, 610)의 개수는 평문 길이 L과 같을 수 있고 행(208, 608)의 개수 A는 1일 수 있다는 것에 유의하라. 또한, 반대의 경우도 마찬가지일 수 있고, 여기에서 행의 개수 A는 평문 길이 L보다 크거나 같고, 열(210, 610)의 개수 B는 1과 같다. 따라서, 행렬(206, 606)의 적어도 하나의 치수 A, B는 평문 길이 L보다 크거나 같을 수 있다. 예로서, 도 6으로 돌아가면, 가능한 키는 열(6103)의 일부인 다수의 행(608)으로부터 가져온 "CHMRW"일 수 있다.
도 7로 돌아가서, 방법은 암호화 키(212, 512, 612) 또는 중간 시퀀스(214) 또는 일회성 패드를 생성하는 단계(단계 706)를 포함할 수 있다. 이것은 행렬(206, 606) 내에서 초기 요소(Ki, Ji)를 선택하고 행렬(206, 606)로부터 후속 추가 요소(Kn, Jn)를 선택함으로써 새로운 1차원 어레이 키 시퀀스(212, 512, 612) 또는 중간 시퀀스(214)로 생성될 수 있다(단계 708).
선택 단계(708)는 시작 요소와 동일한 행 또는 열로부터 초기 요소(Ki, Ji)를 취하는 하위 단계(단계 710) 및/또는 최종 행 또는 열에 도달하면 초기 요소(Ki, Ji)의 행 또는 열에서 초기 요소(Ki, Ji)로 다시 래핑하는 하위 단계(단계 712)를 포함할 수 있다. 다른 하위 단계는 초기 요소(Ki, Ji) 이후에 후속 요소를 순차적으로 선택하는 하위 단계(단계 714) 또는 임의의 예측 가능한 순서 또는 함수를 이용하여 행 또는 열로부터 초기 요소(Ki, Ji)를 선택하는 하위 단계(단계 716)를 포함한다. 다른 단계는 행렬로부터 이전에 사용된 요소를 거부하는 단계(단계 718)이거나, 다르게 말하면 임의의 행 및/또는 열로부터의 요소를 재사용하지 않고 새로운 1차원 어레이/키 시퀀스/중간 시퀀스가 생성된다.
추가 단계는 새로운 1차원 어레이/키 시퀀스(212, 512, 612) 또는 중간 시퀀스(214)에서의 요소(Kn, Jn)의 개수를 임의의 열 또는 행로부터의 요소를 재사용하지 않고 평문 캐릭터 길이 L과 동일하게 일치시키는 단계(단계 720)를 포함한다.
도 8은 이전 단계들로부터 파생된 방법의 추가 예를 도시하고, 새로운 1차원 어레이/키 시퀀스(212, 312, 512, 612)/중간 시퀀스(214)를 선택하는 것이 행렬(206)에서의 임의의 행/열(208, 210)로부터 수행되어 추가 암호화 키(212)를 생성한다(단계 800). 그 다음, 다른 예는 단일 최종 암호화 키 시퀀스(512) 또는 일회성 패드를 생성하기 위해 복수의 새로운 1차원 어레이/키 시퀀스(212, 612)/중간 시퀀스(214)를 사용할 수 있다(단계 802). 새로운 1차원 어레이/키 시퀀스(212, 512, 612)/중간 시퀀스(214)는, 위에서와 같이, 단일 또는 다수의 순차적 또는 비순차적 기술을 사용하여 행렬(206, 606)로부터 생성될 수 있다. 이러한 새로운 어레이/시퀀스는 최종 키 시퀀스(512)를 형성하기 위해 함께 XOR 연산될 수 있다(단계 804). 새로운 어레이/시퀀스가 복수의 행렬(206n)로부터 생성될 수 있고, 일례에서, 복수의 행렬은 각각 적어도 하나의 새로운 1차원 어레이/시퀀스를 생성한다(단계 806). 위에서와 같이, 새로운 어레이/시퀀스는 새로운 암호화 키(512) 또는 OTP로서 단일 최종 1차원 어레이/시퀀스를 생성하기 위해 후속적으로 함께 XOR 연산될 수 있다.
도 9는 컴퓨터로 구현되는 암호화 키 생성을 위한 시스템(1000)의 예를 도시한다. 평문 메시지(900)는 암호화를 위해 시스템(1000)에 의해 수신되고, 평문(900)은 고정된 캐릭터 길이 L을 갖는다. 암호화 엔진(901)은 난수(R)를 수신하기 위해 하나 이상의 엔트로피/난수 소스(902)에 액세스한다. 엔트로피/난수 소스(902) 하드웨어나 소프트웨어 또는 이 둘의 조합에 기초할 수 있다. 난수는 액세스 시 또는 사전에 풀링(904)될 수 있다. 대안적인 예는 풀링하지는 않지만, 액세스된 난수(R)가 행렬을 형성하는 데 직접 사용된다. 행렬(906)은 난수 소스(902)로부터 생성된 난수의 집합으로부터 생성될 수 있고, 평문 캐릭터 길이 L보다 크거나 같은 행(908)의 개수 A 및/또는 열(910)의 개수 B를 가질 수 있다. 시스템(1000) 행렬(906)로부터 암호화 키(912)(일회성 패드에 사용될 수 있음)를 생성한다. 암호화 키(912)는 상기 행렬 내의 초기 요소(Ki)로부터 시작하여 키의 길이가 적어도 캐릭터 길이 L과 동일할 때까지 후속 추가 요소로 계속되는 1차원 어레이일 수 있다. 일례에서, 나머지 키 요소(Kn)는 시작 요소(Ki)와 동일한 행(908) 또는 열(910)로부터 추출될 수 있고, 최종 행/열에 도달되면 행(908) 또는 열(910)에서의 제1 요소로 다시 래핑하는 것을 포함한다. 행렬(906)의 도시에서의 다른 해칭은, 위에서 논의된 바와 같이, 상이한 키 생성 기술을 나타낸다. 키 시퀀스(912)에서의 키 요소(Kn)의 개수는 임의의 행렬의 행(908) 또는 열(910)로부터 요소를 재사용하지 않고 상기 평문 캐릭터 길이 L과 같을 수 있다. 그 다음, 키(912)는 암호화된 메시지(945)를 형성하기 위해 평문 메시지(900)에 적용된다. 그 다음, 암호화된 메시지(945)가 전송될 수 있다. 일례에서, Alice(10)는 네트워크(30)를 통해 Bob(20)에게 보낼 평문 메시지(900)를 타이핑한다(비보안 또는 기타). 시스템(1000)은 Alice(10)로부터 평문 입력을 수신하고 이를 Bob(20)에게 전송하는 데 필요한 모든 요소를 포함하거나, 메시지(945)를 암호화/복호화하는 데 필요한 요소만 포함할 수 있다.
그 다음, 메시지(945)를 복호화하기 위한 Bob(20)에 의한 키(912)의 사용은 다수의 알려진 수단을 통할 수 있다. 키(912)는 Bob(20)에게 그의 사용을 위해 임의의 공지된 종래 기술 방법으로 전달될 수 있다. 대안적으로, Alice(10)와 Bob(20)은 모두 행렬(906)을 공유할 수 있고, Alice와 Bob의 시스템(1000)만이 어느 기술(단일 또는 다중, 순차적 또는 비순차적)이 행렬(906)로부터 키(612)를 형성하기 위해 사용되는지를 알고 있다. 행렬(906)은 다른 키를 사용하여 암호화되거나 일반 상태로 전달된다.
다른 예에서, 단일 또는 복수의 하드웨어 또는 소프트웨어 난수 소스(902)는 양자 난수 생성기일 수 있다. 새로운 1차원 어레이가 초기 요소(Ki)로부터 순차적으로 선택된다는 점에서 키 또는 중간 시퀀스(912)에 대한 후속 추가 요소가 순차적으로 선택될 수 있다. 새로운 1차원 어레이는 임의의 행 및/또는 열로부터 요소를 재사용하지 않고 예측 가능한 순서 또는 함수를 사용하여 초기 요소(Ki)의 행 또는 열로부터 선택할 수 있다. 새로운 1차원 어레이는 추가 암호화 키를 생성하기 위해 상기 행렬에서의 임의의 행 및/또는 열로부터 선택될 수 있다. 다른 예는 단일의 순차적 또는 비순차적 기술을 사용하여 행렬로부터 복수의 새로운 1차원 어레이가 생성될 수 있고, 새로운 1차원 어레이가 새로운 암호화 키 또는 일회성 패드로서 단일 최종 1차원 어레이를 생성하기 위하여 함께 XOR 연산될 수 있다는 것이다. 단일 행렬 대신에, 복수의 행렬이 각각 새로운 1차원 어레이를 생성하고, 상기 새로운 1차원 어레이는 새로운 암호화 키 또는 일회성 패드로서 단일 최종 1차원 어레이를 생성하기 위하여 후속적으로 함께 XOR 연산된다.
또한, 행렬은 임의의 차원 수(1, 2, 3 등)을 가질 수 있으며, 특정 예에서, 적어도 하나의 차원에서 평문 캐릭터 길이와 같다. 또한, 이것은 중간 시퀀스와 키 시퀀스 모두에 대해서도 마찬가지이다.
본 명세서에 포함된 설명은 본 발명의 실시예의 예이고, 어떠한 방식으로도 본 발명의 범위를 제한하려고 의도되지 않는다. 본 명세서에 설명된 바와 같이, 본 발명은, 난수 생성, 수집, 풀링, 행렬 생성 및 시퀀스 생성, 추가 제어 기능, 추가 통신 기능, 본 명세서에서 구체적으로 설명되지 않은 최종 사용자 요구를 충족하기 위한 추가 기능, 추가적인 그리고/또는 대안적인 난수 소스, 랜덤 비트 스트림을 생성하기 위한 추가적인 그리고/또는 대안적인 방식 및 수단, 비보안 네트워크를 통한 보안 전송을 위해 난수를 암호화 및/또는 캡슐화하기 위한 추가적인 그리고/또는 대안적인 방식, 가상 엔트로피 소스를 생성하기 위한 추가적인 그리고/또는 대안적인 방식 등을 포함하는 암호화 시스템의 많은 변형 및 수정을 고려한다. 이러한 수정은 본 발명이 관련된 기술 분야에서의 통상의 기술자에게 명백할 것이고, 이어지는 청구범위의 범위 내에 있도록 의도된다.

Claims (14)

  1. 암호화 키 생성을 위한 방법에 있어서,
    고정 캐릭터 길이를 갖는 평문(plaintext) 메시지를 수신하는 단계;
    소스로부터, 복수의 난수를 수신하는 단계;
    상기 캐릭터 길이보다 크거나 같은 개수의 행(row) 및 상기 캐릭터 길이보다 크거나 같은 개수의 열(column) 중 적어도 하나를 포함하는 행렬을 상기 복수의 난수로부터 생성하는 단계; 및
    어레이를 생성하는 단계
    를 포함하고,
    상기 어레이를 생성하는 단계는,
    상기 행렬 내에서 초기 요소를 선택하는 단계;
    상기 어레이 내의 요소의 개수가 상기 캐릭터 길이와 동일할 때까지 선택 기술을 이용하여 후속 요소를 선택하는 단계; 및
    상기 어레이로부터 임의의 이전에 선택된 요소를 거부하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 생성하는 단계는, 동일한 행 및 동일한 열 중 하나로부터 상기 후속 요소를 선택하는 단계를 더 포함하고, 사용된 상기 행 또는 상기 열은 적어도 상기 캐릭터 길이보다 크거나 같은 치수를 갖는 것인, 방법.
  3. 제1항에 있어서,
    상기 생성하는 단계는, 상기 행 또는 상기 열에서의 마지막에 도달되면 상기 초기 요소의 상기 행 또는 상기 열 중 하나에서의 상기 초기 요소로 다시 래핑(wrapping)하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 선택 기술은 상기 초기 요소로부터 순차적으로 선택하는 것을 포함하는, 방법.
  5. 제1항에 있어서,
    상기 어레이는 임의의 열로부터의 요소를 재사용하지 않으면서 임의의 예측 가능한 선택 기술을 이용하여 상기 초기 요소의 행으로부터 선택되는, 방법.
  6. 제1항에 있어서,
    동일한 행 또는 열로부터 추가 어레이를 생성하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서,
    복수의 상기 추가 어레이를 XOR 연산하여 최종 어레이를 생성하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서,
    복수의 추가 어레이를 생산하는데 각각 사용되는 복수의 행렬을 생성하는 단계; 및
    상기 복수의 추가 어레이를 XOR 연산하여 최종 어레이를 생성하는 단계
    를 더 포함하는, 방법.
  9. 암호화 키 생성을 위한 시스템에 있어서,
    고정 캐릭터 길이를 갖는 평문(plaintext) 메시지;
    복수의 난수를 생성하는 난수 소스;
    상기 캐릭터 길이보다 크거나 같은 개수의 행(row) 및 상기 캐릭터 길이보다 크거나 같은 개수의 열(column) 중 적어도 하나를 포함하는, 상기 복수의 난수로부터 생성된 행렬; 및
    암호화 키
    를 포함하고,
    상기 암호화 키는,
    상기 행렬로부터의 초기 요소;
    상기 행렬로부터의 적어도 하나의 후속 요소;
    상기 캐릭터 길이와 동일한 키 길이; 및
    상기 행렬로부터의 반복되지 않는 요소
    를 포함하는, 시스템.
  10. 제9항에 있어서,
    상기 후속 요소는, 초기 요소와 동일한 행으로부터의 요소를 더 포함하는, 시스템.
  11. 제9항에 있어서,
    상기 난수 소스는,
    하드웨어 또는 소프트웨어 중 적어도 하나에 기초하는 복수의 난수 소스; 및
    양자 난수 생성기
    를 포함하는, 시스템.
  12. 제9항에 있어서,
    상기 후속 요소는 상기 초기 요소를 순차적으로 따라가는, 시스템.
  13. 제9항에 있어서,
    상기 암호화 키의 상기 초기 및 후속 요소는 임의의 상기 행 및 상기 열로부터의 고유 요소인, 시스템.
  14. 제9항에 있어서,
    상기 행렬로부터의 추가 요소를 포함하는 어레이; 및
    상기 추가 요소에 대한 수학적 연산으로부터 형성된 상기 추가 요소 또는 새로운 요소 중 적어도 하나를 포함하는 추가 암호화 키
    를 더 포함하는, 시스템.
KR1020217036006A 2020-08-11 2020-08-11 랜덤 요소의 풀로부터의 고유 암호화 키 생성 KR20230046921A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/045747 WO2022035422A1 (en) 2020-08-11 2020-08-11 Generating unique cryptographic keys from a pool of random elements

Publications (1)

Publication Number Publication Date
KR20230046921A true KR20230046921A (ko) 2023-04-06

Family

ID=80248081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217036006A KR20230046921A (ko) 2020-08-11 2020-08-11 랜덤 요소의 풀로부터의 고유 암호화 키 생성

Country Status (4)

Country Link
EP (1) EP3973660A4 (ko)
JP (1) JP2023546302A (ko)
KR (1) KR20230046921A (ko)
WO (1) WO2022035422A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6909783B2 (en) * 1999-10-29 2005-06-21 Joseph Samuel Incarnato Alphabet soup cryptography
US7170997B2 (en) * 2000-12-07 2007-01-30 Cryptico A/S Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data
CZ2008812A3 (cs) * 2008-12-17 2010-06-30 Orsák@Radek Zpusob synchronizace alespon dvou od sebe oddelených náhodných generátoru klícu, zejména pro šifrování informací, a zpusob šifrování informací s použitím náhodného klíce
WO2012154129A1 (en) * 2011-05-10 2012-11-15 Nanyang Technological University Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods
US10019235B2 (en) * 2011-09-30 2018-07-10 Los Alamos National Security, Llc Quantum random number generators
KR101914028B1 (ko) * 2017-04-28 2018-11-01 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법

Also Published As

Publication number Publication date
EP3973660A4 (en) 2022-04-20
EP3973660A1 (en) 2022-03-30
WO2022035422A1 (en) 2022-02-17
JP2023546302A (ja) 2023-11-02

Similar Documents

Publication Publication Date Title
Fu et al. A new chaos‐based color image encryption scheme with an efficient substitution keystream generation strategy
CN110313146B (zh) 模糊度增强
US7945049B2 (en) Stream cipher using multiplication over a finite field of even characteristic
US11997200B2 (en) Generating unique cryptographic keys from a pool of random elements
US10142103B2 (en) Hardware assisted fast pseudorandom number generation
US11381394B2 (en) High speed encryption key generating engine
US7907723B2 (en) Device, system and method for fast secure message encryption without key distribution
US7912213B2 (en) Device, system and method for fast secure message encryption without key distribution
CN115276989B (zh) 基于方向置乱的序列化数据加密方法
US11095442B1 (en) Generating unique cryptographic keys from a pool of random elements
CN110995411A (zh) 加密、解密方法、装置、电子设备及存储介质
CN114443718A (zh) 一种数据查询方法及系统
Li et al. Fully homomorphic encryption with table lookup for privacy-preserving smart grid
US20150172045A1 (en) Method of cryption
CN100459493C (zh) 流密码生成器、随机数生成方法、加密系统及加密方法
CN109902498B (zh) 数据加密方法、数据解密方法及相应的装置和设备
EP1456997B1 (en) System and method for symmetrical cryptography
KR20230046921A (ko) 랜덤 요소의 풀로부터의 고유 암호화 키 생성
CN110336667B (zh) 一种基于伪随机序列控制的通信物理层加密通信方法及装置
Amounas A Novel Encryption Scheme of Amazigh Alphabet Based Elliptic Curve using Pauli Spin? Matrices
JP5586758B1 (ja) 動的暗号化鍵生成システム
RU2683689C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Pandey et al. An Improved AES Cryptosystem Based Genetic Method on S-Box, With, 256 Key Sizes and 14-Rounds
Sitompul et al. Hybrid RC4 and Affine Ciphers to Secure Short Message Service on Android