KR100416971B1 - Random keystream generation apparatus and method for use in a cryptosystem - Google Patents
Random keystream generation apparatus and method for use in a cryptosystem Download PDFInfo
- Publication number
- KR100416971B1 KR100416971B1 KR10-2002-0003309A KR20020003309A KR100416971B1 KR 100416971 B1 KR100416971 B1 KR 100416971B1 KR 20020003309 A KR20020003309 A KR 20020003309A KR 100416971 B1 KR100416971 B1 KR 100416971B1
- Authority
- KR
- South Korea
- Prior art keywords
- sub
- feedback
- storage
- binary data
- bit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
병렬 이동형 선형피드백 시프트레지스터(PS-LFSR)를 사용하여 랜덤 키스트림을 생성하는 장치 및 방법이 개시되어 있다. 상기 장치의 PS-LFSR은 n개의 저장 스테이지들로 구성되고, k(여기서, k는 n에서 m을 나눈 수보다 큰 최소 정수)개의 서브저장부들로 분할되고, 상기 각 서브저장부들은, 이전의 서브저장부들로부터 입력되는 m비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 m비트의 병렬 이진 데이터들을 시스템 클럭에 따라 출력한다. 버퍼는 상기 시프트 레지스터의 마지막 서브저장부로부터 출력되는 m비트의 병렬 이진 데이터들을 동시에 저장 및 출력하기 위한 m개의 저장 스테이지들로 구성된다. m개의 피드백 컨넥션들은 미리 정해진 원시 다항식에 대응하는 상기 서브저장부들의 출력과 상기 버퍼의 출력을 제공받고 상기 원시 다항식에 따른 연산을 각각 수행하고 연산 결과를 상기 키스트림의 각 비트들로서 출력한다.An apparatus and method are disclosed for generating a random keystream using a parallel mobile linear feedback shift register (PS-LFSR). The device's PS-LFSR is composed of n storage stages, where k is the smallest integer greater than n divided by m, where each substorage is The m-bit parallel binary data inputted from the sub storage units are simultaneously stored, and the m-bit parallel binary data stored therein are output according to the system clock. The buffer consists of m storage stages for simultaneously storing and outputting m-bit parallel binary data output from the last substorage of the shift register. The m feedback connections are provided with the outputs of the substores corresponding to a predetermined primitive polynomial and the output of the buffer, perform an operation according to the primitive polynomial, respectively, and output a result of each operation as bits of the keystream.
Description
본 발명은 암호시스템에 관한 것으로, 특히 선형피드백 시프트레지스터(LFSR)를 사용하여 입력 정보의 암호화를 위한 랜덤 키스트림을 생성하는 장치 및 방법에 관한 것이다.The present invention relates to an encryption system, and more particularly, to an apparatus and method for generating a random keystream for encrypting input information using a linear feedback shift register (LFSR).
최근 통신망의 급격한 발전과 더불어 처리할 데이터도 텍스트/음성 데이터에서 화상회의나 동영상 자료 등 점차 멀티미디어 자료 형태로 변모해가고 있다. 이에 따라 통신 시스템에서 사용되는 암호 알고리듬도 고비도, 고속화 및 고신뢰도 설계가 요구되고 있다.With the recent rapid development of communication networks, the data to be processed is gradually transforming from text / voice data into multimedia data such as video conferencing and video data. Accordingly, the encryption algorithm used in the communication system has also been required to design high cost, high speed and high reliability.
일반적으로 암호 방식은 스트림 암호(stream cipher), 블록 암호(block cipher) 그리고 공개키 암호(public key cipher)로 분류될 수 있다. 상기 블록 암호는 적용 방식에 따라 ECB(Electronic CodeBook) 모드, CFB(Cipher FeedBack) 모드, CBC(Cipher Block Chaining) 모드 및 OFB(Output FeedBack) 모드로 구분된다. 상기 ECB 모드는 블록 크기의 입력에 대하여 비밀키(Secret Key)와 DES(Data Encryption Standard) 함수로부터 블록 출력을 생성하는 방식이다. 상기 CFB 모드는 출력 암호문을 입력에 피드백(feedback)시킨다. 상기 CBC 모드는 송수신 데이터 인증을 위하여 현재 암호문 블록과 다음 번 평문 블록을 배타적논리합(XOR: exclusive-OR) 연산시킨 후 블록 암호에 입력시켜 새로운 출력을 생성하고, 이 출력을 다시 그 다음 번 입력과 XOR시키는 반복 과정으로 최종 인증 값을 얻는 방식이다. 이러한 CBC 모드는 데이터 위조시 최종 인증 값이 바뀌게 되므로 진위 구별이 가능하다. 상기 OFB 모드는 블록 암호 자체를 랜덤 스트림 발생기(random stream generator)로 변경하여 스트림 암호처럼 적용시킨다.In general, cipher systems can be classified into stream ciphers, block ciphers, and public key ciphers. The block cipher is classified into an Electronic CodeBook (ECB) mode, a Cipher FeedBack (CFB) mode, a Cipher Block Chaining (CBC) mode, and an Output FeedBack (OFB) mode according to an application method. The ECB mode generates a block output from a secret key and a data encryption standard (DES) function for an input of a block size. The CFB mode feeds back an output ciphertext to the input. In the CBC mode, an exclusive-OR (XOR) operation is performed on the current ciphertext block and the next plaintext block for authentication of transmission and reception data, and then inputted to the block cipher to generate a new output. This is an iterative process of XOR to get the final authentication value. In this CBC mode, since the final authentication value is changed when forging data, authenticity can be distinguished. The OFB mode changes the block cipher itself to a random stream generator and applies it as a stream cipher.
상기 4가지 방식들의 블록 암호는 모두 실제 암호 통신을 하는 실용화 측면에서 채널 에러에 대부분 취약하거나 또 다른 문제점을 안고 있기 때문에 어떤 대책이 요구된다. 구체적으로 말하면, 상기 ECB 모드에서는, 하나의 암호문 블록에서의 하나 또는 그 이상의 비트 에러들은 단지 그 블록의 해독에 영향을 미친다. 상기 CFB 모드에서는, 하나의 암호문 블록에서의 하나의 비트 에러는 그 블록과 다음 블록의 해독에 영향을 미친다. 상기 CBC 모드에서는, 하나의 암호문 블록에서의 하나의 비트 에러는 이후 모든 블록들에 영향을 미친다. 블록 암호의 에러 확산을 줄이기 위하여 도입된 OFB 모드는 입력 피드백 비트 수(이 수는 블록 크기보다 작음)만큼 확산을 줄일 수 있으며, 최상의 경우 1비트를 피드백시켜 근본적으로 확산을 방지할 수 있다. 하지만 1비트 크기의 OFB 모드는 일반 ECB 모드보다는 데이터 처리 속도가 블록 크기 배 감소되기 때문에 오히려 통신망 처리 능력을 떨어뜨린다.Since the block ciphers of the four schemes are all vulnerable to channel errors or have other problems in terms of practical use of actual cipher communication, some countermeasures are required. Specifically, in the ECB mode, one or more bit errors in one ciphertext block only affect the decryption of that block. In the CFB mode, one bit error in one ciphertext block affects the decryption of that block and the next block. In the CBC mode, one bit error in one ciphertext block affects all subsequent blocks. The OFB mode, introduced to reduce the error spread of the block cipher, can reduce the spread by the number of input feedback bits (this number is smaller than the block size) and, in the best case, essentially feed back one bit to prevent the spread. However, the 1-bit OFB mode reduces network processing power because the data processing rate is reduced by a block size twice that of the normal ECB mode.
또한, 공개키 암호는 처리 속도가 느리기 때문에 고속 데이터 처리에 부적합할 뿐 아니라 ECB 모드처럼 에러가 블록 전체로 확산되는 단점이 있다. 또한, 스트림 암호는 채널 에러 확산이 없고 안전성(비도 수준) 요소가 몇 가지 측면에서 수학적으로 보장이 되며 고속 처리가 가능한 장점이 있지만, 이 방법 역시 초고속 통신 서비스에 따른 암호 처리를 원활하게 할 수 있을지는 의문이다.In addition, since public key cryptography is slow in processing, it is not suitable for high-speed data processing, and there is a disadvantage in that an error is spread throughout the block as in ECB mode. In addition, stream ciphers have no channel error spread, and the security (non-level) factor is mathematically guaranteed in several respects, and high-speed processing is possible, but this method can also facilitate encryption processing according to high-speed communication service. Is questionable.
한편, 스트림 암호를 구현시에 많이 사용되는 소자로 선형피드백 시프트레지스터(LFSR: Linear Feedback Shift Register)와 비선형 결합함수형태의 논리조합회로, 전가산기(full adder), 멀티플렉서(multiplexer) 등을 들 수 있다. 특히 LFSR은 크기의 다양성 뿐만 아니라 키 수열의 주기라는 비도 요소를 결정짓기 때문에 암호시스템에서는 거의 필수적으로 사용되고 있는 소자이다. 상기 LFSR은 도 1에 도시된 바와 같이 외부에서 입력되는 시스템 클럭에 맞추어 동기적으로 1비트씩 이동시키면서 이진 키 스트림(key stream)을 발생한다. 상기 발생된 키 스트림은 암호화 결합기(Encryption Combiner)(도시하지 않음)로 제공되어 평문(plain text)을 암호문(Cipher Text)으로 변환하는데 이용된다. 이때 상기 키 스트림의 발생 속도는 시스템 클럭과 내부 회로의 지연시간에 의해서 결정된다.The linear feedback shift register (LFSR), the logic combination circuit in the form of a nonlinear coupling function, the full adder, the multiplexer, etc. have. In particular, LFSR is an almost essential element in cryptographic systems because it determines not only the variety of sizes but also the invisibility factor of the key sequence period. As shown in FIG. 1, the LFSR generates a binary key stream while synchronously moving one bit in accordance with an externally input system clock. The generated key stream is provided to an encryption combiner (not shown) and used to convert plain text into cipher text. The generation rate of the key stream is determined by the system clock and the delay time of the internal circuit.
전술한 도 1에 도시된 바와 같은 LFSR은 의사잡음(Pseudo Noise) 부호의 생성이나 암호화를 위한 처리에서 필수적으로 사용되는 소자이다. 특히 암호화되어야 할 대상이 멀티미디어 서비스를 위한 데이터로 점차적으로 변화되고 있는 추세에 비추어볼 때 고속의 LFSR 처리가 필요하다. 그러나 종래 기술에 따른 LFSR 구조는 한 시스템 클럭에 한 비트씩의 이동만을 가능하게 하므로, 고속의 LFSR 처리에는 적합하지 않은 구조라고 말할 수 있다.The LFSR as shown in FIG. 1 described above is an element that is essentially used in a process for generating or encrypting a pseudo noise code. In particular, high-speed LFSR processing is needed in view of the trend that the object to be encrypted is gradually changed to data for multimedia service. However, since the LFSR structure according to the prior art enables only one bit shift in one system clock, it can be said that the structure is not suitable for high-speed LFSR processing.
따라서 본 발명의 목적은 암호시스템 혹은 확산 스펙트럼 통신시스템에서 사용하기 위한 랜덤 키스트림을 고속으로 생성하는 장치 및 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide an apparatus and method for rapidly generating a random keystream for use in an encryption system or a spread spectrum communication system.
본 발명의 다른 목적은 고속으로 동작하는 LFSR을 구현하여 실시간 처리 및 대용량 처리, 많은 계산량을 요구하는 암호화 처리시 시간의 지연을 줄일 수 있도록 하는 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an apparatus and method for implementing a LFSR that operates at a high speed to reduce time delay in encryption processing requiring a large amount of computation and real-time processing.
본 발명의 또 다른 목적은 암호시스템 혹은 확산 스펙트럼 통신시스템에서 통신 채널을 통한 에러 확산을 제거하기 위한 장치 및 방법을 제공함에 있다.It is still another object of the present invention to provide an apparatus and method for eliminating error spreading over a communication channel in an encryption system or a spread spectrum communication system.
이러한 목적들을 달성하기 위한 본 발명은 하나의 시스템 클럭내에서 m비트이동이 가능하고, 최종 출력이 m비트 발생될 수 있도록 하는 병렬 이동형 선형피드백 시프트 레지스터(PS-LFSR)를 포함하는 랜덤 키스트림 생성 장치를 제안한다. 상기 장치의 PS-LFSR은 n비트의 이진 데이터를 저장하기 위한 n개의 저장 스테이지들로 구성되고, k(여기서, k는 n에서 m을 나눈 수보다 큰 최소 정수)개의 서브저장부들로 분할되고, 상기 각 서브저장부들은, 이전의 서브저장부들로부터 입력되는 m비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 m비트의 병렬 이진 데이터들을 시스템 클럭에 따라 출력한다. 버퍼는 상기 시프트 레지스터의 마지막 서브저장부로부터 출력되는 m비트의 병렬 이진 데이터들을 동시에 저장 및 출력하기 위한 m개의 저장 스테이지들로 구성된다. m개의 피드백 컨넥션들은 미리 정해진 원시 다항식에 대응하는 상기 서브저장부들의 출력과 상기 버퍼의 출력을 제공받고 상기 원시 다항식에 따른 연산을 각각 수행하고 연산 결과를 상기 키스트림의 각 비트들로서 출력한다.In order to achieve these objectives, the present invention provides a random keystream generation that includes a parallel shift linear feedback shift register (PS-LFSR) capable of m-bit shifting within one system clock and allowing the final output to be m-bit generated. Suggest a device. The PS-LFSR of the device is composed of n storage stages for storing n bits of binary data, divided into k sub-storage units, where k is the least integer greater than n divided by m, Each of the sub-storage units simultaneously stores the m-bit parallel binary data input from the previous sub-storage units and outputs the stored m-bit parallel binary data according to the system clock. The buffer consists of m storage stages for simultaneously storing and outputting m-bit parallel binary data output from the last substorage of the shift register. The m feedback connections are provided with the outputs of the substores corresponding to a predetermined primitive polynomial and the output of the buffer, perform an operation according to the primitive polynomial, respectively, and output a result of each operation as bits of the keystream.
도 1은 종래 기술에 따른 선형피드백 시프트레지스터를 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도.1 is a block diagram of an apparatus for generating a random keystream using a linear feedback shift register according to the prior art.
도 2는 본 발명의 실시예에 따른 (n, m) 병렬 이동형 선형패드백 시프트레지스터(PS-LFSR)를 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도.FIG. 2 is a block diagram of an apparatus for generating a random keystream using a (n, m) parallel movable linear padback shift register (PS-LFSR) according to an embodiment of the present invention. FIG.
도 3은 본 발명의 실시예에 따른 (40, 8) 선형피드백 시프트레지스터를 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도.3 is a block diagram of an apparatus for generating a random keystream using a (40, 8) linear feedback shift register according to an embodiment of the present invention.
도 4는 본 발명의 실시예에 따른 (39, 8) 선형피드백 시프트레지스터를 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도.4 is a block diagram of an apparatus for generating a random keystream using a (39, 8) linear feedback shift register according to an embodiment of the present invention.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.DETAILED DESCRIPTION A detailed description of preferred embodiments of the present invention will now be described with reference to the accompanying drawings. It should be noted that reference numerals and like elements among the drawings are denoted by the same reference numerals and symbols as much as possible even though they are shown in different drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
하기에서 본 발명은 암호시스템의 초고속화와 통신 채널을 통한 에러 확산을 제거할 수 있는 암호시스템의 설계라는 두 가지 목적들 하에서, 스트림 암호와 블록 암호의 장점들을 혼합시킨 병렬 이동형 선형피드백 시프트레지스터(PS-LFSR: Parallel Shifting Linear Feedback Shift Register)와 그를 포함하여 랜덤 키스트림을 생성하는 장치를 제안한다. 즉, 본 발명의 실시예는 스트림 암호의 비도 수준과 에러 확산 방지 기능을 유지하면서 블록 암호의 m비트 병렬 처리 기능을 혼합시켜 고속 암호화 처리를 가능하게 한다. 스트림 암호에서 LFSR은 한 클럭에 1비트씩 이동되는데, 이를 개선한 본 발명은 한 클럭에 m비트 이동이 가능하다. 또한 본 발명은 1비트씩 처리되는 비선형 결합함수의 단점을 보완하여 블록 암호처럼 동시에 여러 비트의 출력이 될 수 있도록 하는 m비트 병렬 비선형 결합함수의 일반형을 제안한다.In the following, the present invention is a parallel mobile linear feedback shift register that combines the advantages of stream ciphers and block ciphers under the two objectives of ultra-high speed cryptographic system and design of cryptographic system that can eliminate error spread through communication channel. We propose a parallel shifting linear feedback shift register (PS-LFSR) and a device for generating a random keystream including the same. That is, the embodiment of the present invention enables high-speed encryption processing by mixing the m-bit parallel processing function of the block cipher while maintaining the degree of the level of the stream cipher and the function of preventing the error spreading. In the stream cipher, the LFSR is shifted by one bit per clock, and the present invention, which has improved this, can move m bits per clock. In addition, the present invention proposes a general form of the m-bit parallel nonlinear coupling function that can be output of multiple bits at the same time as a block cipher by complementing the disadvantage of the nonlinear coupling function processed by one bit.
도 2는 본 발명의 실시예에 따른 (n, m) PS-LFSR을 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도이다.2 is a block diagram of an apparatus for generating a random keystream using (n, m) PS-LFSR according to an embodiment of the present invention.
상기 도 2를 참조하면, 키스트림 생성 장치는 m비트의 랜덤 키스트림을 생성하기 위한 것으로, PS-LFSR 110, 버퍼 120 및 피드백 컨넥션부 130을 포함한다. 상기 PS-LFSR 110은 n비트의 이진 데이터(binary data)를 저장하기 위한 n개의 저장 스테이지(storage stage)들로 구성된다. 상기 PS-LFSR 110은 도 1에 도시된 종래 기술에 따른 LFSR 10과 동일하게 n개의 저장 스테이지들로 구성된다. 그러나 상기 PS-LFSR 110을 구성하는 n개의 저장 스테이지들은 미리 설정된 수(k)만큼의 서브저장부들로 분할되고, 분할된 서브저장부들 각각은 병렬로 배열되는 m개의 저장 스테이지들로 구성되는 것을 특징으로 한다. 이러한 구성은 시스템 클럭의 한 주기내에서 m비트의 이진 데이터를 병렬로 이동, 즉 동시에 저장 및 출력할 수 있도록 한다. 여기서, 상기 설정된 수 k는 n과 m이 주어진다고 가정했을 때, k는 n에서 m을 나눈 수보다 큰 최소 정수로서 결정된다. 일 예로, n=40이고 m=8인 경우, k는 5로서 결정된다. 이때 상기 서브저장부들은 동일한 수(m)의 저장 스테이지들로 구성된다. 다른 예로, n=39이고 m=8인 경우, k는 39에서 8을 나눈 수인 4.875보다 큰 최소 정수 5로서 결정된다. 이때 상기 서브저장부들중의 적어도 한 서브저장부는 나머지 서브저장부들과 상이한 수의 저장 스테이지들로 구성된다. 이러한 예들에 따른 키스트림 생성 장치는 후술될 도 3 및 도 4에 도시되어 있다. 상기 키스트림 생성 장치는 소프트웨어 혹은 하드웨어로 구현될 수도 있으며, 스트림 암호를 사용하는 통신시스템의 키스트림 발생기(keystream generator)에 사용될 수 있다. 본 발명의 실시예에서는 상기 키스트림 생성 장치가 스트림 암호를 사용하는 통신시스템에서의 키스트림 발생기로서 사용되는 경우로 설명될 것이지만, 확산 스펙트럼(spread spectrum) 통신시스템의 의사잡음 발생기(pseudo-noise generator) 등에 사용될 수 있다는 사실에 유의하여야 한다.Referring to FIG. 2, the keystream generation device is for generating a random keystream of m bits, and includes a PS-LFSR 110, a buffer 120, and a feedback connection unit 130. The PS-LFSR 110 is composed of n storage stages for storing n bits of binary data. The PS-LFSR 110 is composed of n storage stages in the same manner as the LFSR 10 according to the related art shown in FIG. 1. However, the n storage stages constituting the PS-LFSR 110 are divided into a predetermined number (k) of sub storage units, and each of the divided sub storage units is composed of m storage stages arranged in parallel. It is done. This configuration allows for moving, in parallel, storing and outputting m bits of binary data in parallel within one period of the system clock. Here, assuming that the set number k is given by n and m, k is determined as the smallest integer greater than n divided by m. For example, when n = 40 and m = 8, k is determined as 5. In this case, the sub storage units are configured of the same number (m) of storage stages. As another example, when n = 39 and m = 8, k is determined as the minimum integer 5 greater than 4.875, the number divided by 8 at 39. In this case, at least one of the sub storage units includes a different number of storage stages than the other sub storage units. The keystream generation apparatus according to these examples is illustrated in FIGS. 3 and 4 to be described later. The keystream generation device may be implemented in software or hardware, and may be used in a keystream generator of a communication system using a stream cipher. In the embodiment of the present invention, the keystream generating device will be described as being used as a keystream generator in a communication system using a stream cipher, but a pseudo-noise generator in a spread spectrum communication system. Note that it can be used for).
다시 도 2를 참조하면, 상기 PS-LFSR 110은 k개의 서브저장부들 111∼115로 분할된다. 서브저장부 111은 상기 n개의 저장 스테이지들중 첫 번째 m개의 저장 스테이지들(n-1, n-2, n-3, n-4, n-5, n-6, ‥‥, n-m)로 구성된다. 서브저장부 113은 상기 n개의 저장 스테이지들중 m개의 저장 스테이지들(3m-1, ‥‥, 2m+5, 2m+4, 2m+3, 2m+2, 2m+1, 2m)로 구성된다. 서브저장부 114는 상기 n개의 저장 스테이지들중 m개의 저장 스테이지들(2m-1, ‥‥, m+5, m+4, m+3, m+2, m+1, m)로 구성된다. 서브저장부 115는 상기 n개의 저장 스테이지들중 마지막 번째 m개의 저장 스테이지들(m-1, ‥‥, 5, 4, 3, 2, 1, 0)로 구성된다. 상기 서브저장부들 111∼115 각각을 구성하는 저장 스테이지들은 병렬로 배열된다. 이에 따라 상기 각 서브저장부들 111∼115는 이전의 서브저장부들로부터 입력되는 m비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 m비트의 병렬 이진 데이터들을 시스템 클럭(System Clock)에 따라 출력한다.Referring back to FIG. 2, the PS-LFSR 110 is divided into k sub storage units 111 to 115. The sub-storage unit 111 performs the first m storage stages (n-1, n-2, n-3, n-4, n-5, n-6, ..., nm) of the n storage stages. It is composed. The sub storage 113 is composed of m storage stages (3m-1, ..., 2m + 5, 2m + 4, 2m + 3, 2m + 2, 2m + 1, 2m) among the n storage stages. . The sub storage unit 114 is composed of m storage stages (2m-1, ..., m + 5, m + 4, m + 3, m + 2, m + 1, m) of the n storage stages. . The sub storage unit 115 is composed of the last m storage stages (m-1, ..., 5, 4, 3, 2, 1, 0) of the n storage stages. Storage stages constituting each of the sub storage units 111 to 115 are arranged in parallel. Accordingly, each of the sub storage units 111 to 115 simultaneously stores the m-bit parallel binary data input from the previous sub storage units and outputs the stored m-bit parallel binary data according to a system clock.
버퍼 120은 상기 PS-LFSR 110의 마지막 서브저장부 115로부터 출력되는 m비트의 병렬 이진 데이터들을 동시에 저장 및 출력하기 위한 m개의 저장 스테이지들(-m, -(m-1), ‥‥, -5, -4, -3, -2, -1)로 구성된다. 이때 상기 버퍼 120의 첫 번째 저장 스테이지(-m)는 사용되지 않는다. 왜냐하면, 상기 버퍼 120의 첫 번째 저장 스테이지(-m)에 저장되는 값은 이후에 설명될 피드백 컨넥션부 130에서 사용되지 않기 때문이다. 즉, 상기 버퍼 120은 (m-1)개의 저장 스테이지들로 구성되어도 무방하다. 이러한 버퍼 120은 시스템 클럭의 다음 주기에서 사용될 저장 스테이지들의 값들을 저장하기 위한 것이다.The buffer 120 stores m storage stages (-m,-(m-1), ...,-for simultaneously storing and outputting m-bit parallel binary data output from the last sub storage 115 of the PS-LFSR 110. 5, -4, -3, -2, -1). At this time, the first storage stage (-m) of the buffer 120 is not used. This is because the value stored in the first storage stage (-m) of the buffer 120 is not used in the feedback connection unit 130 described later. That is, the buffer 120 may consist of (m-1) storage stages. This buffer 120 is for storing values of storage stages to be used in the next period of the system clock.
피드백 컨넥션부(Feedback Connection Unit) 130은 m개의 피드백 컨넥션들 131∼133으로 구성된다. 상기 피드백 컨넥션들 131∼133은 각각 키스트림 생성을 위해 미리 정해진 원시 다항식(primitive polynomial)에 따른 연산을 행하기 위한 것으로, 각각 정해진 원시 다항식에 대응하는 상기 서브저장부들 111∼115의 출력과 상기 버퍼 120의 출력을 제공받고, 상기 원시 다항식에 따른 연산을 각각 수행하고 해당하는 연산 결과를 상기 키스트림의 각 비트들로서 출력한다. 상기 피드백 컨넥션들 131∼133은 복수개의 배타적논리합(XOR: Exclusive OR) 연산기들로서 구현될 수 있다. 상기 피드백 컨넥션 131에 대해 임의의 원시 다항식이 정해졌을 때, 피드백 컨넥션 132는 상기 피드백 컨넥션 131에 대해 정해진 원시 다항식을 1비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행하고, 피드백 컨넥션 133은 상기 피드백 컨넥션 131에 대해 정해진 원시 다항식을 m비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행한다. 그러므로, 상기 피드백 컨넥션 131에 0번째, 1번째, 2번째, ‥‥ , (n-1)번째 저장 스테이지들에 저장된 값들이 제공된다고 가정했을 때, 상기 피드백 컨넥션 132은 (-1)번째, 0번째, 1번째, ‥‥ , (n-2)번째 저장 스테이지들에 저장된 값들을 입력하여 해당하는 연산을 수행하고, 상기 피드백 컨넥션 133은 -(m-1)번째, -(m-2)번째, -(m-3)번째, ‥‥ , (n-m+1)번째 저장 스테이지들에 저장된 값들을 입력하여 해당하는 연산을 수행한다. 상기 피드백 컨넥션 131은 1번째 피드백값을 출력하고, 상기 피드백 컨넥션 132는 2번째 피드백값을 출력하고, 상기 피드백 컨넥션 133은 m번째 피드백값을 출력한다. 상기 피드백 컨넥션들 131∼133으로부터 출력되는 피드백 값들은 상기 PS-LFSR 110의 서브저장부 111의 해당하는 저장 스테이지들로 입력되어 이후의 키스트림 생성에 사용된다. 상기 피드백 컨넥션 131로부터 출력되는 1번째 피드백값(feedback 1)은 서브저장부 111의 (n-m) 저장 스테이지로 입력되고, 상기 피드백 컨넥션 132로부터 출력되는 2번째 피드백값(feedback 2)은 서브저장부 111의 (n-m-1) 저장 스테이지로 입력되고, 상기 피드백 컨넥션 133으로부터 출력되는m번째 피드백값은 서브저장부 111의 (n-1) 저장 스테이지로 입력된다. 모든 피드백 컨넥션들 131∼133에 의해 연산된 결과에 따른 피드백 값들이 출력되는 경우에는 이 피드백 값들은 암호화 처리를 위한 m비트의 키스트림으로서 생성된다.The feedback connection unit 130 includes m feedback connections 131 to 133. The feedback connections 131 to 133 are used to perform operations according to a predetermined primitive polynomial for generating a key stream, respectively. The outputs of the sub storage units 111 to 115 corresponding to the predetermined primitive polynomial and the buffers are respectively performed. An output of 120 is provided, each operation according to the primitive polynomial is performed, and a corresponding operation result is output as each bit of the keystream. The feedback connections 131 to 133 may be implemented as a plurality of exclusive OR (XOR) operators. When an arbitrary primitive polynomial is defined for the feedback connection 131, the feedback connection 132 performs an operation according to the primitive polynomial according to the result of shifting the primitive polynomial defined for the feedback connection 131 to the left by one bit, and the feedback connection 133 Performs an operation according to the primitive polynomial according to a result of shifting the primitive polynomial defined for the feedback connection 131 to the left by m bits. Therefore, assuming that the feedback connection 131 is provided with values stored in the 0th, 1st, 2nd, ..., (n-1) th storage stages, the feedback connection 132 is (-1) th, 0 Input the values stored in the first, first, ..., and (n-2) th storage stages to perform a corresponding operation, and the feedback connection 133 is-(m-1) th and-(m-2) th Input the values stored in the-,-(m-3) th, ..., and (n-m + 1) th storage stages to perform a corresponding operation. The feedback connection 131 outputs a first feedback value, the feedback connection 132 outputs a second feedback value, and the feedback connection 133 outputs an mth feedback value. The feedback values output from the feedback connections 131 to 133 are input to corresponding storage stages of the sub storage 111 of the PS-LFSR 110 to be used for subsequent keystream generation. The first feedback value (feedback 1) output from the feedback connection 131 is input to the (nm) storage stage of the sub storage unit 111, and the second feedback value (feedback 2) output from the feedback connection 132 is the sub storage unit 111. Is input to the (nm-1) storage stage, and the mth feedback value output from the feedback connection 133 is input to the (n-1) storage stage of the sub storage 111. When feedback values according to the result calculated by all feedback connections 131 to 133 are outputted, these feedback values are generated as a m-bit keystream for encryption processing.
상기 도 2에 도시된 랜덤 키스트림 생성 장치이 m비트의 랜덤 키스트림을 생성하는 동작은 다음과 같이 수행된다.The operation of generating a random keystream of m bits by the apparatus for generating a random keystream shown in FIG. 2 is performed as follows.
(과정 1) n비트의 이진 데이터를 저장하기 위한 n개의 저장 스테이지들로 구성되는 PS-LFSR 110은 k(여기서, k는 n에서 m을 나눈 수보다 큰 최소 정수)개의 서브저장부들 111∼115로 분할된다.(Process 1) The PS-LFSR 110, which consists of n storage stages for storing n bits of binary data, has k sub-storage units 111 to 115, where k is a minimum integer greater than n divided by m. Divided into.
(과정 2) 상기 각 서브저장부들 111∼115은 이전의 서브저장부들로부터 입력되는 m비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 m비트의 병렬 이진 데이터들을 시스템 클럭에 따라 출력한다.(Process 2) Each of the sub storage units 111 to 115 simultaneously stores the m-bit parallel binary data input from the previous sub storage units and outputs the stored m-bit parallel binary data according to the system clock.
(과정 3) 버퍼 120은 상기 PS-LFSR 110의 마지막 서브저장부 115로부터 출력되는 m비트의 병렬 이진 데이터들을 버퍼링한다.(Process 3) The buffer 120 buffers m-bit parallel binary data output from the last sub storage 115 of the PS-LFSR 110.
(과정 4) 피드백 컨넥션 131은 미리 정해진 원시 다항식에 대응하는 상기 서브저장부들 111∼115의 출력을 제공받고 상기 원시 다항식에 따른 연산을 수행하여 최초 피드백 결과값(feedback 1)을 출력한다.(Process 4) The feedback connection 131 is provided with the outputs of the sub storage units 111 to 115 corresponding to a predetermined primitive polynomial, performs an operation according to the primitive polynomial, and outputs an initial feedback result value (feedback 1).
(과정 5) 상기 원시 다항식을 1비트 왼쪽으로 시프트시키면서 (m-1)개의 원시 다항식들을 생성한다. 이렇게 생성된 (m-1)개의 원시 다항식들은 (m-1)개의 피드백 컨넥션들 132∼133에 사용하기 위한 원시 다항식들이다.(Step 5) Generate (m-1) primitive polynomials by shifting the primitive polynomial one bit to the left. The (m-1) primitive polynomials thus generated are primitive polynomials for use in the (m-1) feedback connections 132-133.
(과정 6) 피드백 컨넥션들 132∼133은 각각 상기 (m-1)개의 원시 다항식들에대응하는 상기 서브저장부들 111∼115의 출력과 상기 버퍼 120에 버퍼링된 값을 제공받고 상기 (m-1)개의 원시 다항식들 각각에 따른 연산을 수행하여 (m-1)개의 피드백 결과값들(feedback 2 ∼feedback m)을 출력한다.(Process 6) The feedback connections 132 to 133 are each provided with the output of the sub storages 111 to 115 and the buffered value of the buffer 120 corresponding to the (m-1) primitive polynomials, respectively. (M-1) feedback results (feedback 2 to feedback m) are output by performing the operation according to each of the? Primitive polynomials.
(과정 7) 상기 m개의 피드백 결과값들은 m비트의 키스트림의 각 비트들로서 출력된다.(Step 7) The m feedback result values are output as respective bits of the m-bit keystream.
전술한 바와 같이, 본 발명의 실시예에 따른 PS-LFSR을 포함하는 랜덤 키스트림 생성 장치는 모든 비트가 m비트 단위의 병렬이동(parallel shifting)을 가능하도록 하기 위하여 병렬 경로가 구성되어 있다. 피드백 컨넥션(탭)에서도 m묶음의 XOR 조합 연산을 행하고, 그 결과는 맨 오른쪽 배열 레지스터 111에 동시에 제공된다. 다음의 시스템 클럭(시점)에서는 맨 오른쪽 배열에서 각각 왼쪽 배열로 m비트 블록 단위로 이동되고, 계속해서 왼쪽으로 블록 크기(m) 단위만큼 병렬 이동된다. 결국 이러한 랜덤 키스트램 생성 장치는 한 클럭에 m비트 이동 후 m비트(또는 그 이하)출력을 동시 생성하는 발생기로서, 긴 주기에서의 출력 스트림은 단 한번만 사용되므로 랜덤 특성, 주기 등 비도 특성이 도 1에 도시된 바와 같은 일반적인 LFSR과 동일함을 알 수 있다. 또한 비트 단위의 출력을 발생하는 LFSR과 비교할 때 PS-LFSR은 암호화 처리속도가 m배 빨라지며, 고속화에 따른 하드웨어 복잡도는 다소 증가될 수 있지만 최근의 집적회로 기술 발전으로 큰 문제가 되지 않을 것이다.As described above, in the random keystream generation apparatus including the PS-LFSR according to the embodiment of the present invention, a parallel path is configured to allow all bits to be parallel shifted in units of m bits. In the feedback connection (tab), the m bundle XOR combination operation is also performed, and the result is simultaneously provided to the rightmost array register 111. In the next system clock (time), the rightmost array is shifted from the left array to the left array in m-bit block units, and then to the left in parallel by the block size (m). After all, this random key strram generator is a generator that generates m-bit (or less) output simultaneously after moving m bits in one clock. It can be seen that the same as the general LFSR as shown in 1. In addition, the PS-LFSR is m-times faster than the LFSR that generates the bit-by-bit output, and the hardware complexity may increase somewhat due to the high speed, but the recent development of integrated circuit technology will not be a big problem.
도 3은 본 발명의 실시예에 따른 (40, 8) PS-LFSR을 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도이다. 이 실시예에 따른 랜덤 키스트림 생성 장치는 (n,m) PS-LFSR의 설계 예로서 n = km(k는 정수)가 되는 (40,8) PS-LFSR을 포함한다.3 is a block diagram of an apparatus for generating a random keystream using (40, 8) PS-LFSR according to an embodiment of the present invention. The random keystream generation apparatus according to this embodiment includes a (40,8) PS-LFSR in which n = km (k is an integer) as a design example of the (n, m) PS-LFSR.
상기 도 3을 참조하면, 키스트림 생성 장치는 8비트의 랜덤 키스트림을 생성하기 위한 것으로, PS-LFSR 210, 버퍼 220 및 피드백 컨넥션부 230을 포함한다. 상기 PS-LFSR 210은 40비트의 이진 데이터를 저장하기 위한 40개의 저장 스테이지(storage stage)들로 구성된다. 상기 PS-LFSR 210을 구성하는 40개의 저장 스테이지들은 미리 설정된 수(k=5)만큼의 서브저장부들로 분할되고, 분할된 서브저장부들 각각은 병렬로 배열되는 8개의 저장 스테이지들로 구성되는 것을 특징으로 한다. 이러한 구성은 시스템 클럭의 한 주기내에서 8비트의 이진 데이터를 병렬로 이동, 즉 동시에 저장 및 출력할 수 있도록 한다.Referring to FIG. 3, the keystream generation device is for generating an 8-bit random keystream and includes a PS-LFSR 210, a buffer 220, and a feedback connection unit 230. The PS-LFSR 210 is composed of 40 storage stages for storing 40 bits of binary data. The 40 storage stages constituting the PS-LFSR 210 are divided into a predetermined number (k = 5) of sub storage units, and each of the divided sub storage units includes 8 storage stages arranged in parallel. It features. This configuration allows 8-bit binary data to be moved in parallel, i.e., stored and output simultaneously, within one period of the system clock.
상기 PS-LFSR 210은 5개의 서브저장부들 211∼215로 분할된다. 이때 서브저장부들 211∼215 각각은 동일한 수(m=8)의 저장 스테이지들로 구성된다. 서브저장부 211은 상기 40개의 저장 스테이지들중 첫 번째 8개의 저장 스테이지들(39∼32)로 구성된다. 서브저장부 212는 상기 40개의 저장 스테이지들중 8개의 저장 스테이지들(31∼24)로 구성된다. 서브저장부 213은 상기 40개의 저장 스테이지들중 8개의 저장 스테이지들(23∼16)로 구성된다. 서브저장부 214는 상기 40개의 저장 스테이지들중 8개의 저장 스테이지들(15∼8)로 구성된다. 서브저장부 215는 상기 40개의 저장 스테이지들중 마지막 번째 8개의 저장 스테이지들(7∼0)로 구성된다. 상기 서브저장부들 211∼215 각각을 구성하는 저장 스테이지들은 병렬로 배열된다. 이에 따라 상기 각 서브저장부들 211∼215는 이전의 서브저장부들로부터 입력되는 8비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 8비트의 병렬 이진 데이터들을시스템 클럭(System Clock)에 따라 출력한다.The PS-LFSR 210 is divided into five sub storage units 211 to 215. In this case, each of the sub storage units 211 to 215 includes the same number (m = 8) of storage stages. The sub storage unit 211 includes first eight storage stages 39 to 32 of the 40 storage stages. The sub storage unit 212 includes eight storage stages 31 to 24 of the 40 storage stages. The sub storage unit 213 includes eight storage stages 23 to 16 of the 40 storage stages. The sub storage unit 214 is composed of eight storage stages 15 to 8 of the 40 storage stages. The sub storage unit 215 is composed of the last eight storage stages 7 to 0 of the 40 storage stages. Storage stages constituting each of the sub storage units 211 to 215 are arranged in parallel. Accordingly, each of the sub storage units 211 to 215 simultaneously stores 8-bit parallel binary data input from previous sub storage units and outputs the stored 8-bit parallel binary data according to a system clock.
버퍼 220은 상기 PS-LFSR 210의 마지막 서브저장부 215로부터 출력되는 8비트의 병렬 이진 데이터들을 동시에 저장 및 출력하기 위한 8개의 저장 스테이지들(-8,-7,-6,-5,-4,-3,-2,-1)로 구성된다. 이때 상기 버퍼 220의 첫 번째 저장 스테이지(-8)는 사용되지 않는다. 즉, 상기 버퍼 220은 7개의 저장 스테이지들로 구성되어도 무방하다. 이러한 버퍼 220은 시스템 클럭의 다음 주기에서 사용될 각 저장 스테이지들의 값들을 저장하기 위한 것이다.The buffer 220 includes eight storage stages (-8, -7, -6, -5, -4) for simultaneously storing and outputting 8-bit parallel binary data output from the last sub storage 215 of the PS-LFSR 210. , -3, -2, -1). At this time, the first storage stage (-8) of the buffer 220 is not used. That is, the buffer 220 may consist of seven storage stages. This buffer 220 is for storing values of respective storage stages to be used in the next period of the system clock.
피드백 컨넥션부 230은 8개의 피드백 컨넥션들 231∼233으로 구성된다. 상기 피드백 컨넥션들 231∼233은 각각 키스트림 생성을 위해 미리 정해진 원시 다항식(primitive polynomial)에 따른 연산을 행하기 위한 것으로, 각각 정해진 원시 다항식에 대응하는 상기 서브저장부들 211∼215의 출력과 상기 버퍼 220의 출력을 제공받고, 상기 원시 다항식에 따른 연산을 각각 수행하고 해당하는 연산 결과를 상기 키스트림의 각 비트들로서 출력한다. 상기 피드백 컨넥션 231에 대해 임의의 원시 다항식이 정해졌을 때, 피드백 컨넥션 232는 상기 피드백 컨넥션 231에 대해 정해진 원시 다항식을 1비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행하고, 피드백 컨넥션 233은 상기 피드백 컨넥션 231에 대해 정해진 원시 다항식을 8비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행한다. 그러므로, 상기 피드백 컨넥션 231에 0번째, 1번째, 2번째, ‥‥ , 35번째 저장 스테이지들에 저장된 값들이 제공된다고 가정했을 때, 상기 피드백 컨넥션 232는 (-1)번째, 0번째, 1번째, ‥‥ , 34번째 저장 스테이지들에 저장된 값들을입력하여 해당하는 연산을 수행하고, 상기 피드백 컨넥션 233은 -7번째, -6번째, -5번째, ‥‥ , 28번째 저장 스테이지들에 저장된 값들을 입력하여 해당하는 연산을 수행한다. 즉, 상기 피드백 컨넥션 231에 대해 정해진 원시 다항식이 s(40+t)=s(35+t)^s(2+t)^s(1+t)^s(t)(여기서, ^는 배타적 논리합(XOR: eXclusive OR) 연산을 나타냄.)라고 가정할 때, 상기 피드백 컨넥션 232는 원시 다항식 s(39+t)=s(34+t)^s(1+t)^s(t)^s(-1+t)에 따른 연산을 수행하고, 상기 피드백 컨넥션 233은 원시 다항식 s(33+t)=s(28+t)^s(-5+t)^s(-6+t)^s(-7+t)에 따른 연산을 수행한다.The feedback connection unit 230 includes eight feedback connections 231 to 233. The feedback connections 231 to 233 are used to perform operations according to a predetermined primitive polynomial to generate a keystream, respectively. The outputs of the sub storage units 211 to 215 corresponding to the predetermined primitive polynomial and the buffer are respectively performed. An output of 220 is provided, each operation according to the raw polynomial is performed, and a corresponding operation result is output as each bit of the keystream. When an arbitrary primitive polynomial is defined for the feedback connection 231, the feedback connection 232 performs an operation according to the primitive polynomial according to the result of shifting the primitive polynomial defined for the feedback connection 231 to the left by one bit, and the feedback connection 233 Performs an operation according to the primitive polynomial according to the result of shifting the primitive polynomial defined for the feedback connection 231 to 8 bits to the left. Therefore, assuming that the values stored in the 0th, 1st, 2nd, ..., 35th storage stages are provided to the feedback connection 231, the feedback connection 232 is (-1) th, 0th, 1st. The corresponding operation is performed by inputting values stored in the 34th storage stages, and the feedback connection 233 stores the values stored in the -7th, -6th, -5th, ..., 28th storage stages. Enter these to perform the corresponding operation. That is, the raw polynomial given for the feedback connection 231 is s (40 + t) = s (35 + t) ^ s (2 + t) ^ s (1 + t) ^ s (t) where ^ is exclusive. Suppose that a logical OR (XOR: eXclusive OR) operation is performed.), And the feedback connection 232 is a raw polynomial s (39 + t) = s (34 + t) ^ s (1 + t) ^ s (t) ^. perform the operation according to s (-1 + t), and the feedback connection 233 is a raw polynomial s (33 + t) = s (28 + t) ^ s (-5 + t) ^ s (-6 + t) Perform the operation according to ^ s (-7 + t).
상기 피드백 컨넥션 231은 1번째 피드백값을 출력하고, 상기 피드백 컨넥션 232는 2번째 피드백값을 출력하고, 상기 피드백 컨넥션 233은 8번째 피드백값을 출력한다. 상기 피드백 컨넥션들 231∼233으로부터 출력되는 피드백 값들은 상기 PS-LFSR 210의 서브저장부 211의 해당하는 저장 스테이지들로 입력되어 이후의 키스트림 생성에 사용된다. 상기 피드백 컨넥션 231로부터 출력되는 1번째 피드백값(feedback 1)은 서브저장부 211의 32 저장 스테이지로 입력되고, 상기 피드백 컨넥션 232로부터 출력되는 2번째 피드백값(feedback 2)은 서브저장부 211의 33 저장 스테이지로 입력되고, 상기 피드백 컨넥션 233으로부터 출력되는 8번째 피드백값은 서브저장부 211의 39 저장 스테이지로 입력된다. 모든 피드백 컨넥션들 231∼233에 의해 연산된 결과에 따른 피드백 값들이 출력되는 경우에는 이 피드백 값들은 암호화 처리를 위한 8비트의 키스트림으로서 생성된다.The feedback connection 231 outputs a first feedback value, the feedback connection 232 outputs a second feedback value, and the feedback connection 233 outputs an eighth feedback value. The feedback values output from the feedback connections 231 through 233 are input to corresponding storage stages of the sub storage unit 211 of the PS-LFSR 210 and used for generation of a subsequent key stream. The first feedback value (feedback 1) output from the feedback connection 231 is input to 32 storage stages of the sub storage unit 211, and the second feedback value (feedback 2) output from the feedback connection 232 is 33 of the sub storage unit 211. The eighth feedback value input to the storage stage and output from the feedback connection 233 is input to the 39 storage stage of the sub storage unit 211. When feedback values are outputted as a result of the operation by all feedback connections 231 to 233, these feedback values are generated as an 8-bit keystream for encryption processing.
도 4는 본 발명의 실시예에 따른 (39, 8) PS-LFSR을 사용하여 랜덤 키스트림을 생성하는 장치의 블록 구성도이다. 이 실시예에 따른 랜덤 키스트림 생성 장치는 (n,m) PS-LFSR의 설계 예로서 n ≠km(k는 정수)인 (39,8) PS-LFSR을 포함한다.4 is a block diagram of an apparatus for generating a random keystream using (39, 8) PS-LFSR according to an embodiment of the present invention. The random keystream generation apparatus according to this embodiment includes a (39,8) PS-LFSR in which n? Km (k is an integer) as a design example of the (n, m) PS-LFSR.
상기 도 4를 참조하면, 키스트림 생성 장치는 8비트의 랜덤 키스트림을 생성하기 위한 것으로, PS-LFSR 310, 버퍼 320 및 피드백 컨넥션부 330을 포함한다. 상기 PS-LFSR 310은 39비트의 이진 데이터를 저장하기 위한 39개의 저장 스테이지(storage stage)들로 구성된다. 상기 PS-LFSR 310을 구성하는 39개의 저장 스테이지들은 미리 설정된 수(k=5)만큼의 서브저장부들로 분할된다.Referring to FIG. 4, the keystream generation device is for generating an 8-bit random keystream, and includes a PS-LFSR 310, a buffer 320, and a feedback connection unit 330. The PS-LFSR 310 is composed of 39 storage stages for storing 39 bits of binary data. 39 storage stages constituting the PS-LFSR 310 are divided into sub-storage units by a predetermined number (k = 5).
상기 PS-LFSR 310은 5개의 서브저장부들 311∼315로 분할된다. 이때 상기 서브저장부들중의 적어도 한 서브저장부는 나머지 서브저장부들과 상이한 수의 저장 스테이지들로 구성된다. 예를 들어, 서브저장부 311은 7개의 저장 스테이지들로 구성되고, 나머지 서브저장부들 312∼315는 8개의 저장 스테이지들로 구성된다. 상기 PS-LFSR 310의 첫 번째 서브저장부 311은 7개의 저장스테이지들로 구성되고, 나머지 4개의 서브저장부들 312∼315는 8개의 저장스테이지들로 구성된다. 서브저장부 311은 상기 39개의 저장 스테이지들중 첫 번째 7개의 저장 스테이지들(38∼32)로 구성된다. 서브저장부 312는 상기 39개의 저장 스테이지들중 8개의 저장 스테이지들(31∼24)로 구성된다. 서브저장부 313은 상기 39개의 저장 스테이지들중 8개의 저장 스테이지들(23∼16)로 구성된다. 서브저장부 314는 상기 39개의 저장 스테이지들중 8개의 저장 스테이지들(15∼8)로 구성된다. 서브저장부 315는 상기 39개의 저장 스테이지들중 마지막 번째 8개의 저장 스테이지들(7∼0)로 구성된다. 상기 서브저장부들 311∼315 각각을 구성하는 저장 스테이지들은 병렬로 배열된다. 이에따라 상기 각 서브저장부들 311∼315는 이전의 서브저장부들로부터 입력되는 7비트 혹은 8비트의 병렬 이진 데이터들을 동시에 저장하고 저장된 7비트 혹은 8비트의 병렬 이진 데이터들을 시스템 클럭(System Clock)에 따라 출력한다.The PS-LFSR 310 is divided into five sub storage units 311 to 315. In this case, at least one of the sub storage units includes a different number of storage stages than the other sub storage units. For example, the sub storage 311 is composed of seven storage stages, and the remaining sub storages 312 to 315 are composed of eight storage stages. The first sub storage unit 311 of the PS-LFSR 310 is composed of seven storage stages, and the remaining four sub storage units 312 to 315 are composed of eight storage stages. The sub storage unit 311 includes first seven storage stages 38 to 32 of the 39 storage stages. The sub storage unit 312 includes eight storage stages 31 to 24 of the 39 storage stages. The sub storage unit 313 includes eight storage stages 23 to 16 of the 39 storage stages. The sub storage unit 314 is composed of eight storage stages 15 to 8 of the 39 storage stages. The sub storage unit 315 is composed of the last eight storage stages 7 to 0 of the 39 storage stages. Storage stages constituting each of the sub storage units 311 to 315 are arranged in parallel. Accordingly, each of the sub storage units 311 to 315 simultaneously stores 7-bit or 8-bit parallel binary data input from previous sub-storage units and stores the stored 7-bit or 8-bit parallel binary data according to the system clock. Output
버퍼 320은 상기 PS-LFSR 310의 마지막 서브저장부 315로부터 출력되는 8비트의 병렬 이진 데이터들을 동시에 저장 및 출력하기 위한 8개의 저장 스테이지들(-8,-7,-6,-5,-4,-3,-2,-1)로 구성된다. 이때 상기 버퍼 320의 첫 번째 저장 스테이지(-8)는 사용되지 않는다. 즉, 상기 버퍼 320은 7개의 저장 스테이지들로 구성되는 버퍼이다. 이러한 버퍼 320은 시스템 클럭의 다음 주기에서 사용될 각 저장 스테이지들의 값들을 저장하기 위한 것이다.The buffer 320 includes eight storage stages (-8, -7, -6, -5, -4) for simultaneously storing and outputting 8-bit parallel binary data output from the last sub storage unit 315 of the PS-LFSR 310. , -3, -2, -1). At this time, the first storage stage (-8) of the buffer 320 is not used. That is, the buffer 320 is a buffer consisting of seven storage stages. This buffer 320 is for storing values of respective storage stages to be used in the next period of the system clock.
피드백 컨넥션부 330은 8개의 피드백 컨넥션들 331∼333으로 구성된다. 상기 피드백 컨넥션들 331∼333은 각각 키스트림 생성을 위해 미리 정해진 원시 다항식(primitive polynomial)에 따른 연산을 행하기 위한 것으로, 각각 정해진 원시 다항식에 대응하는 상기 서브저장부들 311∼315의 출력과 상기 버퍼 320의 출력을 제공받고, 상기 원시 다항식에 따른 연산을 각각 수행하고 해당하는 연산 결과를 상기 키스트림의 각 비트들로서 출력한다. 상기 피드백 컨넥션 331에 대해 임의의 원시 다항식이 정해졌을 때, 피드백 컨넥션 332는 상기 피드백 컨넥션 331에 대해 정해진 원시 다항식을 1비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행하고, 피드백 컨넥션 333은 상기 피드백 컨넥션 331에 대해 정해진 원시 다항식을 8비트 왼쪽으로 시프트한 결과에 따른 원시 다항식에 따른 연산을 수행한다. 그러므로, 상기 피드백 컨넥션 331에 0번째, 1번째, 2번째, ‥‥ , 38번째 저장 스테이지들에 저장된 값들이 제공된다고 가정했을 때, 상기 피드백 컨넥션 332는 (-1)번째, 0번째, 1번째, ‥‥ , 37번째 저장 스테이지들에 저장된 값들을 입력하여 해당하는 연산을 수행하고, 상기 피드백 컨넥션 333은 -7번째, -6번째, -5번째, ‥‥ , 30번째 저장 스테이지들에 저장된 값들을 입력하여 해당하는 연산을 수행한다. 즉, 상기 피드백 컨넥션 331에 대해 정해진 원시 다항식이라고 가정할 때, 상기 피드백 컨넥션 332는 원시 다항식에 따른 연산을 수행하고, 상기 피드백 컨넥션 333은 원시 다항식에 따른 연산을 수행한다.The feedback connection unit 330 includes eight feedback connections 331 to 333. The feedback connections 331 to 333 are for performing calculation according to a predetermined primitive polynomial to generate a keystream, respectively, and output the buffers and the buffers of the sub storage units 311 to 315 corresponding to the predetermined primitive polynomial. An output of 320 is provided, each operation according to the primitive polynomial is performed, and a corresponding operation result is output as each bit of the keystream. When an arbitrary primitive polynomial is defined for the feedback connection 331, the feedback connection 332 performs an operation according to the primitive polynomial according to the result of shifting the primitive polynomial defined for the feedback connection 331 to the left by one bit, and the feedback connection 333 Performs an operation according to the primitive polynomial according to the result of shifting the primitive polynomial defined for the feedback connection 331 to 8 bits to the left. Therefore, assuming that the feedback connection 331 is provided with values stored in the 0th, 1st, 2nd, ..., 38th storage stages, the feedback connection 332 is (-1) th, 0th, 1st. Input the values stored in the 37th storage stages to perform a corresponding operation, and the feedback connection 333 stores the -7th, -6th, -5th, ..., 30th storage stages. Enter these to perform the corresponding operation. That is, the raw polynomial defined for the feedback connection 331 is Assume that the feedback connection 332 is a primitive polynomial And the feedback connection 333 is a primitive polynomial Perform the operation according to
상기 피드백 컨넥션 331은 1번째 피드백값을 출력하고, 상기 피드백 컨넥션 332는 2번째 피드백값을 출력하고, 상기 피드백 컨넥션 333은 8번째 피드백값을 출력한다. 상기 피드백 컨넥션들 331∼333으로부터 출력되는 피드백 값들은 상기 PS-LFSR 310의 서브저장부 311의 해당하는 저장 스테이지들로 입력되어 이후의 키스트림 생성에 사용된다. 상기 피드백 컨넥션 331로부터 출력되는 1번째 피드백값(feedback 1)은 서브저장부 312의 31 저장 스테이지로 입력되고, 상기 피드백 컨넥션 332로부터 출력되는 2번째 피드백값(feedback 2)은 서브저장부 311의 32 저장 스테이지로 입력되고, 상기 피드백 컨넥션 333으로부터 출력되는 8번째 피드백값은 서브저장부 311의 38 저장 스테이지로 입력된다. 모든 피드백 컨넥션들 331∼333에 의해 연산된 결과에 따른 피드백 값들이 출력되는 경우에는 이 피드백값들은 암호화 처리를 위한 8비트의 키스트림으로서 생성된다.The feedback connection 331 outputs a first feedback value, the feedback connection 332 outputs a second feedback value, and the feedback connection 333 outputs an eighth feedback value. The feedback values output from the feedback connections 331 to 333 are input to corresponding storage stages of the sub storage unit 311 of the PS-LFSR 310 to be used for generating a later keystream. The first feedback value (feedback 1) output from the feedback connection 331 is input to 31 storage stages of the sub storage unit 312, and the second feedback value (feedback 2) output from the feedback connection 332 is 32 of the sub storage unit 311. The eighth feedback value input to the storage stage and output from the feedback connection 333 is input to the 38 storage stage of the sub storage unit 311. When feedback values according to the result calculated by all feedback connections 331 to 333 are outputted, these feedback values are generated as an 8-bit keystream for encryption processing.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어, 본 발명의 구체적인 실시 예에서는 랜덤 키스트림 생성 장치가 스트림 암호의 키스트림 발생기로서 사용되는 예로서 설명되었으나, 이러한 랜덤 키스트림 생성 장치는 확산 스펙트럼 통신시스템의 의사잡음 발생기로서도 동일하게 사용될 수 있을 것이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. For example, in a specific embodiment of the present invention, the random keystream generation device has been described as an example of being used as a keystream generator of a stream cipher, but the random keystream generation device may be used equally as a pseudo noise generator of a spread spectrum communication system. Could be. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by those equivalent to the scope of the claims.
상술한 바와 같이 본 발명은 고속으로 동작하는 LFSR을 통하여 실시간 처리, 대용량 처리 및 많은 계산량을 요구하는 암호화 처리에서 시간의 지연을 획기적으로 줄일 수 있도록 하는 이점이 있다.As described above, the present invention has an advantage of significantly reducing time delay in real time processing, large processing, and encryption processing requiring a large amount of computation through LFSR operating at high speed.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/114,088 US7046803B2 (en) | 2001-10-06 | 2002-04-02 | Random keystream generation apparatus and method for use in an encryption system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010061691 | 2001-10-06 | ||
KR20010061691 | 2001-10-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030035737A KR20030035737A (en) | 2003-05-09 |
KR100416971B1 true KR100416971B1 (en) | 2004-02-05 |
Family
ID=29563553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0003309A Expired - Fee Related KR100416971B1 (en) | 2001-10-06 | 2002-01-21 | Random keystream generation apparatus and method for use in a cryptosystem |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100416971B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936374B1 (en) * | 2007-07-24 | 2010-01-12 | 경북대학교 산학협력단 | Parallel word-based FRS structure and its operation method |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060042791A (en) | 2004-11-10 | 2006-05-15 | 한국전자통신연구원 | Method and apparatus for generating a key stream |
KR102097702B1 (en) * | 2018-10-18 | 2020-04-07 | 주식회사 우리넷 | Key generation method for low delay block cipher operating mode |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0615361A1 (en) * | 1993-03-12 | 1994-09-14 | Hughes Aircraft Company | System and method for high speed encryption using multiple keystream generator |
KR19990054866A (en) * | 1997-12-26 | 1999-07-15 | 정선종 | Internal control device of cryptographic algorithm chip capable of generating multiple cryptographic keystreams |
-
2002
- 2002-01-21 KR KR10-2002-0003309A patent/KR100416971B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0615361A1 (en) * | 1993-03-12 | 1994-09-14 | Hughes Aircraft Company | System and method for high speed encryption using multiple keystream generator |
KR19990054866A (en) * | 1997-12-26 | 1999-07-15 | 정선종 | Internal control device of cryptographic algorithm chip capable of generating multiple cryptographic keystreams |
Non-Patent Citations (2)
Title |
---|
논문(요약, 본문 및 그림 참조)2001-05-01 * |
논문(요약, 본문 및 그림 참조)2001-06-01 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936374B1 (en) * | 2007-07-24 | 2010-01-12 | 경북대학교 산학협력단 | Parallel word-based FRS structure and its operation method |
Also Published As
Publication number | Publication date |
---|---|
KR20030035737A (en) | 2003-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3901909B2 (en) | ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM | |
EP0681768B1 (en) | A method and apparatus for generating a cipher stream | |
US8259934B2 (en) | Methods and devices for a chained encryption mode | |
US5511123A (en) | Symmetric cryptographic system for data encryption | |
US7864950B2 (en) | Block encryption device using auxiliary conversion | |
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
JP4828068B2 (en) | Computer efficient linear feedback shift register | |
US8831216B2 (en) | Pseudo-random number generation based on periodic sampling of one or more linear feedback shift registers | |
EP1246389B1 (en) | Apparatus for selectably encrypting or decrypting data | |
EP0790595B1 (en) | Data conversion apparatus and data conversion method | |
US20030053625A1 (en) | Self-synchronizing, stream-oriented data encryption technique | |
US20030002663A1 (en) | Method and apparatus for data encryption | |
US7046803B2 (en) | Random keystream generation apparatus and method for use in an encryption system | |
CN1381813A (en) | Small cipher engine for random number and stream cipher generation | |
US12328384B2 (en) | Scrambler apparatus and method in particular for cryptographic applications, and descrambler apparatus and method therefor | |
US6108421A (en) | Method and apparatus for data encryption | |
US6961427B1 (en) | Methods and apparatus for keystream generation | |
CN1826753B (en) | Reversible circuit controlled by secret key and corresponding data processing method | |
KR100416971B1 (en) | Random keystream generation apparatus and method for use in a cryptosystem | |
EP1629626B1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
US5859912A (en) | Digital information privacy system | |
KR20070109154A (en) | Keystream Generation Using Clock Control Functions for Cryptographic Systems | |
EP1232603B1 (en) | Methods and apparatus for keystream generation | |
US7587046B2 (en) | Method and apparatus for generating keystream | |
WO2004045134A1 (en) | Self-synchronizing, stream-oriented data encryption technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20090102 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20100118 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20100118 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |