KR101508495B1 - 아리아 암호화 장치 및 방법 - Google Patents

아리아 암호화 장치 및 방법 Download PDF

Info

Publication number
KR101508495B1
KR101508495B1 KR20130136214A KR20130136214A KR101508495B1 KR 101508495 B1 KR101508495 B1 KR 101508495B1 KR 20130136214 A KR20130136214 A KR 20130136214A KR 20130136214 A KR20130136214 A KR 20130136214A KR 101508495 B1 KR101508495 B1 KR 101508495B1
Authority
KR
South Korea
Prior art keywords
round
key
data
clock
box
Prior art date
Application number
KR20130136214A
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 KR20130136214A priority Critical patent/KR101508495B1/ko
Application granted granted Critical
Publication of KR101508495B1 publication Critical patent/KR101508495B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 아리아 암호화 장치 및 방법에 관한 것으로, 보다 구체적으로는 암호화하고자 하는 데이터를 입력받는 데이터입력부; 상기 데이터의 암호화 시 사용되는 라운드 키를 생성하는 키 스케줄링부; 서로 다른 속도를 갖는 복수 개의 클럭을 생성하는 클럭생성부; 및 복수 개의 에스박스(S-box)를 포함하며, 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 상기 에스박스로 인가되고, 상기 라운드 키에 기초하여 상기 데이터에 대한 각 라운드 연산을 수행하는 암호연산부;를 포함한다.
이러한 구성에 의해, 본 발명의 아리아 암호화 장치 및 방법은 기준 클럭보다 빠른 클럭을 생성하고, 생성된 클럭을 싱글 포트 블록램에 인가함으로써 싱글 포트 블록램의 처리 속도를 현저히 향상시킬 수 있는 효과가 있다.

Description

아리아 암호화 장치 및 방법{ARIA encryption apparatus and method}
본 발명은 아리아 암호화 장치 및 방법에 관한 것으로, 특히 아리아 회로의 구현 면적을 감소시키면서, 처리 속도를 향상시킬 수 있는 아리아 암호화 장치 및 방법에 관한 것이다.
최근 들어, 인터넷을 기반으로 하는 사회, 경제적 활동이 늘어가면서 전자거래의 안전성과 신뢰성, 사용자 프라이버시 보호에 관한 수요가 급증하고 있다. 이에 따라, 송수신 데이터의 암호화에 대한 기술이 활발히 연구되고 있는 추세이다. 그 중에서도 아리아(ARIA) 알고리즘은 국가 표준 128 비트 블록 암호화 알고리즘으로서, 학계(Academy), 연구소(Research), 정부기관(Institute)의 첫 글자를 딴 것으로, 하드웨어의 효율성을 향상하기 위해 최적화된 암호화 방법이다.
이러한 아리아 알고리즘을 하드웨어로 구현하기 위해 상용되는 싱글 포트 블록램은 클럭에 의해 동기화되므로, 블록램을 사용하지 않는 구현 방법에 비하여 처리 속도가 현저히 느리다는 문제점이 발생했다.
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 기준 클럭보다 빠른 별도의 클럭을 생성하여 싱글 포트 블록램에 인가함으로써, 싱글 포트 블록램의 처리속도를 현저히 향상시킬 수 있는 아리아 암호화 장치 및 방법을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 아리아 암호화 장치는 암호화하고자 하는 데이터를 입력받는 데이터입력부; 상기 데이터의 암호화 시 사용되는 라운드 키를 생성하는 키 스케줄링부; 서로 다른 속도를 갖는 복수 개의 클럭을 생성하는 클럭생성부; 및 복수 개의 에스박스(S-box)를 포함하며, 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 상기 에스박스로 인가되고, 상기 라운드 키에 기초하여 상기 데이터에 대한 각 라운드 연산을 수행하는 암호연산부; 를 포함한다.
특히, 마스터 키를 입력받고, 입력받은 마스터 키에 대하여 라운드 함수의 연산을 통해 복수 개의 라운드 키를 생성하는 키 스케줄링부를 포함할 수 있다.
특히, 상기 마스터 키에 대하여 비트 순환이동 및 XOR연산을 수행하여 복수 개의 라운드 키를 생성하는 키 스케줄링부를 포함할 수 있다.
보다 바람직하게는 기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성하는 클럭생성부를 포함할 수 있다.
보다 바람직하게는 상기 데이터의 라운드 연산을 수행하는 복수 개의 에스박스(S-box); 상기 에스박스의 입출력단에 형성되어, 수행되는 각 라운드에 따라 상기 에스박스로 입력 또는 출력되는 데이터의 입출력 순서를 변경하는 먹스(MUX); 상기 에스박스로부터 출력된 데이터를 저장하는 레지스터; 및 상기 레지스터에 기설정된 비트 수 만큼 데이터가 저장되는 경우, 저장된 데이터에 대한 행렬 변환을 수행하는 확산계층부; 를 포함하는 암호연산부를 포함할 수 있다.
특히, 복수 개의 싱글 포트 블록램을 포함하며, 라운드 함수의 치환 계층(Substitution Layer)을 구성하는 에스박스를 포함할 수 있다.
특히, 상기 에스박스로부터 출력된 데이터를 기준 클럭의 상승에지 또는 하강에지별로 나누어 저장하는 레지스터를 포함할 수 있다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 아리아 암호화 방법은 데이터입력부가 암호화하고자 하는 데이터를 입력받는 단계; 키 스케줄링부가 상기 데이터의 암호화 시 사용되는 라운드 키를 생성하는 단계; 클럭생성부가 서로 다른 속도를 갖는 복수 개의 클럭을 생성하는 단계; 및 암호연산부가 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 내부의 에스박스로 인가되어, 상기 라운드 키에 기초하여 상기 데이터에 대한 각 라운드 연산을 수행하는 단계;를 포함할 수 있다.
보다 바람직하게는 마스터 키를 입력받고, 입력받은 마스터 키에 대하여 라운드 함수를 통해 비트 순환이동 및 XOR 연산을 수행하여 복수 개의 라운드 키를 생성하는 상기 키 스케줄링부가 라운드 키를 생성하는 단계를 포함할 수 있다.
보다 바람직하게는 기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성하는 상기 클럭생성부가 복수 개의 클럭을 생성하는 단계를 포함할 수 있다.
본 발명의 아리아 암호화 장치 및 방법은 기준 클럭보다 빠른 클럭을 생성하고, 생성된 클럭을 싱글 포트 블록램에 인가함으로써 싱글 포트 블록램의 처리 속도를 현저히 향상시킬 수 있는 효과가 있다.
또한 본 발명의 아리아 암호화 장치 및 방법은 회로 상태를 하드웨어로 구현 시 사용면적을 감소시킬 수 있는 효과가 있다.
더불어 본 발명의 아리아 암호화 장치 및 방법은 에스박스의 입출력단에 먹스(Mux)를 구비하여 데이터의 입출력 순서를 변경하여 사용되는 싱글 포트 블록램의 수를 최소화함으로써, 아리아 암호화의 처리속도를 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 아리아 암호화 장치의 블록도이다.
도 2는 아리아 암호화 방법의 개략도이다.
도 3은 확산 계층에서 사용되는 행렬을 나타낸 변환을 나타낸 도면이다.
도 4는 마스터 키를 이용하여 라운드 키 생성을 위한 키요소를 생성하는 과정을 나타낸 개략도이다.
도 5는 라운드 키 생성을 위한 키요소를 이용한 라운드 키 생성과정을 나타낸 개략도이다.
도 6은 에스박스의 입출력단을 나타낸 블록도이다.
이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다.
이하, 도 1을 참조하여, 본 발명의 일실시 예에 따른 본 발명의 아리아 암호화 장치에 대하여 살펴보도록 한다.
본 발명의 아리아 암호화 장치(100)는 데이터입력부(110), 키 스케줄링부(120), 클럭생성부(130) 및 암호연산부(140)를 포함한다.
데이터입력부(110)는 암호화하고자 하는 평문 데이터 128 비트를 32 비트씩 4번에 나누어 입력받는다.
키 스케줄링부(120)는 상기 데이터의 암호화 시 사용되는 라운드 키를 생성한다. 이러한 키 스케줄링부(120)는 마스터 키를 입력받고, 입력받은 마스터 키에 대하여 세 번의 라운드 함수의 연산을 통해 복수 개의 라운드 키를 생성한다. 이때, 상기 라운드 함수는 비트 순환이동 및 XOR연산을 수행할 수 있다. 예를 들어, 상기 키 스케줄링부(120)가 128 비트의 마스터 키를 32 비트씩 4번에 나누어 입력받고, 이와 같이 입력받은 마스터 키에 대하여 세 번의 라운드 함수 연산을 통해 세 개의 라운드 키를 생성할 수 있다.
클럭생성부(130)는 서로 다른 속도를 갖는 복수 개의 클럭을 생성한다. 이러한 클럭생성부(130)는 기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성할 수 있다. 특히, 이때 상기 제2 클럭은 상기 기준 클럭에 비하여 두 배의 속도를 가질 수 있다.
암호연산부(140)는 복수 개의 에스박스(S-box)를 포함하며, 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 제2 클럭이 상기 에스박스로 인가되고, 상기 키 스케줄링부(120)에서 생성된 상기 라운드 키에 기초하여 상기 데이터입력부(110)를 통해 입력받은 상기 평문 데이터에 대한 각 라운드 연산을 수행한다. 암호연산부(140)는 에스박스(142), 먹스(144), 레지스터(146) 및 확산계층부(148)를 포함한다.
에스박스(142)는 상기 평문 데이터의 라운드 연산을 수행하는데, 복수 개의 싱글 포트 블록램을 포함하며, 라운드 함수의 치환 계층(Substitution Layer)을 구성할 수 있다. 특히, 상기 에스박스(142)는 서로 다른 네 종류(
Figure 112013102378807-pat00001
,
Figure 112013102378807-pat00002
,
Figure 112013102378807-pat00003
,
Figure 112013102378807-pat00004
)가 사용될 수 있다. 이때, 상기
Figure 112013102378807-pat00005
,
Figure 112013102378807-pat00006
은 각각
Figure 112013102378807-pat00007
,
Figure 112013102378807-pat00008
의 역 치환연산이다.
먹스(144, MUX)는 상기 에스박스(142)의 입출력단에 형성되어, 수행되는 각 라운드에 따라 상기 에스박스(142)로 입력 또는 출력되는 데이터의 입출력 순서를 변경한다.
레지스터(146)는 상기 에스박스(142)의 후단에 복수 개가 형성되어, 상기 에스박스(142)로부터 출력된 데이터를 저장한다. 이러한 레지스터(146)는 상기 에스박스로부터 출력된 데이터를 기준 클럭의 상승에지 또는 하강에지별로 나누어 저장할 수 있다. 예를 들어, 첫 번째 에스박스(S1)로부터 출력된 데이터가 기준 클럭의 상승에지일 때 첫 번째 레지스터(R1)에 저장되고, 두 번째 에스박스(S2)의 출력 데이터는 기준 클럭의 하강 에지일 때 두 번째 레지스터(R2)에 저장된다. 이어서, 세 번째 에스박스(IS1)의 출력 데이터는 첫 번째 레지스터(R1)에 저장된 데이터를 제어부(150)에 의해 세 번째 레지스터(R3)에 옮겨 저장된 후, 첫 번째 레지스터(R1)에 저장된다. 또한 네 번째 에스박스(IS2)의 출력 데이터가 제어부(150)에 의해 네 번째 레지스터(R4)에 옮겨 저장된 후, 두 번째 레지스터(R2)에 저장된다.
확산계층부(148)는 상기 레지스터에 기설정된 비트 수 만큼 데이터가 저장되는 경우, 저장된 데이터에 대한 행렬 변환을 수행하고, 변환된 데이터를 출력한다.
본 발명의 다른 실시 예에 따른 아리아 암호화 방법에 대하여 자세히 살펴보도록 한다.
먼저, 데이터입력부가 암호화하고자 하는 평문 데이터를 128 비트를 32비트씩 4번에 나누어 입력받는다.
키 스케줄링부가 상기 데이터의 암호화 시 사용되는 라운드 키를 생성한다. 이때, 키 스케줄링부가 128 비트의 마스터 키를 32 비트씩 4번에 나누어 입력받고, 입력받은 마스터 키에 대하여 라운드 함수를 통해 비트 순환이동 및 XOR 연산을 수행하여 복수 개의 라운드 키를 생성할 수 있다.
클럭생성부가 서로 다른 속도를 갖는 복수 개의 클럭을 생성하는데, 상기 클럭생성부로 입력되는 기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성할 수 있다. 특히, 상기 제2 클럭은 기준 클럭에 비하여 두 배의 빠른 속도를 가질 수 있다.
암호연산부가 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 내부의 에스박스로 인가되고, 상기 제2 클럭에 응답하여 상기 라운드 키에 기초하여 입력받은 평문 데이터에 대한 각 라운드 연산을 수행한다.
이하, 도 2를 참조하여 아리아 암호화 방법에 대하여 보다 자세히 살펴보도록 한다.
도 2는 아리아 암호화 방법의 개략도이다.
본 발명에 따른 아리아 암호화 방법(ARIA)은 ISPN 구조의 128비트 블록 암호 알고리즘으로서, 128, 192, 256 비트의 세 가지 길이를 갖는 마스터 키를 선택적으로 사용할 수 있으며, 이에 따라 라운드 수도 12, 14, 16라운드로 구성될 수 있다. 이러한 아리아 암호화 방법은 유한체 안에서의 곱셈 연산을 사용한 치환과 확산 및 라운드키를 더하는 연산방법으로 이루어진다. 본 발명에서는 128비트의 아리아 암호화 방법에 대하여 서술하기로 한다.
도 2에 도시된 바와 같이, 아리아 암호화 방법은 암호화하고자 하는 128 비트의 평문 데이터에 대하여 각 라운드 별 해당하는 라운드 키를 이용하여 복수 회의 홀수 라운드 함수(Fo), 짝수 라운드 함수(Fe) 및 최종 라운드 함수(Fl)를 연산한다. 즉, 암호연산부가 에스박스를 통해 입력받은 평문 데이터와,
키 스케줄링부로부터 입력된 128 비트의 라운드 키(ek1, ek2, … ekn, ekn +1) 간에 배타적 논리합 연산인 XOR 연산을 수행하고, 이후 확산계층부에서 행렬 곱 연산을 통해 변환을 수행한 후 결과값을 출력한다.
이때, 사용되는 에스박스는 입력값에 대응되는 내부 상태값을 출력해주는 비선형 대치 연산인 치환 계층(Substitution Layer)으로 이루어진다. 특히, 본 발명에서는
Figure 112013102378807-pat00009
,
Figure 112013102378807-pat00010
,
Figure 112013102378807-pat00011
,
Figure 112013102378807-pat00012
와 같이 서로 다른 네 종류의 에스박스가 존재하며, 이때, 상기
Figure 112013102378807-pat00013
,
Figure 112013102378807-pat00014
는 각각
Figure 112013102378807-pat00015
,
Figure 112013102378807-pat00016
의 역 치환 연산을 나타낸다.
또한 암호연산부의 확산계층부(Diffusion Layer)는 16개의 현재 상태값들을 행렬의 곱 연산을 통해 변환한다. 이러한 확산계층부는 대합(involution) 특성 (
Figure 112013102378807-pat00017
)을 만족하는
Figure 112013102378807-pat00018
이진 행렬
Figure 112013102378807-pat00019
를 사용한다.
도 3은 확산 계층에서 사용되는 행렬을 나타낸 변환을 나타낸 도면이다.
도 3에 도시된 바와 같이, 확산 함수의 입력값을
Figure 112013102378807-pat00020
라 하고, 출력값을
Figure 112013102378807-pat00021
라 하면, 상기 이진행렬
Figure 112013102378807-pat00022
가 고정이므로
Figure 112013102378807-pat00023
가 어떤 값이 입력되더라도
Figure 112013102378807-pat00024
을 구성하는 연산은 미리 설정되어 있으며, 설정에 의해 연산을 구성해 놓고 입력된 바이트들 간에 XOR연산을 수행하도록 한다.
이하에서는 도 4 내지 도 5를 참조하여 라운드 키 생성과정에 대하여 자세히 살펴보도록 한다.
도 4는 마스터 키를 이용하여 라운드 키 생성을 위한 키요소를 생성하는 과정을 나타낸 개략도이다.
도 4에 도시된 바와 같이, 키 스케줄링부로 입력되는 마스터 키의 길이는 128, 192, 256 비트가 될 수 있으며, 입력된 마스터키를 128 비트씩 나누어
Figure 112013102378807-pat00025
,
Figure 112013102378807-pat00026
라 정의하며, 만약 상기
Figure 112013102378807-pat00027
의 부족한 비트는 0 으로 패딩한다.
예를 들어, 128 비트와 192 비트의 마스터 키가 입력된 경우에는 입력된 마스터 키에 대하여
Figure 112013102378807-pat00028
은 128 비트가 패딩되고,
Figure 112013102378807-pat00029
은 0 또는 64 비트씩 패딩하여 생성된다. 이와 같이, 생성한
Figure 112013102378807-pat00030
,
Figure 112013102378807-pat00031
를 이용하여 하기의 수학식 1에 의해 128 비트의 라운드 키 생성을 위한 키 요소
Figure 112013102378807-pat00032
,
Figure 112013102378807-pat00033
,
Figure 112013102378807-pat00034
,
Figure 112013102378807-pat00035
를 각각 생성한다.
[수학식 1]
Figure 112013102378807-pat00036
Figure 112013102378807-pat00037
Figure 112013102378807-pat00038
Figure 112013102378807-pat00039
도 5는 라운드 키 생성을 위한 키 요소를 이용한 라운드 키 생성과정을 나타낸 개략도이다.
도 5에 도시된 바와 같이, 라운드 키 생성을 위해 생성한 키 요소에 대하여 각 라운드에 따라 비트 순환이동과 XOR연산을 수행하여 각각의 라운드 키(ek1, ek17)를 생성한다.
도 6은 에스박스의 입출력단을 나타낸 블록도이다.
도 6에 도시된 바와 같이, 상기 에스박스로 처음 입력되는 데이터는 32비트 단위로 이루어지며 한 라운드의 수행 결과와 처음 입력되는 데이터 중 하나의 데이터를 선택하여 라운드를 수행한다. 즉, 먹스는 맨 처음 마스터키 128비트를 32비트씩 4번에 나누어 입력받은 뒤 라운드를 3 회 수행한다. 이후, 라운드 키 생성을 위한 키요소
Figure 112013102378807-pat00040
~
Figure 112013102378807-pat00041
가 생성되면 평문 데이터 128비트를 32비트씩 4번에 나누어 입력 받는다. 입력받은 32비트를 8비트씩 나누어 각각의 S-박스의 입력으로 인가한다.
특히, 본 발명에 따른 아리아 암호화 방법은
Figure 112013102378807-pat00042
,
Figure 112013102378807-pat00043
,
Figure 112013102378807-pat00044
,
Figure 112013102378807-pat00045
와 같은 4가지 종류의 에스박스가 사용된다. 따라서, 싱글포트 블록램을 이용하여 아리아 암호화 방법을 구현할 경우에는 4개의 S박스를 사용한다. 이에 따라, 각 라운드 중 홀수 라운드에는
Figure 112013102378807-pat00046
,
Figure 112013102378807-pat00047
,
Figure 112013102378807-pat00048
,
Figure 112013102378807-pat00049
,
Figure 112013102378807-pat00050
,
Figure 112013102378807-pat00051
,
Figure 112013102378807-pat00052
,
Figure 112013102378807-pat00053
,
Figure 112013102378807-pat00054
,
Figure 112013102378807-pat00055
,
Figure 112013102378807-pat00056
,
Figure 112013102378807-pat00057
,
Figure 112013102378807-pat00058
,
Figure 112013102378807-pat00059
,
Figure 112013102378807-pat00060
,
Figure 112013102378807-pat00061
순서로 에스박스가 배열되고, 짝수라운드에는
Figure 112013102378807-pat00062
,
Figure 112013102378807-pat00063
,
Figure 112013102378807-pat00064
,
Figure 112013102378807-pat00065
,
Figure 112013102378807-pat00066
,
Figure 112013102378807-pat00067
,
Figure 112013102378807-pat00068
,
Figure 112013102378807-pat00069
,
Figure 112013102378807-pat00070
,
Figure 112013102378807-pat00071
,
Figure 112013102378807-pat00072
,
Figure 112013102378807-pat00073
,
Figure 112013102378807-pat00074
,
Figure 112013102378807-pat00075
,
Figure 112013102378807-pat00076
,
Figure 112013102378807-pat00077
순서로 에스박스가 배열된다.
상술한 바와 같이, 에스박스의 입출력단에 먹스를 형성하여 수행되는 각 라운드별 데이터의 입출력의 순서를 변경시켜, 4개의 에스박스만으로 2개의 치환계층을 표현함으로써, 최소한의 에스박스를 이용하여 아리아 암호화 방법을 구현할 수 있다.
또한 본 발명을 실제로 구현하기 위하여 Xilinx사에서 제공하는 ISE_v.14.1툴로 프로그래밍 및 컴파일을 하고 시뮬레이션을 수행하였다. 그 결과, 4개의 싱글포트 블록램을 이용한 본 발명의 회로 구현 면적은 시뮬레이션 결과 1311 슬라이스를 가지며, 처리량은 약 180 Mbps로서, 종래의 결과들보다 싱글 포트 블록램을 가능한 적게 사용할 뿐만 아니라, 사용면적 또한 감소시킨 것을 알 수 있다. 특히, 한 라운드를 두 클럭에 동작시켜 전체 24클럭을 사용하여 본 발명의 성능 실험을 진행하였는데, 그 결과, 하드웨어의 사용면적이 종래기술에 비하여 13 % 축소되었고, 처리속도는 종래기술에 비하여 약 30배 향상된 것을 알 수 있었다.
또한, 이러한 아리아 암호화 장치 및 방법은 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에 저장될 수 있다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명의 아리아 암호화 장치 및 방법은 기준 클럭보다 빠른 클럭을 생성하고, 생성된 클럭을 싱글 포트 블록램에 인가함으로써 싱글 포트 블록램의 처리 속도를 현저히 향상시킬 수 있는 효과가 있다.
또한 본 발명의 아리아 암호화 장치 및 방법은 회로 상태를 하드웨어로 구현 시 사용면적을 감소시킬 수 있는 효과가 있다.
더불어 본 발명의 아리아 암호화 장치 및 방법은 에스박스의 입출력단에 먹스(Mux)를 구비하여 데이터의 입출력 순서를 변경하여 사용되는 싱글 포트 블록램의 수를 최소화함으로써, 아리아 암호화의 처리속도를 향상시킬 수 있는 효과가 있다.
상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.
110: 데이터입력부 120: 키 스케줄링부
130: 클럭생성부 140: 암호연산부
150: 제어부

Claims (11)

  1. 암호화하고자 하는 데이터를 입력받는 데이터입력부;
    상기 데이터의 암호화 시 사용되는 라운드 키를 생성하는 키 스케줄링부;
    서로 다른 속도를 갖는 복수 개의 클럭을 생성하는 클럭생성부; 및
    복수 개의 에스박스(S-box)를 포함하며, 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 상기 에스박스로 인가되고, 상기 라운드 키에 기초하여 상기 데이터에 대한 각 라운드 연산을 수행하는 암호연산부;
    를 포함하되,
    상기 키 스케줄링부는
    마스터 키를 입력받고, 입력받은 마스터 키에 대하여 라운드 함수의 연산을 통해 복수 개의 라운드 키를 생성하는 것을 특징으로 하는 아리아 암호화 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 키 스케줄링부는
    상기 마스터 키에 대하여 비트 순환이동 및 XOR연산을 수행하여 복수 개의 라운드 키를 생성하는 아리아 암호화 장치.
  4. 제1항에 있어서,
    상기 클럭생성부는
    기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성하는 것을 특징으로 하는 아리아 암호화 장치.
  5. 제1항에 있어서,
    상기 암호연산부는
    상기 데이터의 라운드 연산을 수행하는 복수 개의 에스박스(S-box);
    상기 에스박스의 입출력단에 형성되어, 수행되는 각 라운드에 따라 상기 에스박스로 입력 또는 출력되는 데이터의 입출력 순서를 변경하는 먹스(MUX);
    상기 에스박스로부터 출력된 데이터를 저장하는 레지스터; 및
    상기 레지스터에 기설정된 비트 수 만큼 데이터가 저장되는 경우, 저장된 데이터에 대한 행렬 변환을 수행하는 확산계층부;
    를 포함하는 것을 특징으로 하는 아리아 암호화 장치.
  6. 제4항에 있어서,
    상기 에스박스는
    복수 개의 싱글 포트 블록램을 포함하며, 라운드 함수의 치환 계층(Substitution Layer)을 구성하는 것을 특징으로 하는 아리아 암호화 장치.
  7. 제5항에 있어서,
    상기 레지스터는
    상기 에스박스로부터 출력된 데이터를 기준 클럭의 상승에지 또는 하강에지별로 나누어 저장하는 것을 특징으로 하는 아리아 암호화 장치.
  8. 데이터입력부가 암호화하고자 하는 데이터를 입력받는 단계;
    키 스케줄링부가 상기 데이터의 암호화 시 사용되는 라운드 키를 생성하는 단계;
    클럭생성부가 서로 다른 속도를 갖는 복수 개의 클럭을 생성하는 단계; 및
    암호연산부가 상기 복수 개의 클럭 중 기준 클럭보다 빠른 속도를 갖는 클럭이 내부의 에스박스로 인가되어, 상기 라운드 키에 기초하여 상기 데이터에 대한 각 라운드 연산을 수행하는 단계;
    를 포함하되,
    상기 키 스케줄링부가 라운드 키를 생성하는 단계는
    마스터 키를 입력받고, 입력받은 마스터 키에 대하여 라운드 함수를 통해 비트 순환이동 및 XOR 연산을 수행하여 복수 개의 라운드 키를 생성하는 것을 특징으로 하는 아리아 암호화 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 클럭생성부가 복수 개의 클럭을 생성하는 단계는
    기준 클럭과 동일한 속도를 갖는 제1 클럭 및 상기 기준 클럭의 속도 보다 빠른 속도를 갖는 제2 클럭을 각각 생성하는 것을 특징으로 하는 아리아 암호화 방법.
  11. 제8항 또는 제10항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
KR20130136214A 2013-11-11 2013-11-11 아리아 암호화 장치 및 방법 KR101508495B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130136214A KR101508495B1 (ko) 2013-11-11 2013-11-11 아리아 암호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130136214A KR101508495B1 (ko) 2013-11-11 2013-11-11 아리아 암호화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101508495B1 true KR101508495B1 (ko) 2015-04-07

Family

ID=53032392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130136214A KR101508495B1 (ko) 2013-11-11 2013-11-11 아리아 암호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101508495B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010110162A (ko) * 2000-05-31 2001-12-12 박종섭 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR20070021883A (ko) * 2005-08-19 2007-02-23 한국전자통신연구원 Aria 암호 모듈 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010110162A (ko) * 2000-05-31 2001-12-12 박종섭 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR20070021883A (ko) * 2005-08-19 2007-02-23 한국전자통신연구원 Aria 암호 모듈 및 그 방법

Similar Documents

Publication Publication Date Title
Kowsalya et al. Low Area PRESENT Cryptography in FPGA Using TRNGPRNG Key Generation
Bagheri et al. New differential fault analysis on PRESENT
Chen et al. High performance data encryption with AES implementation on FPGA
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
Shahverdi et al. Lightweight side channel resistance: threshold implementations of S imon
James et al. An implementation of modified lightweight advanced encryption standard in FPGA
Nalawade et al. Design and implementation of blowfish algorithm using reconfigurable platform
Oukili et al. Hardware implementation of AES algorithm with logic S-box
Shah et al. FPGA implementation of chaotic based AES image encryption algorithm
Priya et al. FPGA implementation of efficient AES encryption
Kaur et al. FPGA implementation of efficient hardware for the advanced encryption standard
Singha et al. Implementation of AES using composite field arithmetic for IoT applications
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Buell Modern symmetric ciphers—Des and Aes
Dao et al. An ASIC implementation of low area AES encryption core for wireless networks
Barrera et al. A fast implementation of the Rijndael substitution box for cryptographic AES
Oukili et al. High throughput FPGA implementation of Advanced Encryption Standard algorithm
KR101508495B1 (ko) 아리아 암호화 장치 및 방법
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
Saravanan et al. Theoretical survey on secure hash functions and issues
Daoud et al. High-level synthesis optimization of aes-128/192/256 encryption algorithms
Kahri et al. An FPGA implementation and comparison of the SHA-256 and Blake-256
CN110071927B (zh) 一种信息加密方法、***及相关组件
Parikibandla et al. Low area field‐programmable gate array implementation of PRESENT image encryption with key rotation and substitution

Legal Events

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

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190211

Year of fee payment: 5