KR100200531B1 - 암호화 방법 및 시스템 - Google Patents

암호화 방법 및 시스템 Download PDF

Info

Publication number
KR100200531B1
KR100200531B1 KR1019960054419A KR19960054419A KR100200531B1 KR 100200531 B1 KR100200531 B1 KR 100200531B1 KR 1019960054419 A KR1019960054419 A KR 1019960054419A KR 19960054419 A KR19960054419 A KR 19960054419A KR 100200531 B1 KR100200531 B1 KR 100200531B1
Authority
KR
South Korea
Prior art keywords
reversible
linear
encryption
plaintext
elements
Prior art date
Application number
KR1019960054419A
Other languages
English (en)
Other versions
KR19980035958A (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 KR1019960054419A priority Critical patent/KR100200531B1/ko
Publication of KR19980035958A publication Critical patent/KR19980035958A/ko
Application granted granted Critical
Publication of KR100200531B1 publication Critical patent/KR100200531B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 사용자가 인식할 수 있는 평문을 인식 불 가능한 암호문으로 변환하는 암호화 시스템에 관한 것이다.
이 암호화 시스템은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 수단과; 결합식에 의해 상기 평문을 연산하여 암호문을 발생하는 하는 제1 암호화 수단과; 가역 변환 수순에 따라 배열되어 적어도 3개 이상의 재정렬 정보를 이용하는 비선형 가역 변환기와 적어도 2개 이상의 선형 가역 변환기에 의해, 평문을 변환하여 암호문을 발생하는 제2 암호화 수단으로 구성된다.
이와 같은 구성의 암호화 시스템은 암호화 속도를 향상시키면서 보안성을 유지할 수 있다.

Description

암호화 방법 및 시스템
제1도는 본 발명에 따른 공개키 암호화 방법에 대한 과정을 나타낸 도면.
제2도는 제1도의 공개키 암호화 과정을 보인 흐름도.
제3도는 본 발명에 따른 선형 가역 CA 정변환을 위한 기능 블록도.
제4도는 본 발명에 따른 선형 가역 CA 역변환을 위한 기능 블록도.
제5도는 본 발명에 따른 비선형 가역 CA 정변환을 위한 기능 블록도.
제6도는 본 발명에 따른 비선형 가역 CA 역변환을 위한 기능 블록도.
제7도는 본 발명에 따른 공개키 암호화에서 사용된 재배열 정보 비밀키의 에를 도시한 도면.
제8도는 본 발명에 따른 공개키 암호화에서 사용된 비밀키, 입력, 및 출력관계를 나타낸 도면.
제9도는 본 발명의 공개키 암호화에서 결합된 공개키 정보를 나타낸 도면.
제10도는 공개키 암호화에서의 구성 조건별 키의 크기 및 연산수에 대한 비교를 나타낸 도면.
제11도는 본 발명에 따른 비밀키 암호화 과정을 나타낸 도면.
제12도는 본 발명에 따른 비밀키 암호화에서 사용된 비밀키의 예를 표한 도면.
제13도는 본 발명에 따른 공개키 암호화에서의 입력 평문과 출력 암호문간의 관게를 그래프로 나타낸 도면.
제14도는 본 발명에 따른 비밀키 암호화 시스템에서의 구성 고전에 따른 비밀키의 크기 및 연산수의 비교를 나타낸 도면.
본 발명은 암호화 방법 및 이를 위한 장치에 관한 것으로, 특히 셀룰러 오토마타(Cellular Automaton, CA) 이론을 이용한 공개키 암호화 방식 및 비밀키 암호화를 위한 장치 및 방법에 관한 것이다.
암호 이론은 정보 통신 시스템에서 보안성을 제공하기 위해 매우 중요한 것으로 최근에 정보 통신 사회로 발전해 가면서 그 중요성이 점차 증가하고 있다. 예를 들면 전자 결제 시스템, 디지털 머니라고 하는 응용 분야는 사회를 근본적으로 변혁시킬 수 있는 중요한 도구로서 앞으로의 이들의 실용화에 많은 기대를 모으고 있는데 이들 응용 분야가 암시하고 있듯이 그 보안성이 매우 중요하기 때문에 그 응용 분애에서 핵심이 되는 기술이 암호 기술이다. 그러므로 보안성, 뿐만 아니라 암호화, 복호화 속도가 향상된 새로운 암호 알고리즘을 개발하고 이를 필요로 하는 응용 분야에 접목시키는 일은 매우 중요한 것이다.
통상, 암호 시스템을 사용하는 키(key)에 따라 구분하면 다음과 같이 크게 두가지로 나눌 수 있다.
하나는 비밀키 암호 시스템(secret-key cryptosystem, single-k cryptosys tem)으로서 암호화할 때와 복호화할 때에 모두 하나의 비밀키를 사용하는 것이다.
다른 하나는 공개키 암호 시스템(public-key cryptosystem)으로서 서로 다른 두 개의 키를 쌍으로 사용한다. 암호화할 때에는 공개키를 사용하고 복호화할 때에는 비밀키를 사용한다. 이러한 비밀키 암호 시스템은 빠르고 보안성이 높기 때문에 일반적인 암호화의 용도에 널리 사용되나 송신자, 수신자가 미리 하나의 비밀키를 공유해야 하는 단점이 있어 응용에 제한이 있다. 반면 공개키 시스템은 많은 사용자들이 비밀키를 상호 공유하지 않고도 상대방을 확인하고 인증할 수 있다는 장점이 있으나, 속도가 느려서 응용에 제한이 있다. 그러므로 응용 분야에 따라 이 두가지 방법을 적절하게 결합하여사용하는 것이 좋다.
널리 쓰이고 있는 이와 같은 RSA 공개키 시스템에 대해 그 장단점을 간단히 설명하며, CA 이론을 적용한 공개키 기술에 대해 이하 보다 상세히 설명한다.
[RSA 공개키 시스템]
대표적인 공개키 시스템인 RSA 방식은 매우 큰 정수를 소인수 분해하기는 어렵다는 사실에 근거하여 그 보안성을 의존하고 있다. 이 방식에서는 사용자가 정수론에 의거한 특정한 방식으로 서로 쌍으로 사용될 수 있는 두 개의 키를 생성하여 하나는 공개키로 널리 공개하고 다른 하나는 비밀키로 사용자가 비밀로 보관한다. 암호화할 때에는 공개키를 이용하고 복호화할 때에는 비밀키를 이용해야 하므로 비밀키를 가지고 있는 사용자 이외에는 원래의 정보를 획득할 수 없다. 이 방법은 보안성이 좋아서 현재 가장 널리 쓰이고 있다.
그런데 이 방식은 암호화, 복호화할 때 예를 들면 100 자릿수 이상의 매우 큰 정수로 승산을 해야 하기 때문에 실행 속도가 매우 느리다는 약점이 있다. 일반적으로 비밀키 암호화 시스템이 비해 약 100 내지 1000배 정도 속도가 느린 것으로 평가되고 있다. 그래서 일반적인 암호화의 용도에는 사용하지 않고 키 보관, 사용자 인증, 디지털 서명 등 데이터의 크기가 작아서 속도가 크게 중요하지 않는 용도에 주로 사용되고 있다.
[CA 공개키 시스템]
1987년 피. 구안은 CA를 이용한 공개키 시스템을 제안하였다. 이것은 여러개의 비선형 가역 CA들을 결합시켜서 결합된 표현식을 얻어 낸 후 이것을 공개키로 공개하고 각각의 비선형 가역 CA의 정보를 비밀키로 사용하는 것이다. 이럴 경우 공개키인 결합된 표현식은 비선형 연립방정식이 되는 데 이것은 역함수를 구하기 어렵다는 것 때문에 보안성을 갖는다.
다음의 식(1) 내지 식(3)은 CA 공개키 시스템을 설명하기 위한 하나의 예로서 선택된 것이며, 이에 대한 자세한 것은 구안의 논문에 기재되어 있다. 이하 다음의 식을 사용하여 설명한다.
x1= x2
x2= x3
x3= x1
x4= x5+ x1x2
x5= x4+ x2x3
y1= x4
y2= x5
y3= x1+ x4x5
y4= x2+ x1x4
y5= x3+ x1
y1= x1x2+ x5
y2= x2x3+ x4
y3= x1x2x3+ x1x2x4+ x2x3x5+ x4x5+ x2
y4= x2x1+ x2x5+ x3
y5= x1+ x2
예를 들어 송신자가 2진수로 표현하여 10110(x1, x2, x3, x4, x5)이라는 정보를 송신하려고 하면 상기 식(3)의 공개키를 이용하여 01011로 암호화하여 송신한다. 수신자는 송신된 01011을 비밀키를 이용하여 원래의 10110으로 복호화하는데 이를 위해서 먼저 식(2)를 이용하여 01101을 얻고 다시 식(1)을 이용하여 원래의 평문 10110을 얻는다. 비밀키를 알고 있는 사람은 비선형 가역 CA를 나타내는 식(1) 및 (2)가 출력으로부터 입력을 거꾸로 계산하는 역과정이 아주 간단하여 매우 빠르게 복호화를 할 수 있다. 반면 공개키만을 알고 있는 사람은 결합된 식(3)의 역과정을 계산하기 어렵기 때문에 공격하기 어렵기 때문에 이 시스템은 보안성을 갖는다.
이러한 시스템의 장점은 속도가 매우 빠르다는 것이다. 이것은 RSA 시스템이 암호화, 복호화를 위해 매우 큰 정수로 승산 및 모드(mod) 연산하는 것과 비교할 때 간단한 사칙연산만으로 계산이 수행되기 때문이다.
그러나 구안의 논문은 기본적인 아이디어만을 제공한 것이고 이것을 실제로 구현하고자 할 때에는 다음과 같은 여러 가지 어려움들이 있다.
1) 어떤 비선형 가역 CA를 비밀키로 사용할 것인가? 선택되는 비밀키에 따라 공개키의 보안성이 크게 달라질 수도 있고 공개키의 크기가 달라질 수도 있다.
2) 상기 식(3)과 같은 공개키를 어떻게 표현할 것인가 하는 문제이다. 비선형 가역 CA를 여러 개 결합할수록 고차항의 수가 기하급수적으로 늘어나서 이를 체계적으로 표시하는 것이 어렵게 되고 표현한다 하더라도 키의 크기가 너무 커지게 된다.
3) 공개키의 크기를 어떻게 줄일 수 있는가 하는 문제이다. 충분한 비선형 결합 특성을 제공하면서도 키의 크기를 줄일 수 있어야 한다. 공개키의 크기자 10000비트 이상이 되면 실제적인 사용에 제한이 많게 된다.
4) 구안의 논문에서는 암호화, 복호화에 사용되는 CA의 계산을 비트 연산으로 하였는데 이것은 속도가 낮고 보안성이 떨어지는 단점이 있다.
따라서, 본 발명의 목적은 공개키 암호화 시스템의 속도를 향상시키면서 보안성을 유지할 수 있는 공개키 발생방법을 제공하는 것이다.
본 발명의 다른 목적은 기존의 공개키 시스템에 비해 획기적으로 빠르고 보안성이 높은 공개키 암호 시스템 및 그 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 빠르고 보안성이 높은 비밀키 암호 시스템 및 방법을 제공하는 것이다.
본 발명이 또 다른 목적은 공개키 방식과 비밀키 방식의 암호 시스템을 하나로 통합하기 쉽도록 하는 것이다.
이러한 본 발명은 제1특징에 따른 공개키 발생방법은 평문의 요소들의 재배열 위치를 지정하는 적어도 3개 이상의 재배열 정보를 설정하는 단계와, 재배열 정보를 이용하는 비선형 가역 변환과 적어도 2개 이상의 선형 가역 변환을 포함하는 평문의 변환수순을 설정하는 단계와, 적어도 3개 이상의 재배열 정보를 비선형 가역 변환규칙 및와 적어도 2개 이상의 선형 가역 변환규칙들과 결합시켜 평문과 암호문과의 관계를 표현하는 결합식을 산출하는 단계와, 결합식을 공개키로 제공하는 단계를 포함한다.
본 발명의 제2 특징에 따른 암호화 방법은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 단계와; 결합식에 의해 평문을 연산하여 암호문을 발생하는 암호화 단계를 포함한다.
본 발명의 제3특징에 따른 암호화 방법은 난수함수를 이용하여 적어도 2개 이상의 재정렬 정보를 설정하는 키생성단계와; 적어도 2개 이상의 재정렬 정보를 이용한 적어도 1개 이상의 비선형 가역 변환과 선형 가역 변환을 포함하는 일련의 변환 수순에 따라 평문을 변환하여 암호화 하는 단계를 포함한다.
본 발명의 제4특징에 따른 암호화 방법은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 단계와; 결합식에 따라 평문을 연산하여 암호문을 발생하는 제1암호화 단계와; 가역 변환 수순에 따라 적어도 3개 이상의 재정렬 정보를 이용하여 평문을 변환함으로서 평문을 암호화 하는 제2암호화 단계를 포함한다.
본 발명의 제5특징에 따른 암호화 시스템은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 수단과; 결합식에 의해 평문을 연산하여 암호문을 발생하는 암호화 수단을 구비한다.
본 발명의 제6특징에 따른 암호화 시스템은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 발생하는 키생성 수단과; 적어도 2개 이상의 재정렬 정보를 이용하는 적어도 1개 이상의 비선형 가역 변환기와 선형 가역 변환기의 직렬회로에 의해, 상기 평문을 변환하여 암호문을 발생하는 암호화 수단을 구비한다.
본 발명의 제7특징에 따른 암호화 시스템은 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 수단과; 결합식에 의해 상기 평문을 연산하여 암호문을 발생하는 제1암호화 수단과; 가역 변환 수순에 따라 배열되어 적어도 3개 이상의 재정렬 정보를 이용하는 비선형 가역 변환기와 적어도 2개 이상의 선형 가역 변환기에 의해, 평문을 변환하여 암호문을 발생하는 제2암호화 수단을 구비한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 사용하여 보다 상세히 설명한다.
본 발명은 셀룰러 오토마타(CA) 이론을 이용하여 새로운 공개키 암호 시스템과 비밀키 암호 시스템, 및 방법을 제공하고자 하는 것이다. 또한, 본 발명의 원리를 비밀키 암호 시스템으로 사용함으로서 빠르고 보안성이 높은 새로운 비밀키 암호 시스템 및 방법을 제공하고자 하는 것이다.
본 발명의 목적에 따라 본 발명에서는 CA 공개키 시스템(CAPS) 및 CA 비밀키 시스템(CASS)을 제공한다.
[CA 공개키 시스템]
이하, CA 공개키 시스템에 대한 첨부한 도면을 참조하여 설명한다.
본 명세서 서두부분에서 언급한 구안의 논문에 나타난 방법으로 여러 개의 비선형 가역 CA들을 결합시키면 2차 이상의 고차 비선형 항이 기하급수적으로 늘어나서 공개키로 표현하는 것 자체가 어려워질 수 있었다.
본 발명에서는 이를 해결하기 위해서 재배열을 포함하여, 여러개의 선형 가역 CA와 하나의 비선형 가역 CA를 결합시킴으로서 최대 차수는 2차로 제한하면서도 비선형 항을 많이 만들어 공개키의 크기가 작으면서도 역변환이 어려운 변환식을 제공한다. 이때의 선형 결합항은 본 발명에서 m X m 행렬로써 나타내고 2차의 비선형 결합항은 m X m X m 텐서로써 나타낼 수 있다. 여기 사용된 CA에 대한 수학적 정의에 따르면, 크기가 m인 CA는 m개의 내부 상태값 xt= (xt 1,xt 2,...,xt m)과 m 개의 함수 Fi를 가지고 구분된 시간 t 단계로 xt+1=Fi(xt 1,xt 2,...,xt m)과 같은 형태의 규칙에 따라 상태값이 변경되는 특성을 갖는 동역학 시스템이다. 이것은 시간상, 공간상으로 이산적(discrete)인 특성을 가지고 상태값도 어떤 집합 S 내에 포함된 이산적인 한 값만을 가질 수 있다. 이러한 정의에 기초하여 여러 가지 CA가 도출될 수 있는데, 이 중 가역 CA는 위와 같이 정의된 CA 중에서 입력과 출력의 집합이 같고 일대일 대응되어 역변환이 존재하는 CA를 말한다. 그리고, 각 내부 상태에 정의된 함수 Fi가 모두 같지는 않고 적어도 다른 함수가 하나 이상 존재하는 CA를 불균일(Inhomogeneous) CA라 한다. 선형 가역 CA는 가역 CA 중에서 함수 Fi를 선형 연산만을 사용한 CA를 말한다. 그리고 비선형 CA는 가역 CA 중에서 함수 Fi를 비선형 연산을 적어도 하나 이상 포함하는 CA를 말한다. 그리고 여기서 사용되는 CA의 결합이라고 하는 것은 두 개 이상의 CA 규칙(상기 여러 가지 CA를 포함하는)을 결합하여 최종 출력을 최초 입력의 함수로 나타내는 것을 의미한다.
본 발명에 따라서, 각 가역 CA의 재배열 정보는 비밀키가 되고 이들이 결합된 최초 입력과 최종 출력 사이의 결합식이 공개키가 된다. 암호화할 때는 공개키를 이용하여 입력 평문으로부터 출력 암호문을 바로 계산해내고, 복호화할 때에는 각 결합 단계의 비밀키들을 역순으로 사용하고 각 가역 CA들의 역함수를 이용하여 단계별로 계산하여 입력 암호문으로부터 원래의 평문을 계산해 낸다. 이렇게 하면 충분한 비선형 결합 효과를 가지면서도 공개키는 비교적 적은 크기로 나타낼 수 있다.
이러한 본 발명의 원리에 대해서 첨부한 도면을 사용하여 설명한다. 먼저, 재배열에 대한 것은 후술하고, CA를 사용한 암호화 과정에 대해 설명한다.
본 발명의 원리에 기초하여 본 발명에서는 R회 적용한 선형 가역 CA, 이에 이어서 1회 적용한 비선형 가역 CA, 다음에 다시 R'회 적용한 선형 가역 CA가 되도록 이와 같이 결합시킨다. 물론 이러한 구체적인 결합으로 본 발명이 한정되는 것은 아니며, 이에 포함되어 있는 본 발명의 정신으로부터 다양하게 변형할 수 있음에 유의해야 한다. 상기 예에서 R, R'은 결합 횟수를 나타내는 정수이다.
이것을 제1도에 도시하였다. 이들을 차례로 결합시키면서 입력과 출력 사이의 표현식을 살펴보면, 처음 R회까지의 선형 가역 CA의 결합은 선형 변환만을 포함하므로 간단한 m×m 행렬로 나타낼 수 있다. 제1도에서 입력 데이터는 M×1 벡터로서, 예를 들면 평문을 블록 단위로 분할한 것 중의 하나이며, 각각의 블록은 소정의 비트로 표현되는 M×1 벡터이다. 이들은 선형 가역 CA 암호화를 위한 행렬식과 곱하여져 출력되며, 이 출력은 계속하여 다른 선형 CA 암호화를 위한 행렬식에 곱하여지고, 이렇게하여 R회 수행된다.
그러나, 이때까지의 결합 결과는 간단한 역행렬의 계산만으로 역변환을 계산해낼 수 있으므로, 즉 평문을 쉽게 얻을 수 있으므로 공개키 시스템으로 사용하기에는 부적절하다. 여기에 제1도와 같이 비선형 가역 CA가 1회 결합되면 2차의 비선형 결합항이 발생하게 된다. 이들은 m×m의 선형 변환 행렬 A와 m×m×m의 비선형 변환 텐서 B로서 나타내어진다. 이때까지의 결합 결과는 비선형 변환 텐서 B를 포함하므로 역변환을 얻기가 어렵다.
이후에 다시 R'회의 선형 가역 CA를 결합시키는데, 본 발명에서 이렇게 하는 이유는 최종의 결합식에서 A와 B가 더욱 복잡하게 결합하도록 하는 역할을 위한 것이다.
이와 같은 암호화 수행에서, 결합할 때 행렬 및 텐서의 각 요소의 값이 모드값 2n을 넘는 경우에는 2n으로 모드 연산한다.
이와 같이 결합되어 얻어진 최초 입력과 최종 출력과의 관계식에서 A와 B를 공개키로 공개하며 암호화할 때에는 선형 변환 행렬 A, 비선형 변환 텐서 B를 이용하여 입력 평문으로부터 출력 암호문을 직접 계산해낼 수 있다. 공개키 A, B를 이용한 암호화 과정을 제2도에 나타내었다. 제2도의 흐름도는 제1도의 과정을 알기 쉽게 반복한 것이므로 이에 대한 상세한 것은 생략한다.
본 발명에서는 이러한 처리 과정에서 CA의 재배열을 사용한다는 것에 주목해야 한다. 본 발명에서는 결합에 사용된 선형 가역 CA 및 비선형 가역 CA의 재배열 수열들을 비밀키로서 비밀로 보관한다. 복호화할 때는 이들 재배열 수열의 정보들을 역순으로 이용하고 각 가역 CA들의 역함수(제4도 및 제6도 참조, 이에 대해서는 후술함)를 이용하여 단계별로 계산하여 입력 암호문으로부터 원래의 평문을 얻어낸다.
이하, 상기 기술한 바와 같은 본 발명에 따른 CA 공개키 시스템에 대해서, 제1도에 나타낸 R회 수행되었던 선형 가역 CA에 대해서 제3도를 참조하여 보다 구체적으로 설명한다.
먼저 평문을 다수의 블록으로 분할되고, 이 데이터 블록 내 데이터 요소의 개수를 m이라 하고 각 데이터 요소는 n비트의 숫자로 나타낸다고 하자. 그러면 모드 연산값은 2n이 된다. 입력 데이터를 X=(x0, x1,...,xm-1), 재배열된 데이터를 Y=(y0, y1,...,ym-1), 재배열 수열을 P=(p0, p1,...,pm-1), 본 발명에 따른 선형 가역 CA 출력 데이터를 Z=(z0, z1,...,zm-1)라 하고, 각각의 데이터 요소는 n비트의 정수로 나타내기로 한다. 이 경우 각 데이터 요소들은 0∼2n-1 사이의 값을 가질 수 있다. 이 때 선형 가역 CA에 대한 입력 데이터 X로부터 출력 데이터 Z로의 함수는 재배열 수열 P를 포함하여 다음과 같이 정의한다.
yi= xpi, 0 ≤ i m
z0= y0(4)
zi= yi+ yi-1(mod 2n), 0 i m
이것의 역함수는 다음와 같이 간단하게 표시된다.
y0= x0, 0 i m
y0= zi+ yi-1(mod 2n), 0 i m (5)
xpi= yi, 0 ≤ i m
이와 같은 본 발명에 따른 선형 가역 CA의 정변환과 그 역변환의 계산과정을 제3도 및 제4도에 나타내었다. 이것은 재배열 수열 P를 사용하여 입력 데이터 X를 재배열 데이터 Y로 1차 변환한 후 첫 번째 출력은 첫 번째 재배열 데이터를 그대로 사용하고 나머지 출력들에 대해서는 현재 위치와 바로 전 위치의 재배열 데이터를 더한 값을 사용하는 것으로 설명될 수 있다. 만일 더한 값이 2n이상이 되면, 모드 연산을 한다. 이렇게 정의하면 역함수가 상기 식(5)와 같이 간단하게 주어지는 가역 CA가 된다. 역함수를 계산할 때에는 첫 번째 데이터 요소를 먼저 계산하고 이를 이용하여 차례로 다음 데이터 요소들을 계산해 나간다. 마지막으로 역재배열 수열을 이용해 최종의 출력 평문 X를 구할 수도 있다. 그리고 mod=2n은 편의상 일례로 적용한 것으로 실제로는 임의의 양의 정수로 대치될 수 있다.
이와 같이 데이터를 재배열 수열 P을 사용하여 재배열한 후 선형 가역 CA는 행렬식을 사용하면 다음의 식(6)으로 나타낼 수 있다. 이는 또한 제2도의 흐름도를 이해하는데 도움이 될 것이다.
Y=AX, 즉
(6)
본 발명의 원리를 용이하게 이해할 수 있도록 구체적인 예를 들어 설명한다.
먼저 데이터 블록 내 데이터 요소의 개수를 m을 5이라 하고 각 데이터 요소는 4비트라고 하자. 그러면 모드 연산값은 16이 된다. 입력 데이터를 X=(x0, x1, x2, x3, x4), 출력 데이터를 Y=(y0, y1, y2, y3, y4), 재배열 수열을 =(p0, p1, p2, p3, p4)라 하고, R = R' =5라 한다. 이때, 재배열 수열이 p= 2, 1, 4, 0)인 경우, 정변환과 역변환은 다음의 식(7), (8)로 주어진다.
z0= x3
z1= x2+ x3
z2= x1+ x2(7)
z3= x4+ x1
z4= x0+ x4
x3= z0
x2= z1- x3
x1= z2- x2(8)
x4= z3- x1
x0= z4- x4
이와 같은 원리에 의해서, 입력 데이터와 재배열 수열이 제7도 및 제8도에 도시한 바와 같이 주어졌다고 할 때 이 때 얻어지는 출력은 다음과 같다.
본 예에서, 각 가역 CA에서 사용된 재배열 수열, 즉 비밀키는 제7도와 같다. 이러한 재배열 수열 정보를 이용한 선형 가역 CA, 다음에 설명할 비선형 가역 CA들은 제8도에 보인 예와 같은 방식으로 결합된다. 여기에서는 선형 가역 CA만이 예시되어 있다.
도면에서, sk는 비밀키를 나타내며, 괄호는 수행 순서를 나타낸다. 제7도의 I에서 sk(1)의 P(1)에 정해진 4, 1, 2, 3, 0은 제8도(a)에서 입력 (5, 15, 12, 5)의 순서를 (5, 2, 15, 12, 5)로 재배열하게 함을 의미한다. 그러면 재배열된 Y 데이터는 제3도와 같은 선형 가역 CA 규칙에 따라 출력 데이터(5, 7, 1, 11, 1)을 얻는다.
계속하여, 제7도의 'I'에서 두 번째 적용할 비밀키 sk(2)의 재배열 수열 P(2)는 (3, 1, 4, 2, 0)이다. 그러면, 제8도(a)에서 나온 출력(5, 7, 1, 11,은 P(2)에 따라 (11, 7, 1, 1, 5)로 재배열 되고 이 데이터는 제3도의 선형 가역 CA에 따라 출력 (11, 2, 8, 2, 6)이 된다. 즉, 11은 그대로 출력되고, 출력 z2는 제2 재배열된 데이터의 y(0) + y(1)을 더한 11 + 7 = 18이 되나, 모드 16을 적용하여 2의 값이 된다. 이하, sk(3) 내지 sk(5)에 대해서 마찬가지 과정을 거치는데, 제8도에는 4번째 까지의 결과만이 도시되어 있다. 그리고 제8도에서 대괄호로 표시된 숫자들은 행렬식을 나타낸 것으로 이는 입력과 행렬식의 적에 의해서 출력이 나오는 것을 식으로 표시하기 위한 것이다. 그리고 이것은 공개키로 사용될 것이다.
이와 같이, 본 발명의 암호화 과정에 따른 그 첫 번째 과정에 따라 재배열을 포함하는 선형 가역 CA가 5번(R=5) 반복하여 행해졌다. 이 과정에서 최종 출력된 데이터를 또 다시 입력으로 하여 이번에는 제7도의 'Ⅱ'와 같이 비선형 가역 CA를 적용한다.
이하 비선형 가역 CA에 대해서 보다 구체적으로 설명하도록 한다.
선형 가역 CA의 경우와 같이 본 발명에 따른 비선형 가역 CA에 대해서, 먼저 개괄을 설명하고, 이어서 구체적인 수치예로서 이 과정에 대해 설명한다.
데이터 블록 내 데이터 요소의 개수를 m이라 하고 각 데이터 요소는 n비트의 숫자로 나타낸다고 하자. 그러면 모드 연산값은 2n이 된다. 입력 데이터를 X=(x0, x1,...,xm-1), 재배열된 데이터를 Y=(y0, y1,...,ym-1), 재배열 열을 P=(p0, p1,...,pm-1), 출력 데이터를 Z=(z0, z1,...,zm-1)라 하고, 각각의 이터 요소는 n비트의 정수로 나타내기로 한다. 이 경우 각 데이터 요소들은 0 - 2n-1사이의 값을 가질 수 있다. 이 때 비선형 가역 CA에 대한 입력 데이터 X로부터 출력 데이터 Z로의 함수는 재배열 수열 P를 포함하여 다음과 같이 정의한다.
yi= xpi, 0 ≤ i m
z0= y0
zi= yi+ y0(mod 2n), 0 i m (9)
zi= yi+yi-1+ yi-1yi-2(mod 2n), 2 ≤ i m
이것의 역함수는 다음와 같이 간단하게 표시된다.
y0= z0
yi= zi- y0(mod 2n) (10)
yi= zi- yi-1- yi-1yi-2(mod 2n), 2 ≤ i m
xpi= yi, 2 ≤ i m
이와 같은 본 발명에 따른 비선형 가역 CA의 정변환과 그 역변환의 계산 과정을 제5도 및 제6도에 나타내었다. 이것은 재배열 수열 P를 사용하여 입력 데이터 X를 재배열 데이터 Y로 1차 변환한 후 첫 번째 출력은 첫 번째 재배열 데이터를 그대로 사용하고, 두 번째 출력은 현재 위치와 바로 전위치의 재배열 데이터를 더한 값을 사용하며, 나머지 출력들에 대해서는 현재 위치의 재배열 데이터, 바로전 위치의 재배열 데이터, 그리고 바로 전의 2개의 재배열 데이터를 곱한 값을 모두 더한 값을 사용하는 것으로 설명될 수 있다. 만일 더한 값이 2n이상이 되면, 모드 연산을 한다. 이렇게 정의하면 역함수가 식(10)와 같이 간단하게 주어지는 비선형 가역 CA가 된다. 역함수를 계산할 때에는 첫 번째 데이터 요소를 먼저 계산하고 이를 이용하여 차례로 다음 데이터 요소들을 계산해 나간다. 마지막으로 역재배열 수열을 이용해 최종의 출력 평문 X를 구할 수도 있다.
예를 들어 m=5이고 재배열 수열이 P=(3,2,1,4,0)인 경우 정변환과 역변환은 다음의 식(11), (12)로 주어진다.
z0= x3
z1= x2+ x3
z2= x1+ x2+ x2x3(11)
z3= x4+ x1+ x1x2
z4= x0+ x4+ x4x1
x3= z0
x2= z1- x3
x1= z2- x2- x2x3(12)
x4= z3- x1- x1x2
x0= z4- x4- x4x1
이러한 비선형 가역 CA는 행렬식을 사용하여 다음의 식(13)과 같이 나타낼 수 있다.
Y=AX+XBX, 즉
(13)
그러면, 다시 구체적인 예인 제7도로 돌아가서, 제7도의 'Ⅱ'와 같이 sk는 비밀키를 나타내며, 괄호는 수행 순서를 나타내는 것이므로, 이 때의 sk(6)의 P(1)은 (2, 3, 0, 4, 1)로 정해졌다. 그리고 이를 적용할 입력 데이터는 제7도 Ⅰ에서 최종으로 나온 데이터이다. 그리고 재배열한 후에 얻어질 출력 데이터는 이번 경우에는 비선형 CA에 해당하므로 앞의 식(13)에 따라 수행됨에 유념한다.
이와 같은 비선형 가역 CA에 사용되는 비선형 항에는 예시된 바와 같이 2개 이상의 데이터 요소의 곱셈항을 포함한다. 이대 이 곱셈항에 사용되는 2개 이상의 데이터 요소는 역함수 계산할 때 나눗셈을 포함하지 않도록 선택되도록 설계하는 것이 바람직하다.
이와 같이 제7도의 Ⅰ 및 Ⅱ과정을 마쳤으면, 다시 Ⅲ과 같은 과정을 마찬가지 방법으로 적용하여 암호화하여 본 발명에 따른 암호화를 완료한다.
이와 같이 선형 가역 CA를 5회, 이어서 비선형 가역 CA를 1회, 이어서 선형 가역 CA를 다시 5회 결합한 후 최종적으로 제9도에 보인 바와 같은 공개키 A, B를 얻게 된다.
이러한 공개키 시스템의 특징을 살펴보도록 한다.
상기 설명한 공개한 시스템에서 공개키의 크기는
(14)
이 된다. 텐서항의 크기는 m3n이 되지 않는 이유는 j≠k인 경우,
bijkxjxk+ bijkxkxj= (bijk+ bikj)xjxk(15)
와 같이 짧게 나타낼 수 있기 때문이다.
한편 각 재배열 요소를 나타내는 데에는 ℓ = log2 m정도의 비트수를 필요로 하므로, 비밀키의 크기는 ㎖(R + ℓ + R')이 된다. 또 단위 데이터 블록의 크기는 mn이다.
제10도에 본 발명에 따른 공개키 시스템의 구성 조건을 변화시킬 때 키의 크기 및 연산수를 분석한 결과를 보였다. 한 예로 m=12, n=8일 경우 블록 크기는 96비트가 되고 공개키의 크기는 8640비트, 비밀키의 크기는 528비트가 된다. 이 정도이면 공개키 시스템으로 충분히 사용될 수 있다. 공개키는 알려져 있더라도 이로부터 이의 역함수를 얻는 것은 불가능하므로 공격하고자 하는 사람은 비밀키를 찾아내고자 시도해 볼 것이다. 그러나, 비밀키 자체에 대한 공격 시도는 2ml(R+ℓ+R')= 2528= 9 × 10158정도의 시도를 요하며 비밀키의 재배열 수열에 대한 공격 시도는 m!R+1+R'= 3 × 1095정도의 시도를 요하는데 이것은 충분한 보안성을 갖는다고 말할 수 있다.
한편, 속도에 관계되는 연산수를 비교해보면 암호화할 때의 연산수는 비트당 47.3회이고 복호화할 때의 연산수는 비트당 1.5회로써 암호화는 복호화보다 약 30배 느린 것을 알 수 있다. 여기서 연산수는 편의상 덧셈, 곱셈을 구분하지 않았다. 복호화할 때의 속도는 일반적인 비밀키 시스템들의 속도와 비슷한 수준이며 암호화할 때에는 이보다 느리지만 기존의 RSA 등에 비하면 이것은 매우 빠른 속도이다.
CA 비밀키 시스템(CASS)
본 발명의 목적에 따라 언급한 CA 공개키 시스템외에도, 본 발명에서 CA 비밀키 시스템이 제공된다. 이것은 근본적으로 선형 가역 CA들을 결합하되 공개키를 생성하지 않고 비밀키를 암호화할 때 및 복호화 할 때 모두 사용하는 방법이다.
이 시스템이 공개키 시스템과 다른점은 여러개의 가역 CA들을 결합시키되 공개키를 생성하지 않고 여기에 사용된 재배열 수열의 정보를 비밀키 방식으로 암호화할 때와 복호화할 때에 모두 이용한다는 것이다. 암호화할 때에는 비밀키를 이용하여 각 가역 CA의 정변환을 단계별로 계산하여 최종의 암호문을 계산해 내고 복호화할 때에는 같은 비밀키를 역순으로 이용하고 각 가역 CA들의 역변환을 단계별로 계산하여 원래의 평문을 계산해내는 것이다.
먼저 데이터 블록 내 데이터 요소의 개수를 m이라 하고 각 데이터 요소는 n 비트의 숫자를 나타낸다고 하자. 그러면 모드 연산값은 2n이 된다. 입력 데이터를 X=(x0, x1,...,xm-1), 출력 데이터를 Y=(y0, y1,...,ym-1), 재배 수열을 P=(p0, p1,...,pm-1)라 하자. 이와 같다고 할때, 본 발명에 따른 R개의 선형 가역 CA 및 비선형 가역 CA들을 통과하는 비밀키 시스템의 수행 과정은 제11도에 도시한 바와 같다. M × 1 크기의 입력 데이터는 R회의 선형/비선형 가역 CA를 재배열을 포함하여 각각 수행된 후에 출력 데이터를 얻는다. 재배열 정보는 임의의 난수 함수를 이용하여 얻어질 수 있으며, 이를 본 발명에 적용한다.
이러한 비밀키 시스템을 실현하는 예로서 본 발명에 따라 제공하는 실시예를 다음에 설명한다.
데이터 요소는 개수 m=12, 각 데이터 요소의 비트수 n=8, 수행횟수 R=10으로 하고 비선형 가역 CA만을 이용하여 비밀키 시스템을 실현할 수 있다. 이때 사용된 비밀키를 제12도에 나타내었다. 그리고 이러한 조건에서 입력 평문과 출력 암호문의 분포 특성을 제13도에 나타내었다. 이 특성으로 부터 대각선의 데이터는 출력 암호문을 다시 복호화한 결과로서 입력 평문과 일치함을 알 수 있다.
또한 이에 더하여, 상기한 예의 각 수행단계에서 사용하는 가역 CA를 선행 가역 CA로 할 것인지 아니면 비선형 가역 CA로 할 것이지르 사용자가 선택할 수 있도록 하고 이 정보를 비밀키에 포함시킬 수도 있다. 이를테면, 선형 가역 CA를 사용할 경우에는 0, 비선형 가역 CA를 사용할 경우에는 1로 나타내도록 할 수 있다.
상기한 실현예에서 시스템 구성 조건에 따른 비밀키의 크기 및 연산수는 제14도에 도시한 바와 같다. 데이터 요소의 개수 m과 요소의 비트수 n을 증가시킴으로써, 비트당 연산수를 크게 줄일 수 있다. 예를 들면 m=12, n=32, R=10인 경우 단위 데이터 블록의 크기는 384비트이고, 비밀키의 크기는 480비트이며, 이 때 비트당 연산수는 0.81로서 매우 빠른 암호화 속도를 낼 수 있다. 이 경우의 비밀키에 대한 공격 가능성은 12!10= 6 × 1086이다.
다음에 또 다른 실현예에 대해서 설명한다. 본 예에서 가역 CA를 비밀키 시스템으로 사용하고자 하면, 키의 일부를 데이터 블록과 연산, 결합시키는 방식으로 사용할 수 있다. 환언하여, 이러한 시스템에서 비밀키는 재배열 정보를 나타내는 재배열 비밀키를 Kp로 표시하면 이 비밀키와 데이터 블록과 결합되는 결합 비밀키(Kc로 표시함)로 구성된다. 이 때 사용되는 선형 가역 연산을 다음의 식(16)과 같이 정할 수 있다. 즉 ki로 표시한 비선형 가역 CA의 결합 비밀키는 이미 사용된 데이터 블록 yi-1과 결합하여 새로운 데이터 블록 zi를 형성한다.
yi= xpi, 0 ≤ i m
z0= y0+ k0(mod 2n) (16)
zi= yi+ y0+ y0ki(mod 2n), 0 i m
zi= yi+yi-1+ yi-1yi-2+ yi-1ki(mod 2n), 2 ≤ i m
이것의 역함수는 다음의 식(17)과 같이 간단히 주어지며 첫 번째 데이터 요소로부터 차례대로 빠르게 계산될 수 있다.
y0= z0- k0(mod 2n)
yi= zi- y0- y0k1(mod 2n) (17)
yi= zi- yi-1+ yi-1yi-2- yi-1ki(mod 2n), 2 ≤ i m
xpi= yi, 0 ≤ i m
이러한 구성에서는 사용자키와 데이터 블록이 곱셈 연산으로 직접 결합되는 연산이 추가됨을 알 수 있다. 그러나, 데이터 블록의 크기만큼 사용자 키를 늘릴 수 있고, 단순한 재배열 정보에 대한 공격 시도만으로도 공격이 불가능해지므로 보안성을 향상시킬 수 있다.
이와 같이, 본 비밀키 시스템에서 입력, 출력 데이터는 m개의 요소를 갖는 블록으로 나타내어 지며, 각 수행단계에서 입력 데이터로부터 가역 CA의 재배열 수열을 이용하여 새로운 데이터 블록을 생성해내고 이것은 다음 수행 단계의 입력 데이터로 이용된다. 각 수행단계에서 선형 가역 CA, 비선형 가역 CA 중 어느것을 사용하는지 여부에 대한 정보도 비밀키로 사용할 수 있다. 이러한 비밀키 시스템에서는 공개키 시스템에서 요구되는 여러 가지 제한이 없어지는 잇점이 있다.
첫째, 공개키 시스템에서는 공개키의 크기가 급격히 팽창하는 것을 방지하기 위해서 여러개의 선형 가역 CA와 하나의 비선형 가역 CA를 겹합하였으나, 비밀키 시스템에서는 여러개의 비선형 가역 CA를 결합시킬 수 있다.
두 번째, 속도면에서 공개키 방식은 암호화할 때의 속도가 복호화할 때보다 느리다는 단점이 있었으나 비밀키 방식은 두 경우 모두 같은 경로로 게산되므로 속도가 비슷하고 매우 빠르다는 장점이 있다.
세 번째, 공개키 시스템에서느 실용적인 공개키의 크기에 제한이 있어서 블록내 데이터 요소의 개수 m, 각 데이터 요소의 비트수 n 등에 제한이 있었으나 비밀키 시스템에서는 이러한 제한이 없으므로 다양한 디자인이 가능하다. m값을 늘리면 데이터 요소들의 상호 작용 범위를 늘리는 것이 되고 n값을 늘리면 처리 단위가 커져서 속도를 높일 수 있다. 현재의 컴퓨터 CPU는 32비트 단위로 데이터를 처리할 수 있으므로 n=32로 하는 것이 효율적인 것이 될 것이다.
지금까지 알려져 있는 암호 시스템을 살펴보면 일반적으로 공개키 시스템과 비밀키 시스템은 그 이론적 배경과 구성이 전혀 달라서 하나의 시스템으로 구현하는 것은 어려웠다. 그렇지만 실제의 적용 시스템에서는 이들이 서로 보완 관계에 있기 때문에 함께 사용되는 경우가 많은 것이 사실이다. 그러므로, 기존의 암호 기술을 이용하여 이들을 하나의 시스템으로 구현하는 데에는 많은 비용이 들게 된다.
그러나, 본 발명에서 보인 가역 CA를 이용한 암호 시스템에서는 같은 이론적 배경을 가지고 공개키 시스템과 비밀키 시스템을 모두 구현하였으므로 이들을 하나로 통합하는 것이 매우 간단히다. 같은 수학적 연산 엔진을 사용하면서 데이터 및 키의 입출력 방식만을 바꿔줌으로서 공개키와 비밀키 시스템으로 작동시킬 수 있는 것이다. 이러한 장점들과 함께 본 발명의 암호 시스템은 높은 보안성과 빠른 속도를 보유함으로서 앞으로 다양한 분야에 적용이 기대되고 있다.
언급한 바와 같이, 본 발명의 가역 CA를 이용한 암호 시스템은 기존의 암호 시스템들과 비교할 때 보안성, 속도, 시스템의 통합성 등에서 많은 잇점을 갖고 있다. 즉, 가역 CA를 이용한 공개키 시스템의 보안성은 결합된 비선형 연립 방정식의 역함수를 구하는 것은 거의 가능하지 않다라는 수학적 사실에 의존하고 있다. 가역 CA의 재배열 정보를 포함하는 비밀키에 대한 공격 시도는 m!R+1+R'으로서 충분한 보안성을 갖고 있는 것이다. 또한, 비밀키 시스템의 보안성은 데이터의 비선형적 결합 특성에 의존하고 있어 재배열 정보에 대한 공격 시도는 m!R의 시도를 요하는 것이다.
공개키 시스템은 암호화할 때 가역 CA들이 결합 결과인 공개키를 이용하여 복호화할 때는 가역 CA들의 재배열 수열의 정보인 비밀키를 이용하고 있다. 그리고, 비밀키를 이용한 복호화는 일반 비밀키 방식의 암호화 방법 만큼 빠르며, 본 발명에 따른 공개키 암호화 방식도 종래의 공개키 방식에 비하여 빠르다. 예를 들면, 종래의 RSA 등의 공개키 암호화 방식이 일반 비밀키 방식보다 100 내지 1000배 정도 느린 것을 고려하면 상당히 빠른 암호화 시스템인 것이다. 비밀키 시스템은 시스템의 설계 조건을 따라 매우 빠른 암호화, 복호화가 가능하다. 공개키 시스템에서와 같은 시스템 구성상의 제한 요소가 없으므로 데이타 요소의 개수 m, 데이터 요소의 크기 n을 크게 할 수 있으며, 이 경우 매우 빠른 연산 속도를 얻을 수 있다.
공개키 시스템과 비밀키 시스템은 서로 보완적인 관계에 있다. 따라서 함께 사용되는 것이 보통이다. 기존의 암호 시스템들은 이 두가지 부류의 시스템들이 서로 크게 달라서 통합화하기에 어려움이 많았으나 본 발명의 암호시스템인 공개키 시스템과 비밀키 시스템은 동일한 이론적 배경을 갖고 있으므로 통합하기가 매우 용이하여 비용이 저렴하게 든다는 잇점이 있다.
본 발명은 지금까지 설명한 실시예에 한정되는 것이 아니라 발명의 기술사상을 일탈하지 않는 범위에서 다양한 변형 및 수정이 가능함을 이해하여야 한다. 따라서 본 발명은 다음의 특허 청구의 범위에 기재된 사항에 의해서만 정하여져야 할 것이다.

Claims (26)

  1. 사용자가 인식할 수 있는 평문을 인식할 수 없는 암호문으로 변환하는 암호화 방법에 있어서, 상기 평문의 요소들의 재배열 위치를 지정하는 적어도 3개 이상의 재배열 정보를 임의로 설정하는 단계와, 상기 재배열 정보를 이용하는 비선형 가역 변환과 적어도 2개 이상의 선형 가역 변환을 포함하는 평문의 변환수순을 설정하는 단계와, 상기 적어도 3개 이상의 재배열 정보를 상기 비선형 가역 변환규칙 및 와 적어도 2개 이상의 선형 가역 변환규칙들을 결합하여 상기 평문과 상기 암호문과의 관계를 표현하는 결합식을 산출하는 단계와, 상기 결합식을 공개키로 제공하는 단계를 포함하는 것을 특징으로 하는 공개키 발생방법.
  2. 제1항에 있어서, 상기 비선형 가역 변환은 상기 적어도 2개 이상의 선형 가역 변환의 사이에서 진행되도록 배치된 것을 특징으로 하는 공개키 발생방법.
  3. 제1항에 있어서, 상기 가역 변환은 입력 데이타의 요소들을 상기 재배열 수열에 따라 재배열하고, 재배열된 데이타의 요소들을 규칙에 따라 변환하는 것을 특징으로 하는 공개키 발생방법.
  4. 제3항에 있어서, 상기 재배열된 데이타의 요소들에 적용되는 규칙중 적어도 하나 이상의 상이한 규칙이 포함된 것을 특징으로 하는 공개키 발생방법.
  5. 제3항에 있어서, 상기 재배열된 데이타의 요소들에 적용되는 규칙은 첫번째 요소를 원래의 값을 유지하도록 그대로 출력하는 것을 특징으로 하는 공개키 발생방법.
  6. 제3에 있어서, 상기 선형 가역 변환은 선형특성과 선형적인 역함수를 가진 연산을 수행하는 것을 특징으로 하는 공개키 발생방법.
  7. 제6항에 있어서, 상기 재배열된 데이타가 각각 n비트로 된 m개의 요소들을 포함하고, 상기 선형 가역 변환은 재배열된 요소들중 첫번째 요소를 첫번째 출력요소로 그리고 상기 재배열 요소들중 나머지 요소들에 대하여 전위치의 요소를 가산하여 나머지 출력 요소들로 생성하는 것을 특징으로 하는 공개키 발생방법.
  8. 제7항에 있어서, 상기 선형 가역 변환은 요소들의 가산에 의해 그 값이 2n을 초과한 경우에 상기 가산된 값을 2n으로 모드 연산을 수행하는 것을 특징으로 하는 공개키 발생방법.
  9. 제3항에 있어서, 상기 비선형 가역 변환은 역함수를 갖고 적어도 하나 이상의 비선형 연산을 포함하는 연산들을 수행하는 것을 특징으로 하는 공개키 발생방법.
  10. 제9항에 있어서, 상기 비선형 연산은 역함수의 계산에 제산이 배제될 수 있는 곱셈항을 발생시키는 것을 특징으로 하는 공개키 발생방법.
  11. 제10항에 있어서, 상기 재배열된 데이타가 각각 n비트로 된 m개의 요소들을 포함하고, 상기 비선형 가역 변환은 재배열된 요소들중 첫번째 요소를 첫번째 출력요소로 하고, 상기 재배열된 요소들중 첫번째와 두번째 요소를 가산하여 두번째 출력요소로 하고, 상기 재배열 요소들중 나머지 요소들에 대해서는 이전의 두개의 요소의 곱과 바로 이전의 요소를 가산하여 나머지 출력 요소를 산출하도록 된 것을 특징으로 하는 공개키 발생방법.
  12. 제11항에 있어서, 상기 비선형 가역 변환은 요소들의 계산된 값이 2n을 초과하는 경우에 상기 계산된 값을 2n으로 모드 연산을 추가로 수행하는 것을 특징으로 하는 공개키 발생방법.
  13. 제1항에 있어서, 상기 결합식이 최대 2차의 항만을 포함하고 m×m의 행렬과 m×m×m의 텐서으로 표현된 것을 특징으로 하는 공개키 발생방법.
  14. 제13항에 있어서, 상기 평문을 구성하는 m개의 요소를 각각 n비트의 정보를 포함하고, 상기 행렬과 텐서를 구성하는 계수들은 2n미만의 값을 갖도록 2n으로 모드 연산된 것을 특징으로 하는 공개키 발생방법.
  15. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 방법에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 단계와, 상기 결합식에 의해 상기 평문을 연산하여 암호문을 발생하는 하는 암호화 단계를 포함하는 암호화 방법.
  16. 제15항에 있어서, 상기 3개 이상의 재배열 정보를 이용하여 상기 가역 변환 수순과 역으로 상기 암호문을 역변환하여 평문을 복원하는 복원화 단계를 추가로 구비한 것을 특징으로 하는 암호화 방법.
  17. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 방법에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하는 키생성단계와, 상기 적어도 2개 이상의 재정렬 정보를 이용한 적어도 1개 이상의 비선형 가역 변환과 선형 가역 변환을 포함하는 일련의 변환 수순에 따라 상기 평문을 변환하여 암호화 하는 단계를 포함하는 암호화 방법.
  18. 제17항에 있어서, 상기 적어도 2개 이상의 재정렬 정보를 이용하여 상기 암호화단계에서의 변환 수순과는 역으로 상기 암호문을 변환하여 평문을 복원하는 복호화 단계를 추가로 포함하는 것을 특징으로 하는 암호화 방법.
  19. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 방법에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 단계와, 상기 결합식에 상기 평문을 대입하여 암호문을 발생하는 하는 제1암호화 단계와, 상기 가역 변환 수순에 따라 상기 적어도 3개 이상의 재정렬 정보를 이용하여 상기 평문을 변환함으로서 상기 평문을 암호화 하는 제2암호화 단계를 포함하는 암호화 방법.
  20. 제19항에 있어서, 상기 3개 이상의 재배열 정보를 이용하여 상기 가역 변환 수순과 역으로 상기 암호문을 변환하여 평문을 복원하는 복호화 단계를 추가로 포함하는 것을 특징으로 하는 암호화 방법.
  21. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 시스템에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬된 정보들을 이용하여 결합식을 산출하는 키 생산 수단과, 상기 결합식에 의해 상기 평문을 연산하여 암호문을 발생하는 하는 암호화 수단을 구비한 것을 특징으로 하는 암호화 시스템.
  22. 제21항에 있어서, 상기 가역 변환 수순과 역으로 배열되어 상기 3개 이상의 재배열 정보를 이용하는 비선형 가역 변환기와 적어도 2개 이상의 선형 가역 변환기에 의해, 상기 암호문을 변환하여 평문을 복원하는 복호화 수단을 추가로 구비한 것을 특징으로 하는 암호화 시스템.
  23. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 시스템에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 발생하는 키 생성 수단과, 상기 적어도 2개 이상의 재정렬 정보를 이용하는 적어도 1개 이상의 비선형 가역 변환기와 선형 가역 변환기의 직렬회로에 의해, 상기 평문을 변환하여 암호문을 발생하는 암호화 수단을 구비한 것을 특징으로 하는 암호화 시스템.
  24. 제23항에 있어서, 상기 직렬회로를 구성하는 상기 가역 변환기들과 역순으로 배열되고 상기 적어도 2개 이상의 재정렬 정보를 이용하는 1개 이상의 선형 가역 변환기와 비선형 가역 변환기의 제2직렬회로에 의해, 상기 암호문을 변환하여 평문을 복원하는 복호화 수단을 추가로 구비한 것을 특징으로 하는 암호화 시스템.
  25. 사용자가 쉽게 인식할 수 있는 평문을 인식 곤란한 암호문으로 변환하기 위한 암호화 시스템에 있어서, 난수함수를 이용하여 적어도 3개 이상의 재정렬 정보를 설정하고, 비선형 가역 변환 및 적어도 2개 이상의 선형 가역 변환을 포함하는 가역 변환 수순을 선정하고, 이들 가역 변환의 규칙들과 상기 재정렬 정보들을 이용하여 결합식을 산출하는 키 생성 수단과, 상기 결합식에 의해 상기 평문을 연산하여 암호문을 발생하는 제1암호화 수단과, 상기 가역 변환 수순에 따라 배열되어 상기 적어도 3개 이상의 재정렬 정보를 이용하는 비선형 가역 변환기와 적어도 2개 이상의 선형 가역 변환기에 의해, 상기 평문을 변환하여 암호문을 발생하는 제2암호화 수단을 구비한 것을 특징으로 하는 암호화 시스템.
  26. 제25항에 있어서, 상기 가역 변환 수순과 역으로 배열되어 상기 3개 이상의 재배열 정보를 이용하는 비선형 가역 변환기와 적어도 2개 이상의 선형 가역 변환기에 의해, 상기 암호문을 역변환하여 평문을 복원하는 복호화 수단을 추가로 구비한 것을 특징으로 하는 암호화 시스템.
KR1019960054419A 1996-11-15 1996-11-15 암호화 방법 및 시스템 KR100200531B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960054419A KR100200531B1 (ko) 1996-11-15 1996-11-15 암호화 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960054419A KR100200531B1 (ko) 1996-11-15 1996-11-15 암호화 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR19980035958A KR19980035958A (ko) 1998-08-05
KR100200531B1 true KR100200531B1 (ko) 1999-06-15

Family

ID=19482041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960054419A KR100200531B1 (ko) 1996-11-15 1996-11-15 암호화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100200531B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100790511B1 (ko) 2006-11-03 2008-01-02 김경원 암호화 및 복호화 시스템과 암호화 및 복호화 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013746B1 (ko) * 2008-12-15 2011-02-14 충북대학교 산학협력단 전송 중 데이터 오류의 산사태 효과를 극복할 수 있는 암호화 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100790511B1 (ko) 2006-11-03 2008-01-02 김경원 암호화 및 복호화 시스템과 암호화 및 복호화 방법

Also Published As

Publication number Publication date
KR19980035958A (ko) 1998-08-05

Similar Documents

Publication Publication Date Title
Lai On the design and security of block ciphers
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
KR100435052B1 (ko) 암호화장치
US6243470B1 (en) Method and apparatus for advanced symmetric key block cipher with variable length key and block
US7218733B2 (en) Encryption method, program for encryption, memory medium for storing the program, and encryption apparatus, as well as decryption method and decryption apparatus
KR100363457B1 (ko) 암호체계용매핑레퍼토리
US6192129B1 (en) Method and apparatus for advanced byte-oriented symmetric key block cipher with variable length key and block
Aboytes-González et al. Design of a strong S-box based on a matrix approach
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US20060093136A1 (en) Implementation of a switch-box using a subfield method
KR100259179B1 (ko) 암호화 통신 처리
AU1132199A (en) A non-deterministic public key encryption system
Biham et al. Differential-linear cryptanalysis of serpent
JP3180836B2 (ja) 暗号通信装置
US20080192924A1 (en) Data encryption without padding
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
Andreevich et al. Pseudo-probabilistic block ciphers and their randomization
US20060098815A1 (en) Methods of encoding and decoding data
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
KR100200531B1 (ko) 암호화 방법 및 시스템
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
Venkatesha et al. AES based algorithm for image encryption and decryption
JPH0738558A (ja) 暗号化装置、及びそれを用いた通信システム及びその方法
Mukhopadhyay Cryptography: Advanced encryption standard (aes)
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법

Legal Events

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

Payment date: 20070221

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee