KR100450766B1 - 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치 - Google Patents

셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치 Download PDF

Info

Publication number
KR100450766B1
KR100450766B1 KR10-2002-0062076A KR20020062076A KR100450766B1 KR 100450766 B1 KR100450766 B1 KR 100450766B1 KR 20020062076 A KR20020062076 A KR 20020062076A KR 100450766 B1 KR100450766 B1 KR 100450766B1
Authority
KR
South Korea
Prior art keywords
cells
cell
values
value
random number
Prior art date
Application number
KR10-2002-0062076A
Other languages
English (en)
Other versions
KR20040033158A (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 KR10-2002-0062076A priority Critical patent/KR100450766B1/ko
Publication of KR20040033158A publication Critical patent/KR20040033158A/ko
Application granted granted Critical
Publication of KR100450766B1 publication Critical patent/KR100450766B1/ko

Links

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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 다차원 셀룰라 오토마타(Cellular Automata)의 구조적 장점을 이용하여 입력 데이터를 암호화하고 복호화 하는 방법 및 그 장치에 관한 것으로서, 본 발명에 의한 셀룰라 오토마타를 이용한 암호방법은 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하는 단계; 상기 각 셀에 소정 비트의 이진수를 할당하는 단계; 상기 각 셀의 값들을 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 단계; 및 상기 이진 난수열과 평문 이진열을 논리연산하여 암호화하는 단계;를 포함하는 것을 특징으로 하며, 암호학적으로 안전하며 빠른 수행속도를 가지는 스트림 암호 알고리즘의 사용이 요구하는 여러 응용분야에서 널리 사용되어 질 수 있는 효과가 있다.

Description

셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치{Method for encryption and decryption using cellular automata and apparatus thereof}
본 발명은 다차원 셀룰라 오토마타(Cellular Automata)의 구조적 장점을 이용하여 입력 데이터를 암호화하고 복호화 하는 방법 및 그 장치에 관한 것이다.
셀룰라 오토마타는 이산적인 시간과 이산적인 공간으로 구성되어 있다. 이산적인 공간인 셀룰라 공간(Cellular Space)의 셀(Cell)이라고 불리워지는 각 단위 공간의 주어진 시각에서의 상태는 유한한 개수의 상태들 중의 하나의 상태로 주어지며, 각 시각에서의 각 셀의 상태가 그 셀의 근방에 있는 셀들의 직전 시각에서의 상태들에 의해서 결정되어지는 구조로써, 동역학계(Dynamical System)를 해석하는방법들 중의 하나이다.
본 발명은 다차원 셀룰라 오토마타의 구조가 가지는 확산과 혼돈이라는 특징을 활용하여 사용자의 키를 입력으로 받아 임의의 크기의 이진 난수 열을 생성하여 생성된 이진 난수와 주어진 평문을 배타적 논리합에 의하여 생성된 결과를 암호문으로 출력하고, 이와 같이 생성된 암호문을 복호하는 방법 및 그 장치를 제공하기 위한 것이다.
본 발명에 의한 암호 및 복호 방법은 셀들의 다차원 배열에 기초하는 셀룰라 공간, 즉, 2차원 공간에서의 도형을 조작 변형하여 다차원 공간으로 임베딩(Imbedding)한 아이덴티피케이션 공간(Identification Space)인 셀룰라 공간을 이용하고, 이 셀룰라 공간에서의 셀들의 상태들의 확산성을 이용하고, 이러한 확산 현상의 복잡성, 비선형성, 혼돈성, 상호 간섭성 등 셀룰라 오토마타의 특성을 이용하고자 한다.
도 1은 본 발명에 의한 셀룰라 공간을 보여주는 도면이다.
도 2는 본 발명에 의한 암호 및 복호방법의 흐름을 보여주는 흐름도이다.
도 3은 본 발명에 의한 암호 및 복호장치의 블럭도이다.
도 4는 도 1의 셀룰라 공간의 각 셀에 부여하는 초기값의 예를 보여주는 도면이다.
상기의 기술적 과제를 이루기 위하여, 본 발명에 의한 셀룰라 오토마타를 이용한 암호방법은 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하는 단계; 상기 각 셀에 소정 비트의 이진수를 할당하는 단계; 상기 각 셀의 값들을 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 단계; 및 상기 이진 난수열과 평문 이진열을 논리연산하여 암호화하는 단계;를 포함하는 것을 특징으로 한다.
상기의 기술적 과제를 이루기 위하여, 본 발명에 의한 셀룰라 오토마타를 이용한 복호방법은 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하는 단계; 상기 각 셀에 소정 비트의 이진수를 할당한 후 상기 셀의 갯수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 단계하는 단계; 상기 각 셀의 값들을 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 단계; 및 상기 이진 난수열과 암호문을 논리연산하여 복호하는 단계;를 포함하는 것을 특징으로 한다.
상기의 기술적 과제를 이루기 위하여, 본 발명에 의한 셀룰라 오토마타를 이용한 암호화 장치는 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성한 후 각 셀에 소정 비트의 이진수를 할당하는 셀룰라형성부; 상기 각 셀의 값들을 입력받아 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 난수열생성부; 및 상기 이진 난수열과 평문 이진열을 입력받아 암호화하여 출력하는 암호화부;를 포함하는 것을 특징으로 한다.
상기의 기술적 과제를 이루기 위하여, 본 발명에 의한 셀룰라 오토마타를 이용한 복호화장치는 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성한 후 각 셀에 소정 비트의 이진수를 할당하는 셀룰라형성부; 상기 각 셀의 값들을 입력받아 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 난수열생성부; 상기 이진 난수열과 암호문을 입력받아 복호화하여 출력하는 복호화부;를 포함하는 것을 특징으로 한다.
상기의 기술적 과제를 이루기 위하여 본 발명에 의한 셀룰라 오토마타를 이용한 암호 및 복호장치는 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성한 후 각 셀에 소정 비트의 이진수를 할당하는 셀룰라형성부; 상기 각 셀의 값들을 입력받아 이산적인 시간의 흐름에 따라 갱신하면서 각 셀의 값들을 기초로 이진 난수열을 생성하는 난수열생성부; 상기 이진 난수열과 평문을 입력받아 암호화하여 출력하는 암호화부; 및 상기 이진 난수열과 암호문을 입력받아 평문으로 복호화하는 복호화부;를 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하면서 본 발명의 바람직한 일 실시예에 대하여 상세히 설명하도록 한다. 다만 본 발명에 의한 암호방법과 암호장치, 복호방법과 복호장치는 설명의 중복을 피하기 위하여 암호 및 복호방법 그리고 암호 및 복호장치로 일괄적으로 설명을 하도록 한다.
도 1은 다차원 셀룰라 공간을 보여주는 도면이다. 먼저 셀룰라 공간에 대하여 설명한다. 일반적으로 셀룰라 공간이라 함은 셀이라고 불리워지는 단위 공간들로 구성되는 이산적인 기하 공간을 뜻한다. 본 발명에서의 셀룰라 공간은 삼각형 모양의 도형인 셀(도 1의 0에서 127)들로 구성되며, 이러한 각 셀의 각 변, 즉 삼각형 모양의 도형의 각 변이 꼭 두 개의 서로 다른 셀들에 의해서 공유되도록 구성되며, 각 셀이 인접한 셀들을, 즉, 상기 셀과 꼭 하나의 변을 공유하는 서로 다른 셀들을, 꼭 세 개씩 갖도록 구성된 공간이다. 여기서, 삼각형 모양의 도형이란 평면도형으로서의 삼각형만을 뜻하는 것이 아니라, 다차원 공간에서 세 개의 직선 또는 곡선의 변들을 갖는 도형을 뜻하며, 평면에서의 삼각형을 다차원 공간에서 구부리는 변형, 비트는 변형, 일부분을 확대하는 변형, 일부분을 축소하는 변형 등의 기하학적인 변형을 통하여 변형된 도형을 총칭하는 것이다. 이하, 삼각형 모양의 도형, 삼각형 모양 등의 표현은 모두 이와 같은 총칭의 의미로 사용되며, 셀이란 내부가 분할되어 있지 않은 최소 단위의 삼각형 모양의 도형을 뜻한다.
이제 도 2와 도 3을 참조하면서 보다 구체적으로 본 발명의 일 실시예를 설명한다. 먼저 셀룰라형성부(320)는 도 1과 같이 사각형의 평면도형을 144개의 삼각형 모양들로 분할한다. 그리고 빗금 친 16 개의 삼각형 모양을 도형에서 삭제하고 셀들의 변들 중 두 개의 셀들에 의해서 공유되지 않는 변들을 두 개씩 서로 이어 붙여서 모든 셀들의 변들이 각각 꼭 두 개의 서로 다른 셀들에 의해서 공유되면서 각 셀이 인접한 셀들을 꼭 세 개씩 갖도록 도형을 재구성하여 다차원 도형의 셀룰라 공간을 구성한다. 이와 같은 과정을 거쳐서 총 128개의 삼각형 모양의 셀들로 구성된 셀룰라 공간(200)을 형성하게 된다(201단계). 그 다음 이와 같이 구성된 셀룰라 공간(200)의 각 셀의 값으로, 즉, 각 셀의 상태로 32비트(bit)의 이진수를 할당한다. 그 예로서 도 4와 같은 초기치를 부여한다. 도 4에 나타난 각 셀의 번호는 상기 셀룰라 공간을 프로그램으로 구현시 128개의 32비트의 정수형 배열로 정의되며 이때 각 배열의 첨자를 의미한다. 그 다음 셀들의 초기값을 128비트의 사용자 키와 결합시키는데, 128비트의 사용자 키의 왼쪽으로부터 i 번째 비트의 값이 1이면 셀번호가 i인 셀의 초기값을 그대로 유지하고 사용자 키의 왼쪽으로부터 i 번째 비트의 값이 0이면 셀 번호가 i 인 셀의 초기값의 보수를 셀 번호가 i인 셀의 값으로 갱신하게 된다(202단계).
다음으로 각 셀에 할당된 이진수를 이산적인 시간의 흐름에 따라 변환시키는 방법에 대하여 설명하도록 한다. 본 발명에서 적용하는 변환방법은 난수열생성시에 적용이 되는데, 여기에서 일괄적으로 설명을 하고 난수열생성단계의 설명시에는 그 변환명칭만을 이용하도록 하겠다. 본 발명에서 사용하는 변환규칙에는 선형 변환 규칙과 비선형 변환 규칙, 그리고 순환 변환 규칙이 있으며, 상기 규칙들은 셀룰라 공간(도 1)의 모든 셀들의 값들을 동시에 갱신하는 방법과 셀룰라 공간의 일부의 셀들의 값들을 동시에 갱신하는 방법의 조합으로 구성된다.
선형변환규칙은 이산적인 시간의 흐름에 따라 셀룰라 공간의 모든 셀들의 값들을 동시에 갱신하는 방법으로써, 상기 셀룰라 공간의 각 셀의 값을 인접한 세 개의 셀들의 값들을 이용하여 갱신하는 방식으로, 즉, 상기 각 셀의 어떤 주어진 시각에서의 값으로 상기 세 개의 셀들의 상기 주어진 시각의 직전 시각에서의 세 개의 값들을 배타적논리합(XOR)한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 방식을 말하며, 상기 셀룰라 공간의 모든 셀들의 상기 주어진 시각에서의 값들을 동시에 부여하는 방법이다. 위에서 배타적논리합한다는 것은 1비트의 이진수들의 연산으로, 0과 0 그리고 1과 1의 연산 값은 0으로 하고 0과 1 그리고 1과 0의 연산 값은 1로 하는 연산이다.
그리고 상기 비선형변환규칙은 이산적인 시간의 흐름에 따라 셀룰라 공간의 모든 셀들의 값들을 동시에 갱신하는 방법으로써, 상기 셀룰라 공간의 각 셀의 값을 상기 셀과 인접한 세 개의 셀들의 값들을 이용하여 갱신하는 방식으로, 즉 상기각 셀의 주어진 시각에서의 값을 상기 세 개의 셀들의 상기 시각의 직전 시각에서의 세 개의 값들 중 두 개의 값들을 비트와이즈하게 논리합(OR)한 값과 상기 세 개의 셀들 중 나머지 하나의 셀의 값을 비트와이즈하게 배타적논리합한 값으로 하는 것을 말한다. 여기서 논리합한다는 것은 1비트의 이진수들의 연산으로, 0과 0의 연산 값은 0으로 하고 0과 1 그리고 1과 0 그리고 1과 1의 연산 값은 1로 하는 연산이며, 비트와이즈는 동일한 위치의 비트의 값들끼리 연산한다는 뜻이다
그리고 상기 순환변환규칙은 이산적인 시간의 흐름에 따라 셀룰라 공간의 일부의 셀들의 값들을 동시에 갱신하는 방법으로써, 상기 셀룰라 공간의 하나의 셀의 주어진 시각에서의 값으로 상기 셀의 상기 시각의 직전 시각에서의 값을 지정된 비트 수만큼 내부적으로 비트와이즈 로테이션(Bitwise Rotation)한 값을 부여하는 방식을 말하며, 이 규칙을 상기 일부 셀들에 동시에 적용하고 그 나머지 셀들의 값들은 변화시키지 않는 방법이다. 여기서 일부의 셀들 의 각 셀에 적용되는 비트와이즈 로테이션의 지정된 비트 수는 각 셀에 대응하여 다양하게 주어지며, 비트와이즈 로테이션은 셀의 값인 32비트의 이진 수의 모든 비트의 값을 상기 지정된 비트 수만큼 상위 비트 방향으로 내부적으로 로테이션한다는 뜻이다.
이와 같은 방법들에서, 선형변환규칙과 비선형변환규칙은 상기 셀룰라 공간의 각 셀의 값을 상기 셀룰라 공간의 모든 셀들로 확산시키는 수단으로 동역학계의 특성인 확산성, 확산 현상의 복잡성, 확산 현상의 비선형성, 확산 현상의 혼돈성, 확산 현상의 상호 간섭성, 매질의 분포가 불균질한 경우의 확산 현상의 불규칙성 등을 반영한다. 이러한 특성들 중 대부분은 상기 변환규칙의 구성 형태에 따라 영향을 받을 뿐만 아니라 상기 셀룰라 공간의 구성 형태에 따라, 즉 상기 셀룰라 공간의 기하학적 구조에 따라 크게 영향을 받는다.
또한 상기 선형변환규칙과 비선형변환규칙방법은 셀룰라 공간의 각 셀의 값을 셀룰라 공간의 모든 셀들로 확산시키는 수단으로는 효율적이지만, 셀룰라 공간의 셀들의 값들의 동일한 위치의 비트의 값들 상호간으로만 확산되고 셀룰라 공간의 셀들의 값들의 다른 위치의 비트의 값들로는 확산되지 않는 단점도 있다. 예를 들면, 셀룰라 공간의 각 셀의 값의 최상위 비트의 값은 셀룰라 공간의 셀들의 값들의 최상위 비트의 값들로만 확산되고, 셀룰라 공간의 셀들의 값들의 최상위 비트를 제외한 다른 위치의 비트의 값들에는 전혀 영향을 주지 않는다. 따라서 상기 방법들에서는 셀룰라 공간의 셀들의 값들에서 서로 다른 위치의 비트들의 값들은 서로 독립적이다.
이러한 단점을 해소하는 수단이 상기 순환변환규칙이다. 즉, 이 방법은 셀룰라 공간의 각 셀의 값의 각 위치의 비트의 값을 셀룰라 공간의 모든 셀들의 값들의 모든 위치의 비트의 값들로 확산시키는 수단이다. 그러나 실제로 상기 순환변환규칙의 이와 같은 확산 효과는 독자적인 시행에 의해서 얻어지는 것은 아니고, 상기 방법들의 적절한 교대 반복 시행에 의해서 얻어진다. 이러한 교대 반복 시행은 동역학계의 상기의 특성들을 효율적으로 반영하는 수단이다.
이와 같은 설명을 바탕으로 본 발명에 있어서의 이진 난수열 생성 방법과 이를 이용하여 평문의 이진 데이터 열을 암호문의 이진 데이터 열로 바꾸는 암호화 방법, 그리고 이렇게 생성된 암호문의 이진 데이터 열을 평문의 이진 데이터 열로바꾸는 복화화 방법 및 그 암호/복호장치를 난수열생성부(330)부터 설명하도록 한다.
난수열생성부(330)는 제1천이부(331)내지 제4천이부(337), 그리고 난수열추출부(339)로 구성된다. 제1천이부(331)는 상기 셀룰라 형성부(320)에서 형성한 셀룰라 공간의 각 셀의 값들을 입력받아 위에서 설명한 선형변환규칙을 적용하여 셀들의 값을 변환한다(203단계). 제2천이부(333)는 변환된 상기 값들을 받아 제어부(310)에 의하여 지정된 셀들의 현재 값들을 제어부(310)가 지정하는 비트수만큼 상기 순환변환규칙을 적용하여 1회 갱신한다(204단계). 제3천이부(335)는 다시 상기 제2천이부의 출력과 제1천이부의 출력을 수신하여 모든 셀에 대하여 상기 비선형변환규칙을 적용하여 다시 1회 갱신한다(205단계). 제4천이부(337)는 제1천이부(331)에서 제3천이부(335)까지의 변환횟수가 제어부(310)에서 지정하는 횟수 ,예를 들면 4회 반복되었는지를 확인하여 그렇지 못한 경우에는 제1천이부(331)로 피드백시켜 다시 반복을 시행하도록 하고, 횟수를 충족하였으면 그 결과를 난수열추출부(339)로 출력한다(206단계).
난수열추출부(339)는 상기 셀룰라 공간의 셀들의 값들로부터 제어부(310)가 지정하는 96개의 셀들로부터 3072비트를 추출하여 이진 난수열을 구성한다. 이 때 이진 난수열의 추출이 더 필요한 경우라면 상기 제1천이부(331)내지 제4천이부(337)까지의 순환을 더 시행할 수 있다(207단계).
암호화부(340)는 상기 이진 난수열과 평문의 이진 데이터 열을 비트와이즈하게 배타적 논리합 하여 암호화된 이진 데이터 열을 생성한다(208단계).
복호화부(350)는 상대방 장치로부터 상기 201단계에서 208단계를 거치면서 생성된 암호문을 수신하여 평문으로 복구하게되는데, 이러한 복호화를 수행하기위한 전 단계와 장치는 위에서 설명한 것과 동일한 구성 및 단계를 가지므로 별도의 설명은 생략한다. 결국 복호화부(350)는 암호를 위한 암호키와 동일한 복호키를 가지면서 상대방으로부터 수신하는 암호문과 상기의 단계들을 거쳐 생성한 이진난수열을 비트와이즈하게 배타적 논리합하여 평문으로 복호한다.
본 발명에 의한 셀룰라 오토마타를 이용한 암호 및 복호방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등이 있으며, 또한 캐리어 웨이브(예를들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. 또한 본 발명에 의한 폰트 롬 데이터구조도 컴퓨터로 읽을 수 있는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등과 같은 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다.
본 발명은 다차원 셀룰라 오토마타의 구조의 특성인 확산과 국소적인 상호작용을 이용하여 입력데이터를 암호화 하거나 복호화하는 방법과 그 장치에 관한 것이다.
본 발명에서와 같은 스트림 암호 알고리즘은 상당 수 개발되어 있으나, 본 발명에서와 같이 다차원 셀룰라 오토마타를 이용한 경우는 전례를 찾아보기 힘들다. 본 발명에서는 암호학적으로 가장 바람직한 성질인 것으로 밝혀져 있는 혼돈(Confusion)과 확산(Diffusion)의 특성을 그 본질적인 성질로 하고 있는 동역학계를 셀룰라 오토마타라는 효율적인 도구를 이용하여 해석하고, 이러한 해석을 이용하여 사용자의 키에 기반한 난수들을 생성하여 이를 이용하여 입력 메시지를 암호화 또는 복호화 하므로 본 발명에서 생성되는 암호문들은 암호학적 특성이 우수하다. 또한 다차원 셀룰라 오토마타를 이용하여 암호문의 생성속도가 빠르고 암호학적으로 안전한 스트림 암호 알고리즘을 구성하므로 암호학적으로 안전하며 빠른 수행속도를 가지는 스트림 암호 알고리즘의 사용이 요구하는 여러 응용분야에서 널리 사용되어 질 수 있는 효과가 있다.

Claims (16)

  1. (a) 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하고 상기 각각의 셀에 초기값을 할당하는 단계;
    (b) 상기 셀들의 개수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 단계;
    (c) 상기 각 셀의 값을 상기 각 셀에 인접하는 세 개의 셀들의 값들을 배타적논리합하고, 상기 배타적 논리합한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 단계;
    (d) 상기 다음상태의 값들을 가지는 셀들 중에서 난수열 생성에 필요한 개수 만큼의 셀에 대하여 지정된 비트 수 만큼 비트와이즈 로테이션하여 갱신하는 단계;
    (e) 상기 각각의 셀들의 값들을, 상기 각각의 셀들에 인접한 세 개의 셀들의 값들 중 임의의 두 개의 셀들의 값들을 비트와이즈 논리합하고, 상기 비트와이즈 논리합의 결과값과 나머지 하나의 셀의 값을 비트와이즈 배타적 논리합한 값으로 갱신하는 단계;
    (f) 상기 (c) 단계 내지 (e) 단계를 소정의 정수배로 반복하는 단계;
    (g) 상기 셀들 중에서 지정된 셀들로부터 상기 난수열을 구성하는데 필요한 크기의 비트를 추출하는 단계; 및
    (h) 상기 난수열과 평문 이진열을 논리 연산하여 암호화하는 단계;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화방법.
  2. 제1항에 있어서, 상기 (a)단계는
    (a1) 상기 셀들에서 사용자 키의 비트수에 맞도록 일부 셀을 삭제하는 단계;
    (a2) 상기 삭제된 셀들에 인접하는 두 개의 삼각형 모양의 셀들에 의하여 공유되지 않는 변들을 이어 붙여 다차원 도형을 형성하는 단계;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화 방법.
  3. 삭제
  4. 삭제
  5. 제 1항에 있어서, 상기 (d) 단계는,
    상기 지정된 비트 수를 상기 각각의 셀마다 상이하게 부여하고, 상기 각각의 셀에 부여된 지정된 비트 수 만큼 상기 각각의 셀에 대해 비트와이즈 로테이션을 수행하는 단계;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화방법.
  6. 제 1항에 있어서, 상기 (g) 단계는,
    상기 난수열의 구성을 위해 추가적인 비트 추출이 필요한 경우에는 상기 (c) 단계 내지 (e) 단계를 실행하는 단계;를 더 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화 방법.
  7. (a) 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하고 상기 각각의 셀에 초기값을 할당하는 단계;
    (b) 상기 셀들의 개수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 단계;
    (c) 상기 각 셀의 값을 상기 각 셀에 인접하는 세 개의 셀들의 값들을 배타적논리합하고, 상기 배타적 논리합한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 단계;
    (d) 상기 다음상태의 값들을 가지는 셀들 중에서 난수열 생성에 필요한 개수 만큼의 셀에 대하여 지정된 비트 수 만큼 비트와이즈 로테이션하여 갱신하는 단계;
    (e) 상기 각각의 셀들의 값들을, 상기 각각의 셀들에 인접한 세 개의 셀들의 값들 중 임의의 두 개의 셀들의 값들을 비트와이즈 논리합하고, 상기 비트와이즈 논리합의 결과값과 나머지 하나의 셀의 값을 비트와이즈 배타적 논리합한 값으로 갱신하는 단계;
    (f) 상기 (c) 단계 내지 (e) 단계를 소정의 정수배로 반복하는 단계;
    (g) 상기 셀들 중에서 지정된 셀들로부터 상기 난수열을 구성하는데 필요한 크기의 비트를 추출하는 단계; 및
    (h) 상기 난수열과 암호문을 논리 연산하여 복호화하는 단계;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 복호화방법.
  8. 제7항에 있어서, 상기 (a)단계는
    (a1) 상기 셀들을 사용자 키의 비트수에 맞도록 일부 셀을 삭제하는 단계;
    (a2) 상기 삭제된 셀들에 인접하는 두 개의 삼각형 모양의 셀들에 의하여 공유되지 않는 변들을 이어 붙여 다차원 도형을 형성하는 단계;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 복호화 방법.
  9. 삭제
  10. 제 8항에 있어서, 상기 (g) 단계는,
    상기 난수열의 구성을 위해 추가적인 비트 추출이 필요한 경우에는 상기 (c) 단계 내지 (e) 단계를 실행하는 단계;를 더 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 복호화 방법.
  11. 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하고, 상기 셀들의 개수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 셀룰라형성부;
    상기 각 셀의 값을 상기 각 셀에 인접하는 세 개의 셀들의 값들을 배타적논리합하고, 상기 배타적 논리합한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 제1천이부;
    상기 다음상태의 값들을 가지는 셀들 중에서 난수열 생성에 필요한 개수 만큼의 셀에 대하여 지정된 비트 수 만큼 비트와이즈 로테이션하여 갱신하는 제2천이부;
    상기 각각의 셀들의 값들을, 상기 각각의 셀들에 인접한 세 개의 셀들의 값들 중 임의의 두 개의 셀들의 값들을 비트와이즈 논리합하고, 상기 비트와이즈 논리합의 결과값과 나머지 하나의 셀의 값을 비트와이즈 배타적 논리합한 값으로 갱신하는 제3천이부;
    상기 제3천이부의 출력값을 소정의 귀환 횟수만큼 상기 제1천이부로 귀환시키는 제4천이부;
    상기 난수열의 크기에 따라 상기 소정의 귀환 횟수를 조절하는 제어부;
    상기 제4천이부의 출력값을 가지는 셀들 중에서 지정된 셀들로부터 상기 난수열을 구성하는데 필요한 크기의 비트를 추출하는 난수열 추출부; 및
    상기 난수열과 평문 이진열을 논리 연산하여 암호화하는 암호화부;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화 장치.
  12. 삭제
  13. 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하고, 상기 셀들의 개수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 셀룰라형성부;
    상기 각 셀의 값을 상기 각 셀에 인접하는 세 개의 셀들의 값들을 배타적논리합하고, 상기 배타적 논리합한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 제1천이부;
    상기 다음상태의 값들을 가지는 셀들 중에서 난수열 생성에 필요한 개수 만큼의 셀에 대하여 지정된 비트 수 만큼 비트와이즈 로테이션하여 갱신하는 제2천이부;
    상기 각각의 셀들의 값들을, 상기 각각의 셀들에 인접한 세 개의 셀들의 값들 중 임의의 두 개의 셀들의 값들을 비트와이즈 논리합하고, 상기 비트와이즈 논리합의 결과값과 나머지 하나의 셀의 값을 비트와이즈 배타적 논리합한 값으로 갱신하는 제3천이부;
    상기 제3천이부의 출력값을 소정의 귀환 횟수만큼 상기 제1천이부로 귀환시키는 제4천이부;
    상기 난수열의 크기에 따라 상기 소정의 귀환 횟수를 조절하는 제어부;
    상기 제4천이부의 출력값을 가지는 셀들 중에서 지정된 셀들로부터 상기 난수열을 구성하는데 필요한 크기의 비트를 추출하는 난수열 추출부; 및
    상기 난수열과 암호문을 입력받아 소정의 논리 연산을 수행하여 평문으로 복호화하는 복호화부;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 복호화 장치.
  14. 삭제
  15. 삼각형 모양의 복수의 셀들로 구성되는 다차원 셀룰라 공간을 형성하고, 상기 셀들의 개수에 상응하는 비트 길이를 갖는 사용자 키의 임의의 비트 자리의 값에 따라 상기 임의의 비트가 1이면 그 임의의 비트의 자리에 대응하는 셀의 초기값을 그대로 유지하고, 0이면 보수로 갱신하는 셀룰라형성부;
    상기 각 셀의 값을 상기 각 셀에 인접하는 세 개의 셀들의 값들을 배타적논리합하고, 상기 배타적 논리합한 값을 상기 각 셀의 다음 상태의 값으로 부여하는 제1천이부;
    상기 다음상태의 값들을 가지는 셀들 중에서 난수열 생성에 필요한 개수 만큼의 셀에 대하여 지정된 비트 수 만큼 비트와이즈 로테이션하여 갱신하는 제2천이부;
    상기 각각의 셀들의 값들을, 상기 각각의 셀들에 인접한 세 개의 셀들의 값들 중 임의의 두 개의 셀들의 값들을 비트와이즈 논리합하고, 상기 비트와이즈 논리합의 결과값과 나머지 하나의 셀의 값을 비트와이즈 배타적 논리합한 값으로 갱신하는 제3천이부;
    상기 제3천이부의 출력값을 소정의 귀환 횟수만큼 상기 제1천이부로 귀환시키는 제4천이부;
    상기 난수열의 크기에 따라 상기 소정의 귀환 횟수를 조절하는 제어부;
    상기 제4천이부의 출력값을 가지는 셀들 중에서 지정된 셀들로부터 상기 난수열을 구성하는데 필요한 크기의 비트를 추출하는 난수열 추출부;
    상기 난수열과 평문 이진열을 논리 연산하여 암호화하는 암호화부; 및
    상기 난수열과 암호문을 입력받아 소정의 논리 연산을 수행하여 평문으로 복호화하는 복호화부;를 포함하는 것을 특징으로 하는 셀룰라 오토마타를 이용한 암호화 및 복호화 장치.
  16. 제1항 혹은 제7항의 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2002-0062076A 2002-10-11 2002-10-11 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치 KR100450766B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0062076A KR100450766B1 (ko) 2002-10-11 2002-10-11 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0062076A KR100450766B1 (ko) 2002-10-11 2002-10-11 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치

Publications (2)

Publication Number Publication Date
KR20040033158A KR20040033158A (ko) 2004-04-21
KR100450766B1 true KR100450766B1 (ko) 2004-10-01

Family

ID=37332693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0062076A KR100450766B1 (ko) 2002-10-11 2002-10-11 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치

Country Status (1)

Country Link
KR (1) KR100450766B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990062338A (ko) * 1997-12-23 1999-07-26 김재겸 셀룰라 오토마타를 이용한 난수 열 발생 시스템과 이를 이용한 데이터 암호화 및 복호화 방법
KR19990069481A (ko) * 1998-02-03 1999-09-06 김재겸 셀룰라 오토마타를 이용한 암호화 및 복호화 방법과 해슁의 방법과 난수 열 발생 시스템
KR20020004022A (ko) * 2000-06-29 2002-01-16 이상성 다차원 셀룰라 오토마타를 이용한 난수 발생 방법 및 장치
KR20020004021A (ko) * 2000-06-29 2002-01-16 이상성 데이터 암호화 및 복호화 방법 및 장치
KR20030034518A (ko) * 2001-10-24 2003-05-09 (주)파이언소프트 셀룰라 오토마타를 이용한 해쉬 알고리즘

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990062338A (ko) * 1997-12-23 1999-07-26 김재겸 셀룰라 오토마타를 이용한 난수 열 발생 시스템과 이를 이용한 데이터 암호화 및 복호화 방법
KR19990069481A (ko) * 1998-02-03 1999-09-06 김재겸 셀룰라 오토마타를 이용한 암호화 및 복호화 방법과 해슁의 방법과 난수 열 발생 시스템
KR20020004022A (ko) * 2000-06-29 2002-01-16 이상성 다차원 셀룰라 오토마타를 이용한 난수 발생 방법 및 장치
KR20020004021A (ko) * 2000-06-29 2002-01-16 이상성 데이터 암호화 및 복호화 방법 및 장치
KR20030034518A (ko) * 2001-10-24 2003-05-09 (주)파이언소프트 셀룰라 오토마타를 이용한 해쉬 알고리즘

Also Published As

Publication number Publication date
KR20040033158A (ko) 2004-04-21

Similar Documents

Publication Publication Date Title
US12113891B2 (en) Encrypting and decrypting information
US8050401B2 (en) High speed configurable cryptographic architecture
RU2383934C2 (ru) Устройство криптографической обработки, способ криптографической обработки
US7995750B2 (en) Privacy-preserving concatenation of strings
KR102169369B1 (ko) 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
Hammad et al. A comparative review on symmetric and asymmetric DNA-based cryptography
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN106656500A (zh) 加密装置及方法
JPH0697930A (ja) ブロック暗号処理装置
KR100450766B1 (ko) 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치
US7505586B2 (en) Method for computer-based encryption and decryption of data
JP6091394B2 (ja) 情報処理装置、暗号化方法
Soni et al. A Comparative Study of Various Traditional and Hybrid Cryptography Algorithm Models for Data Security
US7133523B2 (en) Method and system for solving the word problem in braid group cryptosystems
Islam et al. Data encryption standard
Al-Kasasbeh A novel secure transposition cipher technique using arbitrary zigzag patterns
KR102704079B1 (ko) Pipo 암호화 장치 및 pipo 암호화 방법
Pal et al. A random block length based cryptosystem through multiple cascaded permutation-combinations and chaining of blocks
Vikas et al. A novel dna-and pi-based key generating encryption algorithm
KR102424922B1 (ko) Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법
Ishchukova et al. Linear and Differential Analysis of Simplified Kuznyechik Cipher
JP6202969B2 (ja) 情報処理装置、暗号化方法
WO2024185713A1 (ja) 暗号化装置、暗号化方法、及び暗号化プログラム
KR101077973B1 (ko) 이진 데이터의 암호화 시스템 및 그 방법

Legal Events

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

Payment date: 20120831

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140827

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180823

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190826

Year of fee payment: 16