KR100253806B1 - 키 생성 방법 - Google Patents

키 생성 방법 Download PDF

Info

Publication number
KR100253806B1
KR100253806B1 KR1019970014910A KR19970014910A KR100253806B1 KR 100253806 B1 KR100253806 B1 KR 100253806B1 KR 1019970014910 A KR1019970014910 A KR 1019970014910A KR 19970014910 A KR19970014910 A KR 19970014910A KR 100253806 B1 KR100253806 B1 KR 100253806B1
Authority
KR
South Korea
Prior art keywords
reversible
elements
equation
affine
nonlinear
Prior art date
Application number
KR1019970014910A
Other languages
English (en)
Other versions
KR19980077685A (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 KR1019970014910A priority Critical patent/KR100253806B1/ko
Publication of KR19980077685A publication Critical patent/KR19980077685A/ko
Application granted granted Critical
Publication of KR100253806B1 publication Critical patent/KR100253806B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

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

Abstract

본 발명은 비선형 연립 방정식의 해를 구하기 어렵다는 사실에 그 보안성을 의존하는 공개키를 생성할 수 있는 키 생성 방법을 제공함에 있다.
본 발명은 모듈러 변수 n미만의 정수로 표현되는 m개의 요소를 입력과 출력으로 하는 임의의 두개의 아파인 가역변환식(A1, A2)과 m개의 요소를 입력과 출력으로 하는 최고차항의 차수가 2차인 비선형 가역변환식(N)을 생성시키고, 첫번째 아파인 가역변환식(A1), 비선형 가역변환식(N), 두번째 아파인 가역변환식(A2)의 순서로 이루어지는 변환을 m개의 요소를 입력과 출력으로 하는 결합식(F≡A2·N·A1)을 산출하고, 결합식(F)과 모듈러 변수(n)를 공개키로 제공한다.

Description

키 생성 방법
제1도는 본 발명의 실시예에 따른 키 생성 장치의 블럭도.
제2도는 제1도의 아파인 가역변환 생성 수단과 그 역변환 산출 수단의 상세 블럭도.
제3도는 제2도의 난수 발생을 통한 단위 아파인 가역변환식 생성수단과 그 역변환식 생성수단의 상세 블럭도.
제4도는 제1도의 비선형 가역변환 생성수단과 그 역변환 산출수단의 상세 블럭도.
제5도는 제1도에 도시된 결합식 산출 수단의 상세 블럭도.
제6도는 본 발명의 실시예에 따른 공개키를 이용한 암호화 방법을 설명하는 흐름도.
제7도는 비밀키를 이용한 복호화 방법을 설명하는 흐름도.
제8도는 본 발명의 실시예에 따른 암호 통신 시스템의 블럭도.
제9도는 본 발명의 다른 실시예에 따른 암호 통신 시스템의 블럭도.
본 발명은 평문을 암호문으로 그리고 암호문을 평문으로 변환하는데 사용되는 공개키 및/또는 비밀키를 생성하는 방법에 관한 것이다.
암호이론은 정보 통신 시스템에서 보안성을 제공하기 위해 매우 중요한 것으로, 최근 사회가 정보 통신 사회로 발전해 가면서 그 중요성이 점차 증가하고 있다. 예를 들면 전자 결재 시스템, 전자 화폐라고 하는 응용분야는 사회를 근본적으로 변혁시킬 수 있는 중요한 도구로서 앞으로 이들의 실용화에 많은 기대를 모으고 있는데, 그 응용 분야에서 핵심이 되는 기술이 암호 기술이다. 그러므로 보안성과 암호화·복화화 속도가 향상된 새로운 암호 알고리즘을 개발하고 이를 필요로 하는 응용분야에 접목시키는 일은 매우 중요한 것이다.
통상, 암호 시스템은 키(key)가 사용되는 방법에 따라 크게 두 가지로 구분된다. 하나는 비밀키 암호 시스템(secret-key cryptosystem, symmetric-key system)으로서 암호화할 때와 복호화할 때 사용되는 키가 같은 경우이다. 다른 하나는 공개키 암호 시스템(public-key cryptosystem, asymmetric-key system)으로서 서로 다른 두개의 키가 쌍으로 사용된다. 즉, 공개키를 사용하여 평문을 암호문으로 변환하고 이를 다시 비밀키를 이용하여 평문으로 변환하는 경우이다. 비밀키 암호 시스템은 빠르고 보안성이 높기 때문에 일반적인 암호화의 용도에 널리 사용되나 송신자, 수신자가 미리 하나의 비밀키를 공유해야하므로 응용에 제한이 있다. 반면 공개키 시스템은 비밀키 공유의 문제가 없어 비단 단순 암호화 용도 이외에도 디지털 서명 등의 여러 가지의 응용분야를 가지는 장점이 있으나 지금까지 제안된 공개키 방식들은 속도가 일반적인 비밀키 방식에 비해 많이 느린게 단점이다.
공개키 시스템으로 현재 가장 널리 쓰이고 있는 RSA공개키 시스템에 대하여 간단히 설명하고 그 단점을 기술한다. 또한, 비선형 연립 방정식의 해를 구하기 어렵다는 사실에 그 보안성을 의존하는 공개키 시스템으로 H. Fell과 W. Diffie에 의해 제안되었던 방식과 S. Tsujii 등에 의해 제안되었던 방식에 대하여 설명하고 각 방식에서 나타나는 보안성의 약점에 대하여 기술한다.
[RSA 공개키 시스템(1977)]
대표적인 공개키 시스템인 RSA방식은 매우 큰 정수를 소인수 분해하기 어렵다는 사실에 그 보안성을 의존하고 있다. 이 방식에서는 사용자가 정수론에 의거한 특정한 방식으로 서로 쌍으로 사용될 수 있는 두개의 키를 생성하여 하나는 공개키로 널리 공개하고 다른 하나는 비밀키로써 사용자가 비밀로 보관한다. 암호화할 때에는 암호화하고자 하는 평문을 공개키를 이용해 승산과 모듈러 연산을 하여 암호문으로 변환을 시킨다. 복호화할 때는 암호문을 비밀키를 이용해 승산과 모듈러 연산을 하여 평문으로 변환을 한다.
이 방식의 단점은 암호화와 복호화 과정에서 100자릿수 이상의 매우 큰 정수로 승산을 해야하는 것이다. 이 승산으로 인해 RSA공개키 방식에 의한 암호화와 복호화는 일반적인 비밀키 암호화 시스템의 그것에 비해 약 100배 정도로 속도가 느리다.
[H. Fwll과 W. Diffie(1985) 등에 의해 제안된 공개키 시스템]
Fell과 W. Diffie가 제안한 공개키 방식은 비선형 연립방정식의 해를 구하기 어렵다는 사실에 그 보안성을 의존하고 있다. 이 방식에서는 각각 N개의 입력요소와 출력요소를 가지는 비선형 연립 함수를 공개키로 사용하고 그 비선형 연립함수는 역연산이 가능하도록 설계된 N개의 입·출력 요소를 갖는 비교적 간단한 비선형 연립 함수를 여러 단계 결합하여 생성되는데, 각 단계에서 쓰인 비선형 함수들 또는 결합에 사용되는 몇가지 정보들이 비밀키로 사용된다. 또한 이 방식에서는 공개키의 크기가 너무 커지는 것을 방지하기 위해, 함수식에서 각 변수들의 차수가 특정한 차수가 되면 자동적으로 0이 되는 시스템(Nilpotent Case)과 특정한 차수가 되면 1이 되는 시스템(J-ring Case)등이 제안되어 공개키로 쓰이는 비선형 연립 함수가 특정한 차수 미만으로 되게끔 하였다.
이 방식은 RSA방식에 비해 데이터 처리 속도와 키 생성 속도가 빠르다는 장점을 제공하기는 하나, 결합식의 차수를 제한하는 것이 공개키로 쓰이는 비선형 연립 함수의 역함수에도 적용되므로 역함수의 차수가 낮아지고 이로 인해 간단한 항등식에 의해 역함수의 계수를 모두 구해 낼 수 있다는 단점을 가지고 있다.
[S.Tsujii, T.Itoh, A.Fujioka, K.Kurosawa, T.Matsumoto(1987) 등에 의해 제한된 공개키 방식]
S. Tsujii등이 제안한 공개키 시스템 또한 Diffie와 Fell의 방식에서와 같이 비선형 연립방정식의 해를 구하기 어렵다는 사실에 그 보안성을 의존하며 N개의 입·출력 요소를 가지는 비선형 함수가 공개키로 사용된다. Diffie와 Fell의 방법과 다른 것은 공개키로 사용되는 비선형 함수가 선형 함수, 비선형 함수, 선형 함수의 순서로 결합되어 생성되는 것이다. 여기서 사용되는 비선형 함수는 분모와 분자가 각각 1차인 분수 함수이다.
이 방식도 Diffie와 Fell의 방식과 같이 그 속도가 빠르다는게 장점이다. 그런데, 이 시스템은 Diffie와 Fell 방법에 있어서의 문제점과 같은 것은 없으나 분수 함수의 특성으로 인하여 분자식의 분모에 해당하는 식의 꼴이 공개키로 쓰이는 비선형 함수에 그대로 나타난다. 이로 인하여, 이 시스템에서는 간단한 선형 대수에 의해 공개키로부터 비밀키를 계산해내는 방법이 존재한다.
따라서, 본 발명의 목적은 비선형 연립 방정식의 해를 구하기 어렵다는 사실에 그 보안성을 의존하는 공개키를 생성할 수 있는 키 생성 방법을 제공함에 있다.
본 발명의 다른 목적은 평문을 빠르게 암호화 할 수 있고 높은 보안성을 유지할 수 있는 키 생성 방법을 제공함에 있다.
본 발명의 또 다른 목적은 암호문을 빠르게 평문화 할 수 있고 높은 보안성을 유지할 수 있는 키 생성 방법을 제공함에 있다.
본 발명의 또 다른 목적은 서명된 메시지를 암호문의 형태로 전송할 수 있는 키 생성 방법을 제공함에 있다.
본 발명에 따른 키생성방법은 m개의 요소를 입력과 출력으로 하는 두개의 임의의 아파인 가역변환식(A1, A2)과 m개의 요소를 입력과 출력으로 하고 최고차항이 2차인 비선형 가역변환식(N)을 생성시키는 단계와, 비선형 가역변환식(N)이 아파인 가역변환식들(A1, A2)의 사이에 위치하는 순서로 상기 변환식들(A1, A2, N)을 결합함으로써 m개의 요소를 입력과 출력으로 하는 결합식(F≡A2·N·A1)을 산출하는 단계와, 결합식(F≡A2·N·A1)과 모듈러 변수(n)를 함께 모듈러 변수 n미만의 정수로 표현되는 m개의 요소를 가지는 디지털 메시지(M)의 암호화에 사용되는 공개키로 제공하는 단계를 포함한다.
이하, 본 발명의 실시예들을 첨부한 제1도 내지 제9도를 참조하여 상세히 설명하기로 한다.
제1도는 본 발명에 따른 키 생성장치의 블록도로서, 키 생성 장치(1)는 가역변환식 생성 수단(10), 결합식 산출 수단(20), 역변환식 산출 수단(30)으로 구성된다. 결합식 산출수단(20)에서 제공되는 공개키는 누구나 억세스 할 수 있는 공개키 메모리(2)에 저장되고, 역변환 산출수단(30)에서 제공되는 비밀키는 사용자만이 접근할 수 있는 비밀키 메모리(3)에 저장된다. 가역변환 생성수단(10)은 m개의 요소를 입력과 출력으로 하는 2개의 아파인 가역변환식들(A1, A2)과, m개의 요소를 입력과 출력으로 하고 최고차항이 2차인 비선형 가역변환식(N)을 생성한다. 이를 위하여, 가역변환식 생성 수단(10)은 두개의 아파인 가역변환식(A1, A2) 생성수단들(11)과 하나의 비선형 가역변환식 생성수단(12)을 구비한다. 결합식 산출 수단(20)은 가역변환식 생성 수단(10)에서 생성된 두개의 아파인 가역변환식들(A1, A2)과 비선형 가역변환식(N)을 아파인 가역변환식(A1, A2)들 사이에 비선형 가역변환식(N)이 삽입되는 순서로 결합하여 m개의 요소를 입력과 출력으로 하는 2차 가역변환식(F≡A1·N·A2)을 산출한다. 역변환식 산출 수단(30)은 가역변환식 생성 수단(10)에서 생성된 2개의 아파인 가역변환식들(A1, A2)과 비선형 가역변환식(N)에 대한 아파인 역변환식(A1-1, A2-1, N-1)을 산출한다. 이 역변환식 산출 수단(30)에 의해 산출된 2개의 아파인 역변환식들(A1-1, A2-1)과 비선역 역변환식(N-1)은 각각 m개의 입력요소들과 m개의 출력요소들을 가진다.
공개키 메모리(2)는 결합식 산출 수단(20)으로부터 모듈러 변수(n)와 함께 공급되는 2차 가역변환식(F≡A1·N·A2)을 공개키로써 자체내에 저장한다. 이를 위하여, 공개키 메모리(2)는 공개키를 안정되게 보관하기 위해 소거 가능한 비활성 메모리로 구성된다. 비밀키 메모리(3)는 역변환식 산출 수단(30)으로부터 모듈러 변수(n)와 함께 공급되는 2개의 아파인 역변환식들(A1-1, A2-1)과 비선역 역변환식(N-1)을 비밀키로써 자체내에 저장한다. 이를 위하여, 비밀키 저장 수단(3)은 공개키 메모리(2)와 마찬가지로 비밀키를 안정되게 보관하기 위해 소거 가능한 비활성 메모리로 구성된다.
제2도는 제1도에 도시된 아파인 가역변환식 생성 수단(11)과 역변환식 산출수단(30)의 일부분인 아파인 역변환식 산출 수단을 상세하게 도시한다. 아파인 가역변환식 생성수단(11)은 직렬로 접속된 K개의 단위 아파인 가역변환식 생성수단들(1121내지 112K) 각각에 재배열 정보(Ⅱ)와 상수 벡터들(α,γ)을 공급하는 난수 발생 수단(110)을 구비한다. K개의 단위 아파인 가역변환식 생성 수단(1121내지 112K)은 동일한 형태의 기본 아파인 가역변환식에 난수 발생 수단(110)으로부터의 재배열 정보(Ⅱ)와 상수 벡터들(α,γ)을 적용하여 단위 아파인 가역변환식을 각각 생성한다. 그리고 K개의 단위 아파인 가역변환식 생성 수단(1121내지 112K) 각각은 생성된 단위 아파인 가역변환식에 의해 m개의 입력요소들 각각을 아파인 변환한다. 또한, K-1개의 단위 아파인 가역변환식 생성수단(1122내지 112K)은 하위의 단위 아파인 가역변환식 생성 수단(1121내지 112K-1)의 m개의 출력요소들을 재차 변환하게 된다. 이 결과, K번째 단위 아파인 가역변환식 생성 수단(112K)은 K개의 단위 아파인 가역변환식들이 결합(즉, 승산)된 아파인 가역변환식(A1 또는 A2)을 생성한다. 아울러, K번째 단위 아파인 가역변환식 생성 수단(112K)에서는 첫번째 단위 아파인 가역변환식 생성수단(1121)에 입력되는 m개의 요소들이 상기 아파인 가역변환식(A1 또는 A2)에 의해 변환된 m개의 출력요소들이 발생되게 된다. 그리고 난수 발생 수단(110)으로부터 K개의 단위 아파인 가역변환식 생성수단들(1121내지 112K) 각각에 공급되는 재배열 정보들(Ⅱ)과 상수 벡터들(α,γ)은 동일하게 설정될 수 있으나 서로 상이한 값을 가지도록 설정되는 것이 바람직하다.
한편, 아파인 역변환식 산출수단(31)은 직렬로 접속된 K개의 단위 아파인 역변환식 생성수단들(3101내지 310K)을 구비한다. K개의 단위 아파인 역변환식 생성 수단(3101내지 310K)은 각각 대응되는 K개의 단위 아파인 가역변환식 생성 수단(1121내지 112K)에서 발생된 아파인 가역변환식들에 대한 아파인 역변환식들을 생성한다. 그리고 K개의 단위 아파인 역변환식 생성 수단(3101내지 310K) 각각은 생성된 단위 아파인 역변환식에 의해 m개의 입력요소들 각각을 아파인 역변환한다. 또한, K-1개의 단위 아파인 역변환식 생성수단(3102내지 310K)은 하위의 단위 아파인 역변환식 생성 수단(3101내지 310K-1)의 m개의 출력요소들을 재차 역변환하게 된다. 이 결과, K번째 단위 아파인 역변환식 생성 수단(310K)은 K개의 단위 아파인 역변환식들이 결합(즉, 승산)된 아파인 역변환식(A1-1또는 A2-1)을 생성하게 된다. 아울러, K번째 단위 아파인 역변환식 생성 수단(310K)에서는 첫번째 단위 아파인 역변환식 생성수단(3101)에 입력되는 m개의 요소들이 상기 아파인 역변환식(A1-1또는 A2-1)에 의해 변환된 m개의 출력요소들이 발생되게 된다. 그리고 K번째 단위 아파인 역변환식 생성 수단(310K)에 의해 역변환된 m개의 출력요소들은 첫번째 단위 아파인 가역변환식 생성수단(1121)에 공급되는 m개의 요소들과 동일한 값을 가지게 된다. 또한, K번째 아파인 가역변환식 생성 수단(112K)에서 최종적으로 생성되는 아파인 가역변환식(A1 또는 A2)와 K번째 아파인 역변환식 생성 수단(310K)에서 최종적으로 생성되는 아파인 역변환식(A1-1또는 A2-1)은 각각 1차항의 계수를 나타내는 행렬과 상수항을 나타내는 벡터로 표현되며, 행렬과 벡터의 각 요소들은 모듈러 변수(n)와의 모듈러 연산에 의해 모듈러 변수(n) 미만의 값을 가지게 된다.
제3도의 (a)는 제2도에 도시된 단위 아파인 가역변환식 생성수단(112)의 일 예를 상세하게 도시하고, 제3도의 (b)는 제2도에 도시된 단위 아파인 역변환식 생성수단(310)의 일 예를 상세하게 도시한다. 제3a도에 도시된 단위 아파인 가역변환식 생성수단(112)은 모두 6개의 요소들(X1,X2,X3,X4,X5,X6)을 가지는, 즉 m=6인 평문을 6개의 요소들(Y1,Y2,Y3,Y4,Y5,Y6)로 된 암호문으로 변환한다. 그리고 단위 아파인 가역변환식 생성수단(112)은 기본 아파인 가역변환식을 구현하는 재배열수단(Ⅱ), 다섯개의 승산기(×α1내지 ×α5), 여섯개의 가산기(+), 및 여섯개의 모듈러 연산기(n)를 구비한다. 재배열 수단(Π)은 난수발생수단(110)으로부터의 여섯개의 재배열정보(Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6)에 따라 여섯개의 평문요소들(X1,X2,X3,X4,X5,X6)을 재배열하여 6개의 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)을 발생한다. 그리고 다섯개의 승산기(×α1내지 ×α5), 여섯개의 가산기(+)는 난수 발생 수단(110)으로부터의 제1상수 벡터들(α12345) 및 제2상수 벡터(γ123456)와 재배열수단(Π)으로 부터의 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)을 이용하여 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6) 각각에 대한 기본형 연삭식들을 구성한다. 이를 상세히 하면, 첫번째 출력요소(Y1)는 첫번째 재배열요소(X'1)와 첫번째 제2상수벡터(γ1)와의 합이 되고, 두번째 내지 여섯번째 출력요소들(Y2내지 Y6) 각각은 i-1번째 재배열요소(X'i-1)와 i-1번째 제1상수벡터(αi-1)의 곱과 i번째 제2상수벡터(γi)와 i번째 재배열요소(X'i)의 합이 된다. 또한, 여섯개의 모듈러 연산기들(n)는 각각 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6)이 모듈러변수(n) 미만의 값을 가지도록 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 모듈러변수(n)로 모듈러 연산한다. 이들 기본형 연산식들은 기본형의 단위 아파인 가역변환식을 이루는 것으로 다음과 같이 표현된다.
Figure kpo00002
(식 1)과 같은 기본형의 단위 아파인 가역변환식을 구현하는 단위 아파인 가역변환식 생성수단(112)은 난수 발생 수단(110)으로부터의 재배열정보(Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6), 제1상수 벡터(α12345) 및 제2상수 벡터(γ123456)의 값들에 따라 다양한 단위 아파인 가역변환식을 생성한다. 이에 따라, 제2도에 도시된 K개의 단위 아파인 가역변환식 생성수단(1121내지 112k)은 각각 상이한 값들을 가지는 재배열정보(Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6), 제1상수 벡터(α12345) 및 제2상수 벡터(γ123456)에 의해 서로 다른 단위 아파인 가역변환식을 각각 생성하게 된다.
일례로, 난수 발생 수단(110)에서 Ⅱ={6,5,1,2,3,4}의 재배열정보, α={131,24,240,66,44}의 제1상수벡터 및 γ={14,174,233,79,4,104}인 제2상수벡터가 발생되고 모듈러 변수 n이 256일 때, 단위 아파인 가역변환식 생성수단에서 생성되는 단위 아파인 가역변환식은 다음과 같이 된다.
이 때, 재배열수단에서 발생되는 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)은 재배열정보에 의해 X'1=X6, X'2=X5, X'3=X1, X'4=X2, X'5=X3, X'6=X4로 된다. 그리고 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6), 제1상수벡터(α) 및 제2상수벡터(γ)의 조합에 의해 생성되는 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6) 각각에 대한 연산식들은
Y1=X'1+14 (mod 256) =X6+14(mod 256,
Y2=X'2+131X'1+174 (mod 256) =X5+131X6+174 (mod 256,
Y3=X'3+24X'2+233 (mod 256) =X1+24X5+233 (mod 256,
Y4=X'4+240X'3+79 (mod 256) =X2+240X1+79 (mod 256,
Y5=X'5+66X'4+4 (mod 256) =X3+66X2+4 (mod 256,
Y6=X'6+44X'5+104 (mod 256) =X4+44X3+104 (mod 256로 된다.
이때 공개키의 모듈러 값 n이 256이면 변환식의 계수들을 256으로 모듈러 연산하여도 데이터 변환의 결과는 같다. 계수들을 256으로 모듈러 연산하여 1차항의 계수는 행렬로 상수항은 벡터로 나타내면 아래와 같다.
[예 1]
Figure kpo00003
제3b도에 도시된 단위 아파인 역변환식 생성수단(310)은 모두 6개의 요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 가지는, 즉 m=6인 암호문을 6개의 요소들(X1,X2,X3,X4,X5,X6)로 된 평문으로 변환한다. 그리고 단위 아파인 역변환식 생성수단(310)은 기본 아파인 역변환식을 구현하는 역배열수단(Ⅱ-1), 다섯개의 승산기(×α1내지 ×α5), 여섯개의 가산기(+), 및 여섯개의 모듈러 연산기(n)를 구비한다. 다섯개의 승산기(×α1내지 ×α5)와 여섯개의 가산기(+)는 난수 발생 수단(110)으로부터의 제1상수 벡터(α12345) 및 제2상수 벡터(γ123456)와 6개의 입력요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 조합하여 여섯개의 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6) 각각에 대한 기본형 연산식들을 구성한다. 이를 상세히 하면, 첫번째 재배열요소(X'1)는 첫번째 입력요소(Y1)로부터 첫번째 제2상수벡터(γ1)를 감산한 값이 되고, 두번째 내지 6번째 재배열요소들(X'i=X'2내지 X'6) 각각은 i번째 입력요소(Yi=Y2내지 Y6)로부터 i-1번째 재배열요소(X'i-1=X'1내지 X'5)와 i-1번째 제1상수벡터(αi-11내지 α5)와의 곱과 i번째 제2상수벡터(γi2내지 γ6)를 감산한 값이 된다. 또한, 역배열수단(Π-1)은 난수발생수단(110)으로부터의 여섯개의 역배열정보(Π1 -12 -13 -14 -15 -16 -1)에 따라 6개의 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)을 역배열하여 여섯개의 평문요소들(X1,X2,X3,X4,X5,X6)을 발생한다. 그리고 여섯개의 모듈러 연산기들(n)은 각각 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)이 모듈러변수(n) 미만의 값을 가지도록 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)을 모듈러변수(n)로 모듈러 연산한다. 이들 기본형 연산식들은 기본형의 단위 아파인 역변환식을 이루는 것으로 다음과 같이 표현된다.
Figure kpo00004
(식 2)과 같은 기본형의 단위 아파인 역변환식을 구현하는 단위 아파인 역변환식 생성수단(310)은 난수 발생 수단(110)으로부터의 역배열정보(Π1 -12 -13 -14 -15 -16 -1), 제1상수 벡터(α12345) 및 제2상수 벡터(γ123456)의 값들에 따라 다양한 단위 아파인 역변환식을 생성한다. 이에 따라, 제2도에 도시된 K개의 단위 아파인 역변환식 생성수단(3101내지 310K)은 각각 상이한 값들을 가지는 역배열정보(Π1 -12 -13 -14 -15 -16 -1), 제1상수 벡터(α12345) 및 제2상수 벡터(γ123456)에 의해 서로 다른 단위 아파인 역변환식을 각각 생성하게 된다.
일례로, 난수 발생 수단(110)에서 Ⅱ-1={6,5,1,2,3,4}의 역배열정보, α={131,24,240,66,44}의 제1상수벡터 및 γ={14,174,233,79,4,104}인 제2상수벡터가 발생되고 모듈러 변수 n이 256일 때, 단위 아파인 역변환식 생성수단에서 생성되는 단위 아파인 역변환식은, 먼저
Figure kpo00005
에 의해 6개의 재배열요소들(X'1,X'2,X'3,X'4,X'5,X'6)를 산출한 다음 이들을 역배열수단에 의해 역배열함으로써,
Figure kpo00006
의 6개의 평문요소들(X1내지 X6)를 산출하게 된다. 이때, 공개키의 모듈러 값 n이 256이면 변환의 계수들을 256으로 모듈러 연산하여도 데이터 변환의 결과는 같다. 계수들을 256으로 모듈러 연산하여 1차항의 계수는 행렬로 상수항은 벡터로 나타내면 아래와 같다.
[예 2]
Figure kpo00007
이상과 같이, 단위 아파인 가역변환식 생성수단(112)과 단위 아파인 역변환식 생성수단(310)은 각각 난수 발생기(110)에서 발생된 임의의 재배열정보(Ⅱ)와 제1 및 제2상수벡터(α,γ)를 이용하여 단위 아파인 가역변환식과 단위 아파인 역변환식을 생성한다. 그리고 단위 아파인 가역변환식 생성수단(112)과 단위 아파인 역변환식 생성수단(310)이 제2도에서와 같이 각각 연속적으로 배열됨으로써 아파인 가역변환식(A)과 그 역변환(A-1)이 각각 산출되도록 한다. 다음으로, 연속적으로 접속된 5개의 단위 아파인 가역변환식 생성수단들(112)에 의해 생성되는 아파인 가역변환식(A)과, 연속적으로 접속된 5개의 단위 아파인 역변환식 생성수단들(310)에 의해 생성되는 아파인 역변환식(A-1)의 예를 설명한다.
난수 발생수단(110)에서 생성되는 다섯조의 재배열정보(Ⅱ), 제1상수 벡터(α) 및 제2상수벡터(γ)가 각각
Figure kpo00008
일 때, 5개의 단위 아파인 가역변환식 생성수단들(112)에 의해 5개의 단위 아파인 가역변환식이 생성된다. 아울러, 다섯개의 단위 아파인 가역변환식들은 순차적으로 결합되어 아파인 가역변환식(A)을 생성시킨다. 마찬가지로, 5개의 단위 아파인 역변환식 생성수단들(310)에 의해 5개의 단위 아파인 역변환식이 생성된다. 그리고, 다섯개의 단위 아파인 역변환식(A-1)들은 역순으로 결합되어 아파인 역변환식(A-1)을 생성시킨다. 이들 아파인 가역변환식(A)과 그 역변환식(A-1)을 행렬과 벡터로 나타내면,
[예 3]
Figure kpo00009
제4도의 (a)는 제1도에 도시된 비선형 가역변환식 생성수단(12)의 실시예를 상세하게 도시하고, 제4도의 (b)는 제1도의 역변환식 산출수단(30)에 포함된 비선형 역변환식 생성수단(312)의 실시예를 상세하게 도시한다. 2차 비선형 가역변환식 생성수단(12)도 역시 난수 발생 수단(110)에서 생성되는 임의의 재배열정보(Ⅱ(Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6})와, 임의의 제1상수 벡터(α{α1234}), 임의의 제2상수벡터(γ{γ123456}) 및 임의의 제3상수벡터(β{β12345})를 이용한다.
먼저, 제4도 (a)에 도시된 비선형 가역변환식 생성수단(114)은 난수 발생 수단(110)에서 발생된 임의의 재배열정보(Ⅱ{Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6})를 이용하는 재배열수단(Ⅱ)과, 4개의 승산기(×), 5개의 제곱연산기(S), 6개의 가산기(+), 및 6개의 모듈러 연산기(n)로 구성된다. 5개의 제곱연산기(S)는 각각 제곱연산외에 제곱연산된 결과와 제3상수벡터(β)와의 승산을 더 수행한다. 재배열수단(Ⅱ)은 입력요소들(X1 내지 X6)을 난수 발생 수단(110)으로부터 인가되는 임의의 재배열정보(Ⅱ{Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6})에 따라 재배열하여 6개의 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)을 발생한다. 그리고 4개의 승산기(×), 5개의 제곱연산기(S) 및 6개의 가산기(+)는 난수 발생 수단(110)으로부터의 임의의 제1상수벡터(α{α1234}), 임의의 제2상수벡터(γ{γ123456}) 및 임의의 제3상수벡터(β{β12345})와 재배열수단(Ⅱ)으로부터의 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)을 이용하여 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6) 각각에 대한 기본형 연산식들을 구성한다. 그리고 여섯개의 모듈러 연산기들(n)은 각각의 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 모듈러변수(n) 미만의 값을 가지도록 출력요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 모듈러변수(n)로 모듈러 연산한다. 이를 상세히 하면, 첫 번재 출력요소(Y1)는 첫 번째 재배열요소(XΠ1)와 첫번째 제2상수 벡터 γ1의 합이 되고, 두번째 출력 요소(Y2)는 첫번째 재배열요소(XΠ2)의 제곱에 첫번째 제3상수벡터(β1)를 곱한 것과 두번째 재배열요소(XΠ2) 및 두번째 제2상수벡터(γ2)의 합이 된다. 그리고 3번재 내지 6번째 출력요소들(Y3내지 Y6) 각각은 i번째 재배열요소(XΠi), (i-1)번째 재배열요소(XΠi-1)의 제곱에 i-1번째 제3상수벡터(βi-1)를 곱한 것, (i-1)번째와 (i-2)번째 재배열요소들(XΠi-1,XΠi-2)의 곱에 i-2번째 제1상수벡터(αi-2)을 곱한 것과 i번째 제2상수벡터(γi)의 합으로 나타난다. 마지막으로 각 출력 요소들은 모듈러 변수 n으로 모듈러 연산된다. 이들 출력요소들(Y1내지 Y6) 각각의 연산과정을 수식으로 표현하면,
Figure kpo00010
와 같이 된다.
다음으로, 제4도 (b)에 도시된 비선형 역변환식 생성수단(312)은 난수 발생 수단(110)에서 발생된 임의의 재배열정보(Ⅱ{Ⅱ1,Ⅱ2,Ⅱ3,Ⅱ4,Ⅱ5,Ⅱ6})를 이용하는 재배열수단((Ⅱ)과, 4개의 승산기(×), 5개의 제곱연산기(S), 6개의 감산기(-), 및 6개의 모듈러 연산기(n)로 구성된다. 5개의 제곱연산기(S)는 각각 제곱연산외에 제곱연산된 결과와 제3상수벡터와의 승산을 더 수행한다. 4개의 승산기(×), 5개의 제곱연산기(S) 및 6개의 가산기(+)는 난수 발생 수단(110)으로부터의 임의의 제1상수벡터(α{α1234}), 임의의 제2상수벡터(γ{γ123456}) 및 임의의 제3상수벡터(β{β12345})와 입력요소들(Y1,Y2,Y3,Y4,Y5,Y6)을 포함하는 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6) 각각에 대한 기본형 연산식들을 구성한다. 그리고 여섯개의 모듈러 연산기들(n)은 각각의 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)이 모듈러변수(n) 미만의 값을 가지도록 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)을 모듈러변수(n)로 모듈러 연산한다. 이를 상세히 하면, 첫번째 재배열요소(XΠ1)는 첫번째 입력요소(Y1)를 첫번째 제2상수벡터(γ1)를 감산한 값이 되고, 두번째 재배열요소(XΠ2)는 두번째 입력요소(Y2)로부터 첫번째 재배열요소(XΠ1)의 제곱에 첫번째 제3상수벡터(β1)를 곱한 것과 두번째 제2상수 벡터(γ2)를 감산한 값이 된다. 그리고 3번째 내지 6번째 재배열요소들(XΠ3내지 XΠ6) 각각은 i번째 입력요소(Yi)로부터 (i-1)번째 재배열요소들(XΠi-1)의 제곱에 i-3번째 제3상수벡터(βi-1)를 곱한 것, (i-1)번째와 (i-2)번째 재배열요소들(XΠi-1,XΠi-2)의 곱에 i-2번째 제1상수벡터(αi-2)을 곱한 것과 i번째 제2상수벡터(γi)를 감산한 값으로 나타난다. 마지막으로, 각 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)은 모듈러 변수 n으로 모듈러 연산된다. 이들 재배열요소들(XΠ1,XΠ2,XΠ3,XΠ4,XΠ5,XΠ6)의 연산과정을 수식으로 표현하면,
Figure kpo00011
과 같이 된다. 이와 같이, 비선형 역변환식(N-1)은 나눗셈을 제외한 가감산과 승산에만 의존함과 아울러 변수들의 차수가 최대 2차를 넘지 않는 특성을 가진다. 이는 i번째 출력요소인 i번째 재배열요소(XΠi)의 연산에 바로 이전에 출력 요소들(즉, 이전의 두개의 재배열요소들)인 XΠi-1및 XΠi-2이 이용됨으로써 가능하게 된다. 역배열수단(Π-1)은 6개의 재배열요소들(XΠ1내지 XΠ6)을 난수 발생 수단(110)으로부터 인가되는 임의의 재배열정보(Ⅱ1내지 Ⅱ6)에 따라 역배열하여 6개의 평문요소들(X1,X2,X3,X4,X5,X6)을 발생한다.
제5도는 제1도에 도시된 결합식 산출 수단(20)의 실시예를 상세하게 도시한다. 제5도에 있어서, 결합식 산출 수단(20)은 제1도에 도시된 가역변환식 생성 수단(10)에서 생성된 제1 및 제2아파인 가역변환식(A1,A2)과 비선형 가역변환식(N)을 입력으로하여 제1아파인 가역변환식(A1), 비선형 가역변환식(N), 제2아파인 가역변환식(A2)의 순서로 결합해 결합식을 산출한다. 이를 위하여, 결합식 산출 수단(20)은 가역변환식 생성수단(10)으로부터의 제1아파인 가역변환식(A1), 비선형 가역변환식(N) 및 제2아파인 가역변환식(A2)을 각각 일시적으로 저장하는 제1내지 제3레지스터(21 내지 23)를 구비한다. 그리고 결합식 산출 수단(20)은 제1 및 제2레지스터(21,22)에 저장된 변환식들을 결합하기 위한 제1결합부(24)와, 이 제1결합부(24)의 출력과 제3 레지스터(23)에 저장된 변환식을 결합하기 위한 제2결합부(25)를 추가로 구비한다. 제1결합부(24)는 제1레시스터(21)로부터의 제1아파인 가역변환식(A1)을 변수로 하여 제2레지스터(22)로부터의 비선형 가역변환식(N)에 대입하여 1차 결합식을 산출한다. 그리고 제2결합부(25)는 제1결합부(24)로부터의 1차 결합식을 변수로하여 제3레지스터(23)로부터의 제2아파인 가역변환식(A2)에 대입하여 최종 결합식(F=A1·N·A2)을 발생한다.
실례로, 입력요소의 수(m)가 6이고 모듈러 변수(n)가 256이고, 그리고 제1 및 제2아파인 가역변환식들(A1,A2)과 비선형 가역변환식(N)이 다음과 같을 경우,
Figure kpo00012
공개키로 사용되는 결합식(F=A1·N·A2)은 제1 및 제2결합부(24,25)에 의해 다음의(예 4)와 같이 된다.
[예 4]
Figure kpo00013
그리고 이 결합식(F=A1·N·A2)에서, 이차항의 계수를 텐서로 일차항의 계수를 행렬로 상수항을 벡터로 나타내면 다음과 같이 된다.
[예 5]
Figure kpo00014
그리고 이 경우에 제1도에 도시된 역변환식 산출수단(30)에 의하여 생성되어 비밀키로 사용될 비선형 가역변환식(N), 제1 및 제2아파인 가역변환식들(A1,A2) 각각에 대한 역변환식들(N-1, Al-1, A2-1)은 다음의(예 6)과 같이 된다.
[예 6]
Figure kpo00015
(예 6)의 비선형 역변환식(N-1)에는 부등호의 오른쪽편에 입력요소(Y)외에 출력요소(X)가 포함된다. 즉, 먼저 산출된 이전의 출력 요소(Xi-1)가 다음 출력요소(Xi)의 산출에 이용된다. 이로인해 비밀키에 의한 역연산은 최고차항의 차수가 2차를 넘지 않게 된다.
제6도는 통신단말기의 암호화수단이 공개된 공개키 메모리(2)에서 제공되는 공개키를 이용하여 메시지(M)를 암호문(C)로 변환하는 암호화 방법을 설명하는 흐름도이다. 메시지 M의 각 요소들은 공개키로부터 주어지는 결합식인 2차 비선형 변환식에 의해 암호문(C)로 변환된다. 제43단계에서 α,β,γ는 각각 공개키의 일차항의 계수, 이차항의 계수, 상수항을 나타내는 행렬, 텐서, 벡터의 요소들이다.
제6도의 암호화 방법을 단계별로 상세히 살펴보면, 제40단계에서 통신 단말기는 m개의 요소들을 포함하는 메시지(M)를 입력한다. 통신단말기는 요소 카운터의 값(i)를 "0"으로 초기화 한 다음(제41단계), 다시 요소 카운터의 값(i)을 "1"만큼 가산한다(제42단계). 그리고 통신단말기는 공개키 저장장소로부터 텐서로된 이차항의 계수, 행렬로된 일차항의 계수 및 벡터로 된 상수항을 포함하는 2차 비선형 변환식
Figure kpo00016
에 의해 메시지의 i번째 요소를 암호화한다(제43단계). 이어서, 통신단말기는 암호화된 i번째 요소를 모듈러변수(n)에 의해 모듈러 연산한 다음(제44단계), 요소 카운터(i)의 값이 메시지의 요소수(m)보다 작거나 같은가를 비교한다(제45단계). 제45단계에서 요소 카운터(i)의 값이 메시지의 요소수(m) 보다 작거나 같은 경우에 통신단말기는 제42단계를 되돌아가 제42단계 내지 제45단계를 반복적으로 수행하여 메시지의 m개의 요소들을 모두 암호화하게 된다. 이와는 달리, 제45단계에서 요소 카운터(i)의 값이 메시지의 요소수(m) 보다 큰 경우에 통신단말기는 메시지의 m개의 요소들이 모두 암호화된 것으로 간주하여 m개의 요소로 된 암호문을 출력하게 된다(제46단계).
예를 들어, 공개키가 예 4와 같이 주어지고 메시지(M)가 아스키(SSCII) 코드에 따라 2진 부호화되었다고 하면, 아스키부호화된 메시지의 문자들 각각은 0 내지 255 이내의 값을 가지게 된다. 이에 따라, 모듈러 변수(n)의 값은 256이 된다. 공개키와 같이 요소의 수를 6개로하여 메시지를 몇 개의 블록으로 나누어 한블록씩 차례대로 암호화 한다. 즉, 한 번에 여섯개의 문자씩 묶어서 암호화 한다.
실례로, 메시지 "Public key cryptosystem"를 6개의 문자식 묶어 블록화하면, [Public] [key c] [ryptos] [ystem]의 4개의 메시지 블록이 발생된다. 그리고 첫번째 블록의 문자들을 아스키 코드에 의해 부호화하면, 첫번재 블록에 포함된 문자들은 각각 [80 117 98 108 105 99]의 숫자로 표현된다. 따라서 첫번째 블록의 각 요소는 M1=80, M2=117, M3=98, M4=108, M5=105, M6=99가 된다. 이들을 예 3의 식에 대입하여 암호문 C로 변환하면 C1=19, C2=208, C3=77, C4=205, C5=216, C6=182이 된다.
제7도는 비밀키 저장 장소(3)에서 제공되는 비밀키를 이용하여 통신단말기의 복호화수단이 암호문 C를 복호문 즉, 메시지 M으로 변환하는 복호화 과정을 도시한다. 제7도에서 통신단말기의 복호화수단은 암호문 C에 공개키 생성과정에 사용된 각 변환들의 역변환, 즉 제1아파인 역변환식(A1-1), 비선형 역변환식(N-1) 및 제2아파인 역변환식(A2-1)을 역으로 적용시켜 메시지 M으로 변환한다. 이 복호화과정을 상세히 설명하면, 다음과 같이 된다.
먼저, 통신단말기의 복호화수단은 제50단계에서 암호문(C)을 입력한다. 이어서, 통신단말기의 복호화수단은 비밀키 저장장소(3)로부터 행렬로 표현되는 일차항의 계수와 벡터로 표현된 상수를 포함하는 제2아파인 역변환식 C'=A2-1(C)(mod n)을 판독하고, 이 제2아파인 역변환식에 암호문(C)를 대입하여 행렬과의 곱과 벡터와의 감산을 수행함으로써 1차 역변환 암호문(C')을 산출한다(제51단계). 그리고 통신단말기의 복호화수단은 비밀키 저장수단(3)에서 제공되는 1차 역변환 암호문(C')의 요소별 비선형 역변환식들, 즉 M1'=C1'-Γ1(mod n), M2'=C'21(M1')21(mod n), Mi'=C'2i-1(Mi-1')2imM'i-1M'i-2i-1(mod n) (3≤i≤m)에 1차 역변환 암호문(C')를 대입·연산하여 2차 변환된 암호문(M')를 산출한다(제52단계). 또한, 통신단말기의 복호화수단은 비밀키 저장장소(3)로부터 행렬로 표현되는 일차항의 계수와 벡터로 표현된 상수를 포함하는 제1아파인 역변환식 M'=A1-1(M') (mod n)을 판독하고, 이 제1아파인 역변환식에 2차 역변환된 암호문(M')을 대입하여 행렬과의 곱과 벡터와의 감산을 수행함으로써 메시지(M)를 복호화 한다(제53단계). 마지막으로, 통신단말기의 복호화수단은 복호된 메시지(M)를 송출한다(제54단계).
예를 들어, 비밀키가 예 6과 같이 주어지고 6개의 요소들을 가지는 암호문(C)이 C1=19, C2=208, C3=77, C4=205, C5=216, C6=182일 때 제2아파인 역변환식 A2-1(예 6)을 적용하면 1차 역변환 암호문(C')은 (29, 219, 202, 22, 28, 80)로 산출한다. 그리고 이 1차 역변환 암호문(C')을 비선형 역변환식 N-1(예 6)을 이용하여 역변환하면 (139, 139, 71, 40, 225, 64)을 가지는 2차 역변환된 암호문(M')이 산출된다. 마지막으로, 2차 역변환된 암호문(M')을 제1아파인 역변환식 A1-1(예 6)에 적용하면 (80, 117, 98, 108, 105, 99)을 가지는 원래의 메시지(M)가 복호된다. 이 복호화 과정도 역시 암호화 과정과 같이 암호문(C)을 m개의 수의 요소들(예를 들면, m=6)을 가지는 다수의 암호문 블록들로 분할하여 하나의 블럭씩 차례대로 복호한다.
제8도는 본 발명의 제1실시예에 따른 암호화 통신시스템을 개략적으로 도시한다. 제8도에 있어서, 암호화 통신시스템은 통신채널(70)에 접속된 두개의 통신단말기(60A,60B)와, 두개의 통신단말기들(60A,60B)에 공통적으로 접속된 공개키 메모리(2)를 구비한다. 공개키 메모리(2)는 두개의 통신단말기(60A,60B)에 각각 대응되는 두개의 공기키(PA,PB)를 저장하여 제1공개키(PA)는 제2통신단말기(60B)에 그리고 제2공개키(PB)는 제1통신단말기(60A)에 각각 제공한다. 이 제1 및 제2공개키들(PA,PB)은 제1도에 도시된 키생성수단(20)에 의해 2차 비선형 변환식의 형태로 발생된다.
두개의 통신단말기(60A,60B)는 각각 하나의 비밀키 메모리(3A,3B), 하나의 암호화수단(40A,40B) 및 하나의 복호화수단(50A,50B)로 구성된다. 제1통신단말기(60A)에 포함된 암호화수단(40A)는 공개키 메모리(2)로부터 제공되는 비선형 2차 변환식의 형태를 가지는 공개키(PB)를 이용하여 메시지(MA)를 암호문(CA)으로 암호화한다. 이 공개키(PB)는 제2통신단말기(60B)에 할당된 것이다. 이 암호문(CA)은 통신채널(70)을 통해 제2통신단말기(60B)쪽으로 전송된다. 그리고 제1통신단말기(60A)에 포함된 비밀키 메모리(3A)는 제1도에 도시된 키생성수단(20)에 의해 생성된 두개의 아파인 역변환식(A1-1, A2-1)과 하나의 비선형 역변환식(N-1)을 포함하는 비밀키(SA)를 복호화수단(50A)에 제공한다. 또한, 제1통신단말기(60A)에 포함된 복호화수단(50A)은 통신채널(70)을 경유하여 제2통신단말기(60B)로부터 전송된 암호문(CB)을 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)의 순서로 연산함에 의해 메시지(MB)를 복호한다.
비슷하게, 제2통신단말기(60B)에 포함된 암호화수단(40B)는 공개키 메모리(2)로부터 제공되는 비선형 2차 변환식의 형태를 가지는 공개키(PA)를 이용하여 메시지(MB)를 암호문(CB)으로 암호화한다. 이 때, 공개키(PA)는 제1통신 단말기(60A)에 할당된 것이다. 이 암호문(CB)은 통신채널(70)을 통해 제1통신 단말기(60A) 쪽으로 전송된다. 그리고 제2통신단말기(60B)에 포함된 비밀키 메모리(3B)도 제1도에 도시된 키생성수단(20)에 의해 생성된 두개의 아파인 역변환식(A1-1,A2-1)과 하나의 비선형 역변환식(N-1)을 포함하는 비밀키(SB)를 복호화수단(50B)에 제공한다. 또한, 제2통신단말기(60B)에 포함된 복호화수단(50B)은 통신채널(70)을 경유하여 제1통신단말기(60A)로부터 전송된 암호문(CA)을 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)의 순서로 연산함에 의해 메시지(MB)를 복호한다.
제9도는 본 발명의 다른 실시예에 따른 암호화 통신시스템을 개략적으로 도시한다. 제9도에 도시된 암호화 통신시스템은 서명된 메시지의 암호화 통신을 가능하게 한다. 이 암호화 통신시스템은 통신채널(701)에 접속된 두개의 통신단말기(601A, 601B)와, 두개의 통신단말기들(601A,601B)에 공통적으로 접속된 공개키 메모리(2)를 구비한다. 공개키 메모리(2)는 두개의 통신단말기(601A,601B)에 각각 대응되는 두개의 공개키(PA,PB)를 저장하여 제1공개키(PA)는 제2통신단말기(601B)에 그리고 제2공개키(PB)는 제1통신단말기(601A)에 각각 제공한다. 이 제1 및 제2공개키들(BA,PB)은 제1도에 도시된 키생성수단(20)에 의해 2차 비선형 변환식의 형태로 발생된다. 두개의 통신단말기(601A,601B)는 각각 하나의 비밀키 메모리(3A,3B), 두개의 암호화수단(401A 및 402A, 401B 및 402B) 및 두개의 복호화수단(501A 및 502A, 501B 및 502B)로 구성된다.
제1통신단말기(601A)에 포함된 비밀키 메모리(3A)는 제1도에 도시된 키생성수단(20)에 의해 생성된 두개의 아파인 역변환식(A1-1, A2-1)과 하나의 비선형 역변환식(N-1)을 포함하는 비밀키(SA)를 제1 및 제2복호화수단(501A, 502A)에 공통적으로 공급한다. 제1복호화수단(501A)은 메시지(MA)를 비밀키 메모리(3A)로부터 비밀키(SA)로 제공된 두개의 아파인 역변환식(A1-1, A2-1)과 비선형 역변환식(N-1)에 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)의 순서로 적용하여 서명된 메시지(MAs)를 발생한다. 그리고 제1암호화수단(401A)은 제1복호화수단(501A)으로부터의 서명된 메시지(MAs)를 공개키 메모리(2)로부터 제공되는 비선형 2차 변환식의 형태를 가지는 공개키(PB)를 이용하여 암호문(CAs)으로 암호화한다. 이 암호문(CAs)은 통신채널(701)을 통해 제2통신단말기(601B)쪽으로 전송된다. 다음으로, 제2복호화수단(502A)는 통신채널(701)을 경유하여 제2통신단말기(601B)로부터 전송되어진 서명된 암호문(CBs)를 비밀키 메모리(3A)로부터 비밀키(SA)로 제공되는 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)의 순서로 연산함에 의해 서명된 메시지(MBs)를 복호한다. 이 복호되어진 서명된 메시지(MBs)는 공개키 메모리(2)로부터 제공된 공개키(PB)를 이용하는 제2암호화수단(402A)에 의해 메시지(MB)로 복호되게 된다.
비슷하게, 제2통신단말기(601B)에 포함된 비밀키 메모리(3B)도 제1도에 도시된 키생성수단(20)에 의해 생성된 두개의 아파인 역변환식(A1-1, A2-1)과 하나의 비선형 역변환식(N-1)를 포함하는 비밀키(SB)를 제1 및 제2복호화수단(501B,502B)에 공통적으로 공급한다. 제2통신단말기(601B)에 포함된 제1복호화수단(501B)는 메시지(MA)를 비밀키 메모리(3B)로부터 비밀키(SB)로 제공된 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)에 순서대로 적용하여, 서명된 메시지(MBs)를 발생한다. 그리고 제1암호화수단(401B)는 제1복호화수단(501B)으로부터의 서명된 메시지(MBs)를 공개키 메모리(2)로부터 제공되는 비선형 2차 변환식의 형태를 가지는 공개키(PA)를 이용하여 암호문(CBs)으로 암호화한다. 이 암호문(CBs)은 통신채널(701)을 통해 제1통신단말기(601A)쪽으로 전송된다. 또한, 제2통신단말기(601B)에 포함된 제2복호화수단(502B)은 통신채널(701)을 경유하여 제1통신단말기(601A)로부터 전송되어진 서명된 암호문(CBs)을 비밀키 메모리(3B)로부터 비밀키(SB)로 제공되는 아파인 역변환식(A2-1), 비선형 역변환식(N-1) 및 아파인 역변환식(A1-1)의 순서로 연산함에 의해 서명된 메시지(MAs)를 복호한다. 이 복호되어진 메시지(MAs)는 공개키 메모리(2)로부터의 공개키(PA)를 이용하는 제2암호화수단(402B)에 의해 메시지(MA)로 복호된다.
디지털 서명의 원리는 비밀키에 의해 변환된 메시지를 다시 그에 해당하는 공개키에 의해 평문으로 변환되는데 있다. 즉, 어떤 서명된 문서가 특정한 사람의 공개키에 의해 평문으로 변환되면 그로부터 그 문서는 그 특정 사람의 비밀키에 의해 평문에서 서명된 문서로 변환된 것임을 알 수 있다. 즉, 그 특정 사람의 비밀키는 그 사람만이 알고 있으므로 그 사람이 직접 그 문서에 서명했다고 볼 수 있다. 여기에 서명된 문서를 다시 다른 특정한 사람만이 그 사실을 확인할 수 있도록 제8도의 암호화 방법을 사용하면 특정한 사람만이 알아볼 수 있는 서명된 문서를 보내는 것이 가능해진다.
상술한 바와 같이, 공개키 암호 통신 시스템이나 공개키를 이용한 서명 시스템의 안전도가 유지되기 위해서는 공개키로부터 비밀키를 알아내는 것이 실질적인 방법으로 불가능하여야 한다. 본 발명에 따른 키 생성 방법에서 공개키와 비밀키의 관계를 알아보면 두개의 아파인 가역변환과 그 사이의 비선형 가역변환의 결합식이 공개키로 사용되고 각각의 변환의 역변환이 비밀키로 사용된다. 즉, 본 발명에 따른 키 생성 방법에서 공개키로 비밀키를 알아내는 것은 결합식으로부터 각 단계의 변환을 알아내는 것과 같다. 따라서 본 발명에 따른 키 생성 방법의 안전도는 비선형 연립 방정식의 해를 구하는 문제와 같다. 이 경우 미지수가 많으면 그 해를 구하는 것은 현실적으로 불가능하다는 것이 알려져 있으므로 본 발명에 따른 키 생성 방법을 이용한 암호 시스템은 m이 어느정도 값 이상이면 안전하다고 할 수 있다. 또한 Fell과 Diffie의 시스템에서와 달리 본 발명에 따른 공개키 암호 시스템은 공개키로 사용되는 변환의 역변환의 치수가 제한되어 있지 않다. 즉, m이 9인 경우를 고려하면 역변환의 최고차항의 차수는 256차이며, m이 10인 경우는 512차등이어서 다수의 평문-암호문 쌍의 대입을 통하여 항등식에 의한 역변환의 계수 계산 방법도 차수가 너무 높아 현실적으로 불가능함을 알 수 있다. 참고로 요소의 개수가 10인 512차 비선형 함수의 512차항의 개수는10H512(=7.27×1018)이다. 또한 본 발명에 따른 키 생성 방법은 분수식을 사용하는 것이 아니어서 Tsujii가 제안한 방법에서 나타났던 문제점도 본 발명에서는 나타나지 않았다.
본 발명은 지금까지 설명한 실시예에 한정되는 것이 아니라 발명의 기술 사상을 일탈하지 않는 범위에서 다양한 변형 및 수정이 가능함을 이해하여야 한다. 따라서 본 발명은 다음의 특허 청구의 범위에 기재된 사항에 의해서만 정하여져야 할 것이다.

Claims (14)

  1. 모듈러 변수 n미만의 정수로 표현되는 m개의 요소를 가지는 디지털 메시지 M의 암호 통신을 구현하는 방법에 있어서, 상기 m개의 요소를 입력과 출력으로 하는 두개의 아파인 가역변환식(A1,A2)와 상기 m개의 요소를 입력과 출력으로 하고 최고차항이 2차인 비선형 가역변환식(N)을 생성시키는 단계와, 상기 비선형 가역변환식(N)이 상기 아파인 가역 변환식들(A1,A2)의 사이에 위치하는 상기 변환식들(A1,A2,N)을 결합함으로써 상기 m개의 요소를 입력과 출력으로 하는 결합식(F≡A2·N·A1)을 산출하는 단계와, 상기 결합식(F≡A2·N·A1)과 상기 모듈러 변수(n)를 함께 공개키로 제공하는 단계를 포함하는 것을 특징으로 하는 키 생성 방법.
  2. 제1항에 있어서, 상기 비선형 가역변환식(N)은 가산, 감산 및 승산에 의존하는 역변환식(N-1)이 존재하는 것을 특징으로 하는 키 생성 방법.
  3. 제2항에 있어서, 상기 비선형 가역변환식(N)은 첫번째 입력 요소와 임의의 상수의 합으로된 첫번째 출력요소와, 첫번째 입력 요소를 인자로 하는 임의의 아파인 함수와 두번째 입력 요소의 합으로 된 두번째 출력 요소와, 각각 첫번째 입력요소부터 (i-1)번째 입력요소들을 인자로 하는 임의의 2차 비선형 함수와 i번째 입력 요소의 합으로된 세번째 내지 i번째 출력요소들을 가지는 것을 특징으로 하는 키 생성 방법.
  4. 제3항에 있어서, 상기 첫번째 입력요소로부터 상기 i-1번째 입력 요소들을 인자로 하는 상기 임의의 2차 비선형 함수가 상기 i-1번째 입력요소의 제곱항을 포함하는 것을 특징으로 하는 키 생성 방법.
  5. 제2항에 있어서, 상기 비선형 가역변환식(N)은 첫번째 입력 요소와 임의의 상수의 합으로된 첫번째 출력요소와, 첫번째 입력 요소를 인자로 하는 2차 비선형 함수와 두번째 입력 요소의 합으로 된 두번째 출력 요소와, 각각 첫번째 입력요소부터 (i-1)번째 입력요소들을 인자로 하는 임의의 2차 비선형 함수와 i번째 입력 요소의 합으로된 세번째 내지 i번째 출력요소들을 가지는 것을 특징으로 하는 키 생성 방법.
  6. 제3항에 있어서, 상기 임의의 비선형 가역변환식(N)은, 임의의 재배열 정보(
    Figure kpo00017
    )와 임의의 상수 벡터들(α,β,χ,δ,γ)을 난수 발생을 통하여 생성하는 단계와, 상기 임의의 재배열 정보(Ⅱ), 상기 임의의 상수 벡터들(α,β,χ,δ,γ)의 출력요소들(Y1내지 Yi)에 대한 아래의 비선형 기본식들
    Figure kpo00018
    여기서, XΠ1내지 XΠt는 입력요소들(X1내지 Xm)이 임의의 재배열 정보((Ⅱ)에 의해 재배열된 것이고, i는 3 내지 m 사이의 정수에 작용하는 단계에 의해 생성되는 것을 특징으로 하는 키 생성 방법.
  7. 제1항에 있어서, 상기 아파인 가역변환식들은, 각각 임의의 벡터와 역행렬이 존재하는 임의의 행렬을 생성하는 단계와, 상기 임의의 행렬과 상기 임의의 벡터를 상기 아파인 가역변환식의 1차항의 계수와 상수항으로 각각 제공하는 단계에 의해 산출되는 것을 특징으로 하는 키 생성 방법.
  8. 제7항에 있어서, 상기 행렬과 상기 벡터는, 각각 역변환이 존재하는 다수의 단위 아파인 가역변환식들을 결합함에 의해 생성되고 상기 모듈러 변수(n)와의 모듈러 연산에 의해 n 미만의 값을 가지는 요소들을 포함하는 것을 특징으로 하는 키 생성 방법.
  9. 제8항에 있어서, 상기 단위 아파인 가역변환식은, 출력요소들에 대한 아래의 선형 기본식들
    Figure kpo00019
    을 설정하는 단계와, 여기서, XΠ1내지 XΠt는 입력요소들(X1내지 Xm)이 임의의 재배열 정보(Ⅱ)에 의해 재배열된 것이고, i는 3 내지 m 사이의 정수 상기 임의의 재배열 정보
    Figure kpo00020
    와 임의의 상수 벡터들 α,γ의 값을 조절하는 단계에 의해 생성되는 것을 특징으로 하는 키 생성 방법.
  10. 제1항에 있어서, 상기 공개키로 제공되는 결합식 F는, 상기 모듈러 변수 n와의 모듈러 연산에 의해 산출되는 요소들을 가지는 텐서로 표현되는 이차항의 계수와, 상기 모듈러 변수 n와의 모듈러 연산에 의해 산출되는 요소들을 가진 행렬로 표현되는 일차항의 계수와, 상기 모듈러 변수 n와의 모듈러 연산에 의해 산출되는 요소들을 가진 벡터로 표현되는 상수항을 포함하는 것을 특징으로 하는 키 생성 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 두 개의 아파인 가역변환식의 역변환식(A1-1,A2-1)과 상기 비선형 가역변환식의 역변환식(N-1)을 구하는 단계와, 상기 역변환식들(A1-1,A2-1,N-1)과 모듈러 변수(n)를 비밀키(S)로 제공하는 단계를 추가로 포함하는 것을 특징으로 하는 키 생성 방법.
  12. 제11항에 있어서, 상기 아파인 변환식들(A1,A2)의 상기 역변환(A1-1,A2-1)들은, 각각 상기 아파인 가역변환식을 나타내는 행렬과 베겉의 생성수순의 역과정을 통해 산출되고 상기 모듈러 변수 n와의 모듈러 연산함에 의해 모듈러 변수(n) 미만의 값을 가지는 요소들로 이루어지는 행렬과 벡터로 된 것을 특징으로 하는 키 생성 방법.
  13. 제11항에 있어서, 상기 비선형 가역변환식(N)의 역변환식(N-1)은 2차 미만 항들을 포함하는 것을 특징으로 하는 키 생성방법.
  14. 제11항에 있어서, 상기 선형 기본식들과 상기 비선형 기본식들에 대한 역 기본식들을 생성하는 단계와, 상기 역 기본식들, 상기 재배열 정보(Ⅱ) 및 임의의 상수 벡터들(α,β,χ,δ,γ)을 비밀키로 제공하는 단계를 추가로 포함하는 것을 특징으로 하는 키 생성 방법.
KR1019970014910A 1997-04-22 1997-04-22 키 생성 방법 KR100253806B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970014910A KR100253806B1 (ko) 1997-04-22 1997-04-22 키 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970014910A KR100253806B1 (ko) 1997-04-22 1997-04-22 키 생성 방법

Publications (2)

Publication Number Publication Date
KR19980077685A KR19980077685A (ko) 1998-11-16
KR100253806B1 true KR100253806B1 (ko) 2000-04-15

Family

ID=19503526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970014910A KR100253806B1 (ko) 1997-04-22 1997-04-22 키 생성 방법

Country Status (1)

Country Link
KR (1) KR100253806B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010002708A (ko) * 1999-06-17 2001-01-15 김동균 이진 정보 보호 전송방법
KR100345685B1 (ko) * 1999-11-15 2002-07-27 한국전자통신연구원 땋임 연산을 이용한 암호화/복호화 시스템 및 그 방법과그를 위한 키 생성 방법
KR101592920B1 (ko) * 2009-06-10 2016-02-12 삼성전자주식회사 모듈러 연산 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
KR19980077685A (ko) 1998-11-16

Similar Documents

Publication Publication Date Title
Laiphrakpam et al. A robust image encryption scheme based on chaotic system and elliptic curve over finite field
US5987128A (en) Method of effecting communications using common cryptokey
US5751811A (en) 32N +D bit key encryption-decryption system using chaos
KR100363457B1 (ko) 암호체계용매핑레퍼토리
US5142579A (en) Public key cryptographic system and method
Amounas et al. Fast mapping method based on matrix approach for elliptic curve cryptography
US6243467B1 (en) Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form
US20040202326A1 (en) System and methods for real-time encryption of digital images based on 2D and 3D multi-parametric chaotic maps
AU1132199A (en) A non-deterministic public key encryption system
US20070121933A1 (en) Information transfer system, encryption device, and decryption device
JP3180836B2 (ja) 暗号通信装置
US7680270B2 (en) System for elliptic curve encryption using multiple points on an elliptic curve derived from scalar multiplication
Xiao et al. Collision analysis of one kind of chaos-based hash function
KR100253806B1 (ko) 키 생성 방법
Harkins et al. Encryption schemes using finite frames and Hadamard arrays
KR100326226B1 (ko) 행렬그룹공개키생성방법
JPH11252065A (ja) 暗号鍵の生成装置
WO2003013052A1 (en) Cryptosystems based on non-commutatity
KR20010000048A (ko) m진법 방식을 이용한 타원곡선상 다중 점의 상수고속연산 방법
Ashok et al. An approach of cryptosystem using polynomials and Lucas numbers
Wang et al. Efficient homomorphic integer polynomial evaluation based on GSW FHE
Amounas Construction Efficiency of the Elliptic Curve Cryptosystem using Code Computing for Amazigh Alphabet
KR100260535B1 (ko) 키 생성 방법 및 장치와 그를 이용한 공개키 암호 시스템
KR100200531B1 (ko) 암호화 방법 및 시스템
Bendaoud et al. Efficient mapping method for elliptic curve cryptosystems based on PWLCM

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: 20061220

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee