KR20080019631A - Method, system and device for generating a pseudorandom data sequence - Google Patents

Method, system and device for generating a pseudorandom data sequence Download PDF

Info

Publication number
KR20080019631A
KR20080019631A KR1020077029543A KR20077029543A KR20080019631A KR 20080019631 A KR20080019631 A KR 20080019631A KR 1020077029543 A KR1020077029543 A KR 1020077029543A KR 20077029543 A KR20077029543 A KR 20077029543A KR 20080019631 A KR20080019631 A KR 20080019631A
Authority
KR
South Korea
Prior art keywords
word
words
code
data sequence
output
Prior art date
Application number
KR1020077029543A
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
Application filed by 프랑스 텔레콤 filed Critical 프랑스 텔레콤
Publication of KR20080019631A publication Critical patent/KR20080019631A/en

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Abstract

The invention concerns a device and a method for generating a pseudorandom data sequence (1) from an initial dataflow (3) characterized in that it includes the following steps: defining a set of code words forming a complete prefix code (5); defining a set of output words (7); defining a desynchronizing function (f) associating with any code word of said complete prefix code (5) an output word of said set of output words (7); breaking down the initial data flow (3) into a coded sequence of words (11) in conformity with said complete prefix code (5); associating the words of said coded sequence of words (11) with the corresponding output words in conformity with said desynchronizing function (f) to form said pseudorandom data sequence (1). ® KIPO & WIPO 2008

Description

의사랜덤 데이터 시퀀스 발생 방법, 시스템 및 장치{Method, system and device for generating a pseudorandom data sequence}Method, system and device for generating a pseudorandom data sequence

본 발명은 암호화/복호화 분야에 관한 것으로, 보다 상세하게는 의사랜덤 데이터 시퀀스를 발생하는 시스템 및 방법에 관한 것이다.The present invention relates to the field of encryption / decryption, and more particularly, to a system and method for generating a pseudorandom data sequence.

본 발명은 암호화/복호화에 동일한 비밀 키가 사용되는 경우의 암호화 처리인 대칭 암호화를 위한 일련의 비트들을 생성하는 데에 매우 유용하게 적용된다. 본 발명은 메시지를 한 비트씩 동일한 길이를 갖는 의사랜덤 데이터 시퀀스에 더하는 제1 방법, 및 암호화 동작 및 복호화 동작이 동일한 제2 방법에 관한 것이다. 대칭 암호화는 이동 통신(GSM, UMTS 등), 인터넷(SSL 등), 마이크로칩 카드(은행 카드) 등과 같은 모든 형태의 통신에 일반적으로 이용된다.The present invention is very usefully applied to generating a series of bits for symmetric encryption, which is an encryption process when the same secret key is used for encryption / decryption. The present invention relates to a first method of adding a message to a pseudorandom data sequence having the same length, bit by bit, and a second method having the same encryption and decryption operations. Symmetric encryption is commonly used for all forms of communication, such as mobile communications (GSM, UMTS, etc.), the Internet (SSL, etc.), microchip cards (bank cards), and the like.

가장 기본적인 대칭 암호화 기술은 평문 메시지를 동일한 길이를 갖는 일련의 랜덤값에 한 비트씩 부가하는 흐름 암호화로 알려져 있다. 이러한 기술은 긴 의사랜덤 시리즈를 발생시키는 본질이고도 까다로운 문제를 야기시킨다.The most basic symmetric encryption technique is known as flow encryption, which adds a plain text message one bit to a series of random values of equal length. This technique introduces the inherent and difficult problem of generating a long pseudorandom series.

가장 일반적인 흐름 암호화 방법으로 하드웨어를 효율적으로 이용하기 위해 선형 피드백 쉬프트 레지스터(linear feedback shift register)를 이용하여, 암호화될 메시지와 관계없이 발생한 의사랜덤 시리즈를 이용한다.The most common flow encryption method utilizes a pseudo-random series that occurs regardless of the message to be encrypted, using a linear feedback shift register to efficiently use the hardware.

선형 피드백 쉬프트 레지스터의 주요 결점은 상기 레지스터가 선형적이라는데에 있다. 사실상, 상기 레지스터와 동일한 길이의 레지스터의 다수의 출력 비트 및 관련 피드백 다항식을 알고 있으면, 상기 레지스터의 출력 비트 및 모든 후속 상태들을 결정할 수 있다.The main drawback of linear feedback shift registers is that they are linear. In fact, knowing the number of output bits and associated feedback polynomials of a register of the same length as the register, one can determine the output bits of the register and all subsequent states.

그래서, 선형 피드백 쉬프트 레지스터의 선형성을 깨뜨리기 위해, 예를 들면 비선형 부울(Boolean) 함수를 이용하여 다수의 레지스터로부터의 출력들과 가능한 상기 레지스터의 내부 상태를 결합시키는 것이 표준 절차이다.Thus, to break the linearity of a linear feedback shift register, it is a standard procedure to combine possible outputs from multiple registers with possible internal states of the register, for example using a nonlinear Boolean function.

도 5에는 EP 출원 EP 0 619 659에 기재된 수축 발생기(shrinking generator)로 알려진 종류의 발생기(121)가 도시되어 있다. 상기 발생기(121)는 선형 피드백 쉬프트 레지스터인 제1 레지스터(123a), 제2 레지스터(123b), 및 상기 발생기(121)의 출력 선택 수단(125)을 포함한다.In figure 5 a generator 121 of the type known as the shrinking generator described in EP application EP 0 619 659 is shown. The generator 121 includes a first register 123a which is a linear feedback shift register, a second register 123b, and an output selecting means 125 of the generator 121.

2개의 레지스터(123a 및 123b)는 동시에 쉬프트되고, 제1 레지스터(123a)의 출력이 "1"인 경우, 상기 발생기(121)의 출력은 제2 레지스터(123b)의 출력과 동일하다. 그렇지 않으면, 어떤 비트도 출력되지 않는다.When the two registers 123a and 123b are shifted at the same time and the output of the first register 123a is "1", the output of the generator 121 is the same as the output of the second register 123b. Otherwise, no bit is output.

상기 수축 발생기는 2개의 선형 피드백 쉬프트 레지스터의 출력뿐만 아니라 일반적인 비트 시리즈 쌍을 결합할 수 있게 한다. 상기 수축 발생기는 하나의 선형 피드백 쉬프트 레지스터가 다른 선형 피드백 쉬프트 레지스터를 제어하는 스트림(stream) 암호화 시스템의 종류에 속한다. 상기 개념은 사용된 다양한 레지스터들간의 쉬프트 수와 2개의 연속 비트들 간의 쉬프트 수를 변화시킴으로써 상기 레지스터들의 선형성을 파괴하는 것이다.The shrink generator allows the combination of conventional bit series pairs as well as the output of two linear feedback shift registers. The shrink generator is a type of stream encryption system in which one linear feedback shift register controls another linear feedback shift register. The concept is to break the linearity of the registers by varying the number of shifts between the various registers used and the number of shifts between two consecutive bits.

자체-수축 발생기라고 알려진 수축 발생기의 변형은 동일한 원리에 기초하지만 하나의 레지스터만을 이용한다. 상기 레지스터의 출력 비트들은 2개씩 읽혀지고 제1 비트는 상기 제2 비트의 출력을 제어하여, 제1 비트가 "1"인 경우 상기 시스템의 출력은 상기 제2 비트가 되고, 그렇지 않은 경우 어떤 비트도 출력되지 않게 된다.A variant of the shrink generator, known as a self-shrink generator, is based on the same principle but uses only one register. The output bits of the register are read two by one and the first bit controls the output of the second bit such that if the first bit is "1" the output of the system is the second bit, otherwise any bit Will not be output.

선형 피드백 레지스터만을 이용하는 것은 많은 단점을 가지고 있다. 주요 단점은 상기 장치의 선형성에 기인하는 취약성이다. 레지스터가 부울 함수에 의해 결합되는 경우에도 역시 단점이 있다. 하드웨어 레벨에서, 상기 단점들은 상기 함수를 구현하기 위한 복잡도에 기인한다. 또한, 상기 함수는 고정되어 있고 외부 공격에 취약하다.Using only linear feedback registers has many disadvantages. The main disadvantage is the vulnerability due to the linearity of the device. There are also disadvantages when registers are combined by Boolean functions. At the hardware level, the drawbacks are due to the complexity for implementing the function. In addition, the function is fixed and vulnerable to external attacks.

또한, 의사랜덤 시리즈 발생기에 사용된 쉬프트 레지스터의 피드백이 규칙적이거나 또한 용이하게 예측되는 경우, 상기 발생기는 대수학적 공격에 취약하다.In addition, if the feedback of the shift register used in the pseudorandom series generator is regularly or easily predicted, the generator is vulnerable to algebraic attack.

또한, 통계에 의하면 상기 수축 발생기의 확실한 취약성을 알 수 있다. 특히, 상기 수축 발생기에서 2개의 출력 비트 사이의 2개의 레지스터에 의해 수행되는 쉬프트 수는 변하지만, 상기 2개 레지스터에 대하여는 동일한 값을 가진다.In addition, the statistics reveal a certain vulnerability of the shrinkage generator. In particular, the number of shifts performed by the two registers between the two output bits in the shrink generator varies but has the same value for the two registers.

본 발명은 초기 데이터 흐름으로부터 의사랜덤 데이터 시퀀스를 발생하는 방법에 있어서,The present invention provides a method for generating a pseudorandom data sequence from an initial data flow.

·완전 접두 코드를 형성하는 코드 워드 세트를 정의하는 단계;Defining a set of code words forming a complete prefix code;

·출력 워드 세트를 정의하는 단계;Defining an output word set;

·상기 출력 워드 세트로부터의 출력 워드를 상기 완전 접두 코드의 코드 워드와 결합시키는 비동기 함수를 정의하는 단계;Defining an asynchronous function that combines an output word from the set of output words with a code word of the complete prefix code;

·상기 초기 데이터 흐름을 상기 완전 접두 코드에 따라 코드화된 일련의 워드로 분해하는 단계; 및Decomposing the initial data flow into a series of words coded according to the complete prefix code; And

·상기 코드화된 일련의 워드를 상기 비동기 함수에 따라 대응하는 출력 워드와 결합시켜 의사랜덤 데이터 시퀀스를 형성하는 단계;Combining the coded series of words with a corresponding output word according to the asynchronous function to form a pseudorandom data sequence;

를 포함하는 것을 특징으로 하는 방법을 제공한다.It provides a method comprising a.

그래서, 완전 접두 코드들은 상기 초기 데이터 흐름이 특별한 방식으로 분해될 수 있도록 하며, 또한 유한 자동 기계에 의해 용이하게 실행될 수 있다. 또한, 상기 방법은 단순하게 실행되며, 초기 데이터 흐름 비동기 함수를 이용하여 의사랜덤 데이터 시퀀스를 발생시킨다. 사실, 완전 접두 코드 및 "비동기 성분"의 사용은 보장된 최소 개수의 비트를 생성함과 함께 대수학적 공격을 방지하거나 상기 대수학적 공격을 실질적으로 무력화한다. 이와는 대조로, 비록 수축 발생기가 의사랜덤 시리즈 발생기에서 비동기화 성분으로 이용되더라도, 최소 보장 비율은 실질적으로 0이다.Thus, full prefix codes allow the initial data flow to be decomposed in a special way and can also be easily executed by a finite automatic machine. In addition, the method is simple to implement, generating a pseudorandom data sequence using an initial data flow asynchronous function. In fact, the use of full prefix codes and "asynchronous components" prevents algebraic attacks or substantially neutralizes algebraic attacks with the guaranteed minimum number of bits. In contrast, even if the shrink generator is used as an asynchronous component in the pseudorandom series generator, the minimum guaranteed ratio is substantially zero.

바람직하게는, 상기 비동기 함수는 기설정된 파라미터에 따른 파라미터화된 함수이며, 상기 파라미터 값은 상기 의사랜덤 데이터 시퀀스의 발생 중에 변경될 수 있다.Preferably, the asynchronous function is a parameterized function according to a predetermined parameter, and the parameter value can be changed during generation of the pseudorandom data sequence.

변경가능한 초기화 파라미터에 따른 비동기화가 상기 초기 데이터 흐름과 상기 의사랜덤 데이터 시퀀스 사이의 관계의 복잡도를 증가시킨다는 사실은 상기 의사랜덤 데이터 시퀀스를 예측하기 더욱 어렵게 만든다.The fact that asynchronous with changeable initialization parameters increases the complexity of the relationship between the initial data flow and the pseudorandom data sequence makes the pseudorandom data sequence more difficult to predict.

본 발명의 특징에 의하면, 상기 출력 워드 세트는 모든 출력 워드에 대한 보수 출력 워드를 포함한다.In accordance with a feature of the invention, the output word set includes a complement output word for every output word.

예를 들면, 주어진 출력 워드 길이에 있어서, 이것은 상기 출력 워드 세트에서 "0" 과 "1"의 갯수의 균형이 잡히게 한다.For example, for a given output word length, this allows the number of "0" and "1" to be balanced in the output word set.

상기 완전 접두 코드의 코드 워드들은 상한치 h로 제한된 길이를 갖는 것이 바람직하다. 그래서, 하나의 출력 워드 x가 다른 출력 워드 y와 동일한 길이를 갖는 경우에 출력 워드 x의 상기 비동기 함수에 의한 전항의 수는 출력 워드 y의 비동기 함수에 의한 전항의 수와 동일하다.The code words of the full prefix code preferably have a length limited to the upper limit h. Thus, when one output word x has the same length as another output word y, the number of preceding terms by the asynchronous function of output word x is equal to the number of preceding terms by the asynchronous function of output word y.

이것은 상기 의사랜덤 데이터 시퀀스가 우수한 통계적 특징을 갖게 하면서 상기 초기 데이터 흐름에 의존하지 않는 최소 비율을 보장한다. 특히, 이것은 발생한 의사랜덤 데이터 시퀀스의 해밍 웨이트가 상기 초기 데이터 흐름에 관한 정보를 제공하지 않게 한다. 다시 말해, 상기 출력 시퀀스에서 값 "0"을 갖는 비트들과 값 "1"을 갖는 비트들은 상기 초기 데이터 시퀀스에 대한 동일량의 정보를 포함한다.This ensures that the pseudorandom data sequence has good statistical characteristics while ensuring a minimum ratio that does not depend on the initial data flow. In particular, this prevents the hamming weights of the generated pseudorandom data sequences from providing information about the initial data flow. In other words, bits with a value of "0" and bits with a value of "1" in the output sequence include the same amount of information for the initial data sequence.

상기 완전 접두 코드의 코드 워드들은 하한치 m으로 제한된 길이를 갖는 것이 바람직하며, 또한 상위 길이를 ℓ로 하여 상위 길이 ℓ이하의 길이 k에 대하여 상기 완전 접두 코드가 길이 k의 2m-1개의 워드를 포함하도록 하는 것이 바람직하다.Preferably, the code words of the full prefix code have a length limited to the lower limit m, and for the length k less than or equal to the upper length ℓ with the upper length as ℓ, the complete prefix code reads 2 m-1 words of length k. It is desirable to include.

이것은 또한 상기 의사랜덤 데이터 시퀀스의 확률 분포를 최적화함으로써 상기의 통계적 특징을 더욱 향상시킨다.It also further improves the statistical feature by optimizing the probability distribution of the pseudorandom data sequence.

상기 방법의 제1 실시예는The first embodiment of the method

* 완전 접두 코드는 다음의 코드 워드 세트에 의해 정의되고;A complete prefix code is defined by the following set of code words;

C1={01nO;0≤n≤h-2}∪{10n1;0≤n≤h-2}∪{01h-1}∪{10h-1} (여기서 h≥2)C 1 = {01 n O; 0≤n≤h-2} ∪ {10 n 1; 0≤n≤h-2} ∪ {01 h-1 } ∪ {10 h-1 }, where h≥2

* 출력 워드 세트는 이진수 세트 E1 = {0, 1}의 워드에 의해 정의되며;* Output word set is binary set E 1 Defined by a word of {0, 1};

* 파라미터화된 비동기 함수의 기설정된 파라미터 u는 세트 {0,1}에 속하는 성분을 갖는 벡터 u = (u0,..., uh -1)이고;The predetermined parameter u of the parameterized asynchronous function is a vector u = (u 0 , ..., u h -1 ) with components belonging to the set {0,1};

* 파라미터화된 비동기 함수 fu는 다음 방법인* The parameterized asynchronous function f u is

·fu(01n0) = un (0≤n≤h-2);F u (01 n 0) = u n (0 ≦ n ≦ h-2);

·fu(10n1) = un

Figure 112007090854175-PCT00001
1 (0≤n≤h-2);F u (10 n 1) = u n
Figure 112007090854175-PCT00001
1 (0 ≦ n ≦ h-2);

·fu(01h-1) = uh -1 ; · F u (01 h-1 ) = u h -1;

·fu(10h-1) = uh -1

Figure 112007090854175-PCT00002
1F u (10 h-1 ) = u h -1
Figure 112007090854175-PCT00002
One

로 정의되는 것을 특징으로 한다.It is characterized by.

상기 실시예는 상대적으로 저렴한 비용으로 실행되며 또한 하드웨어 방식 암호화를 제공하는데 사용될 수 있다. 또한, 출력 비트 수(즉, 상기 의사랜덤 데이터 시퀀스의 비트 수)와 입력 비트 수(상기 초기 데이터 흐름의 비트 수) 사이의 비율은 1/3 보다 매우 크며, 또한 길이 h의 입력에 대한 보장된 최소 출력 비트 수가 1이다.This embodiment is implemented at a relatively low cost and can also be used to provide hardware based encryption. In addition, the ratio between the number of output bits (i.e., the number of bits of the pseudorandom data sequence) and the number of input bits (number of bits of the initial data flow) is much greater than 1/3, and also guaranteed for an input of length h The minimum number of output bits is one.

상기 방법의 다른 실시예는,Another embodiment of the method is

* 완전 접두 코드는 2 바이트로 이루어진 코드 워드 세트A full prefix code is a set of code words consisting of two bytes

C2 = {w1w2;wi∈{0,1}8, i=1,2} 에 의해 정의되고; C 2 = {w 1 w 2 ; w i ∈ {0,1} 8 , i = 1,2};

* 출력 워드 세트는 세트 E2 ={0,1}8∪{ε} 의 워드에 의해 정의되며;Output word set is set E 2 Defined by the word = {0,1} 8 ∪ {ε};

* 파라미터화된 비동기 함수의 기설정된 파라미터 v는 세트 {0,1}에 속하는 성분을 갖는 벡터 v=(v0,...,v8,

Figure 112007090854175-PCT00003
9)이고, 처음 8개의 성분 v0,...,v8 의 값들이 불변이고 최종 성분
Figure 112007090854175-PCT00004
9의 값은 가변적이며;The predetermined parameter v of the parameterized asynchronous function is a vector v = (v 0 , ..., v 8 , with components belonging to the set {0,1}
Figure 112007090854175-PCT00003
9 ), the values of the first eight components v 0 , ..., v 8 are immutable and the final component
Figure 112007090854175-PCT00004
The value of 9 is variable;

* 파라미터화된 비동기 함수 fv : C2 → {ε}∪{0,1}8 는 다음 형식의 w1w2 워드와 결합한다: 즉,* Parameterized asynchronous function f v : C 2 → {ε} ∪ {0,1} 8 combines with w 1 w 2 words of the form:

* 다음의 조건 중 하나가 만족되면 워드 w1과 결합하고,* Combine with word w 1 if one of the following conditions is met:

ㆍ 4 < wt(w1

Figure 112007090854175-PCT00005
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00006
w2 ) = b;4 <wt (w 1
Figure 112007090854175-PCT00005
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00006
w2 ) = b;

(여기서 wt는 해밍 웨이트, b는 {0,1}의 기설정 요소)Where wt is the Hamming weight and b is the preset element of {0,1}

ㆍ 0 ≤ wt(w1

Figure 112007090854175-PCT00007
w2) < 4 및 vwt ( w1
Figure 112007090854175-PCT00008
w2 )≠b;0 ≦ wt (w 1
Figure 112007090854175-PCT00007
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00008
w2 ) ≠ b;

ㆍ wt(w1

Figure 112007090854175-PCT00009
w2) = 4,
Figure 112007090854175-PCT00010
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00011
w2
Figure 112007090854175-PCT00012
e)≤8, 및 v4 = b;Wt (w 1
Figure 112007090854175-PCT00009
w 2 ) = 4,
Figure 112007090854175-PCT00010
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00011
w 2
Figure 112007090854175-PCT00012
e) ≤ 8, and v 4 = b;

(여기서 e는 {0,1}8의 홀수 해밍 웨이트 워드)(Where e is an odd hamming weight word of {0,1} 8 )

ㆍ wt(w1

Figure 112007090854175-PCT00013
w2) = 4,
Figure 112007090854175-PCT00014
9=1, 0 ≤ wt(w1
Figure 112007090854175-PCT00015
w2
Figure 112007090854175-PCT00016
e)< 4 및 v4 ≠ b;Wt (w 1
Figure 112007090854175-PCT00013
w 2 ) = 4,
Figure 112007090854175-PCT00014
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00015
w 2
Figure 112007090854175-PCT00016
e) <4 and v 4 ≠ b;

* 다음의 조건 중 하나가 만족되면 워드 w2과 결합하며,* Combines with word w 2 if one of the following conditions is met:

ㆍ 4 < wt(w1

Figure 112007090854175-PCT00017
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00018
w2 ) ≠ b;4 <wt (w 1
Figure 112007090854175-PCT00017
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00018
w2 ) ≠ b;

ㆍ 0 ≤ wt(w1

Figure 112007090854175-PCT00019
w2)< 4 및 vwt ( w1
Figure 112007090854175-PCT00020
w2 ) = b;0 ≦ wt (w 1
Figure 112007090854175-PCT00019
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00020
w2 ) = b;

ㆍ wt(w1

Figure 112007090854175-PCT00021
w2) = 4,
Figure 112007090854175-PCT00022
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00023
w2
Figure 112007090854175-PCT00024
e)≤ 8 및 v4≠b;Wt (w 1
Figure 112007090854175-PCT00021
w 2 ) = 4,
Figure 112007090854175-PCT00022
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00023
w 2
Figure 112007090854175-PCT00024
e) ≤ 8 and v 4 ≠ b;

ㆍ wt(w1

Figure 112007090854175-PCT00025
w2) = 4,
Figure 112007090854175-PCT00026
9= 1, 0 ≤ wt(w1
Figure 112007090854175-PCT00027
w2
Figure 112007090854175-PCT00028
e)< 4 및 v4 = b;Wt (w 1
Figure 112007090854175-PCT00025
w 2 ) = 4,
Figure 112007090854175-PCT00026
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00027
w 2
Figure 112007090854175-PCT00028
e) <4 and v 4 = b;

* wt(w1

Figure 112007090854175-PCT00029
w2)= 4이고
Figure 112007090854175-PCT00030
9= 0 인 경우 빈 워드 ε와 결합하는 것을 특징으로 한다.* wt (w 1
Figure 112007090854175-PCT00029
w 2 ) = 4
Figure 112007090854175-PCT00030
When 9 = 0, it is characterized by combining with the empty word ε.

바람직하게는, 상기 실행 방법은 소프트웨어 방식의 암호화에 이용될 수 있다. 또한, 출력 비트 수와 입력 비트 수 사이의 비율은 1/3 보다 매우 크고, h 길이 비트의 입력에 대한 보장된 최소 출력 비트 수가 1이다.Preferably, the method of execution may be used for software type encryption. In addition, the ratio between the number of output bits and the number of input bits is much greater than 1/3, and the guaranteed minimum number of output bits for an input of h length bits is one.

본 발명은 또한 초기 데이터 흐름으로부터 의사랜덤 데이터 시퀀스를 발생시키는 발생기에 있어서, 완전 접두 코드를 형성하는 코드 워드 세트 및 출력 워드 세트를 저장하는 메모리; 및 초기 데이터 흐름을 읽어내고, 상기 접두 코드 워드에 따라 코드화된 일련의 워드로 분해하며, 비동기 함수에 따라 상기 일련의 워드를 대응하는 출력 워드와 결합시켜, 의사랜덤 데이터 시퀀스를 발생시키는 처리 유닛을 포함하는 발생기를 제공한다.The present invention also provides a generator for generating a pseudorandom data sequence from an initial data flow, comprising: a memory storing a code word set and an output word set forming a complete prefix code; And a processing unit that reads an initial data flow, decomposes it into a series of words coded according to the prefix code word, and combines the series of words with corresponding output words according to an asynchronous function to generate a pseudorandom data sequence. It provides a generator that includes.

그래서, 상기 발생기는 상기 초기 데이터 흐름에 의존하지 않는 최소 비율을 갖는 의사랜덤 데이터 시퀀스를 발생한다. 또한, 상기 발생기는 효율적이고 상대적으로 저가일 뿐만 아니라 실행하기 용이하다.Thus, the generator generates a pseudorandom data sequence with a minimum ratio that does not depend on the initial data flow. In addition, the generator is not only efficient and relatively inexpensive, but also easy to implement.

상기 발생기는 상기 비동기 함수가 기설정된 파라미터에 의존하도록 만들고, 의사랜덤 데이터 시퀀스의 발생 중에 상기 기설정된 파라미터의 값을 변경시키는 파라미터 설정 수단을 더 포함한다.The generator further comprises parameter setting means for causing the asynchronous function to depend on a predetermined parameter and to change the value of the predetermined parameter during generation of a pseudorandom data sequence.

그래서, 상기 초기화 파라미터 값이나 이의 변경 시점을 알 수 없으므로, 상기 의사랜덤 데이터 시퀀스를 예측하기가 더욱 어렵게 된다.Thus, since the initialization parameter value or its change point is unknown, it becomes more difficult to predict the pseudorandom data sequence.

본 발명은 또한 배타적-OR 논리 게이트 및 상기 특징을 갖는 발생기를 포함하는 것을 특징으로 하는 암호화/복호화 장치를 제공한다.The present invention also provides an encryption / decryption apparatus comprising an exclusive-OR logic gate and a generator having the above characteristics.

상기 장치는 상기 의사랜덤 데이터 시퀀스의 각 비트를 모듈로 2 덧셈 (modulo 2 addition)에 의해 암호화될 메시지의 데이터 시퀀스의 대응 비트와 결합하여 선형 복잡도가 큰 암호화된 데이터 시퀀스를 형성하는 간결한 방법을 제공한다.The apparatus provides a concise method of combining each bit of the pseudorandom data sequence with a corresponding bit of the data sequence of the message to be encrypted by modulo 2 addition to form an encrypted data sequence with high linear complexity. do.

본 발명은 또한 통신망을 통하여 상호 연결되는 적어도 2개의 객체를 포함하며, 각각의 객체들은 상기 특징을 갖는 암호화/복호화 장치를 구비하는 보안 시스템을 제공한다.The invention also provides a security system comprising at least two objects interconnected via a communication network, each object having an encryption / decryption device having the above characteristics.

그래서, 상기 보안 시스템은 실제로는 복잡한 메카니즘을 가지면서도 실행하기에는 단순한 구조를 갖는다.Thus, the security system actually has a complex mechanism but a simple structure to implement.

도 1은 본 발명에 따른 의사랜덤 데이터 시퀀스를 발생하는 방법을 설명하는 개략도이다.1 is a schematic diagram illustrating a method for generating a pseudorandom data sequence in accordance with the present invention.

도 2A 및 도 2B는 본 발명에 따른 초기 데이터 흐름을 코드화된 일련의 워드로 분해시키기 위한 유한 자동 기계의 예들을 나타낸 도면이다.2A and 2B show examples of a finite automatic machine for decomposing an initial data flow into a coded series of words according to the present invention.

도 3A 및 도 3B는 본 발명에 따른 의사랜덤 데이터 시퀀스 발생기의 예들을 나타낸 도면이다.3A and 3B illustrate examples of a pseudorandom data sequence generator in accordance with the present invention.

도 4는 도 3A 또는 도 3B에 도시된 발생기를 구비한 보안 시스템을 나타낸 도면이다.4 illustrates a security system with the generator shown in FIG. 3A or 3B.

도 5는 종래의 발생기를 나타낸 도면이다.5 is a view showing a conventional generator.

본 발명의 다른 특징과 장점들은 첨부한 도면을 참조하여 이하에서 기술되는 상세한 설명을 통해 더욱 잘 알 수 있을 것이다. 이하의 실시예들은 본 발명의 기술적 사상에 대한 일례로서 본 발명은 이에 국한되지는 않는다.Other features and advantages of the present invention will become more apparent from the following detailed description with reference to the accompanying drawings. The following embodiments are examples of the technical idea of the present invention, and the present invention is not limited thereto.

도 1은 본 발명에 따른 초기 데이터 흐름(3)으로부터 의사랜덤 데이터 시퀀스(1)를 발생하는 방법의 개략적인 예를 도시한다.1 shows a schematic example of a method for generating a pseudorandom data sequence 1 from an initial data flow 3 according to the invention.

이하에서 용어 "워드" (또는 "패턴")는 임의의 알파벳(예를 들면 0 과 1 만으로 구성되는 이진수 세트의 알파벳)으로부터의 임의의 유한한 일련의 문자를 가리킨다. 각 워드는 주어진 길이를 갖게 된다. 예를 들면, 0, 11, 000, 1010, 00111은 각각 길이 1, 2, 3, 4, 및 5를 갖는 워드들이다. 또한, "빈" 워드 ε는 0의 길 이를 갖는 워드(즉, 어떤 문자도 포함하지 않는 워드)이다.The term "word" (or "pattern") hereinafter refers to any finite series of characters from any alphabet (e.g., the alphabet of a binary set consisting of only zeros and ones). Each word will have a given length. For example, 0, 11, 000, 1010, 00111 are words having lengths 1, 2, 3, 4, and 5, respectively. Also, the word " empty " epsilon is a word having a length of zero (i.e., a word containing no characters).

상기 초기 데이터 흐름(3)은 고 "선형 복잡도"의 데이터 시퀀스에 대응한다. 예를 들면, 상기 초기 데이터 흐름(3)은 최대 주기 선형 피드백 쉬프트 레지스터를 갖는 초기 생성 수단(23)(도 3A)에 의해 발생될 수 있다.The initial data flow 3 corresponds to a high "linear complexity" data sequence. For example, the initial data flow 3 can be generated by an initial generating means 23 (Fig. 3A) having a maximum periodic linear feedback shift register.

사실상, 어떠한 주기 시리즈라도 다수의 선형 피드백 쉬프트 레지스터에 의해 생성될 수 있다. 상기 레지스터 중 하나는 다른 모든 레지스터들보다 짧다. 상기 가장 짧은 레지스터의 길이는 상기 흐름의 "선형 복잡도"라 불린다. 만약 상기 초기 데이터 시퀀스의 선형 복잡도가 L이면, 베리캄프-마세이(Berlekamp-Massey) 알고리즘이 길이 2L을 갖는 상기 초기 데이터 시퀀스의 서브-시리즈로부터 상기 레지스터 (및 사실상 모든 시퀀스)의 초기 상태를 재구성하는데 사용될 수 있다.In fact, any period series can be generated by multiple linear feedback shift registers. One of the registers is shorter than all the other registers. The length of the shortest register is called the "linear complexity" of the flow. If the linear complexity of the initial data sequence is L, the Berlekamp-Massey algorithm reconstructs the initial state of the register (and virtually all sequences) from a sub-series of the initial data sequence having a length of 2L. Can be used.

그래서, 안전한 의사랜덤 데이터 시퀀스를 발생시키기 위하여, 상기 초기 데이터 흐름(3)이 큰 선형 복잡도를 가지는 것이 권장된다. 사실상, 상기 초기 데이터 흐름의 선형 복잡도 L이 160 보다 작은 경우, 현재 가장 잘 알려진 알고리즘은 280 보다 적은 동작으로 상기 초기 데이터 흐름(3)을 재구성할 수 있다. 따라서, 160 이상의 선형 복잡도 L을 갖는 초기 데이터 흐름(3)을 가지는 것이 유리하다.Thus, in order to generate a safe pseudorandom data sequence, it is recommended that the initial data flow 3 has a large linear complexity. In fact, if the linear complexity L of the initial data flow is less than 160, the currently best known algorithm can reconstruct the initial data flow 3 in less than 2 80 operations. Thus, it is advantageous to have an initial data flow 3 with a linear complexity L of 160 or greater.

본 발명에 따르면, 코드 워드 세트(5a)는 "완전 접두 코드"(5)를 형성하도록 정의된다.According to the invention, the code word set 5a is defined to form a "complete prefix code" 5.

일반적으로 용어 "코드"는 특정 알파벳 상의 임의의 워드 세트를 가리킨다. 그래서 코드의 특징은 해당하는 알파벳과 관련하여 고려된다.In general, the term “code” refers to any word set on a particular alphabet. So the features of the code are considered in relation to the corresponding alphabet.

A를 임의의 알파벳이라고 가정하자. 워드는 A로부터의 문자로 구성되고, C가 A 상의 코드를 지정하는 것으로 가정하자. 그러면: Suppose A is an arbitrary alphabet. Suppose a word consists of letters from A, and C designates a code on A. then:

1) y가 w = xy가 되도록 존재하는 경우에 워드 x는 상기 워드 w의 "접두사"라고 불린다. 상기 표기법은 x가 y에 연결된다는 것을 의미한다. 만일 코드 C에서 상기 코드의 다른 워드의 접두사인 코드의 워드가 없다면, C는 "접두 코드"라고 불리고; 1) The word x is called the "prefix" of the word w when y is present such that w = xy. The notation means that x is linked to y. If there is no word of code that is a prefix of another word of the code in code C, then C is called a “prefix code”;

2) 워드 w가 C의 워드들의 결합인 경우, 다시 말해 C에서 상기 워드들 w1, w2, ..., wn에 대하여 w = w1 w2...wn으로 기입될 수 있는 경우, 워드 w는 C에 의해 코드화되는 것으로 불리우며; 또한 어느 워드 w에 있어서 ww'가 C에 의해 코드화되도록 워드 w'가 존재하는 경우, C는 "완전한" 것으로 불린다. u가 워드 ww'의 접두사가 되도록, 어느 워드 w에 대하여 워드 w' 및 C에 속하는 코드 워드 u가 존재하는 경우, 즉 ww'가 uu'와 동일하도록 하는 워드 w', C에 속하는 코드 워드 u, 및 워드 u'가 존재하는 경우, 코드 C가 완전한 것으로 보여질 수 있다. 2) If word w is a combination of words of C, that is to say that w = w 1 w 2 ... w n can be written for the words w 1 , w 2 , ..., w n in C; The word w is called coded by C; Also, if word w 'is present so that ww' is coded by C in any word w, C is called "complete". Code word u belonging to word w ', C, where code word u belonging to word w' and C is present for any word w such that u is prefixed to word ww ', that is, ww' equals uu ' If, and word u 'are present, code C can be seen as complete.

C가 접두 코드임과 아울러 완전 코드인 경우, C는 완전 접두 코드로 일컬어진다.If C is a prefix code and is also complete code, then C is referred to as a complete prefix code.

또한, E가 {0, 1}k과 {ε}의 결합에 포함되도록 E에 의해 지정된 출력 워드(7a)의 세트(7)가 정의된다. 비동기 함수(f)는 출력 워드 세트(7)로부터의 출력 워드(7a)를 완전 접두 코드(5)의 코드 워드(5a)와 결합하도록 규정된다.Also, a set 7 of output words 7a designated by E are defined such that E is included in the combination of {0, 1} k and {ε}. The asynchronous function f is defined to combine the output word 7a from the output word set 7 with the code word 5a of the complete prefix code 5.

예를 들면, 출력 워드 세트(7)는 세트 E = {ε, 0, 1}, 또는 E = {0, 1}, 또 는 E = {ε}와 {0, 1}8k(여기서, k≥1, 즉 비트들의 배수들)의 결합이다. 특히, 주어진 길이의 출력 워드들에 대하여, 출력 워드 세트에서 "0" 과 "1"의 수가 균형을 이루도록 하기 위하여, s로 표시된 출력 워드(7a)에 대해

Figure 112007090854175-PCT00031
로 표시된 보수 출력 워드(7a)를 포함하는 출력 워드 세트(7)를 선택하는 것이 유리하다.For example, output word set 7 may be set E = {ε, 0, 1}, or E = {0, 1}, or E = {ε} and {0, 1} 8k , where k≥ 1, ie multiples of bits). In particular, for output words of a given length, for output word 7a denoted by s, in order to balance the number of "0" and "1" in the output word set,
Figure 112007090854175-PCT00031
It is advantageous to select an output word set 7 comprising a complementary output word 7a, denoted by.

또한, 비동기 함수(f)는 상대적으로 저가로 구현될 수 있는 기본 연산, 예를 들면, 한 비트씩의 모듈로 2 덧셈(bit by bit modulo 2 addition)이다.In addition, the asynchronous function f is a basic operation that can be implemented at a relatively low cost, for example, bit by bit modulo 2 addition.

그래서, 본 발명의 방법은 완전 접두 코드(5) C의 입력으로 출력 워드 세트 E 및 비동기 함수(f)를 취한다.Thus, the method of the present invention takes the output word set E and the asynchronous function f as inputs of the complete prefix code 5 C.

또한, 본 발명에 따른 방법은 상기 초기 데이터 흐름(3)을 상기 완전 접두 코드(5)에 따라 코드화된 일련의 워드(11)로 분해하기 위한 분해 동작(10)을 포함한다. 완전 접두 코드(5)를 사용함으로써 상기 초기 데이터 흐름(3)은 특별한 방식으로 분해된다.The method according to the invention also comprises a decomposition operation 10 for decomposing the initial data flow 3 into a series of words 11 coded according to the complete prefix code 5. By using the full prefix code 5 the initial data flow 3 is decomposed in a special way.

상기 완전 접두 코드(5)는 바람직하게는 유한 자동 기계에 의해 인식될 수 있으며, 워드 w가 주어질 때 워드 w가 상기 완전 접두 코드(5)에 존재하는지 여부를 결정한다.The full prefix code 5 can preferably be recognized by a finite automatic machine and determines whether or not the word w is present in the full prefix code 5 when the word w is given.

사실, 도 2A 및 도 2B는 초기 데이터 흐름(3)을 코드화된 일련의 워드(11)로 분해하기 위한 유한 자동 기계(13a 및 13b)의 예들을 나타낸다. 유한 자동 기계는 경로(17) 또는 화살표로 연결된 노드 또는 상태(15)의 세트를 포함하여, 완전 접두 코드(5)의 모든 워드가 초기 상태(I) 및 최종 상태(F) 사이의 경로(17)에 의해 규 정될 수 있게 한다. 그래서, 비트를 읽는 경우 상기 비트 값에 대응하는 경로(17)가 취해지며, 또한 최종 상태(F)에 도달하는 경우, 상기 완전 접두 코드(5)의 워드를 읽는 것은 바로 종료되고 초기 상태(I)로 복귀하여 다음 워드를 읽을 수 있게 한다.In fact, FIGS. 2A and 2B show examples of finite automatic machines 13a and 13b for decomposing the initial data flow 3 into a coded series of words 11. The finite automatic machine includes a path 17 or a set of nodes or states 15 connected by arrows, so that every word of the complete prefix code 5 is the path 17 between the initial state I and the final state F. Can be defined by Thus, the path 17 corresponding to the bit value is taken when reading the bit, and when the final state F is reached, reading the word of the complete prefix code 5 is immediately terminated and the initial state I Return to) to read the next word.

도 2A의 예는 C = {10*1, 01*0}에 의해 규정된 완전 접두 코드(5)의 코드 워드를 인식하는 것이다(여기서 10*1은 10k1형태의 워드 세트를 지정하고, 01*0은 01k0형태의 워드 세트를 지정하며, k는 정수이다). 1001은 워드 11에 대응하고 0100은 워드 00에 대응하는 것에 주목하여야 한다. 그래서, 상기 유한 자동 기계(13a)는 상기 초기 데이터 흐름(3)을 상기 형식 10...01, 01...10, 11, 및 00의 워드를 포함하는 코드화된 일련의 워드(11)로 분해시킨다. The example of FIG. 2A is to recognize the code words of the full prefix code 5 defined by C = {10 * 1, 01 * 0} (where 10 * 1 specifies a word set of the form 10 k 1, 01 * 0 specifies a word set of the form 01 k 0, where k is an integer). Note that 10 0 1 corresponds to word 11 and 01 0 0 corresponds to word 00. Thus, the finite automatic machine 13a converts the initial data flow 3 into a coded series of words 11 comprising words of the formats 10 ... 01, 01 ... 10, 11, and 00. Decompose

그리고, 도 2B의 예는 코드 C = {10h+1, 01h+1, 10k1, 01k0, k≤h}에 의해 규정된 완전 접두 코드(5)의 상한치 h에 의해 제한된 길이를 갖는 코드 워드를 인식하는 것이다. And, the example of FIG. 2B is a length limited by the upper limit h of the full prefix code 5 defined by the code C = {10 h + 1 , 01 h + 1 , 10 k 1, 01 k 0, k≤h}. Recognize a code word with

또한, 본 발명에 따른 방법은 의사랜덤 데이터 시퀀스(1)를 형성하기 위하여 코드화된 일련의 워드(11)를 비동기 함수(f)에 따라 대응하는 출력 워드(7a)와 결합시키기 위한 결합 동작(20)을 포함한다.In addition, the method according to the invention combines a series of words 11 coded to form a pseudorandom data sequence 1 with a corresponding output word 7a according to an asynchronous function f 20. ).

그래서, 본 발명의 메카니즘의 적용은 일련의 입력, 즉 초기 데이터 흐름(3)을 코스 상의 완전 접두 코드(5)의 일련의 워드(11)로 분해하는 것에 관한 것이다. 완전 접두 코드(5)의 워드가 인식될 때마다, 상기 비동기 함수 f에 의한 상기 워드의 영상은 출력 워드를 생성한다. 초기 데이터 흐름(3) 입력의 최종 비트에 도달하거나 사용자에 의해 정해진 정지 조건이 만족될 때까지, 이러한 메커니즘은 반복된다.Thus, the application of the mechanism of the present invention relates to the decomposition of a series of inputs, i.e. the initial data flow 3, into a series of words 11 of full prefix code 5 on the course. Each time a word of the complete prefix code 5 is recognized, the image of the word by the asynchronous function f produces an output word. This mechanism is repeated until the last bit of the initial data flow 3 input is reached or a stop condition defined by the user is satisfied.

암호화 적용의 맥락에서, 상기 메커니즘(완전 접두 코드, 비동기 함수)의 일부 또는 모든 데이터는 암호화 시스템의 비밀 데이터를 바람직하게 남길 수 있다는 사실을 주목하여야 한다.In the context of encryption application, it should be noted that some or all of the data of the mechanism (complete prefix code, asynchronous function) may preferably leave secret data of the encryption system.

상기 비동기 함수(f)는 의사랜덤 데이터 시퀀스(1)의 발생 중에 변경될 수 있는 값의 기설정된 파라미터에 따른 파라미터화된 함수인 것이 바람직하다. 그리고, 이러한 파라미터화된 함수는 출력 워드의 세트 E로부터의 요소를 길이 m의 이진수 벡터 v, 즉 {0, 1}m의 요소 v 및 완전 접두 코드(5) C의 워드 x와 결합시키는 형태 v, x │→ fv(x)이다.The asynchronous function f is preferably a parameterized function according to a predetermined parameter of a value that can be changed during generation of the pseudorandom data sequence 1. This parameterized function combines the elements from the set E of the output word with the binary vector v of length m, i.e., the element v of {0, 1} m and the word x of the full prefix code (5) C. , x | f v (x).

본 발명의 방법은 입력으로서 초기 데이터 흐름(3) 및 이진수 벡터 v를 받는다. 상기 벡터 v의 선택은 (비선형) 동작을 초기화 벡터에 적용하는 것으로 수행될 수 있다. 물론, 벡터 v는 기설정된 값(예를 들면, v는 무효 벡터)을 가질 수 있다. 벡터 v는 바람직하게는 상기 처리 중에 변경될 수 있기 때문에 의사랜덤 데이터 시퀀스(1)의 발생에 따를 수 있게 된다.The method of the invention takes as input the initial data flow 3 and the binary vector v. The selection of the vector v can be performed by applying a (nonlinear) operation to the initialization vector. Of course, the vector v may have a predetermined value (eg, v is an invalid vector). The vector v can preferably be changed during the processing so that it can follow the occurrence of the pseudorandom data sequence 1.

그래서, 상기 파라미터는 상기 초기 데이터 흐름(3)과 상기 의사랜덤 데이터 시퀀스(1) 사이의 관계의 복잡도를 향상시켜, 의사랜덤 데이터 시퀀스(1)를 예측하 기 더욱 어렵게 만든다.Thus, the parameter improves the complexity of the relationship between the initial data flow 3 and the pseudorandom data sequence 1, making the pseudorandom data sequence 1 more difficult to predict.

또한, 상기 초기 데이터 흐름(3)에 의존하지 않는 최소 비율을 보장하기 위하여, 상기 완전 접두 코드(5)의 코드 워드는 상한치 h에 의해 제한된 길이를 가지는 것이 바람직하다. 그래서, 어느 출력 워드 s1가 다른 출력 워드 s2와 동일한 길이를 갖는 경우, 상기 출력 워드 s1의 비동기 함수(f)에 의한 전항의 수는 다른 출력 워드 s2의 비동기 함수(f)에 의한 전항의 수와 동일하다.In addition, in order to ensure a minimum ratio that does not depend on the initial data flow 3, the code words of the full prefix code 5 preferably have a length limited by an upper limit h. Thus, if one output word s 1 has the same length as another output word s 2 , the number of preceding terms by the asynchronous function f of the output word s 1 is determined by the asynchronous function f of the other output word s 2 . It is equal to the number of the preceding paragraph.

다시 말해, 완전 접두 코드(5)는 다음과 같은 유리한 특징이 있다:In other words, the complete prefix code 5 has the following advantageous features:

* 완전 접두 코드(5) C의 모든 워드들은 정수 h 이하의 길이를 갖고;All words of the complete prefix code 5 C have a length less than or equal to an integer h;

* 세트 E\{ε}로부터의 어느 쌍(s1,s2)에 있어서, 세트 fv -1{s1} 및 fv -1{s2}에서 정수 k의 길이를 갖는 요소의 수는 상호 동일하다.* For any pair (s 1 , s 2 ) from the set E\ {ε}, the number of elements with the length of integer k in sets f v -1 {s 1 } and f v -1 {s 2 } is Mutually identical.

또한, 이것은, 발생된 의사랜덤 데이터 시퀀스(1)의 해밍 웨이트(즉, 값 "1"의 비트 수)가 초기 데이터 흐름(3)에 정보를 제공하지 않도록 보장한다. 다시 말해, 상기 의사랜덤 데이터 시퀀스(1)에서 값 "0"을 갖는 비트들과 값 "1"을 갖는 비트들은 초기 데이터 흐름(3) 상에 동일한 양의 정보를 포함한다.This also ensures that the hamming weight of the generated pseudorandom data sequence 1 (ie, the number of bits of the value "1") does not provide information to the initial data flow 3. In other words, the bits with the value "0" and the bits with the value "1" in the pseudorandom data sequence 1 contain the same amount of information on the initial data flow 3.

완전 접두 코드(5)의 워드는 하한치 m에 의해 제한된 길이를 갖는 것이 바람직하다. 그리고 상기 완전 접두 코드의 워드의 더 큰 길이를 ℓ이라 하고, k를 ℓ이하의 길이라 할 때, 상기 완전 접두 코드가 길이 k의 2m-1개의 워드를 포함하도록 하는 것이 바람직하다. 다시 말해, 결합 함수 fv는 다음의 특징, 즉 상기 완전 접두 코드 C의 모든 워드들이 정수 m 이상의 길이를 가지고 ℓ≥m 일 때, m 이상이고 ℓ이하인 정수 k에 있어서 상기 코드 C\{fv -1(ε)}가 정확히 2m-1개의 길이 k인 워드를 포함하도록 한다.The words of the complete prefix code 5 preferably have a length limited by the lower limit m. When the larger length of the word of the full prefix code is L and k is less than or equal to L, it is preferable that the complete prefix code include 2 m-1 words of length k. In other words, a combining function f v is the code C\ {f v for the following feature, i. -1 (ε)} contains exactly 2 m-1 words of length k.

그래서, 상기 초기 데이터 흐름(3)의 균일 분포를 갖는 상기 평균 비율은 약 1/(m+1)이다. 특히, 상기 의사랜덤 데이터 시퀀스의 주어진 비트에 대하여, 주어진 비트(0 또는 1)가 무엇이든, 상기 코드 워드가 길이 k일 확률은 k에 반비례한다. 상기 확률 분포의 선택은, 의사랜덤 데이터 시퀀스(1)가 만족시켜야 하는 통계적인 특징에 대한 최적 조건이다.Thus, the average ratio with a uniform distribution of the initial data flow 3 is about 1 / (m + 1). In particular, for a given bit of the pseudorandom data sequence, whatever the given bit (0 or 1), the probability that the code word is of length k is inversely proportional to k. The selection of the probability distribution is the optimal condition for the statistical feature that the pseudorandom data sequence 1 must satisfy.

본 발명의 제1 실시예에서, 세트 C1 = {01nO;0≤n≤h-2}∪{10n1;0≤n≤h-2}∪{01h-1}∪{10h-1}(여기에서 ∪는 합집합 연산자를 나타낸다. 그리고, h는 고정된 정수(h≥2)이다.)에 의해 규정된 완전 접두 코드, 및 이진수 세트 E1 = {0, 1}의 워드에 의해 규정된 출력 워드 세트를 고려한다.In a first embodiment of the invention, the set C 1 = {01 n O; 0 ≦ n ≦ h-2} ∪ {10 n 1; 0 ≦ nh- 2} ∪ {01 h-1 } ∪ {10 h-1 } (where ∪ represents the union operator, and h is a fixed integer (h≥2)), and the full prefix code defined by the binary set E 1 = {0, 1} Consider the output word set defined by

또한, 벡터 u = (u0, ..., uh -1)는 그 성분이 상기 세트 {0,1}에 속하도록 규정된다. 상기 파라미터화된 함수 fu는 다음과 같이 규정된다.Further, the vector u = (u 0 , ..., u h -1 ) is defined such that the component belongs to the set {0,1}. The parameterized function f u is defined as follows.

* fu(01n0) = un (0≤n≤h-2);f u (01 n 0) = u n (0≤n≤h-2);

* fu(10n1) = un

Figure 112007090854175-PCT00032
1 (0≤n≤h-2)(
Figure 112007090854175-PCT00033
는 모듈로 2 덧셈);f u (10 n 1) = u n
Figure 112007090854175-PCT00032
1 (0≤n≤h-2) (
Figure 112007090854175-PCT00033
Add modulo 2);

* fu(01h-1) = uh -1 ;f u (01 h-1 ) = u h -1 ;

* fu(10h-1) = uh -1

Figure 112007090854175-PCT00034
1* f u (10 h-1 ) = u h -1
Figure 112007090854175-PCT00034
One

상기 실시예에서, 상기 초기 데이터 흐름(3)은 한 비트씩 읽혀지고, 값 fu(x)는 워드 x의 제1 비트 및 (형태

Figure 112007090854175-PCT00035
bn
Figure 112007090854175-PCT00036
의 워드에 대한) 값 n 또는 (형태
Figure 112007090854175-PCT00037
bh -1의 워드에 대한) 고정된 값 h-1를 알고 있는 코드 C1의 워드 x에 대하여 계산된다.In this embodiment, the initial data flow 3 is read bit by bit, and the value f u (x) is the first bit of the word x and (form
Figure 112007090854175-PCT00035
b n
Figure 112007090854175-PCT00036
Value n or (for word of form)
Figure 112007090854175-PCT00037
is calculated for word x of code C 1 , which knows a fixed value h−1 (for words of b h −1 ).

상기 제1 실시예의 메카니즘을 설명하기 위하여, f'u(b,n) =fu(b

Figure 112007090854175-PCT00038
nb) = b
Figure 112007090854175-PCT00039
un(0≤n≤h-2)로, 그리고, f'u(b,h-1) = fu(b
Figure 112007090854175-PCT00040
h-1) = b
Figure 112007090854175-PCT00041
uh -1로 둔다.
Figure 112007090854175-PCT00042
또한, 플래그(flag)는 값 0으로 초기화되며, 또한 코드 C1의 워드가 인식된 후에만 값 1을 갖는다. 상기 플래그의 값은 각 워드 인식 후에 리셋된다. 각 워드 인식에 대하여, 상기 현재 워드의 제1 비트는 변수 c에 일시적으로 저장되며, 또한 상기 워드의 길이는 변수 "길이"에 업데이트된다. 상기 출력 비트 값은 변수 s에 저장된다.In order to explain the mechanism of the first embodiment, f ' u (b, n) = f u (b
Figure 112007090854175-PCT00038
n b) = b
Figure 112007090854175-PCT00039
u n (0≤n≤h-2), and f ' u (b, h-1) = f u (b
Figure 112007090854175-PCT00040
h-1 ) = b
Figure 112007090854175-PCT00041
Let u h -1 .
Figure 112007090854175-PCT00042
In addition, the flag is initialized to the value 0, and also has the value 1 only after the word of the code C 1 is recognized. The value of the flag is reset after each word recognition. For each word recognition, the first bit of the current word is temporarily stored in variable c, and the length of the word is updated to variable "length". The output bit value is stored in variable s.

그래서, 제1 실시예는 다음 메카니즘을 반복한다: Thus, the first embodiment repeats the following mechanism:

* 플래그 ← 0; 길이 ← 0* Flag ← 0; Length ← 0

* 일련의 초기 데이터 흐름(3) S의 다음 비트 b를 읽음* Read the next bit b of the sequence of initial data flows (3) S

* c ← b* c ← b

* 플래그가 0이고 길이 < h-1 인 동안 아래 단계를 반복:Repeat the steps below while the * flag is 0 and the length <h-1:

· S의 다음 비트 b를 읽음Read next bit b of S

· 만약 b = c 이면 플래그 ← 1, 그렇지 않으면 길이 = 길이 + 1If b = c flag ← 1, otherwise length = length + 1

* c

Figure 112007090854175-PCT00043
u길이를 출력 // c
Figure 112007090854175-PCT00044
u길이 = f'u(c,길이).* c
Figure 112007090854175-PCT00043
output u length // c
Figure 112007090854175-PCT00044
u length = f ' u (c, length).

상기 실시예는 구현하기에 상대적으로 저렴하고, 하드웨어의 전자 회로로 암호화를 구현하는데 사용될 수 있다. 또한, 평균 비율, 즉 출력 비트 수 (상기 의사랜덤 데이터 시퀀스의 비트 수)와 입력 비트 수(상기 초기 데이터 흐름의 비트 수) 사이의 비율은 1/3 보다 매우 크다. 또한, 길이 h의 입력상에서 출력 비트의 보장된 최소 수는 1이다.This embodiment is relatively inexpensive to implement and can be used to implement encryption with electronic circuitry of hardware. Further, the average ratio, i.e., the ratio between the number of output bits (number of bits of the pseudorandom data sequence) and the number of input bits (number of bits of the initial data flow) is much greater than 1/3. In addition, the guaranteed minimum number of output bits on the input of length h is one.

본 발명의 제2 실시예에서, 상기 완전 접두 코드(5)는 다음의 형식 C2 = {w1w2;wi∈{0,1}8, i=1,2}에서 2개 바이트로 구성된 코드 워드 세트 C2에 의해 규정되고, 출력 워드 세트는 상기 세트 E2 ={0,1}8∪{ε}로부터의 워드에 의해 규정된다.In the second embodiment of the present invention, the complete prefix code 5 is two bytes in the following format C 2 = {w 1 w 2 ; w i ∈ {0,1} 8 , i = 1,2} It is defined by the configured code word set C 2 , and the output word set is defined by the words from the set E 2 = {0,1} 8 μs {ε}.

또한, 그 성분이 상기 세트 {0,1}에 속하고 처음 8개의 성분 v0,...,v8의 값들이 불변이며 최종 성분

Figure 112007090854175-PCT00045
9의 값이 변수인 벡터 v=(v0,...,v8,
Figure 112007090854175-PCT00046
9)가 규정된다.In addition, the component belongs to the set {0,1} and the values of the first eight components v 0 , ..., v 8 are immutable and the final component
Figure 112007090854175-PCT00045
A vector whose value of 9 is a variable v = (v 0 , ..., v 8 ,
Figure 112007090854175-PCT00046
9 ) is specified.

또한, 파라미터화된 함수 fv : C2 → {ε}∪{0,1}8 는 다음 형식의 w1w2 중 어느 워드와 결합한다: 즉,In addition, the parameterized function f v : C 2 → {ε} ∪ {0,1} 8 combines with any word of w 1 w 2 of the form:

* 다음의 조건 중 하나가 만족되면 워드 w1과 결합하고,* Combine with word w 1 if one of the following conditions is met:

ㆍ 4 < wt(w1

Figure 112007090854175-PCT00047
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00048
w2 ) = b;4 <wt (w 1
Figure 112007090854175-PCT00047
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00048
w2 ) = b;

(여기서 wt는 해밍 웨이트, b는 {0,1}의 기설정된 요소)Where wt is the Hamming weight and b is the preset element of {0,1}

ㆍ 0 ≤ wt(w1

Figure 112007090854175-PCT00049
w2) < 4 및 vwt ( w1
Figure 112007090854175-PCT00050
w2 )≠b;0 ≦ wt (w 1
Figure 112007090854175-PCT00049
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00050
w2 ) ≠ b;

ㆍ wt(w1

Figure 112007090854175-PCT00051
w2) = 4,
Figure 112007090854175-PCT00052
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00053
w2
Figure 112007090854175-PCT00054
e)≤8, 및 v4 = b;Wt (w 1
Figure 112007090854175-PCT00051
w 2 ) = 4,
Figure 112007090854175-PCT00052
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00053
w 2
Figure 112007090854175-PCT00054
e) ≤ 8, and v 4 = b;

(여기서 e는 {0,1}8의 홀수 해밍 웨이트 워드)(Where e is an odd hamming weight word of {0,1} 8 )

ㆍ wt(w1

Figure 112007090854175-PCT00055
w2) = 4,
Figure 112007090854175-PCT00056
9= 1, 0 ≤ wt(w1
Figure 112007090854175-PCT00057
w2
Figure 112007090854175-PCT00058
e)< 4 및 v4 ≠ b;Wt (w 1
Figure 112007090854175-PCT00055
w 2 ) = 4,
Figure 112007090854175-PCT00056
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00057
w 2
Figure 112007090854175-PCT00058
e) <4 and v 4 ≠ b;

* 다음의 조건 중 하나가 만족되면 워드 w2과 결합하며,* Combines with word w 2 if one of the following conditions is met:

ㆍ 4 < wt(w1

Figure 112007090854175-PCT00059
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00060
w2 ) ≠ b;4 <wt (w 1
Figure 112007090854175-PCT00059
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00060
w2 ) ≠ b;

ㆍ 0 ≤ wt(w1

Figure 112007090854175-PCT00061
w2) < 4 및 vwt ( w1
Figure 112007090854175-PCT00062
w2 ) = b;0 ≦ wt (w 1
Figure 112007090854175-PCT00061
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00062
w2 ) = b;

ㆍ wt(w1

Figure 112007090854175-PCT00063
w2) = 4,
Figure 112007090854175-PCT00064
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00065
w2
Figure 112007090854175-PCT00066
e)≤ 8 및 v4≠b;Wt (w 1
Figure 112007090854175-PCT00063
w 2 ) = 4,
Figure 112007090854175-PCT00064
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00065
w 2
Figure 112007090854175-PCT00066
e) ≤ 8 and v 4 ≠ b;

ㆍ wt(w1

Figure 112007090854175-PCT00067
w2) = 4,
Figure 112007090854175-PCT00068
9= 1, 0 ≤ wt(w1
Figure 112007090854175-PCT00069
w2
Figure 112007090854175-PCT00070
e) < 4 및 v4 = b;Wt (w 1
Figure 112007090854175-PCT00067
w 2 ) = 4,
Figure 112007090854175-PCT00068
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00069
w 2
Figure 112007090854175-PCT00070
e) <4 and v 4 = b;

* wt(w1

Figure 112007090854175-PCT00071
w2)= 4이고
Figure 112007090854175-PCT00072
9= 0 인 경우 빈 워드 ε와 결합된다.* wt (w 1
Figure 112007090854175-PCT00071
w 2 ) = 4
Figure 112007090854175-PCT00072
If 9 = 0 then it is combined with the empty word ε.

상기 제2 실시예의 메커니즘을 설명하기 위하여, h≥1로 설정되고, 플래그는 값 0으로 초기화되며, 코드 C2의 워드가 인식된 후에만 값 1을 갖게 된다. 각 워드 인식에 대하여, 상기 읽혀진 최종 바이트는 변수 c에 일시적으로 저장되고, 상기 워드의 길이는 변수 "길이"에 업데이트된다. 상기 출력 비트 값은 상기 변수 s에 저장된다. 두개 바이트 w1 및 w2의 연결은 w1│w2로 표시된다.To explain the mechanism of the second embodiment, h≥1 is set, the flag is initialized to the value 0, and has a value 1 only after the word of the code C 2 is recognized. For each word recognition, the last byte read is temporarily stored in variable c, and the length of the word is updated to variable "length". The output bit value is stored in the variable s. Two bytes w 1 And connection of w 2 is represented by w 1 │w 2.

그래서, 제2 실시예는 다음 메카니즘을 반복한다: Thus, the second embodiment repeats the following mechanism:

* 플래그 ← 0; 길이 ← 0* Flag ← 0; Length ← 0

*

Figure 112007090854175-PCT00073
9← 0*
Figure 112007090854175-PCT00073
9 ← 0

* S의 다음 비트 oct를 읽음Read next bit oct of S

* c ← oct* c ← oct

* 플래그가 0인 동안 아래 단계를 반복* Repeat steps below while flag is 0

· S의 다음 비트 oct를 읽음Read next bit oct of S

· s ← fv(c│oct)S ← f v (c│oct)

· 만약 s≠ε이면 플래그 ← 1, 그렇지 않으면:If s ≠ ε flag ← 1, otherwise:

· c ← octC ← oct

· 길이 = 길이 + 1Length = length + 1

· 만약 길이 = h - 3 이면

Figure 112007090854175-PCT00074
9← 1If length = h-3
Figure 112007090854175-PCT00074
9 ← 1

* s를 출력* output s

상기 제2 실시예는 소프트웨어 방식의 암호화 용으로 바람직하게 사용될 수 있다. 또한, 평균 비율, 즉 출력 비트 수와 입력 비트 수 사이의 비율은 1/3 보다 매우 크다. 또한, h 길이 비트의 입력상에서 출력 비트의 보장된 최소 수는 1이다.The second embodiment can be preferably used for software type encryption. Also, the average ratio, that is, the ratio between the number of output bits and the number of input bits, is much larger than 1/3. Also, the guaranteed minimum number of output bits on the input of h length bits is one.

도 3A는 본 발명에 따른 의사랜덤 데이터 시퀀스(1)을 발생하기 위한 발생기(21)의 예를 나타낸 도면이다.3A shows an example of a generator 21 for generating a pseudorandom data sequence 1 according to the invention.

상기 발생기(21)는 상기 초기 데이터 흐름(3)을 발생하는 적어도 하나의 최대 주기 선형 피드백 쉬프트 레지스터를 갖는 초기 생성 수단(23)을 포함한다. 길이 k(여기서, T = 2k-1)를 갖는 모든 워드들 또는 패턴들이 일련의 최대 주기 T에서 적어도 한번 나타난다. 선형 피드백 쉬프트 레지스터는 피드백 다항식이라 불리는 다항식에 의해 표현된 선형 결합을 갖도록 제공된 유한 길이의 비트들의 테이블 (레지스터)이다. 각 쉬프트에, 최고 인덱스를 갖는 비트는 제거되고, 모든 다른 비트들은 하나의 인덱스씩 쉬프트되고, 최저 인덱스를 갖는 비트는 쉬프트 전의 상기 선형 결합의 값을 가지게 된다.The generator 21 comprises initial generating means 23 having at least one maximum periodic linear feedback shift register for generating the initial data flow 3. All words or patterns of length k (where T = 2 k −1) appear at least once in a series of maximum periods T. The linear feedback shift register is a table (register) of finite length bits provided to have a linear combination represented by a polynomial called a feedback polynomial. In each shift, the bit with the highest index is removed, all other bits are shifted by one index, and the bit with the lowest index has the value of the linear combination before the shift.

상기 피드백 다항식은 예를 들면 최대 주기 시리즈를 생성하는 선형 피드백 쉬프트 레지스터에 대응하는 원시 다항식 또는 Q = (x2 + 1)P 형태의 다항식(여기서 P는 원시 다항식)일 수 있다.The feedback polynomial may be, for example, a primitive polynomial corresponding to a linear feedback shift register that produces a maximum period series or a polynomial of the form Q = (x 2 + 1) P, where P is the primitive polynomial.

또한, 상기 발생기(21)는 메모리(25) 및 처리 유닛(27)을 포함한다. 상기 메모리(25)는 완전 접두 코드(5)를 형성하는 코드 워드 세트 및 출력 워드 세트(7)를 저장한다.The generator 21 also includes a memory 25 and a processing unit 27. The memory 25 stores a set of code words and an output word set 7 forming a complete prefix code 5.

처리 유닛(27)은 초기 데이터 흐름(3)을 읽고, 읽혀진 초기 데이터 흐름을 상기 완전 접두 코드(5)에 따라 코드화된 일련의 워드(11)로 분해하며, 또한 상기 코드화된 일련의 워드(11)를 비동기 함수(f)에 따라 대응하는 출력 워드와 결합하 여 의사랜덤 데이터 시퀀스를 발생시킨다. 상기 비동기 함수(f)는 상기 출력 워드 세트(7)로부터의 출력 워드를 상기 완전 접두 코드(5)의 임의의 코드 워드와 결합시킨다.The processing unit 27 reads the initial data flow 3, decomposes the read initial data flow into a series of words 11 coded according to the complete prefix code 5, and also the coded series of words 11. ) Is combined with the corresponding output word according to the asynchronous function f to generate a pseudorandom data sequence. The asynchronous function f combines the output words from the output word set 7 with any code word of the complete prefix code 5.

상기 처리 유닛(27)은 분해 동작(10) 및 결합 동작(20)을 동시에 수행할 수 있다. 그래서, 상기 처리 유닛(27)은 상기 초기 데이터 흐름(3)을 한 비트씩 읽고, 상기 완전 접두 코드(5)의 워드가 발견될 때마다, 상기 처리 유닛(27)은 상기 비동기 함수(9)에 의해 상기 워드의 영상을 계산한다.The processing unit 27 may simultaneously perform the disassembly operation 10 and the coupling operation 20. Thus, the processing unit 27 reads the initial data flow 3 bit by bit, and each time the word of the complete prefix code 5 is found, the processing unit 27 causes the asynchronous function 9 to be executed. The video of the word is calculated by.

따라서, 상기 발생기는 단순하게 구성되고, 분해 수단(메모리(25) 및 처리 유닛(27))및 비동기 수단(메모리(25) 및 처리 유닛(27))을 포함한다. 상기 분해 수단은 상기 입력 초기 데이터 흐름(3)을 특별한 방식으로 분해하며, 상기 비동기 수단은 상기 초기 데이터 흐름(3)에 의존하지 않는 최소 비율을 갖는 의사랜덤 데이터 시퀀스를 발생시킨다.Thus, the generator is simply configured and includes disassembly means (memory 25 and processing unit 27) and asynchronous means (memory 25 and processing unit 27). The decomposing means decomposes the input initial data flow 3 in a special way, and the asynchronous means generates a pseudorandom data sequence having a minimum ratio which does not depend on the initial data flow 3.

도 3B는 본 발명에 따른 의사랜덤 데이터 시퀀스(1)을 발생하기 위한 발생기(21)의 다른 예를 나타낸 도면이다. 도 3B의 발생기는 파라미터 설정 수단(29)을 더 포함한다는 점에서 도 3A의 발생기와 다르다. 상기 파라미터 설정 수단(29)는 기설정된 파라미터에 의존하는 비동기 함수(f)를 만들고, 의사랜덤 데이터 시퀀스(1)의 발생 중 상기 파라미터 값을 변경한다.3B shows another example of a generator 21 for generating a pseudorandom data sequence 1 according to the present invention. The generator of FIG. 3B differs from the generator of FIG. 3A in that it further comprises parameter setting means 29. The parameter setting means 29 makes an asynchronous function f depending on the preset parameter and changes the parameter value during generation of the pseudorandom data sequence 1.

도 4는 인터넷, GSM, UMTS, WiFi, 초 광대역 방식의 통신망(35)을 통하여 상호 연결된 적어도 2개의 객체를 갖는 보안 시스템(30)을 나타낸다.4 shows a security system 30 having at least two objects interconnected via an internet, GSM, UMTS, WiFi, ultra-wideband communication network 35.

도 4는 상기 통신망(35)을 통하여 제2 객체(33b)에 연결된 제1 객체(33a)를 나타낸다.4 shows a first object 33a connected to a second object 33b via the communication network 35.

상기 제1 객체(33a)는 제1 단말기(37a), 제1 암호화/복호화 장치(39a), 및 제1 모뎀(41a)을 포함한다. 상기 제2 객체(33b)는 제2 단말기(37b), 제2 암호화/복호화 장치(39b), 및 제2 모뎀(41b)을 포함한다. 상기 제1 모뎀(41a) 및 상기 제2 모뎀(41b)은 통신망(35)과 인터페이스할 수 있는 장치이다.The first object 33a includes a first terminal 37a, a first encryption / decryption apparatus 39a, and a first modem 41a. The second object 33b includes a second terminal 37b, a second encryption / decryption apparatus 39b, and a second modem 41b. The first modem 41a and the second modem 41b are devices capable of interfacing with the communication network 35.

상기 제1, 2 암호화/복호화 장치(39a 및 39b)는 각각 의사랜덤 데이터 시퀀스(1)를 발생하는 발생기(21) 및 배타적 OR 논리 게이트(43)를 포함한다.The first and second encryption / decryption apparatuses 39a and 39b each include a generator 21 and an exclusive OR logic gate 43 for generating a pseudorandom data sequence 1.

상기 제1, 2 암호화/복호화 장치(39a 및 39b)는 메시지를 한 비트씩 암호화 또는 복호화한다.The first and second encryption / decryption apparatuses 39a and 39b encrypt or decrypt a message bit by bit.

상기 실시예에서, 제1 암호화/복호화 장치(39a)는 암호화 동작을 수행한다. 그래서, 의사랜덤 데이터 시퀀스(1)는 배타적 OR 논리 케이트(43)를 통해, 상기 제1 단말기(37a)에 의해 명확히 보내진 메시지(45)의 대응 위치에 각 비트와 결합된다. 이것은, 상기 제1 모뎀(41a)이 상기 제2 객체(33b)에 보내게 될 암호화된 텍스트(47)를 생성한다. 그래서, 암호화 동작은 의사랜덤 데이터 시퀀스(1)를 한 비트씩 상기 메시지(45)의 텍스트에 부가함으로써 암호화된 텍스트(47)를 얻는다.In the above embodiment, the first encryption / decryption apparatus 39a performs an encryption operation. Thus, the pseudorandom data sequence 1 is coupled with each bit to the corresponding position of the message 45 explicitly sent by the first terminal 37a, via an exclusive OR logic gate 43. This generates encrypted text 47 that the first modem 41a will send to the second object 33b. Thus, the encryption operation obtains the encrypted text 47 by adding the pseudorandom data sequence 1 bit by bit to the text of the message 45.

상기 제2 암호화/복호화 장치(39b)는 상기 제1 객체(33a)로부터 발송된 상기 암호화된 텍스트(47)에 의사랜덤 데이터 시퀀스(1)를 한 비트씩 부가함으로써 복호화 동작을 수행하여 상기 메시지(45)의 텍스트를 명확하게 얻는다. 따라서, 암호화 및 복호화 동작은 동일하다. The second encryption / decryption apparatus 39b performs a decryption operation by adding a pseudorandom data sequence 1 bit by bit to the encrypted text 47 sent from the first object 33a so that the message ( Get the text of 45) clearly. Thus, the encryption and decryption operations are the same.

본 발명에 따른 의사랜덤 데이터 시퀀스 발생 방법, 시스템 및 장치는 암호화/복호화 분야에 적용될 수 있다.The method, system and apparatus for generating pseudorandom data sequences according to the present invention can be applied to the field of encryption / decryption.

Claims (11)

초기 데이터 흐름(3)으로부터 의사랜덤 데이터 시퀀스(1)를 발생시키는 방법에 있어서,In a method for generating a pseudorandom data sequence (1) from an initial data flow (3), ·완전 접두 코드(5)를 형성하는 코드 워드 세트를 정의하는 단계;Defining a set of code words forming a complete prefix code 5; ·출력 워드 세트(7)를 정의하는 단계;Defining an output word set 7; ·상기 출력 워드 세트(7)로부터의 출력 워드를 상기 완전 접두 코드(5)의 코드 워드와 결합시키는 비동기 함수(f)를 정의하는 단계;Defining an asynchronous function (f) for combining the output words from the set of output words (7) with the code words of the complete prefix code (5); ·상기 초기 데이터 흐름(3)을 상기 완전 접두 코드(5)에 따라 코드화된 일련의 워드(11)로 분해하는 단계; 및Decomposing the initial data flow (3) into a series of words (11) coded according to the complete prefix code (5); And ·상기 코드화된 일련의 워드(11)를 상기 비동기 함수(f)에 따라 대응하는 출력 워드와 결합시켜 의사랜덤 데이터 시퀀스(1)를 형성하는 단계;Combining the coded series of words (11) with a corresponding output word according to the asynchronous function (f) to form a pseudorandom data sequence (1); 를 포함하는 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.Pseudo random data sequence generation method comprising a. 제1 항에 있어서, 상기 비동기 함수(f)는 의사랜덤 데이터 시퀀스(1)의 발생 중에 변경될 수 있는 값을 갖는 기설정된 파라미터에 의존하는 파라미터화된 함수인 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.2. The pseudorandom data sequence generation of claim 1, wherein the asynchronous function (f) is a parameterized function that depends on a predetermined parameter having a value that can change during generation of the pseudorandom data sequence (1). Way. 제1 항에 있어서, 상기 출력 워드 세트(7)는 출력 워드마다 보수 출력 워드를 포함하는 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.Method according to claim 1, characterized in that said output word set (7) comprises a complementary output word for each output word. 제1 항 내지 제3 항 중의 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 완전 접두 코드(5)의 코드 워드들은 상한치 h로 제한된 길이를 가지고,The code words of the full prefix code 5 have a length limited by the upper limit h, 하나의 출력 워드 x가 다른 출력 워드 y와 동일한 길이를 갖는 경우에 출력 워드 x의 상기 비동기 함수에 의한 전항의 수는 출력 워드 y의 비동기 함수에 의한 전항의 수와 동일한 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.Pseudorandom data characterized in that when one output word x has the same length as another output word y, the number of preceding terms by the asynchronous function of output word x is equal to the number of preceding terms by the asynchronous function of output word y. How sequence occurs. 제4항에 있어서,The method of claim 4, wherein 상기 완전 접두 코드(5)의 코드 워드들은 하한치 m으로 제한된 길이를 갖고,The code words of the full prefix code 5 have a length limited to the lower limit m, 상기 완전 접두 코드(5)의 코드 워드의 상위 길이를 ℓ이라 하고 상위 길이 ℓ이하의 길이를 k라 할 때, 상기 완전 접두 코드가 길이 k의 2m-1개의 워드를 포함하도록 하는 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.When the upper length of the code word of the full prefix code 5 is l and the length of the lower length l or less is k, the complete prefix code includes 2 m-1 words of length k. How to generate pseudorandom data sequence. 제4 항 또는 제5 항에 있어서,The method according to claim 4 or 5, * 완전 접두 코드(5)는 다음의 코드 워드 세트에 의해 정의되고;The complete prefix code 5 is defined by the following set of code words; C1={01nO;0≤n≤h-2}∪{10n1;0≤n≤h-2}∪{01h-1}∪{10h-1} (여기서 h≥2)C 1 = {01 n O; 0≤n≤h-2} ∪ {10 n 1; 0≤n≤h-2} ∪ {01 h-1 } ∪ {10 h-1 }, where h≥2 * 출력 워드 세트(7)는 이진수 세트 E1 = {0, 1}의 워드에 의해 정의되며;* The output word set (7) is the binary set E 1 Defined by a word of {0, 1}; * 파라미터화된 비동기 함수(f)의 기설정된 파라미터 u는 세트 {0,1}에 속하 는 성분을 갖는 벡터 u = (u0,..., uh -1)이고;The predetermined parameter u of the parameterized asynchronous function f is a vector u = (u 0 , ..., u h -1 ) with components belonging to the set {0,1}; * 파라미터화된 비동기 함수 fu는 다음의The parameterized asynchronous function f u is ·fu(01n0) = un (0≤n≤h-2);F u (01 n 0) = u n (0 ≦ n ≦ h-2); ·fu(10n1) = un
Figure 112007090854175-PCT00075
1 (0≤n≤h-2);
F u (10 n 1) = u n
Figure 112007090854175-PCT00075
1 (0 ≦ n ≦ h-2);
·fu(01h-1) = uh -1 ; · F u (01 h-1 ) = u h -1; ·fu(10h-1) = uh -1
Figure 112007090854175-PCT00076
1 로 정의되는 것;
F u (10 h-1 ) = u h -1
Figure 112007090854175-PCT00076
Defined as 1;
을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.Method of generating a pseudorandom data sequence, characterized in that.
제4 항에 있어서, The method of claim 4, wherein * 완전 접두 코드(5)는 2 바이트로 이루어진 코드 워드 세트* The complete prefix code (5) is a two-byte codeword set C2 = {w1w2;wi∈{0,1}8, i=1,2} 에 의해 정의되고; C 2 = {w 1 w 2 ; w i ∈ {0,1} 8 , i = 1,2}; * 출력 워드 세트(7)는 세트 E2 ={0,1}8∪{ε} 의 워드에 의해 정의되며;The output word set (7) is set E 2 Defined by the word = {0,1} 8 ∪ {ε}; * 파라미터화된 비동기 함수(f)의 기설정된 파라미터 v는 세트 {0,1}에 속하는 성분을 갖는 벡터 v=(v0,...,v8,
Figure 112007090854175-PCT00077
9)이고, 이 때 처음 8개의 성분 v0,...,v8 의 값들은 불변이고 최종 성분
Figure 112007090854175-PCT00078
9의 값은 가변적이며;
* The predetermined parameter v of the parameterized asynchronous function f is a vector v = (v 0 , ..., v 8 , with components belonging to the set {0,1}
Figure 112007090854175-PCT00077
9 ), where the values of the first eight components v 0 , ..., v 8 are immutable and the final component
Figure 112007090854175-PCT00078
The value of 9 is variable;
* 파라미터화된 비동기 함수 fv : C2 → {ε}∪{0,1}8 는 다음 형식의 w1w2 중 어느 워드와 결합한다: 즉,* Parameterized asynchronous function f v : C 2 → {ε} ∪ {0,1} 8 combines with any word of w 1 w 2 of the form: * 다음의 조건 중 하나가 만족되면 워드 w1과 결합하고,* Combine with word w 1 if one of the following conditions is met: ㆍ 4 < wt(w1
Figure 112007090854175-PCT00079
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00080
w2 ) = b;
4 <wt (w 1
Figure 112007090854175-PCT00079
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00080
w2 ) = b;
(여기서 wt는 해밍 웨이트, b는 {0,1}의 기설정된 요소)Where wt is the Hamming weight and b is the preset element of {0,1} ㆍ 0 ≤ wt(w1
Figure 112007090854175-PCT00081
w2) < 4 및 vwt ( w1
Figure 112007090854175-PCT00082
w2 )≠b;
0 ≦ wt (w 1
Figure 112007090854175-PCT00081
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00082
w2 ) ≠ b;
ㆍ wt(w1
Figure 112007090854175-PCT00083
w2) = 4,
Figure 112007090854175-PCT00084
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00085
w2
Figure 112007090854175-PCT00086
e) ≤ 8, 및 v4 = b;
Wt (w 1
Figure 112007090854175-PCT00083
w 2 ) = 4,
Figure 112007090854175-PCT00084
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00085
w 2
Figure 112007090854175-PCT00086
e) ≤ 8, and v 4 = b;
(여기서 e는 {0,1}8의 홀수 해밍 웨이트 워드)(Where e is an odd hamming weight word of {0,1} 8 ) ㆍ wt(w1
Figure 112007090854175-PCT00087
w2) = 4,
Figure 112007090854175-PCT00088
9= 1, 0 ≤ wt(w1
Figure 112007090854175-PCT00089
w2
Figure 112007090854175-PCT00090
e) < 4 및 v4 ≠ b;
Wt (w 1
Figure 112007090854175-PCT00087
w 2 ) = 4,
Figure 112007090854175-PCT00088
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00089
w 2
Figure 112007090854175-PCT00090
e) <4 and v 4 ≠ b;
* 다음의 조건 중 하나가 만족되면 워드 w2과 결합하며,* Combines with word w 2 if one of the following conditions is met: ㆍ 4 < wt(w1
Figure 112007090854175-PCT00091
w2)≤ 8 및 vwt ( w1
Figure 112007090854175-PCT00092
w2 ) ≠ b;
4 <wt (w 1
Figure 112007090854175-PCT00091
w 2 ) ≤ 8 and v wt ( w1
Figure 112007090854175-PCT00092
w2 ) ≠ b;
ㆍ 0 ≤ wt(w1
Figure 112007090854175-PCT00093
w2)< 4 및 vwt ( w1
Figure 112007090854175-PCT00094
w2 ) = b;
0 ≦ wt (w 1
Figure 112007090854175-PCT00093
w 2 ) <4 and v wt ( w1
Figure 112007090854175-PCT00094
w2 ) = b;
ㆍ wt(w1
Figure 112007090854175-PCT00095
w2) = 4,
Figure 112007090854175-PCT00096
9= 1, 4 < wt(w1
Figure 112007090854175-PCT00097
w2
Figure 112007090854175-PCT00098
e)≤ 8 및 v4≠b;
Wt (w 1
Figure 112007090854175-PCT00095
w 2 ) = 4,
Figure 112007090854175-PCT00096
9 = 1, 4 <wt (w 1
Figure 112007090854175-PCT00097
w 2
Figure 112007090854175-PCT00098
e) ≤ 8 and v 4 ≠ b;
ㆍ wt(w1
Figure 112007090854175-PCT00099
w2) = 4,
Figure 112007090854175-PCT00100
9= 1, 0 ≤ wt(w1
Figure 112007090854175-PCT00101
w2
Figure 112007090854175-PCT00102
e)< 4 및 v4 = b;
Wt (w 1
Figure 112007090854175-PCT00099
w 2 ) = 4,
Figure 112007090854175-PCT00100
9 = 1, 0 ≤ wt (w 1
Figure 112007090854175-PCT00101
w 2
Figure 112007090854175-PCT00102
e) <4 and v 4 = b;
* wt(w1
Figure 112007090854175-PCT00103
w2)= 4이고
Figure 112007090854175-PCT00104
9= 0 인 경우에는 빈 워드 ε와 결합하는 것을 특징으로 하는 의사랜덤 데이터 시퀀스 발생 방법.
* wt (w 1
Figure 112007090854175-PCT00103
w 2 ) = 4
Figure 112007090854175-PCT00104
If 9 = 0, the method of generating a pseudorandom data sequence, characterized in that it is combined with the empty word ε.
초기 데이터 흐름(3)으로부터 의사랜덤 데이터 시퀀스(1)를 발생시키는 발생기에 있어서,In a generator for generating a pseudorandom data sequence (1) from an initial data flow (3), 완전 접두 코드(5)를 형성하는 코드 워드 세트 및 출력 워드 세트(7)를 저장하는 메모리; 및A memory for storing a set of code words and an output word set 7 forming a complete prefix code 5; And 초기 데이터 흐름(3)을 읽어서, 상기 완전 접두 코드(5)에 따라 코드화된 일련의 워드(11)로 분해하며, 비동기 함수(f)에 따라 상기 코드화된 일련의 워드(11)를 대응하는 출력 워드와 결합시켜, 의사랜덤 데이터 시퀀스(1)를 발생시키는 처리 유닛(27);Read an initial data flow 3 and decompose it into a series of words 11 coded according to the complete prefix code 5 and corresponding output of the coded series of words 11 according to an asynchronous function f. A processing unit 27, in combination with a word, for generating a pseudorandom data sequence 1; 을 포함하는 것을 특징으로 하는 발생기.Generator comprising a. 제8항에 있어서, 상기 비동기 함수가 기설정된 파라미터에 의존하도록 만들고, 의사랜덤 데이터 시퀀스(1)의 발생 중에 상기 기설정된 파라미터의 값을 변경시키는 파라미터 설정 수단(29)을 더 포함하는 것을 특징으로 하는 발생기.9. The apparatus of claim 8, further comprising parameter setting means (29) for causing said asynchronous function to depend on a predetermined parameter and for changing the value of said predetermined parameter during generation of pseudorandom data sequence (1). Generator. 배타적-OR 논리 게이트(43)를 포함하는 암호화/복호화 장치에 있어서,An encryption / decryption apparatus comprising an exclusive-OR logic gate 43, 제9항 또는 제10항에 따르는 발생기(21)를 더 포함하는 것을 특징으로 하는 암호화/복호화 장치.An encryption / decryption device, further comprising a generator (21) according to claim 9 or 10. 통신망(35)을 통해 상호 연결된 적어도 2개의 객체를 포함하는 보안 시스템 에 있어서,In a security system comprising at least two objects interconnected via a communication network (35), 상기 적어도 2개의 객체 각각은 제10항에 따르는 암호화/복호화 장치(39a, 39b)를 구비하는 것을 특징으로 하는 보안 시스템.A security system, characterized in that each of said at least two objects comprises an encryption / decryption device (39a, 39b) according to claim 10.
KR1020077029543A 2005-05-26 2006-05-23 Method, system and device for generating a pseudorandom data sequence KR20080019631A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0505296 2005-05-26
FR0505296 2005-05-26

Publications (1)

Publication Number Publication Date
KR20080019631A true KR20080019631A (en) 2008-03-04

Family

ID=35241190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077029543A KR20080019631A (en) 2005-05-26 2006-05-23 Method, system and device for generating a pseudorandom data sequence

Country Status (6)

Country Link
EP (1) EP1886436A2 (en)
JP (1) JP2008542805A (en)
KR (1) KR20080019631A (en)
CN (1) CN101208902A (en)
BR (1) BRPI0610323A2 (en)
WO (1) WO2007000549A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731124B2 (en) * 2012-03-28 2014-05-20 Telefonaktiebolaget Lm Ericsson (Publ) Signaling of sequence generator initialization parameters for uplink reference signal generation
DE102013205168A1 (en) * 2013-03-22 2014-09-25 Robert Bosch Gmbh Method for generating a random output bit sequence

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866029A (en) * 1973-09-18 1975-02-11 Prayfel Inc Two level random number generator having a controllable expected value
US20040086117A1 (en) * 2002-06-06 2004-05-06 Petersen Mette Vesterager Methods for improving unpredictability of output of pseudo-random number generators

Also Published As

Publication number Publication date
WO2007000549A3 (en) 2007-04-19
EP1886436A2 (en) 2008-02-13
CN101208902A (en) 2008-06-25
JP2008542805A (en) 2008-11-27
WO2007000549A2 (en) 2007-01-04
BRPI0610323A2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
KR101246490B1 (en) A closed galois field cryptographic system
JP4866389B2 (en) Closed Galois field combination
US5297207A (en) Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data
KR101267109B1 (en) Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
Rahim Combination of the Blowfish and Lempel-Ziv-Welch algorithms for text compression
Dawson et al. The LILI-128 keystream generator
Ruth Simpson et al. LILI keystream generator
Wagner The laws of cryptography with java code
EP1223506B1 (en) Random number generator using compression
US20130129088A1 (en) Method and system for generating unpredictable pseudo-random numbers
Cardell et al. Discrete linear models for the generalized self-shrunken sequences
Klein et al. Integrated encryption in dynamic arithmetic compression
US6049608A (en) Variable length nonlinear feedback shift registers with dynamically allocated taps
Matsumoto et al. Cryptographic Mersenne Twister and Fubuki stream/block cipher
KR20080019631A (en) Method, system and device for generating a pseudorandom data sequence
Mukesh et al. Enhancing AES algorithm with arithmetic coding
Romeo et al. Cryptosystem architectures for very high throughput multimedia encryption: the RPK solution
Cardell et al. Recovering the MSS-sequence via CA
RU2296427C1 (en) Method for stream encoding of discontinuous information
Deepthi et al. Hardware stream cipher based on LFSR and modular division circuit
Klapper On the existence of secure feedback registers
Xu Stream cipher analysis based on FCSRs
Zhu et al. A chaos-based joint compression and encryption scheme using mutated adaptive Huffman tree
KR101084612B1 (en) Generating a Pseudorandom Data Sequence
Massey The ubiquity of Reed-Muller codes

Legal Events

Date Code Title Description
WITB Written withdrawal of application