KR20030093197A - Random number generator using compression - Google Patents

Random number generator using compression Download PDF

Info

Publication number
KR20030093197A
KR20030093197A KR10-2003-7009223A KR20037009223A KR20030093197A KR 20030093197 A KR20030093197 A KR 20030093197A KR 20037009223 A KR20037009223 A KR 20037009223A KR 20030093197 A KR20030093197 A KR 20030093197A
Authority
KR
South Korea
Prior art keywords
random
random number
state
bits
sources
Prior art date
Application number
KR10-2003-7009223A
Other languages
Korean (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
Priority claimed from EP01610006A external-priority patent/EP1223506B1/en
Application filed by 텔레폰악티에볼라겟엘엠에릭슨(펍) filed Critical 텔레폰악티에볼라겟엘엠에릭슨(펍)
Publication of KR20030093197A publication Critical patent/KR20030093197A/en

Links

Classifications

    • 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
    • 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

Abstract

본 발명은 적어도 하나의 랜덤 또는 의사 랜덤 소스를 기반으로 다수의 입력 비트를 수신하는 난수 발생기에 관한 것이다. 비트는 랜덤 소스(들)의 엔트로피 및 난수성을 향상시키기 위해 Ziv-Lempel과 같은 압축 방식에 따라 압축된다. 이 외에도, 예컨대 온도 변화, 구성부품의 노화 등으로 인한 유동적인 통계적 특성과 관련하여 일어나는 문제가 최소화/제거된다. 이러한 방식으로, 고품질의 난수를 안전하고 효과적으로 발생시키는 난수 발생기가 제공된다. 본 발명은 또한, 하드웨어 소스/유닛을 기반으로 적어도 하나의 난수를 발생시키는 상응하는 방법에 관한 것이다.The present invention relates to a random number generator that receives a plurality of input bits based on at least one random or pseudo random source. The bits are compressed according to a compression scheme such as Ziv-Lempel to improve the entropy and randomness of the random source (s). In addition, problems arising with respect to fluid statistical properties, for example due to temperature changes, aging of components, etc., are minimized / eliminated. In this way, a random number generator is provided that safely and effectively generates high quality random numbers. The invention also relates to a corresponding method of generating at least one random number based on a hardware source / unit.

Description

압축을 사용하는 난수 발생기{RANDOM NUMBER GENERATOR USING COMPRESSION}Random number generator with compression {RANDOM NUMBER GENERATOR USING COMPRESSION}

난수 또는 의사 난수(이하에서는 상호 교환하여 사용됨)는 다수의 암호 및 통신 응용에서, 예컨대 세션 키, 랜덤 챌린지(random challenge), 초기화 벡터 등으로서 사용될 수 있는 랜덤하게 나타나는 심볼을 제공하는데 사용된다.Random or pseudo-random numbers (hereinafter used interchangeably) are used to provide randomly appearing symbols that can be used in many cryptographic and communication applications, such as, for example, session keys, random challenges, initialization vectors, and the like.

불행히도, 난수 발생은 달성하기 매우 어려운 작업인데, 예컨대 범용 프로세서는 그들 고유의 결정형 동작으로 인해 난수를 발생시키기에 좋지 않다. 한 가지 해결책은 랜덤 입력의 소스로서 하드웨어 엔티티(entity)/유닛(unit)의 물리적 특성을 사용하는 것이다.Unfortunately, random number generation is a very difficult task to achieve, for example general purpose processors are not good at generating random numbers because of their inherent crystalline behavior. One solution is to use the physical properties of the hardware entity / unit as a source of random input.

또한, 높은 예측불허성(unpredictability)을 가진 최첨단 기술의 암호학적으로 안전한 난수 발생기는 계산상으로 매우 지나친 요구이며, 이들이 하드웨어 모듈의 어떤 특성을 토대로한다 하더라도 공지되어 있는 계산상의 어려운 문제를 토대로 한다. 난수를 발생시키기 위한 다양한 방법이, 예컨대 "CRC Press 1997에서, A.J. Menezes, P.C. van Oorschot 및 S.A. Vanstone 등에 의한 The Handbook of Applied Cryptography"의 제 5장(이것은 온전히 본원에서 참조로서 포함된 것임)에서 고려되어 있다.In addition, state-of-the-art cryptographically secure random number generators with high unpredictability are extremely demanding computationally and are based on known computational challenges, no matter what characteristics of hardware modules they are based on. Various methods for generating random numbers are considered, for example, in Chapter 5 of "The Handbook of Applied Cryptography," by AJ Menezes, PC van Oorschot and SA Vanstone, et al., Which is hereby incorporated by reference in its entirety. It is.

계산상의 어려운 문제를 기반으로 한 암호학적으로 안전한 난수 발생기는, 하드웨어, 전력 소비, 및/또는 이동 전화기, PDA 등과 같은 휴대용 장치에서 특히 문제가되는 계산/실행 시간면에서 비용이 많은 드는 매우 복잡한 연산을 필요로한다. 상기 발생기의 예는, "CRC Press 1997에서, A.J. Menezes, P.C. van Oorschot 및 S.A. Vanstone 등에 의한 The Handbook of Applied Cryptography"의 제5.5절에서 찾아볼 수 있다.Based on difficult computational problems, cryptographically secure random number generators are very complex operations that are expensive in terms of hardware, power consumption, and / or computational / execution times that are particularly problematic in portable devices such as mobile phones, PDAs, etc. need. An example of such a generator can be found in Section 5.5 of "The Handbook of Applied Cryptography by A.J. Menezes, P.C. van Oorschot and S.A. Vanstone," in CRC Press 1997.

랜덤 또는 의사-랜덤 데이터에 대한 소스의 예로는: 하드웨어 모듈/유닛/장치의 현재 내부 상태, 날짜, 시간, 비어있는 이용가능 메모리, 방사성 붕괴 과정동안 입자 방출 사이의 경과 시간, 반도체 다이오드 또는 저항으로부터의 열잡음, 또는 일반적으로 높은 등급의 예측불허성/엔트로피(entropy)를 가진 임의의 소스가 있다.Examples of sources for random or pseudo-random data include: current internal state of the hardware module / unit / device, date, time, free memory available, elapsed time between particle emission during the radioactive decay process, semiconductor diode or resistor There are any sources that have a thermal noise of, or generally a high grade of unpredictable / entropy.

일반적으로 하드웨어-기반 난수 발생기는 또한, 충분한 엔트로피 및/또는 난수성(randomness)을 갖는 하드웨어 소스를 발견하기 어렵고, 하드웨어가 일반적으로 상태, 파라미터 등을 어떤 응용에 대해 랜덤 및/또는 의사 랜덤 발생의 적합한 입력으로서 사용되기에 충분히 신속하게 변경하지 않으므로, 충분히 높은 레이트(rate)로 하드웨어 소스를 기반으로 한 랜덤 비트를 발생시키기 어렵다는 것과 같은 단점을 갖는다. 또 다른 문제는, 물리적 하드웨어 소스의 통계적 특성(statistical property)이 환경적인 영향(예컨대, 온도), 노화(aging) 및.또는 마모의 결과로 시간에 따라 변하여, 초기에 "양호한" 랜덤 소스가 상기 효과로 인해 덜 랜덤하게 될 수도 있다는 것이다.In general, hardware-based random number generators are also difficult to find hardware sources that have sufficient entropy and / or randomness, and the hardware generally generates states of randomness and / or pseudorandom for any application. It does not change quickly enough to be used as a suitable input, and has the disadvantage that it is difficult to generate random bits based on hardware sources at a sufficiently high rate. Another problem is that the statistical properties of physical hardware sources change over time as a result of environmental influences (eg, temperature), aging and / or wear, so that initially "good" random sources are recalled. The effect may be less random.

ANSI X.9.17 (CRC Press 1997에서, A.J. Menezes, P.C. van Oorschot 및 S.A. Vanstone 에 의한 The Handbook of Applied Cryptography"의 제 173페이지 참조)는 암호 프리미티브(primitive), 즉 DES를 사용하여 난수 발생기의 출력의 예측불허성을 증가시킨다. DES 암호 알고리즘은 (하드웨어 복잡성 및/또는 CPU 연산의 수 면에서) 보다 비용이 많이 드는 해결책이며, 이 외에도 랜덤 입력의 소스가 유동적인(drifting) 통계적 특성을 가질 수 있다는 원치않는 부작용으로 여전히 손해를 입고 있다.ANSI X.9.17 (in CRC Press 1997, see page 173 of "The Handbook of Applied Cryptography by AJ Menezes, PC van Oorschot and SA Vanstone") is a cryptographic primitive, ie the use of DES to Increasing Unpredictability DES cryptographic algorithms are a more expensive solution (in terms of hardware complexity and / or CPU operations), in addition to the fact that sources of random input can have floating statistical characteristics. Unwanted side effects still hurt.

US 특허 명세서 제 5,778,069호에는, 다수의 상이한 소스로부터의 다중 비트를 하나의 입력 비트열로 조합하는 의사 난수 발생기가 개시되어 있다. 입력 비트열상에 해싱 함수(hashing function)를 사용함으로써 해시(hash) 값이 계산되며, 스트림 발생기가 이 해시 값을 이용하여 랜덤 비트의 출력 비트열을 발생시킨다. 상이한 소스는, 예컨대 발생기 자체 내의 상태 레지스터와 같은 내부 소스, (현재 날짜, 시간, 비어있는 이용가능한 메모리 등의) 동작 파라미터를 공급하는 컴퓨터와 같은 외부 소스, 및 프로그램/응용의 실행과 관련된 비트를 공급하는 프로그램/응용과 같은 또 다른 외부 소스일 수 있다.US patent specification 5,778,069 discloses a pseudo random number generator that combines multiple bits from a number of different sources into one input bit string. The hash value is computed by using a hashing function on the input bit stream, and the stream generator uses the hash value to generate a random bit output bit stream. Different sources may include internal sources such as status registers within the generator itself, external sources such as computers supplying operating parameters (such as current date, time, free memory available, etc.), and bits associated with the execution of the program / application. It may be another external source, such as a program / application to supply.

본 발명은 적어도 하나의 랜덤(random) 또는 의사-랜덤 소스(pseudo-random source)를 기반으로 다수의 입력비트를 수신하도록 적응되는(adapt) 난수 발생기(random number generator)에 관한 것으로서, 상기 발생기는,The present invention relates to a random number generator adapted to receive a plurality of input bits based on at least one random or pseudo-random source. ,

·비트의 상태를 포함하는 메모리 수단,Memory means containing the status of the bits,

·결과적으로 적어도 하나의 난수로 나타나는, 상기 상태의 적어도 한 비트에 소정의 함수를 적용하는 계산 수단을 포함한다.Calculating means for applying a predetermined function to at least one bit of the state, which is represented by at least one random number.

본 발명은 또한, 적어도 난수를 발생시키는 방법에 관한 것으로서, 상기 방법은,The invention also relates to a method of generating at least random numbers, the method comprising:

·적어도 하나의 랜덤 또는 의사-랜덤 소스를 기반으로 다수의 입력 비트를 수신하는 단계,Receiving a plurality of input bits based on at least one random or pseudo-random source,

·비트의 상태를 메모리에 저장하는 단계,Storing the state of the bits in memory,

·결과적으로 적어도 하나의 난수로 나타나는, 상기 상태의 적어도 한 비트에 소정의 함수를 적용하는 단계를 포함한다.Applying a predetermined function to at least one bit of the state, resulting in at least one random number.

이 외에도, 본 발명은, 본 발명에 따른 방법을 수행하는 컴퓨터 시스템, 및 컴퓨터로 하여금 본 발명의 방법을 수행할 수 있도록 하는 프로그램을 포함하는 컴퓨터 판독가능 매체에 관한 것이다.In addition, the present invention relates to a computer readable medium comprising a computer system for performing the method according to the present invention, and a program for allowing a computer to perform the method of the present invention.

도 1은 본 발명에 따른 난수 발생기의 기능적인 블록도를 개략적으로 나타내는 도면.1 schematically illustrates a functional block diagram of a random number generator according to the present invention.

도 2는 본 발명의 일 실시예에 따른 난수 발생기의 기능적인 블록도를 개략적으로 나타내는 도면.2 schematically illustrates a functional block diagram of a random number generator according to an embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른 난수 발생기의 일반화된 기능적인 블록도를 나타내는 도면.3 illustrates a generalized functional block diagram of a random number generator according to another embodiment of the present invention.

도 4는 본 발명에 따른 방법을 나타내는 흐름도.4 is a flow diagram illustrating a method according to the invention.

도 5는 난수 발생기를 포함하고 및/또는 본 발명에 따른 방법을 사용할 수 있는 본 발명의 바람직한 실시예를 나타내는 도면.5 shows a preferred embodiment of the present invention that includes a random number generator and / or may employ the method according to the present invention.

도 6은 압축 수단에 의해 입력 비트가 어떻게 영향을 받는지에 대한 예를 나타내는 도면.6 shows an example of how input bits are affected by compression means.

도 7은 입력 비트가 압축 수단에 의해 어떻게 영향을 받아 어떤 출력이 발생되는지에 대한 보다 상세한 예를 나타내는 도면.7 shows a more detailed example of how an output bit is affected by compression means and what output is produced.

본 발명의 목적은 고품질의 난수를 안전하고 효과적으로 발생시키는 난수 발생기를 제공하는 것이다.It is an object of the present invention to provide a random number generator that safely and effectively generates high quality random numbers.

상기 목적은,The purpose is

·상기 상태의 적어도 일부로서 상기 메모리 수단에 저장되는, 결과적으로 압축된 비트열로 나타나는 상기 입력 비트를 압축하는 압축 수단을 더 포함하는 상기 언급된 종류의 난수 발생기에 의해 달성된다.A random number generator of the above-mentioned kind, further comprising compression means for compressing said input bits, which are stored in said memory means as at least part of said state, resulting in a compressed string of bits.

이로써, 소스(들)를 표현하는 비트상에 압축을 사용함으로써 랜덤 소스(들)의 엔트로피를 매우 향상시키는 난수 발생기가 제공된다. 이 외에도, 온도 변화, 구성부품의 노화 등으로 인한 유동적인 통계적 특성과 관련하여 나타나는 문제가최소화/제거된다.This provides a random number generator that greatly improves the entropy of the random source (s) by using compression on the bits representing the source (s). In addition, problems associated with fluid statistical characteristics due to temperature changes, component aging, etc. are minimized / removed.

압축/코더 수단이 랜덤 소스(들)로부터의 리던던트 데이터(redundant data)를 제거하여 입력 비트의 엔트로피를 극대화함으로써, 발생된 랜덤 또는 의사-랜덤 심볼/시퀀스의 랜덤 품질을 향상시킨다.Compression / coder means removes redundant data from the random source (s) to maximize the entropy of the input bits, thereby improving the random quality of the generated random or pseudo-random symbol / sequence.

바람직하게는, 압축 수단은 적응형(adaptive)인데, 즉 입력 데이터의 변화하는 통계적 특성에 맞게 적응될 수 있다. 상기 수단은 일반적으로 일반 소스 코딩 수단으로 공지되어 있다.Preferably, the compression means is adaptive, ie it can be adapted to the changing statistical properties of the input data. Such means are generally known as general source coding means.

입력 비트는 예컨대 랜덤 소스(들)를 소정의 레이트로 샘플링함으로써 얻어진다.The input bits are obtained, for example, by sampling the random source (s) at a predetermined rate.

랜덤 소스(들)는 랜덤 또는 의사-랜덤 소스의 조합일 수 있다.The random source (s) can be a combination of random or pseudo-random sources.

바람직한 실시예에 따르면, 적어도 하나의 랜덤 또는 의사-랜덤 소스가 적어도 하나의 하드웨어 소스를 포함하며, 상기 입력 비트가 상기 적어도 하나의 하드웨어 소스의 적어도 하나의 물리적인 특징을 나타낸다.According to a preferred embodiment, at least one random or pseudo-random source comprises at least one hardware source and the input bits represent at least one physical characteristic of the at least one hardware source.

이로써, 통상적으로 발생기에 고품질의 랜덤 및/또는 의사-랜덤 입력을 제공하는 적어도 하나의 하드웨어기반 랜덤 또는 의사-랜덤 소스가 제공된다. 압축 수단은, 입력이 난수성 및 엔트로피와 관련하여 고품질을 유지함으로써, 통계적인 유동을 피할 수 있게 한다.This typically provides at least one hardware-based random or pseudo-random source that provides a high quality random and / or pseudo-random input to the generator. Compression means makes it possible to avoid statistical flow by keeping the input high quality with respect to randomness and entropy.

발생기의 일 실시예에 따르면, 상태는 또한 유한 상태 기계(Finite State Machine:FSM)의 상태의 적어도 일부를 포함한다.According to one embodiment of the generator, the state also includes at least a portion of the state of the finite state machine (FSM).

이러한 방법으로, 메모리 수단은, 랜덤 또는 의사-랜덤 소스(들)가 그렇지않을 경우라 하더라도 계산 수단에 대한 상태 및 그에 따른 입력을 변경할 수 있다. 이와 같이 함으로써, 비교적 낮은 레이트이지만, 전체적인 상태, 즉 FSM 및 랜덤/의사-랜덤 입력을 포함하는 상태가 매 클록 사이클마다 변하게 되기 때문에 여전히 비교적 빠르게 변하는 상태를 갖는 랜덤 및/또는 의사-랜덤 소스가 입력으로서 사용될 수 있다.In this way, the memory means can change the state and thus the input to the computing means, even if the random or pseudo-random source (s) are not. By doing so, random and / or pseudo-random sources with relatively low rates, but still relatively rapidly changing, because the overall state, i.e., the state including the FSM and random / pseudo-random input, change every clock cycle. Can be used as.

이 외에도, 일반적으로 FSM이 가능 상태의 로컬 사이클을 갖지 않도록 하는 것이 더 간단하다.In addition, it is generally simpler to ensure that the FSM does not have local cycles of the enabled state.

다른 실시예에 따르면, 유한 상태 기계(FSM)는 선형 피드백 시프트 레지스터(linear feedback shift register:LFSR) 또는 비선형 피드백 시프트 레지스터(FSR)이다.According to another embodiment, the finite state machine (FSM) is a linear feedback shift register (LFSR) or a nonlinear feedback shift register (FSR).

LFSR은 양호한 통계적 특성을 갖는 FSM이므로, 메모리 수단의 상태내의 전체적인 난수성 및 엔트로피를 증가시킨다.Since LFSR is a FSM with good statistical properties, it increases the overall randomness and entropy in the state of the memory means.

비선형 FSR은 복잡성을 약간 증가시켜 보안성을 증가시키는 훨씬 더 우수한 통계적 특성을 갖는다.Nonlinear FSRs have much better statistical properties that increase security slightly with increased complexity.

바람직한 실시예에 있어서, 메모리 수단은 적어도 1 비트의 길이를 갖는 순환 버퍼를 포함한다.In a preferred embodiment, the memory means comprises a circular buffer having a length of at least 1 bit.

따라서, 메모리 수단의 매우 간단하며 효과적인 부분이 제공된다.Thus, a very simple and effective part of the memory means is provided.

바람직한 실시예에 있어서, 계산 수단은 해싱 함수를 사용하여 결과적으로 적어도 하나의 난수로 나타나는 적어도 하나의 해시 값을 계산하도록 적응된다.In a preferred embodiment, the calculating means is adapted to calculate at least one hash value resulting in at least one random number using a hashing function.

해시 함수는 출력을 토대로 함수의 입력을 결정하는 것을 사실상 불가능하게하여, 발생된 난수/난수열의 보안성을 매우 증가시킨다.The hash function makes it virtually impossible to determine the function's input based on the output, greatly increasing the security of the random / random sequence generated.

선택적으로, 계산 수단은 FSM으로의 피드백을 포함함으로써, 난수의 출력 레이트를 증가시킨다.Optionally, the computing means includes feedback to the FSM, thereby increasing the output rate of the random number.

다른 실시예에 있어서, 해싱 함수는:In another embodiment, the hashing function is:

·SHA-1,SHA-1,

·RIPEMD-160,RIPEMD-160,

·MD5 또는MD5 or

·임의의 다른 적합한 해싱 또는 이와 유사한 함수 중 임의의 하나이다.Any other suitable hashing or similar function.

바람직한 실시예에 있어서, 압축 수단은 Lempel-Ziv 압축 방식에 따라 입력 비트를 압축한다.In a preferred embodiment, the compression means compresses the input bits according to the Lempel-Ziv compression scheme.

Lempel-Ziv 압축 알고리즘은 잘 알려져있는 일반적인 소스 코딩 방법이다. 즉 상기 알고리즘은 적응성이 있으며, 이것은 예컨대 1977년 5월, IEEE Transaction on Information Theory Vol.23, no 5, p.337-343에서 Ziv, Lempel의 "A universal algorithm for sequential data compression", 및 1978년 9월, IEEE Transactions on Information Theory, Vol.24, no 5, p.530-536에서, Ziv, Lempel의 "Compression of individual sequences via variable rate coding"에 기재되어 있다.Lempel-Ziv compression algorithm is a well-known general source coding method. The algorithm is adaptable, for example Zig, Lempel's "A universal algorithm for sequential data compression" in May 1977, IEEE Transaction on Information Theory Vol. 23, no 5, p. 337-343, and in 1978. In September, IEEE Transactions on Information Theory, Vol. 24, no 5, p. 530-536, described in "Compression of individual sequences via variable rate coding" by Ziv, Lempel.

선택적으로, 압축 수단은 PPM(partial pattern matching), Huffman, Tunstall 등과 같은 또 다른 압축/인코딩 방식/알고리즘, 또는 보다 나은 압축, 더 낮은 구현 비용, 및/또는 실행 속도를 얻는데 사용되는 다른 압축 방식에 따라 입력 비트를 압축한다.Optionally, the compression means may be adapted to another compression / encoding scheme / algorithm such as partial pattern matching (PPM), Huffman, Tunstall, etc., or other compression schemes used to obtain better compression, lower implementation costs, and / or execution speed. Compress the input bits accordingly.

일 실시예에서, 난수 발생기는 휴대용 장치에 사용된다.In one embodiment, the random number generator is used in a portable device.

바람직한 실시예에서, 휴대용 장치는 이동 전화기이다.In a preferred embodiment, the portable device is a mobile phone.

본 발명의 다른 목적은 고품질의 난수를 안전하고 효율적으로 발생시키는 방법을 제공하는 것이다.Another object of the present invention is to provide a method for safely and efficiently generating high quality random numbers.

상기 목적은 상기 언급된 종류의 방법에 의해 달성되는데, 상기 방법은The object is achieved by a method of the kind mentioned above, which method

·상기 상태의 적어도 일부로서 상기 메모리에 저장되는, 결과적으로 압축된 비트열로 나타나는 상기 입력 비트를 압축하는 단계를 더 포함한다.Compressing the input bits, which are stored in the memory as at least part of the state, resulting in a compressed bit string.

바람직한 실시예에 따르면, 적어도 하나의 랜덤 또는 의사-랜덤 소스가 적어도 하나의 하드웨어 소스를 포함하며, 상기 입력 비트는 상기 적어도 하나의 하드웨어 소스의 적어도 하나의 물리적 특징을 나타낸다.According to a preferred embodiment, at least one random or pseudo-random source comprises at least one hardware source, the input bits representing at least one physical characteristic of the at least one hardware source.

방법의 일 실시예에 따르면, 상태는 유한 상태 기계(FSM)의 상태의 적어도 일부를 더 포함한다.According to one embodiment of the method, the state further comprises at least a portion of the state of the finite state machine (FSM).

다른 실시예에 따르면, 유한 상태 기계(FSM)는 선형 피드백 시프트 레지스터(LFSR) 또는 비선형 피드백 시프트 레지스터(FSR)이다.According to another embodiment, the finite state machine (FSM) is a linear feedback shift register (LFSR) or a nonlinear feedback shift register (FSR).

바람직한 실시예에서, 메모리 수단은 적어도 1 비트의 길이를 갖는 순환 버퍼를 포함한다.In a preferred embodiment, the memory means comprises a circular buffer having a length of at least 1 bit.

바람직한 실시예에서, 계산 수단은 해싱 함수를 사용하여 결과적으로 상기 난수로 나타나는 적어도 하나의 해시 값을 계산하도록 적응된다.In a preferred embodiment, the calculating means is adapted to calculate at least one hash value resulting in the random number using a hashing function.

다른 실시예에 있어서, 해싱 함수는:In another embodiment, the hashing function is:

·SHA-1,SHA-1,

·RIPEMD-160,RIPEMD-160,

·MD5 또는MD5 or

·임의의 다른 적합한 해싱 또는 이와 유사한 함수 중 임의의 하나이다.Any other suitable hashing or similar function.

바람직한 실시예에서, 압축 수단은 Lempel-Ziv 압축 방식에 따라 입력 비트를 압축한다.In a preferred embodiment, the compression means compresses the input bits according to the Lempel-Ziv compression scheme.

일 실시예에서, 상기 방법은 휴대용 장치에 사용된다.In one embodiment, the method is used in a portable device.

바람직한 실시예에서, 상기 방법은 이동 전화기에 사용된다.In a preferred embodiment, the method is used for a mobile phone.

방법 및 그 실시예는 난수 발생기 및 그 실시예에 상응하며, 이는 상기와 동일한 이점을 갖는다(이러한 이유로 이들이 다시 설명되지 않음).The method and its embodiment correspond to the random number generator and its embodiment, which have the same advantages as above (for this reason they are not described again).

또한, 본 발명은, 프로세싱 유닛 또는 컴퓨터 시스템으로 하여금 상기 및 이하에 기재된 방법을 실행하도록 하는 명령을 저장한 컴퓨터-판독가능 매체에 관한 것이다. 컴퓨터 판독가능 매체로는, 예컨대 CD-ROM, CD-R, DVD RAM/ROM, 플로피 디스크, 하드 디스크, 스마트 카드, 네트워크 접속을 통해 액세스가능한 네트워크, ROM, RAM, 및/또는 플래시 메모리 등, 또는 일반적으로 어떻게 명령(instruction/command)이 실행되는지에 관한 정보를 컴퓨터 시스템에 제공하는 임의의 다른 종류의 매체가 있다.The invention also relates to a computer-readable medium having stored thereon instructions for causing a processing unit or computer system to execute the methods described above and below. Computer-readable media include, for example, CD-ROM, CD-R, DVD RAM / ROM, floppy disk, hard disk, smart card, network accessible via a network connection, ROM, RAM, and / or flash memory, or the like. There is generally any other kind of medium that provides the computer system with information as to how instructions / commands are executed.

따라서, 컴퓨터가 상기와 같은 컴퓨터 판독가능 매체의 내용의 결과로서 전자 정보를 검색하게 되면, 본 발명에 따른 상응하는 방법과 관련하여 상기 언급된 이점이 얻어진다.Thus, when the computer retrieves the electronic information as a result of the contents of such a computer readable medium, the advantages mentioned above in connection with the corresponding method according to the invention are obtained.

마지막으로, 본 발명은 프로그램을 실행하도록 적응되는 수단을 포함하는 컴퓨터 시스템에 관한 것인데, 이 경우 프로그램은 실행될 때 컴퓨터 시스템으로 하여금 본 발명에 따른 방법을 수행함으로써, 상기 언급된 이점 및/또는 효과를 얻을 수 있게 한다.Finally, the invention relates to a computer system comprising means adapted to execute a program, in which case the program, when executed, causes the computer system to carry out the method according to the invention, thereby achieving the above mentioned advantages and / or effects. To get it.

컴퓨터 시스템이라 함은 예컨대, 본 발명에 따른 방법을 컴퓨터가 완전히 또는 부분적으로 실행하도록 하는 방식으로 한 번에 또는 다른 방법으로 프로그래밍/명령될 수 있는, 특수용 또는 범용 CPU 등과 같은 하나 이상의 프로세서 수단을 포함하는 시스템을 의미한다.Computer system includes, for example, one or more processor means, such as a special purpose or general purpose CPU, which can be programmed / instructed at one time or another in a manner that causes the computer to fully or partially execute the method according to the invention. Means a system.

본 발명은 도면을 참조하여 보다 충분히 설명될 것이다.The invention will be more fully described with reference to the drawings.

도 1은 본 발명에 따른 난수 발생기의 기능적인 블록도를 개략적으로 도시하는 것이다. 하나 이상의 랜덤 및/또는 의사-랜덤 소스(도시되지 않음)의 정보를 표현하는 다수의 입력 비트(101)가 도시되어 있다. 입력 비트(101)는 예컨대 적절한 레이트로 소스(들)를 샘플링함으로써 얻어질 수 있다. 바람직한 실시예에서는, 적어도 하나의 소스가 하드웨어 기반 소스이다.1 schematically illustrates a functional block diagram of a random number generator according to the present invention. A number of input bits 101 are shown representing information of one or more random and / or pseudo-random sources (not shown). Input bit 101 may be obtained, for example, by sampling the source (s) at an appropriate rate. In a preferred embodiment, at least one source is a hardware based source.

압축 수단(102)은 입력 비트(101)를 수신하여, 이들을 상기 기재된 것과 유사한 소정의 압축 방식 또는 방법에 따라 압축한다. 입력 비트(101)의 압축에 대한 예는 도 6 및 7과 관련하여 제공된다. 압축 수단(102)은 입력 비트(101)로부터 리던던트 정보를 제거함으로써, 입력 비트(101)의 엔트로피 및 난수성을 향상시킨다. 상기 압축 수단(102)은 또한 하드웨어 기반 소스를 사용할 때 유동적인 특성의 효과를 제거한다.The compression means 102 receives the input bits 101 and compresses them according to some compression scheme or method similar to that described above. Examples of compression of the input bits 101 are provided in connection with FIGS. 6 and 7. Compression means 102 improves the entropy and randomness of input bit 101 by removing redundant information from input bit 101. The compression means 102 also eliminates the effect of fluid characteristics when using a hardware based source.

바람직하게는, 압축 수단은 Lempel-Ziv 압축 방식을 사용한다.Preferably, the compression means uses a Lempel-Ziv compression scheme.

선택적으로, 압축 수단은 PPM(partial compression mathing), Huffman, Tunstall 등과 같은 또 다른 압축/코딩 방식/알고리즘, 또는 예컨대 보다 나은 압축, 더 낮은 구현 비용 및/또는 실행 속도를 얻는데 사용되는 다른 압축 방식에 따라 입력 비트를 압축한다.Optionally, the compression means may be adapted to another compression / coding scheme / algorithm such as partial compression mathing (PPM), Huffman, Tunstall, etc., or other compression schemes used to achieve better compression, lower implementation costs, and / or execution speed, for example. Compress the input bits accordingly.

압축 수단(102)으로부터 결과는 메모리 수단(103)에 상태의 적어도 일부로서 저장된다.The results from the compression means 102 are stored in the memory means 103 as at least part of the state.

일 실시예에 있어서, 메모리 수단(103)은 적어도 1 비트의 길이를 가진 순환 버퍼이다. 순환 버퍼에서, 버퍼의 마지막 요소는 버퍼가 완전히 채워질 때 버퍼의 제1 요소가 됨으로써, 중복(overloading)/겹쳐쓰기(overwriting)를 피할 수 있다.In one embodiment, the memory means 103 is a circular buffer having a length of at least 1 bit. In a circular buffer, the last element of the buffer becomes the first element of the buffer when the buffer is completely filled, thereby avoiding overloading / overwriting.

선택적으로, 메모리 수단(103)의 상태는 또한, 유한 상태 기계(FSM) 또는 FSM의 상태의 카피(copy)를 포함함으로써, 랜덤 및/또는 의사 랜덤 소스(및 그에 따른 압축 수단(102)으로부터의 출력)가 변하지 않는다 하더라도 메모리 수단(103)의 상태가 매 클럭 신호마다 변경될 수 있다. FSM은 임의의 적합한 선형 피드백 시프트 레지스터(LFSR) 또는 비선형 피드백 시프트 레지스터(FSR)일 수 있으며, FSM의 일례가 도 2 및 3과 관련하여 이후 보다 상세히 설명된다. FSM은 적어도 한 스텝(step) 시프트된다.Optionally, the state of the memory means 103 also comprises a copy of the state of the finite state machine (FSM) or FSM, thereby providing a random and / or pseudo random source (and thus from the compression means 102). Although the output) does not change, the state of the memory means 103 can be changed for every clock signal. The FSM may be any suitable linear feedback shift register (LFSR) or nonlinear feedback shift register (FSR), an example of an FSM being described in more detail below with respect to FIGS. 2 and 3. The FSM is shifted at least one step.

계산 수단(104)은 메모리 수단(103)의 상태에 대한 주어진 함수를 계산하여 적어도 하나의 난수 또는 의사 난수(105)를 유도한다. 바람직하게는, 해싱 함수가 계산 수단(104)에 의해 난수(들)(105)를 유도하는데 사용되어, 프로세스의 보안성을 향상시키는데, 이와 같이 되는 이유는 해싱 함수는 출력을 토대로 해싱 함수의 입력을 유도하는 것이 거의 불가능하거나 적어도 매우 어렵게 하기 때문이다.The calculating means 104 calculates a given function for the state of the memory means 103 to derive at least one random number or pseudo random number 105. Preferably, a hashing function is used by the calculating means 104 to derive the random number (s) 105 to improve the security of the process, which is why the hashing function is based on the output of the hashing function. This is because it is almost impossible or at least very difficult to derive.

선택적으로, 난수 또는 의사 난수 또는 난수열의 출력을 보장하기 위해 계산 수단(104)에 의해 상기 이외의 함수가 사용될 수도 있다.Optionally, a function other than the above may be used by the calculation means 104 to ensure the output of the random number or pseudorandom number or random number sequence.

선택적으로, 계산 수단(104)은 메모리 수단(103) 또는 보다 구체적으로 메모리 수단(103)의 FSM에 피드백을 제공하여, 난수 또는 의사 난수(들)/열의 출력 레이트를 증가시키는데, 예컨대 계산/해싱 수단(104)으로부터의 출력이 두 개로 분할될 수 있는데, 한 부분은 난수/열이고 나머지 한 부분은 FSM/LFSR을 제어하는데 사용되는 경우와 같이 반드시 동일한 부분일 필요가 없다.Optionally, the calculation means 104 provides feedback to the memory means 103 or more specifically the FSM of the memory means 103 to increase the output rate of the random number or pseudo random number (s) / columns, for example calculation / hashing. The output from the means 104 can be divided into two, one part being random / column and the other part not necessarily the same part as used to control the FSM / LFSR.

도 2는 본 발명의 일 실시예에 따른 난수 발생기의 기능적인 블록도를 개략적으로 도시하는 것이다. 예컨대 소스로부터의 하나 이상의 물리적 파라미터를 소정의 레이트로 샘플링함으로써, 하드웨어 소스(도시되지 않음)로부터 얻어지는 다수의 랜덤 또는 의사 랜덤 비트(201)가 도시되어 있다. 비트(201)는 하드웨어 소스/유닛의 하나 이상의 물리적 특성을 표현하는 것이 바람직하다.2 schematically illustrates a functional block diagram of a random number generator according to an embodiment of the present invention. A number of random or pseudo random bits 201 are shown, obtained from a hardware source (not shown), for example by sampling at least one physical parameter from a source at a predetermined rate. Bit 201 preferably represents one or more physical characteristics of the hardware source / unit.

선택적으로, 반드시 하드웨어 기반 랜덤 또는 의사 랜덤 소스일 필요가 없는 다른 소스를 기반으로 비트가 얻어진다.Optionally, bits are obtained based on other sources that do not necessarily have to be hardware based random or pseudo random sources.

비트(201)는, 리던던트 정보를 제거하고, 엔트로피를 극대화하며, 하드웨어 기반 소스/유닛의 통계적 특성의 유동성으로 인한 임의의 효과를 제거하기 위해, 압축 수단(202)에 의해 압축된다. 이와 같이 함으로써, 압축 이후의 비트(201)가 가능한 랜덤하게 된다.Bit 201 is compressed by compression means 202 to remove redundant information, maximize entropy, and remove any effects due to the fluidity of the statistical properties of hardware-based sources / units. By doing this, the bits 201 after compression are as random as possible.

바람직하게는, 압축 수단은 Lempel-Ziv 압축 방식을 사용한다.Preferably, the compression means uses a Lempel-Ziv compression scheme.

선택적으로, 압축 수단은 PPM(partial pattern matching), Huffman, Tunstall 등의 다른 압축 방식/알고리즘에 따라 입력 비트를 압축하거나, 또는 예컨대 보다 나은 압축, 더 낮은 구현 비용, 및/또는 실행 속도를 얻는데 사용되는 다른 압축 방식에 따라 입력 비트를 압축한다.Optionally, the compression means is used to compress the input bits according to other compression schemes / algorithms such as partial pattern matching (PPM), Huffman, Tunstall, etc., or to obtain better compression, lower implementation cost, and / or execution speed, for example. Compress the input bits according to different compression schemes.

압축된 비트는 메모리, 바람직하게는 순환 버퍼(203)에 저장된다. 메모리는 FSM(204)의 상태의 적어도 일부를 더 포함하는 것이 바람직하다. FSM(204)는, 하드웨어 소스가 그렇지 않는다 하더라도 모든 난수 발생동안 또는 매 클록 사이클마다 메모리 상태가 변경되도록 하는데, 이는 통상적으로 하드웨어 유닛의 물리적인 특성이 FSM 회로보다 비교적 더 느린 속도로 변경되기 때문에 꽤 자주 발생하게 된다.The compressed bits are stored in memory, preferably in circular buffer 203. The memory preferably further includes at least a portion of the state of the FSM 204. The FSM 204 causes the memory state to change during every random number generation or every clock cycle, even if the hardware source is not, which is typically quite significant because the physical characteristics of the hardware unit change at a relatively slower rate than the FSM circuitry. It often happens.

FSM(204)의 상태가 양호한 통계적/랜덤 특성을 갖는다면, 고품질의 추가 난수성이 메모리 수단에 도입된다.If the state of the FSM 204 has good statistical / random characteristics, high quality additional random number is introduced into the memory means.

FSM은 모든 유한 상태 기계로서 결국 순환하게 되는데, 즉 이전의 발생된 상태로 복귀하게 된다.The FSM will eventually cycle as all finite state machines, ie return to the previously generated state.

대부분의 응용에서, FSM은 상기 예에 도시된 바와 같이 2진 심볼 범위에서 동작하게 되는데, 즉 심볼은 "0" 과 "1"이 된다. 그러나, FSM, 선형 피드백 시프트 레지스터 등의 이론으로부터 이미 잘 알려져있는 바와 같이, 상기 이외의 다른 심볼 범위도 사용될 수 있다.In most applications, the FSM will operate in the binary symbol range as shown in the above example, i.e. the symbols will be " 0 " However, other symbol ranges other than the above may also be used, as is well known from the theory of FSM, linear feedback shift register, and the like.

선형 피드백 시프트 레지스터(LFSR)는, 양호한 통계적 특성을 가짐으로써 메모리 수단의 상태의 전반적인 난수성 및 엔트로피를 증가시키는 FSM의 일례이다.The linear feedback shift register (LFSR) is an example of an FSM that has good statistical properties, thereby increasing the overall randomness and entropy of the state of the memory means.

LFSR은 발생된 상태 시퀀스가 모든 비-제로(non-zero) 상태를 통해 순환하게 되는 방식으로 선택되는 것이 유리하며, 이것은 심볼 분야에서 원시 다항식에 상응하는 피드백 접속을 선택함으로써 실현될 수 있다(예컨대, CRC Press 1997, 페이지 195-196에서, A.J. Menezes, P.C. van Oorschot 및 S.A. Vanstone에 의한 TheHandbook of Applied Crypotography를 참조")The LFSR is advantageously chosen in such a way that the generated state sequence will cycle through all non-zero states, which can be realized by selecting a feedback connection corresponding to the primitive polynomial in the symbol field (e.g., , CRC Press 1997, pages 195-196, see The Handbook of Applied Crypotography by AJ Menezes, PC van Oorschot and SA Vanstone ").

LFSR의 피드백이 de Bruin 시퀀스와 같은 표준길이의(full-length) 시퀀스를 발생시키도록 변형될 때 약간의 복잡성 증가가 있긴 하지만 보안성이 훨씬 증가될 수 있는데, 즉 LFSR은 제로 상태를 포함한(모든 "0"를 포함하는) 모든 가능한 상태를 통해 순환하게 된다.Although there is a slight increase in complexity when the feedback of the LFSR is modified to produce a full-length sequence, such as the de Bruin sequence, the security can be significantly increased, i.e. the LFSR contains zero state (all It will cycle through all possible states (including "0").

비선형 피드백 시프트 레지스터(FSR)는 훨씬 더 우수한 통계적 특성을 갖는 FSM이며, 이것은 구현 하드웨어의 복잡성을 약간 증가시키지만 보안성을 훨씬 더 증가시킨다.Nonlinear feedback shift registers (FSRs) are FSMs with much better statistical properties, which slightly increases the complexity of the implementation hardware, but further increases security.

다음으로, 메모리 수단(203;204)의 전체 상태가 해싱 수단(205)의 입력으로서 사용되어 보안성을 훨씬 더 향상시킴으로써, 결과적으로 하나 이상의 랜덤 또는 의사 랜덤 비트가 얻어진다.Next, the overall state of the memory means 203; 204 is used as input to the hashing means 205 to further improve security, resulting in one or more random or pseudo random bits.

해싱 또는 이와 유사한 "일방향(one-way)" 함수를 메모리 수단(203;204)에 적용하면 확실히, 해싱 수단(205)의 입력과 출력 사이의 관계를 판정하기가 거의 불가능해지며, 이는 난수 또는 의사 난수/열의 보안성을 증가시킨다.Applying a hashing or similar " one-way " function to the memory means 203; 204 makes it almost impossible to determine the relationship between the input and output of the hashing means 205, which is a random number or Increase the security of pseudo random numbers / heat.

선택적으로, 메모리 수단(203;204)의 상태의 일부가 해싱 수단(205)에 공급된다.Optionally, part of the state of the memory means 203; 204 is supplied to the hashing means 205.

해싱 함수의 예로는, SHA-1, RIPEMD-160, MD5, 또는 일반적으로 임의의 다른 적합한 해싱 또는 이와 유사한 일방향 함수가 있다.Examples of hashing functions are SHA-1, RIPEMD-160, MD5, or generally any other suitable hashing or similar one-way function.

도 3은 본 발명의 다른 실시예에 따른 난수 발생기의 일반화된 기능적인 블록도를 도시하는 것이다. 이 도면은, 도 2에서와 같은 단 하나 대신 복수의 N 랜덤및/또는 의사 랜덤 소스(201;201')가 도시되어 있다는 것을 제외하면 도 2에 상응한다.3 illustrates a generalized functional block diagram of a random number generator according to another embodiment of the present invention. This figure corresponds to FIG. 2 except that a plurality of N random and / or pseudo random sources 201 and 201 'are shown instead of just one as in FIG.

랜덤 소스(201;201')는 적어도 하나의 난수 및/또는 의사 난수를 표현하는 심볼을 발생시키기 위해 어떻해 해서든지 샘플링/감지될 수 있는 임의의 하드웨어 기반 또는 비 하드웨어 기반 소스를 포함할 수 있다. 난수란, '실제' 랜덤한 특성의 종종 감지/샘플링된 물리적 파라미터(들)를 표현하는 수를 의미하며, 의사 난수란, 하드웨어 회로/유닛, 클록 회로, CPU, 메모리 상태 등의 내부 상태와 같은 (비록 복잡하지만) 결정형 유닛을 기반으로 파라미터를 표현하는 수를 의미한다.The random source 201; 201 'may comprise any hardware based or non hardware based source that can be sampled / detected in any way to generate a symbol representing at least one random number and / or pseudo random number. A random number is a number that represents the often detected / sampled physical parameter (s) of a 'real' random characteristic, and a pseudo random number is such as internal states such as hardware circuits / units, clock circuits, CPUs, memory states, etc. Refers to a number representing a parameter based on a crystalline unit (although it is complex).

랜덤 소스의 몇 가지 예로는: 방사성 붕괴 동안 입자 방출 사이의 경과 시간, 반도체 다이오드 또는 저항 등으로부터의 열잡음, 또는 일반적으로 물리적 특성을 기반으로한 높은 예측불허성/엔트로피를 갖는 임의의 소스가 있다.Some examples of random sources are: elapsed time between particle emissions during radioactive decay, thermal noise from semiconductor diodes or resistors, or the like, or any source that generally has high unpredictability / entropy based on physical properties.

방사성 소스 및 센서는 예컨대 단단한 플라스틱 또는 이와 유사한 것 내에 싸여질(encapsulate) 수 있어, 어떠한 제 3자도 파라미터(들)를 판정함에 따라 보안성을 위반하지 못한다.Radioactive sources and sensors can be encapsulated, for example, in hard plastic or the like, so that no third party violates security as it determines the parameter (s).

의사 랜덤 소스의 몇 가지 예로는: 하드웨어 모듈/유닛/장치의 현재 내부 상태, 컴퓨터 시스템의 날짜 및/또는 시간, 비어있는 이용가능한 메모리, 메모리 상태(예컨대, FSM에서), 판독 및/또는 기록 동작을 수행하는 동안 하드디스크의 속도 변화, 다수의 비동기 클록의 조합 등이 있다.Some examples of pseudo-random sources are: the current internal state of the hardware module / unit / device, the date and / or time of the computer system, the free memory available, the memory state (eg in the FSM), read and / or write operations. During this process, there is a speed change of the hard disk, a combination of multiple asynchronous clocks.

이러한 방식으로, 발생기에 의해 보다 우수한 랜덤 및/또는 의사 랜덤 입력이 얻어짐으로써, 출력 난수/의사 난수(들)의 품질이 향상된다.In this way, a better random and / or pseudo random input is obtained by the generator, thereby improving the quality of the output random number / pseudo random number (s).

도 4는 본 발명에 따른 방법을 설명하는 흐름도이다. 상기 방법은 단계 400에서 초기화되어 시작된다. 단계 401에서, 예컨대 소스(들)를 샘플링함으로써, 하나 이상의 랜덤 및/또는 의사 랜덤 소스의 파라미터를 표현하는 다수의 비트가 얻어진다. 바람직하게는, 적어도 하나의 소스가 하드웨어 기반 소스이지만, 상기 설명된 바와 같이 다른 소스도 사용될 수 있다.4 is a flow chart illustrating a method according to the present invention. The method is initiated and started in step 400. In step 401, for example, by sampling the source (s), a number of bits are obtained that represent parameters of one or more random and / or pseudo random sources. Preferably, at least one source is a hardware based source, but other sources may be used as described above.

단계 402에서, FSM은 다른 상태로 적어도 한 스텝 시프트된다. FSM은 상기 설명된 바와 같이 임의의 적합한 선형 피드백 시프트 레지스터(LFSR) 또는 비선형 피드백 시프트 레지스터(FSR)일 수 있다. 이것은, 난수 및/또는 의사 난수 발생의 입력 기준(및 그에 따른 최종 출력)이 소스(들)의 변경과 무관하게 매 클록 사이클마다 변경되도록 한다.In step 402, the FSM is shifted at least one step to another state. The FSM can be any suitable linear feedback shift register (LFSR) or nonlinear feedback shift register (FSR) as described above. This allows the input criteria (and thus the final output) of the random number and / or pseudo random number generation to change every clock cycle regardless of the change in the source (s).

단계 403에서는, 단계 401에서 얻어진 비트가 압축되어, 메모리 소자, 바람직하게는 순환 버퍼내에 배치된다.In step 403, the bits obtained in step 401 are compressed and placed in a memory element, preferably a circular buffer.

압축은 Lempel-Ziv 압축 방식에 따라 수행되는 것이 바람직하지만, PPM(partial pattern matching), Huffman 등과 같은 다른 압축 방식/알고리즘, 예컨대 보다 나은 압축, 더 낮은 구현 비용, 및/또는 실행 속도를 얻기 위해 사용되는 다른 압축 방식이 또한 사용될 수 있다.Compression is preferably performed according to the Lempel-Ziv compression scheme, but is used to obtain other compression schemes / algorithms such as partial pattern matching (PPM), Huffman, etc., such as better compression, lower implementation cost, and / or execution speed. Other compression schemes may also be used.

단계 404에서, 상기 압축된 비트와 현재의 FSM 상태의 비트가 단일 비트열 등으로 조합된다.In step 404, the compressed bits and the bits of the current FSM state are combined into a single bit string or the like.

선택적으로, 압축된 비트와 FSM 상태를 조합하는 대신, 이들이 단일 메모리 소자의 일부로서 저장될 수 있다.Alternatively, instead of combining the compressed bits and the FSM state, they can be stored as part of a single memory element.

단계 405에서, 조합된 압축된 비트와 FSM 상태의 비트는 적어도 하나의 난수 및/또는 의사 난수를 유도하기 위해 해싱 함수의 입력으로서 사용된다. 해싱 함수는, 출력을 기준으로 해싱 함수의 입력을 유도하는 것이 거의 불가능하게 함으로써, 발생된 난수 및/또는 의사 난수의 보안성을 향상시킨다.In step 405, the combined compressed bit and the bit in the FSM state are used as input to a hashing function to derive at least one random number and / or pseudo random number. The hashing function makes it almost impossible to derive the input of the hashing function based on the output, thereby improving the security of the generated random and / or pseudo random numbers.

해싱 함수는 SHA-1, RIPEMD-160, MD5 또는 일반적으로 임의의 다른 적합한 해싱 또는 이와 유사한 함수 중 어느 하나 일 수 있다.The hashing function can be any of SHA-1, RIPEMD-160, MD5 or generally any other suitable hashing or similar function.

단계 406에서, 더 이상의 난수(들)가 발생될 수 있는지 여부에 대한 테스트가 수행된다. 이것이 가능하다면, 상기 방법은 루프 백(loop back)하여 단계 401 내지 단계 406을 다시 한번 수행한다.In step 406, a test is performed to see if more random number (s) can be generated. If this is possible, the method loops back to perform steps 401 to 406 once again.

선택적으로, FSM이 최종 난수 및/또는 의사 난수(들)의 유도시마다 적어도 한 스텝 시프트되는 한, 단계 402는 또한, 단계 403 이전 또는 상기 스텝 시퀀스의 임의의 다른 곳에서 실행되는 대신 단계 404 이후에 실행될 수도 있다.Optionally, as long as the FSM is shifted at least one step per induction of the final random number and / or pseudo random number (s), step 402 is also performed after step 404 instead of before step 403 or elsewhere in the step sequence. May be implemented.

선택적으로, 단계 402 및 403은 또한 병행하여 실행될 수도 있고 또는 반대 순서로(403이 402 이전에) 실행될 수도 있다.Optionally, steps 402 and 403 may also be executed in parallel or in the reverse order (403 before 402).

도 5는 본 발명의 바람직한 실시예를 도시하는 것으로서, 이것은 난수 발생기를 포함하며 및/또는 본 발명에 따른 방법을 사용한다. 디스플레이 수단(504), 키패드(505), 안테나(502), 마이크로폰(506) 및 스피커(503)를 구비하는 이동 전화기(501)가 도시되어 있다. 난수 발생기를 포함하고 및/또는 상기 방법을 사용함으로써, 고품질 난수 발생이 하드웨어 면에서 비교적 적은 복잡성으로 제공됨에 따라, 적은 전력 소비 및/또는 계산/실행 시간으로 제공될 수 있다.5 shows a preferred embodiment of the present invention, which comprises a random number generator and / or uses the method according to the present invention. A mobile phone 501 is shown having a display means 504, a keypad 505, an antenna 502, a microphone 506 and a speaker 503. By including a random number generator and / or using the method, high quality random number generation can be provided with less power consumption and / or calculation / execution time as it is provided with relatively little complexity in hardware.

도 6은 압축 수단에 의해 입력 비트가 어떻게 영향을 받는지에 대한 예를 도시하는 것이다. 적어도 하나의 랜덤 및/또는 의사 랜덤 소스, 예컨대 하드웨어 기반 소스(들)로부터 얻어진 비트(601)가 도시되어 있다. 상기 예에서, "0"의 분포는 대략 25%이며, "1"의 분포는 대략 75% 인데, 이는, 유동적인 통계적 특성 등으로 인해 소스(들)가 "1"을 "0"의 세 배로 발생시켰음을 의미한다. 이것은, 한 심볼이 다른 심볼보다 더 자주 발생하기 때문에 랜덤 비트의 최적의 분포가 아니며, 이는 발생된 난수열의 보안성 및 난수성을 감소시킨다.6 shows an example of how input bits are affected by compression means. Bits 601 obtained from at least one random and / or pseudo random source, such as hardware based source (s), are shown. In this example, the distribution of "0" is approximately 25% and the distribution of "1" is approximately 75%, which means that the source (s) triples "1" to "0" due to fluid statistical characteristics, etc. It means that it occurred. This is not an optimal distribution of random bits because one symbol occurs more frequently than another symbol, which reduces the security and randomness of the generated random sequence.

비트(601)는 Huffman 압축 방식에 따라, 또는 상기 설명된 것과 같은 다른 적합한 방식에 따라 압축 수단(602)에 의해 압축되며, 메모리 수단(603)에 저장된 출력 비트를 예컨대 "0"의 분포가 대략 50%이고 "1"의 분포가 대략 50%인 상태로서 제공하는데, 이는 압축 수단이 상기 비트(601)로부터 임의의 리던던트 정보를 제거함으로써 엔트로피를 극대화하기 때문이다.Bit 601 is compressed by compression means 602 according to the Huffman compression scheme, or in another suitable manner as described above, and the output bit stored in memory means 603 is approximately equal to the distribution of " 0 " 50% and distribution of " 1 " is approximately 50%, since the compression means maximizes entropy by removing any redundant information from the bit 601.

선택적으로, 상기 비트(601)는 또한, 상기 설명된 바와 같은 FSM의 상태를 포함한다. 즉, 비트(601)는 랜덤 및/또는 의사 랜덤 소스(들)로부터의 비트 및 FSM의 비트로 형성된다.Optionally, the bit 601 also includes the state of the FSM as described above. That is, bits 601 are formed of bits from random and / or pseudo random source (s) and bits of the FSM.

도 7은, 입력 비트가 압축 수단에 의해 어떻게 영향을 받는지와 어떤 출력이 발생하는지에 대한 보다 상세한 예를 도시하는 것이다.Fig. 7 shows a more detailed example of how the input bits are affected by the compression means and what output occurs.

입력 시퀀스 u ∈ {0,1}를 수신하는 압축 수단(702), 코드 워드의 상태를 포함하는 순환 버퍼(703)를 포함하는 메모리 수단, 및 상태를 또한 포함하는 최대 길이 LFSR(704)과 같은 FSM이 도시되어 있다. 메모리 수단은 또한, 버퍼(703)의 상태의 적어도 일부와 LFSR(704)의 상태의 적어도 일부를 조합하는 MOD2 가산기(705)를 포함한다. 상기 예에서, LFSR(704)는 길이가 4이며, 버퍼(703)는 길이가 12이지만, 다른 유형과 길이의 버퍼 및 FSM이 사용될 수도 있다. 버퍼(703) 및 LFSR(704)은 이들의 초기 상태로 도시되어 있다.Compression means 702 for receiving an input sequence u ∈ {0,1}, a memory means including a circular buffer 703 containing the state of the code word, and a maximum length LFSR 704 also comprising the state FSM is shown. The memory means also includes a MOD2 adder 705 that combines at least a portion of the state of the buffer 703 and at least a portion of the state of the LFSR 704. In the above example, LFSR 704 is 4 in length and buffer 703 is 12 in length, although other types and lengths of buffers and FSMs may be used. Buffer 703 and LFSR 704 are shown in their initial state.

상기 실시예에서, 버퍼(703) 및 LFSR(704)의 상태는 계산 수단/해싱 수단(도시되지 않음)에서 입력(706)으로서 사용된다.In this embodiment, the state of the buffer 703 and the LFSR 704 is used as the input 706 in the calculation means / hashing means (not shown).

입력 시퀀스(u)는 통계적 특성을 갖는데, 이는 마르코프 체인(Markov chain)에 의해 설명될 수 있으며 상응하는 엔트로피 값을 갖는다.The input sequence u has a statistical property, which can be described by a Markov chain and has a corresponding entropy value.

상기의 특정 예에서, 압축/코더 수단(702)은, 예컨대 메시지 세트 M ∈ {"1"; "10"; "100"; "000"}를 갖는 Tunstall 코드와 같은 고정된 소스 코드를 이용하여 입력 시퀀스 u를 압축한다. 즉, 원(raw)/랜덤 데이터 시퀀스 u는 코드(C0C1)의 메시지 세트에 상응하는 블록으로 분석된다. 상기 예에서, Tunstall 코드는 다음과 같이 메시지를 인코딩한다(M의 시간은 오른쪽에서 왼쪽으로 증가하고 있다):In the specific example above, the compression / coder means 702 is for example a message set M 메시지 {"1";"10";"100"; The input sequence u is compressed using a fixed source code such as Tunstall code with " 000 "}. That is, the raw / random data sequence u is analyzed into blocks corresponding to the message set of code C 0 C 1 . In this example, the Tunstall code encodes the message as follows (M's time is increasing from right to left):

MM C0C1 C 0 C 1 1One 1 11 1 1010 1 01 0 100100 0 10 1 000000 0 00 0

즉, 입력 시퀀스/열(u)은 "1" 또는 세 개의 연속적인 "0"이 만날때까지 분석된다. 곧 "1"을 만나게 되면, "11"이 코드워드로서 출력되고; (시간상으로) "1" 전에 단일 "0"을 만나게 되면, "10"이 출력되고; (시간상으로) "1" 전에 두 개의 "0"을 만나게 되면, "01"이 출력되며; 마지막으로 "1"을 만나지 않고 연속적으로 세개의 "0"을 만나게되면, "00"이 출력된다.That is, the input sequence / column u is analyzed until "1" or three consecutive "0s" are met. As soon as "1" is encountered, "11" is output as a codeword; If a single "0" is encountered before "1" (in time), "10" is output; If two "0s" are encountered before "1" (in time), "01" is output; Finally, if three "0s" are encountered consecutively without meeting "1", "00" is output.

예컨대, (오른쪽으로 왼쪽으로 증가하는 시간을 갖는) 다음과 같은 입력 시퀀스는 (여기서 상기 시퀀스는 입력열의 메시지 세트를 보다 잘 나타내기 위해 공간상 분리됨),For example, the following input sequence (with time increasing from right to left) (Where the sequence is spatially separated to better represent the set of messages in the input string),

: 000 000 10 000 1 000 100 1 100 10 1 100 1 : 000 000 10 000 1 000 100 1 100 10 1 100 1

(오른쪽에서 왼쪽으로 증가하는 시간을 갖는) 다음과 같이 인코딩된 열을 출력으로 발생시킨다:Generate the output as an encoded string (with increasing time from right to left):

00 00 01 00 11 00 10 11 10 01 11 10 1100 00 01 00 11 00 10 11 10 01 11 10 11

그러나, 상기 소정의 예에서 소스 인코더/압축 수단이 항상 매 입력 심볼마다 코드워드를 방출하지는 않는다는 것을 알아야 한다.However, it should be noted that in the given example the source encoder / compression means does not always emit a codeword every input symbol.

고정된 길이의 출력에 대해 가변 길이의 입력이 바람직한데, 이러한 이유는 고정된 크기의 스텝만 필요할때 버퍼 클록킹이 더 용이하기 때문이다.Variable length inputs are preferred for fixed length outputs because buffer clocking is easier when only fixed size steps are required.

발생된 코드워드의 시퀀스는 이후 설명되는 바와 같이 순환 버퍼(703)에 배치된다.The generated sequence of codewords is placed in a circular buffer 703 as described later.

선택적으로, 다른 소스 인코더/압축 수단이 사용될 수 있는데, 예컨대 상기 언급된 것, 또는 일반적으로 입력 시퀀스 처리후 높은 엔트로피 및/또는 낮은 리던던시를 보장하는 임의의 다른 적합한 수단이 사용될 수 있다.Optionally, other source encoder / compression means may be used, for example those mentioned above, or in general any other suitable means that ensures high entropy and / or low redundancy after processing the input sequence.

LFSR(704)은 다음과 같은 상태 천이 동작을 갖는 것이 바람직하다:The LFSR 704 preferably has the following state transition operations:

자기자신으로 천이하는 "0000", 및 이하에 따라 천이하는 다른 상태를 포함하는 상태:A state that includes " 0000 " that transitions to itself, and other states that transition according to:

0"1000"0 "1000"

1"1100"1 "1100"

2"1110"2 "1110"

3"1111"3 "1111"

4"0111"4 "0111"

5"1011"5 "1011"

6"0101"6 "0101"

7"1010"7 "1010"

8"1101"8 "1101"

9"0110"9 "0110"

10"0011"10 "0011"

11"1001"11 "1001"

12"0100"12 "0100"

13"0010"13 "0010"

14"0001"14 "0001"

여기서, 상태 "0001"(14)은 상태 "1000"(0)으로 천이하며, 상태 사이클 (0-14)가 반복된다.Here, state "0001" 14 transitions to state "1000" (0), and state cycles (0-14) are repeated.

길이 1 및 15의 상기 두 사이클이 함께 FSM/LFSR(704)의 전체 상태 공간을 각각 소비한다.These two cycles of length 1 and 15 together consume the entire state space of the FSM / LFSR 704 respectively.

동작시, 압축 수단(702)은 다음과 같이 동작할 수 있다:In operation, the compression means 702 may operate as follows:

1) 먼저, 버퍼(703)와 LFSR(704)를 시프트시킨다1) First, shift the buffer 703 and the LFSR 704

2) 시퀀스 u로부터 심볼을 판독한다2) Read symbol from sequence u

3) 완전한 메시지 블록(M)이 없다면, 1로 돌아가고, 그렇지않고,3) if there is no complete message block (M), go back to 1, otherwise,

마지막 코드워드 이후의 시프트의 수가 < 2 일 경우, 버퍼(703)를 한 번 더 시프트시키고If the number of shifts since the last codeword is <2, shift the buffer 703 once more

버퍼의 처음 두 위치에 코드워드 (C0C1)를 기록한다.Write the codeword (C 0 C 1 ) in the first two positions of the buffer.

선택적으로, 버퍼는 기록되는 두 소스 코드 사이에 정확히 두번 클록킹될 수 있다.Optionally, the buffer can be clocked exactly twice between the two source codes being written.

이하, 예시적인 입력열을 수신하는 동안, 버퍼(703) 및 LFSR(704)의 상태가 제시되어 있다. 버퍼(703) 및 LFSR(704)의 초기 값/상태는 괄호로 표시된다.Hereinafter, exemplary input string While receiving, the status of buffer 703 and LFSR 704 is shown. Initial values / states of buffer 703 and LFSR 704 are indicated in parentheses.

버퍼(000000000000)Buffer (000000000000) LFSR(1000)LFSR (1000) 패리티Parity 1One ** 110000000000110000000000 11001100 00 00 011000000000011000000000 11101110 1One 00 001100000000001100000000 11111111 00 1One 010110000000010110000000 01110111 00 1One ** 110101100000110101100000 10111011 00 00 011010110000011010110000 01010101 1One 1One 100101011000100101011000 10101010 1One 00 010010101100010010101100 11011101 00 00 001001010110001001010110 01100110 1One 1One 010100101011010100101011 00110011 00 1One ** 110101001010110101001010 **** 00010001 1One 00 011010100101011010100101 10001000 1One 00 101101010010101101010010 **** 01000100 1One 1One 010110101001010110101001 00100010 1One 00 101011010100101011010100 **** 10011001 00 00 010101101010010101101010 01000100 1One 00 001010110101001010110101 00100010 1One 1One ** 110010101101110010101101 **** 10011001 1One 00 111001010110111001010110 **** 11001100 1One

00 011100101011011100101011 11101110 00 00 001110010101001110010101 **** 01110111 1One 00 100111001010100111001010 **** 00110011 00 1One 100011100101100011100101 10011001 00 00 110001110010110001110010 **** 11001100 00 00 011000111001011000111001 11101110 1One 00 001100011100001100011100 **** 01110111 00 00 000110001110000110001110 10111011 00 00 000011000111000011000111 01010101 1One 00 000001100011000001100011 **** 00100010 1One

여기서, *는 여분 시프트를 나타내고, **는 LFSR 상태가 버퍼에 의해 영향을 받는다는 것을 나타낸다.Where * indicates an extra shift and ** indicates that the LFSR state is affected by the buffer.

버퍼 및 LFSR의 상태는 해싱 또는 이와 유사한 일방향 함수로의 입력으로서 사용되어 발생된 난수/열의 보안성을 크게 향상시키는데, 이러한 이유는 출력을 토대로 함수의 입력을 판정하기가 사실상 불가능하기 때문이다.The state of the buffers and LFSRs are used as inputs to hashing or similar one-way functions to greatly improve the security of generated random numbers / columns, since it is virtually impossible to determine the function's input based on the output.

선택적으로, 해싱 또는 이와 유사한 함수가 상태의 일부분만을 사용할 수도 있다.Optionally, a hashing or similar function may use only part of the state.

매우 간단한 예로서, 다음과 같은 해시 함수가 고려된다:As a very simple example, the following hash function is considered:

h(x1, x2, ... x16) = Σ'xi= (x1+ x2... + x16) MOD2h (x 1 , x 2 , ... x 16 ) = Σ'x i = (x 1 + x 2 ... + x 16 ) MOD2

여기서, i = 1...16 이고, Σ' 는 MOD2 합을 나타낸다.Here, i = 1 ... 16, and Σ 'represents the sum of MOD2.

상기 매우 간단한 예에서, h는 상기 표에 나타나있는 바와 같은 조합 상태의 패리티와 동일하다.In this very simple example, h is equal to the parity of the combined state as shown in the table above.

실제 응용에서, h는 MD-5, SHA-1, RIPEMD-160 또는 임의의 다른 적합한 해싱 또는 이와 유사한 함수와 같은 일방향 해시 함수이다.In practical applications, h is a one-way hash function such as MD-5, SHA-1, RIPEMD-160 or any other suitable hashing or similar function.

버퍼의 길이는 코드워드의 블록 크기에 서로소(relative prime)인 것이 바람직할 수 있다(상기 간단한 예에서는 해당되지 않음).It may be desirable for the length of the buffer to be relative prime to the block size of the codeword (not applicable to this simple example).

바람직한 실시예에서, 새로운 코드워드는 버퍼로 기록됨으로써 이전 데이터에 겹쳐쓰여지는 것이 아니라, 버퍼내의 적어도 한 위치/상태로 코드워드 데이터를 "추가(add)"하는 것이다. 추가하는 것은, 예컨대 가산 MOD 4 또는 4 비트의 XOR-링(ring)일 수 있다.In a preferred embodiment, the new codeword is written to the buffer and not overwritten with the previous data, but rather "adding" the codeword data to at least one position / state in the buffer. Adding may be, for example, an XOR-ring of additive MOD 4 or 4 bits.

Claims (22)

하나 이상의 랜덤 또는 의사 랜덤 소스를 기반으로 다수의 입력 비트(101; 201, 201'; 601)를 수신하도록 적응된 난수 발생기로서,A random number generator adapted to receive a plurality of input bits 101 (201, 201 '; 601) based on one or more random or pseudo random sources, 비트의 상태를 포함하는 메모리 수단(103; 203, 204; 603; 703, 704),Memory means (103; 203, 204; 603; 703, 704) containing a state of a bit, 결과적으로 하나 이상의 난수(105)로 나타나게 되는 상기 상태의 하나 이상의 비트에 소정의 함수를 적용하는 계산 수단(104, 205)을 포함하는 난수 발생기에 있어서,In a random number generator comprising computation means (104, 205) for applying a predetermined function to one or more bits of the state that result in one or more random numbers (105), 상기 메모리 수단(103; 203, 204; 603; 703, 704)에 상기 상태의 적어도 일부로서 저장되는, 결과적으로 압축된 비트열로 나타나는 상기 입력 비트(101; 201; 201'; 601)를 압축하는 압축 수단(102; 202; 602; 702)을 더 포함하는 것을 특징으로 하는 난수 발생기.Compressing the input bits 101; 201; 201 ′; 601 which are stored in the memory means 103; 203, 204; 603; 703, 704 as resulting condensed bitstreams. And a compression means (102; 202; 602; 702). 제 1 항에 있어서,The method of claim 1, 상기 하나 이상의 랜덤 또는 의사 랜덤 소스는 하나 이상의 하드웨어 소스를 포함하고, 상기 입력 비트는 상기 하나 이상의 하드웨어 소스의 하나 이상의 물리적 특징을 표현하는 것을 특징으로 하는 난수 발생기.Wherein the one or more random or pseudo random sources comprise one or more hardware sources, and wherein the input bits represent one or more physical features of the one or more hardware sources. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 상태는 유한 상태 기계(Finite State Machine:FSM)(204)의 상태의 적어도 일부를 더 포함하는 것을 특징으로 하는 난수 발생기.The state further comprises at least a portion of a state of a finite state machine (FSM) (204). 제 3 항에 있어서,The method of claim 3, wherein 상기 유한 상태 기계(FSM)(204)는 선형 피드백 시프트 레지스터(LFSR)(704) 또는 비선형 피드백 시프트 레지스터(FSR)인 것을 특징으로 하는 난수 발생기.The finite state machine (FSM) is a linear feedback shift register (LFSR) (704) or a non-linear feedback shift register (FSR). 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 메모리 수단(103; 203, 204; 603; 703, 704)은 적어도 1 비트의 길이를 갖는 순환 버퍼(203; 703)를 포함하는 것을 특징으로 하는 난수 발생기.And said memory means (103; 203, 204; 603; 703, 704) comprise a circular buffer (203; 703) having a length of at least one bit. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 5, 상기 계산 수단(104, 205)은 해싱 함수를 사용하여 결과적으로 상기 난수(105)로 나타나는 하나 이상의 해시 값을 계산하도록 적응되는 것을 특징으로 하는 난수 발생기.And said calculating means (104, 205) is adapted to calculate one or more hash values resulting in said random number (105) using a hashing function. 제 6 항에 있어서,The method of claim 6, 상기 해싱 함수는:The hashing function is: ·SHA-1,SHA-1, ·RIPEMD-160,RIPEMD-160, ·MD5 또는MD5 or ·임의의 다른 적합한 해싱 또는 이와 유사한 함수 중 어느 하나인 것을 특징으로 하는 난수 발생기.Random number generator, characterized in that it is any other suitable hashing or similar function. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 7, 상기 압축 수단은 Lempel-Ziv 압축 방식에 따라 입력 비트를 압축하는 것을 특징으로 하는 난수 발생기.And said compressing means compresses the input bits according to the Lempel-Ziv compression scheme. 상기 항 중 어느 한 항에 있어서,The method of claim 1, wherein 상기 난수 발생기는 휴대용 장치에 사용되는 것을 특징으로 하는 난수 발생기.And said random number generator being used in a portable device. 제 9 항에 있어서,The method of claim 9, 상기 휴대용 장치가 이동 전화기(501)인 것을 특징으로 하는 난수 발생기.Random number generator, characterized in that the portable device is a mobile phone (501). 적어도 난수를 발생시키는 방법으로서,As a method of generating at least random numbers, 하나 이상의 랜덤 또는 의사 랜덤 소스를 기반으로 다수의 입력 비트를 수신하는 단계,Receiving a plurality of input bits based on one or more random or pseudo random sources, 비트의 상태를 메모리에 저장하는 단계,Storing the state of the bits in memory, 결과적으로 하나 이상의 난수로 나타나는 상기 상태의 하나 이상의 비트에 소정의 함수를 적용하는 단계를 포함하는, 난수를 발생시키는 방법에 있어서,A method of generating a random number comprising applying a predetermined function to one or more bits of the state that result in one or more random numbers, 상기 상태의 적어도 일부로서 상기 메모리에 저장되는, 결과적으로 압축된 비트열로 나타나는 상기 입력 비트를 압축하는 단계를 더 포함하는 것을 특징으로 하는 난수를 발생시키는 방법.Compressing the input bits that are stored in the memory as at least part of the state, resulting in a compressed string of bits. 제 11 항에 있어서,The method of claim 11, 상기 하나 이상의 랜덤 또는 의사 랜덤 소스는 하나 이상의 하드웨어 소스를 포함하고, 상기 입력 비트는 상기 하나 이상의 하드웨어 소스의 하나 이상의 물리적 특징을 표현하는 것을 특징으로 하는 난수를 발생시키는 방법.Wherein the one or more random or pseudo random sources comprise one or more hardware sources, and wherein the input bits represent one or more physical features of the one or more hardware sources. 제 11 항 또는 제 12 항에 있어서,The method according to claim 11 or 12, 상기 상태는 유한 상태 기계(Finite State Machine:FSM)의 상태의 적어도 일부를 더 포함하는 것을 특징으로 하는 난수를 발생시키는 방법.Wherein said state further comprises at least a portion of a state of a finite state machine (FSM). 제 13 항에 있어서,The method of claim 13, 상기 유한 상태 기계(FSM)는 선형 피드백 시프트 레지스터(LFSR) 또는 비선형 피드백 시프트 레지스터(FSR)인 것을 특징으로 하는 난수를 발생시키는 방법.The finite state machine (FSM) is a linear feedback shift register (LFSR) or a non-linear feedback shift register (FSR). 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 14, 상기 메모리 수단은 적어도 1 비트의 길이를 갖는 순환 버퍼를 포함하는 것을 특징으로 하는 난수를 발생시키는 방법.And said memory means comprises a circular buffer having a length of at least one bit. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 15, 상기 계산 수단은 해싱 함수를 사용하여 결과적으로 상기 난수로 나타나는 하나 이상의 해시 값을 계산하도록 적응되는 것을 특징으로 하는 난수를 발생시키는 방법.And said computing means is adapted to calculate one or more hash values resulting in said random number using a hashing function. 제 16 항에 있어서,The method of claim 16, 상기 해싱 함수는:The hashing function is: ·SHA-1,SHA-1, ·RIPEMD-160,RIPEMD-160, ·MD5 또는MD5 or ·임의의 다른 적합한 해싱 또는 이와 유사한 함수 중 어느 하나인 것을 특징으로 하는 난수를 발생시키는 방법.A random number generation method characterized in that it is any other suitable hashing or similar function. 제 11 항 내지 제 17 항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 17, 상기 압축 수단은 Lempel-Ziv 압축 방식에 따라 입력 비트를 압축하는 것을 특징으로 하는 난수를 발생시키는 방법.And said compressing means compresses the input bits according to the Lempel-Ziv compression scheme. 제 11 항 내지 제 18 항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 18, 상기 방법이 휴대용 장치에서 사용되는 것을 특징으로 하는 난수를 발생시키는 방법.Wherein said method is used in a portable device. 제 11 항 내지 제 19 항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 19, 상기 방법이 이동 전화기에서 사용되는 것을 특징으로 하는 난수를 발생시키는 방법.And wherein said method is used in a mobile telephone. 컴퓨터 판독가능 매체로서,A computer readable medium, 프로세싱 유닛으로 하여금 상기 제 11 항 내지 제 20 항 중 어느 한 항에 따른 방법을 실행하도록 하는 명령을 저장한, 컴퓨터 판독가능 매체.21. A computer readable medium having stored thereon instructions for causing a processing unit to execute a method according to any of the claims 11-20. 프로그램을 실행하도록 적응된 수단을 포함하는 컴퓨터 시스템으로서,A computer system comprising means adapted to execute a program, comprising: 프로그램은 실행될 때, 컴퓨터 시스템으로 하여금 상기 제 11 항 내지 제 20 항 중 어느 한 항에 따른 방법을 수행하도록 하는, 컴퓨터 시스템.A computer system, when executed, causes a computer system to perform a method according to any of the preceding claims.
KR10-2003-7009223A 2001-01-16 2001-12-24 Random number generator using compression KR20030093197A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP01610006A EP1223506B1 (en) 2001-01-16 2001-01-16 Random number generator using compression
EP01610006.7 2001-01-16
US26181701P 2001-01-17 2001-01-17
US60/261,817 2001-01-17
PCT/EP2001/015227 WO2002056170A1 (en) 2001-01-16 2001-12-24 Random number generator using compression

Publications (1)

Publication Number Publication Date
KR20030093197A true KR20030093197A (en) 2003-12-06

Family

ID=26077300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7009223A KR20030093197A (en) 2001-01-16 2001-12-24 Random number generator using compression

Country Status (2)

Country Link
KR (1) KR20030093197A (en)
WO (1) WO2002056170A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3335672A1 (en) * 1983-09-30 1985-04-04 Siemens AG, 1000 Berlin und 8000 München ENCRYPTED MESSAGE TRANSMISSION METHOD
US5606322A (en) * 1994-10-24 1997-02-25 Motorola, Inc. Divergent code generator and method
US5757923A (en) * 1995-09-22 1998-05-26 Ut Automotive Dearborn, Inc. Method of generating secret identification numbers
US5778069A (en) * 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
US6076097A (en) * 1997-12-11 2000-06-13 At&T Corp. System and method for generating random numbers

Also Published As

Publication number Publication date
WO2002056170A1 (en) 2002-07-18

Similar Documents

Publication Publication Date Title
KR101246490B1 (en) A closed galois field cryptographic system
Li et al. Chaotic encryption scheme for real-time digital video
CA2723405C (en) Cryptographic system including a random number generator using finite field arithmetics
EP1223506B1 (en) Random number generator using compression
JPH04250490A (en) Encrypting system based on chaos theory
JP3696209B2 (en) Seed generation circuit, random number generation circuit, semiconductor integrated circuit, IC card and information terminal device
Masoodi et al. An analysis of linear feedback shift registers in stream ciphers
Jönsson et al. A fast correlation attack on LILI-128
CN110413257B (en) Random number generating circuit
Wagner The laws of cryptography with java code
Molland et al. An improved correlation attack against irregular clocked and filtered keystream generators
AU2016320726A1 (en) A method of protecting data using compression algorithms
Dubrova et al. A BDD-based approach to constructing LFSRs for parallel CRC encoding
CZ20031598A3 (en) Process and apparatus for generating pseudorandom sequence
KR100478974B1 (en) Serial finite-field multiplier
Tsoi et al. High performance physical random number generator
KR20030093197A (en) Random number generator using compression
Pandian et al. Five decade evolution of feedback shift register: algorithms, architectures and applications
US6484192B1 (en) Root finding method and root finding circuit of quadratic polynomial over finite field
US7502814B2 (en) Device and method for generating a pseudorandom sequence of numbers
Deepthi et al. Hardware stream cipher based on LFSR and modular division circuit
CN112202548A (en) Stream encryption key stream generation method, device, circuit and encryption method
KR20080019631A (en) Method, system and device for generating a pseudorandom data sequence
Mihaljevic et al. A fast and secure stream cipher based on cellular automata over GF (q)
JPS5843743B2 (en) Encryption method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application