KR20080073348A - Multi-lane high-speed encryption and decryption - Google Patents

Multi-lane high-speed encryption and decryption Download PDF

Info

Publication number
KR20080073348A
KR20080073348A KR1020087015229A KR20087015229A KR20080073348A KR 20080073348 A KR20080073348 A KR 20080073348A KR 1020087015229 A KR1020087015229 A KR 1020087015229A KR 20087015229 A KR20087015229 A KR 20087015229A KR 20080073348 A KR20080073348 A KR 20080073348A
Authority
KR
South Korea
Prior art keywords
cipher
key
block
stream
words
Prior art date
Application number
KR1020087015229A
Other languages
Korean (ko)
Inventor
마이클 에이. 엡스타인
제임스 로스 굿맨
Original Assignee
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20080073348A publication Critical patent/KR20080073348A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Abstract

An encryption system is configured to include a combination of block (130) and stream (150) cipher generators. The block cipher generator (130) provides a changing key (149) that is used to periodically re-key one or more stream cipher generators (150). Preferably an AES block encryptor (135) provides a set of 128-bit ciphers (139) that are used to provide a stream of 576-bit keys (149) that is used to periodically re-key one or more SNO W-2 stream cipher generators (150). The output (159) of the stream cipher generators (150) are used to encrypt multiple input data streams (263-264), or 'lanes' of data, using an optimized arrangement of the block (130) and stream (150) ciphers relative to these multiple lanes of data (263-264).

Description

멀티 레인 고속 암호화 및 복호화{MULTI-LANE HIGH-SPEED ENCRYPTION AND DECRYPTION}MULTI-LANE HIGH-SPEED ENCRYPTION AND DECRYPTION}

본 출원은 2005년 11월 23일에 출원된 미국 가출원 제 60/739,219 호의 이점을 청구한다.This application claims the benefit of US Provisional Application No. 60 / 739,219, filed November 23, 2005.

본 발명은 통신 및 데이터 보안의 분야에 관한 것으로, 특히 고속 멀티 레인, 병렬 데이터 채널, 암호화 및 복호화를 용이하게 하는 방법 및 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to the field of communication and data security, and more particularly, to a method and system for facilitating high speed multi lanes, parallel data channels, encryption and decryption.

스트림 암호(stream cipher)는 입력 스트림이 순차적으로 암호화되는 어떤 시간에 일반적인 하나의 데이터 단위(워드/바이트/비트)이고 후속하는 데이터 단위들의 변환이 암호화 동안 변경되는 암호이다. 한편, 블록 암호(block cipher)는 고정되고 변함없는 변환인 데이터의 큰 블록들에 동작하는 암호이다. 즉, 주어진 데이터 블록 및 주어진 암호화 키의 블록 암호는, 항상 동일 암호화된 출력 블록을 생성할 것이다. 한편, 스트림 암호의 출력은 데이터 단위가 암호화된 시간에 암호 시스템의 상태에 의존한다.A stream cipher is a cipher in which one data unit (words / bytes / bits) is common at any time the input stream is sequentially encrypted and the transformation of subsequent data units is changed during encryption. Block ciphers, on the other hand, are ciphers that operate on large blocks of data that are fixed and unchanging transformations. That is, the block cipher of a given data block and a given encryption key will always produce the same encrypted output block. On the other hand, the output of the stream cipher depends on the state of the cipher system at the time when the data unit is encrypted.

일반적으로, 스트림 암호는 입력 스트림을 생성된 키스트림(keystream)과 조합하고, 상기 키스트림은 주어진 암호화 키 또는 키들의 세트에 기초하여 의사랜덤 하게(pseudorandomly) 생성된다. 키 스트림의 순차적인 생성은 통상 데이터 블록의 블록 암호화보다 덜 복잡한 동작이고, 스트림 암호들은 일반적으로 블록 암호들보다 실질적으로 더 빠르고, 실질적으로 더 적은 하드웨어 구성요소들을 요구한다.In general, a stream cipher combines an input stream with a generated keystream, which is generated pseudorandomly based on a given encryption key or set of keys. Sequential generation of key streams is typically a less complex operation than block encryption of data blocks, and stream ciphers are generally substantially faster than block ciphers and require substantially fewer hardware components.

스트림 암호들은 특히 전화 통화, 스트리밍 비디오 등과 같은 길이를 알 수 없는 데이터의 스트림들의 고속 암호화/복호화에 매우 적합하다. 블록 암호들은 이러한 데이터에 이용될 때, 설계는 블록을 채우기 전에 종료하는 입력 스트림을 패딩하기 위한 설비들을 포함해야 한다.Stream ciphers are particularly well suited for high speed encryption / decryption of unknown lengths of streams of data such as phone calls, streaming video and the like. When block ciphers are used for this data, the design must include facilities for padding the input stream that terminates before filling the block.

많은 스트림 암호들은 각각의 클록 주기에서 다수 비트 출력을 생성하도록 구성된다. 런드 대학의 엑달 및 요한슨에 의한 SNOW 암호 및 그의 계승자 SNOW-2는 예를 들면, 각 주기에 32 비트 워드를 출력하도록 구성되는 상태 기계(state machine)를 구동하는 선형 피드백 시프트 레지스터(linear feedback shift register)를 이용한다. 이러한 다수 비트 암호 출력을 효과적으로 활용하기 위해서, 병렬 암호화(parallel encryption)가 종종 이용되며, 입력 스트림은 출력 암호와 동일한 비트수를 포함하는 데이터 세트로 디멀티플렉싱되며, 데이터 세트는 다수 비트 암호를 이용하여 암호화되고, 이후 입력 스트림과 동일한 형태로 출력 스트림으로 멀티플렉싱된다. 예를 들면, 입력 스트림은 8 비트 폭 버스(bit wide bus)상에 데이터 바이트들을 포함하고, 32 비트 암호 워드가 이용가능하고, 버스 상의 4 개의 8 비트 바이트들의 각 세트는 32 비트 워드로 스프레드되며(spread), 32 비트 워드는 32 비트 암호 워드를 이용하여 암호화되고, 상기 결과인 32 비트 출력 워드는 4 개의 입력 바이트들의 암호화에 대응하여 4 개의 출력 바이트들로 디스프레드된다(de-spread). 이러한 실시예에서, 암호 생성기는 암호 생성기의 속도보다 4배 빠른 입력 스트림의 처리 속도(throughput rate)를 지원할 수 있다.Many stream ciphers are configured to produce a multiple bit output in each clock period. SNOW cryptography and its successors SNOW-2 by Exdal and Johansson of Lund University, for example, a linear feedback shift register that drives a state machine configured to output 32-bit words in each period. ). In order to effectively utilize this multi-bit cipher output, parallel encryption is often used, the input stream is demultiplexed into a data set containing the same number of bits as the output cipher, and the data set uses a multi-bit cipher. It is encrypted and then multiplexed into the output stream in the same form as the input stream. For example, the input stream contains data bytes on an 8 bit wide bus, a 32 bit encrypted word is available, and each set of four 8 bit bytes on the bus is spread out to a 32 bit word. (spread), a 32 bit word is encrypted using a 32 bit encrypted word, and the resulting 32 bit output word is de-spread into 4 output bytes corresponding to the encryption of 4 input bytes. In such an embodiment, the cryptographic generator may support the throughput rate of the input stream four times faster than the cryptographic generator.

이러한 경우들에서, 입력 데이터 속도는 실질적으로 특정 암호 생성기가 지원할 수 있는 최대 속도보다 적을 수 있다. 이러한 경우들에서, 다중 데이터 스트림들은 단일 암호 생성기에 의해 지원될 수 있다. 이전 예에서, 8 비트 폭 입력 데이터 스트림의 속도는 32 비트 암호 생성기의 속도의 두 배이고, 2 개의 이러한 8 비트 데이터 스트림들은 이러한 32 비트 암호 생성기에 의해 지원될 수 있다; 만약 8 비트 폭 입력 데이터 스트림의 속도가 32 비트 암호 생성기의 속도와 동일하다면, 4 개의 이러한 입력 데이터 스트림들은 암호 생성기에 의해 지원될 수 있는 것 등이다.In such cases, the input data rate may be substantially less than the maximum rate that a particular cryptographic generator can support. In such cases, multiple data streams may be supported by a single cryptographic generator. In the previous example, the speed of the 8 bit wide input data stream is twice the speed of the 32 bit cryptographic generator, and two such 8 bit data streams can be supported by this 32 bit cryptographic generator; If the speed of the 8-bit wide input data stream is the same as that of the 32-bit cryptographic generator, then four such input data streams can be supported by the cryptographic generator.

그러나, 스트림 암호들은 블록 암호들보다 덜 안전한데, 즉 그들이 소모적인 검색보다 덜 이용되는 특징적인 공격들(distinguishing attacts)에 더 민감하다는 것이 일반적으로 공지되었다. 또한, 모든 스트림 암호들은 키스트림이 반복되면 공격에 취약하다. 이상적으로는, 128 비트 키를 갖는, 키스트림의 반복 길이는 2128 비트이고, 이는 대부분 애플리케이션들에 무난하지만, 초당 100 Mb의 암호화 속도에서, 이러한 암호의 재생 시간(recycle time)은 25분 이하이고, 스트리밍 비디오와 같은 긴 구동 애플리케이션들에 부적합한 암호를 렌더링한다. 한편, 블록 암호들의 복잡도는 이러한 소비자 애플리케이션들에 대해 그들을 너무 비싸거나 너무 느리게 렌더링한다.However, it is generally known that stream ciphers are less secure than block ciphers, ie they are more susceptible to distinctive attacts, which are less utilized than consuming retrieval. In addition, all stream ciphers are vulnerable to attack if the keystream is repeated. Ideally, with a 128-bit key, the repetition length of the keystream is 2 128 bits, which is acceptable for most applications, but at an encryption rate of 100 Mb per second, the recycle time of such a cipher is less than 25 minutes. And renders an unsuitable cipher for long running applications such as streaming video. On the other hand, the complexity of block ciphers renders them too expensive or too slow for these consumer applications.

스트림 암호의 속도 및 블록 암호의 보안성을 제공하는 암호를 제공하는 것이 이로울 것이다.It would be advantageous to provide a cipher that provides the speed of the stream cipher and the security of the block cipher.

본 발명의 일 실시예에 따라서, 암호 시스템은 블록 및 스트림 암호들의 조합을 포함한다. 블록 암호는 하나 이상의 스트림 암호들을 주기적으로 리키(re-key)하기 위해 이용되는 변경 키(changing key)를 제공한다. 바람직하게는 AES(Advanced Encryption Standard, U.S. National Institute of Standards and Technology(NIST)로부터) 블록 암호는 하나 이상의 SNOW-2 스트림 암호들을 리 키하기 위해 이용되는 576-비트 키들의 스트림을 제공하기 위해 이용되는 128 비트 키들의 세트를 제공한다. 스트림 암호들의 출력은, 이들 멀티 레인 데이터에 관련하는 블록 및 스트림 암호들의 최적화된 정렬을 이용하여 다중 입력 데이터 스트림들, 또는 데이터의 '레인들'을 암호화하기 위해 이용된다.According to one embodiment of the invention, the cryptographic system comprises a combination of block and stream ciphers. The block cipher provides a changing key that is used to periodically re-key one or more stream ciphers. Preferably, the AES (Advanced Encryption Standard, from the US National Institute of Standards and Technology (NIST)) block cipher is used to provide a stream of 576-bit keys used to reclaim one or more SNOW-2 stream ciphers. Provides a set of 128 bit keys. The output of the stream ciphers is used to encrypt multiple input data streams, or 'lanes' of data, using an optimized alignment of block and stream ciphers associated with these multi lane data.

본 발명은 예로서 첨부하는 도면들을 참조하여 더 상세하게 설명될 것이다.The invention will be explained in more detail with reference to the accompanying drawings by way of example.

도 1a 내지 도 1c는 블록 암호 생성기에 의해 제공되는 키들을 이용하여 조직적으로 리키되는 본 발명의 일 실시예에 따른 예시 멀티 비트 스트림 암호화 시스템(multi-bit stream encryption system)을 도시하는 도면들.1A-1C illustrate an exemplary multi-bit stream encryption system in accordance with an embodiment of the present invention that is systematically rekeyed using keys provided by a block cipher generator.

도 2a 및 도 2b 및 도 3a 및 도 3b는 블록 암호 생성기에 의해 제공되는 키들을 이용하여 조직적으로 리키되는 본 발명의 다른 실시예들에 따른 다른 예시 멀티 비트 스트림 암호화 시스템들을 도시하는 도면들.2A and 2B and 3A and 3B illustrate other exemplary multi-bit stream encryption systems in accordance with other embodiments of the present invention that are systematically rekeyed using keys provided by a block cipher generator.

도 4a 및 도 4b는 수 바이트 범위에 있는 암호를 이용하여 데이터 바이트들을 암호화하는, 본 발명의 다양한 실시예들에 따른 믹싱 시스템들(mixing systems)을 도시하는 도면들.4A and 4B illustrate mixing systems in accordance with various embodiments of the present invention for encrypting data bytes using a cipher in the several byte range.

도면들을 전체에서, 동일한 참조 번호는 동일한 요소들 또는 실질적으로 동일한 기능을 수행하는 요소를 나타낸다. 도면들은 예시적인 목적들을 위해 포함되고 본 발명의 범위를 제한하도록 의도되는 것은 아니다.Throughout the drawings, like reference numerals refer to like elements or elements performing substantially the same function. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.

후속하는 상세한 설명에서, 제한보다는 설명의 목적들을 위해, 특정 상세들은 본 발명의 완전한 이해를 제공하도록 특정 아키텍처, 인터페이스들, 기술들 등과 같이 설명된다. 그러나, 본 발명이 이들 특정 상세들로부터 벗어난 다른 실시예들에서 실행될 수 있는 것이 당업자에게 명백할 것이다. 간결화 및 명료함의 목적들을 위해, 잘 공지된 장치들, 회로들, 및 방법들의 상세한 설명들은 본 발명의 명세서에 불필요한 상세로 불분명하게 되지 않도록 생략된다.In the following detailed description, for purposes of explanation rather than limitation, specific details are set forth such as specific architectures, interfaces, techniques, etc., to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. For purposes of brevity and clarity, detailed descriptions of well-known devices, circuits, and methods have been omitted so as not to be unnecessarily obscure in the specification of the present invention.

도 1a는 스트림 암호 생성기(150)의 워드 크기보다 작은 워드 크기를 갖는 입력 스트림(163)의 멀티 비트 병렬 암호화(multi-bit parallel encryption)를 위한 본 발명의 일 실시예에 따른 예시 블록 및 스트림 암호화 시스템을 도시한다. 예를 들면, 입력 스트림은 8 비트 데이터 바이트를 포함하고, SNOW-2 스트림 암호 생성기는 스트림 암호를 제공하기 위해 이용된다. 본 기술에 공지된 바와 같이, SNOW-2 프로세스는 32 비트 폭 암호 출력 워드들(159)의 시퀀스를 생성하기 위하여 초기 상태로서 576-비트 키(149)를 이용한다.1A illustrates an example block and stream encryption in accordance with one embodiment of the present invention for multi-bit parallel encryption of an input stream 163 having a word size less than the word size of the stream cipher generator 150. The system is shown. For example, the input stream contains 8 bit data bytes, and the SNOW-2 stream cipher generator is used to provide the stream cipher. As is known in the art, the SNOW-2 process uses the 576-bit key 149 as an initial state to generate a sequence of 32 bit wide cryptographic output words 159.

믹싱 유닛(160)은 스트림 암호 생성기(150)의 암호 출력 워드들(159)을 입력 스트림(163)과 믹싱함으로써 입력 스트림(163)의 암호화를 수행하기 위해 이용된다. 스트림 암호 생성기(150)로부터 32 비트 폭 암호 워드들(159)의 시퀀스의 이용을 최적화하기 위해, 8 비트 입력 바이트들(163)은 1 입력, 4 출력 디멀티플렉서(164)에 의해 4개의 8 비트 채널들을 형성하기 위해 '스프레드'된다. 32 비트 암호 워드(159)는 유사하게 8 비트 암호 바이트들, 각 채널에 대한 1 암호 바이트로 분할된다. 각 채널에서, 믹서(165)는 암호화된 바이트를 생성하기 위해 채널 상의 8 비트 데이터 바이트와 채널에 할당된 암호 바이트를 조합한다. 바람직하게는, 믹서(165)는 데이터 및 암호 바이트를 조합하도록 배타적-OR 기능(exclusive-OR function)을 수행한다. 4 채널들의 암호화된 바이트들은 입력 스트림(163)에서 각각의 바이트에 대응하여 암호화된 출력 바이트들(169)의 시퀀스를 형성하기 위해 4-입력, 1-출력 멀티플렉서(164´)에 제공된다.The mixing unit 160 is used to perform encryption of the input stream 163 by mixing the cipher output words 159 of the stream cipher generator 150 with the input stream 163. To optimize the use of the sequence of 32 bit wide cipher words 159 from the stream cipher generator 150, the 8 bit input bytes 163 are four 8 bit channels by a one input, four output demultiplexer 164. Are 'spread' to form them. The 32 bit cipher word 159 is similarly divided into 8 bit cipher bytes, 1 cipher byte for each channel. In each channel, mixer 165 combines the 8-bit data bytes on the channel with the cipher bytes assigned to the channel to produce an encrypted byte. Preferably, mixer 165 performs an exclusive-OR function to combine data and cipher bytes. Four channels of encrypted bytes are provided to a four-input, one-output multiplexer 164 'to form a sequence of encrypted output bytes 169 corresponding to each byte in the input stream 163.

도 1b는 도 1a의 암호화 시스템의 동작에 대응하는 타이밍도를 도시한다. 제 1 라인은 입력 스트림(163)에서 바이트들의 시퀀스를 도시한다. 제 2 라인은 스트림 암호 생성기(150)의 암호 출력 워드들(159)의 시퀀스를 도시한다. 각각의 암호 출력 워드(159)는 4 바이트의 입력 스트림(163)을 인코딩하기 위해 이용되기 때문에, 스트림 암호 생성기로부터의 출력 워드들의 시퀀스는 입력 바이트 속도의 1/4의 주파수를 갖는다. 즉, 도 1a에서, 각각의 암호 워드를 제공하기 위해 이용되는 암호 클록 CLK-2(151)은 각각의 입력 데이터 바이트를 입력하기 위해 이용되는 클록 CLK-3(161)의 1/4 주파수에서 동작된다.FIG. 1B shows a timing diagram corresponding to the operation of the encryption system of FIG. 1A. The first line shows the sequence of bytes in the input stream 163. The second line shows the sequence of cipher output words 159 of the stream cipher generator 150. Since each cryptographic output word 159 is used to encode 4 bytes of input stream 163, the sequence of output words from the stream cryptographic generator has a frequency of 1/4 of the input byte rate. That is, in FIG. 1A, the crypto clock CLK-2 151 used to provide each crypto word is operated at a quarter frequency of the clock CLK-3 161 used to input each input data byte. do.

당업자는 도 1a의 암호화-채널 구조가 단순히 참조의 용이성을 위해 제공되고, 다른 구조들이 또한 이용될 수 있다는 것을 인식할 것이다. 예를 들면, 입력 스트림(163)은 16 비트 워드들을 포함하고, 디멀티플렉서(164)는 두 개의 16 비트 채널들을 제공하도록 구성될 것이다. 이러한 경우에는, 암호 클록 CLK-2(151)는 각각의 입력 데이터 워드를 입력하기 위해 이용되는 클록 CLK-3(161)의 1/2 주파수에서 동작될 것이다. 유사한 방식으로, 시리얼 레지스터 구성(serial register configuration) 또는 다른 구조들이 도 4 및 도 5에 관련하여 이하에 또한 설명된 바와 같이 도시된 멀티플렉서 구조 대신 이용될 수 있다.Those skilled in the art will appreciate that the encryption-channel structure of FIG. 1A is provided merely for ease of reference, and other structures may also be used. For example, input stream 163 may contain 16 bit words, and demultiplexer 164 may be configured to provide two 16 bit channels. In such a case, the cryptographic clock CLK-2 151 will operate at one-half frequency of the clock CLK-3 161 used to input each input data word. In a similar manner, a serial register configuration or other structures may be used instead of the multiplexer structure shown as described further below with respect to FIGS. 4 and 5.

본 발명의 일 양태에 따라, 스트림 암호 생성기(150)는 블록 암호 생성기(130)로부터 그것의 576-비트 키(149)를 수신한다. 바람직하게는, 블록 암호 생성기(130)는 사용자가 암호화 세션을 시작하는 각각의 시간에 다른 키를 생성하는 세션 키 생성기(session key generator; 110)로부터 그의 키를 수신한다. 바람직하게는, 세션 키는 보안성을 향상시키기 위해 규칙적으로 업데이트된다.According to one aspect of the invention, the stream cipher generator 150 receives its 576-bit key 149 from the block cipher generator 130. Preferably, the block cipher generator 130 receives its key from a session key generator 110 which generates a different key at each time a user starts an encryption session. Preferably, the session key is updated regularly to improve security.

도 1a의 예시 암호화 시스템에서, AES 암호화기(135)는 클록 CLK-1(131)을 제어하는 각 주기에서 구동 카운터(132)의 현재 콘텐츠의 암호화인 128 비트 블록 암호 출력(139)을 생성한다. 상기에 기재된 바와 같이, 예시 SNOW-2 스트림 암호 생성기는 576-비트 키를 이용하고; 그와 같이, 클록 CLK-1(131)을 제어하는 5 주기들은 이러한 키를 형성하기에 충분한 수의 비트들을 제공하는 것이 요구된다. 576-비트 키는 AES 암호화기(135)로부터 4와 1/2 128 비트 암호 워드들에 대응하고 블록 암호 생성기(130)는 3과 1/2 이들 암호 워드들을 저장하도록 구성되는 레지스 터(140)를 포함한다. 5 번째 128 비트 암호 워드가 생성될 때, 576 비트 출력은 레지스터(140)에 현재 워드 및 이전에 저장된 3과 1/2 워드들을 이용하여 생성된다.In the example encryption system of FIG. 1A, the AES encryptor 135 generates a 128-bit block cipher output 139 that is an encryption of the current content of the drive counter 132 at each period controlling the clock CLK-1 131. . As described above, the example SNOW-2 stream cipher generator uses a 576-bit key; As such, the five periods controlling clock CLK-1 131 are required to provide a sufficient number of bits to form this key. The 576-bit key corresponds to four and one-half 128-bit cipher words from AES encryptor 135 and block cipher generator 130 is configured to store three and one-half these cipher words. It includes. When a fifth 128-bit cipher word is generated, a 576-bit output is generated using the current word and previously stored three and one-half words in register 140.

상기에 기재된 바와 같이, 비록 스트림 암호 생성기들은 일반적으로 블록 암호 생성기들보다 상당히 빠르지만, 스트림 암호들은 스트림 암호 그 자체가 반복되기 때문에 블록 암호들보다 보안성이 낮다. 공격자가 생성된 암호 시퀀스들 일부 또는 전부 및 반복 속도를 결정할 수 있는 경우, 공격자는 결정된 시퀀스의 각각의 반복에서 암호화된 재료를 복호화할 수 있을 것이다. 바람직하게는, 스트림 암호 생성기(150)의 이러한 취약성을 피하기 위해, 새로운 576 비트 키(149)가 블록 암호 생성기(130)에 의해 생성되고 스트림 암호 생성기(150)가 그 자신을 반복하기 전에 스트림 암호 생성기(150)를 리키하기 위해 이용된다. 이러한 방식으로, 스트림-암호-암호화된 출력의 이전 세그먼트의 복호화는 미래 세그먼트의 복호화를 용이하게 하기 위해 이용될 수 없다.As described above, although stream ciphers are generally considerably faster than block ciphers, stream ciphers are less secure than block ciphers because the stream cipher itself is repeated. If the attacker can determine some or all of the generated cipher sequences and the repetition rate, the attacker will be able to decrypt the encrypted material at each iteration of the determined sequence. Preferably, to avoid this vulnerability of the stream cipher generator 150, a new 576 bit key 149 is generated by the block cipher generator 130 and before the stream cipher generator 150 repeats itself. It is used to leak generator 150. In this way, decoding of the previous segment of the stream-password-encrypted output cannot be used to facilitate decoding of future segments.

도 1c는 도 1a의 예시 실시예에서 키들의 이용 및 생성을 위한 예시 타이밍 시퀀스를 도시한다. 각 클록 주기 CLK-1에서 AES 암호화기(135)의 128 비트 블록 암호 출력(139)은 암호 워드들 A0, A1, A2 등으로 식별된다. 도 1a의 레지스터(140)의 콘텐트는 쉬운 참조를 위해 도 1c의 스트림(142)으로서 식별된다. 제 4 출력 A3 후의 주기에서, 전류 출력 A4 및 스트림(142)은 스트림 암호 생성기(150)를 키잉(keying)하는데 이용가능하다. 그 후, 다른 다섯 개의 암호 워드들 A5-A9가 생 성되고 스트림 암호 생성기(150)를 리키(re-key) 하는데 이용된다. 상기에 기재된 바와 같이, 이러한 리키잉(re-keying)는 바람직하게는 스트림 암호 생성기(150)가 그 자신을 반복하기 전에 일어난다.1C illustrates an example timing sequence for use and generation of keys in the example embodiment of FIG. 1A. In each clock period CLK-1, the 128-bit block cipher output 139 of the AES encryptor 135 is identified by cipher words A 0 , A 1 , A 2 , and the like. The contents of register 140 of FIG. 1A are identified as stream 142 of FIG. 1C for easy reference. In a period after the fourth output A 3 , current output A 4 and stream 142 are available for keying stream cipher generator 150. Then, five other cipher words A 5 -A 9 are generated and used to re-key stream cipher generator 150. As described above, this re-keying preferably occurs before the stream cipher generator 150 repeats itself.

당업자는 5 개 암호 워드들의 제 1 생성 이후, 새로운 키가 각각의 새로운 암호 워드가 생성될 때 스트림 암호 생성기(150)에 이용가능하게 될 수 있고, 새로운 암호 워드는 이전 키의 비트들의 서브세트를 교체하는 것을 인식할 것이다. 그러나, 최적의 보안성은 이전 키의 모든 비트들이 새로운 암호 워드들로 교체된 후 리 키잉함으로써 얻어진다.One skilled in the art will, after the first generation of five cipher words, a new key become available to the stream cipher generator 150 when each new cipher word is generated, the new cipher word being a subset of the bits of the previous key. Will recognize the replacement. However, optimal security is obtained by rekeying after all bits of the old key are replaced with new crypto words.

도 2a는 "듀얼 레인(dual lane)" 암호 시스템의 예시 실시예를 도시하며, 두 개의 입력 스트림들(263, 264)은 상기에 기재된 바와 같은 세션 키 생성기(110), 블록 암호 생성기(130) 및 스트림 암호 생성기(150)를 포함하는 단일 블록-스트림 암호 시스템을 이용하여 암호화된다.FIG. 2A illustrates an example embodiment of a “dual lane” cryptographic system, where two input streams 263, 264 are used for session key generator 110, block cryptographic generator 130 as described above. And a stream cipher generator 150, which is encrypted using a single block-stream cipher system.

도 2의 일 실시예에서, 클록 CLK-2(251)의 속도는 두 배이고, 두 개의 암호 워드들(259)은 듀얼 레인 믹싱 유닛(260)의 두 개의 입력 스트림들(263, 264)을 암호화하기 위해 이용가능하다. 그러나, 각각의 레인에 선택적으로 각각의 워드를 적용하는 대신에, 각각의 암호 워드(259)는 입력 스트림들(263, 264)에 대응하는 각각의 레인들을 가로질러 디멀티플렉싱된다. 1-입력 2 출력 디멀티플렉서(220)는 각각의 짝수 암호 워드(259)를 입력 스트림들(263, 264)의 각각의 처음 2 바이트에 제공하고, 각각의 홀수 암호 워드(259)를 입력 스트림들(263, 264)의 각각의 다음의 2 바이트에 제공한다.In one embodiment of FIG. 2, the clock CLK-2 251 is twice the speed, and two cipher words 259 encrypt the two input streams 263, 264 of the dual lane mixing unit 260. It is available for However, instead of selectively applying each word to each lane, each cipher word 259 is demultiplexed across respective lanes corresponding to input streams 263 and 264. The 1-input 2 output demultiplexer 220 provides each even cipher word 259 to each first two bytes of the input streams 263 and 264, and each odd cipher word 259 to the input streams ( 263, 264) to each next two bytes.

도 2b는 도 2a의 실시예에 대한 예시 타이밍 배열을 도시한다. 도시된 바와 같이, 각각의 암호 워드(259)는 입력 스트림들(263, 264)의 각각의 한 쌍의 입력 데이터 바이트들에 적용된다. 상기에 기재된 바와 같이, 바람직하게는 블록 암호 생성기(130)는 스트림 주기가 그 자신을 반복하기 전에 (도 1a의 참조 번호 139로 나타낸) 5 개의 새로운 AES 워드들을 이용하여 스트림 암호 생성기에 대하여 새로운 키(249)를 제공하도록 클록킹된다.2B shows an example timing arrangement for the embodiment of FIG. 2A. As shown, each cipher word 259 is applied to each pair of input data bytes of the input streams 263, 264. As described above, the block cipher generator 130 preferably uses a new key for the stream cipher generator using five new AES words (indicated by reference numeral 139 of FIG. 1A) before the stream period repeats itself. Clocked to provide 249.

당업자는 주어진 애플리케이션의 타이밍 및 구조적 제한들에 따라, 대안적인 구성들은 본 발명의 단일 블록-스트림 인코더를 이용하여 입력 데이터의 두 개의 스트림들을 암호화하도록 이용될 수 있다는 것을 인식할 것이다. 예를 들면, 각 레인은 도 1a 및 도 2a의 4 바이트 레인들과 대조적으로 2 바이트 레인으로 구성될 수 있다. 이러한 실시예에서, 홀수/짝수 디멀티플렉서(220)가 요구되지 않을 것이다. 한편, 도 2a의 4 바이트 레인 예시의 이점은 하나 또는 두 개의(또는 이하에 기재된 바와 같이, 4개의) 입력 스트림들이 본 발명의 블록-스트림 암호화 시스템을 이용하여 암호화되는 것과 상관없이 동일한 레인 구조의 이용이다.Those skilled in the art will appreciate that, depending on the timing and structural limitations of a given application, alternative configurations may be used to encrypt two streams of input data using the single block-stream encoder of the present invention. For example, each lane may consist of two byte lanes as opposed to the four byte lanes of FIGS. 1A and 2A. In such an embodiment, an odd / even demultiplexer 220 would not be required. On the other hand, the advantage of the four byte lane example of FIG. 2A is that one or two (or four, as described below) input streams of the same lane structure regardless of whether they are encrypted using the block-stream encryption system of the present invention. It is use.

도 3a는 예를 들면, 4차선 입력 데이터를 인코딩하기 위해 단일 블록 암호 생성기를 갖는 다중 스트림 암호 생성기들의 이용을 도시한다.3A illustrates the use of multi-stream cryptographic generators with a single block cryptographic generator, for example, to encode four lane input data.

상기에 기재된 바와 같이, 다른 애플리케이션들에서 공통 회로를 이용/재이용하는 것이 종종 이롭다. 이러한 실시예에서, 듀얼 레인 믹싱 유닛(260)은 각각의 4 레인 입력 데이터의 쌍을 암호화하기 위해 이용되고, 두 개의 스트림 암호 생성기들(150, 150´)은 이들 2 개의 믹싱 유닛들(260)에 스트림 암호들을 제공하기 위해 이용된다. 이중 구조 때문에, 4 레인들의 암호화는 도 2a의 2 레인들의 암호화들과 동일한 속도로 달성될 수 있다. 그러나, 스트림 암호 생성기들(150, 150')의 각각의 리 키잉은 스트림 암호를 생성하는 속도보다 매우 낮은 속도에서 일어나기 때문에, 이중 구조는 스트림 암호 생성기들의 쌍에 키들을 제공하기 위해 한 쌍의 블록 암호 생성기들을 포함할 필요가 없다.As described above, it is often beneficial to use / reuse common circuits in other applications. In this embodiment, the dual lane mixing unit 260 is used to encrypt each pair of four lane input data, and the two stream cipher generators 150, 150 'are the two mixing units 260. To provide stream ciphers. Because of the dual structure, encryption of four lanes can be achieved at the same speed as encryption of two lanes of FIG. 2A. However, since each rekeying of the stream cipher generators 150, 150 'occurs at a rate much lower than the rate at which the stream ciphers are generated, the dual architecture provides a pair of blocks to provide keys to the pair of stream cipher generators. There is no need to include password generators.

또한 상기에 기재된 바와 같이, 스트림 암호 생성기(150)에 이용되는 576 비트 키(349)는 AES 암호화기(135)로부터 4와 1/2 128 비트 암호 워드들(339)를 요구한다. 도 3a의 예시 실시예에서, 멀티플렉서(342)는 대안적인 1/2 워드들(344)를 레지스터(340)에 제공하기 위해 이용된다. 이러한 방식으로, 두 개의 완전 키들(349)은 10 개의 워드들(339) 대신에 9 개의 암호 워드들(339)로부터 생성될 수 있다. 즉, 두 개의 스트림 암호 생성기들(150, 150´)을 지원하기 위해 CLK-1(331)의 속도의 더블링(doubling)을 요구하는 대신에, CLK-1(331)의 속도는 단지 1.8 팩터씩 증가될 필요가 있다. 일반적으로 전력 소비가 속도에 관련되기 때문에, AES 성분들에 대한 속도의 이러한 10% 감소는 중요할 수 있다. 대안적으로, AES 암호화기(135)의 속도는 블록 스트림 암호화기 시스템의 전체 속도에서 한계 팩터(limiting factor)라면, 속도에서 이러한 10% 효율 증가는 또한 중요할 수 있다. 부가적으로는, 각각의 스트림 암호 시스템(150, 150´)의 리 키잉을 교번함으로써, 단일 576 비트 폭 레지스터(340)는 스트림 암호 시스템들(150, 150´) 모두에 576 비트 키(349)를 제공하기 위해 이용될 수 있고, 회로 및 레이아웃 영역의 상당량을 절약할 수 있다.Also as described above, the 576 bit key 349 used in the stream cipher generator 150 requires four and a half 128 bit cipher words 339 from the AES encryptor 135. In the example embodiment of FIG. 3A, multiplexer 342 is used to provide alternate half words 344 to register 340. In this way, two full keys 349 can be generated from nine cryptographic words 339 instead of ten words 339. That is, instead of requiring a doubling of the speed of the CLK-1 331 to support the two stream cipher generators 150, 150 ', the speed of the CLK-1 331 is only 1.8 factors. It needs to be increased. Since power consumption is generally related to speed, this 10% reduction in speed for AES components can be significant. Alternatively, if the speed of the AES encryptor 135 is a limiting factor in the overall speed of the block stream encryptor system, this 10% efficiency increase in speed may also be important. Additionally, by alternating rekeying of each stream cipher system 150, 150 ′, a single 576 bit wide register 340 provides a 576 bit key 349 to both stream cipher systems 150, 150 ′. Can be used to provide a significant amount of circuit and layout area savings.

도 3b는 도 3a의 실시예에 대한 예시 타이밍도를 도시한다. 종래 실시예들에서와 같이, 5 개의 128 비트 암호 워드들(339)의 생성시, 576 비트 키(349)는 이들 워드들 중 4 개 및 레지스터(341)에 저장된 암호 워드의 절반(344)을 이용하여 생성될 수 있다. 이러한 제 1 키는 "짝수" 스트림 암호 생성기(150)를 키잉하기 위해 이용된다. 4 개의 추가 암호 워드들(339)의 생성시, 다른 키(349)가 제 1 키를 위해 이용되지 않았던 이들 4 개의 새로운 워드들 및 암호 워드의 절반(344)을 이용하여 생성될 수 있다. 이러한 제 2 키는 "홀수" 스트림 암호 생성기(150´)를 키잉하기 위해 이용된다. 이러한 5 개 워드/4 개 워드 시퀀스는 CLK-1(133)의 매 9 주기들마다 암호 생성기들(150, 150´)의 각각에 대한 대안적인 유일한 키들을 제공하기를 반복한다.FIG. 3B shows an example timing diagram for the embodiment of FIG. 3A. As in the conventional embodiments, upon generation of five 128-bit cipher words 339, the 576-bit key 349 takes four of these words and half 344 of the cipher word stored in the register 341. Can be generated. This first key is used to key the “even” stream cipher generator 150. In generating four additional cryptographic words 339, another key 349 may be generated using these four new words and half 344 of the cryptographic word that were not used for the first key. This second key is used to key the "odd" stream cipher generator 150 '. This five word / 4 word sequence repeats providing alternative unique keys for each of the cryptographic generators 150, 150 ′ every nine cycles of CLK-1 133.

당업자는 본 명세서에서 대안적인 구조들이 실행될 수 있다는 것을 인식할 것이다. 예를 들면, 2 개 키들(349)을 제공하기 위한 9 개의 암호 워드들(339)의 이용은 또한 도 1a, 도 2a의 실시예들에 적용될 수 있다. 그러나, 블록 및 스트림 암호 생성기들의 상대적인 속도는 일반적으로 블록 암호 생성기가 단일 스트림 암호 생성기에 결합될 때 그러한 효과를 요구하지 않는다. 유사한 방식으로, 단일 32 비트 스트림 암호 생성기는 4 개 데이터 8 비트 입력 스트림들 각각을 직접 암호화하도록 단순하게 구성될 수 있지만, 이는 스트림 암호 생성기가 도 3a의 생성기들의 2배의 속도에서 동작하거나, 또는 도 3a의 입력 데이터의 데이터 속도가 반으로 감소되는 것을 요구할 것이다.Those skilled in the art will appreciate that alternative structures may be implemented herein. For example, the use of nine cryptographic words 339 to provide two keys 349 may also apply to the embodiments of FIGS. 1A and 2A. However, the relative speeds of block and stream cipher generators generally do not require such an effect when the block cipher generator is coupled to a single stream cipher generator. In a similar manner, a single 32-bit stream cipher generator can be simply configured to directly encrypt each of the four data 8-bit input streams, although the stream cipher generator operates at twice the speed of the generators of FIG. 3A, or It will require that the data rate of the input data of FIG. 3A be reduced by half.

당업자는 또한 본 명세서에 제시된 개념들을 예들에 제한하지 않고, 더 일반 적인 의미에 적용될 수 있는 것을 인식할 것이다. 예를 들면, 입력 데이터의 상대적인 속도들, 스트림 암호 속도, 및 블록 암호 속도에 따라, 단일 블록 암호 생성기는 2 개 이상의 스트림 암호 생성기들에 키들을 제공하도록 이용될 수 있고; 단일 스트림 암호 생성기들은 4 개 이상의 데이터 레인들 등을 암호화하기 위해 이용될 수 있다.Those skilled in the art will also recognize that the concepts presented herein are not limited to the examples and can be applied in a more general sense. For example, depending on the relative speeds of the input data, stream cipher rate, and block cipher rate, a single block cipher generator can be used to provide keys to two or more stream cipher generators; Single stream cryptographic generators may be used to encrypt four or more data lanes, and the like.

도 4a 및 도 4b는 32 비트 암호 워드를 8 비트 데이터 워드들의 래인에 적용하는 믹싱 시스템의 예시 대안적인 실시예들을 도시한다.4A and 4B show example alternative embodiments of a mixing system that applies a 32 bit cipher word to the lane of 8 bit data words.

도 4a에서, 4 개 시프트 레지스터들 R1-R4(420)은 입력 데이터 클록 CLK-3에 의해 클록킹된 데이터 입력 스트림의 8 비트 워드들을 순차적으로 수신하기 위해 이용된다. 32 비트 암호 출력(450)은 암호화 멀티플렉서(410)를 통해 레지스터들 R1-R4에 제공되는 4개의 8 비트 세그먼트들로 분할된다. 각각의 암호화 멀티플렉서(410)는 각각의 레지스터가 이전 스테이지로부터 암호화되지 않은 데이터 입력 또는 이전 스테이지로부터 암호화 데이터 입력을 수신하는지를 결정한다. 각각의 암호화 멀티플렉서(410)는 8 비트 폭 XOR 게이트(412), 및 XOR 게이트의 입력들 중 하나를 결정하는 입력 스위치(411)를 포함한다. 암호화 없이 입력 데이터의 패스 스루(pass-through)를 달성하기 위해, 스위치(411)는 고정된 "0" 출력을 제공하고, XOR 게이트(412)는 입력 데이터에 아무런 영향을 주지 않는다. 세 개의 입력 데이터 워드들이 레지스터들 R1-R3(420)으로 클록킹될 때 암호화 신호가 인에이블되고, 제 4 데이터 워드가 제 1 암호화 멀티플렉서(410)의 입력에 이용가능하다. 다음으로 레지스터들은 암호화 신호가 인에이블되는 동안 클록킹되고, 레지스터 R1- R4(420)은 암호화된 데이터 워드로 로딩될 것이다. 그 후, 암호화 신호는 디스에이블되고, 프로세스는 반복된다. 후속하는 데이터 입력 워드 각각은 레지스터들로 클록킹되는 동안, 암호화 데이터 워드들은 클록킹 아웃되고, 이에 의해 최소 지연으로 계속적인 암호화를 달성한다. 상기에 기재된 바와 같이, 암호화 신호는 매 4 데이터 클록 K-3 주기들에 대해 한번 인에이블되어서, 암호 출력(450)은 기대되는 바와 같이, 데이터 입력 속도의 1/4만 제공될 필요가 있다.In FIG. 4A, four shift registers R1-R4 420 are used to sequentially receive the 8 bit words of the data input stream clocked by the input data clock CLK-3. The 32 bit cryptographic output 450 is divided into four 8 bit segments provided to registers R1-R4 via cryptographic multiplexer 410. Each cryptographic multiplexer 410 determines whether each register receives unencrypted data input from a previous stage or encrypted data input from a previous stage. Each cryptographic multiplexer 410 includes an 8 bit wide XOR gate 412, and an input switch 411 that determines one of the inputs of the XOR gate. To achieve pass-through of input data without encryption, switch 411 provides a fixed "0" output and XOR gate 412 has no effect on the input data. The encryption signal is enabled when three input data words are clocked into registers R1-R3 420 and a fourth data word is available for input of the first encryption multiplexer 410. The registers are then clocked while the encryption signal is enabled, and registers R1-R4 420 will be loaded into the encrypted data word. Thereafter, the encryption signal is disabled and the process is repeated. While each subsequent data input word is clocked into registers, the encrypted data words are clocked out, thereby achieving continuous encryption with minimal delay. As described above, the encryption signal is enabled once for every four data clock K-3 periods so that the cryptographic output 450 needs to be provided only one quarter of the data input rate, as expected.

도 4b에서, 스위치(440)는 암호 출력(450)의 각각의 4개의 8 비트 세그먼트들을 순차적으로 선택하기 위해 이용된다. 선택된 암호 세그먼트는 현재 8 비트 데이터 입력 워드로 XOR되고, 바람직하게는 스위칭 과도 현상들(switching transients)을 피하기 위해 레지스터(420)로 클록킹된다. 암호 출력(450)은 바람직하게는 데이터 입력 클록 CLK-3의 매 4 사이클들마다 업데이트되고, 스위치(440)로부터 8 비트 암호 세그먼트가 재이용된다.In FIG. 4B, switch 440 is used to sequentially select each of the four 8 bit segments of cryptographic output 450. The selected cipher segment is currently XORed with an 8 bit data input word and is preferably clocked into register 420 to avoid switching transients. The cryptographic output 450 is preferably updated every four cycles of the data input clock CLK-3 and the 8 bit cryptographic segment is reused from the switch 440.

당업자는 대안적인 암호화 구성들이 스트림 암호 생성기에 의해 제공되는 암호 비트들의 각각의 최적의/효과적인 이용을 보장하도록 이용될 수 있다는 것을 인식할 것이다.Those skilled in the art will appreciate that alternative cryptographic configurations may be used to ensure optimal / effective use of each of the cipher bits provided by the stream cipher generator.

본 발명의 원리들이 상기에 단지 예시된다. 그러므로 당업자는 비록 본 발명에 명확하게 개시되거나 도시되지 않았지만, 본 발명의 원리들을 구현하고, 후속하는 청구항들의 범위 및 정신 내에 있는 다양한 구성들을 설계할 수 있을 것임을 인식할 것이다.The principles of the invention are only illustrated above. Therefore, those skilled in the art will recognize that although not explicitly disclosed or shown in the present invention, it is possible to implement the principles of the present invention and to design various configurations within the scope and spirit of the following claims.

이들 청구항들을 해석시, 다음이 이해될 것이다:In interpreting these claims, the following will be understood:

a) 용어 "포함하는"은 주어진 청구항에서 기재된 것들과 다른 요소들 또는 동작들의 존재를 배재하는 것이 아니다.a) The term "comprising" does not exclude the presence of elements or acts other than those described in a given claim.

b) 요소에 선행하는 단수 용어는 이러한 복수의 요소들의 존재를 배제하는 것이 아니다.b) The singular term preceding the element does not exclude the presence of such a plurality of elements.

c) 청구항들에서 어떤 참조 기호들은 그들의 범위를 제한하지 않는다.c) Certain reference signs in the claims do not limit their scope.

d) 수개의 "수단"은 구조 또는 기능이 구현되는 동일한 아이템 또는 하드웨어 또는 소프트웨어로 표현될 수 있다.d) Several "means" may be represented in the same item or hardware or software in which a structure or function is implemented.

e) 개시된 요소들의 각각은 (예를 들면, 이산 및 집적된 전자 회로를 포함하는) 하드웨어부들, 소프트웨어부들(예를 들면, 컴퓨터 프로그래밍), 및 그들의 다른 조합들로 구성될 수 있다.e) Each of the disclosed elements may be comprised of hardware portions (eg, including discrete and integrated electronic circuits), software portions (eg, computer programming), and other combinations thereof.

f) 하드웨어부들은 아날로그 및 디지털부들 중 하나 또는 그 둘 모두로 구성될 수 있다.f) The hardware parts may consist of one or both of the analog and digital parts.

g) 어떤 개시된 장치들 또는 그들의 부분들은 달리 특정하게 언급되지 않으면, 함께 조합되거나 또는 다른 부분들로 분할될 수 있다.g) Certain disclosed devices or portions thereof may be combined together or divided into other portions, unless specifically noted otherwise.

h) 특정하게 나타내어지지 않으면, 동작들의 특정 시퀀스가 요구되는 것이 의도되지 않는다.h) Unless specifically indicated, it is not intended that a specific sequence of operations be required.

i) 용어 "복수의" 요소는 청구된 요소의 두 개 이상을 포함하고, 요소들의 수의 어떤 특정 범위를 암시하지 않는다; 즉, 복수의 요소들은 두 개의 요소들뿐일 수 있다.i) The term "plurality" of elements includes two or more of the claimed elements and does not imply any particular range of number of elements; That is, the plurality of elements may be only two elements.

Claims (20)

데이터를 암호화하기 위한 시스템에 있어서,In a system for encrypting data, 적어도 하나의 암호 키(149, 249, 349)를 생성하도록 구성된 블록 암호 유닛(130);A block cipher unit 130, configured to generate at least one cipher key 149, 249, 349; 상기 적어도 하나의 암호 키(149, 249, 349)에 기초하여 암호 워드들(cipher words)(159, 259, 358-359)의 시퀀스를 생성하도록 구성되는 스트림 암호 유닛(150); 및A stream cipher unit (150) configured to generate a sequence of cipher words (159, 259, 358-359) based on the at least one cryptographic key (149, 249, 349); And 상기 암호 워드들(159, 259, 358-359) 각각의 다수 비트들 및 데이터 입력 아이템들(163, 263-264)의 다수 비트들을 병렬로 조합하도록 구성되는 믹서 유닛(160, 260)을 포함하는, 데이터 암호화 시스템.A mixer unit (160, 260) configured to combine multiple bits of each of the cipher words (159, 259, 358-359) and multiple bits of data input items (163, 263-264) in parallel. , Data encryption system. 제 1 항에 있어서,The method of claim 1, 각각의 암호 워드(159, 259, 358-359)는 'n' 비트들을 포함하고,Each cipher word 159, 259, 358-359 includes 'n' bits, 상기 믹서 유닛(160, 260)은 'n' 비트들의 상기 데이터 입력 아이템들(163, 263-264)의 병렬 암호화(parallel encryption)를 용이하게 하기 위해 상기 데이터 입력 아이템들(163, 263-264)을 정렬하도록 구성되는, 데이터 암호화 시스템.The mixer unit 160, 260 may be configured to facilitate parallel encryption of 'n' bits of the data input items 163, 263-264 with the data input items 163, 263-264. Configured to sort the data encryption system. 제 1 항에 있어서,The method of claim 1, 각각의 데이터 입력 아이템들(163, 263-264)은 입력 데이터 속도(CLK-3)로 도달하는 'm' 비트들을 포함하고,Each data entry item 163, 263-264 includes 'm' bits reaching the input data rate CLK-3, 상기 믹서 유닛(160, 260)은 상기 입력 데이터 속도(CLK-3)로 상기 'm' 비트들의 데이터 입력 아이템들(163, 263-264)의 병렬 암호화를 용이하게 하기 위해 상기 암호 워드들(159, 259, 358-359)을 정렬하도록 구성되는, 데이터 암호화 시스템.The mixer unit 160, 260 is capable of the encryption words 159 to facilitate parallel encryption of the data entry items 163, 263-264 of the 'm' bits at the input data rate CLK-3. 259, 358-359. 제 1 항에 있어서,The method of claim 1, 상기 스트림 암호 유닛(150)은 반복 주기 속도(repeat cycle rate)를 특징으로 하고,The stream cipher unit 150 is characterized by a repeat cycle rate (repeat cycle rate), 상기 블록 암호 유닛(130)은 상기 반복 주기 속도 이하인 암호 키 속도(CLK-1)로 다른 암호 키(149, 249, 349)를 제공하도록 구성되고,The block cipher unit 130 is configured to provide different cipher keys 149, 249, 349 at an cipher key rate CLK-1 that is equal to or less than the repetition period rate, 상기 스트림 암호 유닛(150)은 상기 암호 키 속도(CLK-1) 이하인 리키(re-key) 속도로 상기 다른 암호 키(149, 249, 349)에 의해 리키되도록 구성되는, 데이터 암호화 시스템.And the stream cipher unit (150) is configured to be rekeyed by the other cipher key (149, 249, 349) at a re-key rate that is less than or equal to the cipher key rate (CLK-1). 제 4 항에 있어서,The method of claim 4, wherein 상기 암호 키 속도(CLK-1)는 상기 반복 주기 속도와 같은, 데이터 암호화 시스템.And said cryptographic key rate (CLK-1) is equal to said repetition period rate. 제 4 항에 있어서,The method of claim 4, wherein 상기 리키 속도(re-key rate)는 상기 암호 키 속도(CLK-1)와 같은, 데이터 암호화 시스템.And the re-key rate is equal to the cryptographic key rate (CLK-1). 제 4 항에 있어서,The method of claim 4, wherein 상기 블록 암호 유닛(130)은 각각의 다른 암호 키(149, 249, 349)를 형성하는 복수의 블록 암호 출력들(139, 339)을 생성하도록 구성되는, 데이터 암호화 시스템.The block cipher unit (130) is configured to generate a plurality of block cipher outputs (139, 339) forming respective different cipher keys (149, 249, 349). 제 7 항에 있어서,The method of claim 7, wherein 적어도 하나의 다른 암호 키(349)는 이전 암호 키(349)의 하나 이상의 블록 암호 출력들(339)을 포함하는, 데이터 암호화 시스템.The at least one other cryptographic key (349) comprises one or more block cipher outputs (339) of the previous cryptographic key (349). 제 1 항에 있어서,The method of claim 1, 상기 블록 암호 유닛(130)은 각각의 다른 암호 키(149, 249, 349)를 형성하는 복수의 블록 암호 출력들(139, 339)을 생성하도록 구성되는, 데이터 암호화 시스템.The block cipher unit (130) is configured to generate a plurality of block cipher outputs (139, 339) forming respective different cipher keys (149, 249, 349). 제 8 항에 있어서,The method of claim 8, 상기 적어도 하나의 다른 암호 키(349)는 상기 이전 암호 키(349)의 하나 이상의 블록 암호 출력들(339)을 포함하는, 데이터 암호화 시스템.The at least one other cryptographic key (349) comprises one or more block cryptographic outputs (339) of the previous cryptographic key (349). 제 1 항에 있어서,The method of claim 1, 상기 블록 암호 유닛(130)은 AES 암호화기(135)를 포함하는, 데이터 암호화 시스템.The block cipher unit (130) comprises an AES encryptor (135). 제 11 항에 있어서,The method of claim 11, wherein 상기 스트림 암호 유닛(150)은 SNOW-2 스트림 암호 생성기를 포함하는, 데이터 암호화 시스템.The stream cipher unit (150) comprises a SNOW-2 stream cipher generator. 데이터를 암호화하는 방법에 있어서,In a method of encrypting data, 적어도 하나의 블록 암호 키(149, 249, 349)를 생성하는 단계(130);Generating 130 at least one block cipher key 149, 249, 349; 상기 적어도 하나의 블록 암호 키(149, 249, 349)에 기초하여 암호 워드들(159, 259, 358-359)의 시퀀스를 생성하는 단계(150); 및Generating (150) a sequence of cipher words (159, 259, 358-359) based on the at least one block cipher key (149, 249, 349); And 다수 비트들의 각각의 상기 암호 워드들을 이용하여 다수 비트들의 데이터 입력 아이템들(163, 263-264)을 병렬 암호화하는 단계(160, 260)를 포함하는, 데이터 암호화 방법.Parallel encrypting (160, 260) multiple bits of data input items (163, 263-264) using the cipher words of each of the multiple bits. 제 13 항에 있어서,The method of claim 13, 'n' 비트들의 상기 데이터 입력 아이템들(163, 263-264)의 병렬 암호화를 용이하게 하도록 상기 데이터 입력 아이템들(163, 263-264)을 정렬하는 단계를 포함 하고, 상기 'n'은 각각의 암호 워드(159, 259, 358-359)의 비트 폭인, 데이터 암호화 방법.aligning the data entry items 163, 263-264 to facilitate parallel encryption of the 'n' bits of the data entry items 163, 263-264, wherein 'n' are each; And a bit width of the cipher words (159, 259, 358-359). 제 13 항에 있어서,The method of claim 13, 상기 암호 워드들(159, 259, 358-359)의 시퀀스의 반복 주기 속도 이하인 암호 키 속도(CLK-1)로 다른 블록 암호 키들(149, 249, 349)을 생성하는 단계(130); 및Generating (130) other block cipher keys (149, 249, 349) at an encryption key rate (CLK-1) that is less than or equal to the repetition period rate of the sequence of cipher words (159, 259, 358-359); And 상기 다른 블록 암호 키들(149, 249, 349)에 기초하여 암호 워드들(159, 259, 358-359)의 추가 시퀀스들을 생성하는 단계(150)를 포함하는, 데이터 암호화 방법.Generating (150) additional sequences of cipher words (159, 259, 358-359) based on the other block cipher keys (149, 249, 349). 제 13 항에 있어서,The method of claim 13, 상기 적어도 하나의 블록 암호 키(149, 249, 349)를 제공하기 위해 복수의 블록 암호 출력들(139, 339)을 생성하는 단계(135)를 포함하는, 데이터 암호화 방법.Generating (135) a plurality of block cipher outputs (139, 339) to provide the at least one block cipher key (149, 249, 349). 제 13 항에 있어서,The method of claim 13, 상기 적어도 하나의 블록 암호 키(149, 249, 349)를 생성하는 단계(135)는 AES 암호를 생성하는 단계를 포함하는, 데이터 암호화 방법.Generating (135) the at least one block cipher key (149, 249, 349) comprises generating an AES cipher. 제 13 항에 있어서,The method of claim 13, 상기 암호 워드들(159, 259, 358-359)의 시퀀스를 생성하는 단계(150)는 SNOW-2 암호를 생성하는 단계를 포함하는, 데이터 암호화 방법.Generating (150) the sequence of cipher words (159, 259, 358-359) comprises generating a SNOW-2 cipher. 상기 컴퓨터 판독가능 매체들 상에 제공된 컴퓨터 프로그램에 있어서,A computer program provided on the computer readable media, 상기 컴퓨터 프로그램이 프로세싱 시스템상에서 실행될 때, 상기 프로세싱 시스템이:When the computer program is run on a processing system, the processing system is: 적어도 하나의 블록 암호 키(149, 249, 349)를 생성하고(130),Generate (130) at least one block cryptographic key (149, 249, 349), 상기 적어도 하나의 블록 암호 키(149, 249, 349)에 기초하여 암호 워드들(159, 259, 358-359)의 시퀀스를 생성하고(150),Generate a sequence of encryption words 159, 259, 358-359 based on the at least one block encryption key 149, 249, 349 (150), 상기 다수 비트들의 각각의 상기 암호 워드들(159, 259, 358-359)을 이용하여 다수 비트들의 데이터 입력 아이템들(159, 259, 358-359)을 병렬로 암호화하게 하도록(160) 구성되는, 컴퓨터 프로그램.Configured to encrypt 160 multiple bits of data input items 159, 259, 358-359 in parallel using the cipher words 159, 259, 358-359 of each of the multiple bits, Computer programs. 제 19 항에 있어서,The method of claim 19, 상기 프로세싱 시스템이:The processing system is: AES 암호를 이용하여 상기 적어도 하나의 블록 암호 키(149, 249, 349)를 생성하고(130),Generate (130) the at least one block cipher key 149, 249, 349 using an AES cipher; SNOW-2 암호를 이용하여 상기 암호 워드들(159, 259, 358-359)의 시퀀스를 생성하게(150) 하는, 컴퓨터 프로그램.And generate (150) the sequence of cipher words (159, 259, 358-359) using a SNOW-2 cipher.
KR1020087015229A 2005-11-23 2006-11-17 Multi-lane high-speed encryption and decryption KR20080073348A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73921905P 2005-11-23 2005-11-23
US60/739,219 2005-11-23

Publications (1)

Publication Number Publication Date
KR20080073348A true KR20080073348A (en) 2008-08-08

Family

ID=37876921

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087015229A KR20080073348A (en) 2005-11-23 2006-11-17 Multi-lane high-speed encryption and decryption

Country Status (6)

Country Link
EP (1) EP1955473A1 (en)
JP (1) JP2009516976A (en)
KR (1) KR20080073348A (en)
CN (1) CN101313509A (en)
RU (1) RU2008125109A (en)
WO (1) WO2007060587A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8666064B2 (en) 2009-11-26 2014-03-04 Samsung Electronics Co., Ltd. Endecryptor capable of performing parallel processing and encryption/decryption method thereof
KR20220091737A (en) * 2020-12-24 2022-07-01 주식회사 우리넷 Method and apparatus for processing low latency block encription

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194854B2 (en) * 2008-02-27 2012-06-05 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
CN101923802B (en) * 2009-06-12 2012-05-23 中国科学院数据与通信保护研究教育中心 Sequential cipher realization method and device
FR2963713A1 (en) * 2010-08-04 2012-02-10 St Microelectronics Grenoble 2 METHOD FOR ENCRYPTING A DATA STREAM
CN103081397B (en) * 2010-08-24 2015-09-23 三菱电机株式会社 Encryption device, encryption system, encryption method
US8533456B2 (en) 2010-10-07 2013-09-10 King Saud University Accelerating stream cipher operations using single and grid systems
CN103365581B (en) * 2012-03-31 2019-01-25 百度在线网络技术(北京)有限公司 A kind of method and apparatus that user equipment is carried out touching unlock based on unlocking pin
US9584488B2 (en) 2013-08-09 2017-02-28 Introspective Power, Inc. Data encryption cipher using rotating ports
US9584313B2 (en) 2013-08-09 2017-02-28 Introspective Power, Inc. Streaming one time pad cipher using rotating ports for data encryption
JP2017005682A (en) * 2016-02-16 2017-01-05 国立大学法人京都大学 Data processing device, data transmission method, computer program and data server
CN107197458B (en) * 2017-05-10 2020-06-19 京信通信系统(中国)有限公司 Data encryption method and device
KR102097702B1 (en) * 2018-10-18 2020-04-07 주식회사 우리넷 Key generation method for low delay block cipher operating mode
US11283619B2 (en) * 2019-06-20 2022-03-22 The Boeing Company Bit mixer based parallel MAC and hash functions
US11394531B2 (en) 2019-07-12 2022-07-19 Intel Corporation Overhead reduction for link protection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085283A1 (en) * 2005-02-09 2006-08-17 Koninklijke Philips Electronics N.V. High speed encryption and decryption

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8666064B2 (en) 2009-11-26 2014-03-04 Samsung Electronics Co., Ltd. Endecryptor capable of performing parallel processing and encryption/decryption method thereof
KR20220091737A (en) * 2020-12-24 2022-07-01 주식회사 우리넷 Method and apparatus for processing low latency block encription

Also Published As

Publication number Publication date
WO2007060587A1 (en) 2007-05-31
CN101313509A (en) 2008-11-26
JP2009516976A (en) 2009-04-23
RU2008125109A (en) 2009-12-27
EP1955473A1 (en) 2008-08-13

Similar Documents

Publication Publication Date Title
KR20080073348A (en) Multi-lane high-speed encryption and decryption
JP5822970B2 (en) Encryption device for pseudo-random generation, data encryption, and message encryption hashing
US8416947B2 (en) Block cipher using multiplication over a finite field of even characteristic
US7945049B2 (en) Stream cipher using multiplication over a finite field of even characteristic
US9515818B2 (en) Multi-block cryptographic operation
US8094816B2 (en) System and method for stream/block cipher with internal random states
JP2001007800A (en) Ciphering device and ciphering method
US20060023875A1 (en) Enhanced stream cipher combining function
JP2010140026A (en) Method and device for encryption chained mode
Iftikhar et al. Evaluating the Performance Parameters of Cryptographic Algorithms for IOT-based Devices
JP3769804B2 (en) Decoding method and electronic device
KR20050087271A (en) Key schedule apparatus for generating an encryption round key and a decryption round key selectively corresponding to initial round key having variable key length
US20040223609A1 (en) Data encryption method
GB2426673A (en) Forming a ciphertext sequence using a plurality of initialisation values
Mohan et al. Revised aes and its modes of operation
Shinde et al. A review of various encryption techniques
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
WO2006085283A1 (en) High speed encryption and decryption
Das et al. An efficient VLSI implementation of AES encryption using ROM submodules and exclusion of shiftrows
JP5076160B2 (en) Encryption method and decryption method
KR102348802B1 (en) AES encryption and decryption circuit
JP4708914B2 (en) Decryption method
Braddy Multiple Algorithm Aperiodic Cryptosystem
KR20180021473A (en) Encryption device
Khaleel et al. A Comparative Performance Analysis of Modified DÓ § mÓ § si’ s Cryptosystem and Data Encryption Standard

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination