KR20030090870A - 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 - Google Patents
레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 Download PDFInfo
- Publication number
- KR20030090870A KR20030090870A KR1020020028469A KR20020028469A KR20030090870A KR 20030090870 A KR20030090870 A KR 20030090870A KR 1020020028469 A KR1020020028469 A KR 1020020028469A KR 20020028469 A KR20020028469 A KR 20020028469A KR 20030090870 A KR20030090870 A KR 20030090870A
- Authority
- KR
- South Korea
- Prior art keywords
- byte
- circuit
- output signal
- key
- outputting
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/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
- 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/122—Hardware reduction or efficient architectures
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명에 따른 SAFER+ 알고리즘을 이용한 암호화장치 및 방법은 16 바이트를 병렬로 동시에 처리하지 않고, 16바이트를 한 바이트씩 차례대로 처리한 후 16바이트가 모두 처리되면 그 값을 래치하고 다음 단계의 연산을 수행하는 방식으로 구성된다. 따라서, 본 발명에 따른 암호화장치를 레이아웃하는 면적이 대폭적으로 감소되므로, 저비용으로 SAFER+암호화 장치를 구현할 수 있는 효과가 있다.
Description
본 발명은 암호화장치에 관한 것으로, 보다 상세하게는 감소된 레이아웃 면적을 갖고 SAFER+알고리즘을 이용한 암호화장치 및 SAFER+알고리즘을 이용한 암호화장치의 제어방법에 관한 것이다. 더욱 상세하게는 블루투스(bluetooth) 시스템에서 통신채널이 열린 후, 마스터(master)와 슬레이브(slave)사이에 상호인증을 위한 암호화장치에 관한 것이다.
일반적으로 암호화(Encryption)는 평문(plaintext)을 사용자의 암호화키를 사용하여 암호문(ciphertext)으로 변환하는 과정이다. 블루투스 시스템에서 사용되는 암호화장치는 Ar함수와 Ar'함수를 사용한다. Ar함수는 SAFER+암호화 알고리즘과 동일하고, Ar'함수는 SAFER+암호화 알고리즘을 약간 변형한 함수이다.
일반적으로 SAFER+알고리즘은 16바이트의 데이터를 매 단계마다 바이트 단위로 연산을 한 후 거의 동일한 연산을 수행한 후 다음 연산단계를 수행하므로, 16바이트를 병렬적으로 동시에 처리하는 방식으로 암호화장치를 설계를 하는 경우, 동작속도는 증가되나 레이아웃 면적이 증가되는 문제점이 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 16바이트를 동시에 처리하지 않고 한 바이트씩 처리하고 래치한 후 다음 연산단계를 수행하도록 설계함으로써, 전체적인 레이아웃 면적을 감소시킬 수 있는 SAFER+암호화 장치 및 방법을 제공하는 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 SAFER+알고리즘을 이용한 암호화장치의 블락도를 나타낸다.
도 2는 도 1의 서브키 생성회로의 블락도를 나타낸다.
도 3은 옥텟 회전회로의 동작을 나타내는 표이다.
상기 기술적 과제를 달성하기 위한 SAFER+ 알고리즘을 이용한 암호화장치는 바이트 번호, 라운드 키 번호를 생성하기 위한 제어회로; 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하기 위한 서브키 생성회로; 제1선택신호에 응답하여 16바이트의 평문과 PHT연산회로로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하기 위한 제1선택회로; 상기 제1선택회로의 출력신호를 수신하고저장하기 위한 입력 레지스터; Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하기 위한 배타논리합회로; 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 입력 레지스터의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 배타논리합회로의 출력신호를 선택하여 출력하기 위한 제2선택회로; 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위한 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하기 위한 바이트 선택회로;
상기 바이트 선택회로로부터 출력되는 한 바이트와 상기 서브키 생성회로로부터 출력되는 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 홀수키 연산회로; 홀수키 연산회로의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하기 위한 EL연산회로; 상기 EL연산회로의 출력신호를 수신하고 저장하기 위한 중간 레지스터; 상기 중간 레지스터의 출력신호와 상기 서브키 생성회로로부터 출력되는 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하기 위한 짝수키 연산회로; 제3선택신호에 응답하여 상기 짝수키 연산회로의 출력신호와 순열연산회로의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하기 위한 제3선택회로; 상기 제3선택회로를 출력신호를 수신하고 저장하기 위한 PHT 레지스터; 8번째 라운드의 종료 후에 생성된 결과와 상기 서브키 생성회로로부터 출력되는 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 17번째 키 연산회로; 및 상기 17번째 키 연산회로의 출력신호를 저장하고 암호문을 출력하기 위한 출력 레지스터를 구비하며, 상기 PHT 연산회로는 상기 PHT 레지스터의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고, 상기 순열연산회로는 상기 PHT연산회로의 출력신호를 수신하고 순열을 수행한다.
상기 기술적 과제를 달성하기 위한 SAFER+ 알고리즘을 이용한 암호화방법은 (a) 바이트 번호와 라운드 키 번호를 생성하는 단계; (b) 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하는 단계; (c) 제1선택신호에 응답하여 16바이트의 평문과 PHT 연산단계로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하고 출력하는 단계; (d) 상기 (c)단계의 출력신호를 수신하고 저장하는 단계; (e) Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하고 출력하는 단계; (f) 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 (d)단계의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 (e)단계의 출력신호를 선택하고 출력하는 단계; (g) 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위한 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하는 단계; (h) 상기 (g)단계로부터 출력되는 한 바이트와 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산하고 그 결과를 출력하는 단계; (i) 상기 (h)단계의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하는 단계; (j) 상기 (i)단계의 출력신호를 수신하고 저장하는 단계; (k) 상기 (j)단계의출력신호와 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하는 단계; (l) 제3선택신호에 응답하여 상기 (k)단계의 출력신호와 순열연산단계의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하는 단계; (m) 상기 (l)단계의 출력신호를 수신하고 저장하는 단계; (n) 8번째 라운드의 종료 후에 생성된 결과와 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고 그 결과를 출력하는 단계; 및 (o) 상기 (n)단계의 출력신호를 저장하고 암호문을 출력하는 단계를 구비하며, 상기 PHT 연산단계는 상기 (m)단계의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고, 상기 순열연산단계는 상기 PHT 연산단계의 출력신호를 수신하고 순열을 수행한다.
상기 (b)단계는 (b1) 상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하는 단계; (b2) 상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 (b1)단계로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 출력하는 단계; (b3) 상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하는 단계; (b4) 상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하는 단계; (b5) 상기 (b3)단계의 출력신호와 상기 (b4)단계의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하는 단계; 및 (b6) 제4선택신호에 응답하여 상기 (b5)단계의 출력신호와 상기 (b3)단계의 출력신호 중에서 하나를 선택하고, 상기 16바이트의 홀수번째라운드 키, 상기 16바이트의 짝수번째 라운드 키및 상기 16바이트의 17번째 라운드 키를 한 바이트씩 차례대로 출력하는 단계를 구비한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 SAFER+알고리즘을 이용한 암호화장치의 블락도를 나타낸다. 도 1을 참조하면, 암호화장치(100)는 암호처리회로(200), 서브키 생성회로(300) 및 제어회로(400)를 구비한다.
암호처리회로(200)는 16바이트의 암호화키를 사용하여 입력되는 16바이트의 평문(plaintext)을 암호화하고 암호문(ciphertext)을 출력한다. 본 발명에 따른 암호처리회로(200)는 SAFER+ 알고리즘을 이용하여 암호화를 수행한다.
서브키 생성회로(300)는 암호처리회로(200)에서 암호화가 수행되는 동안 암호처리회로(200)에서 매 라운드(round)마다 사용될 라운드 키(ODD_RK, EVN_RK)를 생성한다. 제어회로(400)는 암호화를 위한 제어신호들(BT_NUM, RK_NUM, SEL1, SEL2, SEL3, SEL4)을 생성하여 암호처리회로(200)와 서브키 생성회로(300)로 출력한다.
암호처리회로(200)는 제1선택회로(201), 입력 레지스터(203), 배타논리합회로(205), 제2선택회로(207), 바이트 선택회로(209), 홀수키 연산회로(211), EL연산회로(213), 중간 레지스터(215), 짝수키 연산회로(217), 제3선택회로(219), PHT 레지스터(221), PHT연산회로(223), 순열 연산회로(225), 17번째 키 연산회로(227) 및 출력 레지스터(229)를 구비한다.
제1선택회로(201)는 제1선택신호(SEL1)에 응답하여 입력되는 16바이트의 평문과 PHT연산회로(223)로부터 출력되는 16바이트의 출력신호중에서 하나의 신호를 선택하고 그 결과를 입력 레지스터(203)로 출력한다.
입력 레지스터(203)는 제1선택회로(210)의 출력신호를 수신하고 일시 저장한다. 배타논리합회로(205)는 Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 16바이트의 평문을 수신하고 배타논리합과 덧셈 연산을 수행한다.
제2선택회로(207)는 제2선택신호(SEL2)에 응답하여, Ar기능을 수행하는 경우 입력 레지스터(203)의 출력신호를 선택하여 바이트 선택회로(209)로 출력하고, Ar' 기능을 수행하는 경우 3번째 라운드에서 배타논리합회로(205)의 출력신호를 선택하여 바이트 선택회로(209)로 출력한다.
바이트 선택회로(209)는 16바이트의 제2선택회로(207)의 출력신호를 한 바이트씩 차례대로 처리하기 위하여 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 홀수키 연산회로(211)로 출력한다.
홀수키 연산회로(211)는 바이트 선택회로(209)로부터 출력되는 한 바이트와 서브키 생성회로(300)로부터 출력되는 16바이트의 홀수번째 라운드 키(ODD_RK)중에서 한 바이트를 수신하고 연산을 수행한다.
EL연산회로(213)는 홀수키 연산회로(211)의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 중간 레지스터(215)로 출력한다. 중간 레지스터(215)는 EL연산회로(213)의 출력신호를 수신하고 저장한다.
짝수키 연산회로(217)는 중간 레지스터(215)의 출력신호와 서브키 생성회로(300)로부터 출력되는 16바이트의 짝수번째 라운드 키(EVN_RK) 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 제3선택회로(219)로 출력한다. 제3선택회로(219)는 제3선택신호(SEL3)에 응답하여 짝수키 연산회로(217)의 출력신호와 순열연산회로(225)의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 PHT 레지스터(221)로 출력한다.
PHT 레지스터(221)는 제3선택회로(219)를 출력신호를 수신하고 저장한다. PHT 연산회로(223)는 PHT 레지스터(221)의 출력신호를 수신하여 의사 하다마드 변환(Pseudo Hadamard Transform; PHT)을 하고 그 결과를 순열연산회로(225) 및 제1선택회로(201)로 출력한다. 순열연산회로(225)는 PHT연산회로(223)의 출력신호를 수신하고 순열(permutation)을 수행한다.
서브키 생성회로(300)는 입력되는 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키(ODD_RK), 16바이트의 짝수번째 라운드 키(EVN_RK) 또는 16바이트의 17번째 라운드 키(17_RK)를 바이트 번호(BT_NUM)에 따라 한 바이트씩 생성하여 홀수키 연산회로(213), 짝수키 연산회로(217) 또는 17번째 키 연산회로(227)로 각각 출력한다.
17번째 키 연산회로(227)는 8번째 라운드의 종료 후에 생성된 결과와 서브키 생성회로(513)로부터 출력되는 16바이트의 17번째 라운드 키(17_RK) 중에서 한 바이트를 수신하고 연산을 수행한다. 출력 레지스터(229)는 17번째 키 연산회로(227)의 출력신호를 일시 저장하고 암호문을 출력한다.
도 1을 참조하여 본 발명에 따른 SAFER+알고리즘을 이용한 암호화장치(100)의 동작이 상세히 설명된다.
우선, 제1선택회로(201)는 첫 번째 라운드에서 16바이트의 평문을 선택하고 입력 레지스터(203)로 출력한다. 입력 레지스터(203)는 제1선택회로(201)의 출력신호를 일시 저장한다. 배타논리합 연산회로(205)는 Ar' 기능을 수행하는 경우 3번째 라운드에서 2번째 라운드의 결과와 평문을 수신하고 연산을 수행한다.
제2선택회로(503)는 Ar기능을 수행하는 경우 입력 레지스터(203)의 출력신호를 선택하고, Ar'기능을 수행하는 경우 3번째 라운드에서 배타 논리합 연산회로(205)의 출력신호를 선택한다.
바이트 선택회로(209)는 16바이트의 제2선택회로(207)의 출력신호를 한 바이트씩 차례대로 처리하기 위해, 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)에 따라 해당 바이트를 차례대로 선택하고 출력한다.
홀수키 연산회로(211)는 바이트 선택회로(209)의 출력신호인 한 바이트와 서브키 생성회로(300)로부터 출력되는 16바이트의 홀수번째 라운드 키(ODD_RK)중에서 한 바이트를 수신하고 연산을 수행한다.
EL 연산회로(213)는 홀수키 연산회로(211)의 출력신호인 한 바이트에 대해 E연산 또는 L연산을 수행한다. 중간 레지스터(215)는 EL 연산회로(213)의 출력신호를 저장한다. 짝수키 연산회로(217)는 중간 레지스터로(215)의 출력신호와 서브키 생성회로(300)로부터 출력되는 16바이트의 짝수번째 라운드 키(EVN_RK)중에서 한 바이트를 수신하고 연산을 수행한다.
제3선택회로(219)는 짝수키 연산회로(217)의 출력신호를 선택하여 16바이트의 PHT 레지스터(510)중에서 첫 번째 레지스터에 저장한다. 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)가 1씩 증가함에 따라, 바이트 선택회로(209)로부터 제3선택회로(219)까지의 동작을 16번 반복하면, 16바이트 평문의 각 바이트에 대한 연산이 모두 이루어지고, 각 바이트의 연산결과는 PHT 레지스터(221)의 각 바이트에 순서대로 저장된다.
PHT 연산회로(223)는 PHT레지스터(221)에 저장된 16바이트의 값에 대해 PHT(Pseudo Hadamard Transform)을 수행한다. 순열연산회로(225)는 PHT 연산회로(223)의 연산 결과에 대해 순열(permutation)을 수행한다.
순열연산회로(225)의 출력신호는 PHT 레지스터(221)에 저장되어, PHT 연산과 순열을 반복 수행한다. 이러한 과정을 3번 반복하고 마지막 4번째에는 PHT 연산만 수행하고, 그 결과를 입력 레지스터(203)에 저장한다. 여기까지 한 라운드가 끝나게 된다.
다음 라운드에서는 제1선택회로(203)가 PHT 연산회로(511)의 출력신호를 선택하도록 하여, 앞의 과정을 반복하도록 한다.
이러한 라운드 과정이 8번 반복되면, 입력레지스터(203)는 8번째 라운드의결과를 저장한다. 이 때, 17번째 키 연산회로(227)는 상기 8번째 라운드 결과와 서브키 생성회로(300)로부터 생성된 17번재 라운드 키(17_RK)를 수신하고 연산을 수행하여 최종 암호문을 생성한다. 이 암호문은 출력 레지스터(229)에 저장된다.
도 2는 도 1의 서브키 생성회로의 블락도를 나타낸다. 도 2를 참조하면, 서브키 생성회로(300)는 섬 옥텟 연산회로(sum octet operation circuit; 301), 옥텟 선택회로(303), 옥텟 회전회로(305), 바이어스 벡터 생성회로(307), 덧셈회로(309) 및 제4선택회로(311)를 구비한다.
섬 옥텟 연산회로(301)는 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하여 한 바이트의 결과를 옥텟 선택회로(303)로 출력한다.
옥텟 선택회로(303)는 도 2의 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)와 라운드 키 번호(RK_NUM)에 따라 16바이트의 키와 섬 옥텟 연산회로(301)로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 옥텟 회전회로(305)로 출력한다.
옥텟 회전회로(305)는 도 2의 제어회로(400)로부터 출력되는 라운드 키 번호(RK_NUM)에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 제4선택회로(311) 및 덧셈회로(309)로 출력한다. 옥텟 회전회로(305)의 동작은 도 3을 참조하여 상세히 설명된다.
도 3을 참조하면, 라운드 키 번호(RK_NUM)가 1, 9 및 17인 경우 회전비트 수는 0비트이고, 라운드 키 번호(RK_NUM)가 2 및 10인 경우 회전비트 수는 3비트이고, 라운드 키 번호(RK_NUM)가 3 및 11인 경우 회전비트 수는 6비트이고, 라운드키 번호(RK_NUM)가 8 및 16인 경우 회전비트 수는 5비트이다.
바이어스 벡터 생성회로(307)는 도 2의 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)와 라운드 키 번호(RK_NUM)에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 덧셈회로(309)로 출력한다. 덧셈회로(309)는 옥텟 회전회로(305)의 출력신호와 바이어스 벡터 생성회로(307)의 출력신호를 수신하고 더 하고 그 결과를 제4선택회로(311)로 출력한다.
제4선택회로(311)는 제4선택신호(SEL4)에 응답하여 첫번째 라운드 키를 생성할 때는 옥텟 회전회로(305)의 출력신호를 선택하고, 그 이외의 경우에는 덧셈회로(309)의 출력신호를 선택하고, 그 결과(ODD_RK, EVN_RK, 17_RK)를 도 2의 홀수키 연산회로(211), 짝수키 연산회로(217)와 17번째 키 연산회로(227)로 각각 출력한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 SAFER+ 알고리즘을 이용한 암호화장치 및 방법은 16 바이트를 병렬로 동시에 처리하지 않고, 16바이트를 한 바이트씩 차례대로 처리한 후 16바이트가 모두 처리되면 그 값을 래치하고 다음 단계의 연산을 수행하는 방식으로 구성된다.
따라서, 본 발명에 따른 암호화장치를 레이아웃하는 면적이 대폭적으로 감소되므로, 저비용으로 SAFER+암호화 장치를 구현할 수 있는 효과가 있다.
Claims (4)
- SAFER+ 알고리즘을 이용한 암호화장치에 있어서,바이트 번호와 라운드 키 번호를 생성하기 위한 제어회로;16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하기 위한 서브키 생성회로;제1선택신호에 응답하여 16바이트의 평문과 PHT연산회로로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하기 위한 제1선택회로;상기 제1선택회로의 출력신호를 수신하고 저장하기 위한 입력 레지스터;Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하기 위한 배타논리합회로;제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 입력 레지스터의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 배타논리합회로의 출력신호를 선택하여 출력하기 위한 제2선택회로;상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위한 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하기 위한 바이트 선택회로;상기 바이트 선택회로로부터 출력되는 한 바이트와 상기 서브키 생성회로로부터 출력되는 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 홀수키 연산회로;홀수키 연산회로의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하기 위한 EL연산회로;상기 EL연산회로의 출력신호를 수신하고 저장하기 위한 중간 레지스터;상기 중간 레지스터의 출력신호와 상기 서브키 생성회로로부터 출력되는 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하기 위한 짝수키 연산회로;제3선택신호에 응답하여 상기 짝수키 연산회로의 출력신호와 순열연산회로의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하기 위한 제3선택회로;상기 제3선택회로의 출력신호를 수신하고 저장하기 위한 PHT 레지스터;8번째 라운드의 종료 후에 생성된 결과와 상기 서브키 생성회로로부터 출력되는 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 17번째 키 연산회로; 및상기 17번째 키 연산회로의 출력신호를 저장하고 암호문을 출력하기 위한 출력 레지스터를 구비하며,상기 PHT 연산회로는 상기 PHT 레지스터의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고,상기 순열연산회로는 상기 PHT연산회로의 출력신호를 수신하고 순열을 수행하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화장치.
- 제1항에 있어서, 상기 서브키 생성회로는,상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하기 위한 섬 옥텟 연산회로;상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 섬 옥텟 연산회로로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 출력하기 위한 옥텟 선택회로;상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하기 위한 옥텟 회전회로;상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하기 위한 바이어스 벡터 생성회로;상기 옥텟 회전회로의 출력신호와 상기 바이어스 벡터 생성회로의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하기 위한 덧셈회로; 및제4선택신호에 응답하여 상기 덧셈회로의 출력신호와 상기 옥텟 회전회로의 출력신호 중에서 하나를 선택하고 상기 16바이트의 홀수번째 라운드 키, 상기 16바이트의 짝수번째 라운드 키, 또는 상기 16바이트의 17번째 라운드 키를 출력하기 위한 제4선택회로를 구비하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화장치.
- SAFER+ 알고리즘을 이용한 암호화방법에 있어서,(a) 바이트 번호와 라운드 키 번호를 생성하는 단계;(b) 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하는 단계;(c) 제1선택신호에 응답하여 16바이트의 평문과 PHT 연산단계로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하고 출력하는 단계;(d) 상기 (c)단계의 출력신호를 수신하고 저장하는 단계;(e) Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하고 출력하는 단계;(f) 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 (d)단계의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 (e)단계의 출력신호를 선택하고 출력하는 단계;(g) 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위해 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하는 단계;(h) 상기 (g)단계로부터 출력되는 한 바이트와 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산하고 그 결과를 출력하는 단계;(i) 상기 (h)단계의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하는 단계;(j) 상기 (i)단계의 출력신호를 수신하고 저장하는 단계;(k) 상기 (j)단계의 출력신호와 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하는 단계;(l) 제3선택신호에 응답하여 상기 (k)단계의 출력신호와 순열연산단계의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하는 단계;(m) 상기 (l)단계의 출력신호를 수신하고 저장하는 단계;(n) 8번째 라운드의 종료 후에 생성된 결과와 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고 그 결과를 출력하는 단계; 및(o) 상기 (n)단계의 출력신호를 저장하고 암호문을 출력하는 단계를 구비하며,상기 PHT 연산단계는 상기 (m)단계의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고,상기 순열연산단계는 상기 PHT 연산단계의 출력신호를 수신하고 순열을 수행하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화방법.
- 제3항에 있어서, 상기 (b)단계는,(b1) 상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하는 단계;(b2) 상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 (b1)단계로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고그 결과를 출력하는 단계;(b3) 상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하는 단계;(b4) 상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하는 단계;(b5) 상기 (b3)단계의 출력신호와 상기 (b4)단계의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하는 단계; 및(b6) 제4선택신호에 응답하여 상기 (b5)단계의 출력신호와 상기 (b3)단계의 출력신호 중에서 하나를 선택하고, 상기 16바이트의 홀수번째 라운드 키, 상기 16바이트의 짝수번째 라운드 키 및 상기 16바이트의 17번째 라운드 키를 출력하는 단계를 구비하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020028469A KR20030090870A (ko) | 2002-05-22 | 2002-05-22 | 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020028469A KR20030090870A (ko) | 2002-05-22 | 2002-05-22 | 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030090870A true KR20030090870A (ko) | 2003-12-01 |
Family
ID=32383994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020020028469A KR20030090870A (ko) | 2002-05-22 | 2002-05-22 | 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20030090870A (ko) |
-
2002
- 2002-05-22 KR KR1020020028469A patent/KR20030090870A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5222139A (en) | Cryptographic method and apparatus | |
KR100389902B1 (ko) | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 | |
AU767323B2 (en) | Block encryption device using auxiliary conversion | |
KR100296958B1 (ko) | 블록 데이터 암호화 장치 | |
US7092525B2 (en) | Cryptographic system with enhanced encryption function and cipher key for data encryption standard | |
JP3029381B2 (ja) | データ変換装置 | |
US6189095B1 (en) | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks | |
KR20020006475A (ko) | 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체 | |
US7251326B2 (en) | Method and apparatus for data encryption | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
US6732271B1 (en) | Method of deciphering ciphered data and apparatus for same | |
CN111064562A (zh) | 一种fpga上的aes算法的实现方法 | |
US20080276106A1 (en) | Data Conversion Apparatus and Data Conversion Method | |
EP1059760A1 (en) | Method for the block-encryption of discrete data | |
US7103180B1 (en) | Method of implementing the data encryption standard with reduced computation | |
US20050147244A1 (en) | Method for cryptographic transformation of binary data blocks | |
JP2002510058A (ja) | 2進データ・ブロックの暗号変換のための方法 | |
JPH0736672A (ja) | 乱数発生器、及びそれを用いた通信システム及びその方法 | |
JPH1124558A (ja) | 暗号装置 | |
KR100350207B1 (ko) | 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법 | |
Islam et al. | Data encryption standard | |
KR20030090870A (ko) | 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 | |
JPH1152850A (ja) | 暗号変換方法および装置 | |
KR100316024B1 (ko) | 데이터 암호 표준 알고리즘을 이용한 암호화 장치 | |
JP3473171B2 (ja) | 逐次暗号方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |