KR101925787B1 - 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치 - Google Patents

폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101925787B1
KR101925787B1 KR1020140150092A KR20140150092A KR101925787B1 KR 101925787 B1 KR101925787 B1 KR 101925787B1 KR 1020140150092 A KR1020140150092 A KR 1020140150092A KR 20140150092 A KR20140150092 A KR 20140150092A KR 101925787 B1 KR101925787 B1 KR 101925787B1
Authority
KR
South Korea
Prior art keywords
random number
memory buffer
post
von neumann
processing
Prior art date
Application number
KR1020140150092A
Other languages
English (en)
Other versions
KR20160050919A (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 KR1020140150092A priority Critical patent/KR101925787B1/ko
Publication of KR20160050919A publication Critical patent/KR20160050919A/ko
Application granted granted Critical
Publication of KR101925787B1 publication Critical patent/KR101925787B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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

Abstract

폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치를 개시한다.
본 실시예의 일 측면에 의하면, 폰 노이만 후처리가 적용된 난수 생성 장치에 있어서, 기 설정된 수치 이상의 난수성을 가진 난수를 생성하는 제1 난수생성부; 상기 제1 난수생성부에서 생성된 난수열을 복수의 병렬 데이터로 변환하는 변환부; 폰 노이만(Von Neumann) 후처리 기법을 이용하여 상기 변환부에서 변환된 상기 복수의 병렬 데이터의 편향을 제거하여 출력하는 복수의 폰 노이만 후처리부; 상기 복수의 폰 노이만 후처리부에서 출력된 난수를 입력받아 선택적으로 출력하는 제1 멀티플렉서; 상기 제1 멀티플렉서에서 출력된 난수를 저장하는 메모리 버퍼; 상기 메모리 버퍼에 저장된 난수가 모두 소모되었는지 여부를 체크하는 공백체크부; 예비 난수를 생성하는 제2 난수생성부; 및 상기 메모리 버퍼에 여분의 난수가 있는 경우 상기 메모리 버퍼에 저장된 난수를 출력하고, 상기 메모리 버퍼에 저장된 난수가 모두 소모된 경우 상기 제2 난수생성부에서 생성되고 있는 상기 예비 난수를 출력하는 제2 멀티플렉서를 포함하는 것을 특징으로 하는 난수 생성 장치를 제공한다.

Description

폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치{Method and Apparatus for Securing the Continuity of Random Numbers after Von Neumann Post-processing}
본 실시예는 난수의 생성에 있어서, 폰 노이만 후처리를 수행할 경우에 생기는 난수 출력 신호의 비연속성을 극복하기 위한 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
인터넷을 비롯한 유무선통신의 사용이 급속히 확대됨에 따라 통신네트워크의 보안문제는 국가, 기업, 금융상의 중요기밀 보호 및 개인의 사생활 보호 측면에서 그 중요성이 점점 더 증대되고 있다. RSA 등 수학적인 계산복잡성에 기초한 암호체계는 양자컴퓨터가 개발되면 근본적으로 해독이 가능한 것으로 판단되고 있으므로 그 대비책이 요구되고 있다.
계산복잡성에 기초한 암호체계에 비해 일회용 암호표(One Time Pad: OTP)를 이용한 암호방식은 가장 안전한 암호방식으로 알려져 있다. 일회용 암호표를 이용하여 스트림 암호(Stream Cipher)를 생성하면 빠르고 안전하게 암호화된 통신을 수행할 수 있다.
스트림 암호는 2진수 메시지(m)와 2진수 암호키(k)가 있을 때, 메시지와 암호키를 비트 단위로 XOR 연산하여 메시지를 암호화하고, 암호문과 암호키를 비트단위로 XOR 연산하여 메시지를 복호화하는 암호 시스템이다. 예컨대 메시지가 m = 01011 10111이고 암호키가 k = 11011 10010이면 암호문은 01011 10111 XOR 11011 10010의 결과값인 10000 00101이 되고, 복호화한 메시지는 10000 00101 XOR 11011 10010의 결과값인 01011 10111가 된다.
이 때 암호키의 길이가 메시지의 길이와 같고 한 번 사용한 암호키를 다시 사용하지 않으면 완전암호가 된다. 한 번 쓴 암호키는 다시 사용하지 않고 버리므로 이 암호계에서 사용되는 암호표를 일회용 암호표라고 한다.
완전암호를 구현하기 위해서는 암호키를 송신자와 수신자가 공유해야 할뿐만 아니라 한 번 사용한 암호키는 다시 사용해서는 안된다는 제한이 있다. 많은 양의 암호키는 운반과 보관이 어려울 뿐만 아니라 안전성도 보장하기 어렵다. 또한 아무리 많은 암호키를 준비하더라도 급박한 상황에서 이를 다 소모하고 나면 더 이상 암호화된 통신을 유지할 수 없게 된다.
난수생성기(Random Number Generator: RNG)를 이용하여 생성한 난수로 일회용 암호표를 만들고, 보안이 유지되는 방법으로 일회용 암호표를 공유할 수 있다면 일회용 암호표의 분배에서 오는 보안의 위협 및 불편함을 해결할 수 있을 것이다. 이 때 일회용 암호표의 안전한 분배를 위하여 양자 키 분배(Quantum Key Distribution: QKD)를 사용한다. 물론, 양자 키 분배 기술은 OTP 암호는 물론 널리 사용되고 있는 AES(Advanced Encryption Standard)와 같은 대칭 블록 암호 및 대칭 스트림 암호에도 제한 없이 사용된다.
양자는 평소에는 중첩상태로 존재하다가 양자의 상태를 측정하게 되면 측정 결과가 고유상태 중의 하나로 변환된다. 특히, 양자는 측정을 하게 되면 바로 전의 상태에 대한 정보가 없어지고 다시 복원할 수도 없다. 따라서 난수 생성기 및 양자 암호 통신 기술을 이용하여 일회용 암호표를 생성한 후 양자통신을 이용하여 일회용 암호표를 분배하면 암호키를 안전하게 공유할 수 있다.
양자 키 분배 시스템은 양자통신을 이용하여 일회용 암호표를 분배하는 과정과, 분배의 전 단계로서 난수생성기를 이용하여 일회용 암호표를 생성하는 과정을 포함한다.
양자통신을 이용하여 일회용 암호표를 분배하는 과정은 ⅰ)정보보호학회지 제12권 제5호 '양자 키분배 프로토콜'(2002.10. 이화연 著), ⅱ)전자통신동향분석 제20권 제5호 '양자암호통신 기술'(2005. 10. 노태곤 著), ⅲ)Optical Science And Technology '양자 키 분배의 이론'(2009.7. 배준우 著) 등의 논문에 자세히 설명되어 있다.
난수생성기를 이용하여 일회용 암호표를 생성하는 과정에서는 난수의 편향이 없어야 한다. 난수의 편향을 없애기 위한 방법으로서 난수를 생성한 후 폰 노이만 후처리(Von Neumann Post-processing)를 하는 것을 고려할 수 있다. 그러나 폰 노이만 후처리를 사용하면 난수의 약 1/4만이 출력되고 나머지는 empty로 취급되어 출력되지 않는다. 양자 키 분배 시스템에서는 실시간으로 연속된 고속의 난수열이 필요한데, 폰 노이만 후처리를 사용하면 연속된 난수열을 얻을 수 없다는 문제가 있다.
본 실시예는 양자 키 분배 시스템 등 기준 클럭에 맞춰 난수를 연속적으로 공급해야 하는 시스템에 폰 노이만 후처리를 적용함에 있어, 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치를 제공하는 데 그 목적이 있다.
본 실시예의 일 측면에 의하면, 폰 노이만 후처리가 적용된 난수 생성 장치에 있어서, 기 설정된 수치 이상의 난수성을 가진 난수를 생성하는 제1 난수생성부; 상기 제1 난수생성부에서 생성된 난수열을 복수의 병렬 데이터로 변환하는 변환부; 폰 노이만(Von Neumann) 후처리 기법을 이용하여 상기 변환부에서 변환된 상기 복수의 병렬 데이터의 편향을 제거하여 출력하는 복수의 폰 노이만 후처리부; 상기 복수의 폰 노이만 후처리부에서 출력된 난수를 입력받아 선택적으로 출력하는 제1 멀티플렉서; 상기 제1 멀티플렉서에서 출력된 난수를 저장하는 메모리 버퍼; 상기 메모리 버퍼에 저장된 난수가 모두 소모되었는지 여부를 체크하는 공백체크부; 예비 난수를 생성하는 제2 난수생성부; 및 상기 메모리 버퍼에 여분의 난수가 있는 경우 상기 메모리 버퍼에 저장된 난수를 출력하고, 상기 메모리 버퍼에 저장된 난수가 모두 소모된 경우 상기 제2 난수생성부에서 생성되고 있는 상기 예비 난수를 출력하는 제2 멀티플렉서를 포함하는 것을 특징으로 하는 난수 생성 장치를 제공한다.
본 실시예의 다른 측면에 의하면, 폰 노이만 후처리를 적용한 난수 생성 방법에 있어서, 기 설정된 수치 이상의 난수성(Randomness)을 가진 난수의 생성이 가능한 난수생성기(이하, 제1 난수생성기)를 이용하여 난수를 생성하는 난수 생성 과정; 상기 난수 생성 과정에서 생성된 난수열을 복수의 병렬 데이터로 변환하여 출력하는 변환 과정; 상기 복수의 병렬 데이터의 편향을 제거하여 출력하는 폰 노이만 후처리 과정; 상기 폰 노이만 후처리부에서 출력된 난수를 입력받아 메모리 버퍼에 저장하는 메모리 버퍼 저장 과정; 및 상기 메모리 버퍼에 여분의 난수가 있는 경우 상기 메모리 버퍼에 저장된 난수를 출력하고, 상기 메모리 버퍼에 저장된 난수가 모두 소모된 경우 상기 제1 난수생성기와 독립된 별도의 난수생성기(이하, 제2 난수생성기)에서 생성 중인 예비 난수를 출력하는 과정을 포함하는 것을 특징으로 하는 난수 생성 방법을 제공한다.
본 실시예에 의하면 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보함으로써, 양자 키 분배 시스템 등 기준 클럭에 맞춰 난수를 연속적으로 공급해야 하는 시스템에 폰 노이만 후처리를 적용할 수 있으며, 그를 통해 시스템을 간소화하고 고속성과 저비용을 만족시킬 수 있다.
도 1은 기존의 폰 노이만 후처리를 적용한 난수생성기를 예시한 도면이다.
도 2는 본 실시예에 따른 폰 노이만 후처리를 병렬로 적용한 난수생성기를 예시한 도면이다.
도 3은 본 실시예에 따른 폰 노이만 후처리시, 난수 출력 신호의 연속성을 확보하기 위한 장치를 예시한 도면이다.
도 4는 본 실시예에 따른 폰 노이만 후처리시, 난수 출력 신호의 연속성을 확보하기 위한 방법을 예시한 도면이다.
이하 본 발명의 일부 실시예를 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 본 실시예를 설명함에 있어서 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 실시예의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
본 실시예의 구성요소를 설명하는 데 있어서 제1, 제2, ⅰ), ⅱ), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례 또는 순서 등이 한정되지 않는다. 또한 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한 명세서에 기재된 '~부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 '하드웨어' 또는 '소프트웨어' 또는 '하드웨어 및 소프트웨어의 결합'으로 구현될 수 있다.
난수를 생성하기 위한 소프트웨어 및 하드웨어는 일반적으로 난수의 품질(Quality)을 높이기 위해 후처리 과정을 수행한다. ISO/IEC 18031, NIST SP 800-90, FIPS 140-2, 3, ANSI X9.82 등의 많은 표준에서 난수생성기에 대한 구현 요구 사항, 후처리 방식 등을 기술하고 있으며, 특히 후처리 방식으로는 암호학적 알고리즘을 적용한 방식이 추천되고 있다.
그러나 암호학적인 후처리 기법들은 난수의 품질을 향상시키는 데는 많은 이득을 주지만 고속성과 저비용을 동시에 만족시키기에는 어려움이 따른다. 기술의 발전으로 인해 난수생성기 자체가 이미 어느 정도 이상의 품질을 확보하고 있으므로, 폰 노이만 후처리(Von Neumann Post-processing)와 같이 단순한 방식의 후처리를 사용하여 고속성과 저비용을 동시에 확보하는 것이 바람직하다.
폰 노이만 후처리는 임의의 입력에 대하여 편향성이 없는(Unbiased) 결과를 출력하기 위한 입력데이터 처리 방법이다. 이하, 폰 노이만 후처리에 대하여 간단히 설명한다.
표 1은 폰 노이만 후처리의 입력 및 출력 방식을 예시한 표이다.
Figure 112014105084197-pat00001
비트스트링(Bit String)에서 0이 출력될 확률이 p라고 하자. 0이 출력될 확률이 p이면 1이 출력될 확률은 1-p이다. 연속된 2비트를 고려하면, 00이 출력될 확률은 p2, 01이 출력될 확률은 p(1-p), 10이 출력될 확률은 p(1-p), 11이 출력될 확률은 (1-p)2이므로, 아무런 후처리를 거치지 않고 입력된 값을 출력하면 편향이 생긴다.
연속된 2비트 00, 01, 10, 11 중에서 01, 10이 출력될 확률은 p(1-p)로 동일하므로 입력이 01, 10인 경우에만 출력하고 입력이 00, 11인 경우에는 출력하지 않음으로써 난수의 편향을 제거할 수 있다. 폰 노이만 후처리는 입력이 01이면 0을 출력하고 입력이 10이면 1을 출력하며 입력이 00 또는 11이면 아무 것도 출력하지 않음으로써 난수의 편향을 제거한다.
폰 노이만 후처리를 이용하면 고속성과 저비용을 확보하면서 난수의 편향을 제거할 수 있다. 그러나 00 01 10 11의 비트스트링이 입력되면 0 1만 출력되므로 입력 대 출력비는 1/4에 불과하다. 입력 대 출력비는 평균적으로 1/4이나 순간적으로는 1/4보다 높을 수도 있고 낮을 수도 있다. 폰 노이만 후처리시 입력된 난수의 약 3/4이 empty로 출력될 뿐만 아니라, 난수의 출력이 empty가 되는 시점을 예측할 수 없다.
양자 키 분배 시스템에서는 실시간으로 연속된 고속의 난수열이 필요한데 폰 노이만 후처리를 사용하면 연속된 난수열을 얻을 수 없으므로 문제가 된다.
본 실시예는 폰 노이만 후처리를 적용한 난수생성기에서 폰 노이만 후처리의 비연속성을 극복하기 위한 방법 및 장치를 제안한다.
도 1은 기존의 폰 노이만 후처리를 적용한 난수생성기를 예시한 도면이다.
기존의 폰 노이만 후처리를 적용한 난수생성기(100)는 난수생성부(110), 폰 노이만 후처리부(120) 및 메모리 버퍼(130)를 포함한다.
난수생성부(110)는 난수를 생성한다. 난수의 생성에 있어서 열 노이즈(Thermal Noise), 전기적 노이즈(Electronic Noise) 등을 이용한 하드웨어 기반의 RNG(Random Number Generator)를 이용하기도 하고, 수학적 알고리즘에 기반한 소프트웨어 기반의 RNG를 이용하기도 한다.
폰 노이만 후처리는 I.I.D.인 난수 소스(Random Number Source)에 적용할 수 있는 기술인데, 상술한 RNG들이 생성하는 난수 소스가 완벽한 I.I.D. 성질을 가진다고 보기 어렵다.
근래 양자 난수 생성 기술(Quantum Random Number Generation Algorithm)이 개발되었고, 양자 난수 생성 기술은 상술한 다른 RNG들과는 달리 완벽한 I.I.D. 성질을 가지는 난수를 생성한다는 사실이 증명되었다. 따라서 폰 노이만 후처리 기술을 양자난수생성기(Quantum Random Number Generator: QRNG)에 적용하면 더 좋은 난수성을 확보할 수 있다.
폰 노이만 후처리부(120)는 난수생성부(110)에서 생성된 난수를 입력받아 편향을 제거하여 출력한다.
폰 노이만 후처리 방식은 입력 대 출력비가 1/4에 불과하고 출력이 언제 empty가 될지 알 수 없으므로 일반적으로 미리 난수를 저장해두었다가 필요할 때 꺼내서 사용한다. 메모리 버퍼(130)는 폰 노이만 후처리부(120)에서 출력된 난수를 저장하였다가 출력한다.
도 2는 본 실시예에 따른 폰 노이만 후처리를 병렬로 적용한 난수생성기를 예시한 도면이다.
폰 노이만 후처리를 이용하여 난수를 처리함에 있어서 폰 노이만 후처리는 입력 대 출력비가 1/4의 비율로 고정된다. 즉, 난수 소스(Random Number Source)가 생성되는 속도가 정해지면 폰 노이만 후처리를 통해 최종 난수의 출력 속도 또한 1/4로 정해진다. 그렇지만 칩(Chip)의 특성 또는 다양한 요구사항에 의해 출력 속도 및 출력 채널 수를 제한 또는 다양화할 필요가 있다.
예컨대 난수생성부의 난수 생성 속도가 1 GHz인 경우, 폰 노이만 후처리에 의한 난수의 출력 속도는 250 MHz이다. 이러한 폰 노이만 후처리를 수행하기 위해서는 하드웨어가 최소한 250 MHz 이상의 연산 처리 속도를 지원할 수 있어야 한다. 그러나 FPGA(Field Programmable Gate Array)의 경우 250 MHz 보다 느린 속도로 구동하는 것이 안정적일 수 있다. 만약 125 MHz에서 FPGA가 안정적으로 동작한다면, 폰 노이만 후처리를 250 MHz로 수행하기보다 폰 노이만 후처리를 2개 모듈로 병렬처리함으로써 125 MHz의 난수 출력 신호를 2개 만드는 것이 바람직하다.
이를 위해 기존의 난수생성기에 Serial to Parallel 변환을 위한 변환부가 추가되어야 한다.
본 실시예에 따른 폰 노이만 후처리를 병렬로 적용한 난수생성기(200)(이하, 병렬 난수생성기)는 제1 난수생성부(210), 변환부(211), 위상동기루프(213), 제1 폰 노이만 후처리부(221), 제2 폰 노이만 후처리부(223), 제1 멀티플렉서(225) 및 메모리 버퍼(230)를 포함한다.
제1 난수생성부(210)는 기설정된 수치 이상의 난수성(Randomness)을 가지는 난수를 생성한다. 난수성은 패턴 매칭, 근사 주기 등을 이용하여 측정할 수 있다. 난수의 생성에 있어서, 열 노이즈(Thermal Noise), 전기적 노이즈(Electronic Noise) 등을 이용한 하드웨어 기반의 RNG(Random Number Generator)를 이용할 수도 있고, 수학적 알고리즘에 기반한 소프트웨어 기반의 RNG를 이용할 수도 있으나, QRNG를 이용하여 I.I.D. 성질을 가지는 난수를 생성하는 것이 바람직하다.
변환부(211)는 직렬 데이터를 병렬 데이터로 변환한다. 본 실시예에서 변환부(211)는 제1 난수생성부(210)에서 생성된 난수열을 2개의 병렬 데이터로 변환하여 제1 폰 노이만 후처리부(221) 및 제2 폰 노이만 후처리부(223)에 공급한다. 변환부(211)에는 SERDES(Serializer/De-serializer) 등을 사용할 수 있다.
본 실시예에서는 난수열을 2개의 병렬 데이터로 변환하여 2개의 폰 노이만 후처리부에서 처리하였지만, 이는 본 발명의 기술 사상을 예시적으로 설명한 것에 불과하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 난수생성부에서 생성된 난수열을 2개 이상의 복수의 병렬 데이터로 변환하여 복수의 폰 노이만 후처리부에서 처리하게 하는 등 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 본 실시예의 다양한 수정 및 변형이 가능할 것이다.
폰 노이만 후처리를 병렬로 적용하게 되면 난수생성기(200)의 각 모듈에서 비트스트링을 처리하는 속도가 맞지 않을 수 있으므로, 처리 속도를 맞추기 위하여 위상동기루프(Phase Locked Loop: PLL)(213)를 이용하여 모듈별로 다른 클럭을 적용할 수 있다. 위상동기루프(213)는 데이터 스트림(Data Stream)에 속도조절정보를 넣어 함께 전송하는 장치로서, 수신 모듈은 위상동기루프(213)로부터 수신한 속도조절정보에 로컬 클럭을 고정시킨다.
위상동기루프(213)는 변환부(211), 제1 폰 노이만 후처리부(221), 제2 폰 노이만 후처리부(223), 제1 멀티플렉서(225)의 input 및 메모리 버퍼(230)의 read에 대해서는 A Hz의 기준 클럭을 적용하고, 제1 멀티플렉서(225)의 selection 및 메모리 버퍼(230)의 write에 대해서는 B Hz의 기준 클럭을 적용할 수 있다. 여기서 B는 A의 정수배로서, 난수생성부에서 생성된 난수열을 n개의 복수의 병렬 데이터로 변환하여 n개의 폰 노이만 후처리부에서 처리하는 경우, B = n × A로 설정할 수 있다.
제1 폰 노이만 후처리부(221) 및 제2 폰 노이만 후처리부(223)는 변환부(211)에서 2개의 병렬 데이터를 각각 입력받아 편향을 제거하여 출력한다. 난수생성부에서 생성된 난수열을 2개 이상의 복수의 병렬 데이터로 변환하는 경우, 폰 노이만 후처리부의 갯수도 2개 이상이 되어야 함은 상술한 바와 같다.
제1 멀티플렉서(225)는 제1 폰 노이만 후처리부(221) 및 제2 폰 노이만 후처리부(223)으로부터 난수를 입력받아 선택적으로 출력한다.
메모리 버퍼(230)는 제1 멀티플렉서(225)로부터 입력받은 난수를 저장하였다가 출력한다. 메모리 버퍼(230)는 FIFO(First In, First Out) 방식으로 구현할 수 있고, 읽기 및 쓰기를 동시에 수행할 수 있는 Dual Port 방식의 메모리를 사용할 수 있다. 하드웨어 특성에 따라 비트가 write되는 상황과 read되는 상황이 달라질 수 있으므로, 메모리 버퍼(230)를 사용함에 있어 버퍼 사이즈(Buffer Size)를 충분히 큰 것으로 선택함으로써 난수 출력의 연속성을 확보하는 것이 바람직하다.
본 실시예에 따른 병렬 난수생성기(200)의 메모리 버퍼(230)는 폰 노이만 후처리를 병렬 처리하기 때문에 하나 또는 여러 비트를 동시에 write할 수도 있고 아무 비트도 write하지 않을 수도 있는데, 이를 write 인에이블(write Enable) 신호를 이용하여 제어한다.
메모리 버퍼(230)의 사이즈를 충분히 큰 것으로 선택하더라도 비트가 write되는 상황과 read되는 상황에 따라 여전히 empty가 발생할 여지가 있다. 즉, 메모리 버퍼(230)의 사이즈를 충분히 큰 것으로 선택하더라도 empty가 발생활 확률이 0은 아니기 때문에 난수 출력의 연속성이 확보하기 위한 방법이 필요하다. 이하, 난수 출력의 연속성을 확보하기 위한 추가적인 방법 및 장치에 대하여 설명한다.
도 3은 본 실시예에 따른 폰 노이만 후처리시, 난수 출력 신호의 연속성을 확보하기 위한 장치를 예시한 도면이다.
메모리 버퍼(230)의 크기를 적절히 조절하더라도 메모리 버퍼(230)에 난수가 write되는 속도와 난수가 read되는 속도가 차이가 나면 메모리 버퍼(230)에 저장된 난수가 모두 소모되어 난수 출력이 중단될 수 있다. 예컨대 양자 키 분배 시스템에서 난수는 read 클럭에 맞춰 일정한 속도로 소모되는 데 반해 난수가 채워지는 속도는 가변적이므로, 시스템 동작 중에 메모리 버퍼(230)에 저장된 난수가 모두 소모될 수 있다.
기존의 폰 노이만 후처리를 적용한 난수생성기는 폰 노이만 후처리를 이용하여 의미 있는 난수를 선별하여 메모리 버퍼에 저장한 후 필요할 때 출력하여 사용한다. 통상적인 난수생성기의 사용례에 있어서는 메모리 버퍼에 저장된 난수가 모두 소모되면 메모리 버퍼에 난수가 채워질 때까지 기다렸다가 출력해도 문제가 생기지 않는다.
그러나 양자 키 분배 시스템과 같이 기준 클럭에 맞춰 난수를 연속적으로 공급해야 하는 경우에는 메모리 버퍼에 저장된 난수가 모두 소모된 후 난수가 채워지기까지 기다리면 시스템의 정상동작에 문제가 생길 수 있다.
이러한 문제를 해결하기 위한 장치(이하, '연속출력장치'라고 한다)(300)는 본 실시예에 따른 병렬 난수생성기(200)의 메모리 버퍼(230)에 연결된다.
연속출력장치(300)는 공백체크부(310), 제2 난수생성부(320) 및 제2 멀티플렉서(330)를 포함한다.
공백체크부(310)는 메모리 버퍼(230)에 저장된 난수가 모두 소모되었는지 여부를 체크한다. 공백체크부(310)는 다양한 방법으로 구현할 수 있다. 예컨대 write 메모리 주소(write Memory Address)를 가리키는 write 포인터(write Pointer)와 read 메모리 주소(read Memory Address)를 가리키는 read 포인터(read Pointer)를 비교하여 write 포인터와 read 포인터가 겹쳐지면 메모리 버퍼(230)에 저장된 난수가 모두 소모되었다고 판단할 수 있다.
공백체크부(310)는 메모리 버퍼(230)에 난수가 남아 있으면 read 인에이블(Read Enable) 신호를 TRUE로 출력하고, 메모리 버퍼(130, 230)에 저장된 난수가 모두 소모되면 read 인에이블(Read Enable) 신호를 FALSE로 출력한다.
제2 난수생성부(320)는 메모리 버퍼(230)에 저장된 난수가 모두 소모된 경우를 대비하여 예비 난수(Reserved Random Number)를 생성하여 제2 멀티플렉서(330)에 공급한다.
난수생성기는 그 방식에 따라 크게 TRNG(True Random Number Generator, 순수난수생성기)와 PRNG(Pseudo Random Number Generator: 의사난수생성기)로 나뉜다. TRNG는 예측할 수 없는 자연현상 등을 소스(source)로 이용하여 진정한(True) 난수를 생성하는 장치이고, PRNG는 수학적 함수 또는 알고리즘을 이용하여 유사(Pseudo) 난수를 생성하는 장치이다.
본 실시예에 따른 연속출력장치(300)는 기준 클럭에 맞춰 난수를 끊기지 않고 연속적으로 공급하기 위한 것이므로, 제2 난수생성부(320)는 메모리 버퍼의 난수가 소모되는 즉시 기준 클럭에 맞춰 난수를 생성하여 공급하여야 한다. 따라서 제2 난수생성부(320)에 사용되는 난수생성기는 PRNG(Pseudo Random Number Generator: 의사난수생성기)인 것이 바람직하다. PRNG를 이용하면 FPGA(Field Programmable Gate Array)가 구동되는 기준 클럭에 맞춰 난수를 생성하는 것이 가능할 뿐만 아니라 PRNG는 이미 알려진 기술로서 적용이 용이하기 때문이다.
PRNG는 정해져 있는 알고리즘에 의해 난수를 생성하므로 생성된 난수들이 결과적으로는 일정한 주기를 갖게 되어 PRNG에 의해 생성된 난수는 진정한 난수가 아니다. 그러나 연속출력장치(300)는 폰 노이만 후처리시 empty가 발생하는 시점에 제2 난수생성부(320)에서 생성된 난수를 공급하며, 폰 노이만 후처리시 empty가 발생하는 시점은 공격자는 물론 사용자도 예측할 수 없다. 즉, 난수 비트열의 중간에 empty가 발생하는 시점에 PRNG에 의해 생성된 난수 비트를 삽입하더라도 공격자가 비트스트링의 어느 부분이 PRNG에 의해 생성된 난수 비트인지를 알 수 없으므로 보안이 유지된다. 즉, 연속출력장치(300)의 제2 난수생성부(320)에 PRNG를 사용하더라도, PRNG를 사용함으로써 발생하는 안전성 문제가 자연적으로 해소된다.
제2 난수생성부(320)는 메모리 버퍼의 난수가 소모되는 즉시 기준 클럭에 맞춰 난수를 생성하여 공급하여야 하므로, 제2 난수생성부(320)는 제1 난수생성부(210)와는 별개로 동작한다. 즉, 제1 난수생성부(210)와 제2 난수생성부(320)은 동시에 난수를 생성하고 있다. 다만 제1 난수생성부(210)는 QRNG기를 이용하여 I.I.D. 성질을 가지는 난수를 생성하도록 하는 것이 바람직하고, 제2 난수생성부(320)은 PRNG를 이용하여 기준 클럭에 맞춰 즉시 난수를 생성하도록 하는 것이 바람직하다.
제2 멀티플렉서(330)는 공백체크부(310)로부터 메모리 버퍼(230)에 난수가 남아 있는지 여부를 전달받은 후, 메모리 버퍼(230)에 난수가 남아 있으면 메모리 버퍼(230)의 난수를 출력하고, 메모리 버퍼(230)의 난수가 모두 소모되었으면 제2 난수생성부(320)에서 생성된 난수를 출력한다.
제2 난수생성부(320)에서 생성된 난수를 출력하고 있는 동안에는 메모리 버퍼(230)을 다시 채울 수 있다. 메모리 버퍼(230)의 난수가 모두 소모되면 read 인에이블(Read Enable) 신호가 FALSE가 된 상태인데, 메모리 버퍼(230)가 버퍼 사이즈만큼 모두 채워진 후에 read 인에이블(Read Enable) 신호를 TRUE로 줄 수도 있고, 특정 양을 지정해서 메모리 버퍼(230)가 특정 양만큼 채워지면 read 인에이블(Read Enable) 신호를 TRUE로 줄 수도 있다.
제2 난수생성부(320)로 PRNG를 사용할 경우, 제2 난수생성부(320)에서 생성되는 난수는 기본적으로 유사 난수이다. 폰 노이만 후처리시 empty가 출력되는 시점을 예측할 수 없으므로 제2 난수생성부(320)로 PRNG를 이용하여도 보안이 유지되지만, empty 후 제2 난수생성부(320)에서 생성된 난수가 출력되는 시간이 너무 길어지면 공격자의 공격을 받을 확률이 높아진다. 특히 난수 출력의 연속성 확보를 위하여 버퍼 사이즈를 큰 것으로 사용할 경우, 메모리 버퍼(230)가 모두 채워질 때까지 기다리면 제2 난수생성부(320)에서 생성된 난수가 출력되는 시간이 지나치게 길어질 우려가 있다. 따라서 특정 양을 지정해서 메모리 버퍼(230)가 특정 양만큼 채워지면 read 인에이블(Read Enable) 신호를 TRUE로 하는 것이 바람직하다.
도 4는 본 실시예에 따른 폰 노이만 후처리시, 난수 출력 신호의 연속성을 확보하기 위한 방법을 예시한 도면이다.
본 실시예에 따른 폰 노이만 후처리시, 난수 출력 신호의 연속성을 확보하기 위한 방법은 난수 생성 과정(S410), 데이터 변환 과정(S420), 폰 노이만 후처리 과정(S430), 메모리 버퍼 저장 과정(S440), 공백 체크 과정(S450), 메모리 버퍼 출력 과정(S460) 및 예비 난수 출력 과정(S470)을 포함한다.
난수 생성 과정(S410)에서는 기설정된 수치 이상의 랜덤성(Randomness)을 가지는 난수의 생성이 가능한 난수생성기(이하, 제1 난수생성기)를 이용하여 난수를 생성한다. 난수성은 패턴 매칭, 근사 주기 등을 이용하여 측정할 수 있다. 난수의 생성에 있어서, 열 노이즈(Thermal Noise), 전기적 노이즈(Electronic Noise) 등을 이용한 하드웨어 기반의 RNG(Random Number Generator)를 이용할 수도 있고, 수학적 알고리즘에 기반한 소프트웨어 기반의 RNG를 이용할 수도 있으나, QRNG를 이용하여 I.I.D. 성질을 가지는 난수를 생성하는 것이 바람직하다.
데이터 변환 과정(S420)은 난수 생성 과정(S410)에서 생성된 난수열을 병렬 데이터로 변환한다. 이 때 난수 생성 과정(S410)에서 생성된 난수열을 2개의 병렬 데이터로 변환할 수도 있지만, 이 때 난수 생성 과정(S410)에서 생성된 난수열을 2개 이상의 복수의 병렬 데이터로 변환할 수도 있다.
폰 노이만 후처리 과정(S430)은 데이터 변환 과정(S420)을 거쳐 변환된 복수의 병렬 데이터에 대하여 폰 노이만 후처리를 수행함으로써 난수의 편향을 제거한다.
메모리 버퍼 저장 과정(S440)은 폰 노이만 후처리 과정을 거쳐 편향이 제거된 난수를 메모리 버퍼에 저장한다. 편향이 제거된 난수를 메모리 버퍼에 저장할 때는 FIFO(First In, First Out) 방식으로 저장하는 것이 바람직하다. 또한 사이즈(Buffer Size)가 충분히 큰 메모리 버퍼를 사용함으로써 난수 출력의 연속성을 확보하는 것이 바람직하다.
공백 체크 과정(S450)은 메모리 버퍼에 저장된 난수가 모두 소모되었는지 여부를 체크한다. 공백 체크 과정(S450)은 다양한 방법으로 구현할 수 있다. 예컨대 write 메모리 주소(write Memory Address)를 가리키는 write 포인터(write Pointer)와 read 메모리 주소(read Memory Address)를 가리키는 read 포인터(read Pointer)를 비교하여 write 포인터와 read 포인터가 겹쳐지면 메모리 버퍼에 저장된 난수가 모두 소모되었다고 판단할 수 있다.
메모리 버퍼에 난수가 남아 있으면(S450의 '아니오') 메모리 버퍼에 있는 난수를 출력하고(S460, 메모리 버퍼 출력 과정), 메모리 버퍼에 저장된 난수가 모두 소모되었으면(S450의 '예') 별도의 난수생성기(이하, 제2 난수생성기)가 생성하고 있던 예비 난수(Reserved Random Number)를 출력한다(S470, 예비 난수 출력 과정).
예비 난수는 제1 난수생성기에 의해 생성되어 폰 노이만 후처리 과정을 거쳐 출력되는 난수와는 달리, 제2 난수생성기에 의해 기준 클럭에 맞춰 독립적으로 생성되고 있다가 필요한 경우 폰 노이만 후처리 없이 즉시 출력되는 난수이다. 즉, 제2 난수생성기는 제1 난수생성기와는 독립적으로 난수를 생성하고 있다가, 메모리 버퍼에 저장된 난수가 모두 소모되면 생성하고 있던 난수를 출력한다.
제2 난수생성기는 PRNG(Pseudo Random Number Generator: 의사난수생성기)인 것이 바람직하다. PRNG를 이용하면 FPGA(Field Programmable Gate Array)가 구동되는 기준 클럭에 맞춰 난수를 생성하는 것이 가능할 뿐만 아니라 PRNG는 이미 알려진 기술로서 적용이 용이하기 때문이다.
예비 난수가 출력되고 있는 동안에 폰 노이만 후처리 과정에서 출력된 난수가 다시 메모리 버퍼에 저장된다. 이 때 메모리 버퍼가 모두 채워질 때까지 기다렸다가 메모리 버퍼에 저장된 난수의 출력을 개시할 수도 있지만, 상술한 것과 같이 공격자의 공격을 방지하기 위하여 메모리 버퍼가 특정 양만큼 채워지면 곧바로 메모리 버퍼에 저장된 난수의 출력을 개시하는 것이 바람직하다.
본 실시예는 본 발명의 기술 사상을 예시적으로 설명한 것에 불과하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 본 실시예의 다양한 수정 및 변형이 가능할 것이다.
본 실시예는 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 따라서 본 실시예에 의하여 본 발명의 권리범위가 한정되는 것은 아니다. 본 발명의 보호범위는 청구범위에 의하여 해석되어야 하며, 그와 동등하거나 균등하다고 인정되는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
100: 기존의 난수생성기 110: 난수생성부
120: 폰 노이만 후처리부 130: 메모리 버퍼
200: 병렬 난수생성기 210: 제1 난수생성부
211: 변환부 213: 위상동기루프
221: 제1 폰 노이만 후처리부 223: 제2 폰 노이만 후처리부
225: 제1 멀티플렉서 230: 메모리 버퍼
300: 연속출력장치 310: 공백체크부
320: 제2 난수생성부 330: 제2 멀티플렉서

Claims (9)

  1. 폰 노이만 후처리가 적용된 난수 생성 장치에 있어서,
    기 설정된 수치 이상의 난수성을 가진 난수를 생성하는 제1 난수생성부;
    상기 제1 난수생성부에서 생성된 난수열을 복수의 병렬 데이터로 변환하는 변환부;
    폰 노이만(Von Neumann) 후처리 기법을 이용하여 상기 변환부에서 변환된 상기 복수의 병렬 데이터의 편향을 제거하여 출력하는 복수의 폰 노이만 후처리부;
    상기 복수의 폰 노이만 후처리부에서 출력된 난수를 입력받아 선택적으로 출력하는 제1 멀티플렉서;
    상기 제1 멀티플렉서에서 출력된 난수를 저장하는 메모리 버퍼;
    상기 메모리 버퍼에 저장된 난수가 모두 소모되었는지 여부를 체크하는 공백체크부;
    예비 난수를 생성하는 제2 난수생성부; 및
    상기 메모리 버퍼에 여분의 난수가 있는 경우 상기 메모리 버퍼에 저장된 난수를 출력하고, 상기 메모리 버퍼에 저장된 난수가 모두 소모된 경우 상기 제2 난수생성부에서 생성되고 있는 상기 예비 난수를 출력하는 제2 멀티플렉서
    를 포함하는 것을 특징으로 하는 난수 생성 장치.
  2. 제1항에 있어서,
    상기 제1 멀티플렉서는 상기 예비 난수가 출력되고 있는 동안에 상기 복수의 폰 노이만 후처리부에서 출력된 난수를 상기 메모리 버퍼에 저장하고,
    상기 제2 멀티플렉서는 상기 메모리 버퍼가 기 설정된 양만큼 채워진 후에 상기 메모리 버퍼에 저장된 난수의 출력을 개시하는 것을 특징으로 하는 난수 생성 장치.
  3. 제1항에 있어서,
    상기 공백체크부는 상기 메모리 버퍼의 write 메모리 주소를 가리키는 포인터와 상기 메모리 버퍼의 read 메모리 주소를 가리키는 포인터가 겹쳐지는 경우 상기 메모리 버퍼에 저장된 난수가 모두 소모되었다고 판단하는 것을 특징으로 하는 난수 생성 장치.
  4. 제1항에 있어서,
    상기 제1 난수생성부는 양자난수생성기(Quantum Random Number Generator: QRNG)를 이용하여 상기 기 설정된 수치 이상의 난수성을 가진 난수를 생성하고,
    상기 제2 난수생성부는 의사난수생성기(Pseudo Random Number Generator: PRNG)를 이용하여 상기 예비 난수를 생성하는 것을 특징으로 하는 난수 생성 장치.
  5. 제1항에 있어서,
    상기 난수 생성 장치는 위상동기루프(Phase Locked Loop: PLL)를 더 포함하되,
    상기 위상동기루프는 상기 변환부의 클럭, 상기 복수의 폰 노이만 후처리부의 클럭, 상기 제1 멀티플렉서의 input 클럭, 상기 메모리 버퍼의 read 클럭, 상기 제1 멀티플렉서의 selection 클럭 및 상기 메모리 버퍼의 write 클럭에 대해서는 제1 기준 클럭을 적용하고,
    상기 제1 멀티플렉서의 selection 클럭, 상기 메모리 버퍼의 write 클럭에 대해서는 제2 기준 클럭을 적용하되,
    상기 제2 기준 클럭은 상기 제1 기준 클럭에 상기 복수의 폰 노이만 후처리부의 개수를 곱한 값인 것을 특징으로 하는 난수 생성 장치.
  6. 폰 노이만 후처리를 적용한 난수 생성 방법에 있어서,
    기 설정된 수치 이상의 난수성(Randomness)을 가진 난수의 생성이 가능한 난수생성기(이하, 제1 난수생성기)를 이용하여 난수를 생성하는 난수 생성 과정;
    상기 난수 생성 과정에서 생성된 난수열을 복수의 병렬 데이터로 변환하여 출력하는 변환 과정;
    상기 복수의 병렬 데이터의 편향을 제거하여 출력하는 폰 노이만 후처리 과정;
    상기 폰 노이만 후처리부에서 출력된 난수를 입력받아 메모리 버퍼에 저장하는 메모리 버퍼 저장 과정; 및
    상기 메모리 버퍼에 여분의 난수가 있는 경우 상기 메모리 버퍼에 저장된 난수를 출력하고, 상기 메모리 버퍼에 저장된 난수가 모두 소모된 경우 상기 제1 난수생성기와 독립된 별도의 난수생성기(이하, 제2 난수생성기)에서 생성 중인 예비 난수를 출력하는 과정
    을 포함하는 것을 특징으로 하는 난수 생성 방법.
  7. 제6항에 있어서,
    상기 예비 난수가 출력되고 있는 동안 상기 폰 노이만 후처리 과정에서 출력된 난수를 상기 메모리 버퍼에 저장하고, 상기 메모리 버퍼가 기 설정된 양만큼 채워진 후에 상기 메모리 버퍼에 저장된 난수의 출력을 개시하는 것을 특징으로 하는 난수 생성 방법.
  8. 제6항에 있어서,
    상기 제1 난수생성기는 양자난수생성기(Quantum Random Number Generator: QRNG)이고,
    상기 제2 난수생성기는 의사난수생성기(Pseudo Random Number Generator: PRNG)인 것을 특징으로 하는 난수 생성 방법.
  9. 제6항에 있어서,
    상기 메모리 버퍼의 write 메모리 주소를 가리키는 포인터와 상기 메모리 버퍼의 read 메모리 주소를 가리키는 포인터가 겹쳐지는 경우 상기 메모리 버퍼에 저장된 난수가 모두 소모되었다고 판단하는 것을 특징으로 하는 난수 생성 방법.
KR1020140150092A 2014-10-31 2014-10-31 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치 KR101925787B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140150092A KR101925787B1 (ko) 2014-10-31 2014-10-31 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140150092A KR101925787B1 (ko) 2014-10-31 2014-10-31 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160050919A KR20160050919A (ko) 2016-05-11
KR101925787B1 true KR101925787B1 (ko) 2018-12-06

Family

ID=56025784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140150092A KR101925787B1 (ko) 2014-10-31 2014-10-31 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101925787B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215868A1 (ko) * 2021-04-07 2022-10-13 삼성전자 주식회사 다중 비결정적 난수생성 모듈을 이용하여 보안 모듈의 난수성을 향상시키기 위한 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150374A (ja) 2001-11-19 2003-05-23 Iwaki Electronics Corp 乱数発生器
JP2007187698A (ja) 2006-01-11 2007-07-26 Nec Corp 乱数品質管理装置および管理方法
JP2010117846A (ja) 2008-11-12 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101479107B1 (ko) * 2012-10-30 2015-01-07 에스케이 텔레콤주식회사 양자 암호키 분배를 위해 정기적인 프레임 단위의 양자 신호를 생성하고 처리하는 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150374A (ja) 2001-11-19 2003-05-23 Iwaki Electronics Corp 乱数発生器
JP2007187698A (ja) 2006-01-11 2007-07-26 Nec Corp 乱数品質管理装置および管理方法
JP2010117846A (ja) 2008-11-12 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 乱数生成回路

Also Published As

Publication number Publication date
KR20160050919A (ko) 2016-05-11

Similar Documents

Publication Publication Date Title
US7224795B2 (en) Variable-length key cryptosystem
KR101588541B1 (ko) 무선 데이터 보호 시스템 및 방법
US9350544B2 (en) Apparatus for encrypting data
JP2018109750A (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
JP5863994B2 (ja) 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
Nair et al. Quantum-noise randomized ciphers
JP6533553B2 (ja) 暗号化/復号装置及びその電力解析保護方法
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
US20120093308A1 (en) Apparatus and method for generating random data
US20180241544A1 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
CN111066077A (zh) 加密装置、加密方法、解密装置以及解密方法
Bhaskar et al. An advanced symmetric block cipher based on chaotic systems
JP7226829B2 (ja) データ処理装置、方法及びコンピュータプログラム
KR101925787B1 (ko) 폰 노이만 후처리시 난수 출력 신호의 연속성을 확보하기 위한 방법 및 장치
JP6194136B2 (ja) 疑似乱数生成装置及び疑似乱数生成プログラム
Sylfania et al. Blowfish–RSA comparison analysis of the encrypt decrypt process in android-based email application
JP5586758B1 (ja) 動的暗号化鍵生成システム
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
CN110912679A (zh) 密码设备
Raj et al. Security Enhancement of Information using Multilayered Cryptographic Algorithm
TWI608381B (zh) 加解密裝置及其功率分析防禦方法
US9264229B1 (en) System and method for generating random key stream cipher texts
Nascimento et al. A VHDL implementation of the Lightweight Cryptographic Algorithm HIGHT
CN117574402A (zh) 密钥信息的生成方法及装置
CN116527232A (zh) 一种数据加密、解密方法、装置及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right