KR100969961B1 - 블록 암호 아리아의 치환 연산 장치 및 방법 - Google Patents

블록 암호 아리아의 치환 연산 장치 및 방법 Download PDF

Info

Publication number
KR100969961B1
KR100969961B1 KR1020070134064A KR20070134064A KR100969961B1 KR 100969961 B1 KR100969961 B1 KR 100969961B1 KR 1020070134064 A KR1020070134064 A KR 1020070134064A KR 20070134064 A KR20070134064 A KR 20070134064A KR 100969961 B1 KR100969961 B1 KR 100969961B1
Authority
KR
South Korea
Prior art keywords
inverse
unit
sbox
affine
value
Prior art date
Application number
KR1020070134064A
Other languages
English (en)
Other versions
KR20090066503A (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 KR1020070134064A priority Critical patent/KR100969961B1/ko
Priority to US12/176,649 priority patent/US8345865B2/en
Publication of KR20090066503A publication Critical patent/KR20090066503A/ko
Application granted granted Critical
Publication of KR100969961B1 publication Critical patent/KR100969961B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 블록암호 아리아의 치환연산 장치 및 그 방법에 관한 것이다. 즉, 본 발명에서는 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어 크기를 줄이며, 파이프라인 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하도록 한다.
아리아, 블록, 암호, 치환, 유한체, 아핀변환

Description

블록 암호 아리아의 치환 연산 장치 및 방법{SUBSTITUTION APPARATUS OF BLOCK CODE ARIA AND METHOD THEREOF}
본 발명은 아리아(ARIA) 블록 암복호화 장치에 관한 것으로, 보다 상세하게는 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어(hardware) 크기를 줄이며, 파이프 라인(pipe line) 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하도록 하는 블록암호 아리아의 치환연산 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-021-01, 과제명: 개인정보 DB를 위한 통합형 보안 기술 개발].
아리아 암복호 알고리즘은 국가 보안 기술 연구소(NSRI)에서 개발된 민관 겸용 블록 대칭키 암호 알고리즘이다. 아리아 알고리즘의 라운드(round) 수 및 키(key) 크기는 키가 128비트(bit) 일때는, 12라운드, 키가 192비트 일때는 14라운 드, 키가 256비트 일 때는 16라운드를 사용하도록 권고하고 있다.
아리아 알고리즘은 라운드 연산에 의하여 암복호화 연산을 수행하며, 각 라운드 연산은 치환연산(Substitution), 확산연산(Diffusion)으로 이루어진다.
상기한 치환 연산 및 확산 연산을 수행하는 방법 및 키 확장 과정을 수행하는 방법에 따라 아리아 블록 암복호화 연산에 소요되는 시간 및 사용되는 하드웨어 리소스에 차이가 있으며, 이는 더 나아가 아리아 암호 프로세서의 성능과 직결되는 문제가 된다.
도 1은 종래의 치환부를 도시한 것이다. 치환부는 128비트 입력에 대하여 바이트 단위로 대치박스의 결과값으로 치환하는 과정이다. 대치박스는 후술될 도 2에서 보여지는 바와 같이, S1(200), S2(204), S1 -1(202), S2 -1 (206)의 4가지 종류로 구성되며, S1 -1(202), S2 -1 (206)은 각각 S1, S2의 역치환 대치박스이다. 도 1의 제1치환부(100)는 홀수 라운드 연산에서 사용되고, 도 1의 제2치환부(102)는 짝수 라운드 연산에서 사용된다.
도 2는 종래의 4가지 종류의 대치박스를 도시한 것이다. 상기한 대치박스들(200, 202, 204, 206)은 아리아 알고리즘에 명시되어 있는 값을 가지고 있는 4가지 종류의 테이블로서 롬(ROM)과 같은 저장수단에 테이블 형태로 값을 저장한 후, 주어지는 8비트 입력값, 즉, 주소에 해당하는 테이블의 값(8비트)을 출력한다.
이를 위해, 하나의 대치박스는 256바이트의 ROM이 필요하게 되며, 4가지 종 류의 대치박스는 총 1024바이트의 ROM으로 구성된다. 또한, 도 1의 제1치환부(100)를 구성하기 위하여는 128비트 입력에 대하여 병렬처리를 해야 하기 때문에4096바이트의 ROM이 필요하고, 도 1의 제2치환부(102)를 구성하기 위하여는 128비트 입력에 대하여 병렬처리를 해야 하기 때문에 4096바이트의 ROM이 필요하다. 따라서, 상기 치환부를 구성하기 위하여서는 총 8192 바이트의 ROM이 필요하다.
상기한 바와 같이 종래 기술에서는 4가지 종류의 대치박스를 구성하기 위하여 ROM 또는 RAM을 구비하여야 하므로, 이로 인한 하드웨어 크기가 커지며, ROM 또는 RAM으로의 접근 시간이 고정됨으로 인하여 고속화가 어려운 문제점이 있었다.
따라서 본 발명의 목적은 아리아 블록 암호화에 있어서, 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어 크기를 줄이는 블록암호 아리아의 치환연산 장치 및 방법을 제공하고자 한다.
또한, 본 발명의 다른 목적은 아리아 블록 암호화에 있어서, 파이프라인 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하도록 하는 블록암호 아리아의 치환연산 장치 및 방법을 제공하고자 한다.
상술한 목적을 달성하기 위한 본 발명은 블록 암호 아리아의 치환 연산 장치로서, 대치박스를 구현하기 위한 별도의 메모리 없이 대치박스 S1 및 대치박스 S1 -1 연산을 수행하는 제1 Sbox 연산부와, 대치박스 S2 및 대치박스 S2 -1 연산을 수행하는 제2 Sbox 연산부와, 상기 제1 Sbox 연산부 및 제2 Sbox 연산부의 모드를 결정하는 제어부를 포함하며,
제1 Sbox 연산부는, 입력값에 대해 역대치박스 S1 -1을 구하기 위한 역아핀연산을 수행하는 제1역아핀변환부와, 상기 입력값 또는 상기 입력값과 다중화된 상기 제1역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하는 유한체역원연산부와, 상기 유한체역원연산부의 결과값에 대해 대치박스 S1을 구하기 위한 아핀연산을 수행하는 제1아핀변환부와, 상기 제어부의 제어에 따라 유한체역원연산부의 입력을 결정하는 제1다중화기와, 상기 제어부의 제어에 따라 상기 제1아핀변환부의 출력값과 상기 유한체역원연산부의 결과값 중에서 상기 제1 Sbox 연산부의 결과값을 선택하는 제2다중화기를 포함한다.
또한, 제2 Sbox 연산부는, 입력값에 대해 역대치박스 S2 -1을 구하기 위한 역아핀연산을 수행하는 제2역아핀변환부와, 상기 입력값 또는 상기 입력값과 다중화된 상기 제2역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하는 유한체역원연산부와, 상기 유한체역원연산부의 결과값에 대해 대치박스 S2을 구하기 위한 아핀연산을 수행하는 제2아핀변환부와, 상기 제어부의 제어에 따라 상기 유한체역원연산부의 입력을 결정하는 제3다중화기와, 상기 제어부의 제어에 따라 상기 제2아핀변환부의 출력값과 상기 유한체역원연산부의 결과값 중에서 상기 제2 Sbox 연산부의 결과값을 선택하는 제4다중화기를 포함한다.
본 발명에서는 블록 암호 아리아의 치환연산 장치 및 방법에 있어서, 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어 크기를 줄일 수 있는 이점이 있다.
또한, 파이프라인 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하도록 하는 이점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 구체적인 핵심 기술요지를 살펴보면, 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어 크기를 줄이며, 파이프라인 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하도록 하는 기술을 통해 본 발명에서 이루고자 하는 바를 쉽게 달성할 수 있다.
도 3은 본 발명의 실시 예에 따른 블록 암호 아리아의 치환 연산 장치 구성을 도시한 것이다.
상기 도 3을 참조하면, 본 발명의 블록 암호 아리아의 치환 연산 장치에서, 입력 128비트(bit)에 대한 출력 128비트를 계산함에 있어서는,
대치박스 S1 및 대치박스 S1 -1 연산을 수행하는 제1 Sbox 연산부(300)와, 대치박스 S2 및 대치박스 S2 -1 연산을 수행하는 제2 Sbox 연산부(302)와, 제1 Sbox 연산부(300) 및 제2 Sbox 연산부(302)의 모드를 결정하는 제어부(304)를 포함함으로써, 대치박스를 구현하기 위한 별도의 ROM 그리고/또는 RAM을 구비하지 않으면서도 블록 암호 아리아의 치환연산을 수행하게 된다.
즉, 제1 Sbox 연산부(300) 및 제2 Sbox 연산부(302)는 별도의 ROM 또는 RAM을 사용하지 않고, 유한체 연산 로직을 이용하여 4가지 종류의 대치박스를 구현한다. 특히, 제1 Sbox 연산부(300)는 대치박스 S1 및 S1 -1을 모두 구현하며, 제2 Sbox 연산부(302)는 대치박스 S2 및 S2 -1를 모두 구현함으로써 4가지 종류의 대치박스를 2가지 종류의 Sbox 연산부를 통하여 구현하는 것을 특징으로 한다.
이에 따라, 상기와 같이 대치박스 S1 및 S1 -1 을 하나의 Sbox 연산부(제1 Sbox연산부)(300)에서 구현하고, 대치박스 S2 및 S2 -1 을 하나의 Sbox 연산부(제2 Sbox연산부)(302)에서 구현함으로써 하드웨어 크기(hardware size)를 줄일 수 있다.
이때, 대치박스를 별도의 ROM 그리고/또는 RAM을 구비하지 않고 유한체 연산 으로 구현하는 방법은 대치박스(S1, S2)와 역대치박스(S1 -1 , S2 -1)에 따라 구분된다. 즉, 대치박스를 구현하는 방법은 8비트 입력값에 대한 GF(28)에 대한 역원을 구한 후, 대치박스 형태에 따른 아핀 변환을 수행하는 것이고, 역대치박스를 구현하는 방법은 8비트 입력값에 대하여 대치박스 형태에 따른 역아핀 변환을 수행 한 후 GF(28)에 대한 역원을 구하는 것이다.
도 4는 상기 도 3에 도시된 제1 Sbox 연산부(300)의 논리 로직회로를 구체적으로 도시한 것이다. 이하, 상기 도 4를 참조하여 제1 Sbox 연산부(300) 각 로직에서의 동작을 상세히 설명하기로 한다.
먼저, 제1아핀변환부(406)는 8비트의 입력값에 대해 대치박스 S1을 구하기 위한 아핀연산을 수행한다. 제1역아핀변환부(400)는 8비트의 입력값에 대해 역대치박스 S1 -1을 구하기 위한 역아핀연산을 수행한다.
유한체역원연산부(404)는 8비트 입력값의 GF(28) 역원을 계산하거나, 또는 8비트 입력값과 다중화된 제1역아핀변환부(400)의 결과값에 대하여 GF(28) 역원을 계산한다. 이때, 유한체역원연산부(404)는 블록 암호 아리아에서 채택하고 있는 기약다항식 m(x) = x8 + x4 + x3 + x + 1에 대한 유한체 역원 연산 로직으로 구성된다.
제1다중화기(402)는 제어부(304)의 제어에 따라 유한체역원연산부(404)의 입 력을 결정한다. 제2다중화기(408)는 제어부(304)의 제어에 따라 제1아핀변환부(406)의 출력값과 유한체역원연산부(404)의 결과값 중에서 제1Sbox 연산부(300)의 결과값을 선택한다. 제어부(304)는 제1다중화기(402)와 제2다중화기(408)의 선택 제어 신호를 생성하여 제1다중화기(402)와 제2다중화기(408)의 선택 동작을 제어한다.
도 5a는 S1을 구하기 위해 아핀연산을 수행하는 제1아핀변환부(406)에서의 세부연산 과정을 도시한 것이고, 도 5b는 S1 -1을 구하기 위해 역아핀연산을 수행하는 제1역아핀변환부(400)에서의 세부연산 과정을 도시한 것이다.
위 아핀변환 및 역아핀변환 세부연산 과정에 있어서 입력값 A는 1바이트를 의미하는 A[0] ~ A[7]로 구성된다. A[0]는 최하위비트를 의미하고, A[7]은 최상위비트를 의미한다. 출력값 B는 1바이트를 의미하는 B[0] ~ B[7]로 구성된다. B[0]는 최하위비트를 의미하고, B[7]은 최상위비트를 의미한다.
도 6은 상기 도 3에 도시된 제2 Sbox 연산부(302)의 논리 로직회로를 구체적으로 도시한 것이다. 이하, 상기 도 6를 참조하여 제2 Sbox 연산부(302) 각 로직에서의 동작을 상세히 설명하기로 한다.
먼저, 제2아핀변환부(416)는 8비트의 입력값에 대해 대치박스 S2을 구하기 위한 아핀연산을 수행한다. 제2역아핀변환부(410)는 8비트의 입력값에 대해 역대치박스 S2 -1을 구하기 위한 역아핀연산을 수행한다.
유한체역원연산부(414)는 8비트 입력값의 GF(28) 역원을 계산하거나, 또는 8비트 입력값과 다중화된 제2역아핀변환부(410)의 결과값에 대하여 GF(28) 역원을 계산한다. 이때, 유한체역원연산부(414)는 블록 암호 아리아에서 채택하고 있는 기약다항식 m(x) = x8 + x4 + x3 + x + 1에 대한 유한체 역원 연산 로직으로 구성된다.
제3다중화기(412)는 제어부(304)의 제어에 따라 유한체역원연산부(414)의 입력을 결정한다. 제4다중화기(418)는 제어부(304)의 제어에 따라 제2아핀변환부(416)의 출력값과 유한체역원연산부(414)의 결과값 중에서 제2 Sbox 연산부(302)의 결과값을 선택한다. 제어부(304)는 제3다중화기(412)와 제4다중화기(418)의 선택 제어 신호를 생성하여 제3다중화기(412)와 제4다중화기(418)의 선택 동작을 제어한다.
도 7a는 S2을 구하기 위해 아핀연산을 수행하는 제2아핀변환부(416)에서의 세부연산 과정을 도시한 것이고, 도 7b는 S2 -1 을 구하기 위해 역아핀연산을 수행하는 제2역아핀변환부(410)에서의 세부연산 과정을 도시한 것이다.
위 아핀변환 및 역아핀변환 세부연산 과정에 있어서 입력값 A는 1바이트를 의미하는 A[0] ~ A[7]로 구성된다. A[0]는 최하위비트를 의미하고, A[7]은 최상위비트를 의미한다. 출력값 B는 1바이트를 의미하는 B[0] ~ B[7]로 구성된다. B[0]는 최하위비트를 의미하고, B[7]은 최상위비트를 의미한다.
도 8은 상기 제1 Sbox 연산부(300)에서의 구체적인 연산과정 처리 흐름을 도 시한 것이다. 이하, 상기 도 3, 도 4, 도 5a, 도 5b 를 참조하여 입력값에 대한 S1 및 S1 -1의 결과값을 계산하는 방법을 설명하면 다음과 같다.
먼저, 제어부(304)가 제1 Sbox 연산부(300)가 S1 을 구하기 위해 아핀연산을 수행하도록 모드를 설정하면(S800), 유한체역원연산부(404)에서 입력값에 대한 유한체 역원 연산을 수행한다(S802). 이어, 제1아핀변환부(406)에서는 유한체역원연산부(404)로부터 역원 연산된 결과값에 대한 제1아핀변환연산을 수행하여 그 결과값을 출력한다(S804). 그러면, 제2다중화기(408)는 위와 같이 제1아핀변환부(406)에서 출력된 결과값을 제어부(304)에 제어에 따라 S1 결과값으로 출력한다(S806).
이와 달리, 제어부(304)가 제1 Sbox 연산부(300)가 S1 -1 을 구하기 위해 역아핀연산을 수행하도록 모드를 설정하면(S800), 제1역아핀변환부(400)는 입력값에 대한 제1역아핀변환연산을 수행한다(S808). 이어, 유한체역원연산부(404)는 입력값과 제1역아핀변환부(400)로부터 연산된 결과값을 다중화한 결과값에 대한 유한체 역원 연산을 수행한다(S810). 그러면, 제2다중화기(408)는 위와 같이 유한체역원연산부(404)에서 출력된 결과값을 제어부(304)의 제어에 따라 S1 -1 을 결과값으로 출력한다(S812).
도 9는 상기 제2 Sbox 연산부(302)에서의 구체적인 연산과정 처리 흐름을 도시한 것이다. 이하, 상기 도 3, 도 6, 도 7a, 도 7b 를 참조하여 입력값에 대한 S2 및 S2 -1의 결과값을 계산하는 방법을 설명하면 다음과 같다.
먼저, 제어부(304)가 제2 Sbox 연산부(302)가 S2 을 구하기 위해 아핀연산을 수행하도록 모드를 설정하면(S900), 유한체역원연산부(414)에서 입력값에 대한 유한체 역원 연산을 수행한다(S902). 이어, 제2아핀변환부(416)에서는 유한체역원연산부(414)로부터 역원 연산된 결과값에 대한 제2아핀변환연산을 수행하여 그 결과값을 출력한다(S904). 그러면, 제4다중화기(418)는 위와 같이 제2아핀변환부(416)에서 출력된 결과값을 제어부(304)의 제어에 따라 S2 결과값으로 출력한다(S906).
이와 달리, 제어부(304)가 제2 Sbox 연산부(302)가 S2 -1 을 구하기 위해 역아핀연산을 수행하도록 모드를 설정하면(S900), 제2역아핀변환부(410)는 입력값에 대한 제2역아핀변환연산을 수행한다(S908). 이어, 유한체역원연산부(414)는 입력값과 제2역아핀변환부(410)로부터 연산된 결과값을 다중화한 결과값에 대한 유한체 역원 연산을 수행한다(S910). 그러면, 제4다중화기(418)는 위와 같이 유한체역원연산부(414)에서 출력된 결과값을 제어부(304)에 제어에 따라 S2 -1 을 결과값으로 출력한다(S912).
도 10은 상기 도 3에 도시된 제1 Sbox 연산부(300)와 제2 Sbox 연산부(302)를 공통으로 구현하는 Sbox 연산부의 논리 로직회로를 구체적으로 도시한 것이다. 이하, 상기 도 10을 참조하여 Sbox 연산부 각 로직에서의 동작을 상세히 설명하기 로 한다.
먼저, 제1아핀변환부(406)는 8비트의 입력값에 대해 대치박스 S1을 구하기 위한 아핀연산을 수행한다. 제1역아핀변환부(400)는 8비트의 입력값에 대해 역대치박스 S1 -1을 구하기 위한 역아핀연산을 수행한다. 제2아핀변환부(416)는 8비트의 입력값에 대해 대치박스 S2을 구하기 위한 아핀연산을 수행한다. 제2역아핀변환부(410)는 8비트의 입력값에 대해 역대치박스 S2 -1을 구하기 위한 역아핀연산을 수행한다.
유한체역원연산부(500)는 8비트 입력값의 GF(28) 역원을 계산하거나, 또는 8비트 입력값과 다중화된 제1역아핀변환부(400)의 결과값에 대하여 GF(28) 역원을 계산하며, 또는, 8비트 입력값과 다중화된 제2역아핀변환부(410)의 결과값에 대하여 GF(28) 역원을 계산한다.
제1다중화기(402)는 제어부(304)의 제어에 따라 유한체역원연산부(500)의 입력을 결정한다. 제2다중화기(408)는 제어부(304)의 제어에 따라 제1아핀변환부(406)의 출력값 또는 제2아핀변환부(416)의 출력값 또는 유한체역원연산부(500)의 결과값 중에서 Sbox 연산부의 결과값을 선택한다. 제어부(304)는 제1다중화기(402)와 제2다중화기(408)의 선택 제어 신호를 생성하여 제1다중화기(402)와 제2다중화기(408)의 선택 동작을 제어한다.
특히 도 10의 Sbox 연산부는 하드웨어의 크기를 줄이기 위하여 상기한 도 3의 제1 Sbox 연산부(300) 및 상기 제2 Sbox 연산부(302)를 동시에 구현하는 것을 그 특징으로 한다. 상기 도 10에서 도시한 Sbox 연산부를 이용하여 상기한 치환부를 구성하면, 하나의 Sbox 연산부를 반복하여 구동함으로써, 하드웨어 크기가 작아지도록 구현할 수 있다.
상기한 바와 같이 본 발명에서는 블록 암호 아리아의 치환연산 장치 및 방법에 있어서, 블록 암호 아리아의 치환연산을 특정 ROM 그리고/또는 RAM 없이 유한체 연산을 통하여 구현함으로써 아리아 암호화 장치의 하드웨어 크기를 줄일 수 있다. 또한 파이프라인 기법 적용이 가능하도록 대치박스를 연산 로직으로 구현하여 고속 아리아 연산이 가능하게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
도 1은 종래의 치환부 구성도,
도 2는 종래의 대치박스 구성도,
도 3은 본 발명의 실시 예에 따른 블록 암호 아리아의 치환 연산 장치 구성도,
도 4는 본 발명의 실시 예에 따른 제1 Sbox연산부의 세부구성도,
도 5a는 본 발명의 실시 예에 따른 제1 아핀변환 세부구성도,
도 5b는 본 발명의 실시 예에 따른 제1 아핀변환 세부구성도,
도 6은 본 발명의 실시 예에 따른 제2 Sbox연산부의 세부구성도,
도 7a는 본 발명의 실시 예에 따른 제2 아핀변환 세부구성도,
도 7b는 본 발명의 실시 예에 따른 제2 아핀변환 세부구성도,
도 8은 본 발명의 실시 예에 따른 제1 Sbox연산부의 연산 동작 제어 흐름도,
도 9는 본 발명의 실시 예에 따른 제2 Sbox연산부의 연산 동작 제어 흐름도,
도 10은 본 발명의 실시 예에 따른 제1 Sbox 연산부와 제2 Sbox 연산부를 공통으로 구현하는 Sbox 연산부의 세부 구성도.
<도면의 주요 부호에 대한 간략한 설명>
300 : 제1 Sbox 연산부 302 : 제2 Sbox 연산부
304 : 제어부

Claims (15)

  1. 삭제
  2. 대치박스 S1 및 대치박스 S1 -1 연산을 수행하는 제1 Sbox 연산부와,
    대치박스 S2 및 대치박스 S2 -1 연산을 수행하는 제2 Sbox 연산부와,
    상기 제1 Sbox 연산부 및 제2 Sbox 연산부의 모드를 결정하는 제어부
    를 포함하되,
    상기 제1 Sbox 연산부는,
    입력값에 대해 역대치박스 S1 -1을 구하기 위한 역아핀연산을 수행하는 제1역아핀변환부와,
    상기 입력값 또는 상기 입력값과 다중화된 상기 제1역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하는 유한체역원연산부와,
    상기 유한체역원연산부의 결과값에 대해 대치박스 S1을 구하기 위한 아핀연산을 수행하는 제1아핀변환부와,
    상기 제어부의 제어에 따라 유한체역원연산부의 입력을 결정하는 제1다중화기와,
    상기 제어부의 제어에 따라 상기 제1아핀변환부의 출력값과 상기 유한체역원연산부의 결과값 중에서 상기 제1 Sbox 연산부의 결과값을 선택하는 제2다중화기
    를 포함하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  3. 제 2 항에 있어서,
    상기 유한체역원연산부는,
    아래 [수학식]에서와 같은 기약다항식 m(x)에 대한 유한체 역원 연산 로직으로
    [수학식]
    m(x) = x8 + x4 + x3 + x + 1
    구성되는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  4. 제 2 항에 있어서,
    상기 제1아핀변환부는, 입력값 A[0] 내지 A[7]에 대하여 하기 [수학식]
    [수학식]
    Figure 112007091374791-pat00001
    을 만족하는 출력값 B[0] 내지 B[7]을 출력하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  5. 제 2 항에 있어서,
    상기 제1역아핀변환부는, 입력값 A[0] 내지 A[7]에 대하여 하기 [수학식]
    [수학식]
    Figure 112007091374791-pat00002
    을 만족하는 출력값 B[0] 내지 B[7]을 출력하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  6. 제 2 항에 있어서,
    상기 제2 Sbox 연산부는,
    입력값에 대해 역대치박스 S2 -1을 구하기 위한 역아핀연산을 수행하는 제2역아핀변환부와,
    상기 입력값 또는 상기 입력값과 다중화된 상기 제2역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하는 유한체역원연산부와,
    상기 유한체역원연산부의 결과값에 대해 대치박스 S2을 구하기 위한 아핀연산을 수행하는 제2아핀변환부와,
    상기 제어부의 제어에 따라 상기 유한체역원연산부의 입력을 결정하는 제3다중화기와,
    상기 제어부의 제어에 따라 상기 제2아핀변환부의 출력값과 상기 유한체역원연산부의 결과값 중에서 상기 제2 Sbox 연산부의 결과값을 선택하는 제4다중화기
    를 포함하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  7. 제 6 항에 있어서,
    상기 유한체역원연산부는,
    아래 [수학식]에서와 같은 기약다항식 m(x)에 대한 유한체 역원 연산 로직으로
    [수학식]
    m(x) = x8 + x4 + x3 + x + 1
    구성되는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  8. 제6항에 있어서,
    상기 제2아핀변환부는, 입력값 A[0] 내지 A[7]에 대하여 하기 [수학식]
    [수학식]
    Figure 112007091374791-pat00003
    을 만족하는 출력값 B[0] 내지 B[7]을 출력하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  9. 제 6항에 있어서,
    상기 제2역아핀변환부는, 입력값 A[0] 내지 A[7]에 대하여 하기 [수학식]
    [수학식]
    Figure 112007091374791-pat00004
    을 만족하는 출력값 B[0] 내지 B[7]을 출력하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  10. 삭제
  11. 대치박스 S1, S1 -1, S2, S2 -1 연산을 수행하는 Sbox 연산부와,
    상기 Sbox 연산부의 연산 모드를 결정하는 제어부
    를 포함하되,
    상기 Sbox 연산부는,
    입력값에 대해 역대치박스 S1 -1을 구하기 위한 역아핀연산을 수행하는 제1역아핀변환부와,
    상기 입력값에 대해 역대치박스 S2 -1을 구하기 위한 역아핀연산을 수행하는 제2역아핀변환부와,
    상기 입력값 또는 입력값과 다중화된 제1역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하며, 또는, 입력값과 다중화된 제2역아핀변환부의 결과값에 대하여 GF(28) 역원을 계산하는 유한체역원연산부와,
    상기 유한체역원연산부의 결과값에 대해 대치박스 S1을 구하기 위한 아핀연산을 수행하는 제1아핀변환부와,
    상기 유한체역원연산부의 결과값에 대해 대치박스 S2을 구하기 위한 아핀연산을 수행하는 제2아핀변환부와,
    상기 제어부의 제어에 따라 상기 유한체역원연산부의 입력을 결정하는 제1다중화기와,
    상기 제어부의 제어에 따라 상기 제1아핀변환부의 출력값 또는 제2아핀변환부의 출력값 또는 유한체역원연산부의 결과값 중에서 Sbox 연산부의 결과값을 선택하는 제2다중화기
    를 포함하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 장치.
  12. 제1 Sbox 연산부, 제2 Sbox 연산부와 상기 연산부의 연산모드를 결정하는 제어부를 포함하는 블록 암호 아리아의 치환 연산 장치에서 연산방법으로서,
    (a)상기 제1 Sbox 연산부의 S1 연산 모드 시, 입력값에 대한 유한체 역원 연산을 수행하는 단계와,
    (b)상기 유한체 역원 연산된 결과값에 대한 제1아핀변환연산을 수행하여 그 결과값을 출력하는 단계와,
    (c)상기 제1아핀변환연산된 결과값을 S1 결과값으로 출력하는 단계
    를 포함하는 블록 암호 아리아의 치환 연산 방법.
  13. 제 12 항에 있어서,
    상기 (a)단계에서, 상기 제1 Sbox 연산부의 S1 -1 연산 모드시에는,
    (d)상기 입력값에 대한 제1역아핀변환연산을 수행하는 단계와,
    (e)상기 제1역아핀변환연산된 결과값을 유한체 역원 연산을 수행하는 단계와,
    (f)상기 유한체역원연산 수행된 결과값을 S1 -1 결과값으로 출력하는 단계
    를 더 포함하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 방법.
  14. 제1 Sbox 연산부, 제2 Sbox 연산부와 상기 연산부의 연산모드를 결정하는 제어부를 포함하는 블록 암호 아리아의 치환 연산 장치에서 연산방법으로서,
    (a')상기 제2 Sbox 연산부의 S2 연산 모드 시, 입력값에 대한 유한체 역원 연산을 수행하는 단계와,
    (b')상기 유한체 역원 연산된 결과값에 대한 제2아핀변환연산을 수행하여 그 결과값을 출력하는 단계와,
    (c')상기 제2아핀변환연산된 결과값을 S2 결과값으로 출력하는 단계
    를 포함하는 블록 암호 아리아의 치환 연산 방법.
  15. 제 14 항에 있어서,
    상기 (a')단계에서, 상기 제2 Sbox 연산부의 S2 -1 연산 모드시에는,
    (d')상기 입력값에 대한 제2역아핀변환연산을 수행하는 단계와,
    (e')상기 제2역아핀변환연산된 결과값을 유한체 역원 연산을 수행하는 단계와,
    (f')상기 유한체역원연산 수행된 결과값을 S2 -1 결과값으로 출력하는 단계
    를 더 포함하는 것을 특징으로 하는 블록 암호 아리아의 치환 연산 방법.
KR1020070134064A 2007-12-20 2007-12-20 블록 암호 아리아의 치환 연산 장치 및 방법 KR100969961B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070134064A KR100969961B1 (ko) 2007-12-20 2007-12-20 블록 암호 아리아의 치환 연산 장치 및 방법
US12/176,649 US8345865B2 (en) 2007-12-20 2008-07-21 Block cipher aria substitution apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070134064A KR100969961B1 (ko) 2007-12-20 2007-12-20 블록 암호 아리아의 치환 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090066503A KR20090066503A (ko) 2009-06-24
KR100969961B1 true KR100969961B1 (ko) 2010-07-15

Family

ID=40788649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070134064A KR100969961B1 (ko) 2007-12-20 2007-12-20 블록 암호 아리아의 치환 연산 장치 및 방법

Country Status (2)

Country Link
US (1) US8345865B2 (ko)
KR (1) KR100969961B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025484A (zh) * 2010-12-17 2011-04-20 北京航空航天大学 一种分组密码加解密方法
KR20200028164A (ko) 2018-09-06 2020-03-16 국민대학교산학협력단 비트치환 연산기, 확장 비트치환 연산기 및 이를 이용한 암호 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101118826B1 (ko) * 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
US9800406B2 (en) * 2014-05-21 2017-10-24 Intel Corporation Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher
CN107707343B (zh) * 2017-11-08 2020-10-16 贵州大学 加解密一致的sp网络结构轻量级分组密码实现方法
KR102457166B1 (ko) * 2020-11-23 2022-10-20 부산대학교 산학협력단 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08179690A (ja) * 1994-12-22 1996-07-12 Nec Corp プロダクト暗号装置
US20020027987A1 (en) 2000-07-04 2002-03-07 Roelse Petrus Lambertus Adriaanus Substitution-box for symmetric-key ciphers
KR20070021883A (ko) * 2005-08-19 2007-02-23 한국전자통신연구원 Aria 암호 모듈 및 그 방법
KR100786391B1 (ko) * 2006-09-28 2007-12-17 한국전자통신연구원 고속 아리아 블록 암호화/복호화 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
AU2003302946A1 (en) * 2002-12-13 2004-07-09 Koninklijke Philips Electronics N.V. A small hardware implementation of the subbyte function of rijndael
JP3818263B2 (ja) * 2003-01-28 2006-09-06 日本電気株式会社 Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法
EP1465365A1 (en) * 2003-04-04 2004-10-06 STMicroelectronics S.r.l. Method and Hardware Device for Implementing a one-to-one Binary Function, especially a Rijdael S-Box
DE602004023436D1 (de) * 2004-03-29 2009-11-12 St Microelectronics Sa Prozessor zum ausführen eines aes algorithmus
US20060002548A1 (en) * 2004-06-04 2006-01-05 Chu Hon F Method and system for implementing substitution boxes (S-boxes) for advanced encryption standard (AES)
US8817979B2 (en) * 2004-06-04 2014-08-26 Broadcom Corporation Standalone hardware accelerator for advanced encryption standard (AES) encryption and decryption
KR100610367B1 (ko) * 2004-06-19 2006-08-10 삼성전자주식회사 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
US8050401B2 (en) * 2005-09-27 2011-11-01 The Boeing Company High speed configurable cryptographic architecture
KR100779076B1 (ko) * 2005-12-09 2007-11-27 한국전자통신연구원 아리아 암/복호화 장치, 그 방법 및 이를 위한 초기 키생성 방법
US8094815B2 (en) * 2006-11-13 2012-01-10 Electronics Andtelecommunications Research Institute Arithmetic method and apparatus for supporting AES and ARIA encryption/decryption functions
EP1975779B1 (en) * 2007-03-30 2018-03-28 Hitachi, Ltd. Encryption device using a pseudorandom number generator
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08179690A (ja) * 1994-12-22 1996-07-12 Nec Corp プロダクト暗号装置
US20020027987A1 (en) 2000-07-04 2002-03-07 Roelse Petrus Lambertus Adriaanus Substitution-box for symmetric-key ciphers
KR20070021883A (ko) * 2005-08-19 2007-02-23 한국전자통신연구원 Aria 암호 모듈 및 그 방법
KR100786391B1 (ko) * 2006-09-28 2007-12-17 한국전자통신연구원 고속 아리아 블록 암호화/복호화 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025484A (zh) * 2010-12-17 2011-04-20 北京航空航天大学 一种分组密码加解密方法
CN102025484B (zh) * 2010-12-17 2012-07-04 北京航空航天大学 一种分组密码加解密方法
KR20200028164A (ko) 2018-09-06 2020-03-16 국민대학교산학협력단 비트치환 연산기, 확장 비트치환 연산기 및 이를 이용한 암호 장치

Also Published As

Publication number Publication date
US8345865B2 (en) 2013-01-01
US20090161864A1 (en) 2009-06-25
KR20090066503A (ko) 2009-06-24

Similar Documents

Publication Publication Date Title
Akishita et al. Very compact hardware implementations of the blockcipher CLEFIA
Mangard et al. A highly regular and scalable AES hardware architecture
JP3818263B2 (ja) Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法
JP4890976B2 (ja) 暗号処理装置
CN106921487B (zh) 可重构s盒电路结构
KR100969961B1 (ko) 블록 암호 아리아의 치환 연산 장치 및 방법
Pramstaller et al. Efficient AES implementations on ASICs and FPGAs
Kitsos et al. FPGA-based performance analysis of stream ciphers ZUC, Snow3g, Grain V1, Mickey V2, Trivium and E0
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JP5364840B2 (ja) 暗号化装置
JP6135804B1 (ja) 情報処理装置、情報処理方法及びプログラム
Trimberger et al. A 12 Gbps DES encryptor/decryptor core in an FPGA
Rajasekar et al. Design and implementation of power and area optimized AES architecture on FPGA for IoT application
Wong et al. Circuit and system design for optimal lightweight AES encryption on FPGA
EP0982895A2 (en) Cryptographic data processor, communication system and recording medium
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
CN109033893B (zh) 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
KR20080052291A (ko) Aes 암복호화 장치 및 암복호화 방법
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
Thangarajan et al. High speed and low power implementation of AES for wireless sensor networks
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
KR100668664B1 (ko) Aes 라인달 블록 알고리즘을 이용하는 암호화/복호화장치 및 방법
WO2010041307A1 (ja) 暗号化装置
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
Hulle et al. Compact Reconfigurable Architecture for Sosemanuk Stream Cipher

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee