KR20040037361A - 데이터 암호화 표준 알고리즘의 키 생성 장치 - Google Patents

데이터 암호화 표준 알고리즘의 키 생성 장치 Download PDF

Info

Publication number
KR20040037361A
KR20040037361A KR1020020065828A KR20020065828A KR20040037361A KR 20040037361 A KR20040037361 A KR 20040037361A KR 1020020065828 A KR1020020065828 A KR 1020020065828A KR 20020065828 A KR20020065828 A KR 20020065828A KR 20040037361 A KR20040037361 A KR 20040037361A
Authority
KR
South Korea
Prior art keywords
data
encryption
decryption
key
shift
Prior art date
Application number
KR1020020065828A
Other languages
English (en)
Other versions
KR100440074B1 (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 주식회사 하이닉스반도체
Priority to KR10-2002-0065828A priority Critical patent/KR100440074B1/ko
Priority to DE10261408A priority patent/DE10261408A1/de
Priority to IT001131A priority patent/ITTO20021131A1/it
Priority to FR0216914A priority patent/FR2846497B1/fr
Publication of KR20040037361A publication Critical patent/KR20040037361A/ko
Application granted granted Critical
Publication of KR100440074B1 publication Critical patent/KR100440074B1/ko

Links

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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/122Hardware reduction or efficient architectures
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

본 발명은 DES(Data Encryption Standard : 데이터 암호화 표준)의 암호화(Encryption)와 복호화(Decryption) 알고리즘의 공통점을 이용하여 키 생성부의 하드웨어 구현을 최적화한 데이터 암호화 표준 알고리즘의 키 생성 장치에 관한 것으로, 암호화·복호화 시, 각 방향의 쉬프트(Shift)를 방향에 따라 각각 구현하지 않고, 공동으로 구현함으로써 하드웨어의 면적을 최적화하는 효과가 있다.

Description

데이터 암호화 표준 알고리즘의 키 생성 장치{Apparatus for generating key in algorithm of data encryption standard}
본 발명은 데이터 암호화 표준 알고리즘의 키 생성 장치에 관한 것으로, DES(Data Encryption Standard : 데이터 암호화 표준)의 암호화(Encryption)와 복호화(Decryption) 알고리즘의 공통점을 이용하여 키 생성부의 하드웨어 구현을 최적화한 데이터 암호화 표준 알고리즘의 키 생성 장치에 관한 것이다.
도 1은 DES의 일반적인 암호화 알고리즘을 나타내는 것으로, 왼쪽의 데이터 암호화 부분(10)과 오른쪽의 키 생성부(20)로 나누어진다.
데이터 암호화 부분(10)은 입력되는 64 비트의 일반 데이터를 좌우 32 비트로 나누고, 여기에 키 생성부(20)에서 생성된 48 비트의 키(Ki, i=1, …, 16)와 f 함수 및 XOR(Exclusive-OR)을 이용하여 연산하는 과정을 16번 반복하고, 다시 좌우 32 비트의 값을 바꾸어서 암호화한다.
이러한 암호화 알고리즘에서 키 생성부(20)를 이하 상세히 설명한다.
사용자는 56 비트의 키를 입력하는데 여기에 8 비트의 패리티(Parity) 비트를 포함시켜 초기 키는 64 비트로 입력된다.
즉, 패리티 비트는 64 비트의 매 8번째 비트에 해당되어, 각 바이트는 홀수 개의 '1'을 갖도록 패리티 비트가 조정된다.
이러한 64 비트의 초기 키에 먼저 조합 선택 1(Permuted Choice 1)의 연산을 한다.
이때, 패리티 비트는 제외되어, 56 비트만이 조합 선택 1의 연산에 참여한다.
다음 표 1은 조합 선택 1의 연산에 따른 초기 키의 비트 배열을 나타낸다.
[표 1]
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
즉, 조합 선택 1 결과의 첫번째 비트는 초기 키의 57번째 비트에 해당되고, 결과 값의 두번째 비트는 초기 키의 49번째 비트에 해당됨을 나타낸다.
이렇게 초기 키의 패리티 비트를 제외한 비트의 배열이 바뀌게 된다.
그 후, 조합 선택 1의 결과를 다시 28 비트씩 분리하여 처음 28 비트를 C0라 정의하고, 다음 28 비트를 D0라 정의한다.
그러면 이렇게 분리된 C0와 D0를 이용하여 암호화에 쓰일 16개의 키를 생성하게 된다.
먼저 C0와 D0를 차례로 쉬프트(Shift) 하게 되는데, i=1, …, 16 일 때, C(i-1)와 D(i-1)에 따라 다음의 표 2에 의해 쉬프트 된다.
[표 2]
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
쉬프트 크기 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
즉, C0와 D0는 1 비트가 쉬프트 되어 C1, D1가 되고, C1, D1은 1 비트가 쉬프트 되어 C2, D2가 되며, C2, D2는 2 비트가 쉬프트 되어 C3, C4가 된다.
이런 식으로 Ci(i=1, …, 16)와 Di(i=1, …, 16)를 모두 구할 수 있다.
그런 다음 암호화에 쓰일 키(Ki) 값을 구하기 위하여, 이러한 Ci(i=1, …, 16)와 Di(i=1, …, 16)에 조합 선택 2(Permuted Choice 2)의 연산을 하게 된다.
표 3은 조합 선택 2의 연산에 따른 비트의 배열을 나타낸다.
[표 3]
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
조합 선택 2의 연산은 조합 선택 1과 같은 방법으로, Ci와 Di의 비트 배열을 표 3과 같이 바꿈으로써 48 비트의 Ki를 생성하게 된다.
이렇게 생성된 키, Ki(i=1, …, 16)는 DES 알고리즘의 데이터 암호화 부분(10)에 적용된다.
이상은 암호화에 대한 설명이고, 반대로 복호화 시에는 C0, D0 대신에 C16, D16부터 위 과정을 반복하여 수행한다. 단지, 이때 쉬프트는 오른쪽으로 한다.
도 2는 상술된 바와 같은 암호화와 복호화 시의 쉬프트 양을 비교하여 나타낸 것이다. 도시된 바와 같이, 암호화 시 C1에서 C16까지의 쉬프트 양과 복호화 시 C16에서 C1까지의 쉬프트 양이 서로 같음을 알 수 있다.
이러한 DES 알고리즘을 하드웨어로 구현할 때는, 일반적으로 암호화와 복호화를 별도의 블럭으로 구현하므로 암호화와 복호화의 공통되는 부분이 중복되어 구현되는 경향이 있고 이로 인해 하드웨어의 크기가 상대적으로 커지는 문제점이 있다.
본 발명의 목적은 모든 암호화 시스템에 적용될 수 있는 DES 알고리즘의 키 생성부의 하드웨어 구현을 최적화함에 있다.
본 발명의 다른 목적은 DES 알고리즘에서 암호화와 복호화를 동시에 구현하는데 있다.
본 발명의 또 다른 목적은 DES 알고리즘의 키 생성부의 쉬프트 방향을 하나의 방향으로 하여 암호화와 복호화에 동시 사용함에 있다.
도 1은 DES의 일반적인 암호화 알고리즘 흐름도.
도 2는 도 1의 알고리즘에서 암호화와 복호화 시의 쉬프트 양을 비교하는 도면.
도 3은 본 발명에 따른 일 실시예의 키 생성 장치의 구성도.
도 4는 본 발명에 따른 다른 실시예의 키 생성 장치의 구성도.
이를 위하여, 본 발명의 특징은, 초기 키 값으로 암호화와 복호화에 따른 연산을 수행하여 상위 데이터와 하위 데이터를 생성하는 키 제어부; 상위 데이터를 왼쪽 쉬프트 시키는 제 1 쉬프트부; 하위 데이터를 왼쪽 쉬프트 시키는 제 2 쉬프트부; 및 제 1 쉬프트부와 제 2 쉬프트부에서 쉬프트된 각각의 데이터로 데이터 암호화 표준 알고리즘의 조합 선택 2 연산을 수행하여 데이터 암호화 표준 알고리즘의 암호화와 복호화의 키를 생성하는 키 생성부를 구비하며;
제 1 쉬프트부와 제 2 쉬프트부 각각은, 레지스터; 상위 데이터 및 하위 데이타 중 어느 하나와 피드백 데이터를 선택적으로 레지스터에 전달하는 제 1 다중화기; 레지스터의 데이터를 역배열하는 제 1 역배열기; 암호화일 경우에는 레지스터의 데이터를 전달하고, 복호화일 경우에는 제 1 역배열기의 데이터를 전달하는 제 2 다중화기; 제 2 다중화기에서 전달되는 데이터를 비트 단위로 왼쪽 쉬프트 시키는 로테이터(Rotator); 로테이터의 데이터를 역배열하는 제 2 역배열기; 및 암호화일 경우에는 로테이터의 데이터를 피드백 데이터로서 제 1 다중화기로 전달하고, 복호화일 경우에는 제 2 역배열기의 데이터를 피드백 데이터로서 제 1 다중화기로 전달하는 제 3 다중화기를 구비하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치를 제공함에 있다.
그리고, 본 발명에 따른 다른 특징은, 초기 키 값으로 암호화와 복호화에 따른 연산을 수행하여 상위 데이터와 하위 데이터를 생성하는 키 제어부; 상위 데이터를 쉬프트 시키는 제 1 쉬프트부; 하위 데이터를 쉬프트 시키는 제 2 쉬프트부;및 제 1 쉬프트부와 제 2 쉬프트부에서 쉬프트된 각각의 데이터로 데이터 암호화 표준 알고리즘의 조합 선택 2 연산을 수행하여 데이터 암호화 표준 알고리즘의 암호화와 복호화의 키를 생성하는 키 생성부를 구비하며;
제 1 쉬프트부와 제 2 쉬프트부 각각은, 레지스터; 상위 데이터 및 하위 데이타 중 어느 하나와 피드백 데이터를 선택적으로 레지스터에 전달하는 다중화기; 및 레지스터의 데이터를 암호화와 복호화에 따라 비트 단위로 쉬프트 시켜 다중화기로 피드백 데이터로서 전달하는 로테이터를 구비하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치를 제공함에 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명한다.
도 3은 DES 암호화 알고리즘에서 암호화와 복호화의 쉬프트를 함께 구현하기 위한 본 발명에 따른 일 실시예의 키 생성 장치의 하드웨어 구성도로, 3쌍의 다중화기(310 내지 320), 1쌍의 로테이터(326, 328), 1쌍의 레지스터(322, 324), 및 2쌍의 역배열기(330 내지 336)로 구성되고, 이는 Ci을 계산하는 부분과 Di을 계산하는 부분으로 나누어져 있다.
이는 비트 수를 나누어 계산함으로써, 보다 효율적으로 계산을 하고 하드웨어의 구성 또한 부하를 줄여 효율적으로 하기 위함이다.
그리고, 본 발명에 따른 일 실시예의 키 생성 장치는 초기 키(K) 값을 입력 받아 암호화일 경우에는 C1과 D1을 출력하고 복호화일 경우에는 C16과 D16을 출력하는 키 제어부(340)와, 계산된 Ci와 Di를 이용하여 키를 생성하는 키 생성부(338)를 더 구비한다.
키 제어부(340)는 암호화일 경우에는 초기 키(K)를 조합 선택 1 연산을 하고 이를 C0와 D0로 분리하여 각각 1비트씩 왼쪽 쉬프트하여 C1과 D1으로서 출력하며, 복호화일 경우에는 초기 키(K)의 조합 선택 1 연산 후 C0와 D0로 분리하여 이를 각각 C16과 D16으로서 출력하며, 이러한 암호화와 복호화에 따른 각각의 동작은 암호화 복호화 판단 신호(A)에 의해 결정된다.
이때, 복호화일 경우 C0와 D0를 그대로 C16과 D16으로서 출력하는 것은, 도 2에 도시된 바와 같이 C0와 D0를 쉬프트하여 C16과 D16을 생성하면, C0와 D0가 28비트이고 쉬프트되는 양도 28비트이므로 결국 C0와 D0는 각각 C16 및 D16와 같은 값이 되기 때문이다.
한편, 키 생성부(338)는 계산된 Ci와 Di를 이용하여 조합 선택 2 연산을 하여 키를 생성한다.
먼저, 암호화 및 복호화에 사용할 키를 생성하기 위한 초기 키(K) 값이 키 제어부(340)에 입력되면, 키 제어부(340)는 연산을 통하여 Ci와 Di(암호화일 경우 C1과 D1, 복호화일 경우 C16과 D16)를 출력한다.
그러면, 다중화기(310, 312)는 키 제어부(340)에서 전달되는 Ci와 Di를 각각 레지스터(322, 324)에 기록하고, 이에 레지스터(322, 324)는 기록된 Ci와 Di를 다중화기(314, 316)와 역배열기(330, 332)에 전달하며, 역배열기(330, 332)는 레지스터(322, 324)에서 전달된 Ci와 Di의 배열을 바꾸어 다중화기(314, 316)에 전달한다.
즉, 다중화기(314, 316)는 레지스터(322, 324)와 역배열기(330, 332)로부터 각각 Ci와 Di를 전달받으며, 이때 전달되는 레지스터(322, 324)와 역배열기(330, 332)의 Ci와 Di는 그 배열이 다르다.
이에, 다중화기(314, 316)는 입력되는 암호화 복호화 판단 신호(A)에 따라 암호화를 위한 키를 생성하는 것인지 복호화를 위한 키를 생성하는 것인지를 판단하여, 암호화를 위한 키를 생성하는 경우에는 레지스터(322, 324)에서 Ci와 Di를 가져오고, 복호화를 위한 키를 생성하는 경우에는 역배열기(330, 332)에서 Ci와 Di를 가져와, 이를 로테이터(326, 328)에 전달한다.
여기서, 로테이터(326, 328)는 왼쪽으로만 쉬프트 되는 것으로, 다중화기(314, 316)로부터 전달받은 Ci와 Di를 내부 카운터 또는 외부 카운터(도시 생략)를 이용하여 왼쪽으로 쉬프트 시키고, 이때 로테이터(326, 328)의 가장 왼쪽 비트인 MSB(Most Significant Bit)는 가장 오른쪽 비트인 LSB(Least Significant Bit)로 회전되어 입력된다.
이때, 로테이터(326, 328)는 입력되는 쉬프트량 신호(B)에 따라 쉬프트량을 조절한다.
이렇게 쉬프트된 Ci와 Di는 다중화기(318, 320)와 역배열기(334, 336)로 전달되고, 역배열기(334, 336)는 로테이터(326, 328)에서 전달된 Ci와 Di의 배열을 바꾸어 다중화기(318, 320)에 전달한다.
즉, 다중화기(318, 320)는 로테이터(326, 328)와 역배열기(334, 336)로부터 각각 Ci와 Di를 전달받으며, 이때 전달되는 로테이터(326, 328)와 역배열기(330,332)의 Ci와 Di는 그 배열이 다르다.
이에, 다중화기(318, 320)는 입력되는 암호화 복호화 판단 신호(A)에 따라 암호화를 위한 키를 생성하는 것인지 복호화를 위한 키를 생성하는 것인지를 판단하여, 암호화를 위한 키를 생성하는 경우에는 로테이터(326, 328)에서 Ci와 Di를 가져오고, 복호화를 위한 키를 생성하는 경우에는 역배열기(334, 336)에서 Ci와 Di를 가져와, 이를 다중화기(310, 312)에 전달한다.
그러면 다중화기(310, 312)는 전달받은 Ci와 Di 값을 레지스터(322, 324)에 기록하고, 상기 과정을 반복함으로써 각각 암호화일 경우에는 C1, D1에서 C16, D16까지 구하고, 복호화일 경우에는 C16, D16에서 C1, D1까지 구한다.
이러한 과정 중, 키 생성부(338)는 레지스터(322, 324)에 기록되어 있는 Ci와 Di의 값을 이용하여 조합 선택 2 연산을 함으로써 Ki를 구한다.
상술된 과정을 다시 정리하면, 다중화기(314 내지 320)는 암호화 복호화 판단 신호(A)에 따라 암호화일 경우에는 레지스터(322, 324) 또는 로테이터(326, 328)로부터 Ci와 Di 값을 가져오고, 복호화일 경우에는 역배열기(330 내지 336)에서 역배열된 Ci와 Di 값을 가져옴으로써 암호화와 복호화에 따른 데이터의 분류를 수행하므로, 로테이터(326, 328)는 암호화나 복호화에 상관없이 쉬프트 되는 양만 판단하면 되고, C1과 D1에서 C16과 D16까지 쉬프트 되는 양과 C16과 D16에서 C1과 D1까지 쉬프트 되는 양은 도 2에 도시된 바와 같이 동일하므로, 로테이터(326, 328)는 암호화와 복호화에 관계없이 공통으로 사용되는 쉬프트량 신호(B)만 입력받는다.
그리고, 암호화의 왼쪽 쉬프트 로테이터(326, 328)를 복호화에도 이용하기 위하여 역배열기(330 내지 336)를 이용하여, 이에 데이터를 역순으로 입력하여 왼쪽 쉬프트를 시키고 다시 역순으로 출력함으로써 결국 복호화에 필요한 오른쪽 쉬프트의 효과를 낸다.
또한, 암호화와 복호화에 동일한 하드웨어를 적용하기 위하여 필요한 상술된 암호화 복호화 판단 신호(A)와 쉬프트량 신호(B)는 DES 알고리즘의 전체 하드웨어 구현 시 키 생성 장치를 제어하기 위해 발생되는 신호의 일부로서 구현된다.
도 4는 본 발명에 따른 다른 실시예의 키 생성 장치의 하드웨어 구성도로, 1쌍의 다중화기(410, 420)와 1쌍의 레지스터(430, 440) 및 1쌍의 로테이터(450, 460)로 구성되고, 이는 상술된 본 발명에 따른 일 실시예와 마찬가지로 효율적인 계산과 하드웨어 구성의 부하를 줄이기 위하여 Ci를 계산하는 부분과 Di를 계산하는 부분으로 나누어져 있다.
그리고, 초기 키(K) 값을 입력 받아 암호화일 경우에는 C1과 D1을 출력하고 복호화일 경우에는 C16과 D16을 출력하는 키 제어부(480)와, 계산된 Ci와 Di를 이용하여 키를 생성하는 키 생성부(470)를 더 구비한다.
키 제어부(480)는 암호화일 경우에는 초기 키(K)를 조합 선택 1 연산을 하고 이를 C0와 D0로 분리하여 각각 1비트씩 왼쪽 쉬프트하여 C1과 D1으로서 출력하며, 복호화일 경우에는 초기 키(K)의 조합 선택 1 연산 후 C0와 D0로 분리하여 이를 각각 C16과 D16으로서 출력하며, 이러한 암호화와 복호화에 따른 각각의 동작은 암호화 복호화 판단 신호(A)에 의해 결정된다.
이때, 복호화일 경우 C0와 D0를 그대로 C16과 D16으로서 출력하는 것은, 도 2에 도시된 바와 같이 C0와 D0를 쉬프트하여 C16과 D16을 생성하면, C0와 D0가 28비트이고 쉬프트되는 양도 28비트이므로 결국 C0와 D0는 각각 C16 및 D16와 같은 값이 되기 때문이다.
한편, 키 생성부(470)는 계산된 Ci와 Di를 이용하여 조합 선택 2 연산을 하여 키를 생성한다.
먼저, 암호화 및 복호화에 사용할 키를 생성하기 위한 초기 키(K) 값이 키 제어부(480)에 입력되면, 키 제어부(480)는 연산을 통하여 Ci와 Di(암호화일 경우 C1과 D1, 복호화일 경우 C16과 D16)를 출력한다.
그러면, 다중화기(410, 420)는 전달받은 Ci와 Di를 각각 레지스터(430, 440)에 기록하고, 로테이터(450, 460)는 레지스터(430, 440)에 기록되어 있는 Ci와 Di를 각각 가져온다.
그리고, 로테이터(450, 460)는 암호화일 경우에는 Ci와 Di를 왼쪽으로 쉬프트 시키고, 복호화일 경우에는 오른쪽으로 쉬프트 시키며, 이때 MSB와 LSB는 회전하여 각각 LSB와 MSB로 입력된다.
즉, 여기서의 로테이터(450, 460)는 왼쪽, 오른쪽 모두 양방향 쉬프트가 가능하고, 암호화와 복호화의 경우에 따라 그 방향이 결정되어 사용된다.
이러한 로테이터(450, 460)의 암호화와 복호화의 판단과 그에 따른 쉬프트량은 DES 알고리즘의 전체 하드웨어 구현 시 키 생성 장치를 제어하기 위해 발생되는 신호의 일부로서 암호화 복호화 판단 신호(A)와 쉬프트량 신호(B)를 구현하여 사용한다.
다시 말하면, 로테이터(450, 460)는 암호화 복호화 판단 신호(A)에 따라 쉬프트의 방향을 결정하고, 쉬프트량 신호(B)에 따라 쉬프트될 비트 수를 결정하여 레지스터(430, 440)로부터 전달받은 Ci와 Di를 내부 카운터 또는 외부 카운터(도시 생략)를 이용하여 해당 방향으로 쉬프트 시킨다.
이렇게 쉬프트된 값은 다시 다중화기(410, 420)로 입력되어 상기와 같은 과정을 반복함으로써 각각 암호화일 경우에는 C1, D1에서 C16, D16까지 구하고, 복호화일 경우에는 C16, D16에서 C1, D1까지 구한다.
이러한 과정 중, 키 생성부(470)는 레지스터(430, 440)에 기록되어 있는 Ci와 Di를 이용하여 조합 선택 2 연산을 함으로써 Ki를 구한다.
상술된 바와 같이, 본 발명은 DES의 암호화·복호화 알고리즘의 쉬프트되는 공통점을 추출하여, 각 방향의 쉬프트를 방향에 따라 각각 구현하지 않고, 한 방향 쉬프트 또는 양방향 쉬프트의 공동 이용으로 하드웨어의 면적을 최적화하는 효과가 있다.

Claims (8)

  1. 초기 키 값으로 암호화와 복호화에 따른 연산을 수행하여 상위 데이터와 하위 데이터를 생성하는 키 제어부;
    상기 상위 데이터를 왼쪽으로 쉬프트 시키는 제 1 쉬프트부;
    상기 하위 데이터를 왼쪽으로 쉬프트 시키는 제 2 쉬프트부; 및
    상기 제 1 쉬프트부와 상기 제 2 쉬프트부에서 쉬프트된 각각의 데이터로 데이터 암호화 표준 알고리즘의 조합 선택 2(Permuted Choice 2) 연산을 수행하여 상기 데이터 암호화 표준 알고리즘의 암호화와 복호화의 키를 생성하는 키 생성부를 구비하며;
    상기 제 1 쉬프트부와 상기 제 2 쉬프트부 각각은,
    레지스터;
    상기 상위 데이터 및 상기 하위 데이타 중 어느 하나와 피드백 데이터를 선택적으로 상기 레지스터에 전달하는 제 1 다중화기;
    상기 레지스터의 데이터를 역배열하는 제 1 역배열기;
    암호화일 경우에는 상기 레지스터의 데이터를 전달하고, 복호화일 경우에는 상기 제 1 역배열기의 데이터를 전달하는 제 2 다중화기;
    상기 제 2 다중화기에서 전달되는 데이터를 비트 단위로 왼쪽 쉬프트 시키는 로테이터;
    상기 로테이터의 데이터를 역배열하는 제 2 역배열기; 및
    암호화일 경우에는 상기 로테이터의 데이터를 상기 피드백 데이터로서 상기 제 1 다중화기로 전달하고, 복호화일 경우에는 상기 제 2 역배열기의 데이터를 상기 피드백 데이터로서 상기 제 1 다중화기로 전달하는 제 3 다중화기를 구비하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  2. 제 1 항에 있어서,
    상기 키 제어부는, 암호화일 경우에는 상기 초기 키 값으로 상기 데이터 암호화 표준 알고리즘의 조합 선택 1(Permuted Choice 1) 연산을 수행하고 상위 초기 데이터와 하위 초기 데이터로 나누어 각각 1비트씩 왼쪽 쉬프트하여 상기 상위 데이터와 상기 하위 데이터를 생성하고, 복호화일 경우에는 상기 상위 초기 데이터와 상기 하위 초기 데이터를 상기 상위 데이터와 상기 하위 데이터로서 생성하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  3. 제 1 항에 있어서,
    상기 키 제어부, 상기 제 2 다중화기, 및 상기 제 3 다중화기는 상기 데이터 암호화 표준 알고리즘의 암호화와 복호화를 판단하는 제어 신호에 의해 상기 암호화와 복호화를 판단하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  4. 제 1 항에 있어서,
    상기 로테이터는, 내부 카운터 및 외부 카운터 중 어느 하나를 사용하고, 상기 데이터 암호화 표준 알고리즘의 쉬프트량를 판단하는 제어 신호에 의해 상기 쉬프트의 양을 판단하여 처리하는 것을 특징으로 하는 암호화 표준 알고리즘의 키 생성 장치.
  5. 초기 키 값으로 암호화와 복호화에 따른 연산을 수행하여 상위 데이터와 하위 데이터를 생성하는 키 제어부;
    상기 상위 데이터를 쉬프트 시키는 제 1 쉬프트부;
    상기 하위 데이터를 쉬프트 시키는 제 2 쉬프트부; 및
    상기 제 1 쉬프트부와 상기 제 2 쉬프트부에서 쉬프트된 각각의 데이터로 데이터 암호화 표준 알고리즘의 조합 선택 2 연산을 수행하여 상기 데이터 암호화 표준 알고리즘의 암호화와 복호화의 키를 생성하는 키 생성부를 구비하며;
    상기 제 1 쉬프트부와 상기 제 2 쉬프트부 각각은,
    레지스터;
    상기 상위 데이터 및 상기 하위 데이타 중 어느 하나와 피드백 데이터를 선택적으로 상기 레지스터에 전달하는 다중화기; 및
    상기 레지스터의 데이터를 암호화와 복호화에 따라 비트 단위로 쉬프트 시켜 상기 다중화기로 상기 피드백 데이터로서 전달하는 로테이터를 구비하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  6. 제 5 항에 있어서,
    상기 키 제어부는, 암호화일 경우에는 상기 초기 키 값으로 상기 데이터 암호화 표준 알고리즘의 조합 선택 1 연산을 수행하고 상위 초기 데이터와 하위 초기 데이터로 나누어 각각 1비트씩 왼쪽 쉬프트하여 상기 상위 데이터와 상기 하위 데이터를 생성하고, 복호화일 경우에는 상기 상위 초기 데이터와 상기 하위 초기 데이터를 상기 상위 데이터와 상기 하위 데이터로서 생성하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  7. 제 5 항에 있어서,
    상기 로테이터는, 내부 카운터 및 외부 카운터 중 어느 하나를 사용하고, 상기 데이터 암호화 표준 알고리즘의 쉬프트량를 판단하는 제어 신호에 의해 상기 쉬프트의 양을 판단하여, 암호화일 경우에는 왼쪽 쉬프트를 하고, 복호화일 경우에는 오른쪽 쉬프트를 하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
  8. 제 5 항에 있어서,
    상기 키 제어부와 상기 로테이터는, 상기 데이터 암호화 표준 알고리즘의 암호화와 복호화를 판단하는 제어 신호에 의해 상기 암호화와 복호화를 판단하는 것을 특징으로 하는 데이터 암호화 표준 알고리즘의 키 생성 장치.
KR10-2002-0065828A 2002-10-28 2002-10-28 데이터 암호화 표준 알고리즘의 키 생성 장치 KR100440074B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2002-0065828A KR100440074B1 (ko) 2002-10-28 2002-10-28 데이터 암호화 표준 알고리즘의 키 생성 장치
DE10261408A DE10261408A1 (de) 2002-10-28 2002-12-30 Schlüsselerzeugungsvorrichtung für einen Datenverschlüsselungs-Standardalgorithmus
IT001131A ITTO20021131A1 (it) 2002-10-28 2002-12-30 Dispositivo di generazione di chiavi per un algoritmo
FR0216914A FR2846497B1 (fr) 2002-10-28 2002-12-31 Dispositif de formation de clefs pour algorithme standard de cryptage de donnees

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0065828A KR100440074B1 (ko) 2002-10-28 2002-10-28 데이터 암호화 표준 알고리즘의 키 생성 장치

Publications (2)

Publication Number Publication Date
KR20040037361A true KR20040037361A (ko) 2004-05-07
KR100440074B1 KR100440074B1 (ko) 2004-07-14

Family

ID=32089763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0065828A KR100440074B1 (ko) 2002-10-28 2002-10-28 데이터 암호화 표준 알고리즘의 키 생성 장치

Country Status (4)

Country Link
KR (1) KR100440074B1 (ko)
DE (1) DE10261408A1 (ko)
FR (1) FR2846497B1 (ko)
IT (1) ITTO20021131A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100584604B1 (ko) * 2004-08-14 2006-05-30 삼성전자주식회사 디바이스를 인증하기 위한 키 생성 방법/장치 및 디바이스인증 방법/장치
KR101102928B1 (ko) * 2009-08-21 2012-01-10 유병규 복합댐퍼

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07147571A (ja) * 1993-11-24 1995-06-06 Tamura Electric Works Ltd スクランブル/デスクランブル処理装置
KR100316025B1 (ko) * 1999-06-30 2001-12-12 박종섭 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
KR100377172B1 (ko) * 2000-06-13 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
US6763365B2 (en) * 2000-12-19 2004-07-13 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
KR20020087331A (ko) * 2001-05-14 2002-11-22 최병윤 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
KR20020087332A (ko) * 2001-05-14 2002-11-22 최병윤 대칭키 암호 알고리즘의 모듈화된 ecb, cbc, cfb, ofb모드 구현 회로
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100584604B1 (ko) * 2004-08-14 2006-05-30 삼성전자주식회사 디바이스를 인증하기 위한 키 생성 방법/장치 및 디바이스인증 방법/장치
KR101102928B1 (ko) * 2009-08-21 2012-01-10 유병규 복합댐퍼

Also Published As

Publication number Publication date
FR2846497A1 (fr) 2004-04-30
FR2846497B1 (fr) 2005-08-05
DE10261408A1 (de) 2004-05-06
KR100440074B1 (ko) 2004-07-14
ITTO20021131A1 (it) 2004-04-29

Similar Documents

Publication Publication Date Title
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
US6324286B1 (en) DES cipher processor for full duplex interleaving encryption/decryption service
NO337611B1 (no) Fremgangsmåte og anordning for omforming av data
US8189792B2 (en) Method and apparatus for performing cryptographic operations
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
KR100377176B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
NO333209B1 (no) Blokkryptogram-apparat som benytter hjelpetransformasjon
US20090080646A1 (en) Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
JP4663635B2 (ja) データのブロックを暗号化及び復号化するための装置が実行する方法
KR100360957B1 (ko) 암호 처리 장치, 아이씨 카드 및 암호 처리 방법
KR100440074B1 (ko) 데이터 암호화 표준 알고리즘의 키 생성 장치
JP2002040932A (ja) データ暗号化標準アルゴリズムを利用する暗号化装置
JPH11298471A (ja) ブロック暗号化方法及び装置
JP3547474B2 (ja) 暗号演算回路
KR100710455B1 (ko) 라인달 블록 암호 장치와 그 암호화 및 복호화 방법
US8204219B2 (en) Cryptographic method and apparatus for enhancing computation performance of a central processing unit
KR101662291B1 (ko) 경량 블록암호 lea 기반 암호화 및 복호화 장치
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
KR100316024B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호화 장치
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
KR20030087893A (ko) 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
KR102348802B1 (ko) Aes 암호화 및 복호화 회로
KR100262384B1 (ko) 암호화 방법 및 장치(Encryption Method and Apparatus)
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee