KR20080019631A - Method, system and device for generating a pseudorandom data sequence - Google Patents
Method, system and device for generating a pseudorandom data sequence Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom 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
Description
본 발명은 암호화/복호화 분야에 관한 것으로, 보다 상세하게는 의사랜덤 데이터 시퀀스를 발생하는 시스템 및 방법에 관한 것이다.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
2개의 레지스터(123a 및 123b)는 동시에 쉬프트되고, 제1 레지스터(123a)의 출력이 "1"인 경우, 상기 발생기(121)의 출력은 제2 레지스터(123b)의 출력과 동일하다. 그렇지 않으면, 어떤 비트도 출력되지 않는다.When the two
상기 수축 발생기는 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 1 (0≤n≤h-2);F u (10 n 1) = u n 1 (0 ≦ n ≦ h-2);
·fu(01h-1) = uh -1 ; · F u (01 h-1 ) = u h -1;
·fu(10h-1) = uh -1 1F u (10 h-1 ) = u h -1 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, 9)이고, 처음 8개의 성분 v0,...,v8 의 값들이 불변이고 최종 성분 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} 9 ), the values of the first eight components v 0 , ..., v 8 are immutable and the final component 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 w2)≤ 8 및 vwt ( w1 w2 ) = b;4 <wt (w 1 w 2 ) ≤ 8 and v wt ( w1 w2 ) = b;
(여기서 wt는 해밍 웨이트, b는 {0,1}의 기설정 요소)Where wt is the Hamming weight and b is the preset element of {0,1}
ㆍ 0 ≤ wt(w1 w2) < 4 및 vwt ( w1 w2 )≠b;0 ≦ wt (w 1 w 2 ) <4 and v wt ( w1 w2 ) ≠ b;
ㆍ wt(w1 w2) = 4, 9= 1, 4 < wt(w1 w2 e)≤8, 및 v4 = b;Wt (w 1 w 2 ) = 4, 9 = 1, 4 <wt (w 1 w 2 e) ≤ 8, and v 4 = b;
(여기서 e는 {0,1}8의 홀수 해밍 웨이트 워드)(Where e is an odd hamming weight word of {0,1} 8 )
ㆍ wt(w1 w2) = 4, 9=1, 0 ≤ wt(w1 w2 e)< 4 및 v4 ≠ b;Wt (w 1 w 2 ) = 4, 9 = 1, 0 ≤ wt (w 1 w 2 e) <4 and v 4 ≠ b;
* 다음의 조건 중 하나가 만족되면 워드 w2과 결합하며,* Combines with word w 2 if one of the following conditions is met:
ㆍ 4 < wt(w1 w2)≤ 8 및 vwt ( w1 w2 ) ≠ b;4 <wt (w 1 w 2 ) ≤ 8 and v wt ( w1 w2 ) ≠ b;
ㆍ 0 ≤ wt(w1 w2)< 4 및 vwt ( w1 w2 ) = b;0 ≦ wt (w 1 w 2 ) <4 and v wt ( w1 w2 ) = b;
ㆍ wt(w1 w2) = 4, 9= 1, 4 < wt(w1 w2 e)≤ 8 및 v4≠b;Wt (w 1 w 2 ) = 4, 9 = 1, 4 <wt (w 1 w 2 e) ≤ 8 and v 4 ≠ b;
ㆍ wt(w1 w2) = 4, 9= 1, 0 ≤ wt(w1 w2 e)< 4 및 v4 = b;Wt (w 1 w 2 ) = 4, 9 = 1, 0 ≤ wt (w 1 w 2 e) <4 and v 4 = b;
* wt(w1 w2)= 4이고 9= 0 인 경우 빈 워드 ε와 결합하는 것을 특징으로 한다.* wt (w 1 w 2 ) = 4 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
이하에서 용어 "워드" (또는 "패턴")는 임의의 알파벳(예를 들면 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
상기 초기 데이터 흐름(3)은 고 "선형 복잡도"의 데이터 시퀀스에 대응한다. 예를 들면, 상기 초기 데이터 흐름(3)은 최대 주기 선형 피드백 쉬프트 레지스터를 갖는 초기 생성 수단(23)(도 3A)에 의해 발생될 수 있다.The
사실상, 어떠한 주기 시리즈라도 다수의 선형 피드백 쉬프트 레지스터에 의해 생성될 수 있다. 상기 레지스터 중 하나는 다른 모든 레지스터들보다 짧다. 상기 가장 짧은 레지스터의 길이는 상기 흐름의 "선형 복잡도"라 불린다. 만약 상기 초기 데이터 시퀀스의 선형 복잡도가 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
본 발명에 따르면, 코드 워드 세트(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
예를 들면, 출력 워드 세트(7)는 세트 E = {ε, 0, 1}, 또는 E = {0, 1}, 또 는 E = {ε}와 {0, 1}8k(여기서, k≥1, 즉 비트들의 배수들)의 결합이다. 특히, 주어진 길이의 출력 워드들에 대하여, 출력 워드 세트에서 "0" 과 "1"의 수가 균형을 이루도록 하기 위하여, s로 표시된 출력 워드(7a)에 대해 로 표시된 보수 출력 워드(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
또한, 비동기 함수(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
상기 완전 접두 코드(5)는 바람직하게는 유한 자동 기계에 의해 인식될 수 있으며, 워드 w가 주어질 때 워드 w가 상기 완전 접두 코드(5)에 존재하는지 여부를 결정한다.The
사실, 도 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
도 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
그리고, 도 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
또한, 본 발명에 따른 방법은 의사랜덤 데이터 시퀀스(1)를 형성하기 위하여 코드화된 일련의 워드(11)를 비동기 함수(f)에 따라 대응하는 출력 워드(7a)와 결합시키기 위한 결합 동작(20)을 포함한다.In addition, the method according to the invention combines a series of
그래서, 본 발명의 메카니즘의 적용은 일련의 입력, 즉 초기 데이터 흐름(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
암호화 적용의 맥락에서, 상기 메커니즘(완전 접두 코드, 비동기 함수)의 일부 또는 모든 데이터는 암호화 시스템의 비밀 데이터를 바람직하게 남길 수 있다는 사실을 주목하여야 한다.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
본 발명의 방법은 입력으로서 초기 데이터 흐름(3) 및 이진수 벡터 v를 받는다. 상기 벡터 v의 선택은 (비선형) 동작을 초기화 벡터에 적용하는 것으로 수행될 수 있다. 물론, 벡터 v는 기설정된 값(예를 들면, v는 무효 벡터)을 가질 수 있다. 벡터 v는 바람직하게는 상기 처리 중에 변경될 수 있기 때문에 의사랜덤 데이터 시퀀스(1)의 발생에 따를 수 있게 된다.The method of the invention takes as input the
그래서, 상기 파라미터는 상기 초기 데이터 흐름(3)과 상기 의사랜덤 데이터 시퀀스(1) 사이의 관계의 복잡도를 향상시켜, 의사랜덤 데이터 시퀀스(1)를 예측하 기 더욱 어렵게 만든다.Thus, the parameter improves the complexity of the relationship between the
또한, 상기 초기 데이터 흐름(3)에 의존하지 않는 최소 비율을 보장하기 위하여, 상기 완전 접두 코드(5)의 코드 워드는 상한치 h에 의해 제한된 길이를 가지는 것이 바람직하다. 그래서, 어느 출력 워드 s1가 다른 출력 워드 s2와 동일한 길이를 갖는 경우, 상기 출력 워드 s1의 비동기 함수(f)에 의한 전항의 수는 다른 출력 워드 s2의 비동기 함수(f)에 의한 전항의 수와 동일하다.In addition, in order to ensure a minimum ratio that does not depend on the
다시 말해, 완전 접두 코드(5)는 다음과 같은 유리한 특징이 있다:In other words, the
* 완전 접두 코드(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
완전 접두 코드(5)의 워드는 하한치 m에 의해 제한된 길이를 갖는 것이 바람직하다. 그리고 상기 완전 접두 코드의 워드의 더 큰 길이를 ℓ이라 하고, k를 ℓ이하의 길이라 할 때, 상기 완전 접두 코드가 길이 k의 2m-1개의 워드를 포함하도록 하는 것이 바람직하다. 다시 말해, 결합 함수 fv는 다음의 특징, 즉 상기 완전 접두 코드 C의 모든 워드들이 정수 m 이상의 길이를 가지고 ℓ≥m 일 때, m 이상이고 ℓ이하인 정수 k에 있어서 상기 코드 C\{fv -1(ε)}가 정확히 2m-1개의 길이 k인 워드를 포함하도록 한다.The words of the
그래서, 상기 초기 데이터 흐름(3)의 균일 분포를 갖는 상기 평균 비율은 약 1/(m+1)이다. 특히, 상기 의사랜덤 데이터 시퀀스의 주어진 비트에 대하여, 주어진 비트(0 또는 1)가 무엇이든, 상기 코드 워드가 길이 k일 확률은 k에 반비례한다. 상기 확률 분포의 선택은, 의사랜덤 데이터 시퀀스(1)가 만족시켜야 하는 통계적인 특징에 대한 최적 조건이다.Thus, the average ratio with a uniform distribution of the
본 발명의 제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 ≦ n ≦ h- 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 1 (0≤n≤h-2)(는 모듈로 2 덧셈);f u (10 n 1) = u n 1 (0≤n≤h-2) ( Add modulo 2);
* fu(01h-1) = uh -1 ;f u (01 h-1 ) = u h -1 ;
* fu(10h-1) = uh -1 1* f u (10 h-1 ) = u h -1 One
상기 실시예에서, 상기 초기 데이터 흐름(3)은 한 비트씩 읽혀지고, 값 fu(x)는 워드 x의 제1 비트 및 (형태 bn 의 워드에 대한) 값 n 또는 (형태 bh -1의 워드에 대한) 고정된 값 h-1를 알고 있는 코드 C1의 워드 x에 대하여 계산된다.In this embodiment, the
상기 제1 실시예의 메카니즘을 설명하기 위하여, f'u(b,n) =fu(b nb) = bun(0≤n≤h-2)로, 그리고, f'u(b,h-1) = fu(b h-1) = buh -1로 둔다.또한, 플래그(flag)는 값 0으로 초기화되며, 또한 코드 C1의 워드가 인식된 후에만 값 1을 갖는다. 상기 플래그의 값은 각 워드 인식 후에 리셋된다. 각 워드 인식에 대하여, 상기 현재 워드의 제1 비트는 변수 c에 일시적으로 저장되며, 또한 상기 워드의 길이는 변수 "길이"에 업데이트된다. 상기 출력 비트 값은 변수 s에 저장된다.In order to explain the mechanism of the first embodiment, f ' u (b, n) = f u (b n b) = b u n (0≤n≤h-2), and f ' u (b, h-1) = f u (b h-1 ) = b Let u h -1 . In addition, the flag is initialized to the
그래서, 제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
* cu길이를 출력 // cu길이 = f'u(c,길이).* c output u length // c 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
또한, 그 성분이 상기 세트 {0,1}에 속하고 처음 8개의 성분 v0,...,v8의 값들이 불변이며 최종 성분 9의 값이 변수인 벡터 v=(v0,...,v8, 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 A vector whose value of 9 is a variable v = (v 0 , ..., v 8 , 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 w2)≤ 8 및 vwt ( w1 w2 ) = b;4 <wt (w 1 w 2 ) ≤ 8 and v wt ( w1 w2 ) = b;
(여기서 wt는 해밍 웨이트, b는 {0,1}의 기설정된 요소)Where wt is the Hamming weight and b is the preset element of {0,1}
ㆍ 0 ≤ wt(w1 w2) < 4 및 vwt ( w1 w2 )≠b;0 ≦ wt (w 1 w 2 ) <4 and v wt ( w1 w2 ) ≠ b;
ㆍ wt(w1 w2) = 4, 9= 1, 4 < wt(w1 w2 e)≤8, 및 v4 = b;Wt (w 1 w 2 ) = 4, 9 = 1, 4 <wt (w 1 w 2 e) ≤ 8, and v 4 = b;
(여기서 e는 {0,1}8의 홀수 해밍 웨이트 워드)(Where e is an odd hamming weight word of {0,1} 8 )
ㆍ wt(w1 w2) = 4, 9= 1, 0 ≤ wt(w1 w2 e)< 4 및 v4 ≠ b;Wt (w 1 w 2 ) = 4, 9 = 1, 0 ≤ wt (w 1 w 2 e) <4 and v 4 ≠ b;
* 다음의 조건 중 하나가 만족되면 워드 w2과 결합하며,* Combines with word w 2 if one of the following conditions is met:
ㆍ 4 < wt(w1 w2)≤ 8 및 vwt ( w1 w2 ) ≠ b;4 <wt (w 1 w 2 ) ≤ 8 and v wt ( w1 w2 ) ≠ b;
ㆍ 0 ≤ wt(w1 w2) < 4 및 vwt ( w1 w2 ) = b;0 ≦ wt (w 1 w 2 ) <4 and v wt ( w1 w2 ) = b;
ㆍ wt(w1 w2) = 4, 9= 1, 4 < wt(w1 w2 e)≤ 8 및 v4≠b;Wt (w 1 w 2 ) = 4, 9 = 1, 4 <wt (w 1 w 2 e) ≤ 8 and v 4 ≠ b;
ㆍ wt(w1 w2) = 4, 9= 1, 0 ≤ wt(w1 w2 e) < 4 및 v4 = b;Wt (w 1 w 2 ) = 4, 9 = 1, 0 ≤ wt (w 1 w 2 e) <4 and v 4 = b;
* wt(w1 w2)= 4이고 9= 0 인 경우 빈 워드 ε와 결합된다.* wt (w 1 w 2 ) = 4 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
그래서, 제2 실시예는 다음 메카니즘을 반복한다: Thus, the second embodiment repeats the following mechanism:
* 플래그 ← 0; 길이 ← 0* Flag ← 0; Length ← 0
* 9← 0* 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 이면 9← 1If length = h-3 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
상기 발생기(21)는 상기 초기 데이터 흐름(3)을 발생하는 적어도 하나의 최대 주기 선형 피드백 쉬프트 레지스터를 갖는 초기 생성 수단(23)을 포함한다. 길이 k(여기서, T = 2k-1)를 갖는 모든 워드들 또는 패턴들이 일련의 최대 주기 T에서 적어도 한번 나타난다. 선형 피드백 쉬프트 레지스터는 피드백 다항식이라 불리는 다항식에 의해 표현된 선형 결합을 갖도록 제공된 유한 길이의 비트들의 테이블 (레지스터)이다. 각 쉬프트에, 최고 인덱스를 갖는 비트는 제거되고, 모든 다른 비트들은 하나의 인덱스씩 쉬프트되고, 최저 인덱스를 갖는 비트는 쉬프트 전의 상기 선형 결합의 값을 가지게 된다.The
상기 피드백 다항식은 예를 들면 최대 주기 시리즈를 생성하는 선형 피드백 쉬프트 레지스터에 대응하는 원시 다항식 또는 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
처리 유닛(27)은 초기 데이터 흐름(3)을 읽고, 읽혀진 초기 데이터 흐름을 상기 완전 접두 코드(5)에 따라 코드화된 일련의 워드(11)로 분해하며, 또한 상기 코드화된 일련의 워드(11)를 비동기 함수(f)에 따라 대응하는 출력 워드와 결합하 여 의사랜덤 데이터 시퀀스를 발생시킨다. 상기 비동기 함수(f)는 상기 출력 워드 세트(7)로부터의 출력 워드를 상기 완전 접두 코드(5)의 임의의 코드 워드와 결합시킨다.The
상기 처리 유닛(27)은 분해 동작(10) 및 결합 동작(20)을 동시에 수행할 수 있다. 그래서, 상기 처리 유닛(27)은 상기 초기 데이터 흐름(3)을 한 비트씩 읽고, 상기 완전 접두 코드(5)의 워드가 발견될 때마다, 상기 처리 유닛(27)은 상기 비동기 함수(9)에 의해 상기 워드의 영상을 계산한다.The
따라서, 상기 발생기는 단순하게 구성되고, 분해 수단(메모리(25) 및 처리 유닛(27))및 비동기 수단(메모리(25) 및 처리 유닛(27))을 포함한다. 상기 분해 수단은 상기 입력 초기 데이터 흐름(3)을 특별한 방식으로 분해하며, 상기 비동기 수단은 상기 초기 데이터 흐름(3)에 의존하지 않는 최소 비율을 갖는 의사랜덤 데이터 시퀀스를 발생시킨다.Thus, the generator is simply configured and includes disassembly means (
도 3B는 본 발명에 따른 의사랜덤 데이터 시퀀스(1)을 발생하기 위한 발생기(21)의 다른 예를 나타낸 도면이다. 도 3B의 발생기는 파라미터 설정 수단(29)을 더 포함한다는 점에서 도 3A의 발생기와 다르다. 상기 파라미터 설정 수단(29)는 기설정된 파라미터에 의존하는 비동기 함수(f)를 만들고, 의사랜덤 데이터 시퀀스(1)의 발생 중 상기 파라미터 값을 변경한다.3B shows another example of a
도 4는 인터넷, GSM, UMTS, WiFi, 초 광대역 방식의 통신망(35)을 통하여 상호 연결된 적어도 2개의 객체를 갖는 보안 시스템(30)을 나타낸다.4 shows a
도 4는 상기 통신망(35)을 통하여 제2 객체(33b)에 연결된 제1 객체(33a)를 나타낸다.4 shows a
상기 제1 객체(33a)는 제1 단말기(37a), 제1 암호화/복호화 장치(39a), 및 제1 모뎀(41a)을 포함한다. 상기 제2 객체(33b)는 제2 단말기(37b), 제2 암호화/복호화 장치(39b), 및 제2 모뎀(41b)을 포함한다. 상기 제1 모뎀(41a) 및 상기 제2 모뎀(41b)은 통신망(35)과 인터페이스할 수 있는 장치이다.The
상기 제1, 2 암호화/복호화 장치(39a 및 39b)는 각각 의사랜덤 데이터 시퀀스(1)를 발생하는 발생기(21) 및 배타적 OR 논리 게이트(43)를 포함한다.The first and second encryption /
상기 제1, 2 암호화/복호화 장치(39a 및 39b)는 메시지를 한 비트씩 암호화 또는 복호화한다.The first and second encryption /
상기 실시예에서, 제1 암호화/복호화 장치(39a)는 암호화 동작을 수행한다. 그래서, 의사랜덤 데이터 시퀀스(1)는 배타적 OR 논리 케이트(43)를 통해, 상기 제1 단말기(37a)에 의해 명확히 보내진 메시지(45)의 대응 위치에 각 비트와 결합된다. 이것은, 상기 제1 모뎀(41a)이 상기 제2 객체(33b)에 보내게 될 암호화된 텍스트(47)를 생성한다. 그래서, 암호화 동작은 의사랜덤 데이터 시퀀스(1)를 한 비트씩 상기 메시지(45)의 텍스트에 부가함으로써 암호화된 텍스트(47)를 얻는다.In the above embodiment, the first encryption /
상기 제2 암호화/복호화 장치(39b)는 상기 제1 객체(33a)로부터 발송된 상기 암호화된 텍스트(47)에 의사랜덤 데이터 시퀀스(1)를 한 비트씩 부가함으로써 복호화 동작을 수행하여 상기 메시지(45)의 텍스트를 명확하게 얻는다. 따라서, 암호화 및 복호화 동작은 동일하다. The second encryption /
본 발명에 따른 의사랜덤 데이터 시퀀스 발생 방법, 시스템 및 장치는 암호화/복호화 분야에 적용될 수 있다.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)
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)
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)
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 |
-
2006
- 2006-05-23 CN CN 200680023071 patent/CN101208902A/en active Pending
- 2006-05-23 WO PCT/FR2006/050472 patent/WO2007000549A2/en not_active Application Discontinuation
- 2006-05-23 EP EP06794454A patent/EP1886436A2/en not_active Withdrawn
- 2006-05-23 KR KR1020077029543A patent/KR20080019631A/en not_active Application Discontinuation
- 2006-05-23 BR BRPI0610323A patent/BRPI0610323A2/en not_active IP Right Cessation
- 2006-05-23 JP JP2008512889A patent/JP2008542805A/en active Pending
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 |