KR20210036699A - 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 - Google Patents

비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 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
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020190119055A
Other languages
English (en)
Other versions
KR102282363B1 (ko
Inventor
박종선
김보훈
김동화
안명길
Original Assignee
국방과학연구소
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소, 고려대학교 산학협력단 filed Critical 국방과학연구소
Priority to KR1020190119055A priority Critical patent/KR102282363B1/ko
Publication of KR20210036699A publication Critical patent/KR20210036699A/ko
Application granted granted Critical
Publication of KR102282363B1 publication Critical patent/KR102282363B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

본 발명은 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램에 관한 것으로, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부를 포함함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 매 사이클마다 1비트 단위의 연산을 지연없이 수행할 수 있다.

Description

비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램{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 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램에 관한 것이다.
잘 알려진 바와 같이, 암호화는 그 의미가 명확하지 않도록 부호화하는 과정이며, 복호화는 암호화된 메시지를 본래의 형태로 변환하는 과정을 의미하는데, 메시지 원래의 형태를 평문(Plain text)이라 하고, 암호화된 형태를 암호문(Cipher text)이라 한다.
한편, 대칭형 암호 시스템은 암호화를 위해 사용되는 송신자의 키(Key)와 복호화를 위해 수신자의 키가 동일한 시스템인데, 저전력 및 모바일용으로 하여 ISO/IEC 국제 표준으로 2010년 최종 승인된 64비트(bit) 블록 암호화 기술로서 HIGHT(High Encryption Standard) 암호 알고리즘이 개발되어 이를 구현하기 위한 다양한 연구 개발이 이루어지고 있다.
이러한 HIGHT는 도 1 내지 도 3에 도시한 바와 같이 64비트의 평문(P)과 128비트의 키 길이를 가지며, 초기변환(Initial transformation) 및 최종변환(Final transformation)과 32회의 라운드(round) 연산을 통해 암호화 및 복호화 연산을 수행할 수 있다.
현재까지 가장 적은 면적으로 설계한 HIGHT 하드웨어 구현은 한 클럭 사이클(clock cycle)에 한 라운드씩 연산하는 라운드 기반(round-based) 방식으로 3000GE(Gate Equivalents) 정도의 면적을 가지지만, 수동형 RFID(passive RFID)와 같이 면적 및 파워 소모의 제한이 있는 환경에서 암호화를 수행하기 위해서는 2000GE 이하로 더 작게 설계할 필요가 있다.
종래의 라운드 기반 HIGHT 하드웨어에서는 64비트 단위의 라운드 연산부와 텍스트 및 키 데이터를 선택하기 위한 64비트 및 128비트 멀티플렉서(MUX : multiplexer)가 많은 면적을 차지하고 있는데, 면적을 줄이기 위하여 대칭형태의 라운드 연산부를 32비트 또는 16비트 단위로 만들어 하드웨어를 공유하는 전통적인 폴딩(folding) 기법을 적용할 수 있으나, 이를 컨트롤하기 위한 멀티플렉서(MUX) 등의 추가 비용으로 인해 큰 효과를 보지 못할 뿐만 아니라, 보조 함수 F0, F1 및 덧셈 연산이 8비트(1byte) 단위로 이루어지므로 단순한 폴딩 기법으로는 8비트 이하의 HIGHT 연산 구조를 구현하기 어렵다는 문제점이 있다.
1. 한국등록특허 제10-1330664호(2013.11.08.등록) 2. 한국공개특허 제10-2015-0123476호(2015.11.04.공개)
본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트 단위 보조 함수를 1비트 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램을 제공하고자 한다.
또한, 본 발명은 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있는 비트 시리얼 HIGHT 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램을 제공하고자 한다.
본 발명의 실시예들의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부를 포함하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.
또한, 본 발명의 일 측면에 따르면, 상기 키 스케줄링 모듈부는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 상기 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.
또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.
또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.
또한, 본 발명의 일 측면에 따르면, 상기 라운드 함수 모듈부는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 장치가 제공될 수 있다.
본 발명의 다른 측면에 따르면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.
또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 제공하는 단계는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.
또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.
또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.
또한, 본 발명의 다른 측면에 따르면, 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 방법이 제공될 수 있다.
본 발명의 또 다른 측면에 따르면, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체가 제공될 수 있다.
본 발명의 또 다른 측면에 따르면, 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와, 입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램이 제공될 수 있다.
본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트 단위 보조 함수를 1비트 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연 없이 수행할 수 있다.
또한, 본 발명은 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.
특히, 본 발명에서 제안하는 비트 시리얼 HIGHT 연산 장치의 구조는 텍스트 레지스터 및 키 레지스터를 쉬프트 레지스터로 대체하고, 특정한 위치를 제외한 레지스터의 대부분은 예외 없이 다음 위치로 쉬프트되는 형태이기 때문에, 데이터 컨트롤에 필요한 멀티플렉서의 대부분을 제거할 수 있는 장점이 있다.
또한, 본 발명은 1바이트 쉬프트 레지스터를 활용함으로써, 바이트 단위 사이클릭 쉬프트 연산이 포함되는 보조함수(F0, F1)의 1비트 단위 구현이 가능하며, 이로써 전체 라운드 연산부를 1비트 단위로 구성할 수 있을 뿐만 아니라 암호화 연산과 복호화 연산을 하는 하드웨어는 컨트롤 신호를 제외하고 동일하기 때문에, 추가적인 비용 없이도 암호화 및 복호화 간에 재구성 가능한 하드웨어를 저면적으로 구현할 수 있으며, 전체 하드웨어 면적을 종래의 라운드 기반 HIGHT 구조에 비해 획기적으로 감소시킬 수 있다.
도 1a 내지 도 1c는 종래의 HIGHT 연산 알고리즘을 예시한 도면이고,
도 2는 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 나타낸 블록구성도이며,
도 3 내지 도 6은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산을 설명하기 위한 도면이고,
도 7은 본 발명의 다른 실시예에 따라 비트 시리얼 HIGHT 연산을 수행하는 과정을 나타낸 단계별 흐름도이다.
본 발명의 실시예들에 대한 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 나타낸 블록구성도이며, 도 3 내지 도 6은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산을 설명하기 위한 도면이다.
여기에서, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치를 이용한 암호화 과정은 초기변환, 라운드 연산 및 최종변환으로 이루어질 수 있고, 복호화 과정은 암호화 최종변환의 역변환인 초기변환, 라운드 연산 및 암호화 초기변환의 역변환인 최종변환으로 이루어질 수 있으며, 컨트롤러(controller)의 제어에 따라 클럭신호를 통해 레지스터의 동작 및 연산 시점을 동기화시킬 수 있고, 컨트롤러의 제어에 따라 모드신호를 통해 암호화 동작 및 복호화 동작을 선택할 수 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치는 키 스케줄링 모듈부(110), 라운드 함수 모듈부(120) 등을 포함할 수 있다.
키 스케줄링 모듈부(110)는 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 제공할 수 있다.
여기에서, 키 스케줄링 모듈부(110)는 화이트닝키 또는 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 화이트닝키 또는 서브키를 라운드 함수 모듈부로 1비트씩 선택 제공할 수 있다.
라운드 함수 모듈부(120)는 입력되는 평문(Plain Text)을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.
여기에서, 라운드 함수 모듈부(120)는 8비트 단위의 제 1 보조함수(F0)와 제 2 보조함수(F1)를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비할 수 있다.
그리고, 라운드 함수 모듈부(120)는 짝수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행하면서 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행할 경우 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력할 수 있다.
또한, 라운드 함수 모듈부(120)는 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 라운드 연산을 수행하고, 라운드 연산을 수행한 출력값을 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.
예를 들면, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치는 도 3에 도시한 바와 같은 라운드 함수(Round function)를 수행하는 모듈과 도 4에 도시한 바와 같은 키 스케줄링(Key scheduling)을 수행하는 모듈로 제공될 수 있는데, 각 모듈에서 텍스트는 64비트 쉬프트 레지스터에, 키 값은 128비트 쉬프트 레지스터에 각각 저장되어 매 클럭 사이클(clock cycle)마다 1비트씩 쉬프트 될 수 있다.
그리고, 라운드 함수 모듈에서는 텍스트 레지스터의 8가지 위치 중 알맞은 위치에서 선택한 1비트의 데이터와, 키 스케줄러에서 받은 1비트의 키를 이용하여 1비트 단위의 라운드 연산을 수행할 수 있다.
특히, 도 5에 도시한 바와 같이 8비트(1바이트) 단위의 보조함수 F0, F1 함수를 1비트 단위로 구현하기 위하여 1바이트 쉬프트 레지스터를 구비할 수 있고, 짝수 번째 바이트(Even Byte)의 텍스트는 라운드 연산을 하는 동시에 구비된 쉬프트 레지스터에 저장될 수 있으며, 이후 홀수 번째 바이트(Odd Byte)의 텍스트를 라운드 연산할 때에 앞서 저장된 값을 사이클릭 쉬프트(cyclic shift) 하면서 1비트단위의 F0, F1 함수 결과를 출력할 수 있다.
특히, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 라운드 연산과 변환 연산을 하나로 묶었으며, 연산되는 두가지 타입(Type A, Type B) 중 한 타입의 결과를 선택하여 텍스트 레지스터의 알맞은 위치에 저장할 수 있으며, 캐리(carry)가 발생하는 덧셈 연산의 경우, 1비트 플립플롭(flop-flop)을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.
한편, 키 스케줄러 모듈은 라운드 함수 모듈과 유사한 방식으로 쉬프트 레지스터를 통해 1비트씩 연산하며, 화이트닝키와 서브키를 1비트씩 라운드 함수 모듈에 제공할 수 있다.
상술한 바와 같은 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 시간에 따른 전체 연산 과정을 도 6을 참조하여 설명하면, 1사이클은 8클럭 사이클에 해당할 수 있고, 각 인덱스(index)는 1바이트 단위인데, 텍스트 레지스터에서 라운드 연산을 위해 선택되는 데이터의 위치는 점선으로, 연산이 완료된 값들은 회색으로 표시하였고, 키 레지스터(Key Register)에서는 라운드 연산에 사용되는 키를 회색으로 표시하였다.
여기에서, 암호화 과정에서는 한 라운드 내에서 연산되는 데이터의 위치가 일정하나, 복호화 과정에서는 LFSR(Linear feedback shift register) 값이 역순으로 변하는 점을 고려하여 연산 위치가 일정하지 않음을 알 수 있고, 매 라운드 연산의 마지막에는 데이터에서 1바이트 회전(rotation) 연산이 이루어지는데, 본 발명의 일 실시예에 따른 비트 시리얼 HIGHT 연산 장치의 하드웨어에서는 이를 실제로 회전시키는 대신 텍스트 레지스터에서 라운드 연산이 수행되는 위치를 적절히 선택함으로써 가상의 회전을 수행할 수 있다.
따라서, 본 발명은 텍스트 레지스터와 키 레지스터를 쉬프트 레지스터로 구현함으로써, 데이터 제어에 필요한 멀티플렉서(MUX)를 최소화할 수 있고, 추가 쉬프트 레지스터를 통해 바이트(byte) 단위 보조 함수를 1비트(bit) 단위로 구현하여 연산되는 데이터의 위치를 조정함으로써, 매 사이클마다 1비트 단위의 연산을 지연없이 수행할 수 있다.
다음에, 상술한 바와 같은 구성을 갖는 비트 시리얼 HIGHT 연산 장치에서 마스터키를 이용하여 128비트 쉬프트 레지스터를 통해 연산하여 화이트닝키 및 서브키를 제공하고, 64비트 쉬프트 레지스터에서 선택된 데이터와 화이트닝키 또는 서브키를 통해 라운드 연산을 수행하는 과정에 대해 설명한다.
도 7은 본 발명의 다른 실시예에 따라 비트 시리얼 HIGHT 연산을 수행하는 과정을 나타낸 단계별 흐름도이다.
도 7을 참조하면, 입력되는 마스터키를 이용하여 초기변환 및 최종변환을 위한 화이트닝키와 라운드 연산을 위한 서브키를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 제공할 수 있다(단계710).
여기에서, 키 스케줄링 모듈부(110)에서는 화이트닝키 또는 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 화이트닝키 또는 서브키를 라운드 함수 모듈부로 1비트씩 선택 제공할 수 있다.
다음에, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다(단계720).
여기에서, 라운드 함수 모듈부(120)에서는 8비트 단위의 제 1 보조함수(F0)와 제 2 보조함수(F1)를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비할 수 있다.
그리고, 라운드 함수 모듈부(120)에서는 짝수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행하면서 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 라운드 연산을 수행할 경우 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트하면서 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력할 수 있다.
또한, 라운드 함수 모듈부(120)는 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 라운드 연산을 수행하고, 라운드 연산을 수행한 출력값을 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리가 발생하는 덧셈 연산의 경우 1비트 플립플롭을 이용하여 매 사이클 마다 발생하는 캐리를 저장할 수 있다.
따라서, 또한, 본 발명은 입력되는 마스터키를 이용하여 초기변환 및 최종변환을 위한 화이트닝키와 라운드 연산을 위한 서브키를 선택 제공하되, 마스터키를 키 쉬프트 레지스터를 통해 연산하여 화이트닝키 또는 서브키를 생성하고, 입력되는 평문을 화이트닝키 또는 서브키를 이용하여 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 화이트닝키 또는 서브키를 이용하여 연산할 수 있다.
특히, 본 발명에서 제안하는 비트 시리얼 HIGHT 연산 장치의 구조는 텍스트 레지스터 및 키 레지스터를 쉬프트 레지스터로 대체하고, 특정한 위치를 제외한 레지스터의 대부분은 예외 없이 다음 위치로 쉬프트되는 형태이기 때문에, 데이터 컨트롤에 필요한 멀티플렉서의 대부분을 제거할 수 있는 장점이 있다.
또한, 본 발명은 1바이트 쉬프트 레지스터를 활용함으로써, 바이트 단위 사이클릭 쉬프트 연산이 포함되는 보조함수(F0, F1)의 1비트 단위 구현이 가능하며, 이로써 전체 라운드 연산부를 1비트 단위로 구성할 수 있을 뿐만 아니라 암호화 연산과 복호화 연산을 하는 하드웨어는 컨트롤 신호를 제외하고 동일하기 때문에, 추가적인 비용 없이도 암호화 및 복호화 간에 재구성 가능한 하드웨어를 저면적으로 구현할 수 있으며, 전체 하드웨어 면적을 종래의 라운드 기반 HIGHT 구조에 비해 획기적으로 감소시킬 수 있다.
한편, 상술한 바와 같은 비트 시리얼 HIGHT 연산 방법은 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서 제공될 수 있는데,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
또한, 상술한 바와 같은 비트 시리얼 HIGHT 연산 방법은 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서 제공될 수 있는데,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
이상의 설명에서는 본 발명의 다양한 실시예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
110 : 키 스케줄링 모듈부
120 : 라운드 함수 모듈부

Claims (12)

  1. 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 키 스케줄링 모듈부와,
    입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 라운드 함수 모듈부
    를 포함하는 비트 시리얼 HIGHT 연산 장치.
  2. 제 1 항에 있어서,
    상기 키 스케줄링 모듈부는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 포함하며, 상기 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 장치.
  3. 제 2 항에 있어서,
    상기 라운드 함수 모듈부는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 장치.
  4. 제 3 항에 있어서,
    상기 라운드 함수 모듈부는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 장치.
  5. 제 4 항에 있어서,
    상기 라운드 함수 모듈부는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 장치.
  6. 입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
    입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계
    를 포함하는 비트 시리얼 HIGHT 연산 방법.
  7. 제 6 항에 있어서,
    상기 화이트닝키 또는 서브키를 제공하는 단계는, 상기 화이트닝키 또는 상기 서브키 중 어느 하나의 선택적 생성의 기초가 되는 키 쉬프트 레지스터를 통해 각각 1비트씩 연산하여 상기 화이트닝키 또는 상기 서브키를 상기 라운드 함수 모듈부로 1비트씩 선택 제공하는 비트 시리얼 HIGHT 연산 방법.
  8. 제 7 항에 있어서,
    상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 8비트 단위의 제 1 보조함수와 제 2 보조함수를 1비트 단위로 연산하기 위한 1바이트의 제 2 텍스트 쉬프트 레지스터를 구비하는 비트 시리얼 HIGHT 연산 방법.
  9. 제 8 항에 있어서,
    상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 짝수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행하면서 상기 제 2 텍스트 쉬프트 레지스터에 저장하고, 홀수 번째 바이트의 텍스트 데이터에 대한 상기 라운드 연산을 수행할 경우 상기 제 2 텍스트 쉬프트 레지스터에 저장된 값을 사이클릭 쉬프트(cyclic shift)하면서 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하는 비트 시리얼 HIGHT 연산 방법.
  10. 제 9 항에 있어서,
    상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계는, 상기 제 1 보조함수 또는 제 2 보조함수의 결과를 1비트씩 출력하며, 상기 제 1 보조함수 또는 제 2 보조함수의 결과값에 대하여 상기 라운드 연산을 수행하고, 상기 라운드 연산을 수행한 출력값을 상기 제 1 텍스트 쉬프트 레지스터에 저장하되, 캐리(carry)가 발생하는 덧셈 연산의 경우 1비트 플립플롭(flip-flop)을 이용하여 매 사이클 마다 발생하는 상기 캐리를 저장하는 비트 시리얼 HIGHT 연산 방법.
  11. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
    입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 판독 가능한 기록매체.
  12. 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    입력되는 마스터키(MasterKey)를 이용하여 초기변환 및 최종변환을 위한 화이트닝키(WhiteningKey)와 라운드 연산을 위한 서브키(SubKey)를 선택 제공하되, 상기 마스터키를 키 쉬프트 레지스터를 통해 연산하여 상기 화이트닝키 또는 서브키를 제공하는 단계와,
    입력되는 평문(Plain Text)을 상기 화이트닝키 또는 서브키를 이용하여 상기 초기변환, 라운드 연산 및 최종변환을 수행하여 출력하되, 상기 평문이 입력되어 제 1 텍스트 쉬프트 레지스터에 저장된 쉬프트 데이터와 상기 화이트닝키 또는 서브키를 이용하여 연산하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 프로그램.
KR1020190119055A 2019-09-26 2019-09-26 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 Active KR102282363B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190119055A KR102282363B1 (ko) 2019-09-26 2019-09-26 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190119055A KR102282363B1 (ko) 2019-09-26 2019-09-26 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Publications (2)

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

Family

ID=75461810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190119055A Active KR102282363B1 (ko) 2019-09-26 2019-09-26 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102282363B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330664B1 (ko) 2012-06-15 2013-11-15 한국전자통신연구원 저전력 암호화 장치 및 방법
KR20150123476A (ko) 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
KR101617694B1 (ko) * 2015-03-20 2016-05-03 금오공과대학교 산학협력단 블록암호 hight 의 암호화/복호화 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330664B1 (ko) 2012-06-15 2013-11-15 한국전자통신연구원 저전력 암호화 장치 및 방법
KR20150123476A (ko) 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
KR101617694B1 (ko) * 2015-03-20 2016-05-03 금오공과대학교 산학협력단 블록암호 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 (ko) 2021-07-27

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
JP4960044B2 (ja) 暗号処理回路及びicカード
EP3371928B1 (en) Key sequence generation for cryptographic operations
JP4025722B2 (ja) データ暗号化のための方法および装置
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JP6135804B1 (ja) 情報処理装置、情報処理方法及びプログラム
MX2011001228A (es) Metodo para generar un codigo de autenticacion de mensajes basados en el cifrado.
JP2002032018A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
Rouvroy et al. Efficient uses of FPGAs for implementations of DES and its experimental linear cryptanalysis
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP3824121B2 (ja) 暗号データの復号化処理方法および装置
WO2006098015A1 (ja) データ変換装置及びデータ変換方法
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
KR100949538B1 (ko) Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법
EP1875405B1 (en) Improved cipher system
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
JP6292195B2 (ja) 情報処理装置及び情報処理方法
JP2014240921A (ja) 暗号装置、暗号処理方法及び暗号処理プログラム
KR102282363B1 (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
KR20040108311A (ko) 라인달 블록 암호 장치와 그 암호화 및 복호화 방법
JP2011085739A (ja) 暗号アルゴリズムの計算方法、及び装置
El-Hadedy et al. Reco-Pi: a reconfigurable cryptoprocessor for π-cipher
JP4859536B2 (ja) データ変換装置
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190926

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210104

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210630

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210721

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210722

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240722

Start annual number: 4

End annual number: 4