KR100262384B1 - 암호화 방법 및 장치(Encryption Method and Apparatus) - Google Patents

암호화 방법 및 장치(Encryption Method and Apparatus) Download PDF

Info

Publication number
KR100262384B1
KR100262384B1 KR1019970049387A KR19970049387A KR100262384B1 KR 100262384 B1 KR100262384 B1 KR 100262384B1 KR 1019970049387 A KR1019970049387 A KR 1019970049387A KR 19970049387 A KR19970049387 A KR 19970049387A KR 100262384 B1 KR100262384 B1 KR 100262384B1
Authority
KR
South Korea
Prior art keywords
round
encrypted data
data
data blocks
blocks
Prior art date
Application number
KR1019970049387A
Other languages
English (en)
Other versions
KR19990027040A (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 KR1019970049387A priority Critical patent/KR100262384B1/ko
Publication of KR19990027040A publication Critical patent/KR19990027040A/ko
Application granted granted Critical
Publication of KR100262384B1 publication Critical patent/KR100262384B1/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

Abstract

본 발명은 암호화 및 복호화 처리속도의 저하없이 키 길이를 확장시켜 비도를 높일 수 있는 암호화 방법 및 장치에 관한 것이다.
본 발명은 평문 데이터에 대하여 적어도 두 개 이상의 데이터 블럭으로 분할하도록 순열 및 재배열하여, 데이터 블럭에 대하여 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하고, 임의의 라운드에서 중간 결과값에 해당하는 m번째 출력요소를 생성하도록 n개의 암호화된 데이터 블럭에서 m번째 암호화된 데이터 블럭을 제외한 n-1개의 암호화된 데이터 블럭을 배타적 논리합(XOR)으로 연산한다.
본 발명의 암호화 방법 및 장치는 암호화 및 복호화 처리속도의 저하없이 키길이를 확장시켜 비도를 높일 수 있다.

Description

암호화 방법 및 장치(Encryption Method and Apparatus)
본 발명은 디지털 문서에 보안성을 제공하는 암호화 알고리즘에 관한 것으로, 특히 암호화 및 복호화 처리속도의 저하없이 키 길이를 확장시켜 비도를 높일 수 있는 암호화 방법 및 장치에 관한 것이다.
최근, 통신망과 컴퓨터 기술이 급속하게 발달함에 따라 디지털 문서에 대한 보안성이 요구되고 있다. 이 디지털 문서에 보안성을 제공하기 위한 방안으로 평문을 암호문으로 변환하는 암호화 알고리즘이 사용되고 있는 추세에 있다. 이 암호화 알고리즘은 스마트 카드(Smart Card)와 같은 하드웨어의 형태로 구현되거나 또는 중앙처리장치(Central Processing Unit)에 의해 수행될 수 있는 소프트웨어의 형태로 구현된다. 이러한 암호화 소프트웨어 또는 하드웨어는 통신 단말기 등에 적용되어 디지털 방송 정보의 불법시청 또는 디지털 문서의 불법이용을 방지하게 된다.
디지털 문서에 보안성을 제공하기 위한 암호화 알고리즘으로는 1997년 국제표준 알고리즘으로 채택된 디이에스(Data Encryption Standard; 이하 :"DES"라 함)형 암호화/복호화 알고리즘이 금융망과 상업용 통신망 등에서 주로 사용되어 왔었다. DES형 암호화 알고리즘은 반복 블럭 암호화 시스템에 속하는 것으로서 비도가 약한 암호함수를 적절히 반복 사용함으로서 비도를 높인다. 여기서, 암호함수가 적용되는 각 단계 또는 각 블럭들은 "라운드(Round)"라 한다. 각 라운드(RD)에 포함된 암호함수는 단순히 비트연산, 순열(Permutation) 및 대치(Substitution)를 사용함으로서 DES 암호화 시스템이 공개키 암호 시스템(public-key cryptosystem, asymmetric-key system)에 비하여 빠른 속도로 평문을 암호문으로 변환하게 한다. DES형 암호화 시스템은 디지털 문서에 제공될 보안성의 경중에 따라 2라운드(RD), 3라운드(RD), 4라운드(RD) 및 16라운드 등의 형태로 구현될 수 있다.
이들 중, 미국 상무성에서 표준으로 지정한 FIPS PUB 46-2의 16라운드(RD) DES형 암호화/복호화 알고리즘의 동작특성을 살펴보기로 한다. 암호화 또는 복호화는 동일한 알고리즘으로 56개의 키 비트를 사용하며, 한 번에 64비트 데이터 블럭을 암호화한다. 복호화는 암호화와 같은 키를 사용하여 이루어지나 적용되는 키는 암호화의 역순으로 키 스케줄을 적용시킨다. 키에 종속적인 계산은 암호화 함수 f와 키 스케줄링 함수 KS로 정의된다. 암호화 함수 f는 선택함수 Si와 순열(Permutation)함수 P로 나타내어진다. 함수 P와 KS의 알고리즘은 FIPS PUB 46-2의 부록(Appendix)에 나타나 있다.
도 1은 종래의 16 라운드 DES형 암호화 시스템을 블럭도로 나타낸 것이다.
도 1을 참조하면, 종래의 16라운드(RD) DES형 암호화 시스템은 초기순열기(2)에 종속 접속된 제1 내지 제16라운드(RD1 내지 RD16)들을 구비한다. 64비트의 입력 데이터 D가 초기순열기(2)에 공급되면, 초기순열기(2)는 그 입력 데이터 D의 비트 순서를 일정한 규칙에 따라 재배열한다. 그 결과 값의 상위 32 비트와 하위 32비트를 각각 좌측 데이터(L0)와 우측 데이터(R0)라 하며, 이들이 16회의 반복암호화 함수 중 그 첫 번째 라운드의 입력이 된다.
제1 내지 제16 라운드(RD1 내지 RD16)들은 각각 이전 라운드로부터 공급되는 32비트의 좌우측 데이터를 함수처리기(4)와 배타적 논리합 연산기(이하 "XOR연산기"라 함)(6)를 이용하여 암호화된 좌우측 데이터를 생성한다.
제1 내지 제16라운드(RD1 내지 RD16)들의 동작에 따른 암호화 방식을 j번째 라운드(RDj)를 통해 상세히 설명하면, j번째 라운드(RDj)의 암호화에 적용될 입력을(Lj-1, Rj-1)라 하면, 이 입력 데이터 중 우측 데이터(Rj-1)는 함수처리기(4)에 공급됨과 아울러 다음 라운드(RDj+1)에 공급될 좌측 데이터(Lj)가 된다. 암호화 함수처리기(4)는 우측 데이터(Rj-1)와 j번째 라운드(RDj)의 암호화 키(Kj)를 입력으로하여, 이들을 연산처리함으로서 암호함수를 생성하고, 그 암호함수를 XOR 연산기(6)에 공급한다. XOR연산기(6)는 좌측 데이터(Lj-1)와 암호화 함수처리기(4)의 연산결과 값을 XOR 연산하여, 암호화된 우측 데이터(Rj)를 생성한다. 이를 수식으로 표현하면 수식1과 같다.
[수식 1]
Lj= Rj-1
Rj= Lj-1
Figure kpo00001
(Rj-1, Kj)
j번째 라운드(RDj)의 암호화된 우측 데이터(Rj)와 좌측 데이터(Lj)는 후단의 J+1번째 라운드(RDj+1)에 입력 데이터로 공급된다. 이 과정을 16회 반복하여, 제16 라운드(RD16)는 암호화된 좌우측 데이터(L16, R16)를 생성한다. 이들 데이터(L16, R16)는 위치가 서로 교환되어 역순열처리기(8)의 입력으로 공급된다. 그러면, 역순열처리기(8)는 초기 순열 값의 역변환(Inverse Initial Permutation(IP-1))으로 연산처리하여 최종적으로 암호문 C를 생성한다.
도 2는 종래의 비도를 향상시키기 위한 3중 DES형 암호화 시스템을 도시한다.
도 2에 있어서, 종래의 3중 DES 암호화 시스템은 Tuchman에 의해 제안되었다. 3중 암호화/복호화 시스템은 2개의 DES키 KA, KB를 사용하여 아래의 식과 같이 DES암호화 방식을 3회 반복 실시하여 키를 112 비트로 증가시켜 비도를 높이는 방법으로 수식2와 같이 제시하였다.
[수식 2]
암호화 : C = Enc(Dec(Enc(D, KA), KB), KA)
복호화 : D = Dec(Enc(DEC(C, KA), KB), KA)
이때, D는 평문, C는 암호문, Dec는 복호화 함수, 그리고 Enc는 암호화 함수를 나타낸다.
그러나, 종래 기술에 따른 DES형 암호화 알고리즘은 키의 길이가 56 비트밖에 되지 않으므로 마이크로 프로세서 기술의 발달과 새로운 공격방법 예를 들면, 1990년 Biham과 Shamir가 공동으로 발표한 차동 해독법(differential cryptanalysis)의 제안 등으로 인하여 충분한 보안성을 제공하지 못하고 있다. 또한, 112 비트의 키를 갖기 위한 방안으로 3중 암호화 기법을 사용할 경우에는 암호화 속도가 1/3으로 떨어지므로 도시된 종래의 DES형 암호화 알고리즘에 비해 3배의 시간이 소요되는 단점이 있었다.
따라서, 본 발명의 목적은 암호화 및 복호화 처리 속도의 저하없이 키 길이를 확장시켜 비도를 높일 수 있는 암호화 방법 및 장치를 제공함에 있다.
제1도는 종래의 디이에스(DES)형 암호화 시스템을 나타내는 블럭도.
제2도는 종래의 다른 디이에스(DES)형 암호화 시스템을 나타내는 블럭도.
제3도는 본 발명의 제1 실시예에 따른 암호화 시스템을 나타내는 블럭도.
제4도는 제3도에 도시된 본 발명의 셀프 익스클러시브 논리합 연산기(SXOR)의 상세 회로도.
제5도는 본 발명의 제2 실시예에 따른 암호화 시스템을 나타내는 블럭도.
* 도면의 주요부분에 대한 부호의 설명
2, 12, 22, 32, 42 : 초기순열기 4, 14, 24, 34, 44 : 함수처리기
8, 18, 28 : 역순열처리기 10, 20, 30, 40 : DES블럭
6, 16, 26, 36, 32, 46 : 배타적 논리합 연산기(XOR)
상기 목적을 달성하기 위하여, 본 발명에 따른 암호화 방법은 평문 데이터에 대하여 적어도 두 개 이상의 데이터 블럭으로 분할하도록 순열 및 재배열하여, 데이터 블럭에 대하여 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하고, 임의의 라운드에서 중간 결과값에 해당하는 m번째 출력요소를 생성하도록 n개의 암호화된 데이터 블럭에서 m번째 암호화된 데이터 블럭을 제외한 n-1개의 암호화된 데이터 블럭을 배타적 논리합(XOR)으로 연산한다.
본 발명의 암호화 방법은 평문 데이터에 대하여 두 개의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와, 데이터 블럭에 대하여 적어도 두 개 이상의 n개의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와, 임의의 라운드에서 생성된 임의의 m번째 암호화된 데이터 블럭을 제외한 상기 n-1개의 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합(SXOR)으로 연산하는 단계를 포함한다.
본 발명의 암호화 방법은 평문 데이터에 대하여 네 개의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와, 데이터 블럭에 대하여 적어도 네 개 이상의 n개의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와, 두 개의 데이터 블럭이 서로 연관되도록 기수 번째 라운드에서 발생된 암호화된 데이터를 셀프 익스클러시브 논리합으로 연산하는 단계와, 네 개의 데이터 블럭이 서로 연관되도록 우수 번재 라운드에서 발생된 암호화된 데이터 블럭을 셀프 익스클러시브 논리합으로 연산하는 단계를 포함한다.
본 발명의 복호화 방법은 암호문 데이터에 대하여 적어도 두 개 이상의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와, 데이터 블럭에 대하여 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와, 임의의 라운드에서 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합(SXOR)으로 연산하는 단계를 포함한다.
본 발명의 암호화 장치는 입력라인에 접속되어 평문 데이터에 대하여 순열연산함으로서 적어도 두 개 이상의 데이터 블럭으로 재배열하는 순열연산수단과, 순열연산수단에 종속 접속되어 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수 처리와 논리연산을 수행하는 적어도 두 개 이상의 라운드 연산수단과, 임의의 라운드 연산수단에 접속되어 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합으로 연산하는 적어도 하나 이상의 SXOR 연산수단을 구비한다.
본 발명의 복호화 장치는 입력라인에 접속되어 암호문 데이터에 대하여 순열 연산함으로써 적어도 두 개 이상의 데이터 블럭으로 재배열하는 순열연산수단과, 순열연산수단에 종속 접속되어 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 적어도 두 개 이상의 라운드 연산수단과, 임의의 라운드 연산수단에 접속되어 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합으로 연산하는 적어도 하나의 SXOR 연산수단을 구비한다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부한 도면들을 참조한 실시예에 대한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부한 도 3 내지 도 5를 참조하여 상세히 설명하기로 한다.
도 3은 본 발명의 제1 실시예에 따른 암호화 시스템을 나타내는 도면으로써, DES 알고리즘을 근간으로 2개의 DES 블럭을 암호화하는 개략적인 블럭도이다.
도 3을 참조하면, 본 발명의 암호화 시스템은 제1 및 제2 DES 블럭(10, 20)과, 제1 및 제2 DES 블럭(10, 20)의 초기순열기(12, 22)에 종속 접속된 제1 내지 제16 라운드(RD1 내지 RD16)와, 기수 번째 라운드(RD1, RD3, RD5, TD7, …, RD15)의 출력단에 접속된 셀프익스클러시브 논리합 연산기(Self exclusive XOR, 이하 "SXOR 연산기"라 함)(60)를 구비한다.
SXOR 연산기(60)는 자신에게 입력되는 4개의 좌우측 데이터 블럭 중 1개를 제외한 3개의 데이터 블럭을 XOR 연산한다.
본 발명의 암호화 시스템은 암호화 및 복호화 과정 중간에서 2블럭간에 서로 영향을 미치도록 설계함으로써, DES의 취약점인 56비트의 짧은 키를 112 비트로 증가시키고 한 번에 각각 64 비트의 입력 데이터를 입력으로 하는 제1 및 제2 DES 블럭의 128 비트의 입력데이터를 암호화한다. 본 발명의 암호화 시스템은 112비트의 암호키(K)를 사용하는데 K는 2개의 DES에서 사용되는 56 비트의 키, K1과 K2이다. (K={K1, K2}) K1과 K2는 두 DES 블럭, 즉 제1 DES 블럭(10)과 제2 DES 블럭(20)에 각각 적용된다. 각각의 라운드(RD1 내지 RD16)는 각각 자신에게 입력되는 우측 데이터와 키{(K1,1K1,2K1,3…K1,16), (K2,1K2,2K2,3…K2,16)}를 이용하여 우측 데이터에 대한 암호함수를 생성하는 함수처리기(14, 24)와, 함수처리기(14, 24)에 접속되어 자신에게 공급되는 좌측 데이터와 함수처리기(14, 24)로부터의 암호함수를 XOR연산하여 암호화된 우측 데이터{(R1,1R1,2…R1,16), (R2,1R2,2…R2,16)}를 생성하는 XOR 연산기(16,26)를 구비한다. DES의 각 라운드에 적용디는 키는, 제1 DES 블럭(10)에서 제1 내지 제16 라운드에 적용되는 키(K1,1K1,2K1,3…K1,16)와 제2 DES 블럭(20)에서 제1 내지 제16 라운드에 적용되는 키(K2,1K2,2K2,3…K2,16)로서 각 라운드의 함수처리기(14, 24)에 입력된다. 이들 키는 DES의 각 라운드 키 생성방법으로 K1과 K2로 부터 각각 만들어진다.
도 4는 본 발명의 SXOR 연산기를 나타내는 상세 회로도이다.
도 4를 참조하면, 본 발명의 SXOR 연산기는 j번째 라운드(RDj)에서 생성되는 4개의 데이터 블럭(L1,j, R1,j, L2,j, R2,j)중 3개의 데이터 블럭을 XOR 연산하는 XOR 연산기(62)를 구비한다.
XOR 연산기(62)는 4개의 데이터 블럭(L1,j, R1,j, L2,j, R2,j)중 자신의 출력 데이터 블럭에 대응되는 입력 데이터 블럭을 제외한 주변의 3개의 데이터 블럭을 XOR 연산하여 새로운 좌우측 데이터 블럭(L'1,j, R'1,j, L'2,j, R'2,j)을 생성한다.
이와 같은 SXOR 연산기(60)의 SXOR 연산특성에 의하여 역연산이 존재한다. 즉, SXOR 연산기(60)의 4개의 출력 데이터 블럭(L'1,j, R'1,j, L'2,j, R'2,j) 으로 부터 4개의 역연산 데이터 블럭(L1,j, R1,j, L2,j, R2,j)은 아래와 같이 수식 3으로 구할 수 있다.
[수식 3]
L1,j= R'1,j
Figure kpo00002
L'2,j
Figure kpo00003
R'2,j
R1,j= L'1,j
Figure kpo00004
L'2,j
Figure kpo00005
R'2,j
L2,j= L'1,j
Figure kpo00006
R'1,j
Figure kpo00007
R'2,j
R2,j= L'1,j
Figure kpo00008
R'1,j
Figure kpo00009
L'2,j
도 3과 같은 2개의 DES 블럭을 동시에 암호화하는 본 발명의 암호화 처리수순을 상세히 설명하면, 제1 및 제2 DES 블럭(10, 20)에는 각각 2개의 8바이트(64비트) 데이터 블럭(D1, D2)이 공급된다. 이들 데이터 블럭(D1, D2)은 초기순열기(12, 22)에 의해 일정한 규칙에 따라 비트 순서가 재배열되어, 그 결과 값의 상위 4바이트(32 비트)와 하위 4바이트(32비트)로 나뉘어진다. 이들 각각은 제1 DES 블럭(10)에서 제1 라운드(RD1)의 입력 데이터 블럭(L1,0, R1,0)과, 제2 DES 블럭(20)에서 제1 라운드(RD1)의 입력 데이터 블럭(L2,0, R2,0)으로 공급된다. 이때 각 DES 블럭에 적용되는 키(K1, K2)는 56비트의 길이를 갖는다. 그러면, j번째 라운드(RDj)에서 제1 DES 블럭(10)의 암호화에 적용되는 좌우측 데이터 블럭을(L1,j-1, R1,j-1)이라 하면, 이 입력 데이터 중 우측 데이터(R1,j-1)는 함수처리기(14)에 공급됨과 아울러 다음 라운드(RDj+1)에 공급되는 좌측 데이터(L1,j)가 된다. 암호화 함수처리기(14)는 우측 데이터(R1,j-1)와 j번째 라운드(RDj)의 암호화 키(K1,j)를 입력으로 하여, 이들을 연산처리함으로서 암호함수를 생성하고, 그 암호함수를 XOR 연산기(16)에 공급한다. XOR 연산기(16)는 좌측 데이터(L1,j-1)와 함수처리기(14)의 연산결과 값을 XOR 연산하여, 암호화된 우측 데이터(R1,j)를 생성한다. 동일한 처리수순에 의하여, 제2 DES 블럭(20)의 j번째 라운드(RDj)는 암호화된 좌우측 데이터(L2,j, R2,j)를 생성한다. 이를 수식으로 표현하면 수식 4와 같다.
[수식 4]
L1,j= R1,j-1
R1,j= f(R1,j-1, K1,j)
Figure kpo00010
L1,j-1
L2,j= R2,j-1
R2,j= f(R2,j-1, K2,j)
Figure kpo00011
L2,j-1
이때 j가 "우수"이면 현재의 출력 데이터 블럭(L1,j, R1,j, L2,j, R2,j)을 그대로 j+1번째 라운드(RDj+1)의 입력으로 사용하며, j가 "기수"이면 이 출력은 SXOR 연산기(60)에 의해 SXOR(Self XOR)연산되어 새로운 4개의 데이터 블럭(L'1,j, R'1,j, L'2,j, R'2,j)을 생성한다. 이를 수식으로 표현하면 수식 5와 같다.
[수식 5]
L'1,j= R1,j
Figure kpo00012
L2,j
Figure kpo00013
R2,j
R'1,j= L1,j
Figure kpo00014
L2,j
Figure kpo00015
R2,j
L'2,j= L1,j
Figure kpo00016
R1,j
Figure kpo00017
R2,j
R'2,j= L1,j
Figure kpo00018
R1,j
Figure kpo00019
L2,j
이들 4개의 새로운 데이터 블럭(L'1,j, R'1,j, L'2,j, R'2,j)을 j+1번째 라운드(RDj+1)의 입력으로 사용한다. 제1 내지 제16 라운드(RD1 내지 TD16)와 기수 번째 라운드(RD1, RD3, RD5, …RD15)의 출력단에 접속된 SXOR 연산기(60)의 동작은 상기한 j번째 라운드(RDj)와 동일하게 동작한다. 이러한 반복적인 암호화 알고리즘에 의하여 마지막 라운드 즉, 제16 라운드(RD16)의 암호화된 출력 데이터 블럭(L1,16, R1,16, L2,16, R2,16)이 생성되면, 제1 DES 블럭(10)에서 생성된 좌우측 데이터블럭(L1,16, R1,16)과, 제2 DES 블럭(20)에서 생성된 좌우측 데이터 블럭(L2,16, R2,16)은 각각 좌우측 데이터 블럭의 값이 교환되어 역순열처리기(18, 28)에 공급된다. 그러면, 역순열처리기(18, 28)는 초기 순열 값의 역변환(Inverse Initial Permutatiom(IP-1))으로 연산처리하여 16 바이트의 암호문(C1, C2)을 생성한다.
이와 같이 생성된 암호문(C1, C2)에 대하여 평문을 구하기 위한 복호화 방법에 대한 처리수순을 살펴보면, 위와 같은 알고리즘에 의하여 암호화된 암호문(C1, C2)으로부터 암호화 과정과 동일한 방법으로 수행된다. 먼저, 암호문(C1, C2)으로부터 C1과 C2를 각각 초기순열(IP)을 취하여 수식 6과 같이 각각 4바이트(32비트)를 이루어진 좌우측 데이터 블럭(L1,16, R1,16, L2,16, R2,16)으로 재배열한다.
[수식 6]
(R1,16, L1,16) = IP(C1)
(R2,16, L2,16) = IP(C2)
재배열된 좌우측 데이터 블럭(L1,16, R1,16, L2,16, R2,16)으로부터 복호화 과정을 제16 라운드(RD16)에서 제1 라운드(RD1)까지 16회 반복 수행한다. 이들 라운드(RD16 내지 RD1)중 j번째 라운드(RDj)의 처리수순을 살펴보기로 한다. j번째 라운드(RDj)에 입력되는 데이터 블럭을(L1,j, R1,j, L2,j, R2,j)라 하면, 이 라운드(RDj)의 출력은 수식7과 같이 나타난다.
[수식 7]
R'1,j-1= L1,j
L'1,j= R1,j
Figure kpo00020
f(L1,j, K1,j)
R'2,j-1= L2,j
L2,j-1= R2,j
Figure kpo00021
f(L2,j, K2,j)
여기서, j-1이 "우수"이면 출력 데이터 블럭(L'1,j-1, R'1,j-1, L'2,j-1, R'2,j-1)을 그대로 j-1번째 라운드(RDj-1)의 입력으로 사용하며, j가 "기수"이면 이 출력은 SXOR 연산기(60)에 의해 SXOR(Self exclusive XOR)연산되어 새로운 4개의 데이터 블럭(L1,j-1, R1,j-1, L2,j-1, R2,j-1)을 아래의 수식 8과 같은 방법으로 구하여 j-1번째 라운드(RDj-1)에 입력으로 공급한다.
[수식 8]
R1,j-1= L'1,j-1
Figure kpo00022
L'2,j-1
Figure kpo00023
R'2,j-1
L1,j-1= R'1,j-1
Figure kpo00024
L'2,j-1
Figure kpo00025
R'2,j-1
R2,j-1= L'1,j-1
Figure kpo00026
L'2,j-1
Figure kpo00027
R'2,j-1
L2,j-1= R'1,j-1
Figure kpo00028
L'2,j-1
Figure kpo00029
R'2,j-1
j-1번째 라운드(RDj-1)내지 제1 라운드(RD1)를 위와 같이 반복수행하여, 최종적으로 제1 라운드(RD1)에서 출력 데이터 블럭(R1,1, L1,1, R2,1, L2,1)을 생성하면 암호화 과정과 마찬가지로, 좌측과 우측 데이터 블럭을 교환하여 역순열처리기(18, 28)에 공급한다. 그러면, 역순열처리기(18, 28)는 초기순열 값의 역변환(Inverse Initial Permutation(IP-1))으로 연산처리하여 각각 8바이트로 이루어진 16바이트의 평문 데이터 블럭 D1과 D2를 구할 수 있다.
도 5는 본 발명의 제2 실시예에 따른 암호화 시스템을 나타내는 블럭도이다.
도 5를 참조하면, 본 발명의 암호화 시스템은 제1 내지 제4 DES 블럭(10, 20, 30, 40)과, 제1 내지 제4 DES블럭(10, 20, 30, 40)의 초기순열기(12, 22, 32, 42)에 종속 접속된 제1 내지 제16 라운드(RD1 내지 RD16)와, 기수 번째 라운드(RD1, RD3, RD5, RD7,…, RD15)의 출력단에 접속된 제1 SXOR 연산기(60)와 우수 번째 라운드(RD2, RD4, TD6, TD8, …, RD14)의 출력단에 접속된 제2 SXOR 연산기(50)를 구비한다.
4개의 제1 내지 제4 DES 블럭(10, 20, 30, 40)에 본 발명의 암호화 및 복호화 알고리즘을 적용하는 경우, 각각 8바이트로 이루어진 32바이트의 평문 입력 데이터(D1, D2, D3, D4)를 동시에 입력으로 받아 각 DES 블럭의 키 K1, K2, K3, 및 K4를 키로 사용하여 총 224비트의 키 효과를 얻는다.
이러한 암호화 처리수순을 설명하면, 제1 내지 제4 DES 블럭(10, 20, 30, 40)에는 각각 32 바이트의 평문 입력 데이터(D1, D2, D3, D4)가 공급된다. 이들 데이터 블럭(D1, D2, D3, D4)은 각각의 DES 블럭의 초기순열기(12, 22, 32, 42)에 의해 비트 순서가 재배열되어, 그 결과 값의 상위 4바이트(32비트)와 하위 4바이트(32비트)로 나뉘어져 제1 라운드(RD1)의 좌우측의 입력 데이터 블럭(L1,0, R1,0, L2,0, R2,0, L3,0, R3,0, L4,0, R4,0)으로 공급된다. 제1 라운드(RD1)는 함수처리기(14, 24, 34, 44)와 XOR 연산기(16, 26, 36, 36)를 이용하여 암호화된 좌우측 데이터 블럭(L1,1, R1,1, L2,1, R2,1,L3,1, R3,1, L4,1, R4,1)을 생성한다. 제1 SXOR 연산기(60)는 제1 라운드(RD1)의 출력중, 제1 DES블럭(10)과 제2 DES 블럭(20)에서 생성된 4개의 데이터 블럭(L1,1, R1,1, L2,1, R2,1)중 3개의 데이터 블럭을 XOR 연산하여 제2 라운드(RD2)의 입력 데이터블럭(L'1,1, R'1,1, L'2,1, R'2,1)으로 공급한다. 마찬가지로, 제1라운드(RD1)의 출력 중 제3 DES블럭(30)과 제3 DES 블럭(40)에서 생성된 4개의 데이터 블럭(L3,1, R3,1, L4,1, R4,1)중 3개의 데이터 블럭은 제1 SXOR 연산기(60)에 의하여 XOR 연산되어 제2 라운드(RD2)의 입력 데이터 블럭(L'3,1, R'3,1, L'4,1, R'4,1)으로 공급된다. 그러면, 제2 라운드(RD2)는 함수처리기(14, 24, 34, 44)와 XOR 연산기(16, 26, 36, 36)를 이용하여 암호화된 좌우측 데이터 블럭(L1,2, R1,2, L2,2, R2,2,L3,2, R3,2, L4,2, R4,2)을 생성한다. 이들 데이터 블럭(L1,2, R1,2, L2,2, R2,2,L3,2, R3,2, L4,2, R4,2)중, 제2 SXOR 연산기(50)에 의해 제1 및 제3 DES 블럭(10, 30)의 출력 데이터 블럭(L1,2, R1,2, L3,2, R3,2)은 SXOR 연산되어 새로운 데이터 블럭(L'1,2, R'1,2, L'3,2, R'3,2)으로 변환되어 제3 라운드(RD3)에 공급된다. 그리고 제2 라운드(RD2)의 제2 및 제4 DES 블럭(20, 40)의 출력 데이터 블럭(L2,2, R2,2, L4,2, R4,2)은 별도의 제2 SXOR 연산기(50)에 의해 SXOR 연산되어 새로운 데이터 블럭(L'2,2, R'2,2, L'4,2, R'4,2)으로 변환되어 제3 라운드(RD3)에 공급된다.
이와 같은 방법으로, 기수 번째 라운드(RD1, RD3, RD5, RD7, RD9, RD11, RD15)의 출력은 제1 라운드(RD1)와 동일한 방법으로 제1 SXOR 연산기(60)에 의해 SXOR 연산되어 다음 라운드에 공급된다. 그리고 우수 번째 라운드(RD2, RD4, RD6, RD8, RD10, RD12, RD14, 단 16라운드는 제외)의 출력은 제2 라운드(RD2)와 같은 방법으로 각각 기수 번째 DES 블럭(10, 30)과 우수 번째 DES 블럭(20, 40)의 출력 데이터 블럭을 XOR 연산하는 2개의 제2 SXOR 연산기(50)에 의해 SXOR 연산되어 다음 라운드에 공급된다. 최종적으로, 제16 라운드(RD16)의 암호화된 출력 데이터 블럭(L1,16, R1,16, L2,16, R2,16, L3,16, R3,16, L4,16, R4,16)이 생성되면, 각각의 DES블럭(10, 20, 30, 40)은 이들 데이터 블럭 값을 교환하여 초기순열 값의 역변환(IP-1)으로 연산처리함으로서 32 바이트의 암호문(C1, C2, C3, C4)이 생성된다.
복호화 과정은, 위와 같은 암호화 알고리즘에 의하여 암호화된 암호문(C1, C2, C3, C34)으로부터 암호화 과정과 같은 방법으로 수행된다. 따라서, 이와 같은 암호화 및 복호화 알고리즘에 의하여 암호화 또는 복호화 함으로써 224 비트의 키효과를 가진다.
결과적으로, 본 발명의 암호화 방법 및 장치는 56 비트 키를 사용하는 적어도 두 개 이상의 DES 블럭을 동시에 암호화 및 복호화를 수행하여 기수 번째 라운드의 출력단에서 중간결과 값을 SXOR를 취함으로써 적어도 두 개 이상의 DES블럭에 적용된 각각의 키가 DES 블럭간에 서로 영향을 주게 되어, 암호화 속도의 감소없이 키 확장 효과를 얻을 수 있다.(예를 들면, 2개의 DES 블럭을 동시에 암호화 또는 복호화하는 경우 112 비트로 키가 확장되고, 4개의 DES 블럭을 동시에 암호화 또는 복호화하는 경우 224로 키를 확장할 수 있다.)
본 발명의 암호화 방법 및 장치에서 2개 또는 4개의 DES 블럭이 8바이트의 입력 데이터 블럭(D1=D2(=D3=D4))으로 취하면, 56비트의 DES 키를 두 개 또는 네 개의 DES 블럭키(K1=K2(=K3=K4))로 같이 사용할 경우에 생성되는 암호문(C1=C2(=C3=C4))은 8바이트 평문 데이터를 DES로 암호화 한 것과 동일하기 때문에 종래의 DES형 암호 알고리즘과 호한성을 가진다.
상술한 바와 같이, 본 발명의 암호화 방법 및 장치는 암호화 및 복호화 처리속도의 저하없이 키 길이를 확장시켜 비도를 높일 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구의 범위에 의해 정하여 져야만 할 것이다.

Claims (19)

  1. 평문 데이터에 대하여 적어도 두 개 이상의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와; 상기 데이터 블럭에 대하여 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와; 임의의 라운드에서 중간 결과값에 해당하는 m번째 출력요소를 생성하도록 n개의 암호화된 데이터 블럭에서 m번째 암호화된 데이터 블럭을 제외한 n-1개의 암호화된 데이터 블럭을 배타적 논리합(XOR)으로 연산하는 단계를 포함하는 것을 특징으로 하는 암호화 방법.
  2. 평문 데이터에 대하여 적어도 두 개의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와; 상기 데이터 블럭에 대하여 적어도 두 개 이상의 n개의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와; 상기 임의의 라운드에서 생성된 상기 임의의 m번째 암호화된 데이터 블럭을 제외한 상기 n-1 개의 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합(SXOR)으로 연산하는 단계를 포함하는 암호화 방법.
  3. 제3항에 있어서, 상기 각각의 데이터 블럭에 대하여 상기 라운드에서 56비트의 키가 공급되어 112 비트의 키로 상기 암호화된 데이터 블럭을 생성하는 것을 특징으로 하는 암호화 방법.
  4. 제3항에 있어서, 상기 셀프 익스클러시브 논리합으로 연산하는 단계는 기수 번째 상기 라운드에서 생성된 상기 암호화된 데이터 블럭을 논리연산하는 것을 특징으로하는 암호화 방법.
  5. 제3항에 있어서, 상기 임의의 j-1번째 라운드에서 생성된 상기 암호화된 데이터 블럭을 각각
    L1,j= R1,j-1
    R1,j= f(R1,j-1, K1,j)
    Figure kpo00030
    L1,j-1
    L2,j= R2,j-1
    R2,j= f(R2,j-1, K2,j)
    Figure kpo00031
    L2,j-1
    여기서, "
    Figure kpo00032
    " 배타적 논리합(XOR)연산을 의미하고,
    암호화된 데이터 블럭(L1,j, R1,j, L2,j, R2,j)이 j번째 라운드에서 생성되는 것을 특징으로 하는 암호화 방법.
  6. 제3항 또는 제 6항에 있어서,
    상기 j번째 라운드가 기수 번째 라운드이고,
    상기 j번째 라운드에서 발생한 암호화된 데이터가 각각 L1,j, R1,j, L2,j, R2,j라면, 상기 암호화된 데이터는 셀프익스클러시브 논리합으로 연산되어,
    L'1,j= R1,j
    Figure kpo00033
    L2,j
    Figure kpo00034
    R2,j
    R'1,j= L1,j
    Figure kpo00035
    L2,j
    Figure kpo00036
    R2,j
    L'2,j= L1,j
    Figure kpo00037
    R1,j
    Figure kpo00038
    R2,j
    R'2,j= L1,j
    Figure kpo00039
    R1,j
    Figure kpo00040
    L2,j
    여기서 "
    Figure kpo00041
    "는 배타적 논리합(XOR)연산을 의미하고,
    L'1,j, R'1,j, L'2,j, R'2,j의 암호화된 데이터 블럭들을 생성하는 것을 특징으로 하는 암호화 방법.
  7. 제3항에 있어서, 우수 번째 상기 라운드에서 발생한 암호화된 데이터 블럭은 셀프 익스클러시브 논리합으로 연산되지 않는 것을 특징으로 하는 암호화 방법.
  8. 제3항에 있어서, 최종단에 위치한 상기 라운드에서 발생한 상기 암호화된 데이터에 대하여 상기 순열의 역연산을 수행하여 상기 암호문 데이터를 발생하는 것을 특징으로 하는 암호화 방법.
  9. 평문 데이터에 대하여 네 개으 데이터 블럭으로 분할하도록 순열 및 재배열 하는 단계와;
    상기 데이터 블럭에 대하여 적어도 네 개 이상의 n개의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와;
    상기 두 개의 데이터 블럭이 서로 연관되도록 상기 기수 번째 라운드에서 발생된 상기 암호화된 데이터를 셀프 익스클러시브 논리합으로 연산하는 단계와;
    상기 네개의 데이터 블럭이 서로 연관되도록 상기 우수 번째 라운드에서 발생된 상기 암호화된 데이터 블럭을 셀프 익스클러시브 논리합으로 연산하는 단계를 포함하는 암호화 방법.
  10. 제10항에 있어서, 상기 각각의 데이터 블럭에 대하여 상기 라운드에서 56비트의 키가 공급되어 224 비트의 키로 상기 암호화된 데이터 블럭을 생성하는 것을 특징으로 하는 암호화 방법.
  11. 암호문 데이터에 대하여 적어도 두 개 이상의 데이터 블럭으로 분할하도록 순열 및 재배열하는 단계와;
    상기 데이터 블럭에 대하여 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 라운드를 반복적으로 수행하는 단계와;
    상기 임의의 라운드에서 상기 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합(SXOR)으로 연산하는 단계를 포함하는 복호화 방법.
  12. 제12항에 있어서, 최종단에 위치한 상기 라운드에서 발생한 상기 데이터 블럭에 대하여 상기 순열의 역연산을 수행하여 상기 평문 데이터를 발생하는 것을 특징으로 하는 복호화 방법.
  13. 입력라인에 접속되어 평문 데이터에 대하여 순열연산함으로서 적어도 두 개 이상의 데이터 블럭으로 재배열하는 순열연산수단과;
    상기 순열연산수단에 종속 접속되어 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 적어도 두 개 이상의 라운드 연산수단과;
    상기 임의의 라운드 연산수단에 접속되어 상기 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합으로 연산하는 적어도 하나 이상의 SXOR 연산수단을 구비한 것을 특징으로 하는 암호화 장치.
  14. 제14항에 있어서, 상기 라운드 연산수단은 상기 각각의 데이터 블럭에 대하여 공급되는 키를 이용하여 연산을 수행하는 것을 특징으로 하는 암호화 장치.
  15. 제14항에 있어서, 상기 최종 라운드 연산수단에 접속되어 상기 암호화된 데이터 블럭에 대하여 상기 순열의 역연산을 수행하여 암호문 데이터를 발생하는 역순열 연산수단을 추가로 구비한 것을 특징으로 하는 암호화 장치.
  16. 제14항에 있어서, 상기 SXOR 연산수단은 상기 기수 번째 라운드 연산수단의 출력단에 접속되어 상기 암호화된 데이터 블럭을 셀프 익스클러시브 논리합으로 연산하는 것을 특징으로 하는 암호화 장치.
  17. 제14항에 있어서, 상기 SXOR 연산수단은 상기 우수 번째 라운드 연산수단의 출력단에 접속되어 상기 기수 번째 DES 블럭의 상기 암호화된 데이터 블럭을 셀프 익스클러시브 논리합으로 연산하는 것을 특징으로 하는 암호화 장치.
  18. 입력라인에 접속되어 암호문 데이터에 대하여 순열연산함으로서 적어도 두개 이상의 데이터 블럭으로 재배열하는 순열연산수단과;
    상기 순열연산수단에 종속 접속되어 적어도 두 개 이상의 암호화된 데이터 블럭을 생성하도록 키를 이용한 함수처리와 논리연산을 수행하는 적어도 두 개 이상의 라운드 연산수단과;
    임의의 상기 라운드 연산수단에 접속되어 상기 암호화된 데이터 블럭에 대하여 셀프 익스클러시브 논리합으로 연산하는 적어도 하나의 SXOR 연산수단을 구비한 것을 특징으로 하는 복호화 장치.
  19. 제19항에 있어서, 상기 최종 라운드 연산수단에 접속되어 상기 암호화된 데이터 블럭에 대하여 상기 순열연산의 역연산을 수행하여 상기 평문 데이터를 발생하는 역순열 연산수단을 추가로 구비한 것을 특징으로 하는 복호화 장치.
KR1019970049387A 1997-09-27 1997-09-27 암호화 방법 및 장치(Encryption Method and Apparatus) KR100262384B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970049387A KR100262384B1 (ko) 1997-09-27 1997-09-27 암호화 방법 및 장치(Encryption Method and Apparatus)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970049387A KR100262384B1 (ko) 1997-09-27 1997-09-27 암호화 방법 및 장치(Encryption Method and Apparatus)

Publications (2)

Publication Number Publication Date
KR19990027040A KR19990027040A (ko) 1999-04-15
KR100262384B1 true KR100262384B1 (ko) 2000-08-01

Family

ID=19521838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970049387A KR100262384B1 (ko) 1997-09-27 1997-09-27 암호화 방법 및 장치(Encryption Method and Apparatus)

Country Status (1)

Country Link
KR (1) KR100262384B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494560B1 (ko) * 2002-11-23 2005-06-13 한국전자통신연구원 Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
KR101129335B1 (ko) * 2010-06-07 2012-03-26 동국대학교 경주캠퍼스 산학협력단 데이터 분산 저장 및 복원 방법 및 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960006386A (ko) * 1994-07-08 1996-02-23 양승택 디지틀 정보의 암호화 및 복호화 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960006386A (ko) * 1994-07-08 1996-02-23 양승택 디지틀 정보의 암호화 및 복호화 방법

Also Published As

Publication number Publication date
KR19990027040A (ko) 1999-04-15

Similar Documents

Publication Publication Date Title
EP0725511B1 (en) Method for data encryption/decryption using cipher block chaining (CBC) and message authentication codes (MAC)
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5815573A (en) Cryptographic key recovery system
EP2279579B1 (en) A closed galois field cryptographic system
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
US7783045B2 (en) Secure approach to send data from one system to another
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
US20030002663A1 (en) Method and apparatus for data encryption
Mahendran et al. Generation of key matrix for hill cipher encryption using classical cipher
JP2000511755A (ja) バイナリーコード情報を暗号化する方法
US7093126B1 (en) Encryption schemes with almost free integrity awareness
EP0996250A2 (en) Efficient block cipher method
EP2717511A1 (en) Method and device for digital data blocks encryption and decryption
JPH11298471A (ja) ブロック暗号化方法及び装置
KR100262384B1 (ko) 암호화 방법 및 장치(Encryption Method and Apparatus)
CN114826558A (zh) 一种海量数据快速加密方法及系统
JP3035889B2 (ja) 暗号化処理装置、及び、復号化処理装置
RU2206961C2 (ru) Способ итеративного блочного шифрования двоичных данных
JP2001016197A (ja) 自己同期型ストリーム暗号システム及びこれを用いたmac生成方法
KR20030083326A (ko) 암호화 방법
JP2000089666A (ja) 暗号化/復号化装置
JPS6281145A (ja) デ−タ暗号化方式
GB2463031A (en) Encrypting data or providing an encryption key
JP3442010B2 (ja) 暗号化処理装置、及び、復号化処理装置
KR100965874B1 (ko) Ckc 암호화/복호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030428

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee