KR20080073348A - Multi-lane high-speed encryption and decryption - Google Patents
Multi-lane high-speed encryption and decryption Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Abstract
Description
본 출원은 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
믹싱 유닛(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
도 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
당업자는 도 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,
본 발명의 일 양태에 따라, 스트림 암호 생성기(150)는 블록 암호 생성기(130)로부터 그것의 576-비트 키(149)를 수신한다. 바람직하게는, 블록 암호 생성기(130)는 사용자가 암호화 세션을 시작하는 각각의 시간에 다른 키를 생성하는 세션 키 생성기(session key generator; 110)로부터 그의 키를 수신한다. 바람직하게는, 세션 키는 보안성을 향상시키기 위해 규칙적으로 업데이트된다.According to one aspect of the invention, the
도 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
상기에 기재된 바와 같이, 비록 스트림 암호 생성기들은 일반적으로 블록 암호 생성기들보다 상당히 빠르지만, 스트림 암호들은 스트림 암호 그 자체가 반복되기 때문에 블록 암호들보다 보안성이 낮다. 공격자가 생성된 암호 시퀀스들 일부 또는 전부 및 반복 속도를 결정할 수 있는 경우, 공격자는 결정된 시퀀스의 각각의 반복에서 암호화된 재료를 복호화할 수 있을 것이다. 바람직하게는, 스트림 암호 생성기(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
도 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
당업자는 5 개 암호 워드들의 제 1 생성 이후, 새로운 키가 각각의 새로운 암호 워드가 생성될 때 스트림 암호 생성기(150)에 이용가능하게 될 수 있고, 새로운 암호 워드는 이전 키의 비트들의 서브세트를 교체하는 것을 인식할 것이다. 그러나, 최적의 보안성은 이전 키의 모든 비트들이 새로운 암호 워드들로 교체된 후 리 키잉함으로써 얻어진다.One skilled in the art will, after the first generation of five cipher words, a new key become available to the
도 2a는 "듀얼 레인(dual lane)" 암호 시스템의 예시 실시예를 도시하며, 두 개의 입력 스트림들(263, 264)은 상기에 기재된 바와 같은 세션 키 생성기(110), 블록 암호 생성기(130) 및 스트림 암호 생성기(150)를 포함하는 단일 블록-스트림 암호 시스템을 이용하여 암호화된다.FIG. 2A illustrates an example embodiment of a “dual lane” cryptographic system, where two
도 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
도 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
당업자는 주어진 애플리케이션의 타이밍 및 구조적 제한들에 따라, 대안적인 구성들은 본 발명의 단일 블록-스트림 인코더를 이용하여 입력 데이터의 두 개의 스트림들을 암호화하도록 이용될 수 있다는 것을 인식할 것이다. 예를 들면, 각 레인은 도 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 /
도 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
또한 상기에 기재된 바와 같이, 스트림 암호 생성기(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
도 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-
당업자는 본 명세서에서 대안적인 구조들이 실행될 수 있다는 것을 인식할 것이다. 예를 들면, 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
당업자는 또한 본 명세서에 제시된 개념들을 예들에 제한하지 않고, 더 일반 적인 의미에 적용될 수 있는 것을 인식할 것이다. 예를 들면, 입력 데이터의 상대적인 속도들, 스트림 암호 속도, 및 블록 암호 속도에 따라, 단일 블록 암호 생성기는 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-
도 4b에서, 스위치(440)는 암호 출력(450)의 각각의 4개의 8 비트 세그먼트들을 순차적으로 선택하기 위해 이용된다. 선택된 암호 세그먼트는 현재 8 비트 데이터 입력 워드로 XOR되고, 바람직하게는 스위칭 과도 현상들(switching transients)을 피하기 위해 레지스터(420)로 클록킹된다. 암호 출력(450)은 바람직하게는 데이터 입력 클록 CLK-3의 매 4 사이클들마다 업데이트되고, 스위치(440)로부터 8 비트 암호 세그먼트가 재이용된다.In FIG. 4B,
당업자는 대안적인 암호화 구성들이 스트림 암호 생성기에 의해 제공되는 암호 비트들의 각각의 최적의/효과적인 이용을 보장하도록 이용될 수 있다는 것을 인식할 것이다.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)
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)
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)
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)
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 |
-
2006
- 2006-11-17 KR KR1020087015229A patent/KR20080073348A/en not_active Application Discontinuation
- 2006-11-17 CN CN 200680043844 patent/CN101313509A/en active Pending
- 2006-11-17 JP JP2008541867A patent/JP2009516976A/en active Pending
- 2006-11-17 WO PCT/IB2006/054319 patent/WO2007060587A1/en active Application Filing
- 2006-11-17 RU RU2008125109/09A patent/RU2008125109A/en not_active Application Discontinuation
- 2006-11-17 EP EP06821487A patent/EP1955473A1/en not_active Withdrawn
Cited By (2)
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 |