KR200279546Y1 - 문서 암/복호화장치 - Google Patents

문서 암/복호화장치 Download PDF

Info

Publication number
KR200279546Y1
KR200279546Y1 KR2020020006006U KR20020006006U KR200279546Y1 KR 200279546 Y1 KR200279546 Y1 KR 200279546Y1 KR 2020020006006 U KR2020020006006 U KR 2020020006006U KR 20020006006 U KR20020006006 U KR 20020006006U KR 200279546 Y1 KR200279546 Y1 KR 200279546Y1
Authority
KR
South Korea
Prior art keywords
encryption
data
round
round key
multiplexer
Prior art date
Application number
KR2020020006006U
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 KR2020020006006U priority Critical patent/KR200279546Y1/ko
Application granted granted Critical
Publication of KR200279546Y1 publication Critical patent/KR200279546Y1/ko

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

본 고안은 문서의 보안성을 제공하기 위한 암호화방법에 관한 것으로, 특히 Rijndael 암호화방법에서 사용되는 라운드키의 순서를 이용자에게 제공되는 비밀키에 따라 다르게 설정함으로써 문서 암호화를 한층 더 향상시킬 수 있도록 된 문서 암/복호화장치에 관한 것이다.
본 고안에 따른 문서 암/복호화장치는, 초기라운드와 N번의 라운드 과정을 수행하며, 라운드 수행시 소정 라운드키를 적용하여 문서 암호화 및 복호화처리를 수행하도록 된 Rijndael 암호화방법의 문서 암/복호화장치에 있어서, 암/복호화장치는 초기라운드와 N번의 라운드에 대해 비밀키와 N라운드키로 구성되는 N+1개의 라운드키를 순차적으로 적용하여 문서 암호화 및 복호화처리를 수행하되, 해당 장치에 대해 할당된 비밀키 정보에 대응되는 라운드키부터 순차적으로 적용하도록 된 것을 특징으로 한다.

Description

문서 암/복호화장치{Device for coding/decoding document}
본 고안은 문서의 보안성을 제공하기 위한 암호화방법에 관한 것으로, 특히 Rijndael 암호화방법에서 사용되는 라운드 키의 순서를 이용자에게 제공되는 비밀키에 따라 다르게 설정함으로써 문서 암호화를 한층 더 향상시킬 수 있도록 된 문서 암/복호화장치에 관한 것이다.
종래 암호화방법으로는 1997년 국제 표준 방법으로 채택되어진 DES 암호화방법이 있으며, 이 DES 암호화방법은 반복 블록 암호화 시스템에 속하는 것으로 비도가 약한 암호함수를 적절히 반복 사용하여 비도를 높이도록 되어 있다.
그러나 컴퓨터의 계산 능력 향상으로 인한 안전성 문제가 대두되면서 미국 상무부 기술표준국(NIST)은 차세대 암호 표준(Advanced Encryption Standard : AES)으로 2000년 10월에 Rijndael 암호화방법을 선정하였다.
상기 Rijndael 암호화방법은 공격에 대한 안전성, 다양한 형태의 플랫폼에서 처리속도와 코드의 간결성, 설계의 단순성 등을 고려하여 개발되었다. 그리고, 암호문 해독을 위해서는 현재의 컴퓨터로 약 148조년이 걸리며, 꿈의 컴퓨터라 불리는 양자 컴퓨터로도 30년이 걸리는 것으로 알려져 안전성이 매우 우수한 것으로 평가되고 있다.
Rijndael 암호화방법은 non-Feistel 구조를 바탕으로 하고 있으며, 3개의 독립된 역변환이 가능한 라운드 변환으로 구성된다. Rijndael 암호화방법의 암호화 과정은 도1에 도시된 바와 같이 초기라운드, 반복라운드, 최종라운드로 구성되며, 초기라운드는 비밀키와 원문을 익스크루시브오아(XOR)연산하고, 반복라운드는 데이터치환(Byte Sub), 행시프트(ShiftRow), 열합성(MixClumn), 라운드키합성(AddRoundKey)단계를 소정 회수 반복 수행하며, 최종라운드는 데이터치환(ByteSub), 행시프트(ShiftRow), 라운드키합성(AddRoundKey)를 수행하여 최종적으로 암호문이 출력되도록 구성된다.
일반적으로 상기 Rijndael 암호화방법은 원문을 암호화하기 위한 9번의 반복라운드를 수행하고, 1번의 최종라운드를 수행하게 된다. 즉, 총 10회의 라운드과정을 행하게 되며, 매 라운드 수행시마다 적용되는 라운드키는 표1에 도시된 바와 같이 고정된다.
Round0 Round1 Round2 Round3 Round4 Round5 Round6 Round7 Round8 Round9
RK0 RK1 RK2 RK3 RK4 RK5 RK6 RK7 RK8 RK9
여기서, 상기 Round0∼Round9 는 총 10회의 라운드 반복회수를 나타내며, RK0∼RK9는 각 라운드별 라운드키합성단계에서 합성되는 라운드키를 의미한다.
따라서, 나날이 발전하는 현 기술을 볼 때 모든 문서에 대해 동일한 순서로 라운드키가 적용된다는 것은 문서 암호화의 공격에 대한 취약성을 보여주는 것이라 할 수 있다.
이에 본 고안은 상기한 사정을 감안하여 안출된 것으로, 이용자에게 제공되는 비밀키에 따라 Rijndael 암호화방법의 라운드키 적용 순서를 다르게 설정하여 암호문의 비도를 높일 수 있도록 된 문서 암/복호화장치를 제공함에 그 기술적 목적이 있다.
도1은 일반적으로 사용되는 Rijndael 암호화 과정을 설명하기 위한 도면.
도2는 본 고안에 따른 암/복호화장치의 내부구성을 기능적으로 분리하여 나타낸 도면.
도3은 도2에 도시된 라운드키순서생성부(40)의 내부구성을 기능적으로 분리하여 나타낸 도면.
도4는 도2에 도시된 암/복호화부(50)의 내부구성을 기능적으로 분리하여 나타낸 도면.
도5는 도4에 도시된 암/복호화부(50)의 장치별 동작을 설명하기 위한 도면.
도6은 본 고안에 따른 암/복호화장치의 동작을 설명하기 위한 도면.
******* 도면의 주요부분에 대한 간단한 설명 *******
10 : 제어부, 40 : 라운드키순서생성부,
50 : 암/복호화부,
41 : 제1 모듈러연산부, 42 : 카운터,
43 : 가산부, 44 : 제2 모듈러연산부,
51 : 라운드키제공부, 52 : 제1 멀티플렉서,
53 : 플립플롭, 54 : 라운드키합성부,
55 : 암호화처리부, 56 : 복호화처리부,
57 : 제2 멀티플렉서.
상기 목적을 달성하기 위한 본 고안에 따른 문서 암/복호화장치는, 초기라운드와 N번의 라운드 과정을 수행하며, 라운드 수행시 소정 라운드키를 적용하여 문서 암호화 및 복호화처리를 수행하도록 된 Rijndael 암호화방법의 문서 암/복호화장치에 있어서, 암/복호화장치는 초기라운드와 N번의 라운드에 대해 비밀키와 N라운드키로 구성되는 N+1개의 라운드키를 순차적으로 적용하여 문서 암호화 및 복호화처리를 수행하되, 해당 장치에 대해 할당된 비밀키 정보에 대응되는 라운드키부터 순차적으로 적용하도록 된 것을 특징으로 한다.
즉, 상기한 바에 의하면 Rijndael 암호화방법의 기본구조를 그대로 유지하면서 라운드키의 적용순서를 이용자에게 제공되는 비밀키에 따라 변경되도록 함으로써 비도를 높일 수 있게 된다.
이하 본 고안에 따른 실시예를 설명한다.
도2은 본 고안에 따른 문서 암/복호화장치의 내부구성을 기능적으로 분리하여 나타낸 블록구성도로서, 이는 특히 본 문서 암/복호화장치가 PCI통신을 수행하는 장치, 즉 PCI카드로 형성된 경우를 예시한 것이다.
도2에 도시된 바와 같이 본 고안에 따른 문서 암/복호화장치는, 소정제어부(10)가 PCI인터페이스(20)를 통해 메모리(30)와 결합되어 구성됨과 더불어, 이후에 설명할 암/복호화부(50)로 소정 라운드키 선택 정보를 제공하기 위한 라운키순서생성부(40)와 소정 문서를 암호화 및 복호화처리하기 위한 암/복호화부(50)와 결합되어 구성된다.
여기서, 상기 암/복호화부(50)는 도1에 도시된 바와 같은 Rijndael 암호화방법에 따라 문서 암호화처리 및 복호화처리를 수행하며, 제어부(10)는 라운드키순서생성부(40)로 이용자의 비밀키 정보를 제공하여 암/복호화부(50)에서 사용되는 라운드키를 선택하기 위한 라운드키 어드레스 정보를 암/복호화부(50)로 제공하도록 제어하게 된다. 그리고, 암/복호화부(50)는 라운드키순서생성부(40)로부터 인가되는 라운드 어드레스에 대응되는 라운드키로부터 순차적으로 독출하여 암호화 및 복호화에 이용하게 된다.
또한 상기 메모리(30)는 암호화 및 복호화할 문서와 암호화 및 복호화된 문서를 저장하기 위한 것이다.
도3은 도2에 도시된 라운드키순서생성부(40)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도이다.
도3에 도시된 바와 같이 라운드키순서생성부(40)는 제어부(10)로부터 인가되는 예컨대, 4비트 비밀키를 11로 나눈 나머지값을 생성하는 제1 모듈러연산부(41)와, 제어부(10)로부터의 제어신호를 근거로 0 에서 10까지 "1"씩 증가시키거나 10에서 0까지 "1"씩 감소시켜 4비트 데이터로 출력하는 카운터(42), 상기 제1 모듈러연산부(41)로부터 인가되는 4비트 데이터와, 카운터(42)로부터 인가되는 4비트 데이터를 가산처리하는 가산부(43) 및, 가산부(43)로부터 인가되는 5비트 데이터를 11로 나눈 나머지값인 라운드키 어드레스 정보를 생성하는 제2 모듈러연산부(44)를 포함하여 구성된다.
이때, 상기 카운터(42)는 제어부(10)로부터 암호화처리에 대한 제어신호인 경우 0부터 10까지 "1"씩 증가시키는 카운트를 수행하고, 복호화처리에 대한 제어신호인 경우 10부터 0까지 "1"씩 감소시키는 디스카운트를 수행하도록 구성된다.
또한 여기서 상기 비밀키는 본 암/복호화장치가 설치되는 컴퓨터등의 이용자단말기에 설정되는 정보로서, 본 출원인 2002년 2월 26일자 출원한 출원번호 10-2002-0010125호에 기재된 바와 같이 네트워크를 통해 문서보안장치로부터 제공받는 것이 가능하다. 또한, 상기 비밀키는 암/복호화장치에 고정적으로 설정되도록 실시하거나 또는 컴퓨터 이용자에 의해 임의로 설정되는 것도 가능하다.
그리고, 상기 제1 및 제2 모듈러연산부(41,44)는 Rijndael 암호화방법에서 "총 라운드의 수 + 1"을 나누는 수로 설정하는 바, 일반적으로 Rijndael 암호화방법의 총라운드 수는 10이므로 상기 실시예에서는 제1 및 제2 모듈러연산부(41,44)의 나누는 수는 "11"이 된다. 또한 상기 카운터(42)도 암호화 수행시 행해지는 "총 라운드 수 + 1"과 동일한 횟수만큼 카운트하도록 구성된다.
한편, 도4는 도2에 도시된 암/복호화부(50)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도이다.
도4에 도시된 바와 같이 암/복호화부(50)는 상기 라운드키순서생성부(40)로부터 제공되는 라운드키 어드레스 정보별 시작 라운드키(비밀키 포함)가 다르게 설정되는 소정 라운드키테이블을 구비하여, 라운드키 어드레스정보에 대응되는 라운드키부터 순차적으로 라운드키를 출력하는 라운드키정보제공부(51)를 포함하여 구성된다. 즉, 비밀키 정보에 따라 라운드키정보제공부(51)로부터 출력되는 라운드키 제공 순서가 변화되게 되는 바, 표2는 비밀키에 따른 라운드키 제공 순서를 나타낸 것이다.
비밀키 초기라운드 반복라운드 최종라운드
초기라운드 Round0 Round1 Round2 Round3 Round4 Round5 Round6 Round7 Round8 Round9
0000 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9
0001 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키
0010 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0
0011 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1
1001 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2
0101 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3
0110 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4
0111 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5
1000 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6
1001 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7
1010 Rk9 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8
1011 비밀키 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9
1100 Rk0 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키
1101 Rk1 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0
1110 Rk2 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1
1111 Rk3 Rk4 Rk5 Rk6 Rk7 Rk8 Rk9 비밀키 Rk0 Rk1 Rk2
즉, 표2에 도시된 바와 같이 비밀키 정보에 대해 라운드키 시작순서가 변경되게 된다.
또한, 도4에 도시된 바와 같이 암/복호화부(50)는 128비트의 원문의 문서데이터와 이후에 설명할 피드백 되는 라운드 처리중인 문서데이터를 선택적으로 출력하기 위한 제1 멀티플렉서(52)와, 제1 멀티플렉서(52)로부터 출력되는 128비트 문서데이터를 일시 저장하기 위한 플립플롭(53), 플립플롭(53)을 통해 출력되는 128비트 문서데이터와 상기 라운드키정보제공부(51)로부터 인가되는 128비트 라운드키를 익스크루시브오아(XOR)연산하여 출력하는 라운드키합성부(54), 라운드키합성부(54)로부터 인가되는 문서데이터를 암호화처리하는 암호화처리부(55), 라운드키합성부(54)로부터 인가되는 문서데이터를 복호화처리하는 복호화처리부(56) 및, 상기 암호화처리부(55) 및, 복호화처리부(56)로부터 인가되는 문서데이터를 선택적으로 상기 제1 멀티플렉서(52)의 피드백 입력으로 제공하기 위한 제2 멀티플렉서(57)를 포함하여 구성된다.
또한, 상기 암호화처리부(55)는 도1의 반복라운드 및 최종라운드의 데이터치환(ByteSub: ST2,ST6)과정과 행시프트(ShiftRow : ST3, ST7)과정 및 열합성(MixColumn : ST4)과정을 수행하기 위한 것으로, 데이터치환부(551)와, 행시프트부(552), 열합성부(553) 및, 상기 행시프트부(552)로부터 출력되는 데이터와 상기 열 합성부(553)로부터 출력되는 데이터를 소정 제어신호(Ctrl3)에 따라 선택적으로 출력하기 위한 제3 멀티플렉서(554)를 포함하여 구성된다.
여기서, 상기 데이터치환부(551)는 도5의 (A)에 도시된 바와 같이 입력되는 aij데이터를 소정 규칙(S-box)에 따라 bij데이터로 치환하는 동작을 수행한다.
그리고, 상기 행시프트부(552)는 도5의 (B)에 도시된 바와 같이, 상기 데이터치환부(551)에서 출력되는 치환데이터의 행들을 시프트오프셋만큼 왼쪽으로 이동시키게 된다. 예컨대, 제 2행의 데이터 "B10, B11, B12, B13"는 "B11, B12, B13,B10"데이터로 시프트되어 출력된다.
또한, 상기 열합성부(553)는 도5의 (C)에 도시된 바와 같이, 행시프트부(552)에서 출력되는 데이터의 각 열 데이터를 소정 다항식 c(x)와 연산처리하게 된다.
한편, 도4에서 복호화처리부(56)는 상기 암호화처리부(55)의 역변환처리를 수행하는 부분으로, 라운드키합성부(54)로부터 인가되는 데이터를 역(Inverse)열 합성처리하는 역(Inverse)열합성처리부(561)와, 상기 라운드키합성부(54)로부터 인가되는 데이터와 상기 역(Inverse)열합성처리부(561)로부터 인가되는 데이터를 소정 제어신호(Ctrl4)에 따라 선택적으로 출력하기 위한 제4 멀티플렉서(562), 상기 제4 멀티플렉서(562)로부터 출력되는 데이터를 역(Inverse)행시프트 처리하는 역(Inverse)행시프트처리부(63) 및, 역(Inverse)행시프트부(63)로부터 출력되는 데이터를 역(Inverse)데이터 치환처리하는 역(Inverse)데이터치환부(564)를 포함하여 구성된다.
즉, 상기 역(Inverse)열합성부(561)는 도5의 (C)와 같은 열합성부(553)에 대한 역변환처리를 수행하고, 상기 역(Inverse)행시프트처리부(563)는 도5의 (B)와 같은 행시프트처리부(552)에 대한 역변환처리를 수행하며, 역(Inverse)데이터치환부(564)는 도5의 (A)와 같은 데이터치환부(551)에 대한 역변환처리를 수행하도록 구성되는 바, 이는 암호화함수의 역변환함수를 이용하여 실시하게 되므로 그 상세한 설명은 생략한다.
이어, 상기한 구성으로 된 암/복호화장치의 동작을 설명한다.
우선, 제어부(10)는 본 암/복호화장치가 설치된 이용자단말기에 제공되어진비밀키 정보를 라운드키순서생성부(40)로 제공하여 비밀키 정보에 대응되는 라운드키 어드레스를 암/복호화부(50)로 제공하도록 제어한다.
또한, 상기 제어부(10)는 암호화 및 복호화할 문서데이터를 메모리(30)로부터 제공받아 소정 크기단위, 예컨대 128비트단위로 분할하여 암/복호화부(50)로 송출하게 된다.
상기한 상태에서 제어부(10)는 암/복호화장치의 동작클럭을 제공하는 클럭제공부(도시되지않음)로부터 제공되는 클럭신호를 근거로 암/복호화 수행에 따른 라운드 동작을 수행하게 된다.
1. 본 고안에 따른 암/복호화장치의 암호화 동작은 다음과 같다.
상기 제어부(10)는 암호화 동작시 도6의 (X)에 도시된 바와 같이 암/복호화장치의 제1 내지 제3 멀티플렉서를 제어하게 된다.
먼저, 로우레벨("0)"의 제2 제어신호(Ctrl 2)를 제2 멀티플렉서(57)로 제공하여 암호화부(55)의 출력신호가 제1 멀티플렉서(51)로 피드백되도록 제어한다.
상기한 상태에서, 제어부(10)는 제1 클럭주기 동안 로우레벨("0")의 제1 제어신호(Ctrl 1)를 제1 멀티플렉서(52)로 제공하여 원문의 문서데이터가 플립플롭(53)으로 출력되도록 제어하게 된다. 이때 제어부(10)는 도6의 (X)에 도시된 바와 같이 제1 제어신호(Ctrl1)는 제1 클럭의 라이징에지구간이 로우레벨("0") 구간의 중심이 되도록 제공하며, 제1 클럭의 라이징에지상태에서 128비트의 문서 데이터를 플립플롭(53)으로 제공하게 된다.
그리고, 플립플롭(53)으로부터 출력되는 데이터는 라운드키합성부(54)에서라운드키정보제공부(51)로부터 제공되는 라운드키(표2의 초기라운드)와 익스크루시브오아(XOR)처리되어 출력된다. 이때, 상기 제어부(10)는 로우레벨("0")의 제3 제어신호(Ctrl 3)를 제3 멀티플렉서(554)로 제공하게 되는 바, 라운드키합성부(54)의 출력 데이터는 데이터치환부(551)와 행시프트부(552) 및 열합성부(553)를 통해 제2 멀티플렉서(57)로 인가되고, 제2 멀티플렉서(57)는 열합성부(553)로부터 출력되는 데이터를 제1 멀티플렉서(52)의 입력으로 인가하게 된다.
즉, 제1 클럭주기동안 초기라운드과정과 반복라운드과정의 첫번째 데이터치환(ST2), 행시프트(ST3), 열합성(ST4)이 수행된다.
이어 제어부(10)는 제2 클럭주기가 되면 하이레벨("1")의 제1 제어신호(Ctrl 2)를 제1 멀티플렉서(52)로 제공하여 초기라운드과정과 첫 번째 반복라운드과정의 일부가 종료된 문서데이터를 플립플롭(53)으로 제공하도록 제어하게 된다. 이때, 제2 내지 제4 제어신호(Ctrl 2 ∼Ctrl 4)는 이전 상태를 유지하도록 하며, 제9 클럭주기까지 제2 클럭주기 상태를 유지하도록 제어하게 된다.
즉, 초기라운드과정이 처리된 문서데이터에 대해 데이터치환, 행시프트, 열합성, 라운드키합성의 반복라운드과정을 제2 내지 제9 클럭주기동안 수행하게 된다. 이때 상기 라운드키합성은 제1 멀티플렉서(52)로 피드백되는 데이터와 라운드키제공부(51)로부터 제공되는 라운드키(표2의 Round0∼Round7)을 익스크루시브오아(XOR)처리하게 된다.
그리고, 제10클럭주기가 되면 마지막 반복라운드과정의 라운드키합성(ST5)을 수행하기 위하여 라운드키합성부(54)는 라운드키제공부(51)로부터 제공되는 라운드키(표2의 Round8)을 익스크루시브오아(XOR)처리한다. 또한 제어부(10)는 최종 라운드과정의 데이터치환(ST6), 행시프트(ST7)를 수행할 수 있도록 하이레벨("1")의 제3 제어신호(Ctrl3)를 제3 멀티플렉서(554)로 제공한다.
마지막으로 제11 클럭주기가 되면 라운드키제공부(51)는 최종라운드키(표2의 Round9)를 라운드키합성부(54)로 제공하고, 라운드키합성부(54)에서 암호화처리중인 문서 데이터와 최종라운드키가 익스크루시브오아(XOR)처리되어 해당 문서에 대한 암호문이 생성되게 된다.
2. 본 고안에 따른 암/복호화장치의 복호화동작은 다음과 같다.
상기 제어부(10)는 복호화동작시 도6의 (Y)에 도시된 바와 같이 암/복호화장치의 제1 내지 제4 멀티플렉서를 제어하게 된다.
먼저, 하이레벨("1")의 제2 제어신호(Ctrl 2)를 제2 멀티플렉서(57)로 제공하여 복호화처리부(56)의 출력신호가 제1 멀티플렉서(51)로 피드백되도록 제어한다.
상기한 상태에서 제어부(10)는 메모리(30)에 저장된 암호문 데이터를 독출하여 소정 크기, 예컨대 128비트단위로 읽어들인다. 이때, 제어부(10)는 제1 클럭주기 동안 로우레벨("0")의 제1 제어신호(Ctrl 1)를 제1 멀티플렉서(52)로 제공하여 암호문의 문서데이터가 플립플롭(53)를 통해 라운드키합성부(54)로 제공되어 최종라운드키(표2의 Round9)와 익스크루시브오아(XOR) 처리되도록 제어한다. 이때 제어부(10)는 도6의 (Y)에 도시된 바와 같이 제1 제어신호(Ctrl1)는 제1 클럭의 라이징에지구간이 하이레벨("0")구간의 중심이 되도록 제공하며, 제1 클럭의 라이징에지상태에서 128비트의 암호화된 문서 데이터를 플립플롭(53)으로 제공하게 된다.
제어부(10)는 로우레벨("0")의 제4 제어신호(Ctrl 4)를 제4 멀티플렉서(562)로 송출하여 라운드키합성부(54)로부터 출력되는 신호를 역(Inverse)행시프트부(563) 및 역(Inverse)데이터치환부(564)를 통해 제2 멀티플렉서(57)로 출력하도록 제어하게 된다.
즉, 제어부(10)는 메모리(30)에 저장된 암호문데이터의 복호화처리시 최종라운드과정부터 시작하도록 제어하게 된다. 따라서 제1 클럭주기동안 최종라운드과정이 수행된다.
이후, 제어부(10)는 하이레벨("1")의 제1 제어신호(Ctrl 1)를 제1 멀티플렉서(52)로 송출하여 제2 멀티플렉서(57)로부터 인가되는 피드백 데이터가 플립플롭(53)을 통해 라운드키합성부(54)로 인가되도록 제어하게 된다. 또한, 제어부(10)는 하이레벨("1")의 제4 제어신호(Ctrl 4)를 제4 멀티플렉서(562)로 송출하여 라운드키합성부(54)의 출력데이터가 역(Inverse)열합성부(561)를 통해 역(Inverse)행시프트부(562)로 인가되도록 제어하게 된다. 그리고, 이 역(Inverse)행시프트부(562)로 인가된 데이터는 역(Inverse)데이터치환부(564) 및 제2 멀티플렉서(57)를 통해 제1 멀티플렉서(52)의 입력으로 제공된다. 즉, 제2 클럭주기부터 제10클럭주기동안 반복라운드 동작에 따른 복호화처리를 수행하게 된다. 그리고, 상기 제10클럭주기 마지막에 제2 멀티플렉서(57)에서 제1 멀티플렉서(52)로 인가되는 복호화데이터는 제11 클럭주기에서 라운드합성부(54)를 통해 초기라운드키와 익스크루시브오아(XOR) 처리된 후 복호문으로써 메모리(30)에 저장된다. 이는 결국초기라운드 암호화 처리된 암호문에 대한 복호화처리가 된다.
즉, 상기 실시예에 의하면 이용자에게 제공되는 비밀키를 이용하여 Rijndael 암호화방법에서 적용되는 라운드키의 순서를 자동으로 다르게 설정되도록 함으로써, 문서 보안을 한층 더 강화할 수 있도록 된 문서 암/복호화장치를 제공할 수 있다.
따라서, 본 고안에 의하면 Rijndael 암호화방법의 기본구조를 그대로 유지하면서 라운드키의 적용순서를 이용자에게 제공되는 비밀키에 따라 변경되도록 함으로써 비도를 높일 수 있게 된다.
한편 본 고안은 상기 실시예에 한정되지 않고 본 고안의 기술적 사상을 벗어나지 않는 범위내에서 다양하게 변형 실시하는 것이 가능하다.
이상 설명한 바와 같이 본 고안에 의하면, Rijndael 암호화방법의 기본구조를 그대로 유지하면서 라운드키의 순서를 이용자에게 제공되는 비밀키에 따라 변경되도록 함으로써 비도를 높일 수 있게 된다.

Claims (6)

  1. 초기라운드와 N번의 라운드 과정을 수행하며, 라운드 수행시 소정 라운드키를 적용하여 문서 암호화 및 복호화처리를 수행하도록 된 Rijndael 암호화방법의 문서 암/복호화장치에 있어서,
    암/복호화장치는 초기라운드와 N번의 라운드에 대해 비밀키와 N라운드키로 구성되는 N+1개의 라운드키를 순차적으로 적용하여 문서 암호화 및 복호화처리를 수행하되, 해당 장치에 대해 할당된 비밀키 정보에 대응되는 라운드키부터 순차적으로 적용하도록 된 것을 특징으로 하는 문서 암/복호화장치.
  2. 제1항에 있어서,
    상기 문서 암호화장치는 소정 제어신호를 근거로 비밀키에 대응되는 소정 라운드키어드레스를 발생하는 라운드키순서생성수단과,
    상기 라운드키어드레스별 시작 라운드키가 다르게 설정되는 라운드키테이블을 구비하여 상기 라운드키순서생성수단으로부터 인가되는 라운드키어드레스에 대응되는 시작라운드키부터 순차적으로 라운드키를 발생하고, 이 라운드키를 근거로 문서 암호화 및 복호화를 수행하는 암/복호화수단 및,
    상기 라운드키순서생성수단과 상기 암/복호화수단으로 문서 암호화 또는 문서 복호화에 대응되는 제어신호를 송출하는 제어수단을 포함하여 구성되는 것을 특징으로 하는 문서 암/복호화장치.
  3. 제2항에 있어서,
    상기 라운드키순서생성수단은, 비밀키 정보를 N+1로 나눈 나머지값을 생성하는 제1 모듈러연산부와, 상기 제어수단으로부터의 제어신호를 근거로 암호화시에는 0부터 N까지를 카운트하고 복호화시에는 N 부터 0까지 디스카운트하는 카운터, 상기 제1 모듈러연산부와 상기 카운터로부터 인가되는 데이터를 가산하는 가산부, 가산부로부터 출력되는 데이터를 N+1로 나눈 나머지값을 생성하는 제2 모듈러연산부를 포함하여 구성되는 것을 특징으로 하는 문서 암/복호화장치.
  4. 제2항에 있어서,
    상기 암/복호화장치는 라운드키순서생성수단으로부터 인가되는 라운드키 어드레스에 대응되는 라운드키 정보를 순차적으로 제공하는 라운드키제공부와, 소정 제어신호를 근거로 암호화 및 복호화할 데이터와 피드백되는 데이터를 선택출력하는 제1 멀티플렉서, 제1 멀티플렉서로부터 출력되는 데이터와 상기 라운드키제공부로부터 인가되는 라운드키를 익스크루시브오아처리하는 라운드키합성부, 상기 라운드키합성부로부터 인가되는 데이터를 소정 제어신호를 근거로 데이터치환(ByteSub)처리하고 행시프트(ShiftRow)처리한 후 출력하거나 행시프트처리된 문자데이터를 열합성(MixColumn)처리하여 출력하는 암호화처리부, 상기 라운드키합성부로부터 인가되는 암호화된 문자데이터를 소정 제어신호를 근거로 역(Inverse)행시프트처리한 후 역(Inverse)데이터치환처리하여 출력하거나 역(Inverse)열합성처리 한 후역(Inverse)행시프트 및 역(Inverse)데이터치환처리하여 출력하도록 된 복호화처리부 및, 소정 제어신호를 근거로 상기 암호화처리부 및 상기 복호화처리부로부터 인가되는 데이터를 선택적으로 상기 제1 멀티플렉서의 입력으로 제공하는 제2 멀티플렉서를 포함하여 구성되는 것을 특징으로 하는 문서 암/복호화장치.
  5. 제4항에 있어서,
    문서 암호화수행시 상기 제어수단은 제2 멀티플렉서를 통해 암호화처리부의 출력데이터가 제1 멀티플렉서로 인가되도록 제어하고,
    상기 제1 멀티플렉서를 통해 제1 클럭주기동안은 원문데이터가 출력되도록 제어함과 더불어 제2 클럭주기부터 제N+1 클럭주기동안은 제2 멀티플렉서로부터 인가되는 문서데이터가 출력되도록 제어하며,
    상기 암호화처리부를 통해 제1 클럭주기부터 제N-1 클럭주기동안은 데이터치환, 행시프트, 열합성처리된 문자데이터를 상기 제2 멀티플렉서로 출력되도록 하고 제N 클럭주기동안은 데이터치환, 행시프트처리된 문자데이터를 제2 멀티플렉서로 출력되도록 제어하는 것을 특징으로 하는 문서 암/복호화장치.
  6. 제4항에 있어서,
    문서 복호화수행시 상기 제어수단은 제2 멀티플렉서를 통해 복호화처리부의 출력데이터가 제1 멀티플렉서로 인가되도록 제어하고,
    상기 제1 멀티플렉서를 통해 제1 클럭주기동안은 암호화된 원문데이터가 출력되도록 제어함과 더불어 제2 클럭주기부터 제N+1 클럭주기동안은 제2 멀티플렉서로부터 인가되는 데이터가 출력되도록 제어하며,
    상기 암호화처리부를 통해 제1 클럭주기동안은 행시프트 역변환, 데이터치환 역변환처리된 데이터를 제2 멀티플렉서로 출력되도록 하고, 제2 클럭주기부터 제N 클럭주기동안은 열합성 역변환, 행시프트 역변환, 데이터치환 역변환처리된 데이터를 제2 멀티플렉서로 출력되도록 제어하는 것을 특징으로 하는 문서 암/복호화장치.
KR2020020006006U 2002-02-28 2002-02-28 문서 암/복호화장치 KR200279546Y1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR2020020006006U KR200279546Y1 (ko) 2002-02-28 2002-02-28 문서 암/복호화장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR2020020006006U KR200279546Y1 (ko) 2002-02-28 2002-02-28 문서 암/복호화장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0010887A Division KR100531577B1 (ko) 2002-02-28 2002-02-28 문서 암/복호화장치

Publications (1)

Publication Number Publication Date
KR200279546Y1 true KR200279546Y1 (ko) 2002-06-24

Family

ID=73118485

Family Applications (1)

Application Number Title Priority Date Filing Date
KR2020020006006U KR200279546Y1 (ko) 2002-02-28 2002-02-28 문서 암/복호화장치

Country Status (1)

Country Link
KR (1) KR200279546Y1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030087893A (ko) * 2002-05-09 2003-11-15 최병윤 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
KR20050053379A (ko) * 2003-12-01 2005-06-08 삼성전자주식회사 AES Rijndael(라인달) 알고리즘을 빠르게구현하는 암호/복호 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030087893A (ko) * 2002-05-09 2003-11-15 최병윤 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
KR20050053379A (ko) * 2003-12-01 2005-06-08 삼성전자주식회사 AES Rijndael(라인달) 알고리즘을 빠르게구현하는 암호/복호 장치 및 그 방법

Similar Documents

Publication Publication Date Title
US7688974B2 (en) Rijndael block cipher apparatus and encryption/decryption method thereof
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
US8213607B2 (en) Method for securely extending key stream to encrypt high-entropy data
WO2006121149A1 (ja) 擬似乱数発生システム、暗号化システム及び復号化システム
US9270462B2 (en) Method and system for conducting high speed, symmetric stream cipher encryption
JPH1022994A (ja) 暗号化装置および復号化装置、暗号化方法および復号化方法、ならびにそれらを用いた通信システム
EP1416664A2 (en) Data encryption method
KR200279546Y1 (ko) 문서 암/복호화장치
KR20060012002A (ko) 암호화/암호 해독 방법, 데이터 암호화/암호 해독 장치,변환 모듈 및 컴퓨터 프로그램 제품
KR100710455B1 (ko) 라인달 블록 암호 장치와 그 암호화 및 복호화 방법
JP6167721B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
JP2000209195A (ja) 暗号通信システム
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
KR100531577B1 (ko) 문서 암/복호화장치
Mohan et al. Revised aes and its modes of operation
KR100667189B1 (ko) 휴대 기기를 위한 aes 암호화 장치 및 방법
CN114826558A (zh) 一种海量数据快速加密方法及系统
KR100668664B1 (ko) Aes 라인달 블록 알고리즘을 이용하는 암호화/복호화장치 및 방법
KR101583285B1 (ko) 확장 키를 이용한 블록 암호화 방법 및 그 방법에 따른 장치
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
JP2001285281A (ja) 暗号方式
JPH10303883A (ja) 暗号化方法
JP2002229444A (ja) ブロック暗号化、復号回路
ManjulaRani et al. An Efficient FPGA Implementation of Advanced Encryption Standard Algorithm on Virtex-5 FPGA’s

Legal Events

Date Code Title Description
U107 Dual application of utility model
REGI Registration of establishment
FPAY Annual fee payment

Payment date: 20050527

Year of fee payment: 4

EXTG Extinguishment