KR19980027399A - 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치 - Google Patents

셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치 Download PDF

Info

Publication number
KR19980027399A
KR19980027399A KR1019960046163A KR19960046163A KR19980027399A KR 19980027399 A KR19980027399 A KR 19980027399A KR 1019960046163 A KR1019960046163 A KR 1019960046163A KR 19960046163 A KR19960046163 A KR 19960046163A KR 19980027399 A KR19980027399 A KR 19980027399A
Authority
KR
South Korea
Prior art keywords
mask
value
data
block
key
Prior art date
Application number
KR1019960046163A
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 KR1019960046163A priority Critical patent/KR19980027399A/ko
Publication of KR19980027399A publication Critical patent/KR19980027399A/ko

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

본 발명은 암호 시스템에 대한 새로운 접근 방법으로서 광역 상호작용을 갖는 셀룰라 오토마타 이론을 암호 시스템에 적용하는 기술에 관한 것으로, 종래의 DES에서는 S-박스를 분석하여 키이를 알아내고 그 키이를 이용하여 원래의 데이타를 분석하는데 많은 어려움이 따르지 않으므로 그 만큼 보안성이 떨어지는 결함이 있다.
따라서, 본 발명은 이를 해결하기 위하여, 본 발명의 블록 암호화 시스템에서는 기존의 암호화 시스템들과 비교해 볼 때 광역 상호작용을 갖는 CA모델을 사용하였고, 사용자 키이와 데이타 블록과의 비선형 상호작용을 포함시키는 등 여러가지 새로운 기술을 도입하였으며, 그 결과 본 발명에서 제시한 새로운 디자인 목표가 만족되어 DES등에서 지목되는 보안성의 약점이 해결되었다.

Description

셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치
제 1도는 일반적인 비밀키이 시스템의 전체 블록도.
제 2도는 페이스텔 네트워크의 기본 구조를 보인 개념도.
제 3도는 DES 시스템의 전체 신호 흐름을 보인 개념도.
제 4도는 한 라운드 DES의 구조를 보인 개념도.
제 5도는 S-박스의 상세도.
제 6도는 본 발명의 일실시예에서의 비선형함수의 구조를 보인 개념도.
제 7도는 본 발명의 다른 일실시예에서의 비선형함수의 구조를 보인 개념도.
제 8도는 본 발명의 일실시예에서 임의로 선정된 마스크 값들을 보인 표.
제 9도는 본 발명에서 사용된 64비트 사용자 키이의 예시도.
제 10도는 첫번째 라운드에 의한 입력 평문(x축)과 출력 암후문(y축)의 분산 특성 그래프.
제 11도는 첫번째 라운드 통과 후의 C1(1)과 C2(1)의 분산 특성 그래프.
제 12도는 두번째 라운드 통과 후의 C1(2)과 C2(2)의 분산 특성 그래프.
제 13도는 4라운드 통과 후의 분산효과를 보인 표.
제 14도는 본 발명의 실시예에서 임의로 선정한 마스크 값들을 보인 표.
제 15도는 본 발명에 사용된 사용자 키이를 바이트별로 정수별로 표현한 표.
제 16도는 첫번째 라운드 통과 후의 C1(1)과 C2(1)의 분산 특성 그래프.
제 17도는 두번째 라운드 통과 후의 C1(2)과 C2(2)의 분산 특성 그래프.
제 18도는 4라운드 통과 후의 분산 효과를 보인 표.
제 19도는 마스크 요소의 갯수 N을 30으로 하였을 때 첫번째 라운드 통과 후의 C1(1)과 C2(1)의 분산 특성 그래프.
*도면의 주요 부분에 대한 부호의 설명*
AD61-AD63,AD71-AD73; 앤드게이트
XOR61,XOR71; 익스클루시브오아게이트
본 발명은 암호 시스템에 대한 새로운 접근 방법으로서 광역 상호작용을 갖는 셀룰라 오토마타(Global Interaction Cellular Automation) 이론을 암호 시스템에 적용하는 기술에 관한 것으로, 특히 셀룰라 오토마타 특성을 이용하여 처리 속도가 빠르고 보안성이 뛰어나며 디자인 특성이 매우 유연하도록 하는데 적당하도록한 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치에 관한 것이다.
제 1도는 일반적인 비밀키이 시스템의 전체 블록도를 보인 것으로 이에 도시한 바와 같이, 송신측(10)의 암호 시스템(13)에서는 입력되는 평문(11)을 비밀키이(12)를 이용하여 암호문으로 변환하고, 이렇게 변환된 암호문(14)이 공중통신망(PL)으로 송출된다. 한편, 수신측(20)의 해독 시스템(23)에서는 상기 공중통신망(PL)을 통해 수신되는 암호문(21)을 입력받아 비밀 통신망(SL)을 통해 수신된 비밀키이(22)를 이용하여 상기 암호 시스템(13)의 역과정을 수행하여 원래의 평문(24)을 복원해 내게 된다.
상기 제1도의 암호 시스템(13)등에 적용되는 블록 암호화 알고리즘에는 지금까지 수많은 방법들이 제안되었지만 널리 연구되어 현재까지 사용되고 있으며 보안성 측면에서 비교의 표준이 되고 있는 DES(Data Enscription Standard)에 대하여 살펴보고 그 장단점을 살펴보기로 한다. 또한, 셀룰라 오토마타(CA)를 이용한 몇가지 암호 알고리즘에 대하여 살펴보고 이와도 비교해 보기로 한다.
DES는 1976년 미국 정부에 의해 국가 표준 암호화 알고리즘으로 공표되면서 널리 사용되게 되었고, 그 보안성에 대하여 오랜 기간동안 연구되어져 왔던 블록 암호화 알고리즘이다. 이것은 64bit의 데이타 블록과 64bit의 사용자 키이로 이루어지는데, 그 데이타 블록이 다시 두개의 32bit 블록 L과 R로 나뉘어진 후 다음의 (식1)과 제 2도로 표현되는 가역적인 페이스텔 네트워크에서 16라운드만큼 반복적으로 암호화 처리되어 데이타가 충분히 분산되고, 이로 인하여 랜덤하게 보이는 암호문을 얻을 수 있게 된다.
Li= Ri-1
Ri= Li-1 f(Ri-1, Ki)(식1)
반대로 암호문에서 평문을 복원하고자 할 때는 키이를 반대 순서로 사용하고 암호화 과정에서 사용된 페이스텔 네트워크와 동일한 페이스텔 네트워크를 통과시키면 다음의 (식2)에서와 같이 원래의 평문을 얻을 수 있다.
Ri-1= Li
Li-1= Ri f(Li, Ki)(식2)
여기서, 비선형 함수 f는 이론적으로는 어떤 형태가 되어도 상관없으나 DES에서는 비선형 S-박스(Substitution)를 이용하였다. 이것은 치환 박스(Substitution)라는 참조표를 미리 만들어 두고 입력 데이타를 번지수로 하는 참조표의 값을 취하여 이것을 새로운 데이타로 출력하는 방법이다. DES 알고리즘은 통상적으로 널리 알려진 기술이므로 여기에서는 자세한 설명을 생략하고 첨부한 제 3도 내지 제 5도를 이용하여 간단히 설명한다.
제 3도는 16라운드의 전체 DES에서의 데이타 흐름을 보여주는 것으로, 여기서 IP는 초기 순열(Initial Permutation), K1-K16은 키이 스케쥴을 통과한 라운트 키이를,는 익스클루시브오아 연산기를 나타내며, f는 비선형 함수를 나타낸다.
제 4도는 한 라운드의 DES를 보여주는 것으로 이에 도시한 바와 같이, 하나의 데이타 블록(Ri-1)이 확장부(41)를 통해 소정의 비트수를 갖는 순열로 변환되고, 다시 S-박스(43)를 통해 비트수가 치환된 후 P-박스(44)를 통해 원하는 비트수의 순열로 된다. 또한, 각각의 라운드 키이(46)는 키이 시프트(47A),(47B)와 압축 순열(Compression Permutation)(48)의 처리과정을 통해 48bit의 라운드 키이(49)로 된다.
확장 순열(41)을 통해 48bit가 된 오른쪽의 데이타 블록 R과 48bit 라운드 카이(46)가 익스클루시브오아게이트(42)를 통해 익스클루시브오아 연산된 후 상기 S-박스(43)를 통해 32bit의 블록으로 된다.
제 5도는 상기 S-박스(43)의 일실시 구현예를 보인 상세도로서 이에 도시한 바와 같이, 48bit 입력(48-bit input)이 각각 8개의 6bit 블록으로 분리된 후 독립적으로 각각의 S-박스(S-Box1∼S-Box8)를 통해 8개의 4bit 출력으로 변환되고, 다시 이들이 모아져 32bit의 출력(32-Bit Output)이 된다.
여기에서 DES에 대하여 이와 같이 자세히 설명하는 이유는 암호 시스템을 분석하여 카이를 얻어내고자 하는 해커들에게 이러한 구조가 다음과 같은 몇가지 약점을 갖기 때문이다.
1) 함수 f는 데이타블록 R과 키이 K의 어떤 함수가 되어도 상관 없는데, 여기에서는 간단한 가역적인 익스클루시브오아 함수만을 사용했기 때문에 전후의 데이타 블록이 주어진 경우 S-박스만을 분석해내면 키이 K를 쉽게 계산할 수 있게 된다. 그러므로 이 시스템의 보안성은 전적으로 S-박스의 구조에 의존하게 된다.
2) S-박스는 48bit의 입력으로 부터 32bit의 출력을 얻어내는 역활을 하는데, 실제로는 데이타 블록이 8개의 6bit 입력으로 나누어지고 각기 독립적으로 S-박스를 통과하여 8개의 4bit 출력이 되므로 이들을 분리하여 분석함으로써 용이하게 분석할 수 있게 된다.
3) 그러므로 이러한 시스템에서 보안성에 가장 큰 영향을 미치는 중요한 요소로 S-박스를 들 수 있다. 따라서, DES에서는 보안성을 높이도록 S-박스의 구조를 최적화 시키는 것이 요구되고 있는데, S-박스의 구조를 임의로 바꾸는 경우 보안성이 크게 떨어질 수 있다. 즉, S-박스의 구조에 유연성이 없다.
4) 널리 알려진 바와 같이, DES의 키이는 64bit이고 그 중에서 56bit만이 사용되므로 현재와 같이 빠른 속도의 컴퓨터 환경에서는 보안성이 충분하지 못하다. DES에서 키이(K)의 크기와 데이타 블록의 크기를 늘리는 것은 상기의 이유로 인하여 쉬운 문제가 아니다.
DES는 이러한 약점들이 존재함에도 불구하고 오랜 기간동안의 분석을 거친 결과 키이(K)의 크기가 작다는 점 이외에는 여러가지 분석 방법들에 대해 상당히 저항성이 있는 것으로 나타났다. 이것은 16라운드를 반복하면서 특별한 패턴이 나타나지 않도록 충분히 섞어주기 때문인 것으로 사료된다. 만일 키이의 크기를 충분히 늘릴 수 있고 상기에서 설명한 바와 같이 여러가지 약점들을 보강할 수 있다면 보안성이 크게 향상될 것이다.
한편, 셀룰라 오토마타를 이용한 대칭적 알고리즘에 대하여 설펴보면, 셀룰라 오토마타는 컴퓨터가 개발되기 이전부터 언급되어 왔지만 이것이 널리 연구되고 이론적으로 체계를 갖추게 된 것은 S. Wlofram의 연구에 의해서이다. 그는 1985년 발표한 논문에서 CA를 이용한 불규칙한 난수를 생성해 내고 이를 스트림 암호화 시스템으로 이용하는 방법을 제안하여 CA를 암호화 시스템에 적용할 수 있다는 점을 보여주었다. 그러나, 이것은 생성되는 난수에서 짧은 사이클이 발견되는 등 특성이 좋지 못한 것으로 밝혀졌고 기존의 LFSR(Linear Feedback Shift Register)에 의한 난수 발생 방법과 이론적으로 동일하다는 것이 밝혀졌다. 또한, 1987년 P. Guan은 CA를 이용한 공개키이 시스템을 제안하였고 1992년 H. Gutowitz는 CA-1.1이라는 블록 암호화 시스템을 제안하였는데, 이들은 본 발명과 방법론이 크게 다르므로 별도의 설명은 생략한다.
1995년 태국의 Srisuchinwong은 IEEE학회에서 CA를 이용한 대칭적 암호화 알고리즘을 제안하였다. 여기에서는 16bit의 데이타 블록을 사용하였고 이를 각각 8bit의 L과 R로 나누어 페이스텔 네트워크를 통과시킨다. 8bit의 데이타를 차원 스트링(string)으로 보고 비선형 함수로서 1차원 CA 룰을 이용하였다. 이와 같이 구성된 라운드 함수를 12라운드 통과시킴으로써 최종적인 암호문을 얻게된다. 각각의 라운드에서 필요한 키이는 8bit로서 총 96(8×12)bit의 키이를 갖는다. 이 논문에서는 추가적인 특징으로 자율(autonomous) CA를 이용하여 사용자의 초기 조건으로부터 필요한 키이를 생성해내는 방식을 도입하여 보안성을 향상시켰다.
그런데, 이러한 암호화 방식은 데이타 블록의 크기가 너무 작고 간단한 1차원 CA 룰을 이용함으로써 쉽게 분석될 수 있다. 또한, 사용된 CA룰이 인접한 셀들 사이의 국소 상호작용만을 이용하므로 분산효과가 적어서 비교적 쉽게 분석될 수 있다.
이와 같이 일반적인 DES에서는 S-박스를 분석하여 키이를 알아내고 그 키이를 이용하여 원래의 데이타를 분석하는데 많은 어려움이 따르지 않으므로 그만큼 보안성이 떨어지는 결함이 있다. 셀룰라 오토마타를 이용한 대칭적 알고리즘에 있어서는 데이타 블록의 크기가 너무 작고 간단한 1차원 CA룰을 이용하여 쉽게 분석되는 결함이 있으며, 또한, 사용된 CA룰이 인접한 셀들 사이의 국소 상호작용만을 이용하므로 그 만큼 분산효과가 떨어져 비교적 쉽게 분석되는 결함이 있었다.
따라서, 본 발명의 목적은 페이스텔 네트워크 구조의 블록 암호화 시스템에 있어서, 이전의 데이타 블록과 사용자 키이 모두의 비선형 함수를 이용하여 새로운 데이타블록을 생성하는 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치를 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명 셀룰라 오토마타를 이용한 블록 암호화 방법은 하나의 하위데이타 블록(R)이 사용자 키이(K)를 또 다른 입력으로 하는 비선형함수(f)와 연산되는 과정의 셀룰라 오토마타(CA)룰은 데이타 블록에 전영역으로 부터 영향을 받을 수 있는 광역상호작용을 하며, 데이타 요소와 데이타 요소, 데이타 요소와 사용자 키이(K) 요소는 서로 비선형적으로 겹합되는 항을 포함하여 이루어진다.
상기의 목적을 달성하기 위한 본 발명 셀룰라 오토마타를 이용한 또 다른 블록 암호화 방법은 입력문에 대하여 N회 암호화 라운드를 반복 수행하여 출력문을 얻어내고, 하나의 암호화 라운드에서 입력문을 다시 같은 크기의 두개의 하위 데이타 블록(L),(R)으로 나누어 절절한 비선형 함수(f)와 데이타 블록 전영역으로 부터 영향을 받는 페이스텔 네트워크 구조의 암호화 장치를 이용하여 출력문(L'),(R')으로 변환하는 과정을 포함하여 이루어진다.
또한, 상기의 목적을 달성하기 위한 본 발명 셀룰라 오토마타를 이용한 블록 암호화 장치는 사용자가 임의로 선택할 수 있는 사용자 키이(K)를 이용하여 평문을 암호문으로 변환시키거나 통일한 키이(k)를 이용하여 암호문을 다시 평문으로 변환시키는 암호화 장치에 있어서, 사용자 키이 입력수단, 데이타 입력 및 출력수단, 데이타 블록, 사용자 키이(k) 및 각 계산과정의 임시 데이타를 보관할 수 있는 저장수단과; 사용자 키이(k)를 이용하여 데이타 블록을 변환하기 위한 연산의 내용이 기술되어 있는 연산데이타 베이스와; 입력문에 대하여 N개의 암호화 라운드르 수행하면서 셀룰라 오토마타(CA)룰을 근거로 암호화 연산을 수행하여 암호문을 출력하는 수단과; 출력데이타를 계산하는 계산수단과; 상기 각 수단의 데이타 흐름을 제어하는 제어수단을 포함하여 구성한 것으로, 이와 같이 구성한 본 발명의 작용 및 효과를 첨부한 제 6도 내지 제 19도를 참조하여 상세히 설명하면 다음과 같다.
본 발명에 의한 블록 암호화 시스템은 일반적으로 널리 알려져 있는 기본적인 설계(design) 지침 이외에 다음과 같은 추가적인 디자인목표를 가지고 개발되었다.
1) 비선형 함수 f내에서 데이타 블록과 사용자 카이와의 상호작용은 충분히 비선형적이어서 앞뒤의 데이타 블록을 모두 알고 있더라도 키이를 추정하는 것이 어려워야 한다.
2) DES에서는 비선형 상호작용이 독립적으로 구분되 작은 데이타 블록 단위로 이루어지는 것에 비교할 때 비선형 상호작용은 데이타 블록 전체를 대상으로 하여야 한다.
3) 데이타 블록의 크기가 약간 바뀌거나 CA룰이 약간 바뀌는 등 시스템의 디자인내용이 약간 바뀔지라도 시스템 전체의 보안성에는 큰 영향을 주지 않을 정도의 안정성을 갖아야 한다.
이를 감안하여 본 발명에서 사용한 방법론은 다음과 같다.
1) 기본적으로 평문을 적절한 크기의 내부 데이타 블록 L과 R로 나누고 페이스텔 네트워크 구조를 이용하여 블록 암호화를 수행한다.
2) 데이타 블록을 CA라고 간주하여 각 셀의 데이타는 적절한 CA룰에 의해 과거의 데이타 블록과 사용자 키이의 함수로 결정되게 한다.
3) 사용되는 CA룰은 인접한 셀들 사이의 국소 상호작용(local interaction) 대신 데이타 블록 전체를 대상으로 하는 밀도 높은 광역 상호작용(global interaction)을 갖도록 함으로써 빠른 분산효과를 얻도록 한다.
4) 한 셀의 값은 과거 데이타 블록과 사용자 키이의 여러 셀의 값으로 부터 비선형적으로 결정되도록 하여, 데이타 변화와 키이 변화의 영향을 분석하기가 매우 어렵고 전후의 데이타 블록으로 부터 키이를 추정하는 것이 어렵게 한다.
5) 한 셀의 값을 결정하는 CA룰은 광역 상호작용을 나타내는 적절한 마스크의 형태로 주어진다.
6) CA룰에는 앤드, 오아, 익스클루시브오아, 합산 모듈로(Addition modulo) 등의 연산을 사용한다.
7) CA룰은 사용자 키이에 관계없이 고정된 룰 부분과 사용자 키이에 의해 변경될 수 있는 룰의 두가지 부분으로 구성한다. 이것은 사용자 키이에 따라 CA룰이 일부분 변경될 수 있도록 하여 보안성을 향상시키고자 하는 것이다.
8) CA룰은 셀의 위치에 관계없이 전체적으로 일정한 룰 부분과 셀의 위치에 따라 달라지는 룰의 두가지 부분으로 구성한다. 이것은 균일하지 않은 데이타 블록을 더해줌으로써 보안성이 낮은 키이(weak key)의 발생 가능성을 줄이기 위해서이다.
9) CA룰은 라운드에 관계없이 일정한 룰과 라운드에 따라 달라지는 룰의 두가지로 구성할 수 있다.
본 발명에 의한 암호화 시스템의 전체적인 디자인구조에 대해 설명하면, 비밀키이 암호 시스템은 사용자가 임의로 선택할 수 있는 사용자 키이 K를 이용하여 알아 볼 수 있는 평문 M을 알아보기 어려운 암호문 C로 변환시키거나, 같은 키이 K를 이용하여 암호문 C를 평문 M으로 다시 변환시키는 역활을 하는 시스템이다.
제 1도에 이와 같은 비밀 키이 암호 시스템의 일반적인 사용예를 보였다. 메세지를 송신하고자 하는 송신자는 송신측에서 임의로 선택할 수 있는 비밀키이 K를 생성하고 이를 이용하여 평문 M을 암호문 C로 바꾼다. 암호문 C는 공중통신만을 통하여 수신측에 전송되고 송신측에서 사용된 비밀키이 K는 소정의 비밀 통신망을 통해 수신측으로 전송된다. 이에 따라 수신자는 그 비밀키이 K를 이용하여 암호문 C를 평문 M으로 바꾸어 읽을 수 있게 된다.
이러한 암호화 기능을 수행하기 위하여 암호화 장치는 다음과 같은 수단을 포함하여야 한다.
1) 사용자키이 입력수단
2) 데이타의 입력수단 및 출력수단
3) 데이타 블록, 사용자 키이 및 각 계산 과정의 임시 데이타를 임시로 보관할 수 있는 저장 수단
4) 사용자 키이 K를 이용하여 데이타 블록을 변환하기 위한 연산 내용이 기술되어 있는 연산 데이타 베이스
5) 입력데이타와 사용자 키이 K를 이용하여 출력 데이타를 계산해내는 계산 수단
6) 각 수단에서의 데이타 흐름을 제어해주는 제어수단
본 발명에서는 계산 수단으로서 페이스텔 네트워크 구조의 암호화 함수를 이용하는데 이의 구조는 제 2도와 같다. 여기에서는 한 라운드 내에서의 데이타 흐름을 나타내는데, 입력문에 대하여 이와 같은 라운드 함수를 정수 N만큼 반복 수행시켜 최종의 출력문을 생성하게 된다. 페이스텔 네트워크의 구조를 갖는 암호화 시스템의 한 라운드는 먼저, 입력문을 같은 크기의 두개의 하위 데이타 블록 L과 R로 나누고, 이를 적절한 비선형 함수 f와 라운드 키이를 이요하여 출력문 L'과 R'로 변환시키는 것이다.
여기서, 데이타 블록 R이 사용자 키이 K를 또 다른 입력으로 하는 비선형 함수 f를 통과하는 과정을 셀룰라 오토마타(CA)로 볼때 데이타 블록의 단위 구성요소는 CA의 셀이 되고, 비선형 함수 f는 각 셀의 진화를 나타내는 CA룰이 된다. 본 발명의 특징적인 광역 상호작용을 갖는 CA룰은 다음과 같은 특성을 갖는 것을 특징으로 한다.
1) 인접한 셀들 사이의 국소 상호작용 이외에 데이타 블록 전 영역으로 부터 영향을 받을 수 있는 광역 상호작용을 갖는다.
2) 데이타 요소와 데이타 요소, 데이타 요소와 사용자 키이 요소는 서로 비선형적으로 결합되는 항을 포함한다.
3) CA룰은 현재 계산하고자 하는 데이타 요소를 기준으로 연산에 필요한 데이타 요소 및 키이 요소의 위치를 나타내는 마스크 값들의 테이블로 표현된다.
4) 함수 f는 데이타 블록의 셀값들 사이 또는 데이타 블록의 셀값들과 키이의 셀값들 사이의 앤드, 익스클루시브오아, 오아, 비트 이동, 합산 모듈로 등의 연산으로 구현된다.
본 발명의 특징은 페이스텔 네트워크에서의 비선형 함수 f(R,K)에 있으므로 이에 대해 좀더 상세히 설명한다.
CABS 시스템의 비선형 함수 f에 대하여 설명하면, 본 발명의 암호 시스템의 가장 큰 특징은 페이스텔 네트워크에서의 비선형 함수 f로서 광역 상호작용을 갖는 CA룰을 이용한다는 것과 데이타 블록과 키이가 비선형적으로 결합되어 새로운 데이타 블록을 생성한다는 것이다. 기존의 CA를 이용한 암호화 방법론에서는 데이타 공간이 작고 국소 상호작용을 갖는 룰들을 이용함으로써 결과가 예측될 수 있고, 미분 암호 분석법(differential cryptanalysis), 선형암호분석법(linear cryptanalysis) 등의 공격방법들에 취약한 특성을 갖고 있었다.
본 발명에서는 이를 감안하여 데이타 블록의 크기를 충분히 크게 하고 밀도가 높은 광역 상호작용(intense global interaction)을 갖는 CA룰을 이용하여, 한 셀의 값이 과거 데이타 블록의 많은 셀들로 부터 영향을 받도록 함으로써 과거의 데이타나 미래의 데이타를 예측하는 것이 불가능하도록 하였다. 또한, 데이타와 키이와의 상호작용도 DES에서와 같이 간단하고 선형적인 익스클루시브오아 연산만을 이용하는 것이 아니라 앤드(AND), 합산 모듈로(Addition modulo) 등 비선형적인 함수를 사용함으로써 비록 앞뒤의 데이타 블록들을 알고 있더라고 키이를 추정해내는 것이 불가능하도록 디자인하였다.
이와 같은 비선형 함수 f는 여러가지 방법으로 다양하게 디자인될 수 있는데 여기에서는 몇가지 예를 들어 설명한다.
일예로써, 본 발명의 시스템에서는 데이타 블록의 크기를 얼마로 하느냐에 안정성이 크게 의존하지 않는다. 두개의 내부 데이타 블록 L과 R은 각각 m(m:정수) 비트의 블록으로 구성되고, 사용자 키이는 내부 데이타 블록의 크기와 꼭 일치시킬 필요는 없으므로 n(n:정수) 비트의 키이를 사용하기로 한다. m비트의 내부 데이타 블록은 1차원 CA로 생각할 수 있고, 각각의 셀 요소들은 0 또는 1비트의 값을 갖는데, 주어진 CA룰에 의하여 과거의 데이타 블록과 키이의 함수에 의해 새로이 생성된다. 그러므로 CA룰은 종래 기술의 (식1)에서와 같이 페이스텔 네트워크에서의 비선형 함수 f에 해당된다.
여기에서 사용된 비선형 함수 f를 좀더 자세히 설명하면, 이것은 현재의 내부 데이타 블록의 셀값(0 또는 1)들과 키이의 셀값(0 또는 1)들을 이용하여 앤드, 오아, 익스클루시브오아, 합산 모듈로 등의 연산을 통해 새로운 데이타 블록의 셀값을 계산해 내는 것이다. 비선형 광역 상호작용을 갖는 함수 f는 몇개의 마스크(mask) 들로 간단히 표현될 수 있는데, 이들을 특성에 따라 크게 두가지로 나누면 키이에 의존하지 않고 고정되어 있는 고정 마스크(fixed mask)와 키이에 의해 변경될 수 있는 가변 마스크(VM; Variable Mask)로 나눌 수 있다. 먼저, 고정 마스크에는 다음과 같은 것들이 있다.
1) 단일 마스크(SM: Single Mask) ; 내부 데이타 블록에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 하나의 셀값을 호출해 준다.
2) 이중 마스크(DM Double Mask) : 내부 데이타 블록에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 두개의 셀값을 호출하여 이들의 앤드값을 취한다.
3) 키이 마스크(KM: Key Mask) : 내부 데이타 블록에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 하나의 셀값과, 사용자 키이에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 하나의 셀값을 호출하여 이들의 앤드값을 취한다. 이것은 데이타 블록과 사용자 키이와의 비선형적인 결합을 나타낸다.
4) 위치마스크(PM: Position Mask) : 현재 셀의 위치가 마스크에 표시된 값이면 정해진 값을 더해준다. 이것은 균일하지 않은 데이타 블록을 더해줌으로써 보안성이 낮은 키이(weak key)의 발생을 줄이기 위한 것이다.
5) 라운드 마스크(RM: Round Mask) : 현재의 라운드에 따라 마스크 값이 달라지는 마스크를 나타낸다.
상기 가변 마스크(VM)는 사용자가 선택하는 키이에 따라 마스크 값을 특정한 방식으로 선택하고, 이를 이용하여 내부 데이타 블록 또는 사용자 키이 블록에서 두개의 셀값을 호출하여 앤드값을 취하는 것이다. 이것은 사용자 키이에 따라 함수 f의 디자인 일부 바뀔 수 있도록 유연성을 부여하고 분석을 어렵게 하여 보안성을 향상시키게 된다. 마스크의 디자인에서 3개 이상의 셀값을 앤드 연산하는 것도 가능하지만 셀의 갯수가 늘어나면 결과값이 0이 될 확률이 커지게 된다.
또한, 셀값을 오아연산하도록 하는 것도 가능하며, 이들을 적절히 조합시켜 사용할 수도 있다.
이때, 각각의 마스크값은 현재 셀의 위치를 기준으로 호출하고자 하는 셀의 상대 위치를 나타내므로 데이타 블록에서 값을 호출하는 마스크는 0∼m 사이의 값을 가지고 키이 블록에서 값을 호출하는 마스크는 0∼n 사이의 값을 가질 수 있다. 실제로 값을 호출할 때는 마스크 값에다 현재 위치의 좌표값을 각각 더해주어야 하고, 그 값이 m 또는 n을 넘을 때에는 주기 외곽조건(peridic boundary condition)을 사용하여 m 또는 n이하의 값으로 변환한 후 값을 호출한다. 또는 계산하고자 하는 현재 셀의 위치를 i라고 할 때 데이타 블록과 키이를 i만큼 회전시킨 후 마스크가 나타내는 위치의 값을 호출하여도 된다.
각각의 마스크로 부터 호출되고 계산된 값들은 모두 더해지고 mod 2 연산을 하거나 익스클루시브오아(XOR) 연산을 통해 0 또는 1의 새로운 셀값이 된다. 이것을 수식으로 표현하면 아래의 (식3)과 같다.
여기서, SM은 단일 마스크, DM1,DM2는 이중 마스크, KM1,KM2는 키이 마스크, VM1,VM2는 가변 마스크를 나타내며, 현재 셀의 위치 i를 기준으로 마스크에 표시된 상대 위치에 있는 셀값을 호출하여 계산을 수행하는 것을 나타낸다. PM은 위치 마스크를 나타내며, 현재 셀의 위치 i가 마스크에 표시되어 있으면 정해진 일정한 값을 더해주는 것을 나타낸다. NSM, NDM, NKM, NVM, NPM은 각 마스크에 표시된 요소의 갯수를 나타낸다. 이것을 도식화 하면 제 6도와 같다.
입력 데이타 블록과 키이 블록은 먼저 i만큼 회전된 후 각 마스크들을 통과하면서 각 마스크들의 요소별로 필요시 앤드 연산되고, 이후, 0 또는 1의 결과를 부여받아 이들이 모두 더해지고, mod 2 연산을 통해 0 또는 1의 비트값으로 변환된다. 이와 같은 시스템에서는 더해지는 항의 수가 충분히 많아지면 셀값이 0 또는 1이 될 확률이 거의 같다고 말 할 수 있고, 이것은 데이타 블록이 충분히 섞여서 랜덤하게 보이는 암호문으로 변화된 것을 나타낸다.
본 발명의 CABS를 소프트웨어로 빠르게 구현하는 또 하나의 방법은 컴퓨터에서 데이타를 나타내고 다루는 방법을 이용하는 것이다. 예를 들면 컴퓨터에서 정수는 2byte 메모리로 표현되는데, 본 발명의 CABS에서의 블록 연산을 위하여 데이타 블록과 사용자 키이 등을 정수 배열로 나타내고 이들 사이의 비선형 연산으로서 앤드, 오아, 익스클루시브오아, 비트회전(≫,≪)등의 비트연산을 사용할 수 있다. 왜냐하면 컴퓨터에서 정수의 앤드, 오아, 익스클루시브오아, 비트회전(≫,≪)등의 비트연산이 매우 빠르게 수행되기 때문이다. 예를 들어 데이타 블록 L,R은 n비트 단위의 배열 요소 m개로 mXn 비트의 블록으로 구성되고, 사용자 키이 K는 n'비트 단위의 배요소 m개 m'Xn 비트의 블록으로 구성된다고 할때, 비선형 함수 f(R,K)는 약간 다른 디자인을 갖을 수 있는데 배열 요소를 나타내는 정수 e와 배열 요소 내에서의 회전을 나타내는 정수 r의 값들을 하나의 쌍으로 포함하는 다음과 같은 여러가지 마스크들로 표시될 수 있다.
1) SM, 단일 마스크 : 데이타 블록에서 하나의 배열 요소 e를 선정하여 이것을 r만큼 회전시킨다.
2) DM, 이중 마스크 : 데이타 블록에서 두개의 배열요소 e1, e2를 호출하고 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산한다.
3) KM, 키이 마스크 : 데이타 블록과 사용자 키이에서 각각 하나씩의 배열요소 e1, e2를 호출하고 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산한다.
4) VM, 가변 마스크 : 마스크 값은 사용자 키이의 어떤 함수로 결정되는데, 이 마스크 값들에 따라 데이타 블록에서 두개의 배열 e1, e2를 호출하고, 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산하거나, 데이타 블록과 사용자 키이에서 각각 하나씩의 배열 요소 e1, e2를 호출하고 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산한다.
5) PM, 위치 마스크 : 현재 셀의 위치가 마스크에 표시된 e값과 같으면 r만큼 더해준다.
6) RM, 라운드 마스크 : 현재 라운드에 따라 마스크 값이 달라지는 마스크를 나타낸다.
이렇게 계산된 값들은 모두 익스클루시브오아 연산되어 하나의 배열요소 값이 된다. 이때, 배열 요소의 상대 위치값 e는 0∼m 또는 0∼m'의 값을 가지고 배열 요소내의 회전값 r은 0∼n 또는 0∼n'의 값을 갖는다. 실제로 값을 호출할 때는 현재 계산하고자 하는 셀의 위치 i와 마스크에 표시된 상대위치 e의 값을 더해서 이들이 m 또는 m'보다 크면 주기 경계조건을 이용하여 m 또는 m'보다 작은 값으로 변환하여 배열 요소값으로 호출한다. 또는 데이타 블록과 사용자 키이 블록을 먼저 i만큼 회전시킨 후 마스크에 표시된 위치의 값들을 호출하여도 된다. 이렇게 호출된 배열 요소 값들은 회전을 나타내는 마스크 값 r만큼 회전되고 필요에 따라 앤드연산된 후 모두 익스클루시브오아 연산되어 최종의 출력 배열 요소값이 되며, 이것을 수식으로 나타내면 다음의 (식4)와 같다.
여기서, SM은 단일 마스크, DM1,DM2는 이중 마스크, KM1,KM2는 키이 마스크, VM1,VM2는 가변 마스크를 나타내며, 현재 배열 요소의 위치 i를 기준으로 마스크에 표시된 상대 위치 e에 있는 배열 요소를 호출하여 이를 다시 마스크값 r만큼 회전시킨 후 계산을 수행하는 것을 나타낸다. PM은 위치 마스크를 나타내며 현재 배열 요소의 위치 i가 마스크에 표시된 값 e와 일치하면 r만큼 더해주는 것을 나타낸다. NSM, NDM, NKM, NVM, NPM은 각 마스크에 표시된 요소의 갯수를 나타낸다.
이 과정을 도식화 하면 제 7도와 같다. 입력 데이타 블록과 키이 블록은 먼저 i개의 요소만큼 회전된 후 각 마스크들을 통과하면서 각 마스크에 표시된 상대 위치값 e의 요소값이 호출되고, 이것은 다시 회전값 r만큼 회전된다. 이들은 이중 마스크, 키이 마스크, 가변 마스크 등에서 필요에 따라 앤드 연산된 후 모두 익스클루시브오아 연산되어 최종의 출력 요소값이 된다. 이와 값은 시스템에서는 더해지는 항의 수가 충분히 많아지면 최종의 요소값들의 각 비트값들이 0 또는 1이 될 확률이 거의 같다고 말할 수 있고, 이것은 데이타 블록이 충분히 섞여서 랜덤하게 보이는 암호문으로 변환된 것을 나타낸다.
지금까지의 한 라운드의 비선형 함수 f에 대하여 설명하였는데 이를 이용하여 페이스텔 네트워크의 구조를 따라 정수 N번 만큼 암호화를 반복하면 본 발명의 CABS가 된다. 다음의 실시 예에서 자세히 설명하겠지만 이러한 비선형 함수는 분산 효과(avalanch effect)가 매우 크고 전후의 데이타를 예측하기 어렵기 때문에 라운드 수를 크게 줄여도 된다.
분산효과와 보안성은 각 마스크들의 디자인에 의존하는데 주로 각 마스크에서의 요소의 갯수 N값에 크게 의존한다. N값을 크게 하면 충분한 분산효과를 얻을 수 있고, 라운드 수를 크게 줄일 수 있지만 이렇게 되면 한 라운드의 계산 시간이 늘어나게 된다. 반면, N값을 너무 작게 하면 분산효과가 적기 때문에 원하는 수준의 보완성을 얻기 위해서는 라운드 수를 늘려야 한다. 이와 같은 마스크의 구체적인 디자인은 실험을 통하여 최적화 시킬 수 있다.
본 발명의 CABS 시스템은 비선형 함수 f를 광역 상호작용을 갖는 CA로 모델링 한 것으므로 그 기본 기술을 약간씩 변형시켜 여러가지 다른 방법으로 구현할 수 있다. 그만큼 디자인 특성이 유연하고 디자인의 변화에 따라 보안성이 크게 변하지 않는 우수한 특성을 가졌다고 할 수 있다. 소프트웨어로의 구현과 하드웨어로의 구현은 빠른 속도를 내기 위해 디자인을 다르게 할 수도 있다. 물론 상호간의 호환성이 중요할 것이다. 여기에서는 상기에서 제기된 디자인 예 1,2에 따라 구현한 결과를 보여준다.
본 발명의 실시예 1에서는 L과 R의 데이타 블록을 각기 64bit 1차원 스트림으로 간주하고 64bit의 사용자가 키이 K를 고려한다. DES에서와 같이 적절한 키이 스케쥴을 사용할 수도 있겠지만 본 실시예1에서는 고정된 키이를 사용하기로 한다. 마스크들의 요소의 갯수 N을 모두 10으로 설정하고 요소값들을 0-63까지의 범위에서 난수함수를 이용하여 임의로 설정한다. 페이스텔 네트워크를 4라운드 진행하면서 결과가 얼마나 빠르게 분산되는지 확인해 본다. 임의로 선정된 마스크 값들은 제 8도의 표와 같고 사용된 64bit 키이는 제 9도의 표와 같다.
여기서, 가변마스크 VM의 마스크 요소의 값은 사용자 키이 K로 부터 특정의 방정식으로 결정되어야 하지만 편의상 난수 함수로 부터 임의로 설정하였는데 그 결과로 큰 차이가 나타나지는 않는다.
본 실시예1에서 사용된 비선형 함수 f를 각 마스크별로 자세히 설명하면 다음과 같다.
1) SM : 데이타 블록에서 현재의 셀의 위치로 부터 SM번째의 위치에 있는 값을 호출한다.
2) DM : 데이타 블록에서 현재의 셀의 위치로 부터 DM1,DM2번째의 위치에 있는 값들을 호출하여 이들을 앤드 연산한다.
3) KM : 현재의 셀의 위치를 기준으로 할 때 데이타 블록으로 부터 KM1번째의 값을 호출하고 키이 블록으로 부터 KM2번째의 값을 호출하여 이들을 앤드 연산한다.
4) VM : 데이타 블록에서 현재의 셀의 위치로 부터 VM1,VM2번째의 위치에 있는 값들을 호출하여 이들을 앤드 연산한다.
5) PM : 현재 셀의 위치가 PM번째 셀일 경우 정해진 값 1을 더해준다.
이렇게 계산된 각각의 값들은 모두 더해지고 mod2 연산되어 0 또는 1의 최종의 셀값이 된다.
이와 같은 시스템 조건에서 입력 평문을 난수 함수에 의해 임의로 선정할 때 본 실시예의 블록 암호화 시스템을 1라운드 통과시킨 후 입력 평문 R을 x축, 출력 암호문 R'를 y축으로 하여 그 대응 관계를 제 10도에 나타내었다. 입력과 출력은 특별한 상호관계가 없이 전 영역에 고르게 고르게 퍼져 있음을 알 수 있다. 그런데, 이와 같이 고르게 분산된 이유는 다른 임의의 입력문 L이 f(P,K)와 익스클루시브오아 연산되었기 때문이다.
그런데, 분산효과를 분석하기 위해서는 입력 데이타가 약간 다른 두개의 평문을 준비하고 각각의 출력데이타가 얼마나 달라지는지 분석해 보아야 한다. 이를 위해 입력 평문 데이타를 난수 함수를 이용하여 임의로 선정하여 이것을 평문 1(P1)로 하고 이것의 마지막 비트 하나만을 바꾼 데이타를 평문2(P2)로 할 때, 이 두개의 데이타 블록을 각각 1라운드씩 진행시키면서 차이를 분석하였다.
제 11도는 P1,P2를 1라운드 통과시킨 후의 암호문 C1(1), C(2)를 각각 x축, y축으로 하여 관계를 나타낸 것이다. 입렵데이타의 1bit의 차이가 전 영역으로 확산되었지만 전 영역에 고르게 분포되지는 않고 특정 패턴을 나타내는 것을 알 수 있다. 제 12도는 P1,P2를 2라운드 통과시킨 후의 암호문C1(1), C2(1)를 각각 x축, y축으로 하여 관계를 나타낸 것인데 제 11도와 같이 특정 패턴이 나타나지 않고 전 영역에 고르게 분포되는 것을 알 수 있다.
제 13도의 표는 20000개의 임의의 입력 평문쌍 P1,P2에 대하여 4라운드를 통과시킨 후에 출력 암호문 C1(4),C2(4)가 각 비트별로 서로 달라지는 경우를 나타낸 것인데, 평균 10000에 매우 가까운 분포를 보여서 각 비트가 영향을 받을 확률은 거의 0.5임을 나타낸다.
그러므로 라운드 수를 크게 늘리지 않더라도 어느 정도 이상으로만 늘리면 충분한 분산특성을 얻을 수 있다. 이러한 시스템에서의 마스크 요소들의 갯수 및 라운드 수는 미분 암호 분석법, 선형 함호 분석법 등의 공격에 대응할 수 있고 빠른 속도를 얻을 수 있도록 최적화 되어야 한다.
본 발명의 CABS를 소프트웨어로 빠르게 구현하는 또 하나의 방법은 컴퓨터에서 데이타를 나타내고 다루는 방법들을 이용하는 것이다. 예를 들면 컴퓨터에서 정수는 2byte 메모리로 표현되는데, 본 발명의 CABS에서의 블록 연산을 위하여 데이타 블록과 사용자 키이 등을 정수 배열로 나타내고 이들 사이의 비선형 연산으로 앤드, 오아, 익스클루시브오아, ≫ 등의 비트연산을 사용할 수 있다.
컴퓨터에서 정수의 앤드, 오아, 익스클루시브오아, ≫ 등의 비트연산은 매우 빠르게 수행된다.
본발명의 실시2에서는 64bit의 데이타 블록 L과 R을 각각 8개의 요소를 갖는 부호가 없는 정수 배열로 표현한다. 부호가 없는 정수는 2byte로 표현되므로 상위 1byte는 버리고 하위 1byte만을 이용한다. 마찬가지로 64bit의 사용자 키이 K는 8개의 요소를 갖는 부호가 없는 정수 배열로 표현한다.
이러한 조건에서 비선형 함수 f는 정수들 사이의 앤드, 익스클루시브오아, ≫ 연산 등을 이용하여 약간 다르게 표현할 수 있다. 여기에서는 데이타 블록을 2차원 배열로 간주하므로 각각의 마스크값들은 x축, y축상의 상대 위치의 값들을 나타내며, 0-7 사이의 값들을 갖는다.
제 14 도의 표는 본 실시예2에서 임의로 선정한 마스크 값들을 나타내는데, 좌측의 E로 표시한 것은 8개의 데이타 바이트중의 하나를 나타내며, 우측의 R로 표시한 것은 시프트연산 ≫을 이용하여 마스크 값만큼 데이타 바이트를 회전시키는 연산을 나타낸다. 제 15도의 표는 사용된 사용자 키이 값을 바이트 별로 정수로 나타낸 것이다.
본 실시예2에서 사용된 비선형 함수 f의 연산을 각 마스크별로 좀더 상세히 설명하면 다음과 같다.
1) SM : 현재의 데이타 바이트를 기준으로 SM(E)번째의 데이타를 선정하여 SM(R)만큼 회전시킨다.
2) DM : 현재의 데이타 바이트를 기준으로 DM1(E)번째의 데이타를 선정하여 DM1(R)만늠 회전시키고 DM2(E)번째의 데이타를 선정하여 DM2(R)큼 회전시켜서 이들을 앤드 연산한다.
3) KM : 현재의 데이타 바이트를 기준으로 KM1(E)번째의 데이타를 선정하여 KM1(R)만큼 회전시키고 KM2(E)번째의 사용자 키이를 선정하여 KM2(R)만큼 회전시켜서 이들을 앤드 연산한다.
4) VM : 현재의 데이타 바이트를 기준으로 VM1(E)번째의 데이타를 선정하여 VM1(R)만큼 회전시키고 VM2(E)번째의 데이타를 선정하여 VM2(R)만큼 회전시켜서 이들은 앤드 연산한다.
5) PM : 현재의 데이타 바이트가 PM(E)번째 데이타일 경우 PM(R) 값을 호출한다.
이렇게 계산되는 각각의 바이트 값들을 모두 익스클루시브오아 연산하여 이것을 새로운 데이타 바이트로 한다.
이러한 비선형 함수 f를 이용하여 페이스텔 네트워크를 구비하고 임의로 선택된 평문을 4라운드 통과시키면서 분산 특성을 분석하였다. 제 16도는 1bit만큼 다른 두개의 평문쌍 P1,P2를 1라운드 통과시킨 후의 암호문 C1(1),C2(1)의 분산 관계를 나타낸 것인데, 입력 평문의 1bit 차이가 전 영역으로 확산되었지만 전 영역에 고르게 분포되지는 않고 어떤 패턴을 가짐을 알 수 있다. 이에 반해, 제 17도는 2라운드 통과시킨 후의 C1(2), C2(2)의 분산을 나타내는데, 제 16도와 달리 전 영역으로 고르게 분포함을 알 수 있다.
제 18도는 20000개의 입력 평문쌍에 대하여 4라운드 통과 후에 출력 암호문 C1(4), C2(4)가 각 비트별로 서로 달라지는 경우를 나타낸 것인데, 평군 10000에 매우 가까운 분포를 보여서 각 비트가 영향을 받을 확률은 거의 0.5임을 나타낸다.
한편, 제 19도는 마스크 요소의 갯수를 30으로 늘린 후에 첫번째 라운드를 통과시킨 다음의 C1(1)과 C2(1)의 분산 특성을 나타낸 것으로, 마스크 요소의 갯수를 늘려서 광역 상호작용의 밀도를 높게 하면 한 라운드만 통과시켜도 분산특성이 매우 우수하게 나타난다는 것을 보여주고 있다. 그러므로 실제 시스템의 디자인에 있어서는 높은 보안성과 빠른 속도를 얻을 수 있도록 마스크 요소의 갯수와 라운드 수를 최적화 시켜야 한다.
이상에서 상세히 설명한 바와 같이, 본 발명의 블록 암호화 시스템 CABS는 기존의 암호화 시스템들과 비교해 볼 때 광역 상호작용을 갖는 CA모델을 사용하였고, 사용자 키이와 데이타 블록과의 비선형 상호작용을 포함시키는 등 여러가지 새로운 기술을 도입하였다는데 차이가 있다. 그 결과 본 발명에서 제시한 새로운 디자인 목표를 만족시킴으로써 DES등에서 지목되는 보안성의 약점이 해결되었다. 본 발명의 효과로서 보안성의 향상 측면에서는 다음과 같은 점들을 들 수 있다.
첫째, 비선형 함수 f에서의 연산이 전체 데이타 블록을 대상으로 하고 밀도 높은 광역 상호작용을 갖는 CA를 이용하므로 미분 암호 분석법, 선형 함호 분석법 등에 의한 분석이 어려워졌다.
둘째, 데이타 블록과 사용자 키이와의 연산이 비선형적으로 결합되어 있으므로 비록 f함수 전후의 데이타 블록을 모두 알고 있다 할지라도 사용자 키이를 추정하는 것이 훨씬 어려워졌다.
셋째, 본 발명의 CABS 시스템은 디자인에 유연성이 있어서 데이타 블록의 크기나 사용자 키이의 크기를 용이하게 변화시킬 수 있다. 거의 완벽한 암호화 시스템의 경우 보안성이 키이의 길이에 의존하는데 본 발명은 이용하면 임의의 길이의 키이를 갖는 시스템을 용이하게 디자인할 수 있다.
넷째, 시스템 자체의 구조가 사용자가 사용하는 키이에 의존하여 일부 재구성되므로 시스템이 매번 달라져서 분석이 매우 어려워진다.
한편, 속도문제에서는 본 시스템을 하드웨어로 구현할 경우 빠른 속도를 얻을 수 있게 되는데, 왜냐하면 마스크에 기록되어 있는 번지수의 데이타를 호룰하여 이들 사이의 앤드, 오아, 익스클루시브오아 등의 간단한 비트연산만으로 계산을 완료할 수 있기 때문이다.

Claims (20)

  1. 사용자가 임의로 선택할 수 있는 사용자 키이(k)를 이용하여 평문(m)을 암호문(c)으로 변환시키거나 그 반대과정으로 변환시키는 암호화 방법에 있어서, 하나의 하위데이타 블록(R)이 사용자 키이(K)를 또 다른 입력으로 하는 비선형함수(f)와 연산되는 과정의 셀룰라 오토마타(CA)룰은 데이타 블록에 전영역으로 부터 영향을 받을 수 있는 광역상호작용을 하며, 데이타 요소와 데이타 요소, 데이타 요소와 사용자 키이(K) 요소는 서로 비선형적으로 결합되는 항을 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  2. 입력문에 대하여 N회 암호화 라운드를 반복 수행하여 출력문을 얻어내고, 하나의 암호화 라운드에서 입력문을 다시 같은 크기의 두개의 하위 데이타 블록(L),(R)으로 나누어 절절한 비선형 함수(f)와 데이타 블록 전영역으로 부터 영향을 받는 페이스텔 네트워크 구조의 암호화 장치를 이용하여 출력문(L'),(R')으로 변환하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  3. 제 1항에 있어서, CA룰은 인접한 셀들 사이의 국소 상호작용 이외에 데이타 블록 전 영역으로 부터 영향을 받을 수 있는 광역 상호작용을 갖고, 데이타 요소와 데이타 요소, 데이타 요소와 사용자 키이(K) 요소는 서로 비선형적으로 결합되는 항을 포함하며, 현재 계산하고자 하는 데이타 요소를 기준으로 연산에 필요한 데이타 요소 및 키이(K) 요소의 상대 위치를 나타내는 마스크 값들의 테이블로 표현되고, 비선형함수(f)는 데이타 블록의 셀값들 사이 또는 데이타 블록의 셀값들과 키이의 셀값들 사이의 앤드, 익스클루시브오아, 오아, 비트이동, 합산 모듈로 등의 연산으로 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  4. 제 2항에 있어서, 하위 데이타 블록 (L)과 (R)은 각각 m(m:정수) 비트의 데이타 구조를 갖고, 사용자 키이(K)는 n(n:정수) 비트의 구조를 갖으며, 비선형함수 f(R,K)는 데이타 블록에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 하나의 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 두개의 셀값을 호출하여 이들을 앤드연산하는 이중 마스크, 데이타 블록과 사용자 키이에서 현재 셀의 위치를 기준으로 마스크에 표시된 상대 위치에 있는 각각 하나씩의 셀값을 호출하여 이들을 앤드연산하는 키이 마스크 등의 여러 마스크들로 표시되며, 각각의 마스크 요소들로 부터의 결과값들을 모두 익스클루시브오아 연산하여 그섯을 비선형 함수 f(R,K)의 출력값으로 하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  5. 제 4항에 있어서, 비선형함수 f(R,K)는 마스크 값들이 사용자 키이(K)의 함수로 적절히 초기화 되고, 이를 이용하여 데이타 블록에서 두개의 셀값을 호출하여 앤드 연산하거나, 데이타 블록과 키이 블록에서 각각 하나씩의 셀값을 호출하여 이들을 앤드 연산하는 가변 마스크를 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  6. 제 4항에 있어서, 비선형함수 f(R,K)는 현재 셀의 위치가 마스크에 표시된 값이면 정해진 값을 호출해 주는 위치 마스크를 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  7. 제 4항에 있어서, 라운드별로 구성이 달라지는 라운드 마스크를 더 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  8. 제 4항에 있어서, 마스크에 표시되는 셀의 상대 위치값은 데이타 블록에서의 상대 위치를 나타내는 마스크의 경우 0∼m 사이의 값을, 키이 블록에서 상대 위치를 나타내는 마스크의 경우 0∼n 사이의 값을 갖도록 하여 광역 상호작용의 특성을 갖도록 하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  9. 제 4항에 있어서, 현재 셀의 위치와 마스크에 표시된 셀의 상대 위치값을 더했을 때 그 값이 소정의 정수값(m)이나 정수값(n)을 초과하면 주기 외곽조건으로 다시 그 이하의 값으로 각기 전환시켜 계산하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  10. 제 4항에 있어서, 마스크 요소의 총 갯수를 N이라 하고, 사용하는 라운드 수를 M이라 할때, 데이타 블록의 크기 m과의 사이에 m/2 N 4m, 2m MN 40M의 조건을 만족하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  11. 제 4항에 있어서, 사용자 키이(K)의 길이(n)는 데이타 블록의 길이(m)와 비교할때 m n 3m의 조건을 만족하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  12. 제 2항에 있어서, 하위 데이타 블록(L),(R)은 n비트 단위의 배열 요소 m개에 의해 mXn 비트의 블록으로 이루어지고, 사용자 키이(K)는 n'비트 단위의 배열요소 m개 m'Xn 비트의 블록으로 이루어질때, 비선형 함수 f(R,K)는 배열 요소를 나타내는 정수 e와 배열 요소 내에서의 회전을 나타내는 정수 r의 값들을 하나의 쌍으로 포함하는 여러가지 마스크들로 표시되는데, 그 여러가지 마스크는 데이타 블록에서 하나의 배열 요소 e를 선정하여 r만큼 회전시키는 단일 마스크, 데이타 블록에서 두개의 배열요소 e1, e2를 호출하고 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산하는 이중 마스크, 데이타 블록과 사용자 키이(K)에서 각각 하나씩의 배열요소 e1, e2를 호출하고, 이들을 각각 r1, r2만큼 회전시켜서 앤드 연산하는 키이 마스크로 이루어지며, 각각의 마스크 요소들로 부터의 결과값들을 모두 익스클루시브오아 연산하여 그 결과를 비선형 함수 f(R,K)의 출력값으로 하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  13. 제 12항에 있어서, 비선형함수 f(R,K)는 마스크 값이 사용자 키이(K)의 함수에 의해 적절하게 초기화 되고, 이를 이용하여 데이타 블록에서 두개의 배열요소 e1,e2를 호출하여 r1,r2만큼 회전시킨 후 앤드 연산하거나, 데이타 블록과 키이 블록에서 각각 하나씩의 배열요소 e1,e2를 호출하여 r1,r2만큼 회전시킨 후 앤드 연산하는 가변 마스크를 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  14. 제 12항에 있어서, 비선형함수 f(R,K)는 현재 배열 요소의 위치가 마스크에 표시된 값 e이면 마스크값 r만큼 더해주는 위치 마스크를 포함하여 이루어지는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  15. 제 12항에 있어서, 여러가지 마스크는 라운드별로 구성이 달라질 수 있는 라운드 마스크를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  16. 제 12항에 있어서, 마스크에 표시되는 데이타 블록에서의 배열 요소의 상대 위치값은 0∼m 사이의 값을, 데이타 블록에서 배열 요소의 회전값은 0∼n 사이의 값을, 키이 블록에서의 배열 요소의 상대 위치값은 0∼m'의 값을 키이 블록에서의 배열 요소의 회전값은 0∼n' 사이의 값을 갖아 광역 상호작용을 특성을 발휘하도록 하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  17. 제 12항에 있어서, 현재 배열요소의 위치와 마스크에 표시된 배열 요소의 상대 위치값을 더했을 때 그 결과값이 m또는 m'값을 넘으면 주기 외곽조건으로 다시 m또는 m' 이하의 값으로 전환시켜 계산하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  18. 제 12항에 있어서, 마스크 요소의 총 갯수를 N이라 하고, 사용하는 라운드 수를 M이라 할때, 데이타 블록에서의 배열 요소의 갯수 m과의 사이에 m N 8m, 4m MN 80m의 조건을 만족하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  19. 제 12항에 있어서, 데이타 블록에서의 배열 요소의 갯수 m 과 키이 블럭의 배열 요소의 갯수 m' 사이에는 m m' 3m의 조건을 만족하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 방법.
  20. 사용자가 임의로 선택할 수 있는 사용자 키이(K)를 이용하여 평문을 암호문으로 변환시키거나 통일한 키이(k)를 이용하여 암호문을 다시 평문으로 변환시키는 암호화 장치에 있어서, 사용자 키이 입력수단, 데이타 입력 및 출력수단, 데이타 블록, 사용자 키이(K) 및 각 계산과정의 임시 데이타를 보관할 수 있는 저장수단과; 사용자 키이(K)를 이용하여 데이타 블록을 변환하기 위한 연산의 내용이 기술되어 있는 연산데이타 베이스와; 입력문에 대하여 N개의 암호화 라운드를 수행하면서 셀룰라 오토마타(CA)룰을 근거로 암호화 연산을 수행하여 암호문을 출력하는 수단과; 출력데이타를 계산하는 계산수단과; 상기 각 수단의 데이타 흐름을 제어하는 제어수단을 포함하여 구성한 것을 특징으로 하는 셀룰라 오토마타를 이용한 블록 암호화 장치.
KR1019960046163A 1996-10-16 1996-10-16 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치 KR19980027399A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960046163A KR19980027399A (ko) 1996-10-16 1996-10-16 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960046163A KR19980027399A (ko) 1996-10-16 1996-10-16 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR19980027399A true KR19980027399A (ko) 1998-07-15

Family

ID=66289357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960046163A KR19980027399A (ko) 1996-10-16 1996-10-16 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR19980027399A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020004021A (ko) * 2000-06-29 2002-01-16 이상성 데이터 암호화 및 복호화 방법 및 장치
KR100402811B1 (ko) * 1999-08-31 2003-10-30 가부시끼가이샤 도시바 확대키 생성기, 암호/복호 장치, 확대키 생성 방법 및기억 매체
KR100435052B1 (ko) * 2000-07-12 2004-06-09 가부시끼가이샤 도시바 암호화장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402811B1 (ko) * 1999-08-31 2003-10-30 가부시끼가이샤 도시바 확대키 생성기, 암호/복호 장치, 확대키 생성 방법 및기억 매체
KR20020004021A (ko) * 2000-06-29 2002-01-16 이상성 데이터 암호화 및 복호화 방법 및 장치
KR100435052B1 (ko) * 2000-07-12 2004-06-09 가부시끼가이샤 도시바 암호화장치

Similar Documents

Publication Publication Date Title
Kumar et al. Development of modified AES algorithm for data security
Hong et al. HIGHT: A new block cipher suitable for low-resource device
Engels et al. Hummingbird: ultra-lightweight cryptography for resource-constrained devices
EP1303941B1 (en) Substitution-box for symmetric-key ciphers
Biswas et al. An encryption scheme using chaotic map and genetic operations for wireless sensor networks
US20070255941A1 (en) Method and system for securing data utilizing reconfigurable logic
AU2005200388A1 (en) Stream cipher design with revolving buffers
Kareem et al. A novel approach for the development of the Twofish algorithm based on multi-level key space
Elgeldawi et al. A comparative analysis of symmetric algorithms in cloud computing: a survey
Shah et al. A novel efficient image encryption algorithm based on affine transformation combine with linear fractional transformation
Azam et al. A novel image encryption scheme based on elliptic curves and coupled map lattices
Sakib Analysis of Fundamental Algebraic Concepts and Information Security System
Kapoor et al. Analysis of symmetric and asymmetric key algorithms
Lu et al. Related-key rectangle attack on 42-round SHACAL-2
Aboshosha et al. Energy efficient encryption algorithm for low resources devices
KR19980027399A (ko) 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치
Srisakthi et al. Towards the design of a stronger AES: AES with key dependent shift rows (KDSR)
Sklavos et al. Area optimized architecture and VLSI implementation of RC5 encryption algorithm
Hasija et al. A Performance Analysis of Root-Converging Methods for Developing Post Quantum Cryptography Algorithms to Mitigate Key-Size-Based Attacks
Bahumik et al. A symmetric key-based image encryption scheme
Misra et al. Analysing the parameters of chaos based image encryption schemes
Alsuwaiedi et al. A new modified DES algorithm based on the development of binary encryption functions
Lee et al. Security analysis of the full-round DDO-64 block cipher
EP1043863A1 (en) Method for the cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
Aboshosha et al. The Academic Research Community Publication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application