KR20030090870A - Apparatus and method for encryption using SAFER+ algorithm to reduce layout area - Google Patents

Apparatus and method for encryption using SAFER+ algorithm to reduce layout area Download PDF

Info

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
Application number
KR1020020028469A
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 삼성전자주식회사
Priority to KR1020020028469A priority Critical patent/KR20030090870A/en
Publication of KR20030090870A publication Critical patent/KR20030090870A/en

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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: An encoding device using a safer+ algorithm for reducing a layout area and an encoding method thereof are provided to reduce the layout area and a manufacturing cost by processing sequentially 16 bytes one by one. CONSTITUTION: An encoding device using a safer+ algorithm for reducing a layout area includes a control circuit(400), a sub key generation circuit(300), the first selection circuit(201), an input register(203), an exclusive OR circuit(205), the second selection circuit(207), a byte selection circuit(209), an odd number key calculation circuit(211), an EL calculation circuit(213), an intermediate register(215), an even number key calculation circuit(217), the third selection circuit(219), a PHT register(221), the 17th key calculation circuit(227), and an output register(229). The encoding device further includes a PHT circulation circuit(223) and a circuit(225) of permutation calculation. The PHT circulation circuit(223) receives an output signal of the PHT register(221), performs a pseudo Hadamard transform, and outputs a result value. The permutation calculation circuit(225) receives an output signal of the PHT calculation circuit and performs a permutation process.

Description

레이아웃 면적을 감소시킨 SAFER+ 알고리즘을 이용한 암호화장치 및 방법{Apparatus and method for encryption using SAFER+ algorithm to reduce layout area}Apparatus and method for encryption using SAFER + algorithm to reduce layout area}

본 발명은 암호화장치에 관한 것으로, 보다 상세하게는 감소된 레이아웃 면적을 갖고 SAFER+알고리즘을 이용한 암호화장치 및 SAFER+알고리즘을 이용한 암호화장치의 제어방법에 관한 것이다. 더욱 상세하게는 블루투스(bluetooth) 시스템에서 통신채널이 열린 후, 마스터(master)와 슬레이브(slave)사이에 상호인증을 위한 암호화장치에 관한 것이다.The present invention relates to an encryption device, and more particularly, to an encryption device using a SAFER + algorithm and a control method of an encryption device using a SAFER + algorithm. More particularly, the present invention relates to an encryption device for mutual authentication between a master and a slave after a communication channel is opened in a Bluetooth system.

일반적으로 암호화(Encryption)는 평문(plaintext)을 사용자의 암호화키를 사용하여 암호문(ciphertext)으로 변환하는 과정이다. 블루투스 시스템에서 사용되는 암호화장치는 Ar함수와 Ar'함수를 사용한다. Ar함수는 SAFER+암호화 알고리즘과 동일하고, Ar'함수는 SAFER+암호화 알고리즘을 약간 변형한 함수이다.In general, encryption is a process of converting plaintext into ciphertext using a user's encryption key. The encryption device used in the Bluetooth system uses Ar and Ar 'functions. Ar is the same as the SAFER + encryption algorithm, and Ar 'is a slightly modified version of the SAFER + encryption algorithm.

일반적으로 SAFER+알고리즘은 16바이트의 데이터를 매 단계마다 바이트 단위로 연산을 한 후 거의 동일한 연산을 수행한 후 다음 연산단계를 수행하므로, 16바이트를 병렬적으로 동시에 처리하는 방식으로 암호화장치를 설계를 하는 경우, 동작속도는 증가되나 레이아웃 면적이 증가되는 문제점이 있다.In general, SAFER + algorithm performs 16 bytes of data every byte unit and performs the next operation after performing almost the same operation. Therefore, the encryption device is designed by processing 16 bytes in parallel simultaneously. In this case, the operation speed is increased but the layout area is increased.

따라서 본 발명이 이루고자 하는 기술적인 과제는 16바이트를 동시에 처리하지 않고 한 바이트씩 처리하고 래치한 후 다음 연산단계를 수행하도록 설계함으로써, 전체적인 레이아웃 면적을 감소시킬 수 있는 SAFER+암호화 장치 및 방법을 제공하는 것이다.Therefore, the technical problem to be achieved by the present invention is to provide a SAFER + encryption apparatus and method that can reduce the overall layout area by designing to perform the next operation step after processing and latching by one byte instead of processing 16 bytes at the same time will be.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.The detailed description of each drawing is provided in order to provide a thorough understanding of the drawings cited in the detailed description of the invention.

도 1은 본 발명의 일 실시예에 따른 SAFER+알고리즘을 이용한 암호화장치의 블락도를 나타낸다.1 is a block diagram of an encryption apparatus using SAFER + algorithm according to an embodiment of the present invention.

도 2는 도 1의 서브키 생성회로의 블락도를 나타낸다.FIG. 2 is a block diagram of the subkey generation circuit of FIG. 1.

도 3은 옥텟 회전회로의 동작을 나타내는 표이다.3 is a table showing the operation of the octet rotating circuit.

상기 기술적 과제를 달성하기 위한 SAFER+ 알고리즘을 이용한 암호화장치는 바이트 번호, 라운드 키 번호를 생성하기 위한 제어회로; 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하기 위한 서브키 생성회로; 제1선택신호에 응답하여 16바이트의 평문과 PHT연산회로로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하기 위한 제1선택회로; 상기 제1선택회로의 출력신호를 수신하고저장하기 위한 입력 레지스터; Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하기 위한 배타논리합회로; 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 입력 레지스터의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 배타논리합회로의 출력신호를 선택하여 출력하기 위한 제2선택회로; 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위한 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하기 위한 바이트 선택회로;The encryption apparatus using the SAFER + algorithm for achieving the technical problem is a control circuit for generating a byte number, a round key number; A subkey generation circuit for receiving a 16-byte key and generating a 16-byte odd round key, a 16-byte even round key, and a 16-byte 17th round key; A first selection circuit for selecting one of the 16-byte plain text and the 16-byte output signal output from the PHT operation circuit in response to the first selection signal; An input register for receiving and storing an output signal of the first selection circuit; An exclusive logic circuit for receiving the result of the second round and the plain text and performing the operation to implement an Ar 'function; In response to the second selection signal, an output signal of the input register is selected and output when the Ar function is performed, and an output signal of the exclusive logic circuit is selected and output in the third round when the Ar 'function is performed. A second selection circuit for performing; A byte selection circuit for sequentially selecting corresponding bytes corresponding to the byte numbers for processing the output signal of the second selection circuit one by one and outputting the result;

상기 바이트 선택회로로부터 출력되는 한 바이트와 상기 서브키 생성회로로부터 출력되는 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 홀수키 연산회로; 홀수키 연산회로의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하기 위한 EL연산회로; 상기 EL연산회로의 출력신호를 수신하고 저장하기 위한 중간 레지스터; 상기 중간 레지스터의 출력신호와 상기 서브키 생성회로로부터 출력되는 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하기 위한 짝수키 연산회로; 제3선택신호에 응답하여 상기 짝수키 연산회로의 출력신호와 순열연산회로의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하기 위한 제3선택회로; 상기 제3선택회로를 출력신호를 수신하고 저장하기 위한 PHT 레지스터; 8번째 라운드의 종료 후에 생성된 결과와 상기 서브키 생성회로로부터 출력되는 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 17번째 키 연산회로; 및 상기 17번째 키 연산회로의 출력신호를 저장하고 암호문을 출력하기 위한 출력 레지스터를 구비하며, 상기 PHT 연산회로는 상기 PHT 레지스터의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고, 상기 순열연산회로는 상기 PHT연산회로의 출력신호를 수신하고 순열을 수행한다.An odd key arithmetic circuit for receiving one byte from the byte selecting circuit and one odd round key output from the sub-key generating circuit and performing an operation; An EL operation circuit for receiving an output signal of an odd key operation circuit, performing an E operation or an L operation, and outputting a result; An intermediate register for receiving and storing an output signal of the EL operation circuit; An even-key operation circuit for receiving one byte of an output signal of the intermediate register and the even-numbered round key output from the sub-key generation circuit, performing an operation, and outputting a result; A third selection circuit for selecting one signal from the output signal of the even-key operation circuit and the output signal of the permutation circuit in response to a third selection signal and outputting a result; A PHT register for receiving and storing an output signal of the third selection circuit; A seventeenth key operation circuit for receiving one byte of the result generated after the end of the eighth round and the seventeenth round key outputted from the subkey generation circuit and performing an operation; And an output register for storing an output signal of the seventeenth key operation circuit and outputting an encrypted text, wherein the PHT operation circuit receives an output signal of the PHT register and performs a pseudo Hadamard Transform. The result is output, and the permutation circuit receives the output signal of the PHT calculation circuit and performs permutation.

상기 기술적 과제를 달성하기 위한 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 연산단계의 출력신호를 수신하고 순열을 수행한다.The encryption method using the SAFER + algorithm for achieving the technical problem comprises the steps of (a) generating a byte number and a round key number; (b) receiving a 16 byte key and generating a 16 byte odd round key, a 16 byte even round key and a 16 byte 17 th round key; (c) selecting and outputting one signal from the 16-byte plain text and the 16-byte output signal output from the PHT operation step in response to the first selection signal; (d) receiving and storing the output signal of step (c); (e) receiving the results of the second and second rounds and the plaintext, performing an operation and outputting the Ar 'function; (f) In response to the second selection signal, in the case of performing the Ar function, the output signal of step (d) is selected and outputted, and in the case of performing the Ar 'function, in the third round, in step (e) Selecting and outputting an output signal; (g) sequentially selecting corresponding bytes corresponding to the byte number for processing the output signal of the second selection circuit one by one and outputting the result; (h) receiving, calculating and outputting a result of one byte of the byte output from the step (g) and the odd-numbered round key; (i) receiving the output signal of step (h), performing E operation or L operation, and outputting the result; (j) receiving and storing the output signal of step (i); (k) receiving the output signal of step (j) and one byte of the even-numbered round key, performing an operation, and outputting a result; (1) selecting one signal from the output signal of step (k) and the output signal of the permutation step and outputting a result in response to the third selection signal; (m) receiving and storing the output signal of step (l); (n) receiving a result generated after the end of the eighth round and one byte of the seventeenth round key, performing an operation, and outputting the result; And (o) storing the output signal of step (n) and outputting a cipher text, wherein the PHT operation step receives the output signal of step (m) and performs a pseudo Hadamard transform. And outputting the result, and the permutation calculation step receives the output signal of the PHT calculation step and performs permutation.

상기 (b)단계는 (b1) 상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하는 단계; (b2) 상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 (b1)단계로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 출력하는 단계; (b3) 상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하는 단계; (b4) 상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하는 단계; (b5) 상기 (b3)단계의 출력신호와 상기 (b4)단계의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하는 단계; 및 (b6) 제4선택신호에 응답하여 상기 (b5)단계의 출력신호와 상기 (b3)단계의 출력신호 중에서 하나를 선택하고, 상기 16바이트의 홀수번째라운드 키, 상기 16바이트의 짝수번째 라운드 키및 상기 16바이트의 17번째 라운드 키를 한 바이트씩 차례대로 출력하는 단계를 구비한다.Step (b) may include (b1) receiving the 16-byte key, performing an exclusive OR on each byte, and outputting a result of one byte; (b2) selecting one byte from among the 16-byte key and one byte of key values outputted from the step (b1) according to the byte number and the round key number, and outputting a result; (b3) rotating the byte left by the corresponding number of bits according to the round key number, and outputting a result; (b4) generating a bias vector of one byte according to the byte number and the round key number and outputting a result; (b5) receiving the output signal of step (b3) and the output signal of step (b4), adding them, and outputting the result; And (b6) selecting one of the output signal of step (b5) and the output signal of step (b3) in response to a fourth selection signal, wherein the 16-byte odd-numbered round key and the 16-byte even-numbered round are selected. And outputting the key and the seventeenth round key of the sixteen bytes one by one.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 SAFER+알고리즘을 이용한 암호화장치의 블락도를 나타낸다. 도 1을 참조하면, 암호화장치(100)는 암호처리회로(200), 서브키 생성회로(300) 및 제어회로(400)를 구비한다.1 is a block diagram of an encryption apparatus using SAFER + algorithm according to an embodiment of the present invention. Referring to FIG. 1, the encryption apparatus 100 includes an encryption processing circuit 200, a sub key generation circuit 300, and a control circuit 400.

암호처리회로(200)는 16바이트의 암호화키를 사용하여 입력되는 16바이트의 평문(plaintext)을 암호화하고 암호문(ciphertext)을 출력한다. 본 발명에 따른 암호처리회로(200)는 SAFER+ 알고리즘을 이용하여 암호화를 수행한다.The encryption processing circuit 200 encrypts 16-byte plaintext input using a 16-byte encryption key and outputs a ciphertext. The encryption processing circuit 200 according to the present invention performs encryption using the SAFER + algorithm.

서브키 생성회로(300)는 암호처리회로(200)에서 암호화가 수행되는 동안 암호처리회로(200)에서 매 라운드(round)마다 사용될 라운드 키(ODD_RK, EVN_RK)를 생성한다. 제어회로(400)는 암호화를 위한 제어신호들(BT_NUM, RK_NUM, SEL1, SEL2, SEL3, SEL4)을 생성하여 암호처리회로(200)와 서브키 생성회로(300)로 출력한다.The sub key generation circuit 300 generates round keys ODD_RK and EVN_RK to be used every round in the encryption processing circuit 200 while encryption is performed in the encryption processing circuit 200. The control circuit 400 generates the control signals BT_NUM, RK_NUM, SEL1, SEL2, SEL3, and SEL4 for encryption and outputs them to the encryption processing circuit 200 and the sub key generation circuit 300.

암호처리회로(200)는 제1선택회로(201), 입력 레지스터(203), 배타논리합회로(205), 제2선택회로(207), 바이트 선택회로(209), 홀수키 연산회로(211), EL연산회로(213), 중간 레지스터(215), 짝수키 연산회로(217), 제3선택회로(219), PHT 레지스터(221), PHT연산회로(223), 순열 연산회로(225), 17번째 키 연산회로(227) 및 출력 레지스터(229)를 구비한다.The encryption processing circuit 200 includes a first selection circuit 201, an input register 203, an exclusive logic circuit 205, a second selection circuit 207, a byte selection circuit 209, and an odd key calculation circuit 211. EL operation circuit 213, intermediate register 215, even-key operation circuit 217, third selection circuit 219, PHT register 221, PHT operation circuit 223, permutation operation circuit 225, A seventeenth key operation circuit 227 and an output register 229 are provided.

제1선택회로(201)는 제1선택신호(SEL1)에 응답하여 입력되는 16바이트의 평문과 PHT연산회로(223)로부터 출력되는 16바이트의 출력신호중에서 하나의 신호를 선택하고 그 결과를 입력 레지스터(203)로 출력한다.The first selection circuit 201 selects one signal from the 16-byte plain text input in response to the first selection signal SEL1 and the 16-byte output signal output from the PHT calculation circuit 223 and inputs the result. Output to register 203.

입력 레지스터(203)는 제1선택회로(210)의 출력신호를 수신하고 일시 저장한다. 배타논리합회로(205)는 Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 16바이트의 평문을 수신하고 배타논리합과 덧셈 연산을 수행한다.The input register 203 receives and temporarily stores the output signal of the first selection circuit 210. The exclusive logic circuit 205 receives the result of the second round and the 16-byte plain text and performs exclusive logic sum and add operations to implement the Ar 'function.

제2선택회로(207)는 제2선택신호(SEL2)에 응답하여, Ar기능을 수행하는 경우 입력 레지스터(203)의 출력신호를 선택하여 바이트 선택회로(209)로 출력하고, Ar' 기능을 수행하는 경우 3번째 라운드에서 배타논리합회로(205)의 출력신호를 선택하여 바이트 선택회로(209)로 출력한다.In response to the second selection signal SEL2, the second selection circuit 207 selects an output signal of the input register 203 and outputs the output signal to the byte selection circuit 209 when the Ar function is performed. In the third round, the output signal of the exclusive logic circuit 205 is selected and output to the byte select circuit 209 in the third round.

바이트 선택회로(209)는 16바이트의 제2선택회로(207)의 출력신호를 한 바이트씩 차례대로 처리하기 위하여 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 홀수키 연산회로(211)로 출력한다.The byte select circuit 209 sequentially processes the corresponding byte corresponding to the byte number BT_NUM output from the control circuit 400 so as to sequentially process the output signal of the 16-byte second selection circuit 207 one byte at a time. The result is output to the odd key calculation circuit 211.

홀수키 연산회로(211)는 바이트 선택회로(209)로부터 출력되는 한 바이트와 서브키 생성회로(300)로부터 출력되는 16바이트의 홀수번째 라운드 키(ODD_RK)중에서 한 바이트를 수신하고 연산을 수행한다.The odd-key operation circuit 211 receives one byte from one byte output from the byte selection circuit 209 and the 16-byte odd-numbered round key ODD_RK output from the sub-key generation circuit 300 and performs an operation. .

EL연산회로(213)는 홀수키 연산회로(211)의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 중간 레지스터(215)로 출력한다. 중간 레지스터(215)는 EL연산회로(213)의 출력신호를 수신하고 저장한다.The EL operation circuit 213 receives the output signal of the odd key operation circuit 211 and performs the E operation or the L operation, and outputs the result to the intermediate register 215. The intermediate register 215 receives and stores the output signal of the EL operation circuit 213.

짝수키 연산회로(217)는 중간 레지스터(215)의 출력신호와 서브키 생성회로(300)로부터 출력되는 16바이트의 짝수번째 라운드 키(EVN_RK) 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 제3선택회로(219)로 출력한다. 제3선택회로(219)는 제3선택신호(SEL3)에 응답하여 짝수키 연산회로(217)의 출력신호와 순열연산회로(225)의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 PHT 레지스터(221)로 출력한다.The even-key operation circuit 217 receives one byte of the output signal of the intermediate register 215 and the sixteenth even-numbered round key EVN_RK output from the sub-key generation circuit 300, and performs an operation. Is output to the third selection circuit 219. The third selection circuit 219 selects one signal from the output signal of the even-key operation circuit 217 and the output signal of the permutation circuit 225 in response to the third selection signal SEL3 and returns the result as a PHT register. Output to 221.

PHT 레지스터(221)는 제3선택회로(219)를 출력신호를 수신하고 저장한다. PHT 연산회로(223)는 PHT 레지스터(221)의 출력신호를 수신하여 의사 하다마드 변환(Pseudo Hadamard Transform; PHT)을 하고 그 결과를 순열연산회로(225) 및 제1선택회로(201)로 출력한다. 순열연산회로(225)는 PHT연산회로(223)의 출력신호를 수신하고 순열(permutation)을 수행한다.The PHT register 221 receives and stores an output signal of the third selection circuit 219. The PHT calculation circuit 223 receives the output signal of the PHT register 221 to perform a pseudo Hadamard transform (PHT) and outputs the result to the permutation circuit 225 and the first selection circuit 201. do. The permutation calculation circuit 225 receives the output signal of the PHT calculation circuit 223 and performs permutation.

서브키 생성회로(300)는 입력되는 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키(ODD_RK), 16바이트의 짝수번째 라운드 키(EVN_RK) 또는 16바이트의 17번째 라운드 키(17_RK)를 바이트 번호(BT_NUM)에 따라 한 바이트씩 생성하여 홀수키 연산회로(213), 짝수키 연산회로(217) 또는 17번째 키 연산회로(227)로 각각 출력한다.The subkey generation circuit 300 receives the input 16-byte key, and 16-byte odd-numbered round key (ODD_RK), 16-byte even-numbered round key (EVN_RK) or 16-byte 17th round key (17_RK). Is generated one byte according to the byte number BT_NUM and output to the odd-key operation circuit 213, the even-key operation circuit 217, or the 17th key operation circuit 227, respectively.

17번째 키 연산회로(227)는 8번째 라운드의 종료 후에 생성된 결과와 서브키 생성회로(513)로부터 출력되는 16바이트의 17번째 라운드 키(17_RK) 중에서 한 바이트를 수신하고 연산을 수행한다. 출력 레지스터(229)는 17번째 키 연산회로(227)의 출력신호를 일시 저장하고 암호문을 출력한다.The seventeenth key operation circuit 227 receives the result generated after the end of the eighth round and one byte of the sixteenth 17th round key 17_RK output from the subkey generation circuit 513 and performs an operation. The output register 229 temporarily stores the output signal of the seventeenth key operation circuit 227 and outputs a cipher text.

도 1을 참조하여 본 발명에 따른 SAFER+알고리즘을 이용한 암호화장치(100)의 동작이 상세히 설명된다.The operation of the encryption apparatus 100 using the SAFER + algorithm according to the present invention will be described in detail with reference to FIG.

우선, 제1선택회로(201)는 첫 번째 라운드에서 16바이트의 평문을 선택하고 입력 레지스터(203)로 출력한다. 입력 레지스터(203)는 제1선택회로(201)의 출력신호를 일시 저장한다. 배타논리합 연산회로(205)는 Ar' 기능을 수행하는 경우 3번째 라운드에서 2번째 라운드의 결과와 평문을 수신하고 연산을 수행한다.First, the first selection circuit 201 selects 16 bytes of plain text in the first round and outputs it to the input register 203. The input register 203 temporarily stores the output signal of the first selection circuit 201. When the exclusive logic sum operation circuit 205 performs the Ar 'function, the exclusive logic sum operation circuit 205 receives the result of the second round and the plaintext and performs the operation.

제2선택회로(503)는 Ar기능을 수행하는 경우 입력 레지스터(203)의 출력신호를 선택하고, Ar'기능을 수행하는 경우 3번째 라운드에서 배타 논리합 연산회로(205)의 출력신호를 선택한다.The second selection circuit 503 selects the output signal of the input register 203 when performing the Ar function, and selects the output signal of the exclusive OR circuit 205 in the third round when performing the Ar 'function. .

바이트 선택회로(209)는 16바이트의 제2선택회로(207)의 출력신호를 한 바이트씩 차례대로 처리하기 위해, 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)에 따라 해당 바이트를 차례대로 선택하고 출력한다.The byte selection circuit 209 sequentially processes the corresponding bytes according to the byte number BT_NUM output from the control circuit 400 in order to process the output signal of the 16th second selection circuit 207 one by one. Select and print.

홀수키 연산회로(211)는 바이트 선택회로(209)의 출력신호인 한 바이트와 서브키 생성회로(300)로부터 출력되는 16바이트의 홀수번째 라운드 키(ODD_RK)중에서 한 바이트를 수신하고 연산을 수행한다.The odd-key operation circuit 211 receives one byte of an output signal of the byte selection circuit 209 and an odd-numbered round key (ODD_RK) of 16 bytes output from the subkey generation circuit 300 and performs an operation. do.

EL 연산회로(213)는 홀수키 연산회로(211)의 출력신호인 한 바이트에 대해 E연산 또는 L연산을 수행한다. 중간 레지스터(215)는 EL 연산회로(213)의 출력신호를 저장한다. 짝수키 연산회로(217)는 중간 레지스터로(215)의 출력신호와 서브키 생성회로(300)로부터 출력되는 16바이트의 짝수번째 라운드 키(EVN_RK)중에서 한 바이트를 수신하고 연산을 수행한다.The EL operation circuit 213 performs an E operation or an L operation on one byte which is an output signal of the odd key operation circuit 211. The intermediate register 215 stores the output signal of the EL operation circuit 213. The even-key operation circuit 217 receives one byte from the output signal of the intermediate register 215 and the 16-th even-numbered round key EVN_RK output from the sub-key generation circuit 300 and performs an operation.

제3선택회로(219)는 짝수키 연산회로(217)의 출력신호를 선택하여 16바이트의 PHT 레지스터(510)중에서 첫 번째 레지스터에 저장한다. 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)가 1씩 증가함에 따라, 바이트 선택회로(209)로부터 제3선택회로(219)까지의 동작을 16번 반복하면, 16바이트 평문의 각 바이트에 대한 연산이 모두 이루어지고, 각 바이트의 연산결과는 PHT 레지스터(221)의 각 바이트에 순서대로 저장된다.The third selection circuit 219 selects the output signal of the even-key operation circuit 217 and stores it in the first register among the 16-byte PHT registers 510. As the byte number BT_NUM output from the control circuit 400 increases by one, if the operation from the byte selection circuit 209 to the third selection circuit 219 is repeated 16 times, each byte of the 16-byte plain text is repeated. All operations are performed, and the operation result of each byte is sequentially stored in each byte of the PHT register 221.

PHT 연산회로(223)는 PHT레지스터(221)에 저장된 16바이트의 값에 대해 PHT(Pseudo Hadamard Transform)을 수행한다. 순열연산회로(225)는 PHT 연산회로(223)의 연산 결과에 대해 순열(permutation)을 수행한다.The PHT calculation circuit 223 performs PHT (Pseudo Hadamard Transform) on the value of 16 bytes stored in the PHT register 221. The permutation operation circuit 225 performs permutation on the operation result of the PHT calculation circuit 223.

순열연산회로(225)의 출력신호는 PHT 레지스터(221)에 저장되어, PHT 연산과 순열을 반복 수행한다. 이러한 과정을 3번 반복하고 마지막 4번째에는 PHT 연산만 수행하고, 그 결과를 입력 레지스터(203)에 저장한다. 여기까지 한 라운드가 끝나게 된다.The output signal of the permutation circuit 225 is stored in the PHT register 221 to repeat the PHT operation and permutation. This process is repeated three times, and only the PHT operation is performed at the fourth time, and the result is stored in the input register 203. This is the end of the round.

다음 라운드에서는 제1선택회로(203)가 PHT 연산회로(511)의 출력신호를 선택하도록 하여, 앞의 과정을 반복하도록 한다.In the next round, the first selection circuit 203 selects the output signal of the PHT calculation circuit 511 to repeat the above process.

이러한 라운드 과정이 8번 반복되면, 입력레지스터(203)는 8번째 라운드의결과를 저장한다. 이 때, 17번째 키 연산회로(227)는 상기 8번째 라운드 결과와 서브키 생성회로(300)로부터 생성된 17번재 라운드 키(17_RK)를 수신하고 연산을 수행하여 최종 암호문을 생성한다. 이 암호문은 출력 레지스터(229)에 저장된다.When this round process is repeated eight times, the input register 203 stores the result of the eighth round. At this time, the seventeenth key operation circuit 227 receives the eighth round result and the seventeenth round key 17_RK generated from the subkey generation circuit 300 and performs an operation to generate the final ciphertext. This cipher text is stored in the output register 229.

도 2는 도 1의 서브키 생성회로의 블락도를 나타낸다. 도 2를 참조하면, 서브키 생성회로(300)는 섬 옥텟 연산회로(sum octet operation circuit; 301), 옥텟 선택회로(303), 옥텟 회전회로(305), 바이어스 벡터 생성회로(307), 덧셈회로(309) 및 제4선택회로(311)를 구비한다.FIG. 2 is a block diagram of the subkey generation circuit of FIG. 1. Referring to FIG. 2, the subkey generation circuit 300 includes a sum octet operation circuit 301, an octet selection circuit 303, an octet rotation circuit 305, a bias vector generation circuit 307, and an addition. A circuit 309 and a fourth selection circuit 311 are provided.

섬 옥텟 연산회로(301)는 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하여 한 바이트의 결과를 옥텟 선택회로(303)로 출력한다.The island octet calculation circuit 301 receives a key of 16 bytes and performs an exclusive OR on each byte to output the result of one byte to the octet selection circuit 303.

옥텟 선택회로(303)는 도 2의 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)와 라운드 키 번호(RK_NUM)에 따라 16바이트의 키와 섬 옥텟 연산회로(301)로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 옥텟 회전회로(305)로 출력한다.The octet selection circuit 303 includes 16 bytes of key and one byte output from the island octet calculation circuit 301 according to the byte number BT_NUM and the round key number RK_NUM output from the control circuit 400 of FIG. One byte is selected from the key values and the result is output to the octet rotating circuit 305.

옥텟 회전회로(305)는 도 2의 제어회로(400)로부터 출력되는 라운드 키 번호(RK_NUM)에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 제4선택회로(311) 및 덧셈회로(309)로 출력한다. 옥텟 회전회로(305)의 동작은 도 3을 참조하여 상세히 설명된다.The octet rotating circuit 305 rotates the byte to the left by the corresponding number of bits according to the round key number RK_NUM output from the control circuit 400 of FIG. 2, and returns the result of the fourth selection circuit 311 and the addition circuit. Output at 309. The operation of the octet rotating circuit 305 is described in detail with reference to FIG.

도 3을 참조하면, 라운드 키 번호(RK_NUM)가 1, 9 및 17인 경우 회전비트 수는 0비트이고, 라운드 키 번호(RK_NUM)가 2 및 10인 경우 회전비트 수는 3비트이고, 라운드 키 번호(RK_NUM)가 3 및 11인 경우 회전비트 수는 6비트이고, 라운드키 번호(RK_NUM)가 8 및 16인 경우 회전비트 수는 5비트이다.Referring to FIG. 3, when the round key number RK_NUM is 1, 9, and 17, the number of rotation bits is 0 bits. When the round key number RK_NUM is 2 and 10, the number of rotation bits is 3 bits. When the number RK_NUM is 3 and 11, the number of rotation bits is 6 bits, and when the round key number RK_NUM is 8 and 16, the number of rotation bits is 5 bits.

바이어스 벡터 생성회로(307)는 도 2의 제어회로(400)로부터 출력되는 바이트 번호(BT_NUM)와 라운드 키 번호(RK_NUM)에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 덧셈회로(309)로 출력한다. 덧셈회로(309)는 옥텟 회전회로(305)의 출력신호와 바이어스 벡터 생성회로(307)의 출력신호를 수신하고 더 하고 그 결과를 제4선택회로(311)로 출력한다.The bias vector generation circuit 307 generates a byte vector of bias vectors according to the byte number BT_NUM and the round key number RK_NUM output from the control circuit 400 of FIG. 2, and the result is added to the addition circuit 309. Output The addition circuit 309 receives and adds the output signal of the octet rotation circuit 305 and the output signal of the bias vector generation circuit 307 and outputs the result to the fourth selection circuit 311.

제4선택회로(311)는 제4선택신호(SEL4)에 응답하여 첫번째 라운드 키를 생성할 때는 옥텟 회전회로(305)의 출력신호를 선택하고, 그 이외의 경우에는 덧셈회로(309)의 출력신호를 선택하고, 그 결과(ODD_RK, EVN_RK, 17_RK)를 도 2의 홀수키 연산회로(211), 짝수키 연산회로(217)와 17번째 키 연산회로(227)로 각각 출력한다.The fourth selection circuit 311 selects the output signal of the octet rotation circuit 305 when generating the first round key in response to the fourth selection signal SEL4, and otherwise outputs the addition circuit 309. The signal is selected, and the results (ODD_RK, EVN_RK, 17_RK) are output to the odd key operation circuit 211, the even key operation circuit 217, and the 17th key operation circuit 227, respectively.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 본 발명에 따른 SAFER+ 알고리즘을 이용한 암호화장치 및 방법은 16 바이트를 병렬로 동시에 처리하지 않고, 16바이트를 한 바이트씩 차례대로 처리한 후 16바이트가 모두 처리되면 그 값을 래치하고 다음 단계의 연산을 수행하는 방식으로 구성된다.As described above, the encryption apparatus and method using the SAFER + algorithm according to the present invention do not process 16 bytes in parallel at the same time, and process 16 bytes one by one and then latch the value when all 16 bytes are processed. It is configured in such a way that the operation of the step is performed.

따라서, 본 발명에 따른 암호화장치를 레이아웃하는 면적이 대폭적으로 감소되므로, 저비용으로 SAFER+암호화 장치를 구현할 수 있는 효과가 있다.Therefore, since the area for laying out the encryption apparatus according to the present invention is greatly reduced, there is an effect that the SAFER + encryption apparatus can be implemented at low cost.

Claims (4)

SAFER+ 알고리즘을 이용한 암호화장치에 있어서,In the encryption device using the SAFER + algorithm, 바이트 번호와 라운드 키 번호를 생성하기 위한 제어회로;Control circuitry for generating byte numbers and round key numbers; 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하기 위한 서브키 생성회로;A subkey generation circuit for receiving a 16-byte key and generating a 16-byte odd round key, a 16-byte even round key, and a 16-byte 17th round key; 제1선택신호에 응답하여 16바이트의 평문과 PHT연산회로로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하기 위한 제1선택회로;A first selection circuit for selecting one of the 16-byte plain text and the 16-byte output signal output from the PHT operation circuit in response to the first selection signal; 상기 제1선택회로의 출력신호를 수신하고 저장하기 위한 입력 레지스터;An input register for receiving and storing an output signal of the first selection circuit; Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하기 위한 배타논리합회로;An exclusive logic circuit for receiving the result of the second round and the plain text and performing the operation to implement an Ar 'function; 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 입력 레지스터의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 배타논리합회로의 출력신호를 선택하여 출력하기 위한 제2선택회로;In response to the second selection signal, an output signal of the input register is selected and output when the Ar function is performed, and an output signal of the exclusive logic circuit is selected and output in the third round when the Ar 'function is performed. A second selection circuit for performing; 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위한 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하기 위한 바이트 선택회로;A byte selection circuit for sequentially selecting corresponding bytes corresponding to the byte numbers for processing the output signal of the second selection circuit one by one and outputting the result; 상기 바이트 선택회로로부터 출력되는 한 바이트와 상기 서브키 생성회로로부터 출력되는 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 홀수키 연산회로;An odd key arithmetic circuit for receiving one byte from the byte selecting circuit and one odd round key output from the sub-key generating circuit and performing an operation; 홀수키 연산회로의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하기 위한 EL연산회로;An EL operation circuit for receiving an output signal of an odd key operation circuit, performing an E operation or an L operation, and outputting a result; 상기 EL연산회로의 출력신호를 수신하고 저장하기 위한 중간 레지스터;An intermediate register for receiving and storing an output signal of the EL operation circuit; 상기 중간 레지스터의 출력신호와 상기 서브키 생성회로로부터 출력되는 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하기 위한 짝수키 연산회로;An even-key operation circuit for receiving one byte of an output signal of the intermediate register and the even-numbered round key output from the sub-key generation circuit, performing an operation, and outputting a result; 제3선택신호에 응답하여 상기 짝수키 연산회로의 출력신호와 순열연산회로의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하기 위한 제3선택회로;A third selection circuit for selecting one signal from the output signal of the even-key operation circuit and the output signal of the permutation circuit in response to a third selection signal and outputting a result; 상기 제3선택회로의 출력신호를 수신하고 저장하기 위한 PHT 레지스터;A PHT register for receiving and storing an output signal of the third selection circuit; 8번째 라운드의 종료 후에 생성된 결과와 상기 서브키 생성회로로부터 출력되는 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하기 위한 17번째 키 연산회로; 및A seventeenth key operation circuit for receiving one byte of the result generated after the end of the eighth round and the seventeenth round key outputted from the subkey generation circuit and performing an operation; And 상기 17번째 키 연산회로의 출력신호를 저장하고 암호문을 출력하기 위한 출력 레지스터를 구비하며,An output register for storing an output signal of the seventeenth key operation circuit and outputting a cipher text, 상기 PHT 연산회로는 상기 PHT 레지스터의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고,The PHT calculation circuit receives the output signal of the PHT register, performs a pseudo Hadamard transform and outputs the result, 상기 순열연산회로는 상기 PHT연산회로의 출력신호를 수신하고 순열을 수행하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화장치.And the permutation calculation circuit receives the output signal of the PHT calculation circuit and performs permutation. 제1항에 있어서, 상기 서브키 생성회로는,The circuit of claim 1, wherein the subkey generation circuit comprises: 상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하기 위한 섬 옥텟 연산회로;A sum octet calculation circuit for receiving the 16-byte key, performing an exclusive OR on each byte, and outputting a result of one byte; 상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 섬 옥텟 연산회로로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고 그 결과를 출력하기 위한 옥텟 선택회로;An octet selecting circuit for selecting one byte from among the 16-byte key and one byte of key values output from the island octet calculation circuit according to the byte number and the round key number, and outputting a result; 상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하기 위한 옥텟 회전회로;An octet rotating circuit for rotating the byte left by the corresponding number of bits according to the round key number, and outputting the result; 상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하기 위한 바이어스 벡터 생성회로;A bias vector generation circuit for generating a bias vector of one byte and outputting a result according to the byte number and the round key number; 상기 옥텟 회전회로의 출력신호와 상기 바이어스 벡터 생성회로의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하기 위한 덧셈회로; 및An addition circuit for receiving the output signal of the octet rotating circuit and the output signal of the bias vector generating circuit, adding them, and outputting the result; And 제4선택신호에 응답하여 상기 덧셈회로의 출력신호와 상기 옥텟 회전회로의 출력신호 중에서 하나를 선택하고 상기 16바이트의 홀수번째 라운드 키, 상기 16바이트의 짝수번째 라운드 키, 또는 상기 16바이트의 17번째 라운드 키를 출력하기 위한 제4선택회로를 구비하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화장치.In response to a fourth selection signal, one of an output signal of the addition circuit and an output signal of the octet rotating circuit is selected, and the 16-byte odd-numbered round key, the 16-byte even-numbered round key, or the 16-byte 17 And a fourth selection circuit for outputting the first round key. SAFER+ 알고리즘을 이용한 암호화방법에 있어서,In the encryption method using the SAFER + algorithm, (a) 바이트 번호와 라운드 키 번호를 생성하는 단계;(a) generating a byte number and a round key number; (b) 16바이트의 키를 수신하고, 16바이트의 홀수번째 라운드 키, 16바이트의 짝수번째 라운드 키 및 16바이트의 17번째 라운드 키를 생성하는 단계;(b) receiving a 16 byte key and generating a 16 byte odd round key, a 16 byte even round key and a 16 byte 17 th round key; (c) 제1선택신호에 응답하여 16바이트의 평문과 PHT 연산단계로부터 출력되는 16바이트의 출력신호 중에서 하나의 신호를 선택하고 출력하는 단계;(c) selecting and outputting one signal from the 16-byte plain text and the 16-byte output signal output from the PHT operation step in response to the first selection signal; (d) 상기 (c)단계의 출력신호를 수신하고 저장하는 단계;(d) receiving and storing the output signal of step (c); (e) Ar' 기능을 구현하기 위해 3번째 라운드에서 2번째 라운드의 결과 및 상기 평문을 수신하고 연산을 수행하고 출력하는 단계;(e) receiving the results of the second and second rounds and the plaintext, performing an operation and outputting the Ar 'function; (f) 제2선택신호에 응답하여, Ar기능을 수행하는 경우 상기 (d)단계의 출력신호를 선택하여 출력하고, 상기 Ar' 기능을 수행하는 경우 상기 3번째 라운드에서 상기 (e)단계의 출력신호를 선택하고 출력하는 단계;(f) In response to the second selection signal, in the case of performing the Ar function, the output signal of step (d) is selected and outputted, and in the case of performing the Ar 'function, in the third round, in step (e) Selecting and outputting an output signal; (g) 상기 제2선택회로의 출력신호를 한 바이트씩 차례대로 처리하기 위해 상기 바이트 번호에 상응하는 해당 바이트를 차례대로 선택하고 그 결과를 출력하는 단계;(g) sequentially selecting corresponding bytes corresponding to the byte numbers and outputting the results in order to process the output signal of the second selection circuit one by one; (h) 상기 (g)단계로부터 출력되는 한 바이트와 상기 홀수번째 라운드 키 중에서 한 바이트를 수신하고 연산하고 그 결과를 출력하는 단계;(h) receiving, calculating and outputting a result of one byte of the byte output from the step (g) and the odd-numbered round key; (i) 상기 (h)단계의 출력신호를 수신하고 E연산 또는 L연산을 수행하고 그 결과를 출력하는 단계;(i) receiving the output signal of step (h), performing E operation or L operation, and outputting the result; (j) 상기 (i)단계의 출력신호를 수신하고 저장하는 단계;(j) receiving and storing the output signal of step (i); (k) 상기 (j)단계의 출력신호와 상기 짝수번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고, 그 결과를 출력하는 단계;(k) receiving the output signal of step (j) and one byte of the even-numbered round key, performing an operation, and outputting a result; (l) 제3선택신호에 응답하여 상기 (k)단계의 출력신호와 순열연산단계의 출력신호 중에서 하나의 신호를 선택하고 그 결과를 출력하는 단계;(1) selecting one signal from the output signal of step (k) and the output signal of the permutation step and outputting a result in response to the third selection signal; (m) 상기 (l)단계의 출력신호를 수신하고 저장하는 단계;(m) receiving and storing the output signal of step (l); (n) 8번째 라운드의 종료 후에 생성된 결과와 상기 17번째 라운드 키 중에서 한 바이트를 수신하고 연산을 수행하고 그 결과를 출력하는 단계; 및(n) receiving a result generated after the end of the eighth round and one byte of the seventeenth round key, performing an operation, and outputting the result; And (o) 상기 (n)단계의 출력신호를 저장하고 암호문을 출력하는 단계를 구비하며,(o) storing the output signal of step (n) and outputting a cipher text, 상기 PHT 연산단계는 상기 (m)단계의 출력신호를 수신하고 의사 하다마드 변환(Pseudo Hadamard Transform)을 수행하고 그 결과를 출력하고,The PHT operation step receives the output signal of step (m) and performs a pseudo Hadamard transform and outputs the result, 상기 순열연산단계는 상기 PHT 연산단계의 출력신호를 수신하고 순열을 수행하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화방법.And the permutation calculation step receives an output signal of the PHT calculation step and performs permutation. 제3항에 있어서, 상기 (b)단계는,The method of claim 3, wherein step (b) comprises: (b1) 상기 16바이트의 키를 수신하고 각 바이트에 대해 서로 배타적 논리합을 수행하고 한 바이트의 결과를 출력하는 단계;(b1) receiving the 16-byte key and performing an exclusive OR on each byte and outputting the result of one byte; (b2) 상기 바이트 번호와 상기 라운드 키 번호에 따라 상기 16바이트의 키와 상기 (b1)단계로부터 출력되는 한 바이트의 키 값들 중에서 한 바이트를 선택하고그 결과를 출력하는 단계;(b2) selecting one byte from among the 16-byte key and one byte of key values outputted from the step (b1) according to the byte number and the round key number, and outputting a result; (b3) 상기 라운드 키 번호에 따라 해당 비트수만큼 바이트를 왼쪽으로 회전시키고, 그 결과를 출력하는 단계;(b3) rotating the byte left by the corresponding number of bits according to the round key number, and outputting a result; (b4) 상기 바이트 번호와 상기 라운드 키 번호에 따라 한 바이트의 바이어스 벡터를 생성하고 그 결과를 출력하는 단계;(b4) generating a bias vector of one byte according to the byte number and the round key number and outputting a result; (b5) 상기 (b3)단계의 출력신호와 상기 (b4)단계의 출력신호를 수신하고 이들을 더 하고 그 결과를 출력하는 단계; 및(b5) receiving the output signal of step (b3) and the output signal of step (b4), adding them, and outputting the result; And (b6) 제4선택신호에 응답하여 상기 (b5)단계의 출력신호와 상기 (b3)단계의 출력신호 중에서 하나를 선택하고, 상기 16바이트의 홀수번째 라운드 키, 상기 16바이트의 짝수번째 라운드 키 및 상기 16바이트의 17번째 라운드 키를 출력하는 단계를 구비하는 것을 특징으로 하는 SAFER+ 알고리즘을 이용한 암호화방법.(b6) in response to the fourth selection signal, one of the output signal of step (b5) and the output signal of step (b3) is selected, and the 16-byte odd-numbered round key and the 16-byte even-numbered round key And outputting the 17th round key of the 16 bytes.
KR1020020028469A 2002-05-22 2002-05-22 Apparatus and method for encryption using SAFER+ algorithm to reduce layout area KR20030090870A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020028469A KR20030090870A (en) 2002-05-22 2002-05-22 Apparatus and method for encryption using SAFER+ algorithm to reduce layout area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020028469A KR20030090870A (en) 2002-05-22 2002-05-22 Apparatus and method for encryption using SAFER+ algorithm to reduce layout area

Publications (1)

Publication Number Publication Date
KR20030090870A true KR20030090870A (en) 2003-12-01

Family

ID=32383994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020028469A KR20030090870A (en) 2002-05-22 2002-05-22 Apparatus and method for encryption using SAFER+ algorithm to reduce layout area

Country Status (1)

Country Link
KR (1) KR20030090870A (en)

Similar Documents

Publication Publication Date Title
US5222139A (en) Cryptographic method and apparatus
KR100389902B1 (en) Fast block encryption method guaranteeing security for differential cryptanalysis and linear cryptanalysis
AU767323B2 (en) Block encryption device using auxiliary conversion
KR100296958B1 (en) Apparatus for encoding block data
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
JP3029381B2 (en) Data converter
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
KR20020006475A (en) Encryption device, decryption device, expanded key generating device, expanded key generating method and recording medium
US20080276106A1 (en) Data Conversion Apparatus and Data Conversion Method
US7251326B2 (en) Method and apparatus for data encryption
KR100800468B1 (en) Hardware cryptographic engine and method improving power consumption and operation speed
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
CN111064562A (en) Implementation method of AES algorithm on FPGA
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
JPH0736672A (en) Random-number generator, communication system using the same and method therefor
JP2002510058A (en) Method for cryptographic conversion of binary data blocks
JPH1124558A (en) Ciphering device
Islam et al. Data encryption standard
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
KR20030090870A (en) Apparatus and method for encryption using SAFER+ algorithm to reduce layout area
JPH1152850A (en) Device and method for cipher conversion
KR100316024B1 (en) Encryption device using data encryption standard algorithm
JP3473171B2 (en) Sequential encryption

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application