KR100786391B1 - 고속 아리아 블록 암호화/복호화 장치 - Google Patents

고속 아리아 블록 암호화/복호화 장치 Download PDF

Info

Publication number
KR100786391B1
KR100786391B1 KR1020060095008A KR20060095008A KR100786391B1 KR 100786391 B1 KR100786391 B1 KR 100786391B1 KR 1020060095008 A KR1020060095008 A KR 1020060095008A KR 20060095008 A KR20060095008 A KR 20060095008A KR 100786391 B1 KR100786391 B1 KR 100786391B1
Authority
KR
South Korea
Prior art keywords
round
key
exclusive
result
xor
Prior art date
Application number
KR1020060095008A
Other languages
English (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 KR1020060095008A priority Critical patent/KR100786391B1/ko
Application granted granted Critical
Publication of KR100786391B1 publication Critical patent/KR100786391B1/ko

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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

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

Abstract

본 발명은 고속 아리아 블록 암호화/복호화 장치에 관한 것으로, 암호화시 소요되는 클럭 싸이클 수를 크게 감소시키고, 하드웨어 크기를 줄이기 위하여, 암호화/복호화 대상인 입력 데이터 또는 짝수 라운드 연산 결과와 홀수 라운드 키를 배타적 논리합 연산하고, 상기 배타적 논리합 연산 결과에 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제 1라운드 연산부; 상기 제1라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산을 수행하고, 상기 배타적 논리합 연산 결과에 대한 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제2라운드 연산부; 최종 라운드에서의 상기 제2라운드 연산부의 치환 연산 과정의 결과값과 최종 라운드 키에 대한 배타적 논리합 연산하여, 상기 배타적 논리합 연산 결과를 아리아 블록 암호화/복호화된 데이터로 출력하는 제1 XOR기; 및 마스터 키로부터 얻어진 초기 키값들로부터 상기 제1,2 라운드 연산부의 연산에 필요한 라운드 키값을 생성하여 제공하는 라운드키 생성부를 통해, 암호화/복호화 연산 및 키 초기화 과정을 수행하도록 한 것이다.
암호화, 복호화, 아리아(AIRA), 라운드 연산부, 클럭 싸이클, 배타적 논리합

Description

고속 아리아 블록 암호화/복호화 장치{Fast aria block encryption/decryption apparatus}
도 1은 본 발명에 의한 고속 아리아 블록 암호화/복호화 장치의 구성 예를 도시한 블럭도,
도 2는 본 발명에 의한 고속 아리아 블록 암호화/복호화 장치의 세부 구성을 나타낸 블럭도,
도 3은 본 발명에 따른 고속 아리아 블록 암호화/복호화 장치에 있어서, 키 초기화 과정을 나타내는 흐름도,
도 4는 본 발명에 따른 고속 아리아 블록 암호화/복호화 장치에 있어서, 라운드 연산 과정을 나타내는 흐름도,
도 5는 본 발명에 따른 고속 아리아 블록 암호화 장치의 치환부의 구성 예를 나타낸 도면, 그리고
도 6은 본 발명에 따른 고속 아리아 블록 암호화 장치의 확산부의 일 실시예를 나타낸 블럭도이다.
본 발명은 아리아 블록 암호화/복호화(Aria block encryption/decryption) 기술에 관한 것으로서, 더욱 상세하게는 아리아 블록 암호화/복호화에 소요되는 클럭 사이클 수를 감소시키고, 하드웨어 크기를 줄인 고속 아리아 블록 암호화/복호화 장치에 관한 것이다.
아리아 블록 암/복호화 알고리즘은 국가 보안 기술 연구소(NSRI)에서 개발된 민관 겸용 블록 대칭키 방식의 암호 알고리즘으로서, 128 비트, 192 비트, 256 비트의 3 종류의 키 사용을 제공한다. 참고로, 암호화와 복호화는 알고리즘의 기본 과정이 동일하므로, 이하에서는 설명의 편의를 위하여 암호화를 기준으로 설명한다. 그러나 이하에 설명된 암호화 과정은 복호화에도 동일하게 적용될 수 있음은 당연하다.
또한, 상기 아리아 블록 암호화 알고리즘은 라운드 연산에 의하여 암호화 연산을 수행하며, 각 라운드 연산은 치환(Substitution) 연산과, 확산(Diffusion) 연산으로 이루어지는데, 키가 128비트 일 때는 12라운드, 키가 192비트 일 때는 14라운드, 키가 256비트 일 때는 16라운드를 사용하도록 권고하고 있다.
상기 각 라운드 연산마다 서로 다른 키를 사용하여야 하는데, 이러한 키 확장 과정은 키 생성을 위한 마스터 키값(MK) 및 128비트의 특정 초기화 상수들(CK1, CK2, CK3)을 입력으로 주었을 때, 4개의 128비트 초기 키값 W0, W1, W2, W3을 생성하는 키 초기화 과정 및 상기 초기 키값을 이용하여 각 라운드 마다 사용될 라운드 키를 생성하는 라운드 키 생성과정으로 이루어진다.
이러한 아리아 블록 암호 알고리즘에 있어서, 상기한 치환 연산 및 확산 연산을 수행하는 방법과, 키 확장 과정을 수행하는 방법에 따라 아리아 블록 암호화 연산에 소요되는 시간 및 사용되는 하드웨어 리소스에 차이가 있으며, 이는 더 나아가 아리아 암호 프로세서의 성능과 직결되는 문제가 된다.
그런데, 기존에 알려진 아리아 블록 암호화 장치는 상술한 키 초기화 과정을 하기 위한 별도의 회로를 구비하고 있기 때문에, 아리아 암호화 장치의 하드웨어의 크기가 크다는 문제점이 있었다.
또한 기존의 아리아 블록 암호화 장치는, 1 클럭에 1 라운드를 수행하는 형태로 라운드 연산부가 구성되기 때문에, 아리아 암호화를 수행하기 위하여서는 키 크기에 따라 최소 라운드 수만큼의 클럭 싸이클이 소요된다는 문제점이 있었다.
더하여, 상기 확산 연산부를 7 바이트의 XOR 기 16개로 구현하고 있기 때문에, 회로 크기가 커진다는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로서, 본 발명의 제1 목적은, 1 클럭에 연산할 수 있는 라운드 수를 증가시켜, 암호화시 소요되는 클럭 싸이클 수를 크게 감소시킴으로써 고속 연산이 가능한 고속 아리아 블록 암호화/복호화 장치를 제공하는 데 있다.
또한, 본 발명의 제2 목적은, 별도의 키 초기화 회로를 구비하지 않고, 라운 드 연산부를 이용하여 키 초기화 과정을 수행함으로써 하드웨어 크기를 줄인 고속 아리아 블록 암호화/복호화 장치를 제공하는 데 있다.
상기와 같은 본 발명의 목적을 달성하기 위하여, 본 발명의 고속 아리아 블록 암호화/복호화 장치는,
암호화/복호화 대상인 입력 데이터 또는 짝수 라운드 연산 결과와 홀수 라운드 키를 배타적 논리합 연산하고, 상기 배타적 논리합 연산 결과에 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제1 라운드 연산부;
상기 제1라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산을 수행하고, 상기 배타적 논리합 연산 결과에 대한 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제2라운드 연산부;
최종 라운드에서의 상기 제2라운드 연산부의 치환 연산 과정의 결과값과 최종 라운드 키에 대한 배타적 논리합 연산하여, 상기 배타적 논리합 연산 결과를 아리아 블록 암호화/복호화된 데이터로 출력하는 제1 XOR기; 및
마스터 키로부터 얻어진 초기 키값들로부터 상기 제1,2 라운드 연산부의 연산에 필요한 라운드 키값을 생성하여 제공하는 라운드키 생성부를 포함하는 것을 특징으로 한다.
더하여, 본 발명에 의한 고속 아리아 블록 암호화/복호화 장치는,
상기 제1라운드 연산부의 결과값과 키 초기화 과정의 결과값 또는 제1 키 초 기화 입력 데이터를 배타적 논리합 연산을 수행하는 제2 XOR기;
상기 제2라운드 연산부의 결과값과 제2 키 초기화 입력 데이타와의 배타적 논리합 연산을 수행하는 제3 XOR기;
입력데이터와 상기 제2 라운드 연산부의 결과값과 상기 제3 XOR기의 결과값중에서 어느 하나를 선택하여 제1 라운드 연산부에 제공하는 제1 입력 선택부;
초기화 상수와 상기 라운드 키 생성부에서 생성된 홀수 라운드 키 중에서 어느 하나를 선택하여 제1 라운드 연산부에 제공하는 제2 입력 선택부;
초기화 상수와 상기 라운드 키 생성부에서 생성된 짝수 라운드 키 중에서 어느 하나를 선택하여 제2 라운드 연산부에 제공하는 제3 입력 선택부;
상기 키 초기화 과정의 결과값과 제1 키 초기화 입력 데이터 중에서 어느 하나를 선택하여 상기 제2 XOR기로 제공하는 제4 입력 선택부;
상기 제1 라운드 연산부의 결과값과 상기 제2 XOR기의 연산 결과값 중에서 어느 하나를 선택하여 상기 제2 라운드 연산부로 제공하는 제5 입력 선택부; 및
암호화 연산 과정인지 키 초기화 과정인지에 따라서 상기 제1 내지 제5 입력 선택부의 선택을 제어하는 제어부를 더 포함하여, 상기 제1,2 라운드 연산부를 이용하여 키 초기화 과정을 수행하는 것을 특징으로 한다.
바람직하게는, 상기 제어부는, 키 초기화 과정인 경우, 첫번째 클럭 사이클에서 제1 입력선택부가 제1 키 초기화 입력 데이터를 선택하고, 제2 입력 선택부가 제1초기화 상수를 선택하고, 제3 입력 선택부가 제2 초기화 상수를 선택하여, 상기 제1 라운드 연산부가 제1 키 초기화 입력 데이터와 제2 입력 선택부가 선택한 제1 초기화상수를 배타적 논리합 연산한 후, 제1 치환 연산과 확산 연산을 순차로 진행하고, 제2 XOR 기가 제1 라운드 연산부의 확산 연산 결과와 제2 키 초기화 입력 데이터를 배타적 논리합하여 제1 초기 키값을 생성하고, 상기 제2 라운드 연산부가 상기 제1 초기 키값과 제3 입력 선택부가 선택한 초기화 상수를 배타적 논리합 연산 후, 제2 치환 연산과 확산 연산을 순차로 수행하고, 상기 확산 연산 결과와 제1 키 초기화 입력 데이터를 제3 XOR기가 배타적 논리합 연산하여 제2 초기 키값을 생성하고, 두번째 클럭 사이클에서, 제1 입력 선택부가 상기 제3 XOR기의 연산 결과인 제2 초기 키값을 선택하고, 제2 입력 선택부가 제3 초기화 상수를 선택하여, 제1 라운드 연산부가 상기 제2 초기 키값과 제3 초기화 상수를 배타적 논리합 연산한 후 제1 치환 연산과 확산 연산을 순차로 수행하고 제2 XOR 기가 상기 확산 연산 결과를 배타적 논리합 연산하여 제3 초기 키값을 생성하도록 제어하는 것을 특징으로 한다.
또한, 상기 제어부는, 라운드 연산 과정인 경우, 첫번째 클럭 싸이클에서 제1 입력 선택부가 입력 데이터를 선택하고, 제2 입력 선택부가 홀수 라운드 키를 선택하고, 제3 입력 선택부가 짝수 라운드 키를 선택하도록 하여, 제1 라운드 연산부가 입력 데이터와 홀수 라운드키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부가 상기 제1 라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산, 확산 연산을 순차로 수행한 후, 1 클럭 싸이클마다 제1 입력 선택부가 제2 라운드 연산부의 연산결과를 선택하고, 제2,3 입력 선택부가 각각 차기 홀수,짝수 라운드 키를 선택하도록 하 여, 제1 라운드 연산부가 제2 라운드 연산부의 연산 결과와 홀수 라운드키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부가 상기 제1 라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산을 순차로 수행한 후, 마지막 라운드인지를 확인하여, 마지막 라운드가 아니면 확산 연산을 수행하는 과정을 반복하고, 마지막 라운드인 경우, 제2 XOR기가 상기 제2 치환 연산 결과와 최종 라운드키를 배타적 논리합 연산하여 출력하도록 제어하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.
도 1은 본 발명의 바람직한 실시 예에 따른 고속 아리아 블록 암/복호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명에 따른 아리아 블록 암호화 장치는, 입력 데이타또는 라운드 중간 연산 결과 값을 저장하는 제1레지스터(11)와, 키 초기화 상수 또 는 홀수 라운드 키를 저장하는 제2레지스터(12)와, 키 초기화 과정의 결과값인 제1 내지 제3 초기 키값을 저장하는 제3레지스터(13)와, 키 초기화 상수 또는 짝수 라운드 키를 저장하는 제4레지스터(14)와, 상기 제1레지스터(11)의 저장값과 상기 제2레지스터(12)의 저장값에 대한 배타적 논리합 연산을 수행하고, 그 결과에 치환 연산을 수행하고, 그 결과에 대한 확산 연산을 수행하는 제1라운드 연산부(15)와, 상기 제1라운드 연산부(15)의 결과값과 제3레지스터(13)의 저장값 또는 키 초기화 입력 데이타(KR)와의 배타적 논리합 연산을 수행하는 제2 XOR기(16)와, 상기 제1라운드 연산부(15)의 결과값 또는 상기 제2 XOR기(16)의 결과값과 상기 제4레지스터(14)의 저장값에 대한 배타적 논리합 연산을 수행하고, 그 결과에 대한 치환 연산을 수행하고, 그 결과에 대한 확산 연산을 수행하는 제2라운드 연산부(17)와, 상기 제2라운드 연산부(17)의 중간 계산 과정인 치환 연산 과정의 결과값과, 최종라운드키에 대한 배타적 논리합 연산을 수행하는 제1 XOR기(18)와, 상기 제2라운드 연산부(17)의 결과값과 제1 키 초기화 입력 데이타(KL)와의 배타적 논리합 연산을 수행하는 제3 XOR기(19)와, 상기 제1,2,4 레지스터(11,12,14)들의 입력과 제2 XOR기(16)의 입력과 짝수 라운드연산부(17)의 입력을 선택하는 제1 내지 제5 다중화기들(20~24)과, 상기 제3 레지스터(13)의 저장값을 이용하여 1 클럭 사이클마다 제2레지스터(12) 및 제4레지스터(14)의 입력값인 홀수 및 짝수 라운드키를 생성하는 라운드키 생성부(25)와, 상기 제1 내지 제5 다중화기들(20~24)과 상기 라운드키 생성부(25)를 제어하기 위한 제어부(26)를 포함한다.
도 2는 본 발명에 따른 고속 아리아 블록 암복호화 장치의 일시 예로써, 128 비트 암복호화를 수행하기 위한 초기화 상수 값을 구체적으로 기술하고, 상기 제1 라운드 연산부(15) 및 제2 라운드 연산부(17)를 구체적으로 도시한다.
상기 초기화 상수 값은 각각 128비트인 제1 초기화 상수 CK1, 제2 초기화 상수 CK2, 제3 초기화 상수 CK3로 이루어진다. 상기 CKI,CK2,CK3는 아리아 블록 암호화 알고리즘에서 명시되어 있는 초기화 상수들이다.
도 2를 참조하면, 제1 라운드 연산부(15)는 제1,2 레지스터(11,12)의 저장값에 대한 배타적 논리합 연산을 수행하는 XOR기(151)와, 상기 배타적 논리합 연산 결과에 대한 제1 치환 연산을 수행하는 제1치환부(152)와, 상기 제1 치환 연산 결과에 대한 확산 연산을 수행하는 제1 확산부(153)로 구성된다.
제2라운드 연산부(17)는 제5 다중화기(24)의 선택값과 제4 레지스터(14)의 저장값에 대한 배타적 논리합 연산을 수행하는 XOR기(171)와, 상기 XOR기(171)의 배타적 논리합 연산 결과에 대한 제2치환연산을 수행하는 제2치환부(172)와, 상기 제2 치환 연산 결과에 대한 확산 연산을 수행하는 제2 확산부(173)로 구성된다.
상기 구성을 통해 본 발명의 장치는 키 초기화 과정과, 암호화 연산 과정을 모두 수행할 수 있다. 이때, 키 초기화 과정과 암호화 연산 과정에 따른 입력 데이터의 선택은 상기 제어부(26)에 의해서 이루어진다.
상기 제어부(26)는, 키 초기화 과정인 경우, 첫 번째 클럭 사이클에서 제1 다중화기(20)가 제1 키 초기화 입력 데이터(KL)를 선택하고, 제2 다중화기(21)가 제1 초기화 상수(CK1)를 선택하고, 제3 다중화기(22)가 제2 초기화 상수(CK2)를 선택하여, 상기 제1 라운드 연산부(15)가 제1 키 초기화 입력 데이터(KL)와 제2 다중 화기(21)가 선택한 제1 초기화 상수(CK1)를 배타적 논리합 연산한 후, 제1 치환 연산과 확산 연산을 순차로 진행하고, 제2 XOR 기(16)가 제1 라운드 연산부(15)의 확산 연산 결과와 제2 키 초기화 입력 데이터(KR)를 배타적 논리합하여 제1 초기 키값(W1)을 생성하고, 상기 제2 라운드 연산부(17)가 상기 제1 초기 키값(W1)과 제3 다중화기(22)가 선택한 초기화 상수를 배타적 논리합 연산 후, 제2 치환 연산과 확산 연산을 순차로 수행하고, 상기 확산 연산 결과와 제1 키 초기화 입력 데이터(KL)를 제3 XOR기(19)가 배타적 논리합 연산하여 제2 초기 키값(W2)을 생성하고, 두번째 클럭 사이클에서, 제1 다중화기(20)가 상기 제3 XOR기(19)의 연산 결과인 제2 초기 키값(W2)을 선택하고, 제2 다중화기(21)가 제3 초기화 상수(CK3)를 선택하여, 제1 라운드 연산부(15)가 상기 제2 초기 키값(W2)과 제3 초기화 상수(CK3)를 배타적 논리합 연산한 후 제1 치환 연산과 확산 연산을 순차로 수행하고 제2 XOR 기(16)가 상기 확산 연산 결과를 배타적 논리합 연산하여 제3 초기 키값(W3)을 생성하도록 한다.
반대로, 상기 제어부(26)는 암호화 연산 과정인 경우, 첫번째 클럭 싸이클에서 제1 다중화기(20)가 입력 데이터를 선택하고, 제2 다중화기(21)가 홀수 라운드 키를 선택하고, 제3 다중화기(22)가 짝수 라운드 키를 선택하도록 하여, 제1 라운드 연산부(15)가 입력 데이터와 홀수 라운드키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부(17)가 상기 제1 라운드 연산부(15)의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산, 확산 연산을 순차로 수행한 후, 그 다음에는 1 클럭 싸이클마다 제1 다중화 기(20)가 제2 라운드 연산부(17)의 연산결과를 선택하고, 제2,3 다중화기(21,22)가 각각 차기 홀수, 짝수 라운드 키를 선택하도록 하여, 제1 라운드 연산부(15)가 제2 라운드 연산부(17)의 연산 결과와 홀수 라운드 키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부(17)가 상기 제1 라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산을 순차로 수행한 후, 마지막 라운드인지를 확인하여, 마지막 라운드가 아니면 확산 연산을 수행하는 과정을 반복하고, 마지막 라운드인 경우, 제1 XOR기(18)가 상기 제2 치환 연산 결과와 최종 라운드키를 배타적 논리합 연산하여 최종 암호화 데이터를 출력하도록 한다.
도 3은 도 2의 실시 예에 있어서, 4개의 128 비트 초기 키 값 W0, W1, W2, W3을 생성하는 키 초기화 과정을 도시한 흐름도이다.
도 3에서, R1, R2, R3, R4 는 각각 제1,2,3,4 레지스터(11~14)를 의미한다. 그리고, W1, W2, W3은 각각 제3레지스터(13) 내부에 제1~제3 초기 키값을 저장하는 레지스터를 의미한다.
블록 암호화 알고리즘 ARIA에서는, 초기화 키를 생성하기 입력 데이터로서, 128비트값인 제1,2 키 초기화 입력 데이터(KL, KR)가 존재하며, 상기 제1,2 키 초기화 입력 데이터(KL, KR)는 각각 마스터 키(MK)의 확장에 의하여 얻어진다. 예를 들어, 마스터 키값 MK가 128비트인 경우에는 제1 키 초기화 입력 데이터 KL은 MK, 제2 키 초기화 입력 데이터 KR은 0이다. 또한, 마스터 키값 MK가 192비트인 경우에 는 제1 키 초기화 입력 데이터 KL은 MK의 상위 128비트로 이루어지고, 제2 키 초기화 입력 데이터 KR은 MK의 나머지 하위 64비트로 상위 비트를 채우고, 그 나머지는 0으로 채운다. 또한, 마스터 키값 MK가 256비트인 경우에는 제1 키 초기화 입력 데이터 KL은 MK의 상위 128비트로 이루어지고, 제2 키 초기화 입력데이터 KR은 MK의 하위 128비트로 이루어진다.
이하, 도 3을 참조하여 본 발명에 의한 장치에 있어서의 키 초기화 과정을 설명한다.
키 초기화 과정이 수행되면, 첫번째 클럭 싸이클에서 제1 레지스터 R1에 KL을 저장하고, 제2 레지스터 R2에 CK1을 저장하고, 제3 레지스터 R3을 0으로 초기화하고, 제4 레지스터 R4에 CK2를 저장한다(S101).
그리고 상기 제1 레지스터 R1의 저장값 (여기서는 제1 키 초기화 입력데이터 KL)과, 제2 레지스터 R2의 저장값 (여기서는 제1 키 초기화 상수 CK1)에 대한 배타적 논리합 연산을 수행하고, 그 결과에 대한 제1 치환 연산을 수행하고, 그 결과에 대한 확산 연산을 수행한다(S102).
상기 단계(S102)의 확산 연산 결과값과 제2 키 구성부 KR에 대한 배타적 논리합 연산하여 그 결과 값을 제1 초기 키값으로서 제3 레지스터 R3의 W1에 저장한다(S103).
상기 단계(S103)의 W1 저장값과 제4 레지스터 R4의 저장값에 대한 배타적 논리합 연산을 수행하고, 그 결과를 다시 제2 치환 연산하고, 다시 그 결과에 대하여 확산 연산을 수행한다(S104).
상기 단계(S104)의 최종 결과 값을 제1 키 구성부 KL과 배타적 논리합 연산하고, 그 결과 값은 제3 레지스터 R3의 W2에 저장한다(S106).
상기 단계 S101에서 S106은 1 클럭 싸이클 동안 수행된다.
이어서, 두번째 클럭 싸이클에서 제1 레지스터 R1에는 W2를 저장하고, 제2 레지스터 R2에 키 초기화 상수중 CK3을 저장한다(S106).
그리고 상기 단계(S106)의 제1 레지스터 R1과 제2 레지스터 R2의 저장값들을 배타적 논리합 연산하고, 그 배타적 논리합 연산 결과에 대하여 제1 치환 연산을 수행하고, 그 결과에 대한 확산 연산을 수행한다(S107).
마지막으로, 상기 단계(S107)의 결과 값과 제3 레지스터 R3의 W1에 대한 배타적 논리합 연산을 수행하여 그 결과 값을 W3에 저장한다(S108).
상기에 의하여, 제3 레지스터 R3에는 제1, 2, 3 초기 키값 W1,W2,W3이 저장된다.
상술한 바에 의하면, 본 발명은 별도의 회로를 통하지 않고, 암호화 연산을 위한 라운드 연산부를 이용하여 키 초기화 과정을 수행함으로써, 키 초기화 과정에 필요한 회로를 제거하여 하드웨어의 면적을 줄일 수 있다. 더하여, 2 클럭 사이클 만에 제1 내지 제3 초기 키값( W1, W2, W3)을 생성할 수 있다.
도 4는 도 2에 보인 본 발명의 고속 아리아 블록 암호화 장치에 있어서, 키 초기화 과정에서 생성된 초기 키값을 이용하여 입력 데이터에 대한 암호화를 수행 하는 암호화 과정을 기술한 흐름도이다.
도 4에서, R1, R2, R4 는 앞서 설명한 바와 같이, 각각 제1,2,4 레지스터를 의미한다.
도 4를 참조하면, 암호화 과정에서는 첫 번째 클럭 사이클에서, 상기 제1 레지스터 R1에는 암호화(또는 복호화)할 입력 데이타를 저장하고, 제2 레지스터 R2에 홀수 라운드 키를 저장하고, 제4 레지스터 R4에 짝수 라운드키를 저장한다(S201).
상기 홀수 및 짝수 라운드 키는 상기 라운드 생성부(25)에서 앞서 설명한 키 초기화 과정에서 생성된 초기 키값 W1,W2,W3,W4를 조합하여 생성된다.
상기 단계(S201)의 제1 레지스터 R1의 저장값 및 제2 레지스터 R2의 저장값에 대하여 배타적 논리합 연산을 수행하고, 이어서 상기 배타적 논리합 연산 결과에 대한 제1 치환 연산을 수행하고, 상기 제1 치환 연산 결과에 대한 확산 연산을 수행한다(S202).
상기 단계(S202)의 결과값과 제4 레지스터 R4에 저장된 짝수 라운드 키와의 배타적 논리합 연산을 수행하고, 그 결과에 대한 제2 치환 연산을 수행한다(S203).
마지막 라운드가 아닌 경우에는, 상기 단계(S203)의 결과값에 대한 확산 연산을 수행한(S205) 후에, 제1 레지스터 R1에 상기 단계(S205)의 확산 연산 결과값을 저장하고, 제2 레지스터 R2와 제4 레지스터 R4에 각각 차기의 홀수 라운드 키와 짝수 라운드 키를 저장하고(S206), 상기 단계(S202)부터 반복한다.
상기 단계202~S206까지가 1 클럭 사이클내에서 모두 수행된다.
상기 단계(S202)에서 단계(S206)은 마지막 라운드 전까지 반복수행되다가 마 지막 라운드가 되면, 단계(S203)까지 수행한 후 단계(S204)에서 단계(S207)로 진행하여, 확산 연산을 수행하지 않고, 상기 단계(S203)의 제2 치환 연산 결과값을 상기 라운드 생성부(25)에서 제공된 최종 라운드키와 배타적 논리합 연산을 수행하여, 그 결과값을 아리아 블록 암호화 결과값으로 출력한다(S207).
도 5는 본 발명에 의한 고속 아리아 블록 암호화 장치에 있어서, 라운드 연산부(15,17)에 각각 구비되는 제1 치환부(152)와 제2 치환부(172)의 실시 예를 도시한 것이다.
상기 제1,2 치환부(152, 172)는 128비트 입력에 대하여 바이트(Byte) 단위로 대치박스의 결과값으로 치환하는 것으로서, 대치 박스는 S1, S2, S1 -1, S2 -1 의 4가지 종류로 구성되며, S1 -1, S2 -1 은 각각 S1, S2의 역치환 대치박스이다. 여기서, S1, S2, S1 -1, S2 -1 를 각각 제1 치환 대치박스, 제2 치환 대치박스, 제1 역치환 대치박스, 제2 역치환 대치박스라고 할 때, 상기 제1 치환부(152)는 제1 치환 대치박스, 제2 치환 대치박스, 제1 역치환 대치박스, 제2 역치환 대치박스 순으로 4번 반복 배치되어 이루어지며, 제2 치환부(172)는 제1 역치환 대치박스, 제2 역치환 대치박스, 제1 치환 대치박스, 제2 치환 대치박스 순으로 4번 반복 배치되어 이루어진다.
상기 제1 치환부(152)는 홀수 라운드 연산에서 사용되고, 제2 치환부(172)는 짝수 라운드 연산에서 사용된다.
도 6은 본 발명에 의한 고속 아리아 블록 암호화 장치에 있어서, 라운드 연산부(15,17)에 구비된 제1,2 확산부(153,173)의 일 실시 예를 도시한 것이다.
도 6을 참조하면, 상기 제1,2 확산부(153,173)는 16 바이트의 입력값 A에 대하여 16 바이트의 출력값 C를 연산한다.
상기 입력값 A는 각각 1바이트를 의미하는 A0 ~ A15로 구성된다. 이때 A0는 최상위 바이트를 의미하고, A15는 최하위 바이트를 의미한다. 출력값 C는 각각 1바이트를 의미하는 C0 ~ C15로 구성된다. C0는 최상위 바이트를 의미하고, C15는 최하위 바이트를 의미한다. B0, B1, B2, B3는 각각 1바이트의 중간 계산값을 의미한다.
도 6에 도시한 확산부의 연산 과정을 기술하면 다음과 같다.
B0 = A3 xor A4 xor A9 xor A14
C0 = B0 xor A6 xor A8 xor A13
C5 = B0 xor A1 xor A10 xor A15
C11 = B0 xor A2 xor A7 xor A12
C14 = B0 xor A0 xor A5 xor A11
B1 = A2 xor A5 xor A8 xor A15
C1 = B1 xor A7 xor A9 xor A12
C4 = B1 xor A0 xor A11 xor A14
C10 = B1 xor A3 xor A6 xor A13
C15 = B1 xor A1 xor A4 xor A10
B2 = A1 xor A6 xor A11 xor A12
C2 = B2 xor A4 xor A10 xor A15
C7 = B2 xor A3 xor A8 xor A13
C9 = B2 xor A0 xor A5 xor A14
C12 = B2 xor A2 xor A7 xor A9
B3 = A0 xor A7 xor A10 xor A13
C3 = B3 xor A5 xor A11 xor A14
C6 = B3 xor A2 xor A9 xor A12
C8 = B3 xor A1 xor A4 xor A15
C13 = B3 xor A3 xor A6 xor A8
상기와 같은 방법으로 확산부(153,173)를 구성하면, 4 바이트 XOR 기 20개로 구성이 가능하다. 이에 의하여, 종래의 7바이트 XOR기 16개로 구성할 때 보다 아리아 암복호화 연산 장치의 하드웨어 크기를 줄이는 장점이 있다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치 환, 변형 및 변경할 수 있다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
상술한 바와 같이, 본 발명에 의한 장치는 1 클럭에 2 라운드 연산을 수행함으로써 기존의 아리아 암복호화 장치에 비하여 더 작은 수의 클럭 사이클로서 아리아 암복호 연산을 수행할 수 있다는 장점이 있다.
또한, 본 발명에 의한 장치는, 아리아 블록 암호화 장치를 구현하는데 있어서, 키 초기화 과정의 연산을 위한 별도의 회로를 구비하지 않고, 라운드 연산회로를 이용함으로써, 아리아 암복호화 장치의 회로의 크기를 줄이고 하드웨어 사이즈를 줄일 수 있는 장점이 있다.
또한, 본 발명에 의한 아리아 암복호화 장치는 라운드 연산 회로의 확산 연산을 수행하는데 있어서, 종래보다 작은 수의 XOR기를 사용함으로써, 아리아 블록 암호화 장치의 회로 크기를 줄이는 장점이 있다.

Claims (11)

  1. 암호화/복호화 대상인 입력 데이터 또는 짝수 라운드 연산 결과와 홀수 라운드 키를 배타적 논리합 연산하고, 상기 배타적 논리합 연산 결과에 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제1 라운드 연산부;
    상기 제1라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산을 수행하고, 상기 배타적 논리합 연산 결과에 대한 치환 연산을 수행하고, 상기 치환 연산 결과에 대한 확산 연산을 수행하는 제2라운드 연산부;
    최종 라운드에서의 상기 제2라운드 연산부의 치환 연산 과정의 결과값과 최종 라운드 키에 대한 배타적 논리합 연산하여, 상기 배타적 논리합 연산 결과를 아리아 블록 암호화/복호화된 데이터로 출력하는 제1 XOR기; 및
    마스터 키로부터 얻어진 초기 키값들로부터 상기 제1,2 라운드 연산부의 연산에 필요한 라운드 키값을 생성하여 제공하는 라운드키 생성부를 포함하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  2. 제1항에 있어서,
    1 클럭 싸이클에 상기 제1,2 라운드 연산부의 연산이 수행되는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  3. 제1항에 있어서,
    상기 제1라운드 연산부의 결과값과 키 초기화 과정의 결과값 또는 제1 키 초기화 입력 데이터를 배타적 논리합 연산을 수행하는 제2 XOR기;
    상기 제2라운드 연산부의 결과값과 제2 키 초기화 입력 데이타와의 배타적 논리합 연산을 수행하는 제3 XOR기;
    입력데이터와 상기 제2 라운드 연산부의 결과값과 상기 제3 XOR기의 결과값 중에서 어느 하나를 선택하여 제1 라운드 연산부에 제공하는 제1 입력 선택부;
    초기화 상수와 상기 라운드 키 생성부에서 생성된 홀수 라운드 키 중에서 어느 하나를 선택하여 제1 라운드 연산부에 제공하는 제2 입력 선택부;
    초기화 상수와 상기 라운드 키 생성부에서 생성된 짝수 라운드 키 중에서 어느 하나를 선택하여 제2 라운드 연산부에 제공하는 제3 입력 선택부;
    상기 키 초기화 과정의 결과값과 제1 키 초기화 입력 데이터중에서 어느 하나를 선택하여 상기 제2 XOR기로 제공하는 제4 입력 선택부;
    상기 제1 라운드 연산부의 결과값과 상기 제2 XOR기의 연산 결과값 중에서 어느 하나를 선택하여 상기 제2 라운드 연산부로 제공하는 제5 입력 선택부; 및
    암호화 연산 과정인지 키 초기화 과정인지에 따라서 상기 제1 내지 제5 입력 선택부의 선택을 제어하는 제어부를 더 포함하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  4. 제3항에 있어서,
    상기 제1 입력 선택부에 의해 선택된 입력 데이타 또는 상기 제2 라운드 연 산부의 중간 연산 결과값을 저장하는 제1레지스터;
    상기 제2 입력 선택부에 의해 선택된 키 초기화 상수 또는 홀수 라운드 키를 저장하는 제2레지스터;
    키 초기화 과정 결과값인 초기 키값들을 저장하는 제3레지스터; 및
    상기 제3 입력 선택부에 의해 선택된 키 초기화 상수 또는 짝수 라운드 키를 저장하는 제4레지스터를 포함하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  5. 제3항에 있어서, 상기 제어부는
    키 초기화 과정인 경우, 첫번째 클럭 사이클에서 제1 입력선택부가 제1 키 초기화 입력 데이터를 선택하고, 제2 입력 선택부가 제1초기화 상수를 선택하고, 제3 입력 선택부가 제2 초기화 상수를 선택하여, 상기 제1 라운드 연산부가 제1 키 초기화 입력 데이터와 제2 입력 선택부가 선택한 제1 초기화상수를 배타적 논리합 연산한 후, 제1 치환 연산과 확산 연산을 순차로 진행하고, 제2 XOR 기가 제1 라운드 연산부의 확산 연산 결과와 제2 키 초기화 입력 데이터를 배타적 논리합하여 제1 초기 키값을 생성하고, 상기 제2 라운드 연산부가 상기 제1 초기 키값과 제3 입력 선택부가 선택한 초기화 상수를 배타적 논리합 연산 후, 제2 치환 연산과 확산 연산을 순차로 수행하고, 상기 확산 연산 결과와 제1 키 초기화 입력 데이터를 제3 XOR기가 배타적 논리합 연산하여 제2 초기 키값을 생성하고,
    두번째 클럭 사이클에서, 제1 입력 선택부가 상기 제3 XOR기의 연산 결과인 제2 초기 키값을 선택하고, 제2 입력 선택부가 제3 초기화 상수를 선택하여, 제1 라운드 연산부가 상기 제2 초기 키값과 제3 초기화 상수를 배타적 논리합 연산한 후 제1 치환 연산과 확산 연산을 순차로 수행하고 제2 XOR 기가 상기 확산 연산 결과를 배타적 논리합 연산하여 제3 초기 키값을 생성하도록 제어하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  6. 제3항에 있어서, 상기 제어부는
    라운드 연산 과정인 경우, 첫번째 클럭 싸이클에서 제1 입력 선택부가 입력 데이터를 선택하고, 제2 입력 선택부가 홀수 라운드 키를 선택하고, 제3 입력 선택부가 짝수 라운드 키를 선택하도록 하여, 제1 라운드 연산부가 입력 데이터와 홀수 라운드키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부가 상기 제1 라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산, 확산 연산을 순차로 수행한 후,
    1 클럭 싸이클마다 제1 입력 선택부가 제2 라운드 연산부의 연산결과를 선택하고, 제2,3 입력 선택부가 각각 차기 홀수,짝수 라운드 키를 선택하도록 하여, 제1 라운드 연산부가 제2 라운드 연산부의 연산 결과와 홀수 라운드키에 대한 배타적 논리합 연산, 제1 치환 연산, 확산 연산을 순차로 수행하고, 제2 라운드 연산부가 상기 제1 라운드 연산부의 결과값과 짝수 라운드 키에 대한 배타적 논리합 연산, 제2 치환 연산을 순차로 수행한 후, 마지막 라운드인지를 확인하여, 마지막 라운드가 아니면 확산 연산을 수행하는 과정을 반복하고, 마지막 라운드인 경우, 제 1 XOR기가 상기 제2 치환 연산 결과와 최종 라운드키를 배타적 논리합 연산하여 출력하도록 제어하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  7. 제4항에 있어서,
    상기 제1 라운드 연산부는
    상기 제1 레지스터의 저장값과, 상기 제2 레지스터의 저장값에 대한 배타적 논리합 연산을 수행하는 제4 XOR기;
    상기 배타적 논리합 연산 결과에 대하여 치환 연산하는 제1 치환부; 및
    상기 치환 연산 결과에 대하여 확산 연산을 수행하는 제1 확산부를 포함하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  8. 제4항에 있어서,
    상기 제2 라운드 연산부는
    상기 제5 입력 선택부의 출력값과 상기 제4 레지스터의 저장값에 대한 배타적 논리합 연산을 수행하는 제5 배타적 논리합 연산부;
    상기 배타적 논리합 연산에 대한 치환 연산을 수행하는 제2 치환부; 및
    상기 치환 연산 결과에 대한 확산 연산을 수행하는 제2 확산부를 포함하는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  9. 제7항 또는 제8항에 있어서,
    상기 제1,2 치환부는 2 종류의 치환 대치 박스들과, 상기 2 종류의 치환 대치 박스에 각각 대응하는 2 종류의 역치환 대치 박스들의 조합으로 구성되는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  10. 제9항에 있어서,
    상기 제1 치환부는, 128 비트의 입력에 대하여 바이트 단위로 결과값을 치환하는 제1,2 치환 대치 박스와, 제1,2 역치환 대치박스가, 교대로 배열되고,
    상기 제2 치환부는 상기 제1,2 치환 대치 박스와 제1,2 역치환 대치박스의 배열이 반대로 되어 있는 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
  11. 제7항 또는 제8항에 있어서,
    상기 제1,2 확산부는 16 바이트 A0 내지 A15로 이루어진 입력값에 대하여,
    A3,A4,A9,A14를 배타적 논리합 연산하는 제1 XOR 기와, 상기 제1 XOR 기의 연산결과, A6, A8, A13을 배타적 논리합 연산하는 제2 XOR 기와, 상기 제1 XOR 기의 연산 결과, A1, A10, A15를 배타적 논리합 연산하는 제3 XOR 기와, 상기 제1 XOR 기의 연산결과, A2, A7, A12를 배타적 논리합 연산하는 제4 XOR 기와,
    A2,A5,A8,A15를 배타적 논리합 연산하는 제5 XOR 기와, 상기 제5 XOR 기의 연산결과, A7, A9, A12를 배타적 논리합 연산하는 제6 XOR 기와, 상기 제5 XOR 기의 연산 결과, A0, A11, A14를 배타적 논리합 연산하는 제7 XOR 기와, 상기 제5 XOR 기의 연산결과, A1, A4, A10를 배타적 논리합 연산하는 제10 XOR 기와,
    A1,A6,A11,A12를 배타적 논리합 연산하는 제11 XOR 기와, 상기 제11 XOR 기의 연산결과, A4, A10, A15을 배타적 논리합 연산하는 제12 XOR 기와, 상기 제11 XOR 기의 연산 결과, A3, A8, A13를 배타적 논리합 연산하는 제13 XOR 기와, 상기 제11 XOR 기의 연산결과, A0, A5, A14를 배타적 논리합 연산하는 제14 XOR 기와, 상기 제11 XOR 기의 연산결과, A2, A7, A9를 배타적 논리합 연산하는 제15 XOR 기와,
    A0,A7,A10,A13를 배타적 논리합 연산하는 제16 XOR 기와, 상기 제16 XOR 기의 연산결과, A5, A11, A14을 배타적 논리합 연산하는 제17 XOR 기와, 상기 제16 XOR 기의 연산 결과, A2, A9, A12를 배타적 논리합 연산하는 제18 XOR 기와, 상기 제16 XOR 기의 연산결과, A1, A4, A15를 배타적 논리합 연산하는 제19 XOR 기와, 상기 제16 XOR 기의 연산결과, A3, A6, A8를 배타적 논리합 연산하는 제20 XOR 기로 이루어지고, 상기 제1 내지 제20 XOR 기의 출력값이 확산 연산 결과인 것을 특징으로 하는 고속 아리아 블록 암호화/복호화 장치.
KR1020060095008A 2006-09-28 2006-09-28 고속 아리아 블록 암호화/복호화 장치 KR100786391B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060095008A KR100786391B1 (ko) 2006-09-28 2006-09-28 고속 아리아 블록 암호화/복호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060095008A KR100786391B1 (ko) 2006-09-28 2006-09-28 고속 아리아 블록 암호화/복호화 장치

Publications (1)

Publication Number Publication Date
KR100786391B1 true KR100786391B1 (ko) 2007-12-17

Family

ID=39147229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060095008A KR100786391B1 (ko) 2006-09-28 2006-09-28 고속 아리아 블록 암호화/복호화 장치

Country Status (1)

Country Link
KR (1) KR100786391B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100960113B1 (ko) * 2008-09-19 2010-05-27 한국전자통신연구원 고속처리 가능한 아리아 암복호화 장치
KR100969961B1 (ko) * 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
KR101186335B1 (ko) 2008-12-15 2012-09-27 한국전자통신연구원 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.
KR20220071048A (ko) 2020-11-23 2022-05-31 부산대학교 산학협력단 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARIA 알고리즘 명세서, Version 1.0(2004.05)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969961B1 (ko) * 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
US8345865B2 (en) 2007-12-20 2013-01-01 Electronics And Telecommunications Research Institute Block cipher aria substitution apparatus and method
KR100960113B1 (ko) * 2008-09-19 2010-05-27 한국전자통신연구원 고속처리 가능한 아리아 암복호화 장치
US8509428B2 (en) 2008-09-19 2013-08-13 Electronics And Telecommunications Research Institute High-speed pipelined ARIA encryption apparatus
KR101186335B1 (ko) 2008-12-15 2012-09-27 한국전자통신연구원 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.
KR20220071048A (ko) 2020-11-23 2022-05-31 부산대학교 산학협력단 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법
US11392706B2 (en) 2020-11-23 2022-07-19 Pusan National University Industry—University Cooperation Foundation Hardware module and its control method with a 32-bit instruction extension for processor supporting ARIA encryption and decryption

Similar Documents

Publication Publication Date Title
JP4774509B2 (ja) 擬似乱数発生システム
US20090279688A1 (en) Closed galois field cryptographic system
US20090279690A1 (en) Cryptographic system including a mixed radix number generator with chosen statistical artifacts
KR100960113B1 (ko) 고속처리 가능한 아리아 암복호화 장치
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP2007094377A (ja) 暗号処理装置
KR20010111784A (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JP6552184B2 (ja) 情報処理装置およびその方法
KR100786391B1 (ko) 고속 아리아 블록 암호화/복호화 장치
KR100779076B1 (ko) 아리아 암/복호화 장치, 그 방법 및 이를 위한 초기 키생성 방법
JP6292195B2 (ja) 情報処理装置及び情報処理方法
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
EP1875405A2 (en) Improved cipher system
US20100228992A1 (en) Cryptographic method and apparatus for enhancing computation performance of a central processing unit
JP5207153B2 (ja) 擬似乱数発生システム
ES2293665T3 (es) Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.
US20230222229A1 (en) Shapeshift data encryption methods and systems
KR102393958B1 (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
KR20140079529A (ko) 아리아 암복호화 장치 및 방법
JP4990843B2 (ja) 暗号演算装置、その方法、及びプログラム
Anashin et al. ABC–a New Fast Flexible Stream Cipher Specification, Version 3
Elganzoury et al. Enhanced stream cipher algorithm using consecutive Nonlinear functions
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
KR20000066440A (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
CN114826562A (zh) 一种数据加密方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 19