KR102282363B1 - 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
KR102282363B1
KR102282363B1 KR1020190119055A KR20190119055A KR102282363B1 KR 102282363 B1 KR102282363 B1 KR 102282363B1 KR 1020190119055 A KR1020190119055 A KR 1020190119055A KR 20190119055 A KR20190119055 A KR 20190119055A KR 102282363 B1 KR102282363 B1 KR 102282363B1
Authority
KR
South Korea
Prior art keywords
key
whitening
sub
bit
shift register
Prior art date
Application number
KR1020190119055A
Other languages
Korean (ko)
Other versions
KR20210036699A (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

Abstract

본 발명은 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램에 관한 것으로, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부를 포함함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 매 사이클마다 1비트 단위의 연산을 지연없이 수행할 수 있다.The present invention relates to a bit serial HIGHT arithmetic device and method, and a computer-readable recording medium and computer program including instructions for causing a processor to perform the method, using an input master key (MasterKey) to perform initial conversion and A key scheduling module unit that selects and provides a whitening key for final conversion and a sub-key for round operation, and provides the whitening key or sub-key by calculating the master key through a key shift register; The input plain text is output by performing the initial transformation, round operation, and final transformation using the whitening key or sub-key, but the plain text is inputted and the shift data stored in the first text shift register and the whitening key Alternatively, by including a round function module unit that operates using a subkey, 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 A bit serial HIGHT arithmetic device and method, and a computer-readable recording medium and computer program containing instructions for causing a processor to perform the method PROGRAM LANGUAGE FOR THE SAME}

본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트(byte) 단위 보조 함수를 1비트(bit) 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램에 관한 것이다.The present invention can minimize a multiplexer (MUX) required for data control by implementing a text register and a key register as a shift register, and implement a byte unit auxiliary function in 1-bit units through an additional shift register. A bit serial HIGHT arithmetic device and method capable of performing 1-bit unit operation without delay in every cycle by adjusting the position of the calculated data, and a computer-readable computer readable method including instructions for causing a 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 means a process of converting an encrypted message into its original form. 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 are the same for decryption. ) As a block encryption technology, the HIGHT (High Encryption Standard) encryption algorithm has been developed, and various research and development are being conducted to implement it.

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

현재까지 가장 적은 면적으로 설계한 HIGHT 하드웨어 구현은 한 클럭 사이클(clock cycle)에 한 라운드씩 연산하는 라운드 기반(round-based) 방식으로 3000GE(Gate Equivalents) 정도의 면적을 가지지만, 수동형 RFID(passive RFID)와 같이 면적 및 파워 소모의 제한이 있는 환경에서 암호화를 수행하기 위해서는 2000GE 이하로 더 작게 설계할 필요가 있다.HIGHT hardware implementation designed with the smallest area so far 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 smaller than 2000GE.

종래의 라운드 기반 HIGHT 하드웨어에서는 64비트 단위의 라운드 연산부와 텍스트 및 키 데이터를 선택하기 위한 64비트 및 128비트 멀티플렉서(MUX : multiplexer)가 많은 면적을 차지하고 있는데, 면적을 줄이기 위하여 대칭형태의 라운드 연산부를 32비트 또는 16비트 단위로 만들어 하드웨어를 공유하는 전통적인 폴딩(folding) 기법을 적용할 수 있으나, 이를 컨트롤하기 위한 멀티플렉서(MUX) 등의 추가 비용으로 인해 큰 효과를 보지 못할 뿐만 아니라, 보조 함수 F0, F1 및 덧셈 연산이 8비트(1byte) 단위로 이루어지므로 단순한 폴딩 기법으로는 8비트 이하의 HIGHT 연산 구조를 구현하기 어렵다는 문제점이 있다.In the conventional round-based HIGHT hardware, a 64-bit round operation unit and a 64-bit and 128-bit multiplexer (MUX) for selecting text and key data occupy a large area. In order to reduce the area, a symmetric round operation unit is used. The traditional folding technique of sharing hardware by making it in 32-bit or 16-bit units can be applied, but not only does it not have a great effect due to the additional cost of a multiplexer (MUX) to control it, but also auxiliary functions F0, Since 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. Korea Patent No. 10-1330664 (Registered on Nov. 8, 2013) 2. 한국공개특허 제10-2015-0123476호(2015.11.04.공개)2. Korean Patent Publication No. 10-2015-0123476 (published on November 4, 2015)

본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트 단위 보조 함수를 1비트 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램을 제공하고자 한다.The present invention can minimize a multiplexer required for data control by implementing a text register and a key register as a shift register, and by implementing a byte-by-byte auxiliary function in 1-bit units through an additional shift register to adjust the position of the data to be calculated. , It is intended to provide a bit serial HIGHT arithmetic device capable of performing 1-bit unit operation without delay in every cycle, a method therefor, 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 uses the input master key (MasterKey) to select and provide a whitening key for initial conversion and final conversion and a sub key for round operation, but the master key is transferred through a key shift register operation to generate a whitening key or sub-key, and performing initial transformation, round operation, and final transformation of the input plain text using the whitening key or sub-key, and outputting the shift data, where the plain text is input and stored in the first text shift register An object of the present invention is to provide a computer-readable recording medium and computer program including a bit serial HIGHT arithmetic device capable of calculating using a whitening key or a sub-key, a method thereof, and instructions for a processor to perform the method.

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

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

또한, 본 발명의 일 측면에 따르면, 상기 키 스케줄링 모듈부는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 상기 키 쉬프트 레지스터를 통해 각각 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 selectively generating any one of the whitening key and the sub-key, and 1 bit each through the key shift register. There may be provided a bit serial HIGHT arithmetic device for calculating and providing the whitening key or the sub-key to the round function module unit bit by bit.

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

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

또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.Also, according to an aspect of the present invention, the round function module unit outputs the result of the first auxiliary function or the second auxiliary function by 1 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 obtained by 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 every cycle. A bit serial HIGHT arithmetic device for storing the carry generated every time may be provided.

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

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 제공하는 단계는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.In addition, according to another aspect of the present invention, the step of providing the whitening key or sub-key comprises 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 sub-key. A bit-serial HIGHT calculation method for selectively providing the whitening key or the sub-key one bit at a time to the round function module unit may be provided.

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

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

또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.According to another aspect of the present invention, the calculating using the whitening key or the sub-key may include outputting the result of the first auxiliary function or the second auxiliary function 1 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 obtained by the round operation is stored in the first text shift register. In the case of an addition operation in which a carry occurs, a 1-bit flip-flop (flip-flop) is performed. -flop) may be used to provide a bit serial HIGHT calculation method for storing the carry that occurs in 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 is, when executed by a processor, for initial conversion and final conversion using an input master key (MasterKey) Selecting and providing a whitening key and a sub-key for round operation, calculating the master key through a key shift register to provide the whitening key or sub-key, and input plain text is output by performing the initial transformation, round operation, and final transformation using the whitening key or sub-key, and is calculated using shift data stored in the first text shift register after the plain text is input and the whitening key or sub-key A computer-readable recording medium containing instructions for causing the processor to perform a method comprising the step of doing 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, when executed by a processor, using the input master key (MasterKey) for initial conversion and final conversion Selecting and providing a whitening key and a sub-key for round operation, calculating the master key through a key shift register to provide the whitening key or sub-key, and input plain text is output by performing the initial transformation, round operation, and final transformation using the whitening key or sub-key, and is calculated using shift data stored in the first text shift register after the plain text is input and the whitening key or sub-key There may be provided a computer program including instructions for causing the processor to perform a method comprising the step of:

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

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

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

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

도 1a 내지 도 1c는 종래의 HIGHT 연산 알고리즘을 예시한 도면이고,
도 2는 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 나타낸 블록구성도이며,
도 3 내지 도 6은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산을 설명하기 위한 도면이고,
도 7은 본 발명의 다른 실시예에 따라 비트 시리얼 HIGHT 연산을 수행하는 과정을 나타낸 단계별 흐름도이다.
1A to 1C are diagrams illustrating a conventional HIGHT calculation algorithm,
2 is a block diagram showing a bit serial HIGHT arithmetic device according to an embodiment of the present invention;
3 to 6 are diagrams for explaining 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 embodiments of the present invention, and methods of achieving them, will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

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

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, 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 illustrating an apparatus for bit-serial HIGHT operation 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 operation device according to an embodiment of the present invention may consist of initial transformation, round operation, and final transformation, and the decryption process is initial transformation, round operation, and encryption, which are inverse transformations of the encryption final transformation. The final conversion, which is the inverse conversion of the initial conversion, can be performed to synchronize the operation and operation time of the register 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 can be selected.

도 2를 참조하면, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치는 키 스케줄링 모듈부(110), 라운드 함수 모듈부(120) 등을 포함할 수 있다.Referring to FIG. 2 , the bit serial HIGHT operation device 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 whitening key for initial conversion and final conversion and a sub key for round operation using the input master key (MasterKey), but the master key is key shifted A whitening key or sub-key can be provided by operating through the register.

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

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

여기에서, 라운드 함수 모듈부(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. there is.

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

또한, 라운드 함수 모듈부(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 by 1 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 obtained by performing ? is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, a carry occurring in 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 device according to an embodiment of the present invention performs a module performing a round function as shown in FIG. 3 and key scheduling as shown in FIG. 4 . It may be provided as a module that executes. 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 each module can be shifted by 1 bit every clock cycle.

그리고, 라운드 함수 모듈에서는 텍스트 레지스터의 8가지 위치 중 알맞은 위치에서 선택한 1비트의 데이터와, 키 스케줄러에서 받은 1비트의 키를 이용하여 1비트 단위의 라운드 연산을 수행할 수 있다.In addition, the round function module can perform a 1-bit round operation using 1-bit data selected from an appropriate position among 8 positions of the text register and a 1-bit key received from the 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 , a 1-byte shift register may be provided to implement the auxiliary functions F0 and F1 in units of 8 bits (1 byte) in units of 1 bit, and the text of the even-numbered byte (Even Byte) is may be stored in a shift register provided at the same time as performing a round operation, and then, when performing a round operation on the text of an odd-numbered byte (Odd Byte), F0, F1 in 1-bit units while cyclic shifting the previously stored value You can print the function result.

특히, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 라운드 연산과 변환 연산을 하나로 묶었으며, 연산되는 두가지 타입(Type A, Type B) 중 한 타입의 결과를 선택하여 텍스트 레지스터의 알맞은 위치에 저장할 수 있으며, 캐리(carry)가 발생하는 덧셈 연산의 경우, 1비트 플립플롭(flop-flop)을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.In particular, in the hardware of the bit serial HIGHT arithmetic device according to an embodiment of the present invention, the round operation and the conversion operation are bundled into one, and the result of one of the two types (Type A, Type B) to be calculated is selected and stored in the text register. 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비트씩 라운드 함수 모듈에 제공할 수 있다.On the other hand, the key scheduler module may operate one bit at a time through the shift register in a similar manner to the round function module, and may provide the whitening key and the sub key to the round function module one bit at a time.

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

여기에서, 암호화 과정에서는 한 라운드 내에서 연산되는 데이터의 위치가 일정하나, 복호화 과정에서는 LFSR(Linear feedback shift register) 값이 역순으로 변하는 점을 고려하여 연산 위치가 일정하지 않음을 알 수 있고, 매 라운드 연산의 마지막에는 데이터에서 1바이트 회전(rotation) 연산이 이루어지는데, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 이를 실제로 회전시키는 대신 텍스트 레지스터에서 라운드 연산이 수행되는 위치를 적절히 선택함으로써 가상의 회전을 수행할 수 있다.Here, in the encryption process, the position of the data calculated within one round is constant, but in the decryption process, it can be seen that the operation position is not constant, considering that the LFSR (Linear feedback shift register) value changes in the reverse order, At the end of the round operation, a one-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 at which the round operation is performed is appropriately selected in the text register. 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 the text register and the key register as shift registers, and the 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 by implementing , it is possible to perform 1-bit operation in every cycle without delay.

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

도 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 conversion and final conversion and a sub key for round operation are selected and provided using the input master key, but the whitening key or sub key is calculated by calculating the master key through the key shift register. may be provided (step 710).

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

다음에, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다(단계720).Next, the input plain text is output by performing initial transformation, round operation, and final transformation using the whitening key or sub-key, but the plain text is input and the shift data stored in the first text shift register and the whitening key or sub-key are used. 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 operating the first auxiliary function F0 and the second auxiliary function F1 in units of 8 bits in units of 1 bit. there is.

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

또한, 라운드 함수 모듈부(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 by 1 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 obtained by performing ? is stored in the first text shift register, but in the case of an addition operation in which a carry occurs, a carry occurring in every cycle may be stored using a 1-bit flip-flop.

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

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

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

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

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

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

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

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

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

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

입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.The input plain text is output by performing the initial transformation, round operation, and final transformation using the whitening key or sub-key, but the plain text is inputted and the shift data stored in the first text shift register and the whitening key Alternatively, it may include an instruction for causing the processor to perform a method including 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. It will be readily appreciated that branch substitutions, transformations and alterations are possible.

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

Claims (12)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101617694B1 (en) 2015-03-20 2016-05-03 금오공과대학교 산학협력단 Device For Performing Block Cipher Algorithm HIGHT

Family Cites Families (2)

* 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20210036699A (en) 2021-04-05

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
Akishita et al. Very compact hardware implementations of the blockcipher CLEFIA
EP3371928B1 (en) Key sequence generation for cryptographic operations
WO2009087972A1 (en) Data transmission device, data reception device, methods therefor, recording medium, and data communication system therefor
JP6135804B1 (en) Information processing apparatus, information processing method, and program
JP2006527865A (en) Line doll block encryption apparatus and encryption and decryption method thereof
MX2011001228A (en) Method for generating a cipher-based message authentication code.
JP5652363B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
JP3824121B2 (en) Method and apparatus for decrypting encrypted data
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
US10097343B2 (en) Data processing apparatus and data processing method
KR100922728B1 (en) AES encryption and decryption apparatus and method
KR100949538B1 (en) Apparatus and method for improving rate encryption and decryption using aes rijndael algorithm
EP1875405B1 (en) Improved cipher system
CN112564890A (en) Method and device for accelerating SM4 algorithm, processor and electronic equipment
JP6292195B2 (en) Information processing apparatus and information processing method
KR102282363B1 (en) Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same
JP5182295B2 (en) Encryption apparatus and encryption processing method
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
JP4395527B2 (en) Information processing device
JP4859536B2 (en) Data converter
JP2011085739A (en) Method and device for calculating encryption algorithm
JPH09251267A (en) Encryption device and encryption method
EP2209252B1 (en) Compact hardware implementation of block ciphers with a MISTY structure
KR20200086859A (en) Lightweight block cryptography device

Legal Events

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