KR20210036699A - Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same - Google Patents

Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same Download PDF

Info

Publication number
KR20210036699A
KR20210036699A KR1020190119055A KR20190119055A KR20210036699A KR 20210036699 A KR20210036699 A KR 20210036699A KR 1020190119055 A KR1020190119055 A KR 1020190119055A KR 20190119055 A KR20190119055 A KR 20190119055A KR 20210036699 A KR20210036699 A KR 20210036699A
Authority
KR
South Korea
Prior art keywords
key
bit
subkey
whitening
text
Prior art date
Application number
KR1020190119055A
Other languages
Korean (ko)
Other versions
KR102282363B1 (en
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 KR1020190119055A priority Critical patent/KR102282363B1/en
Publication of KR20210036699A publication Critical patent/KR20210036699A/en
Application granted granted Critical
Publication of KR102282363B1 publication Critical patent/KR102282363B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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)
  • Executing Machine-Instructions (AREA)

Abstract

The present invention relates to a device, method, computer-readable recording medium including instructions for allowing processor to perform method, and computer program for calculating a bit serial HIGHT, comprising: a key scheduling module unit for selecting and providing a whitening key for initial conversion and final conversion and a sub-key for round calculation by using an inputted master key, wherein the key scheduling module unit provides the whitening key or the sub-key by calculating the master key through a key shift register; and a round function module unit for outputting an inputted plain text by performing the initial conversion, the round calculation, and the final conversion by using the whitening key or the sub-key, wherein the plain text is inputted and is calculated by using shift data stored in the first text shift register and the whitening key or the sub-key, and thus a multiplexer (MUX) required for data control can be minimized, and a 1-bit operation can be performed every cycle without delay.

Description

비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램{BIT-SERIAL HIGHT OPERATION APPARATUS AND ITS METHOD, COMPUTER-READABLE RECORDING MEDIUM AND COMPUTER PROGRAM HAVING PROGRAM LANGUAGE FOR THE SAME}BIT-SERIAL HIGHT OPERATION APPARATUS AND ITS METHOD, COMPUTER-READABLE RECORDING MEDIUM AND COMPUTER PROGRAM HAVING PROGRAM LANGUAGE FOR THE SAME}

본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트(byte) 단위 보조 함수를 1비트(bit) 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램에 관한 것이다.In the present invention, by implementing text registers and key registers as shift registers, the multiplexer (MUX) required for data control can be minimized, and an auxiliary function in units of bytes is implemented in units of 1 bit through an additional shift register. By adjusting the position of the data to be calculated, a bit serial HIGHT computing device and method capable of performing an operation in units of one bit every cycle without delay, and a computer-readable method including instructions for causing the processor to perform the method. It relates to a recording medium and a computer program.

잘 알려진 바와 같이, 암호화는 그 의미가 명확하지 않도록 부호화하는 과정이며, 복호화는 암호화된 메시지를 본래의 형태로 변환하는 과정을 의미하는데, 메시지 원래의 형태를 평문(Plain text)이라 하고, 암호화된 형태를 암호문(Cipher text)이라 한다.As is well known, encryption is a process of encoding so that its meaning is not clear, and decryption refers to the process of converting an encrypted message into its original form. The original form of the message is called plain text, and The form is called Cipher text.

한편, 대칭형 암호 시스템은 암호화를 위해 사용되는 송신자의 키(Key)와 복호화를 위해 수신자의 키가 동일한 시스템인데, 저전력 및 모바일용으로 하여 ISO/IEC 국제 표준으로 2010년 최종 승인된 64비트(bit) 블록 암호화 기술로서 HIGHT(High Encryption Standard) 암호 알고리즘이 개발되어 이를 구현하기 위한 다양한 연구 개발이 이루어지고 있다.On the other hand, the symmetric encryption system is a system in which the sender's key used for encryption and the receiver's key for decryption are the same. ) As a block encryption technology, a HIGHT (High Encryption Standard) encryption algorithm has been developed, and various research and development have been conducted to implement it.

이러한 HIGHT는 도 1 내지 도 3에 도시한 바와 같이 64비트의 평문(P)과 128비트의 키 길이를 가지며, 초기변환(Initial transformation) 및 최종변환(Final transformation)과 32회의 라운드(round) 연산을 통해 암호화 및 복호화 연산을 수행할 수 있다.As shown in FIGS. 1 to 3, the HIGHT has a 64-bit plaintext (P) and a 128-bit key length, and includes initial transformation and final transformation and 32 rounds. Through this, encryption and decryption operations can be performed.

현재까지 가장 적은 면적으로 설계한 HIGHT 하드웨어 구현은 한 클럭 사이클(clock cycle)에 한 라운드씩 연산하는 라운드 기반(round-based) 방식으로 3000GE(Gate Equivalents) 정도의 면적을 가지지만, 수동형 RFID(passive RFID)와 같이 면적 및 파워 소모의 제한이 있는 환경에서 암호화를 수행하기 위해서는 2000GE 이하로 더 작게 설계할 필요가 있다.The HIGHT hardware implementation designed with the smallest area to date is a round-based method that calculates one round per clock cycle, and has an area of about 3000GE (Gate Equivalents), but passive RFID (passive RFID) In order to perform encryption in an environment where area and power consumption are limited, such as RFID), it is necessary to design a smaller size of 2000GE or less.

종래의 라운드 기반 HIGHT 하드웨어에서는 64비트 단위의 라운드 연산부와 텍스트 및 키 데이터를 선택하기 위한 64비트 및 128비트 멀티플렉서(MUX : multiplexer)가 많은 면적을 차지하고 있는데, 면적을 줄이기 위하여 대칭형태의 라운드 연산부를 32비트 또는 16비트 단위로 만들어 하드웨어를 공유하는 전통적인 폴딩(folding) 기법을 적용할 수 있으나, 이를 컨트롤하기 위한 멀티플렉서(MUX) 등의 추가 비용으로 인해 큰 효과를 보지 못할 뿐만 아니라, 보조 함수 F0, F1 및 덧셈 연산이 8비트(1byte) 단위로 이루어지므로 단순한 폴딩 기법으로는 8비트 이하의 HIGHT 연산 구조를 구현하기 어렵다는 문제점이 있다.In conventional round-based HIGHT hardware, a 64-bit unit of a round operation unit and a 64-bit and 128-bit multiplexer (MUX) for selecting text and key data occupy a large area. It is possible to apply a traditional folding technique that shares hardware by making it in 32-bit or 16-bit units, but not only does not see much effect due to the additional cost of a multiplexer (MUX) to control it, and the auxiliary functions F0, Since the F1 and addition operations are performed in units of 8 bits (1 byte), there is a problem in that it is difficult to implement a HIGHT operation structure of 8 bits or less with a simple folding technique.

1. 한국등록특허 제10-1330664호(2013.11.08.등록)1. Korean Patent Registration No. 10-1330664 (registered on Nov. 08, 2013) 2. 한국공개특허 제10-2015-0123476호(2015.11.04.공개)2. Korean Patent Publication No. 10-2015-0123476 (published on November 4, 2015)

본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트 단위 보조 함수를 1비트 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램을 제공하고자 한다.In the present invention, by implementing a text register and a key register as a shift register, the multiplexer required for data control can be minimized, and by implementing an auxiliary function in units of 1 bit through an additional shift register, the position of the data to be operated is adjusted. It is intended to provide a bit serial HIGHT computing device and method capable of performing 1-bit operation every cycle without delay, and a computer-readable recording medium and computer program including instructions for causing a processor to perform the method. .

또한, 본 발명은 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램을 제공하고자 한다.In addition, the present invention selects and provides a WhiteningKey for initial conversion and final conversion and a SubKey for round operation using the input MasterKey, but the master key is provided through a key shift register. Calculates to generate a whitening key or subkey, and outputs the input plaintext by performing initial conversion, round operation, and final conversion using the whitening key or subkey, but the plaintext is input and the shift data stored in the first text shift register A bit serial HIGHT computing device and method capable of operating using a whitening key or a subkey, and a computer-readable recording medium and a computer program including instructions for causing a processor to perform the method.

본 발명의 실시예들의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The objects of the embodiments of the present invention are not limited to the above-mentioned objects, and other objects not mentioned will be clearly understood by those of ordinary skill in the technical field to which the present invention pertains from the following description. .

본 발명의 일 측면에 따르면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부를 포함하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.According to an aspect of the present invention, a WhiteningKey for initial conversion and final conversion and a SubKey for round operation are selected and provided using an input MasterKey, wherein the master key is used as a key. A key scheduling module unit that operates through a shift register to provide the whitening key or subkey, and the input plain text by using the whitening key or subkey to perform the initial transformation, round operation, and final transformation. A bit serial HIGHT operation apparatus including a round function module unit which outputs the plain text and operates using the shift data stored in the first text shift register and the whitening key or the sub key may be provided.

또한, 본 발명의 일 측면에 따르면, 상기 키 스케줄링 모듈부는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 상기 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.In addition, according to an aspect of the present invention, the key scheduling module unit includes a key shift register that is a basis for selective generation of either the whitening key or the subkey, each 1 bit through the key shift register. A bit serial HIGHT computing device may be provided that operates and selects and provides the whitening key or the subkey to the round function module unit by one bit.

또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.Further, according to an aspect of the present invention, the round function module unit includes a bit serial having a second text shift register of 1 byte for calculating a first auxiliary function and a second auxiliary function in units of 8 bits in units of 1 bit. A HIGHT computing device can be provided.

또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.Further, according to an aspect of the present invention, the round function module unit performs the round operation on the even-numbered byte text data and stores the round operation in the second text shift register, and the odd-numbered byte text data is rounded. When performing an operation, a bit serial HIGHT operation device may be provided that cyclically shifts a value stored in the second text shift register and outputs a result of the first or second auxiliary function bit by bit. have.

또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.Further, according to an aspect of the present invention, the round function module unit outputs a result of the first or second auxiliary function bit by bit, and with respect to the result value of the first auxiliary function or the second auxiliary function. The round operation is performed, and the output value of the round operation is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, a 1-bit flip-flop is used for each cycle. A bit serial HIGHT operation device for storing the carry that occurs every time may be provided.

본 발명의 다른 측면에 따르면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.According to another aspect of the present invention, a WhiteningKey for initial conversion and final conversion and a SubKey for round operation are selected using the input MasterKey, but the master key is used as the key. Providing the whitening key or subkey by calculating through a shift register, and performing the initial conversion, round operation, and final conversion using the whitening key or subkey to output the input plain text, A bit serial HIGHT operation method including the step of calculating the plaintext by using the shift data stored in the first text shift register and the whitening key or the subkey may be provided.

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 제공하는 단계는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.In addition, according to another aspect of the present invention, the providing of the whitening key or the subkey may include calculating 1 bit by each through a key shift register that is a basis for selective generation of either the whitening key or the subkey. A bit serial HIGHT operation method may be provided in which the whitening key or the subkey is selected and provided by one bit to the round function module unit.

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.In addition, according to another aspect of the present invention, the operation of using the whitening key or the subkey includes a second sub-function of 1 byte for calculating a first auxiliary function and a second auxiliary function in units of 8 bits in units of 1 bit. A bit serial HIGHT operation method having a text shift register can be provided.

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.In addition, according to another aspect of the present invention, the step of calculating using the whitening key or the subkey includes storing in the second text shift register while performing the round operation on text data of even-numbered bytes, and storing an odd-numbered byte in the second text shift register. When performing the round operation on text data of bytes, a bit for cyclic shifting a value stored in the second text shift register and outputting the result of the first or second auxiliary function bit by bit A serial HIGHT operation method may be provided.

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.In addition, according to another aspect of the present invention, the step of calculating using the whitening key or the subkey includes outputting the result of the first auxiliary function or the second auxiliary function bit by bit, and the first auxiliary function or the second auxiliary function 2 The round operation is performed on the result value of the auxiliary function, and the output value of the round operation is stored in the first text shift register. -flop) may be used to provide a bit serial HIGHT calculation method for storing the carry occurring every cycle.

본 발명의 또 다른 측면에 따르면, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체가 제공될 수 있다.According to another aspect of the present invention, as a computer-readable recording medium storing a computer program, the computer program, when executed by a processor, is used for initial conversion and final conversion using an input MasterKey. Selecting and providing a whitening key and a subkey for round operation, but calculating the master key through a key shift register to provide the whitening key or subkey, and plain text to be input The initial conversion, round operation, and final conversion are performed using the whitening key or subkey, and output, but the plaintext is input and calculated using the shift data stored in the first text shift register and the whitening key or subkey. A computer-readable recording medium including instructions for causing the processor to perform a method including the step of performing may be provided.

본 발명의 또 다른 측면에 따르면, 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램이 제공될 수 있다.According to another aspect of the present invention, as a computer program stored in a computer-readable recording medium, the computer program is for initial conversion and final conversion using a master key (MasterKey) input when executed by a processor. Selecting and providing a whitening key and a subkey for round operation, but calculating the master key through a key shift register to provide the whitening key or subkey, and input plain text The initial conversion, round operation, and final conversion are performed using the whitening key or subkey, and output, but the plaintext is input and calculated using the shift data stored in the first text shift register and the whitening key or subkey. A computer program including instructions for causing the processor to perform a method including the step of performing may be provided.

본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트 단위 보조 함수를 1비트 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있다.In the present invention, by implementing a text register and a key register as a shift register, the multiplexer required for data control can be minimized, and by implementing an auxiliary function in units of 1 bit through an additional shift register, the position of the data to be operated is adjusted. , It is possible to perform 1-bit operation every cycle without delay.

또한, 본 발명은 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.In addition, the present invention selects and provides a WhiteningKey for initial conversion and final conversion and a SubKey for round operation using the input MasterKey, but the master key is provided through a key shift register. Calculates to generate a whitening key or subkey, and outputs the input plaintext by performing initial conversion, round operation, and final conversion using the whitening key or subkey, but the plaintext is input and the shift data stored in the first text shift register It can be calculated using and whitening key or subkey.

특히, 본 발명에서 제안하는 비트 시리얼 HIGHT 연산 장치의 구조는 텍스트 레지스터 및 키 레지스터를 쉬프트 레지스터로 대체하고, 특정한 위치를 제외한 레지스터의 대부분은 예외 없이 다음 위치로 쉬프트되는 형태이기 때문에, 데이터 컨트롤에 필요한 멀티플렉서의 대부분을 제거할 수 있는 장점이 있다.In particular, the structure of the bit serial HIGHT operation device proposed in the present invention replaces text registers and key registers with shift registers, and most of the registers except for a specific position are shifted to the next position without exception. It has the advantage of being able to eliminate most of the multiplexers.

또한, 본 발명은 1바이트 쉬프트 레지스터를 활용함으로써, 바이트 단위 사이클릭 쉬프트 연산이 포함되는 보조함수(F0, F1)의 1비트 단위 구현이 가능하며, 이로써 전체 라운드 연산부를 1비트 단위로 구성할 수 있을 뿐만 아니라 암호화 연산과 복호화 연산을 하는 하드웨어는 컨트롤 신호를 제외하고 동일하기 때문에, 추가적인 비용 없이도 암호화 및 복호화 간에 재구성 가능한 하드웨어를 저면적으로 구현할 수 있으며, 전체 하드웨어 면적을 종래의 라운드 기반 HIGHT 구조에 비해 획기적으로 감소시킬 수 있다.In addition, in the present invention, by using a 1-byte shift register, it is possible to implement a 1-bit unit of the auxiliary functions (F0, F1) including a cyclic shift operation in units of bytes, thereby configuring the entire round operation unit in units of 1 bit. In addition, since the hardware that performs encryption and decryption operations is the same except for the control signal, hardware that can be reconfigured between encryption and decryption without additional cost can be implemented in a low area, and the entire hardware area is built into the conventional round-based HIGHT structure. Compared to this, it can be drastically reduced.

도 1a 내지 도 1c는 종래의 HIGHT 연산 알고리즘을 예시한 도면이고,
도 2는 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 나타낸 블록구성도이며,
도 3 내지 도 6은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산을 설명하기 위한 도면이고,
도 7은 본 발명의 다른 실시예에 따라 비트 시리얼 HIGHT 연산을 수행하는 과정을 나타낸 단계별 흐름도이다.
1A to 1C are diagrams illustrating a conventional HIGHT algorithm,
2 is a block diagram showing a bit serial HIGHT operation device according to an embodiment of the present invention.
3 to 6 are diagrams for explaining a bit serial HIGHT operation according to an embodiment of the present invention,
7 is a step-by-step flowchart illustrating a process of performing a bit serial HIGHT operation according to another embodiment of the present invention.

본 발명의 실시예들에 대한 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the embodiments of the present invention, and a method of achieving them will be apparent with reference to the embodiments described later in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in a variety of different forms, and only these embodiments make the disclosure of the present invention complete, and are common knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to those who have, and the invention is only defined by the scope of the claims. The same reference numerals refer to the same elements throughout the specification.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to the intention or custom of users or operators. Therefore, the definition should be made based on the contents throughout the present specification.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 나타낸 블록구성도이며, 도 3 내지 도 6은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산을 설명하기 위한 도면이다.2 is a block diagram showing a bit serial HIGHT operation apparatus according to an embodiment of the present invention, and FIGS. 3 to 6 are diagrams for explaining a bit serial HIGHT operation according to an embodiment of the present invention.

여기에서, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 이용한 암호화 과정은 초기변환, 라운드 연산 및 최종변환으로 이루어질 수 있고, 복호화 과정은 암호화 최종변환의 역변환인 초기변환, 라운드 연산 및 암호화 초기변환의 역변환인 최종변환으로 이루어질 수 있으며, 컨트롤러(controller)의 제어에 따라 클럭신호를 통해 레지스터의 동작 및 연산 시점을 동기화시킬 수 있고, 컨트롤러의 제어에 따라 모드신호를 통해 암호화 동작 및 복호화 동작을 선택할 수 있다.Here, the encryption process using the bit serial HIGHT computing device according to an embodiment of the present invention may consist of an initial conversion, a round operation, and a final conversion, and the decryption process is an inverse conversion of the encryption final conversion: an initial conversion, a round operation, and an encryption. It can consist of the final conversion, which is the inverse conversion of the initial conversion, and the operation and operation time of the register can be synchronized through a clock signal under the control of the controller, and the encryption operation and decryption operation through the mode signal under the control of the controller. You can choose.

도 2를 참조하면, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치는 키 스케줄링 모듈부(110), 라운드 함수 모듈부(120) 등을 포함할 수 있다.Referring to FIG. 2, a bit serial HIGHT operation apparatus according to an embodiment of the present invention may include a key scheduling module unit 110, a round function module unit 120, and the like.

키 스케줄링 모듈부(110)는 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 제공할 수 있다.The key scheduling module unit 110 selects and provides a WhiteningKey for initial conversion and final conversion and a SubKey for round operation using an input MasterKey, but shifts the master key to a key. Whitening keys or subkeys can be provided by operating through registers.

여기에서, 키 스케줄링 모듈부(110)는 화이트닝키 또는 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 화이트닝키 또는 서브키를 라운드 함수 모듈부로 1비트씩 선택 제공할 수 있다.Here, the key scheduling module unit 110 includes a key shift register that is a basis for selective generation of either a whitening key or a sub key, and calculates a whitening key or a sub key by 1 bit each through the key shift register. The round function module unit can select and provide 1 bit at a time.

라운드 함수 모듈부(120)는 입력되는 평문(Plain Text)을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.The round function module unit 120 outputs the input plain text by performing initial conversion, round operation, and final conversion using a whitening key or a subkey, but the plain text is inputted and stored in the first text shift register. It can be calculated using data and whitening keys or subkeys.

여기에서, 라운드 함수 모듈부(120)는 8비트 단위의 제 1 보조함수(F0)와 제 2 보조함수(F1)를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비할 수 있다.Here, the round function module unit 120 may include a 1 byte second text shift register for calculating the first auxiliary function F0 and the second auxiliary function F1 in units of 8 bits in units of 1 bit. have.

그리고, 라운드 함수 모듈부(120)는 짝수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행하면서 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행할 경우 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력할 수 있다.In addition, the round function module unit 120 performs a round operation on text data of even-numbered bytes and stores it in a second text shift register, and when performing a round operation on text data of odd-numbered bytes, the second text shifts. A result of the first auxiliary function or the second auxiliary function may be output one bit by one while cyclic shifting the value stored in the register.

또한, 라운드 함수 모듈부(120)는 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 라운드 연산을 수행하고, 라운드 연산을 수행한 출력값을 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.In addition, the round function module unit 120 outputs the result of the first auxiliary function or the second auxiliary function bit by bit, performs a round operation on the result value of the first auxiliary function or the second auxiliary function, and performs a round operation. The output value of is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, a carry that occurs every cycle may be stored using a 1-bit flip-flop.

예를 들면, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치는 도 3에 도시한 바와 같은 라운드 함수(Round function)를 수행하는 모듈과 도 4에 도시한 바와 같은 키 스케줄링(Key scheduling)을 수행하는 모듈로 제공될 수 있는데, 각 모듈에서 텍스트는 64비트 쉬프트 레지스터에, 키 값은 128비트 쉬프트 레지스터에 각각 저장되어 매 클럭 사이클(clock cycle)마다 1비트씩 쉬프트 될 수 있다.For example, the bit serial HIGHT operation apparatus according to an embodiment of the present invention performs a module that performs a round function as shown in FIG. 3 and a key scheduling as shown in FIG. 4. It can be provided as a performing module. In each module, text is stored in a 64-bit shift register, and a key value is stored in a 128-bit shift register, so that it can be shifted by 1 bit every clock cycle.

그리고, 라운드 함수 모듈에서는 텍스트 레지스터의 8가지 위치 중 알맞은 위치에서 선택한 1비트의 데이터와, 키 스케줄러에서 받은 1비트의 키를 이용하여 1비트 단위의 라운드 연산을 수행할 수 있다.In addition, the round function module may perform a 1-bit round operation using 1-bit data selected at an appropriate location among 8 locations of a text register and 1-bit key received from a key scheduler.

특히, 도 5에 도시한 바와 같이 8비트(1바이트) 단위의 보조함수 F0, F1 함수를 1비트 단위로 구현하기 위하여 1바이트 쉬프트 레지스터를 구비할 수 있고, 짝수 번째 바이트(Even Byte)의 텍스트는 라운드 연산을 하는 동시에 구비된 쉬프트 레지스터에 저장될 수 있으며, 이후 홀수 번째 바이트(Odd Byte)의 텍스트를 라운드 연산할 때에 앞서 저장된 값을 사이클릭 쉬프트(cyclic shift) 하면서 1비트단위의 F0, F1 함수 결과를 출력할 수 있다.In particular, as shown in FIG. 5, in order to implement the auxiliary functions F0 and F1 in units of 8 bits (1 byte) in units of 1 bit, a 1 byte shift register may be provided, and text of an even numbered byte (Even Byte) May be stored in the shift register provided at the same time as the round operation. After that, when the text of the odd-numbered byte is rounded, the previously stored value is cyclically shifted and F0, F1 in 1-bit units. Function results can be printed.

특히, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 라운드 연산과 변환 연산을 하나로 묶었으며, 연산되는 두가지 타입(Type A, Type B) 중 한 타입의 결과를 선택하여 텍스트 레지스터의 알맞은 위치에 저장할 수 있으며, 캐리(carry)가 발생하는 덧셈 연산의 경우, 1비트 플립플롭(flop-flop)을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.In particular, in the hardware of the bit serial HIGHT operation apparatus according to an embodiment of the present invention, round operation and conversion operation are combined into one, and a result of one of two types (Type A and Type B) to be calculated is selected and the text register is displayed. It can be stored in an appropriate location, and in the case of an addition operation in which a carry occurs, a carry that occurs every cycle can be stored using a 1-bit flip-flop.

한편, 키 스케줄러 모듈은 라운드 함수 모듈과 유사한 방식으로 쉬프트 레지스터를 통해 1비트씩 연산하며, 화이트닝키와 서브키를 1비트씩 라운드 함수 모듈에 제공할 수 있다.Meanwhile, the key scheduler module operates one bit by one through a shift register in a manner similar to that of the round function module, and may provide a whitening key and a subkey to the round function module by one bit.

상술한 바와 같은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 시간에 따른 전체 연산 과정을 도 6을 참조하여 설명하면, 1사이클은 8클럭 사이클에 해당할 수 있고, 각 인덱스(index)는 1바이트 단위인데, 텍스트 레지스터에서 라운드 연산을 위해 선택되는 데이터의 위치는 점선으로, 연산이 완료된 값들은 회색으로 표시하였고, 키 레지스터(Key Register)에서는 라운드 연산에 사용되는 키를 회색으로 표시하였다.Referring to FIG. 6, the entire operation process over time of the bit serial HIGHT operation device according to the embodiment of the present invention as described above will be described with reference to FIG. 6, and one cycle may correspond to 8 clock cycles, and each index Is in units of 1 byte, the location of the data selected for round operation in the text register is indicated by a dotted line, values that have been calculated are indicated in gray, and in the key register, the key used for round operation is indicated in gray. .

여기에서, 암호화 과정에서는 한 라운드 내에서 연산되는 데이터의 위치가 일정하나, 복호화 과정에서는 LFSR(Linear feedback shift register) 값이 역순으로 변하는 점을 고려하여 연산 위치가 일정하지 않음을 알 수 있고, 매 라운드 연산의 마지막에는 데이터에서 1바이트 회전(rotation) 연산이 이루어지는데, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 이를 실제로 회전시키는 대신 텍스트 레지스터에서 라운드 연산이 수행되는 위치를 적절히 선택함으로써 가상의 회전을 수행할 수 있다.Here, in the encryption process, the location of the data computed within one round is constant, but in the decryption process, considering that the LFSR (Linear Feedback Shift Register) value changes in the reverse order, it can be seen that the computation location is not constant. At the end of the round operation, a 1-byte rotation operation is performed on the data. In the hardware of the bit serial HIGHT operation device according to an embodiment of the present invention, instead of actually rotating it, the position where the round operation is performed in the text register is appropriately determined. By selecting, you can perform a virtual rotation.

따라서, 본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트(byte) 단위 보조 함수를 1비트(bit) 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연없이 수행할 수 있다.Accordingly, the present invention can minimize the multiplexer (MUX) required for data control by implementing a text register and a key register as a shift register, and an auxiliary function in units of byte through an additional shift register. By implementing and adjusting the position of the calculated data, it is possible to perform a 1-bit operation every cycle without delay.

다음에, 상술한 바와 같은 구성을 갖는 비트 시리얼 HIGHT 연산 장치에서 마스터키를 이용하여 128비트 쉬프트 레지스터를 통해 연산하여 화이트닝키 및 서브키를 제공하고, 64비트 쉬프트 레지스터에서 선택된 데이터와 화이트닝키 또는 서브키를 통해 라운드 연산을 수행하는 과정에 대해 설명한다.Next, in the bit serial HIGHT operation device having the configuration as described above, a whitening key and a sub key are provided by operating through a 128-bit shift register using a master key, and the data selected from the 64-bit shift register and the whitening key or sub key are provided. Describes the process of performing a round operation through a key.

도 7은 본 발명의 다른 실시예에 따라 비트 시리얼 HIGHT 연산을 수행하는 과정을 나타낸 단계별 흐름도이다.7 is a step-by-step flowchart illustrating a process of performing a bit serial HIGHT operation according to another embodiment of the present invention.

도 7을 참조하면, 입력되는 마스터키를 이용하여 초기변환 및 최종변환을 위한 화이트닝키와 라운드 연산을 위한 서브키를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 제공할 수 있다(단계710).Referring to FIG. 7, a whitening key for initial transformation and final transformation and a subkey for round operation are selected and provided using the input master key, but the whitening key or the subkey is calculated by calculating the master key through a key shift register. Can be provided (step 710).

여기에서, 키 스케줄링 모듈부(110)에서는 화이트닝키 또는 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 화이트닝키 또는 서브키를 라운드 함수 모듈부로 1비트씩 선택 제공할 수 있다.Here, the key scheduling module unit 110 includes a key shift register that is a basis for selective generation of either a whitening key or a subkey, and calculates a whitening key or a subkey by 1 bit each through the key shift register. The round function module unit can select and provide 1 bit at a time.

다음에, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다(단계720).Next, the input plaintext is output by performing initial conversion, round operation, and final conversion using a whitening key or a subkey, but the plaintext is input and the shift data stored in the first text shift register and the whitening key or subkey are used. And can be calculated (step 720).

여기에서, 라운드 함수 모듈부(120)에서는 8비트 단위의 제 1 보조함수(F0)와 제 2 보조함수(F1)를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비할 수 있다.Here, the round function module unit 120 may include a 1-byte second text shift register for calculating the first auxiliary function (F0) and the second auxiliary function (F1) in units of 8 bits in units of 1 bit. have.

그리고, 라운드 함수 모듈부(120)에서는 짝수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행하면서 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행할 경우 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트하면서 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력할 수 있다.In addition, the round function module unit 120 performs a round operation on text data of even-numbered bytes and stores it in a second text shift register, and when performing a round operation on text data of odd-numbered bytes, the second text is shifted. While cyclically shifting the value stored in the register, the result of the first auxiliary function or the second auxiliary function may be output one bit at a time.

또한, 라운드 함수 모듈부(120)는 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 라운드 연산을 수행하고, 라운드 연산을 수행한 출력값을 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리가 발생하는 덧셈 연산의 경우 1비트 플립플롭을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.In addition, the round function module unit 120 outputs the result of the first auxiliary function or the second auxiliary function bit by bit, performs a round operation on the result value of the first auxiliary function or the second auxiliary function, and performs a round operation. The output value of is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, a carry that occurs every cycle may be stored using a 1-bit flip-flop.

따라서, 또한, 본 발명은 입력되는 마스터키를 이용하여 초기변환 및 최종변환을 위한 화이트닝키와 라운드 연산을 위한 서브키를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.Accordingly, the present invention also provides a whitening key for initial transformation and final transformation and a subkey for round operation by using the input master key, but the whitening key or subkey by calculating the master key through a key shift register. Is generated, and the input plaintext is output by performing initial conversion, round operation, and final conversion using the whitening key or subkey, but the shift data and the whitening key or subkey stored in the first text shift register by inputting the plaintext are output. It can be calculated using.

특히, 본 발명에서 제안하는 비트 시리얼 HIGHT 연산 장치의 구조는 텍스트 레지스터 및 키 레지스터를 쉬프트 레지스터로 대체하고, 특정한 위치를 제외한 레지스터의 대부분은 예외 없이 다음 위치로 쉬프트되는 형태이기 때문에, 데이터 컨트롤에 필요한 멀티플렉서의 대부분을 제거할 수 있는 장점이 있다.In particular, the structure of the bit serial HIGHT operation device proposed in the present invention replaces text registers and key registers with shift registers, and most of the registers except for a specific position are shifted to the next position without exception. It has the advantage of being able to eliminate most of the multiplexers.

또한, 본 발명은 1바이트 쉬프트 레지스터를 활용함으로써, 바이트 단위 사이클릭 쉬프트 연산이 포함되는 보조함수(F0, F1)의 1비트 단위 구현이 가능하며, 이로써 전체 라운드 연산부를 1비트 단위로 구성할 수 있을 뿐만 아니라 암호화 연산과 복호화 연산을 하는 하드웨어는 컨트롤 신호를 제외하고 동일하기 때문에, 추가적인 비용 없이도 암호화 및 복호화 간에 재구성 가능한 하드웨어를 저면적으로 구현할 수 있으며, 전체 하드웨어 면적을 종래의 라운드 기반 HIGHT 구조에 비해 획기적으로 감소시킬 수 있다.In addition, in the present invention, by using a 1-byte shift register, it is possible to implement a 1-bit unit of the auxiliary functions (F0, F1) including a cyclic shift operation in units of bytes, thereby configuring the entire round operation unit in units of 1 bit. In addition, since the hardware that performs encryption and decryption operations is the same except for the control signal, hardware that can be reconfigured between encryption and decryption without additional cost can be implemented in a low area, and the entire hardware area is built into the conventional round-based HIGHT structure. Compared to this, it can be drastically reduced.

한편, 상술한 바와 같은 비트 시리얼 HIGHT 연산 방법은 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서 제공될 수 있는데,Meanwhile, the bit serial HIGHT operation method as described above may be provided as a computer-readable recording medium storing a computer program.

상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,When the computer program is executed by a processor,

입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. Providing a key or subkey, and

입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, but the shift data and the whitening key stored in the first text shift register after the plain text is input Alternatively, it may include an instruction for causing the processor to perform a method including the step of calculating using a subkey.

또한, 상술한 바와 같은 비트 시리얼 HIGHT 연산 방법은 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서 제공될 수 있는데,In addition, the bit serial HIGHT operation method as described above may be provided as a computer program stored in a computer-readable recording medium.

상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,When the computer program is executed by a processor,

입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. Providing a key or subkey, and

입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, but the shift data and the whitening key stored in the first text shift register after the plain text is input Alternatively, it may include an instruction for causing the processor to perform a method including the step of calculating using a subkey.

이상의 설명에서는 본 발명의 다양한 실시예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.In the above description, various embodiments of the present invention have been presented and described, but the present invention is not necessarily limited thereto, and those of ordinary skill in the art to which the present invention pertains, within the scope of the technical spirit of the present invention. It will be easy to see that branch substitutions, modifications and changes are possible.

110 : 키 스케줄링 모듈부
120 : 라운드 함수 모듈부
110: key scheduling module unit
120: round function module unit

Claims (12)

입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부
를 포함하는 비트 시리얼 HIGHT 연산 장치.
Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. A key scheduling module unit that provides a key or subkey;
The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, but the shift data and the whitening key stored in the first text shift register after the plain text is input Or round function module part that calculates using subkeys
Bit serial HIGHT operation device comprising a.
제 1 항에 있어서,
상기 키 스케줄링 모듈부는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 상기 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 장치.
The method of claim 1,
The key scheduling module unit includes a key shift register that is a basis for selective generation of either the whitening key or the subkey, and calculates the whitening key or the subkey by 1 bit each through the key shift register. A bit serial HIGHT operation device that selectively provides 1 bit to the round function module unit.
제 2 항에 있어서,
상기 라운드 함수 모듈부는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 장치.
The method of claim 2,
The round function module unit includes a 1-byte second text shift register for calculating a first auxiliary function in an 8-bit unit and a second auxiliary function in a 1-bit unit.
제 3 항에 있어서,
상기 라운드 함수 모듈부는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 장치.
The method of claim 3,
The round function module unit performs the round operation on text data of even-numbered bytes and stores it in the second text shift register, and when performing the round operation on text data of odd-numbered bytes, the second text shifts A bit serial HIGHT operation device that outputs a result of the first or second auxiliary function bit by bit while cyclic shifting a value stored in a register.
제 4 항에 있어서,
상기 라운드 함수 모듈부는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 장치.
The method of claim 4,
The round function module unit outputs the result of the first auxiliary function or the second auxiliary function bit by bit, performs the round operation on the result value of the first auxiliary function or the second auxiliary function, and performs the round operation. A bit serial that stores the output value performed by the first text shift register, but stores the carry occurring every cycle using a 1-bit flip-flop in the case of an addition operation in which a carry occurs. HIGHT computing device.
입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계
를 포함하는 비트 시리얼 HIGHT 연산 방법.
Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. Providing a key or subkey, and
The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, but the shift data and the whitening key stored in the first text shift register after the plain text is input Or the step of calculating using a subkey
Bit serial HIGHT operation method comprising a.
제 6 항에 있어서,
상기 화이트닝키 또는 서브키를 제공하는 단계는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 방법.
The method of claim 6,
In the providing of the whitening key or the subkey, the whitening key or the subkey is rounded by calculating 1 bit each through a key shift register that is a basis for selective generation of any one of the whitening key or the subkey. Bit serial HIGHT operation method that selects and provides 1 bit at a time to the function module part.
제 7 항에 있어서,
상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 방법.
The method of claim 7,
The operation using the whitening key or the subkey may include a bit serial HIGHT operation including a 1 byte second text shift register for calculating a first auxiliary function and a second auxiliary function in units of 8 bits in units of 1 bit. Way.
제 8 항에 있어서,
상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 방법.
The method of claim 8,
The operation using the whitening key or subkey includes performing the round operation on text data of even-numbered bytes and storing them in the second text shift register, and performing the rounding operation on text data of odd-numbered bytes. When executed, a bit serial HIGHT operation method for cyclic shifting a value stored in the second text shift register and outputting a result of the first auxiliary function or the second auxiliary function bit by bit.
제 9 항에 있어서,
상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 방법.
The method of claim 9,
In the step of calculating using the whitening key or subkey, the result of the first or second auxiliary function is output one bit at a time, and the result of the first or second auxiliary function is rounded. The operation is performed and the output value of the round operation is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, it occurs every cycle using a 1-bit flip-flop. Bit serial HIGHT operation method for storing the carry.
컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 판독 가능한 기록매체.
As a computer-readable recording medium storing a computer program,
When the computer program is executed by a processor,
Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. Providing a key or subkey; and
The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, and the shift data and the whitening key stored in the first text shift register after the plain text is input Or including instructions for causing the processor to perform a method comprising the step of calculating using a subkey
Computer-readable recording medium.
컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 프로그램.
As a computer program stored on a computer-readable recording medium,
When the computer program is executed by a processor,
Whitening Key for initial conversion and final conversion and SubKey for round operation are selected and provided using the input MasterKey, but the whitening is performed by calculating the master key through a key shift register. Providing a key or subkey, and
The input plain text is output by performing the initial conversion, round operation, and final conversion using the whitening key or subkey, and the shift data and the whitening key stored in the first text shift register after the plain text is input Or including instructions for causing the processor to perform a method comprising the step of calculating using a subkey
Computer program.
KR1020190119055A 2019-09-26 2019-09-26 Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same KR102282363B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190119055A KR102282363B1 (en) 2019-09-26 2019-09-26 Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190119055A KR102282363B1 (en) 2019-09-26 2019-09-26 Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same

Publications (2)

Publication Number Publication Date
KR20210036699A true KR20210036699A (en) 2021-04-05
KR102282363B1 KR102282363B1 (en) 2021-07-27

Family

ID=75461810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190119055A KR102282363B1 (en) 2019-09-26 2019-09-26 Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same

Country Status (1)

Country Link
KR (1) KR102282363B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330664B1 (en) 2012-06-15 2013-11-15 한국전자통신연구원 Low power encryption apparatus and method
KR20150123476A (en) 2014-04-25 2015-11-04 한국전자통신연구원 Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof
KR101617694B1 (en) * 2015-03-20 2016-05-03 금오공과대학교 산학협력단 Device For Performing Block Cipher Algorithm HIGHT

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330664B1 (en) 2012-06-15 2013-11-15 한국전자통신연구원 Low power encryption apparatus and method
KR20150123476A (en) 2014-04-25 2015-11-04 한국전자통신연구원 Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof
KR101617694B1 (en) * 2015-03-20 2016-05-03 금오공과대학교 산학협력단 Device For Performing Block Cipher Algorithm HIGHT

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Deukjo Hong 외 12명, HIGHT: A New Block Cipher Suitable for Low_resource Device, CHES 2006, LNCS 4249, pp.46-59 (2006.)* *
Panasayya Yalla 외 1명, Lightweight Cryptography for FPGAs, ReConFig’09, IEEE, pp.225-230 (2009.12.)* *

Also Published As

Publication number Publication date
KR102282363B1 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
EP3371928B1 (en) Key sequence generation for cryptographic operations
AU4105801A (en) Block encryption device using auxiliary conversion
KR100377172B1 (en) Key Scheduller of encryption device using data encryption standard algorithm
JP4025722B2 (en) Method and apparatus for data encryption
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
JP6135804B1 (en) Information processing apparatus, information processing method, and program
WO2006098015A1 (en) Data converting apparatus and data converting method
MX2011001228A (en) Method for generating a cipher-based message authentication code.
JP5652363B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
Rouvroy et al. Efficient uses of FPGAs for implementations of DES and its experimental linear cryptanalysis
JP3824121B2 (en) Method and apparatus for decrypting encrypted data
EP1875405B1 (en) Improved cipher system
JP6292195B2 (en) Information processing apparatus and information processing method
JP5182295B2 (en) Encryption apparatus and encryption processing method
JP2014240921A (en) Encryption device, encryption processing method and encryption processing program
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
KR102282363B1 (en) Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same
KR100710455B1 (en) Apparatus for rijndael block cipher and encryption/decryption method thereof
JP4395527B2 (en) Information processing device
JP4857230B2 (en) Pseudorandom number generator and encryption processing device using the same
El-Hadedy et al. Reco-Pi: a reconfigurable cryptoprocessor for π-cipher
JP4859536B2 (en) Data converter
KR100546777B1 (en) Apparatus and method for SEED Encryption/Decryption, and F function processor therefor
JPH09251267A (en) Encryption device and encryption method
JP2011085739A (en) Method and device for calculating encryption algorithm

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant