공개키 암호알고리즘 개발에 관한 연구 - itfind · 공개키 암호알고리즘...

443
- 1 - 최종 연구개발 결과보고 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999. 12. 주관연구기관 한국정보보호센터

Upload: others

Post on 22-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 1 -

최종 연구개발 결과보고

공개키 암호알고리즘 개발에 관한 연구A Study on the Development of a Public-Key Cryptosystem

1999. 12.

주관연구기관 한국정보보호센터

정 보 통 신 부

Page 2: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 2 -

제 출 문

정보통신부장관 귀하

본 보고서를 "공개키 암호알고리즘 개발에 관한 연구"의 최종 연구개발결과보고서로 제출합

니다.

1999년 12월 31일

주관연구기관 : 한국정보보센터

사업 책임자 : 이흥섭(기술개발부 부장)

연구 책임자 : 박성준(기술개발부 기반기술장)

참여 연구원 : 김병천(기술개발부 선임연구)

김승주(기술개발부 선임연구원)

성맹희(기술개발부 연구원)

이인수(기술개발부 연구원)

김지연(기술개발부 연구원)

임옥희(기술개발부 연구조원)

Page 3: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 3 -

요 약 문

1. 제 목

"공개키 암호알고리즘 최종안 개발"

2. 연구개발의 목적 및 중요성

전산망을 통하여 다양한 형태의 정보가 공급되고, 교환 및 가공이 가능해지면서 적법하게

인가 받지 않은 임의의 불법 사용자가 전산망의 취약점을 이용하여 정보의 무단 검색, 추

출, 변조, 파괴 등을 자행함에 의하여 정보화 된 사회에 상상하기 어려운 피해를 줄 가능성

이 점차 높아지고 이러한 피해 사례가 여러 유형으로 빈발하고 있는 실정이다.

이에 대한 대처 방안으로 보안 시스템에 관한 기술이나 장비들을 선진국에 의존하는 것도

이를 막을 수 있는 한 방법일 수 있으나 이 경우 국내정보의 자체 보호력을 상실하는 엄청

난 결과를 초래하게 된다는 점에서 이에 필요한 이론이나 기술을 자체 개발하는 것이 바람

직하다고 판단된다. 또한 국가 보안이라는 명분 아래 많은 나라들이 자국의 보안기술의 해

외 유출을 엄격히 막고 있는 것이 현실이므로 외국과의 기술제휴나 기술 이전형식을 빌리더

라도 원하는 보안수준에 대안 정보 및 기술을 이전 받기가 실제로 불가능하다. 따라서 정보

통신보호를 의한 안전하고 효율적인 암호화 알고리즘의 개발 및 전자 상거래, 전자결제 등

의 신규 서비스에서 필수적으로 요구되는 전자서명을 지원할 공개키 암호 알고리즘에 대한

국내 기술진의 개발이 시급하다고 생각된다.

Page 4: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 4 -

이에 본 연구는 공개키 암호알고리즘 개발을 의하여 주요 공개키 암호알고리즘의 기본 논리

인 소인수분해 문제, 이산대수문제, 배낭문제, 격자축소문제, 그래프 완전지배집합(Perfect

Dominating Set) 문제에 대하여 수학적으로 정의하고 이러한 문제가 어떻게 공개키 암호알

고리즘과 관계를 갖게 되는지를 연구하였으며, 이를 바탕으로 기존의 공개키 암호 알고리즘

을 좀더 향상시킬 수 있는 방안을 연구하여 효율적인 공개키 암호알고리즘을 개발하였다.

이와 함께 새로운 응용분야로 제시되고 있는 그래프 이론과 군 이론을 공개키 암호알고리즘

으로 연계하는 방법을 연구하여 새로운 공개키 암호알고리즘을 개발하였다.

3. 연구개발의 내용 및 범위

일반적으로 공개키 암호알고리즘은 주로 계산복잡도가 높은 수학적인 문제들에 기반을 두고

있으며, 새로운 공개키 암호알고리즘을 개발하려면, 암호시스템으로서 갖추어야 할 요구조

건들을 만족하는 신규논리를 개발하여야 한다. 한편, 새로운 공개키 암호알고리즘이 하나의

암호시스템으로서 다양한 응용 서비스에 활용되기 위해서는 암호화/복호화는 물론 전자서명

이나 전자인증과 같은 실질적인 구현기술을 개발하는 것이 필수적이다.

따라서, 본 연구에서는 독자적인 공개키 암호알고리즘의 개발을 위해 그래프 이론 기반 연

구, SL2(Z) 기반 연구 등 신규 논리를 개발하는 한편 기존의 공개키 암호알고리즘인 타원곡

선 암호시스템, 격자 축소 문제 기반 암호시스템, 배낭 문제 기반 등에 대한 새로운 구현기

술 및 변형 논리 개발에 중점을 두었다. 이를 위하여 다음과 같은 연구를 수행하였다.

Page 5: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 5 -

o 기존의 공개키 암호알고리즘 개발 현황 및 분석

o 공개키 암호알고리즘 최종안 개발

- 집중과제

ㆍ타원곡선 변형 공개키 암호알고리즘 개발

ㆍ격자 축소 문제 기반 공개키 암호알고리즘 개발

ㆍ배낭 유형의 공개키 암호알고리즘 개발

- 연구과제

ㆍ그래프 이론 기반 공개키 암호알고리즘 개발

ㆍSL2(Z) 기반 공개키 암호알고리즘 개발

ㆍ정수론 기반 공개키 암호알고리즘 개발

o 공개키 암호알고리즘 구현 S/W 개발

- S/W와 H/W에 적합한 유한체 연산을 이용한 타원곡선 기반 변형 암호알고리즘 구현

S/W 개발

- CVP 및 SBP를 이용한 공개키 암호알고리즘 구현 S/W 개발

- 배낭 유형의 공개키 암호알고리즘 구현 S/W 개발

o 공개키 암호알고리즘 안전성 모델 분석

- Indistinguishability 모델 분석

- Non-malleable Encryption 분석

o 공개키 암호알고리즘 개발 협력팀 구성 및 운영

- 수학협력팀(7회)

- 전산학협력팀(5회, 가칭 암호학 모임 발족)

o 공개키 암호알고리즘 안전성 평가를 위안 검토 위원회 구성

- 검토위원회 10회 개최, 공동워크숍 2회 참석

o 공동워크숍 2회 개최

- 1회(일시 : 6윌 25-26일, 장소 : 천안, 상록호텔)

- 2회(일시 : 12윌 8일, 장소 : 서울교육문화회관)

Page 6: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 6 -

4. 연구개발결과

제 1장에서는 서론 부분으로 공개키 암호알고리즘의 필요성에 대하여 간단히 기술하였다.

제 2장에서는 주요 공개키 암호알고리즘의 기본 논리인 인수분해문제, 이산대수문제, 배낭

문제, 격자축소문제 그래프 완전지배집합 문제의 정의와 이러한 문제들을 해결하기 위한 기

존의 분석법 및 이 문제들에 기반한 암호알고리즘들에 대해 고찰한다.

제 3장에서는 효율적인 공개키 암호알고리즘을 개발하기 위하여 기존의 공개키 암호알고리

즘의 문제점을 수정 보완한 새로운 공개키 암호알고리즘을 개발하였다. 주요 내용은 다음과

같다.

o 타원곡선 기반 변형 공개키 암호알고리즘 개발

- 효율적인 유한체 연산 방법 개발

- 타원곡선 암호시스템의 안전성 분석

- 타원곡선 변형 암호시스템 분석

- 타원곡선의 효과적인 연산 방법

- 개발한 유한체 연산을 이용한 타원곡선 암호법 구현

- 개발한 유한체 연산을 이용한 타원곡선 암호법 연구

- 개발한 유한체 연산을 이용한 타원곡선 변형 암호시스템 S/W구현

o 격자 축소 문제 기반 공개키 암호알고리즘 개발

- 기존 격자 기반 암호시스템의 분석

- 격자 관련 문제의 안전성 분석

- CVP 및 SBP 기반 새로운 암호시스템 개발

- 새로운 암호시스템에 대한 구현 S/W 개발

o 배낭 유형의 공개키 암호알고리즘 개발

- 기존의 배낭과 Chor -Rivest 배낭의 차이점

- Matrix 배낭 문제 연구

Page 7: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 7 -

- Polynomial 배낭 문제 연구

- 배낭 문제 기반 새로운 공개키 암호알고리즘 개발

- 새로운 암호시스템에 대한 구현 S/W 개발

제 4장에서는 새로운 응용 분야로 대두되고 있는 그래프 이론과 군 이론을 이용하여 신규

논리 기반 공개키 암호알고리즘 개발을 도모하였다. 주요 내용은 다음과 같다.

ㅇ 그래프 이론 기반 공개키 암호알고리즘 개발

- PDS, PMDF와 3-co1oring 문제 관련 복잡도 연구

- PDS 기반인 Po1ly Cracker 암호시스템의 문제점 도출

- PDF 기반으로 Polly Cracker 암호시스템의 문제점 해결 방안 연구

- PMDF 기반의 새로운 공개키 암호알고리즘 개발

ㅇ SL2(Z) 기반 공개키 암호알고리즘 개발

- 대수적 공개키 암호알고리즘의 일반적인 조건

- Combinatorial문제와 SL2(Z)를 이용한 공개키 암호알고리즘 개발

제 5장에서는 공개키 암호알고리즘 개발의 필요성과 개발 전략에 대하여 간단히 언급하면

서 결론을 맺고자 한다.

5. 활용에 대한 건의

본 과제의 결과물인 최종 결과보고서는 주요 공개키 암호알고리즘의 기본 논리에 대한 수학

적 분석 및 이들 논리들이 공개키 암호알고리즘에 어떤 영향을 미치는지 등 공개키 암호알

고리즘 개발을 위하여 고려할 수 있는 사항에 대하여 상세히 기술함으로써 공개키 암호알고

리즘에 관심을 가지고 개발을 시도하고자 하는 학계나 연구소 및 산업체에 도움이 되고자

한다.

Page 8: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 8 -

또한 새로운 기저를 이용한 유한체의 연산은 기존의 특허문제를 해결할 수 있고 또한 이 기

저는 소프트웨어와 하드웨어 구현에 모두 효율적이므로 하드웨어, 소프트웨어 구현의 두 암

호시스템 사이에 통신시 발생하는 기저변환의 문제를 완전히 해결할 수 있는 장점이 있다.

또한 표수가 워드 크기인 경우의 유한체 연산의 효율성은 S/W로 타원곡선 암호시스템 뿐만

아니라 ElGamal 암호법에도 쓸 수 있고 기타 관련된 응용분야에 다양하게 쓰일 수 있다.

타원곡선 암호시스템의 S/W는 디지털 서명, 인증, 무결성, Smart card, 무선장치 등의 응용

Protocol에 곧바로 적용할 수 있을 것이다.

6. 기대효과

본 연구를 수행함으로써 우리나라도 독자적인 공개키 암호시스템을 개발할 수 있는 잠재능

력과 가능성이 있음을 확인하고, 나아가 앞으로 정보화 사회에서 핵심첨단기술의 하나로서

암호이론에 기초한 다양한 정보보호시스템 의 연구개발에 관련된 산ㆍ학ㆍ연 관계자들의 많

은 관심과 연구 활성화에 하나의 계기가 될 것으로 기대한다.

Page 9: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 9 -

SUMMARY

1. Subject

"The final report for project of the development of public-key cryptosystems“

2. The Objectives and the importance of this research project

Since various types of informations can be transmitted, exchanged, and artificial1y

constructed over electronic net works, it is possible to il1ega1 search, extract,

tamper, and destruct the information by unauthenticated users from the

weaknesses of the net work.

The damages from these behavior become more serious and frequent than ever, so

it is possible to threaten the security of this information society near future.

As an counteract for these damages, we may import the technologies and facilities

of the security systems from other countries. But this method causes a tremendous

loss of the se1f-protecting ability for our nation's information security. So we

consider that it is desirable to develop our own theories and technologies to

support the security of the communication system. A1so recently, many countries

have been controlled the export of their technology under the name of the

protection of the national security and thus it is impossible to get the proper level

of technology that we need. Hence we are in an urgent need to develop secure and

efficient enciphering algorithms to protect the informations in the communication

system. A1so, we need to develop algorithms for public-key cryptosystem to

support the security of the digital signature used in the electronic commerce,

electronic approval.

Page 10: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 10 -

In this research project, we first defined some fundamental theories in mathematics

; prime factorization problem, discrete logarithm problem, knapsack problem, lattice

reduction problem, and graph PDS problem, and investigated how these problem can

be related to the enciphering algorithms of public-key cryptosystems. By using this,

we have been studied ways of improving the current algorithms and develop some

new efficient algorithms. Also we have been studied the connection between graph

theory, group theory and public-key cryptosystems and develop new algorithms of

public-key cryptosystem.

3. The contents and the scope of the study

In general, public-key cryptosystems are based on the mathematical problem with

high computational complexity, and thus in order to develop new public-key

cryptographic algorithm, it is required to develop new mathematical logics that

satisfy requirement for public-key cryptosystem. On the other hand, for a new

public key cryptographic algorithm to be used as a practical cryptographic system

that provides various application services, it is essential to develop implementation

techniques such as electronic signature or electronic authentication as well as

encryption and decryption of messages.

Page 11: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 11 -

Therefore in this study we investigated realization possibilities of public key

cryptographic algorithms based on ce11u1ar automata, SL2(Z) theory, graph theory,

while developed implementation techniques and transformation logics of elliptic

curve cryptosystem, public key cryptosystem using lattice reduction problem, public

key cryptosystem using knapsack problem. In order to develop a new public key

cryptosystem, we accomplished following research.

o Current states and analysis of known public-key cryptosystem

o Developing of public-key cryptosystem

- Concentration field

ㆍPublic key cryptosystem based on Elliptic curve theory

ㆍPublic key cryptosystem based on Lattice Reduction Problem

ㆍPublic key cryptosystem based on Knapsack Problem

- Research fie1d

ㆍPublic key cryptosystem based on SL2(Z) theory

ㆍPublic key cryptosysten1 based on graph theory

ㆍPublic key cryptosystem based on number theory

o Development of the implementation S/W for algorithms of public-key

cryptosystem

- ECDSA, a S/W using operations of finite fields which are applicable to the S/W

and H/W

Page 12: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 12 -

- Implementation S/W for the algorithms using CVP or SBP

- Implementation S/W for the algorithms based on the Linear Shift Knapsack

o Ana1ysing the security models of public-key cryptographical algorithm

-Analysis of the indistinguishability

-Analysis of the Non-malleable Encryption

o Organize cooperation teams for public key cryptographical algorithms

- mathematics cooperation team(7 meetings)

- computer science cooperation team(5 meetings)

o Organize the reviewal committee for the evaluation of the algorithms

- 10 meetings to discuss, attend 2 joint workshops.

o Held two joint workshops

- 1st workshop(date; '99/06/25 - '99/06/26, place; Sangrock Hotel, Cheon-an)

- 2nd workshop(date; '99/12/8, place; Seoul Educational and Cultural center)

4. The results of the project

Chapter l ; It is the introduction part and we briefly stated the necessity of the

public-key cryptosystems.

Chapter 2 ; We gave the definitions for the main fundamental theories in

public-key cryptosystems such as factorization problem, discrete logarithm problem,

knapsack problem, 1attice reduction problem, and graph PDS problem.

Page 13: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 13 -

Chapter 3 ; We developed new public-key cryptosystem by modifying and

extending the current theories in public-key cryptosystems. Main results are as

following.

o Development of a modified elliptic curve public-key cryptosystem

- Development of an efficient operation method for a finite fie1d

- Analysis of the security of the elliptic curve public-key cryptosystem

- Analysis of the modified elliptic curve public-key cryptosystem

- An efficient operation method for the elliptic curves

- Implementation of the ECC encryption by using the developed operation in a

finite fie1d

- Research on the ECC encryption by using the developed operation in a finite field

- Implementation of ECDSA S/W by using the developed operation in a finite fie1d

o Development of a public-key cryptosystem based on the 1attice reduction

problem

- Analysis of the known public-key cryptosystem based on the lattice problem

- Analysis of the security for the problems related to the lattice

Page 14: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 14 -

- Development of a new public-key cryptosystem based on CVP and SBP

- Development of an implementation S/W for the new cryptosystem

o Development of a public-key cryptosystem of the Knapsack type

- The differences between the original knapsack problem and Chor-Rivest knapsack

problem

- Researches on the matrix knapsack problem

- Researches on the polynomial knapsack problem

- Development of a new public-key cryptosystem based on Linear-shift knapsack

problem

- Development of an implementation S/W for the new cryptosystem

Chapter 4 ; We developed public-key cryptosystems in the fields of emerging

subjects for the application to cryptography such as graph theory, group theory,

and number theory. Main results are as following.

o Development of a public-key cryptosystem based on the graph theory

- Researches on the complexity related to the PMS, PMDF and 3 coloring problems

- Finding problems of the Polly Cracker, a cryptosystem based on the PDS

- Studies on the solving the problems of the Polly Cracker based on the PDF

- Development of a public-key cryptosystem based on the PMDF

Page 15: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 15 -

o Development of a public-key cryptosystem based on SL2(Z)

- Survey on the attack types for the public-key cryptosystem RSA

- General requirements for the algebraic public-key cryptosystem

- Development of a public-key cryptosystem by using combinatorial problems and

SL2(Z)

o Studies on the public-key cryptosystem based on the number theory

- Analysis of the public-key cryptosystems based on the Dickson polynomials

- Analysis of the public-key cryptosystems based on the Cayley-Purse

- Studies on a public-key cryptosystems based on the Hidden monomials

- Studies on a public-key cryptosystems based on quadratic extension of the

rational numbers

Chapter 5 ; We made conclusion with some words on the necessity of the

development of public-key cryptosystems and some ideas about the developing

schemes.

Page 16: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 16 -

5. Suggestions for the utilization of this final report

As a final report of the project, we would like to offer an help for the people who

want to develop cryptographical algorithm in the academic world or Labs in Korea

by describing the analysis of the basic mathematical theories of the major public

cryptosystems and the effect of these theories on the cryptosystem in full detail in

this report.

The operation of a finite field using new basis have resolved the current patent

problem. Moreover it solves completely a1l the problems that occurred during the

communication between two different cryptosystems due to the basis transformation

since it can be implemented in both of hard ware and soft ware efficiently. When

the characteristic of the fie1d is of the same size of the word size, the efficiency

of the finite field operation can be applied ElGamal cryptosystem and several

related area, as well as ECC cryptosystem by using S/W. The developed S/W from

the ECC cryptosystem field can be applied directly to application protocols such as

digital signature, authentication, integrity, smart card, wireless device.

6. Expected effects

By accomplishing this research project, we could see that our country has the

potentials and possibilities to develop our own public-key cryptosystems. We also

expect that our research could be a motivation for the activation of interests and

researches related to security systems for the informations based on cryptography.

Page 17: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 17 -

CONTENTS

Chapter l. Introduction

Chapter 2. Fundamental theory in public-key cryptosystems

Section 1. Factorization Problem

1. Abstract

2. Primality testing

3. Factorization Algorithm

4. RSA public-key cryptosystem and known attacks

5. Dickson cryptosystem and LUC cryptosystem.

Section 2. Discrete Logarithm Problem.

1. Abstract

2. Algorithms for the discrete logarithm problem

3. ElGamal public-key cryptosystem

4. Elliptic Curve Cryptosystem

5. HyperElliptic Curve Cryptosystem

Section 3. Knapsack Problem

1. Abstract

2. Knapsack public-key cryptosystem

3. Attacks on Knapsack public-key cryptosystem

Section 4. Lattice Reduction Problem

1. Abstract

2. Approximation theories on SVP, CVP, SBP

3. Cryptosystem based on the Lattice reduction problem

Section 5. Graph Perfect Dominating Set Problem

1. Abstract

2. Koblitz-Fellows's cryptosystem and its weaknesses

Page 18: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 18 -

Chapter 3. Development of efficient public-key crytosystems

Section l. Development of a cryptosystem based on the LRP

1. Abstract

2. Proposed algorithm

3. Analysis of the security

4. Description for the program

5. Further research

Section 2. Development of a cryptosysem based on ECC

1. Abstract

2. Proposed algorithm

3. Results

4. Description for the program

5. Further research

Section 3. Development of a cryptosystem based on knapsack

1. Abstract

2. Proposed algorithm

3. Analysis of the security

4. Description for the program

5. Further research

Chapter 4. Development of cryptosystems using theories in new

subjects

Section l. Development of a cryptosystem based on graph theory

1. Abstract

2. Proposed algorithm

3. Analysis of the security

4. Further research

Page 19: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 19 -

Section 2. Development of a cryptosystem based on SL2(Z)

1. Abstract

2. Proposed algorithm

3. Analysis of the security

4. Further research

Chapter 5. Results

Chapter 6. Appendix

Section l. Implementation of a cryptosystem based on LRP

Section 2. Implementation of a cryptosystem based on ECC

Section 3. Implementation of a cryptosystem based on Knapsack

Reference

Page 20: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 20 -

목 차

제 l 장 서 론

제 2 장 공개키 암호알고리즘 기반 논리

제 1 절 소인수분해문제(Integer Factoring Problem)

1. 개요.

2. 소수판정 테스트(Primality testing)

3. 인수 분해 알고리즘(Factoring Algorithm)

4. RSA 공개키 암호시스템 및 이에 대한 공격법

5. Dickson 암호시스템과 LUC 암호시스템

제 2 절 이산대수문제(Discrete Log Problem)

1. 개요

2. 이산대수문제에 대한 알고리즘

3. ElGamal 공개키 암호시스템

4. 타원곡선 암호시스템(Elliptic Curve Cryptosystem)

5. 초타원곡선 암호시스템(Hyperelliptic Curve Cryptosystem)

제 3 절 배낭문제(Knapsack Problem)

1. 개요

2. 배낭 유형의 공개키 암호시스템

3. 배낭 유영의 공개키 암호시스템에 대한 공격법

제 4 절 격자축소문제(Lattice Reduction Problem)

1. 개요.

2. SVP, CVP, SBP에 대한 근사이론

Page 21: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 21 -

3. 격자 축소문제 기반 암호알고리즘

제 5 절 그래프 완전지배집합문제(Graph Perfect Dominating Set Problem)

1. 개요

2. Koblitz-Fellows의 암호시스템과 문제점

제 3 장 효율적인 공개키 암호알고리즘 개발

제 1 절 격자축소문제 기반 공개키 암호알고리즘 개발

1. 개요 .

2. 제안 알고리즘

3. 안전성 분석

4. 프로그램 명세

5. 향후계획

제 2 절 타원곡선 기반 변형 공개키 암호알고리즘 개발

1. 개요

2. 제안 알고리즘

3. 연구결과

4. 프로그램 명세

5. 향후계획

제 3 절 배낭유형의 공개키 암호알고리즘 개발

1. 개요

2. 제안 알고리즘

3. 안전성 분석

4. 프로그램 명세

5. 향후계획

Page 22: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 22 -

제 4 장 신규논리 기반 공개키 암호알고리즘 개발

제 1 절 그래프 이론 기반 공개키 암호알고리즘 개발

1. 개요

2. 제안 알고리즘

3. 안전성 분석

4. 향후계획

제 2 절 SL2(Z) 기반 공개키 암호알고리즘 개발

1. 개요

2. 제안 알고리즘

3. 안전성 분석

4. 향후계획

제 5 장 결론

제 6 장 부록

제 1 절 격자축소문제 기반 공개키 암호시스템 구현 S/W

제 2 절 타원곡선 기반 변형 공개키 암호시스템 구현 S/W

제 3 절 배낭유형 공개키 암호시스템 구현 S/W

참고문헌

Page 23: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 23 -

표 차 례

[표 2-1] n=455459의 자명하지 않은 인수를 찾는 Pollard의 알고리즘

[표 2-2] n=19048567의 자명하지 않은 인수를 찾는 Pollard의 알고리즘

[표 2-3] n=24961의 자명하지 않은 인수를 찾는 Qadratic sieve 알고리즘

[표 2-4] RSA 공개키 암호시스템과 Dickson 공개키 암호시스템

[표 2-5] LUC 공개키 암호시스템과 Dickson 공개키 암호시스템

[표 2-6] 하드웨어 복잡도 비교표

[표 2-7] 3개의 정수의 매개변수 (N, p, q)에 대한NTRU 공개키 암호시스템 작동 특성

[표 2-8] 이론적 작동 특성 비교

[표 3-1] 새로운 공개키의 키의 크기 및 연산량

[표 3-2] 새로운 공개키 알고리즘의 구현 속도

[표 3-3] (a),(b),(c) 에 대한 계산

[표 3-4] 복합체와 기존의 체와의 하드웨어 복잡도 비교표

[표 3-5] 제안된 기저의 소프트웨어 연산 비교표(단위: μsec)

[표 3-6] 표수가 홀수인 유한체 연산 구현 복잡도 비교표

[표 3-7] DSA 구현 복잡도 비교표

[표 3-8] DSA 구성 비교표

[표 3-9] Muller의 window 방법 속도 비교표

[표 3-10] 제안한 알고리즘의 속도 비교표

[표 4-1] 완전비 분산스킴의 예

Page 24: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 24 -

그림차례

(그림 2-1) 3-regular 그래프에서의 완전지배집합(perfect dominating set)

(그림 2-2) 3-edge coloring

(그림 2-3) {a, e}:PDS.

(그림 2-4) 3-regular 그래프

(그림 2-5) {-1, 0, 1}로 3-edge coloring

(그림 3-1) Knapsack Crypto-System의 초기화면

(그림 3-2) Knapsack Crypto-System의 데이터 입력화면

(그림 3-3) 암호화/복호화의 처리결과

(그림 3-4) 암호화/복호화의 처리결과 화면

(그림 4-1) K4-covering

(그림 4-2) K4-covering

(그림 4-3) (-1,0,1 ) - PMDF 갖는 G

(그림 4-4) cubic 그래프

(그림 4-5) (0,1)-PMDF를 갖지만 (-1,0,1)-PMDF를 갖지 않는 그래프의 예

(그림 4-6) (-1,0,1)-PMDF 갖는 G..

(그림 4-7) K4-covering 그래프의 예제들

(그림 4-8) 그래프에서 a 근방

(그림 4-9) (-1,0,1)-PMDF

Page 25: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 25 -

제 1 장 서론

현대 사회가 점차 고도 정보화 사회로 발전해 감에 따라 음성, 화상데이터 등 다양한 종류

의 정보를 교환하고 저장하는 대량 정보 통신 시스템이 구축되어 가고 있다. 이러한 정보

통신 시스템이 사회 전반에 걸쳐 일반화되기 위해서는 시스템의 신뢰성과 안정성이 필수 불

가결한 요건으로 인식되고 있다. 이러한 인식 하에 시스템 내부 또는 각 시스템 상호간의

통신에서의 각종 정보에 대한 보호기술은 그 중요성을 아무리 강조하여도 지나치지 않다.

최근 컴퓨터 범죄 혹은 컴퓨터 바이러스의 급증에 따라 보호에 대한 관심이 고조되고 있으

며, 이에 대한 수요도 증가하고 있다. 예를 들면 국가 기간망 혹은 금융 전산망 등에서 데

이터 베이스에 대한 무 인가자의 액세스, 허위 데이터의 입력, 무단 복사 등의 방지 기술이

나, 각종 중요 정보통신에서 도청, 삽입, 위장 등에 대한 방지 기술의 연구는 날로 그 중요

성이 급증하고 있는 추세이다.

이러한 정보 보호기술에서 최근에 각광 받고 있는 원천 기술로서 암호화 기법이 있다. 만약

제 3자가 결코 획득할 수 없는 전송 수단이 존재한다면 그 정보는 매우 안전하며, 정보를

보호하기 위한 수단의 강구는 필요하지 않을 것이다. 그러나 그러한 전송수단은 현재 존재

하지 않으며, 전송로 상의 정보는 항상 제 3자가 획득할 수 있다고 가정해야 한다. 이러한

가정 하에서 정보를 보호할 수 있는 최선의 방법은 제 3자가 정보를 획득하더라도 그 의미

를 분석할 수 없도록 하는 것이다. 이것이 암호화 기법이 사용되는 가장 근본적인 이유이

다.

특히 공개키 암호시스템은 기존 암호학의 상식을 뛰어넘는 혁신적인 발상으로 키를 공개함

으로써 키 분배의 어려움을 해결하고자 하는 방식이다. Caesar 암호로부터 DES에 이르기

까지 2천여년 이상 사용하여온 관용암호시스템은 송신자와 수신자가 키를 공유하는 방식으

로 복호화는 암호화의 단순한 역 조작이어서 암호화할 때와 복호화할 때 사용하는 키가 동

일하다. 이에 비하여 공개키 암호시스템은 암호화 할 때 사용하는 키와 복호화할 때 사용하

는 키를 수학적으로 관계를 갖는 서로 다른 두개의 키를 생성하여 공개키는 공개하고 비

키만 안전하게 유지하는 방식이다. 공개키 암호시스템이 가지는 혁신적인 발상이라는 것은

공개키를 공개하고도 수학적으로 관계를 갖는 비 키에 대안 정보를 알아내지 못한다는 점

이다. A에게 비 통신을 하고자 하는 사람은 누구라도 A가 공개한 A의 공개키를 가지고

송신할 내용을 암호화하여 A에게 전송하면 A는 자신만이 가지고 있는 비 키를 이용하여

암호문을 복호화 한다. 따라서 관용 암호시스템에서 전제로 하였던 키의 안전한 분배는 공

개키 암호알고리즘으로 간단히 해결할 수 있게 되었다.

Page 26: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 26 -

이러한 공개키 알고리즘의 경우는 최근에는 이러한 암호화 시스템이 단순히 메시지 원문의

암호화 복호화에만 사용되는 것이 아니라 메시지의 무결성과 사용자 인증의 기능이 포함되

는 디지털 서명, 개인 식별 등의 중요한 정보보호 서비스를 제공하는 메커니즘에도 이용되

고 있다.

위에서 언급된 정보보호 서비스들은 개인 또는 조직의 주요 정보를 공중 통신망을 이용하여

안전하고 활발히 유통하게 할 수 있는 핵심적인 서비스이므로 이를 구현하는 우수한 성능의

메커니즘의 확보는 다양한 측면에서 매우 중요하다. 이와 관련되어서 현재 외국의 선진국에

서는 정보보호분야의 핵심 기술이 개발되어 거의 정착단계에 있고 이들 정보보호 서비스를

지원하는 시스템도 다수 개발되어 있는 실정이다.

전자서명에 있어서는 미국이 DSA(Digital Signature Algorithm)를 국가표준으로 갖고 있다.

전자서명의 경우 DES와는 달리 전 세계적으로 널리 영향을 주지는 못했다. 구 소련의 경우

R 34.10-94라는 이름의 Gost Digital Signature algorithm을 국가표준으로 갖고 있었다.

일본의 경우 NTT에서 개발한 ESlGN을 갖고 있고, 우리나라에서도 KCDSA(Korea

Certified Digital Signature Algorithm)를 산업표준으로 개발한바 있다. 이외 국가표준은

아니지만 ElGamal형과 Schnorr형의 전자 서명들이 널리 사용되고 있다. 유럽의 경우 프랑

스는 자국의 암호관련 기술의 해외유출을 막고 있기 때문에 그 수준과 규모를 정확히 알기

어렵다. 유럽은 미국과는 달리 유럽 내에서 컨소시엄 형태로 알고리즘을 개발하고 있는 추

세다.

Page 27: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 27 -

그러나 현재 우리나라는 국산 암호 알고리즘의 부재로 인하여 통신망상에서 송ㆍ수신되는

거의 모든 데이터들이 암호화되어지지 않은 상태로 전달되고 있다. 이로 인한 정보의 유출

및 변형 등의 심각한 문제점들이 날로 심각해지고 있다. 이에 대한 대처 방안으로 보안시스

템에 관한 기술이나 장비들을 선진국에 의존하는 것도 이를 막을 수 있는 한 방법일 수 있

으나 이 경우 국내정보의 자체 보호력을 상실하는 엄청난 결과를 초래하게 된다는 점에서

이에 필요한 이론이나 기술을 자체 개발하는 것이 바람직하다고 판단된다. 또한 국가 보안

이라는 명분 아래 많은 나라들이 자국의 보안기술의 해외 유출을 엄격히 막고 있는 것이 현

실이므로 외국과의 기술제휴나 기술 이전형식을 빌리더라도 원하는 보안수준에 대한 정보

및 기술을 이전 받기가 실제로 불가능하다. 따라서 정보통신보호를 위한 안전하고 효율적인

암호화 알고리즘의 개발 및 전자 상거래, 전자결제 등의 신규 서비스에서 필수적으로 요구

되는 전자서명을 지원할 공개키 암호화 알고리즘에 대한 국내 기술진의 개발이 시급하다고

생각된다.

그러나 관용암소시스템과는 달리 공개키 암호시스템 개발을 위하여 좋은 특성을 갖는 수학

적 이론을 찾아내는 것은 수학자뿐만 아니라 전산학의 계산이론학자의 끊임없는 협력하여야

만 비로소 가능한 것이다.

1978년 이후로 공개키 암호알고리즘의 개발 동향을 살펴보면 1985년 이산대수문제를 기반

으로 하는 2개의 공개키 암호알고리즘이 연차적으로 개발되었다. 그 하나는 ElGamal이 박

사논문으로 제출한 공개키 암호알고리즘으로 암호문이 평문에 비해 2배로 확장되는 단점이

있어 암호화보다는 전자서명으로 많이 사용되고 있다. 한 예로 미국의 표준전자서명알고리

즘도 ElGamal 전자서명 알고리즘의 한 변형이다. 또 하나는 타원곡선 공개키 암호시스템으

로 Neal Koblitz와 Victor Miller에 의해서 독립적으로 제안되었으며 타원곡선군의 이산대

수 문제의 어려움에 근거한 암호법이다. 이 방법은 개발 초기에 구현상의 문제로 관심의 대

상이 되지 못하였으나 Koblitz와 Vanstone의 계속적인 노력으로 구현상의 문제점을 극복하

면서 상당한 관심을 끌게 되었다. 그 이유는 현재 사용되고 있는 또 다른 암호체계와 같은

수준의 안전성을 제공하면서도 키 크기(key sizes)를 1/6 로 할 수 있다는 것이다.

Page 28: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 28 -

이 외에도 최근에 AD 시스템, GGH 시스템, NTRU 시스템 등 Lattice 축소 문제를 기반으

로 하는 공개키 암호알고리즘이 등장하게 되었고, 안전성에 대한 계속적인 분석이 이루어지

고 있다. 또한, 유한체와 행렬군, 다항식환(polynomial ring)등의 대수적 구조를 기반집합

(underlying set)으로 하고, 대수적 일방향함수를 사용하는 대수적 암호시스템등에 관한 연

구도 간헐적으로 진행되어 왔다.

본 연구는 공개키 암호알고리즘 개발을 위하여 기본적으로 필요한 수학적 논리와 실제로 개

발된 5개의 공개키 암호알고리즘의 소개와 분석을 중심으로 전개하였다. 제 2장에서는 현재

사용되고 있거나 연구되고 있는 주요 공개키 암호알고리즘의 기본 논리인 소인수분해 문제,

이산대수문제, 배낭문제, 격자축소문제, 그래프 PDS(Perfect Dominating Set) 문제에 대하

여 수학적으로 정의하고 이러한 문제가 어떻게 공개키 암호알고리즘과 관계를 갖게 되는지

를 구체적으로 다루었다. 제 3장에서는 2장의 기본논리와 기존의 공개키 암호알고리즘을 연

계함으로써 새로운 문제점을 찾아내고, 수정 보완함으로써 기존의 공개키 암호알고리즘을

좀더 향상시킬 수 있는 방안을 연구하여 효율적인 공개키 암호알고리즘 개발로 이어지는 결

과를 가지게 되었다. 제 4장에서는 새로운 응용분야로 제시되고 있는 그래프 이론과 군 이

론을 공개키 암호알고리즘으로 연계하는 방법을 연구하여 새로운 공개키 암호알고리즘을 개

발하였으며, 향후 연구방향으로는 새롭게 개발된 공개키 암호알고리즘의 일반화를 통하여

효율성을 향상시키는 방안을 연구할 계획이다. 그리고, 마지막 5장에서는 공개키 암호알고

리즘의 필요성과 활용분야에 대하여 간단히 언급하고, 공개키 암호알고리즘 개발을 위한 향

후 추진 방향에 대하여 언급하였다.

Page 29: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 29 -

제 2 장 공개키 암호알고리즘 기반 논리

제 1 절 소인수분해문제(Integer Factoring Problem)

1. 개요

대부분의 암호기술의 안전성은 소인수분해문제의 계산상의 어려움(computational

intractability)에 의존한다. 그러므로 먼저 소인수분해문제가 무엇인지에 대하여 알아보자.

정의2.1.1 소인수분해문제란 양의 정수 n이 주어지면, 이 수를 소인수들로 분해하는 것이

다. 즉 n=pe1

1 pe22.....p

ekk 으로 나타내는 것이다. 여기서 각각의 p i 는 서로 다른 소수들

이고, 각각의 지수 ei≥1 이다.

주어진 정수가 합성수인지 소수인지를 결정하는 문제는 일반적으로 소인수분해문제보다는

훨씬 쉽다. 그러므로 정수의 소인수분해를 시도하기 전에 정수가 실제로 합성수라는 사실을

확신할 수 있는 테스트를 거친다. n의 자명하지 않은 인수분해란 n=ab, (1<a<n, 1<b<n)로

나타내는 것이다. 여기서 a와 b는 n의 자명하지 않은 인수라 하고, 이들이 꼭 소수일 필요

는 없다. 소인수분해문제를 풀기 위해서 n을 인수분해 하는 알고리즘을 연구하는 것으로 충

분하다. 즉, 자명하지 않은 소인수분해 n=ab를 찾고 나서, 인수 a와 b에 대한 소수판정 테

스트(Primality testing)를 할 수 있다. 이들 둘 중 하나가 합성수라고 판정 받았다면 a와

b(a 또는 b)에 정수를 분해하는 알고리즘을 반복해서 적용할 수 있다. 이러한 방법으로 n의

소인수분해가 얻어진다. 이때 n≥2이면, n이 완전 멱승(즉, n=x k.x≥2.k≥2)인지를 검증하여

이러한 경우는 제외한다.

Page 30: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 30 -

본 절에서는 인수에 대한 소수판정 테스트(Primality testing) 및 소인수분해문제를 해결하

는 알고리즘에 대하여 구체적으로 알아보고자 한다. 이 문제에 기반한 알고리즘으로는 RSA

공개키 암호시스템 및 Dickson 암호시스템, LUC 암호시스템 등이 있다.

2. 소수판정 테스트(Primality testing)

정수의 자명하지 않은 인수를 찾으면 먼저 소수판정 테스트1)를 통해 소수인지 합성수인지

를 판단한다. 여기에서는 확률 다항식 시간 몬테 카를로 알고리즘 (probabilistic

polynomial-time Monte Carlo algorithm)인 Solovay-Strassen 테스트와 Mi1ler-Rabin

테스트를 소개한다. Solovay-Strassen 테스트나 Mi1ler-Rabin 테스트는 수행 속도가 빠르

긴 하지만(즉, 테스트할 정수가 n이라면, log 2n에 관한 다항식 시간이다), n이 소수가 아닌

경우에도, 소수라고 판별할 확률이 있다. 하지만 알고리즘을 충분히 수행시키는 경우, 우리

가 원하는 오차 한계이내로 오류 판정 확률을 줄일 수 있다.

가. Solovay-Strassen 테스트

결정 문제(decision problem)는 질문의 대답이 "yes" 혹은 "no“인 문제이다. 그리고, 확률

알고리즘(probabilistic algorithm)은 난수를 사용하는 알고리즘이며, 결정 알고리즘

(deterministic algorithm)은 난수를 사용하지 않는 것이다. 다음의 정의는 결정 문제를 위

한 확률 알고리즘에 관한 것이다.

정의2.1.2 예-경향 몬테 카를로 알고리즘(yes-biased Monte Carlo algorithm)은 결정 문

제를 위한 확률 알고리즘으로, 결과가 "yes"인 경우는 항상 참인 대답이지만, "no" 인 경우

는 틀릴 확률이 있다. 반면, 아니오-경향 몬테 카를로 알고리즘(no-biased Monte Carlo

algorithm)은 반대의 알고리즘을 일컫는다. 그리고, 예-경향 몬테 카를로 알고리즘의 오류

확률이 ε이라는 것은, 임의의 경우(instance)에 대해, 옳은 결과가 “yes”임에도 불구하고,

결과를 틀리게 "no"라고 할 확률이 기껏 해야 ε이라는 것이다.

1) 소수판정 테스트는 RSA 공개키 암호시스템의 키생성시 난수인 소수를 생성하기 위해서도 필요한

테스트이다.

Page 31: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 31 -

먼저 Solovay-Strassen 테스트에 대해 알아보자. Solvay-Strassen 테스트는 결정문제를

해결하기 위한 실패확률이 12

인 예-경향 몬테 카를로 알고리즘이다. 따라서, 테스트의 결

과가 "yes"일 확률은 적어도 12

이다. 뒤에 소개되어질 Miller-Rabin 테스트는 상대적으로

So1ovay-Strassen 테스트보다 속도가 빠르긴 하지만, Solovay-Strassen 테스트는 개념적

으로 이해하기가 쉬우며, 널리 알려진 테스트이다. 이 테스트를 소개하기 전에 먼저 몇 가

지 수학적 개념을 필요로 한다.

정의2.1.3 p를 홀수인 소수라 하고, x를 1이상 p-1이하의 임의의 정수라 하자. 그러면, 합

동식 y 2=x를 만족하는 y가 Z p상에서 존재할 때, x를 quadratic residue 법(mod) p라

한다. 그리고, x≠0 법 p이면서 x가 법 p에 대해 quadratic residue가 아닌 경우, x를

quadratic non-residue 법 p라 한다.

정리 2.1.4 (Eu1er's Criterion) p를 소수라 하자. x가 quadratic residue 법 p이기 위한

필요 충분조건은 x p-1/2≡1 mod p이다.

정의 2.1.5 p를 홀수인 소수라 하자. 음 아닌 정수 a에 대해, Legendre symbol ( ap ) 는

다음과 같이 정의한다.

( ap )= 0 만약 a≡0 mod p인 경우

Page 32: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 32 -

1, a가 법 p에 대해 quadratic residue인 경우

-1, a가 법 p에 대해 quadratic non-residue인 경우.

정리2.1.6 p를 홀수인 소수라 하자. 그러면, ( ap )= ap-12 법 p이다.

Legendre symbo1은 다음과 같이 Jacobi symbol로 일반화된다.

정의2.1.7 n을 홀수인 양의 정수이고, n=pe1

1 pe22 ...p

ekk 로 소인수분해된다고 하자. 그리고,

a를 음 아닌 정수라 할 때, Jacobi symbol ( an )를 다음과 같이 정의한다.

이제 Solovay-Strassen 테스트의 알고리즘을 살펴본다.

[ Solovay-Strassen 알고리즘 ]

입력: 홀수 n(n≥3 ), 안전변수(security parameter) t( t≥1 )

출력: 'n이 소수인가?'라는 질문에 대한 '소수' 또는 '합성수'의 대답

A. 각각의 i에 대해, 1부터 t까지 다음을 수행한다.

A-1. 임의의 정수 a( 2≤a≤n-2 )를 선택한다.

A-2. r=a (n-1)/2 법 n을 계산한다.

A-3. 만약 r≠1고 r≠ n-1면 "합성수"를 출력한다.

A-4. Jacobi symbol s=( an )를 계산한다.

A-5. 만약 r≠s 법 n 면 "합성수"를 출력한다.

B. "소수"를 출력한다.

Page 33: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 33 -

n을 음 아닌 홀수인 정수라 하자. 만약 n이 소수이면, 임의의 정수 a에 대해 ( an )≡ap-1/2

mod n이 성립한다. 반대로, n이 합성수인 경우 ( an )≡ap-1/2 mod n이 성립함은 일정하지

않다. 이 합동식이 합성수 n에 대해 특별히 성립하는 경우, n을 기저 a에 대해 Euler

pseudoprime이라 한다. 하지만, 홀수인 합성수 n에 대해, n이 기저 α에 대해 Euler

pseudoprime이 되게 하는 a(1≤a≤n)는 많아야 n/2개임을 보일 수 있다. 이 사실을 이용해,

So1ovay-Strassen 테스트의 실패확률이 기껏해야 1/2인 예-경향 몬테 카를로 알고리즘임

을 보일 수 있다. n 이 소수인지 합성수인지를 Solovay-Strassen 테스트를 이용해 판정한

다고 하고, 이 알고리즘을 m번 실행시킨다면, n이 소수일 확률은1- 2-m이다.

나. Miller-Rabin 테스트

이제, "strong pseudo-prime test“로 잘 알려져 있으며, 실제에 있어서도 가장 많이 이용

되는 Miller-Rabin 테스트의 알고리즘을 살펴본다.

[ Mli11er-Rabin 알고리즘 ]

입력 : 홀수 n( n≥3 ), 안전변수(security parameter) t( t≥1 )

출력 : 'n이 소수인가?'라는 질문에 대한 '소수' 또는 '합성수'의 대답

A. n-1= 2 sr 로 표현한다. 여기서 r은 홀수이다.

B. 각각의 i에 대해, 1부터 t까지 다음을 수행한다.

B-1. 임의의 정수 a( 2≤a≤n-2 )를 선택한다.

B-2. y= a r 법 n을 계산한다.

Page 34: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 34 -

B-3. 만약 y≠1 고y≠n-1 면 다음을 수행한다.

j←1

j≤s-1이고 y≠n-1를 만족하면 다음을 수행한다.

B-3-1. y= y 2 법 n을 계산한다.

B-3-2. 만약 y=1면 "합성수"를 출력한다.

B-3-3. j←j+1

만약 y≠n-1 면 "합성수"를 출력한다.

C. "소수"를 출력한다.

실제로, Miller-Rabin 테스트는 Solovay-strassen 테스트보다 계산량에 있어서나 구현하는

데 있어 훨씬 효율적이며, 복잡도는 O( ( logn) 3)이다. 그리고, 실패확률은 기껏해야 1/4이

다.

3. 인수 분해 알고리즘(Factoring Algorithm)

인수분해 알고리즘은 정수 n이 특별한 형태일 때 더 잘 수행되도록 만들어져있는 특수 목

적의 인수분해 알고리즘과 일반 목적의 인수분해 알고리즘으로 나누어진다. 특수 목적의 인

수분해 알고리즘의 수행시간은 전형적으로 n의 인수가 가지는 특정한 성질에 의존하게 되

어 있고, trial division, Pollard's rho algorithm, Pollard's p-l algorithm, elliptic curve

factoring algorithm, special number field sieve algorithms등이 있다. 이와는 달리 소위

일반 목적의 인수분해 알고리즘의 수행속도는 n의 크기에만 의존하며, quadratic sieve와

genera1 number field sieve 등이 이에 속한다.

인수분해 알고리즘을 적용하는 합리적인 전략은 먼저 작은 인수를 찾는 것이다. 그 다음으

로 정수가 가지는 특별한 형태를 포착하는 것이다. 그리고 나서 이 모든 것이 실패로 돌아

가면 일반 목적의 알고리즘을 적용한다. 일반적인 전략의 예로는 다음을 생각해 볼 수 있

다.

Page 35: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 35 -

1. 어떤 bound b1 보다 작은 소수에 의한 trial division을 적용함

2. 어떤 bound b2,(b2>b1) 보다 작은 소인수를 찾기 위해 Po1lard's rho algorithm을 적용

3. 어떤 bound b3,(b3>b2) 보다 작은 소인수를 찾기 위해 Elliptic curve factoring

algorithm을 적용함

4. 마지막으로, 더욱 강력한 일반적인 목적의 알고리즘(quadratic sieve 또는 general

number fie1d sieve)중 하나를 적용함

가. 나눗셈 시도 방법(Trial division)

인수분해를 위해 첫 번째로 시도해 볼 수 있는 방법은 알려져 있는 작은 소수를 이용하여

나눗셈을 시도하는 것이다. 여기서 "작은"의 의미는 n의 크기의 함수로 결정된다. 최악의 경

우, 나눗셈 시도 방법은 n까지의 모든 소수로 시도된다. n번까지 시도하고 나면 나눗셈

시도 방법은 완전히 n을 인수분해 할 수 있지만 시행횟수는 최악의 경우(즉, n이 똑같은 크

기의 두 개의 소수의 곱인 경우) n번의 나눗셈이 필요할 것이다. 일반적으로 각 단계에서

찾아진 인수에 대하여 소수 판정법을 수행한다면 n을 완전히 인수분해 할 때 걸리는 나눗

셈 시도 방법은 O(p+logn)번 수행된다. 여기서 p는 n의 두 번째로 큰 소인수이다. 나눗셈

시도법이 임의로 선택한 큰 정수 n을 인수분해하기 위해 사용된다면 그 알고리즘은 상대적

으로 빠르게 n의 어떤 작은 인수를 찾을 수 있을 것이다. 그러나, n의 두 번째로 큰 소인수

를 찾기 위해서는 상당히 많은 시간이 걸릴 것이다.

Page 36: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 36 -

정리2.1.8 n을 구간 [1,x]로부터 균등하게(uniform1y)임의로 선택하자.

(1) 1/2≤a≤1이면, n의 가장 큰 소인수가 x a보다 작거나 같을 확률은 대략적으로 1+lna이

다. 그래서 예를 들어 n이 x보다 큰 소인수를 가질 확률은 ln2≈0.69이다.

(2) n의 두 번째로 큰 소인수가 x 0.2117보다 작거나 같을 확률은 약 12

이다.

(3) n의 소수 인수의 기대되는 총 개수는 ln lnx+O(1)개다.

( n=Π pei이면, n의 전체 소인수의 개수는 ∑ei 이다.)

나. Po1lard's rho 인수분해 알고리즘

Pollard's rho 알고리즘은 합성수의 작은 인수를 찾기 위한 특별한 목적의 인수분해 알고리

즘이다. f:S→S 를 임의의 함수라고 하자. 여기서 S는 cardinality가 n인 유한집합이다.

x 0를 S의 랜덤수라고 하고, x i+1=f(xi).i≥0 에 의해 정의된 수열 x0,x1,x2,...를 생각해 보

자. S가 유한이므로 수열은 결국 순환하게 되고, 기대 길이가 πn/8인 끝없이 반복되는 순

환에 이어 기대 길이가 πn/8인 열로 이루어진다. 인수분해문제와 이산대수문제를 포함하

여 암호분석 작업에서 일어나는 문제는 xi=xj(이후로 충돌이라고 함)를 만족하는 서로 다른

i와 j를 찾는 것이다. 충돌을 찾기 위한 명백한 방법은 xi(i=0,1,2,...에 대해서)를 계산하고

저장하며, 두 배를 찾는 것이다. 두 배가 검출되기 전에 시도되어져야 하는 입력값의 기대

값은 πn/2 이다. 새로운 원소들이 상수시간에 더해질 수 있도록 해쉬 테이블에 xi가 저장

되었다고 가정한다면, 이 방법은 O( n) 메모리와 O( n) 시간이 걸린다. 충돌쌍을 찾기 위

한 위의 기술에서 커다란 저장 공간의 요구는 Floyd's cycle finding 알고리즘을 사용하여

줄일 수 있다. 이 방법은 ( x 1, x 2)를 가지고 시작하여, 이전쌍 ( x i-1. x 2i-2)로부터

x m= x 2m(어떤 수 m에 대해서)이 될 때까지 교대로 ( x i. x 2i)를 계산한다. 그 수열의 끝의

길이가 λ이고, cycle의 길이가 μ이라면 라면 x m= x 2m 을 만족하는 첫번째는 m=μ(1+

⌊λ∣μ⌋) 일 때이다. λ<m≤λ+μ이므로 결과적으로 이 방법의 기대되는 수행시간은

O( n)이다.

Page 37: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 37 -

이제, p를 합성수 n의 소인수하고 하자. n을 인수분해하기 위한 Pollard's rho 알고리즘은

x 0=2. x i+1=f( x i)=x2i+1 (법 p) ( i≥0에 대해서 )에 의해 정의된 정수 수열 x 0, x 1, x 2,...

의 두 배를 찾기 위한 시도를 한다. Floyd's cycle finding 알고리즘은 x m= x 2m (법 p ) 를

만족하는 x m과 x 2m을 찾기 위해 이용된다. p 는 n을 나누지만 알려져 있지 않으므로 이

것은 x i (법n)를 계산하고, gcd( x m- x 2m.n)>1 인지를 검증함으로써 이루어진다. 또한 gcd

( x m- x 2m. n )⋏ n 이면n의 자명하지 않은 인수를 얻을 수 있다. (gcd ( x m-x 2m.n)=n은

매우 작은(negligible) 확률로 일어난다.)

[ Pollard's rho algorithm ]

입력 : 한 소수의 곱으로만 표현되지 않는 합성수 n

출력 : n 의 자명하지 암은 인수 d

A. a←2, b←2로 놓자.

B. i=1,2,...에 대해 다음을 수행한다.

B.1 a←a2+1 (법 n), b←b2+1 (법 n),b←b2 +1 (법n)을 계산한다.

B.2 d=gcd(a-b, n)을 계산한다.

B.3 만약 1<d<n 이면 d를 출력한다. (성공적으로 종결)

B.4 만약 d=n 이면 이 알고리즘은 실패한다.

이제, n=455459의 자명하지 않은 인수를 구하는 Pollard's rho 알고리즘의 간단한 예가 주

어진다.

Page 38: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 38 -

[표 2-1] n=455459의 자명하지 않은 인수를 찾는 Pollard의 알고리즘

그러므로, n=455459의 두 인수는 743과 455459/743=613이다.

함수 f(x)= x 2+1 mod p가 임의의 함수처럼 작동한다고 가정한다면 n의 인수 p를 찾기 위

한 Pollard's rho 알고리즘에 대한 기대 시간은 O( p) 법 곱셈(modular multiplication)이

다. 이것은 n의 자명하지 않은 인수를 찾기 위한 기대 시간은 O( n 1/4) 법 곱셈(modular

multiplication)이다. Pollard's rho 알고리즘이 실패로 끝나면 f(x)= x 2+1 대신에 정수 상

수를 갖는 다른 함수 f를 사용하여 다시 시도하는 것이다. 예를 들어 다항식

f(x)= x 2+c(c≠0.-2)가 사용될 수 있다.

다. Pollard's p-1 인수분해 알고리즘

Pollard's p-1 인수분해 알고리즘은 p-1이 상대적으로 작은 bound B에 관하여 smooth인

합성수 n의 소인수 p를 효율적으로 찾기 위해 사용될 수 있는 특수목적의 인수분해 알고리

즘이다.

Page 39: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 39 -

정의 2.1.9 B를 양의 정수라고 하자. 정수 n의 모든 소인수들이 B보다 작거나 같으면 n을

B-smooth 또는 smooth with respect to abound B라고 한다.

Pollard's p-1 알고리즘에 대한 아이디어는 다음과 같다. B가 smoothness bound라고 하

고, Q 를 B보다 작거나 같은 모든 소수들의 멱승의 최소 공배수가 n보다 작거나 같다고 하

자. q l≤n이면, llnq≤lnn이고, 그러므로 ⍳≤⌊ lnnlnq ⌋이다. 그래서 Q= ∏

a≤bq ꀚ

lnnlnq ꀛ이

다. 여기서 곱은 모든 서로 다른 소수들이 p≤B에서 이루어진다. p가 p-1이 B-smooth인 n

의 소인수이라면 p-1|Q이고, 결과적으로 Fermat's 정리에 의하여 gcd(a,p)=1를 만족하는

a에 대해서 aQ≡1(modp)를 만족한다. 그러므로 d=gcd(aQ-1, n)이면 p|d이다. d=n인 경우

그 알고리즘은 실패할 것이다. 그러나 n이 적어도 서로 다른 두 개의 큰 소인수로 되어있다

면 이러한 경우는 일어나지 않을 것이다.

[ Po1lard's p-l algorithm ]

입력 : 한 소수의 곱으로만 표현되지 않는 합성수 n

출력 : n의 자명하지 않은 인수 d

A. smoothness bound B를 선택한다.

B. 임의의 정수 a, 2≤a≤n-1를 선택하고 d=gcd(a, n) 를 계산한다. 만약 d≥2이면 d를 출

력한다.

C. 각각의 소수 q≤B에 대해 다음을 수행한다.

C.1. l= ꀚ lnnlnq ꀛ 를 계산한다.

C.2. a← a q1mod n를 계산한다.

D. d=gcd(a-1, n)를 계산한다.

E. 만약 d=1 이거나 d=n 이면 이 알고리즘은 실패로 끝난다.

이제, n=19048567의 자명하지 않은 인수를 찾는 Pollard's p-1 알고리즘의 예가 주어진다.

Page 40: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 40 -

[표 2-2] n=19048567의 자명하지 않은 인수를 찾는 Pollard의 p-1알고리즘

A. smoothness bound B=19를 선택한다.

B. 정수 α=3를 선택하고 1=gcd(3,d)를 계산한다.

C. 다음의 표는 변수 q와 1,a의 중간값을 보여준다.

D. d=gcd(554506-1,n)=5281를 계산한다.

E. n의 두 자명하지 않은 인수는 p=5281와 q=n/p=3607이다

(p-1=5280=25×3×5×11, q-1=3606=2×3×601 즉, p-1과 q-1은 19-smooth 이다.

n을 p-1이 B-smooth인 소인수 p를 갖는 정수라고 하자. 인수 p를 찾기 위한 Pollard's

p-l algorithm의 수행 시간은 O(Bln n/lnB)법 곱셈(modular multiplication)이다.

Page 41: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 41 -

라. 타원곡선 인수분해 알고리즘

타원곡선 인수분해 알고리즘에 대해 대략적으로 설명하면 다음과 같다. Po1lard's p-1 인

수분해 알고리즘은 n의 어떤 소인수 p에 대하여 p-1이 smooth해야 한다는 조건이 있어야

한다. 만약 그러한 p가 존재하지 않는다면 그 알고리즘은 실패한다. p-1은 군 Z *p 의 order

이다. 군 Z*p가 Z p 4상의 랜덤한 타원곡선 군(Elliptic curve group)에 의해 대신 될 수 있

다는 의미에서 타원곡선 인수분해 알고리즘은 Pollard's p-1 알고리즘의 일반화라고 생각할

수 있다. 그러한 군의 위수(order)는 구간 [p+1-2 p. p+1+2 p] 에서 균등하게 분포되

어 있다. 선택된 군의 위수가 미리 선택된 어떤 bound에 관해 smooth 하다면 타원곡선 알

고리즘은 높은 확률을 가지고 n의 자명하지 않은 인수를 찾을 수 있다. 그 군의 의수가

smooth하지 않다면 그 알고리즘은 거의 실패할 것이다. 그러나 타원곡선 군을 다르게 선택

함으로써 위의 과정을 되풀이 할 수 있다. 타원곡선 알고리즘은 n의 인수p를 찾기 위하여

L p [ 12 ,1]의 기대수행 시간을 갖는다. 이 수행 시간은n의 소인수의 크기에 의존하기 때문

에 그 알고리즘은 먼저 그런 작은 인수를 찾으려는 경향을 가진다. 그러므로 타원곡선 알고

리즘은 특수 목적의 소인수분해 알고리즘으로 분류된다. 이 알고리즘은 현재 매우 큰 합성

수인 t자리 십진수 소수(t≤40)를 구하는 경우에 이용된다. 최악의 경우에 있어, n이 거의

같은 크기의 두 소수의 곱일 때 타원곡선 알고리즘의 기대수행시간은 L n [ 12 .1] 이다.

마. Random square 인수분해 방법

x와 y를 x2≡y2(mod n)이고, x≠±y(modn) 인 정수라고 가정하자. 그러면, n은

x2-y2=(x+y)(x-y)를 나누지만, (x-y)과 (x+y) 각각을 나누지 않는다. 그러므로 gcd(x-y,

n)는 n의 자명하지 않은 인수이다.

Page 42: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 42 -

정리2.1.10. x,y,n이 정수라고 하자. x2≡y2(modn)이고, x /≡±y(modn)이라면, gcd(x-y,n)는

n의 자명하지 않은 인수이다.

Random square 방법은 x2≡y2(mod n)을 만족하도록 임의로 정수 x와 y를 찾으려는 시도

를 한다. 이때 적어도 1/2의 확률로 x /≡±y(modn)의 경우, 즉 gcd(x-y, n)이 n의

non-trivial factor가된다.

정리 2.1.11. n을 k개의 서로 다른 홀수 소수에 의하여 나누어진 홀수 합성수라고 하자. a

∈ Z *n이면, x2≡a2(mod n)은 정확히 2k 해 (법n), 그중 2개는 x=a 그리고 x=-a이다.

Random square 방법의 간단한 예로 n=35인 경우에는 x2≡4(mod35)를 만족하는 해는 4개

이다. 즉, x=2,12,23,33이다. x2≡a2(mod n)을 만족하는 x와 y를 임의로 선택하게 찾기 위

한 random square 방법의 공통전략은 다음과 같다. 처음 t개의 소수로 구성된 집합 S=

{ p 1. p 2... p t} 를 선택한다. S는 인수 기저(factor base)라고 한다. 다음을 만족하는 정수

쌍 ( a i. b i ) 찾기를 계속한다.

Page 43: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 43 -

다음으로는 곱이 완전제곱이 되는 b i 의 부분집합을 찾는다. b i 에 관한 인수분해를 알고

있기 때문에, 이것은 곱셈에서 각각의 소수 p i의 지수가 짝수가 되도록 b i 의 부분 집합을

선택함으로써 가능하다. 이러한 목적을 위하여 음수가 아닌 정수 지수 e ij 의 패리티만을

고려하면 된다. 그러므로, 문제를 단순히 하기 위하여, 각각의 i에 대하여 이진 벡터

( v i= v i1. v i2.... v it )를 v ij= e ij (mod2)를 만족하는 정수 지수 벡터 ( e i1. e e.... e it) 로

생각한다. t+1개의 ( a i. b i)쌍을 얻었다면 t차원 벡터 v 1. v 2.... v i+1 는 Z 2상에서 일차

독립(linearly dependent) 이어야한다 즉, ∑i∈Tv i=0과 같은 공집합이 아닌 부분집합 T⊆

{1.2....,t+1}이 존재하여야 한다. 그러므로 ∑i∈Tb i는 완전제곱이다. 집합 T는 Z 2 상의 보통

의 선형대수를 이용하여 찾을 수 있다. 또한 ∑i∈Ta2i 도 완전제곱이다. 그러므로 ∑

i∈Tb i 의

정수 제곱근이 되도록 x= ∑i∈Ta i와 y를 고정하면 x 2≡ a 2 (mod n)를 만족하는 정수의 쌍

(x, y)를 만들 수 있다. 이 쌍은 또한 x≢y(mod n)을 만족한다면, gcd(x-y, n)은 n의 자명

하지 않은 인수가 된다. 그렇지 않다면, ( a i . b i)중 어떤 쌍은 새로운 그러한 쌍에 의해 대

치될 수 있을지도 모른다. 그리고 그 과정은 반복된다. 특히, 벡터 v 1. v 2.... v i+1 사이의 몇

가지 의존성이 있고, 높은 확률을 가지고 적어도 하나는 x /≡±y(mod n)을 만족하는 쌍(x,y)

가 될 것이다.

위에서 설명한 random square 방법에 대한 설명은 2가지 이유로 완전하지 않다. 첫 번째

로 t의 최적화된 선택, 인수 기저의 크기가 구체화되어 있지 않다. 두 번째로 ( a i . b i)를

생성하는 효율적인 방법이 구체화되어 있지 않다. 이에 대한 몇 가지 기술이 제안되었는데

이 기술 중 가장 간단한 것으로 Dixon's algorithm이 있다. a i가 랜덤하게 선택되고,

b i=a2i (mod n)이 계산된다. 다음과정은 그 인수기저에 있는 원소에 의하여 나눗셈 시도

법을 수행하여, b i 가 p t-smooth 인지를 검증한다. p t-smooth 가 아니라면 또 다른 정수

a i를 랜덤하게 선택하여 위의 절차를 반복한다. 더욱 효율적인 기술은 b i 가 상대적 작은

a i 를 전략적으로 선택한다. 구간 [2, x ]내에 있는 p t,-smooth 정수의 비율은 x가 증가

할수록 더욱 커지기 때문에, b i 가 p t,-smooth 를 만족할 확률 더욱 높아진다. 그러한 기

술 중 가장 효율적인 것은 다음에서 언급할 quadratic sieve 알고리즘이다.

Page 44: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 44 -

바.Quadratic sieve 인수분해 알고리즘

정수 n이 인수분해 된다고 가정하자. m=[ n]이라고 하고, 다항식 q(x)=(x+m ) 2-n를 고

려하여 보자. q(x)= x 2+2mx+m 2-n≈x 2+2mx 는 x의 절대값이 작으면 n에 대하여 상대적

으로 작은 값을 갖는다는 사실을 주목할 수 있다. quadratic sieve 알고리즘은 a i =(x+m)

을 선택하고, b i =(x+m)2-n가 p i-smooth 인지를 검증한다. a 2i =(x+m)2≡ b i (mod n)

를 주목하고, 소수 p가 b i 를 나눈다면, (x+m)2≡n(mod p)이고, 따라서 n은 p의 quadratic

residue modulo p가 된다는 사실을 알 수 있다. 인수 기저는 Legendre symbol ( np )이 1

인 소수 p를 꼭 포함할 필요가 있다. 게다가 bi 가 음수일수도 있으므로, -1은 인수 기저에

포함된다.

[ Quadratic sieve factoring algorithm ]

입력 : 한 소수의 곱으로만 표현되지 않는 합성수 n

출력 : n의 자명하지 않은 인수 d

A. 인수 기저 S={ p i. p 2.... p t} 를 선택한다. 여기서 p1=-1이고, pj(j≥2)는 n이 modulo p

에 대해 quadratic residue인 (j-1)th 소수 p이다.

B. m=⌊ n⌋를 계산한다.

Cㆍ t+1개의 쌍 ( a i , b i )를 모은다. x 값은 0,±1,±2,...순서로 선택된다. i←1로 놓는다.

i≤t+1를 만족하면 다음을 수행한다.

C.1. b=q(x)=(x十m)2-n를 계산하고 b가 pt-smooth이든 아니든 trial division을 이용하여

S안의 원소를 검증한다. 만약 아니면, 새로운 x를 고르고, 단계 C.1을 반복한다.

Page 45: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 45 -

C.2. 만약 b가 p t -smooth (즉, b=

t∏j=1

pe ijj

)이면 a i←(x+m), b i←b와

v i= v i1. v i2.... v it 로 놓는다ㆍ 여기서 1≤j≤t에 대해 v ij = e ij mod 2이다.

C.3 i←i+1

D. ∑i∈Tv i=0를 만족하는 공집합이 아닌 부분집합 T⊆{1,2,...,t+1}를 찾기 위해 Z 2에서의

선형대수를 이용한다.

E. x = ∏i∈T

a i mod n를 계산한다.

F. 각각의 j, 1≤j≤t에 대해 l i = ( ∑i∈Te ij )/2를 계산한다.

G. y=

t∏j=1

pl jj mod n를 계산한다.

H. 만약 x≡±y(mod n)이면 ∑i∈Tv i =0 를 만족하는 또 다른 공집합이 아닌 부분집합 T⊆

{1,2,..., t+1}를 찾고, 단계 E로 간다.

I. d=gcd(x-y, n)를 계산해서 값을 출력한다.

[표 2-3] n=24961의 자명하지 않은 인수를 찾는 Quadratic sieve 알고리즘

Page 46: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 46 -

A. t=6의 크기를 갖는 인수 기저 S={-1,2,3,5,13,23.}를 선택한다.(S 에서 7,17,11,17,19b

는 생략된다. 왜냐하면, 이러한 소수들에 대해( np

)=-1 이기 때문이다.)

B. m= ⌊ 24961⌋ =157를 계산한다.

c. 다음은 q(x)가 23-smooth 인 x의 첫 번째 t+1 값을 나타낸 표이다.

D. 조사해 보면 v 1+ v 2+ v 5=0이다.(즉, T={1,2,5})

E. x=( a 1 a 2 a 5 mod n) = 936을 계산한다.

F. l 1=1, l 2=3. l 3=2, l 4=0, l 5=1, l 6=0 을 계산한다.

G. y=- 2 3ㆍ 3 2ㆍ13 mod n=24025을 계산한다.

H. 936≡-24025(mod n)이기 때문에 또 다른 일차 종속을 찾아야만 한다.

I. 조사해 보면 v 3 +v 6+v 7 = 0이다. 그러므로, T={3,6,7}이다.

J. x=( a 3 a 6 a 7 mod n) = 23405을 계산한다.

K. l 1=1, l 2=5, l 3=2, l 4=3, l 5=0, l 6=0을 계산한다.

L. y = (-25. 3 2. 5 3mod n) = 13922을 계산한다.

M. 23405≠±13922(mod n)이므로 gcd(x-y, n)=gcd(9483, 24961)=109를 계산한다.

그러므로, 24961의 두 개의 자명하지 않은 인수는 109와 229이다.

Quadratic sieve 알고리즘의 단계 C.1에서 나눗셈 시도법을 통해 smoothness를 검증하는

방법 대신 sieving으로 불리는 더욱 효율적인 기술이 실제로 사용된다. 먼저 p가 인수 기저

에 있는 홀수 소수이고, p|q(x)라면, p|q(x+lp), ∀l가 된다. 그래서 x에 대한 방정식 q(x)≡

0(modp)의 해를 구함으로써, p|q(y)를 만족하는 또 다른 값 y에 대한 한 개 또는 두 개의

전체 수열을 알 수 있다.

Page 47: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 47 -

Sieving 과정은 다음과 같다. -M≤x≤M을 만족하는 x에 의하여 색인된 배열(array) Q[]가

생성되고 xth 원소는 ⌊ lg|q(x)⌋로 초기화된다. x 1, x 2를 q(x)≡0(modp)(여기서 p는 인

수 기저에 있는 홀수 소수이다.)의 해라고 하자. 그러면 값 ⌊ lgp⌋는 x≡ x 1or x 2(modp)

이고 -M≤x≤M를 만족하는 배열에 있는 원소 Q[x]로부터 빼진다. 이것은 인수 기저에 있

는 각각의 홀수 소수 p에 대하여 반복된다. (p=2와 소수 멱승의 경우는 비슷한 방법으로

다룰 수 있다.) sieving 이후에 0 근처의 값을 갖는 배열원소 Q[x]는 대부분 p t-smooth로

보여진다. 그리고, 이것은 q(x)를 인수분해 함으로써 검증될 수 있다.

Quadratic sieve의 수행시간을 최적화하기 위하여 인수 기저의 크기가 현명하게 선택되어

져야 한다. t= L n [ 12 ,12 ]의 최적화된 선택은 n에 근접하는 smooth 정수의 분배에 관한

정보로부터 얻어진다. 이러한 선택을 통하여 quadratic sieve 알고리즘은 n의 인수의 크기

에 무관하게 L n [ 12 ,1]의 기대수행시간을 갖는다.

타원곡선 인수분해 알고리즘은 n이 같은 크기의 두 개의 소수의 곱인 특별한 경우에

quadratic sieve 인수분해 알고리즘과 같은 기대 수행시간을 갖는다. 그러나 그러한 수에

대해서는 quadratic sieve가 실제로 우수하다. 왜냐하면 그 알고리즘의 주요 단계가 single

precision 연산이어서, 타원곡선 알고리즘에서 요구되는 훨씬 더 많은 계산상으로 강력한

multiprecition 타원곡선 연산과는 비교된다.

사. Number field sieve factoring

몇 년 동안 L n [ 12 ,1]의 수행시간이 인수분해 알고리즘에 의해 얻어질 수 있는 가장 종은

값이라고 몇몇 사람들에 의해 믿어져왔다. 최근 들어 이 값은 number fie1d sieve의 발견

으로 깨어졌다. quadratic sieve와 비슷하게 number field sieve는 random square

method의 family에 속하는 알고리즘이다. 즉, x 2≡ y 2(modn)이고, x /≡± y(modn)를 만족하

는 정수 x와 y를 찾으려는 시도를 한다. 이 목적을 이루기 위해 2개의 인수 기저가 사용된

다. 하나는 어떤 bound 보다 작은 모든 소수로 구성되고 또 다른 하나는 적당히 선택된 대

수적 수체(algebraic number field)의 정수 환에서 어떤 bound보다 작은 norm을 갖는 모

든 prime ideal로 구성된다. 구체적인 number fie1d sieve의 알고리즘은 매우 복잡하므로

생략한다.

Page 48: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 48 -

Number field sieve 알고리즘의 특별한 변형(the special number field sieve)은 작은 r과

| s |일 때 n= r e-s 형태를 갖는 정수에 적용되고, c=(32/9)1/3≈1.526일 때, L n [ 13 ,c]의

기대 수행시간을 갖는다. Number field sieve 알고리즘의 일반적인 변형(때때로 genera1

number field sieve 라고 부름)은 모든 정수에 적용되고, c=(64/9)1/3≈1.923일 때,

L n [ 13 ,c]의 기대 수행시간을 갖는다. 이것은 인수분해를 위하여 알려진 가장 빠른 알고리

즘이다. number fie1d sieve의 수행속도가 quadratic sieve의 것보다 빠른 직접적인 이유

는 전자의 candidate smooth number가 후자의 것보다 훨씬 작기 때문이다.

General number field sieve방식은 150 자리수 보다 작은 정수를 인수분해하기 위해서는

quadratic sieve 방식보다 늦을 것이라고 믿어지고 있다. 그러나 최근 실험을 통해 general

number fie1d sieve 방식이 115 자리 범위의 수들에 대해서 quadratic sieve 방식보다 결

과적으로 빠르다는 것을 보였다. 이것은 quadratic sieve와 general number field sieve

의 효율성 사이의 교차점은 110-120 자리수가 될 것이다. 이러한 이유로 general number

field sieve 방식은 모든 일반적인 목적의 인수분해 알고리즘 중 현재 가장 종은 것으로 판

단되고 있다.

Page 49: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 49 -

4. RSA 공개키 암호시스템 및 이에 대한 공격법

이제, 인수분해 문제에 기반한 대표적인 공개키 암호시스템인 RSA 암호시스템에 대하여 알

아보자.

정수 n은 서로 다른 두 소수 p와 q의 곱이다. 그리고, P = C = Z n이고, 키는 n,p,q,e,d 이

다. 여기서, e와 d는 Z n의 원소로서, ed≡1 modΦ(n)을 만족한다. 그리고 암호와 함수

e k:Z*n→Z

*n와 복호화 함수 d k:Z

*n→Z

*n은 다음과 같이 정의한다.

ek(x)=xemodn, dk(x)=xdmodn.

키 가운데, n과 e는 공개키이고, p,q,d는 비 키이다. 그러면, e k:Z*n→Z

*n와 d k:Z

*n→Z

*n

가 서로 역함수 관계인지 살펴보자. ed=1modΦ(n)이므로, ed=tΦ(n)+1을 만족한다. 여기서,

t≥1이다. 그리고, Z *n의 임의의 원소 x에 대해, 다음 식이 성립한다.

그리고 Zn-Z*n의 임의의 원소 y에 대해서도 ( y e)

d≡ymodn이 성립함을 알 수 있다.

RSA의 안정성은 암호와 함수 e k(x)= x emodn이 일 방향(one-way) 함수일 것이라는 가정

에 기반을 둔다. 따라서, Oscar가 암호문을 복호화 하는 것이 계산적으로 불가능해야 한다.

그리고, Bob이 복호화 할 때 쓰이는 trapdoor는 북호화 키 d이다. Bob은 n=pq 라는 사실

을 알기 때문에 Φ(n)=(p-1)(q-1)을 계산할 수 있고, Extended Euclidean Algorithm을 이

용해 복호화 키인 d를 계산할 수 있다.

다음으로 RSA 암호 시스템에 대한 공격법에 대해 알아본다.

Page 50: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 50 -

가. Elementary attacks exploiting misuse of RSA

1) Common Modulus attack

RSA에서 사용자 개개인에게 서로 다른 법 N(=pq)을 생성해야 한다. 그렇지 않은 경우, 즉

모든 사용자가 똑같은 N(=pq)을 사용한다면 다음과 같은 공격을 받을 수가 있다. 편의상,

사용자 i에게 신뢰기관이 공개키 <ei,N>와 비 키 <di,N>를 제공했다고 하자. 그렇다면

A1ice에계 전달된 암호문 C= Me amodN은 Bob이 복호화 할 수 없어야 한다. 하지만, Bob

은 자신의 키 e b와 d b를 이용해 N(=pq)를 소인수 분해할 수 뿐 아니라 Alice의 비 키

d a를 공개키로부터 계산해낼 수 있다.

2) Blinding.

<N,d>를 Bob의 비 키라 하고, <N,e>를 대응하는 공개키라 하자. 만약 Oscar가 평문 M

(∈ Z*n)에 대해 Bob의 서명을 원한다 하자. 그러한 경우, Oscar는 다음과 같은 과정을 시

도해 볼 것이다. 우선 임의로 Z *n의 원소 r을 택해서 M'= r eM modN를 계산한다. 그리고,

Bob에게 random 평문 M'에 서명을 요구한다. 그리고 Bob은 아무런 문제없어 보이는 M'에

기꺼이 서명할 것이다. 서명은 당연히 S'=(M)d modN이다. 이 서명 S'을 이용해 0scar는

S= S'r

modN을 계산한다. 그러면 S는 원래의 평문 M에 대안 서명이 된다. 왜냐하면,

Se=(S')e/re=(m')ed/re≡M'/re=M modN 이 성립하기 때문이다. 하지만, 이 공격법은 그리 심

각한 것이 아니다. 대부분의 서명은 비 키로 서명하기 이전에 해쉬 함수를 사용하기 때문

에 비록, blinding을 RSA의 공격법으로 소개했지만, 사실은 anonymous 전자화폐의 구현에

필요한 유용한 성질이다.

Page 51: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 51 -

나. 1ow private exponent attack

이제, 비 키 d를 계산할 수 있는 어떤 알고리즘이 n을 인수 분해하는 확률론적 알고리즘의

한 서브루틴(오라클)으로 사용될 수 있다는, 결과를 증명할 것이다. 그래서 우리는 d를 계산

하는 것이 n을 인수 분해하는 것만큼 어렵다는 것을 말할 수 있다. 그렇다고 이것이 d를 계

산하지 않고 그 암호 시스템을 깨는 확률을 배제하는 건 아니다. 이런 결과가 이론적으로

흥미로운 것 이상임에 주목하라. 그것은, 만약 d가 누설된다면, n 또한 그렇다

(compromise)는 것을 말해 준다. 만약 이것이 발생한다면, Bob은 새로운 비 키 d를 선택

하는 것으로 충분치가 않다. 따라서 그는 새로운 법 n을 선택해야만 한다. 우리가 설명하려

는 알고리즘은 라스베가스형(Las Vegas type)의 확률적 알고리즘이다.

정의 2.1.12 ε이 0과 1사이의 실수라 하자. 라스베가스 알고리즘은 임의의 문제 I 에 대해,

ε확률로 답을 주는데 실패할 수도 있는 알고리즘이다. 즉, 이것은 'no answer'의 결과로 끝

날 수도 있다. 그러나, 만약 대답을 준다면, 그 대답은 참임에 틀림 없다.

라스베가스 알고리즘은 대답을 주지 않을 수도 있지만, 그것이 준 대답은 모두 참이다. 대

조적으로 몬테 카를로 알고리즘은 언제나 대답을 주지만, 그 대답이 거짓일 수도 있다. 만

약 우리가 한 문제를 푸는데 라스베가스 알고리즘은 쓴다면, 우리는 그것이 대답을 찾을 때

까지 계속해서 그 알고리즘을 계속 수행하면 된다. 연속해서 m번 'no answer'를 출력할 확

률은 ε m이다. 따라서, 이 알고리즘이 대답을 얻기 위해 실행해야만 하는 평균횟수는 1/1-

ε이다. A가 e와 n으로부터 비 키 d를 계산하는 hypothetical 알고리즘이라 가정하자. 우리

는 A를 하나의 오라클로 사용하는 라스베가스 알고리즘을 기술할 것이다. 이 알고리즘은

적어도 1/2이상의 확률로 n을 인수분해 할 것이다. 그러므로, 만약 그 알고리즘이 m번 실

행되면, n은 적어도 1-1/2m 확률로 인수 분해될 것이다. 그 알고리즘은 n이 서로 다른 두

개의 홀수인 소수들의 곱으로 되어 있는 n=pq일 때 법 n에 대한 1의 제곱근에 관한 몇 가

지 사실들에 기초를 두고 있다. 합동식 x2≡1 mod p는 두 개의 근 x=±1 mod p을 갖는

다. 유사하게, x 2≡1 mod q도 두 개의 근 x=±1 mod q을 갖는다. 그러면, x 2≡1 mod n은

두 개의 합동식 x 2≡1 mod p, x 2≡1 mod q와 상동이기 때문에, x는 x=±1 mod p,

x=±1 mod q를 만족해야 한다. 그러므로, 법 n에 대한 1의 제곱근들이 4개 존재하고, 그것

들은 Chinese Reminder Theorem을 이용하면 찾을 수 있다. 이 근들 중에 2개가 x=±1

mod n인데, 이것들은 법 n에 대한 1의 자명한 제곱근이라 한다. 다른 제곱근들을 자명하지

않은 제곱근이라 부르고, 이것들은 법 n에 대해 서로 음의 관계에 있다.

Page 52: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 52 -

x를 법 n에 대한 1의 자명하지 않은 제곱근이라 가정하자. 그러면, n|(x-1)(x+1)이지만, n

은 오른쪽의 어떤 인자도 나누지 않는다. 그러므로, gcd(x+1, n)=p 또는 q이다. 또한 유사

하게, gcd(x-1, n)=p 또는 q이다. 물론, 최대공약수는 (n의 인수분해를 모르고도) 유클리드

알고리즘을 이용하여 계산할 수 있다. 그러므로, 법 n에 대한 1의 자명하지 않은 제곱근을

알면, 단지 다항식의 계산량으로 n을 인수 분해할 수 있다.

[비 키 d를 이용한 소인수 분해 알고리즘]

A. 1이상 n-1이하에서 난수 w를 택한다.

B. x=gcd(w,n) 계산한다.

C. 만약, 1<x<n이면, 성공, 즉, x=p 또는 q이다.

D. a=A(b) 계산한다.

E. ab-1=2sr로 표현. 여기서, r은 홀수이다.

F. v=wr modn 계산한다.

G. 만약, v≡1 modn이면, 실패이다.

Page 53: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 53 -

H. v≠1인 동안 다음을 계속 실행한다.

H.1. v0 = v

H.2. v=v2 mod n

I. 만약, v0≡-1 mod n이면, 실패이다.

그렇지 않으면, x=gcd(v0+1,n) 계산한다.

위 알고리즘에서, 우리는 서브루틴으로서 hypothetical 알고리즘 A를 사용하여, 법 n에 대

한 1의 자명하지 않은 제곱근을 찾음으로써 n의 인수분해를 시도하는 알고리즘을 제시한다.

여기서, A는 암호지수(공개키) e에 대응되는 복호화 지수(비 키) d를 계산한다. 먼저 이 알

고리즘을 분석해 보자. 첫째, 만약 우리가 아주 운이 좋아서 w를 p 또는 q의 배수를 뽑는

다면, 우리는 즉시 n을 인수 분해할 수 있음을 살펴보자. 이것은 단계 2에서 알게 된다. 만

약 w가 n과 서로 소이면, 우리는 어떤 t에 대하여 w 2'r≡1 modn이 성립될 때까지 연속적으

로 제곱하여, wr. w 2r, w 4r,...,을 계산한다. αb-1= 2 sr≡0 modΦ(n) 이므로, 우리는 w 2'r≡

1 modn임을 안다. 그러므로, while 루프가 많아야 s회 다음에 끝난다. while 루프의 마지

막에, 우리는 v02 ≡1 modn이지만, v 0≠1 mod인 v 0를 구했다. 만약 v 0=-1이면, 이 알고

리즘은 실패한다(fail). 그렇지 않으면, v 0는 법 n에 대한 1의 자명하지 않은 근이고 우리는

마지막 단계에서 n을 인수 분해할 수 있다. 이제 우리에게 직면한 주요 작업은, 적어도 1/2

의 확률로 이 알고리즘이 성공한다는 것을 보이는 것이다. 이 알고리즘이 n을 인수 분해하

는데 실패할 수 있는 경우는 2가지가 있다.

Page 54: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 54 -

우리는 s+1개의 합동식 을 고려해보자. 만약 난수 w가 s+1개의 합동식들 중 적어도 하나

의 합동식의 해라면, 그것은 "나쁜" 선택이고 그 알고리즘은 실패한다. 그래서 우리는 이 각

각의 합동식의 해들의 수를 계산해보자. 첫째, 합동식 w r≡1 mod n을 고려해보자. 이 합동

식의 근을 분석하는 방법으로, n=pq이므로, 법 p와 법 q에 관한 두 식의 해들을 분리해서

고려한 뒤, Chinese Remainder Theorem을 이용한다. 우선, w r≡1 modp를 생각해 보자.

p가 소수이므로, Z *p는 순환군 이다. g가법 p에 대해 원시근이라 하자. 그러면, w=gu가 성

립한다. 여기서,0≤u≤p-2이다. 따라서, gur≡1 modp이고, p-1|ur이다. 편의상, p-1=2ip1라

하자. 여기서, p1은 홀수이다. 마찬가지로, q-1=2iq1라 하자. 여기서, q1도 홀수이다. Φ

(n)=(p-1)(q-1)|(ab-1)=2sr이므로, 2i+jp1q1|2sr이다. 따라서, i+j≤s이고 p1q1|r이다. 그리

고, p-1|ur은 2ip1|ur이 되고, p1|r이고 r이 홀수란 조건은 2i|u와 필요충분조건이 된다. 그

러므로, u=k2i이고, 여기서,0≤k≤p1-1, 합동식 wr≡1 modp의 해의 수는 p1이다. 똑같은 방

법으로, 합동식 wr≡1 modq는 정확히 q1개의 해를 가진다. 따라서, 우리는 CRT를 이용하

여 법 n의 근을 구할 수 있고, 근의 수는 p1q1이다. 다음 단계는, 고정된 값 t(여기서, 0≤t≤

s-1)에 대해 합동식 w 2 t r≡-l modn을 고려하자. 이 식은 앞에서 언급한 바와 같이, 두 식

w 2tr≡-l modp, w 2

tr≡-l modq와 동치이다. 먼저, w 2

tr≡-l modp를 살펴보자. 위에서

와 같이 w=gu라 쓰면, g u2 t r≡-l mod p를 얻는다. gp-12 ≡-l modp 로부터, u2tr≡ p-1

2

mod p-1이 성립한다. 그리고, p-1∣u2tr- p-12

(즉, 2(p-1)|u2t+1r-(p-1))이다. p-1=2ip1

이므로, 2i+1p1|u2t+1r-2ip1이다. 양변에, p1으로 나누면, 2i+1| u2 t+1rp 1

-2i가 된다. 이제, 만

약 t≥i이면 근이 존재할 수가 없다. 반대로, 만약 t≤i-1이면, u가 근일 필요충분조건은 u가

2i-t-1의 홀수 배수이다라는 것이다. rp 1

은 홀수임을 주목하라. 그래서 이 경우의 근의 개

수는 p-1

2 i-t-1×12= 2 t p 1이다. 유사한 이유로, 합동식 w 2 tr≡-1 modq는 t≥i인 경우, 근을

가지지 않고 t≤j-1이면 2tq1개의 근을 가진다. 따라서, CRT을 이용하여 우리는 w 2 t r≡-1

modn의 근의 개수가

Page 55: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 55 -

0, 만약 t≥min{i,j}

22tp1q1 만약 t≤min{i,j}-1

됨을 알 수 있다. 이제 t는 0과 s-1 사이를 움직일 수 있다. 일반성을 잃지 않고, i≤j라고

가정하자. t≥i이면 근의 개수는 0개이다. w의 "나쁜" 선택들의 총 개수는, 많아야

p1q1+p1q1(1+22+24+…+22i-2)=p1q1(1+ 22i-13

=p1q1(23+22i

3)이다. p-1=2jp1임을 재고해

보면 j≥i≥1이기 때문에 p1q1≤n/4이다. 또한, 22ip1q1≤2i+jp1q1=(p-1)(q-1)<n이다. 그러므로,

p1q1(23+22i

3)<n/6+n/3=n/2을 얻을 수 있다. 많아야 w에 대한 n-1

2개의 선택이 “나쁜”

선택이므로, 적어도 n-12

개의 선택들은 "좋은" 선택들이다. 그러므로 이 알고리즘의 성공

확률은 적어도 12

이다.

다. Low Public Exponent

1) Coppersmith's Theorem

Page 56: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 56 -

암호화 또는 서명 확인 시간을 줄이기 위해, 통상적으로 공개키 e를 작은 것으로 택한다.

택할 수 있는 가장 작은 e값은 3이지만 불확실한 공격법에 대응하기 위해 e=2l6=65537이

권장되고 있다. Φ(n)이하의 난수 e가 사용되는 경우 서명확인에 대략 1000번의 곱셈이 필

요하지만, 216+1이 e로 사용되는 경우 17번의 곱셈만이 연산된다. 작은 e를 이용한 공격법

중 가장 강력한 공격법은 Coppersmith의 정리에 기반한 것이다. Copper smith의 정리는

많은 곳에서 응용되고 있지만, 여기서는 몇 가지 응용만 살펴본다. 정리의 증명은 다음과

같이 LLL 알고리즘2)을 이용한다.

정리 2.1.13. (Coppersmith) N을 정수라 하고, f를 차수 d인 monic 다항식이라 하고 음 아

닌 실수 ε에 대해 X= N1d-ε

이라 하자. N과 f가 주어진 경우, Oscar는 절대값이 N보다 작

은 f=0 modN 의 모든 근을 구할 수 있다. 수행시간은 차수 O(w)인 격자(lattice)상에서

LLL알고리즘을 수행하는 시간에 지배된다.

이 정리는 X=N(1/d)-ε보다 작은 f=0 modN 의 모든 근을 찾는 효율적인 알고리즘을 제공한

다. X가 작아질수록 알고리즘의 수행시간은 줄어든다. 이 정리가 중요한 이유는 합성수 N

에 대해서도 f=0 modN 의 근들을 찾을 수 있다. 만약, 소수 p에 대해서만 근을 찾을 수

있다면, 위의 정리를 이용할 이유가 없다. 왜냐하면, 근을 찾을 수 있는 훨씬 좋은 알고리즘

이 존재하기 때문이다. 여기서 Coppersmith 정리의 주된 아이디어를 살펴본다. How

grave-Graham이 제안한 단순화된 접근법으로 살펴본다. 다항식 h(x)=∑aixi∈Z[x]에 대해

∥h∥=∑i|ai|

2 로 정의한다. 정리의 증명은 다음의 보조정리에 의해 가능해진다.

2) LLL 알고리즘은 2장 3절에서 소개되어진다.

Page 57: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 57 -

보조 정리 2.1.14. h(x)를 차수 d인 다항식이라고 하고, X를 양의 정수라 하자 그리고,

∥h(x)∥< N'd

을 가정하자. 만약, 절대값이 X보다 작은 x0에 대해 h(x0)=0 modN이면,

h(x0)=0이 성립한다.

[ 정리 2.1.13의 증명 ] 다음의 부등식은 Schwartz 부등식에 의해 성립한다.

|h(x0)|=|∑aiX0i|=|∑aiX

i(x 0X

)i|≤∑|aiXi(x 0X

)i|≤∑|aiXi|≤ d∥h(xX)∥<N h(x0)=0

modN 이라는 가정과 위의 부동식으로부터 h(x0)=0 임을 얻을 수 있다. 위의 보조 정리로

부터 알 수 있는 것은, 만약 h의 norm이 작은 경우, h=0 modN 의 모든 작은 근들은 h의

근이라는 것이다. 따라서, f(x) modN의 작은 근 x0를 찾기 위해 norm이 작으면서 f modN

과 공통근 을 갖는 다른 다항식 h∈Z[x]를 찾는 것이다. h를 찾기 위해, h=gf를 만족하는

또 다른 다항식 g를 찾아야 할지도 모른다. 결국, 이 문제는 다항식 f. xf,…, x rf 의 정수

선형결합들 가운데 norm이 충분히 작은 자명하지 않은 선형결합을 찾는 것과 같다. 하지

만, 불행히도 norm이 충분히 작은 자명하지 않은 선형 결합은 없다. 그래서, Coppersmith

는 이 문제를 해결하기 위해 다음과 같은 trick을 생각해 냈다. 즉, 만약 f(x0)=0 modN 이

면, 임의의 양의 정수 k에 대해 f(x0)k=0 modNk가 성립한다. 일반적으로, 다음과 같이, 미

리 정의된 m에 대해 다항식 gu,v(x)를 다음과 같이 정의한다. gu,v(x)=Nm-vxuf(x)v. 그러면,

음 아닌 u, v(0≤v≤m)에 대해 x0는 gu,v(x) modNm의 근이 된다. 결국 보조정리를 이용하기

위해, 우리는 작은 norm을 갖는 gu,v(x)들의 정수계수 선형결합 h(x)를 찾아야 한다. 다행히

도, norm에 대한 bound가 N이 아닌 Nm이기 때문에, 충분히 큰 m에 대해, 우리는 항상 요

구조건을 만족하는 h(x)를 찾을 수 있다. 다음으로 해결해야 되는 것이 'h(x)를 어떻게 효율

적으로 찾을 수 있는가' 이다.

Page 58: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 58 -

LLL 알고리즘을 이용하면 Coppersmith 정리를 증명할 수 있다. LLL 알고리즘의 결과로

찾은 벡터가 보조정리의 부등식을 만족하기 위해서, 다음 부등식을 만족해야 한다. 여기서,

w=d(m+1)는 L의 차수이다.

m을 충분히 크게 잡으면 위의 부등식은 실제로 성립한다. 즉, 만약 X=N(1/d)-ε인 경우,

m=O(k/d)로 택하면 된다. 여기서, k=min( 1ε,logN)이다. 끝으로, Coppersmith 정리가 2

변수 혹은 다 변수 다항식에 대해서도 결과가 성립하는지는 의문이다. 즉, 만약 |x0y0|가

적당한 크기인 f(x,y)∈ZN[x,y] 의 근 (x0,y0)이 존재하는 경우, Oscar가 근 (x0,y0)를 효율

적으로 찾을 수 있을까? 비록, 이 변수 다항식 에 대해서도 위에서 알아 본 결과가 똑 같이

적용될 것 같지만, 이 문제는 아직 증명되지 않은 Open problem이다.

2) Hastad's Broadcast Attack

Coppersmith 정리를 이용한 첫 번째 응용으로써, Hastad가 제안했던 알고리즘을 개선한

내용을 알아본다. Bob은 명문 M을 암호와해서 P1,P2,…,Pk 라고 하는 여러 group에게 동시

에 전송하려 한다고 가정하자. 각 group은 각기 RSA 공개키 <Ni,ei>를 갖고 있다. 그리고

평문M이 모든 Ni보다 작다고 하자. 이런 상황에서 Oscar는 Bob이 모르게 이들의 통신을

도청할 수 있고, k개의 암호문을 가로 챌 수 있다. 편의상, 모든 공개키 ei가 3이라고 하자.

이 경우, k≥3이면, 0scar는 암호문으로부터 평문 M을 복호화 할 수 있다. 즉, Oscar가 세

개의 암호문 C1,C2,C3를 얻었다고 하자. 여기서, C1=M3modN1, C2=M3modN2, C3=M3modN3

이다. 그리고, Oscar가 Ni를 소인수 분해하지 못하게 하기 위해, 서로 다른 i, j 에 대해

gcd(Ni,Nj)=1라고 가정할 수 있다. 그러면, CRT을 이용해, C'=M3modN1N2N3을 만족하는

Z N1N2N3의 원소 C'를 구할 수 있다. 가정에서 M이 모든 Ni보다 작다고 했기 때문에 M3<

N1N2N3이고 따라서 C'=M3이 성립한다. 따라서, Oscar는 C'의 삼제곱근을 실수에서 연산하

면, M을 얻을 수 있다. 일반적으로, 모든 공개키(public exponent) ei가 같다고 하고 "k≥ei"

이기만 하면 Oscar는 평문 M을 복호화할 수 있다. 이 공격법은 공개키 e가 작은 경우에

한한다. 하지만, 이 공격법에 미미하게 대응해선 안 된다. 예를 들어, Bob이 평문 M을 암호

화하기 전에, "덧붙이기" 과정을 취할 수 있다. 즉, |M|=m 이라 하면, Bob은 Pi에게

Mi=i2m+M을 암호화해서 전달한다. 그러면, Oscar는 서로 다른 평문에 대안 암호문을 얻기

때문에, 위에서 살펴본 공격법을 취할 수가 없을 것 같다. 하지만, 위와 같은 선형 덧붙이기

과정이 안전하지 못함을 Hastad는 보였다. 더욱이, 그는 덧붙이기 과정으로서, 평문을 입력

으로 하는 고정된 다항식 연산을 취하는 것도 위의 공격방법을 막을 수 없음을 증명했다.

다음은 Hastad의 결과보다 강한 내용(stronger version)이다.

Page 59: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 59 -

정리 2.1.15 (Hastad) N1,N2,…,Nk 를 쌍끼리 서로소인 정수라 하고, Nmin=miniNi 라 하자.

그리고, 각 i에 대해, gi를 ZNi[x]의 원소이며 최고 차수가 d라 하자, 만약 다음을 만족하는

유일한 M(<Nmin)이 존재한다고 하자.

모든 i(1≤i≤k)에 대해, gi(M)=0 modNi

이 상황에서, k>d 이면, Oscar는 M을 효율적으로 찾을 수 있다.

Page 60: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 60 -

Hastad가 원래 제안한 알고리즘은 위의 정리보다는 약하다. 즉, d개의 다항식이 아닌 훨씬

많은 d(d+1)2

개의 다항식을 필요로 한다. 그리고, Hastad의 증명은 Coppersmith 정리의

증명과 비슷하다. 하지만, Hastad는 격자에서 g의 멱승을 사용하지 않을뿐더러 더 작은 상

한 값을 얻었다.

3) Franklin-Reiter Related Message Attack

Frank1in과 Reiter는, Bob이 Alice에게 서로 연관성이 있는 암호문을 같은 RSA 법 N을

이용해 생성했을 경우에 대해 기발한 공격법을 제안했다. <N, e>를 Alice의 공개키라 하자.

서로 다른 명문 M1과 M2는 일반적으로 알려진 다항식 f∈ZN[x] 에 대해 M1=f(M2)를 만족

한다고 하자. A1ice에게 M1과 M2를 보내기 위해 Bob은 naive하게 암호화해서 대응하는

C1과 C2를 보낼 수도 있다. 우리가 소개할 공격법은 모든 작은 e에 대해 성립하지만, 증명

을 간단히 하기 위해 e=3인 경우에 대해 살펴본다.

보조 정리 2.1.16. e=3이라 하고,<N, e>를 공개키라고 하자. Z *N의 서로 다른 두 원소

M1, M2는 일차식 f=ax+b∈ZN[x](여기서, b≠0)에 대해, M1=f(M2)를 만족한다. 그러면,

N,e,C1,C2,f로부터 Oscar는 M1, M2를 O((logN)2)시간에 얻을 수 있다.

Page 61: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 61 -

[증명] 본 증명을 일반화하기 위해, e를 3이라는 값 대신 문자 그대로 사용하겠다. C1= M e1

modN을 만족하므로, M2는 다항식 g1(x)=f(x)e-C1∈ZN[x]의 근이 된다. 마찬가지로, M2는

g2(x)=xe-C2∈ZN[x] 의 근이다. 그러면, 일차식 x-M2는 g1과 g2를 나눌 수 있고, 결국

Oscar는 Euclidean 알고리즘을 이용해 g1과 g2의 최대 공약수를 구할 수 있다. 만약, 최대

공약수가 1차식이면 M2를 찾을 수 있다. 더욱이, 최대공약수는 e와 logN에 관한 이차식 시

간 내에 계산할 수 있다. 이제 e=3 인 경우, 최대공약수는 선형임을 보인다. 다항식 x3-C2

는 법 p와 q에 대해 1차식과 2차식의 곱으로 인수분해 된다. 그리고 g2는 g1을 나누지 못

하기 때문에 최대 공약수는 1차 식일 수밖에 없다. e가 4이상인 대부분의 경우, 최대 공약

수는 1차식이다. 하지만, 아주 드문 경우로써 이차식이상의 최대공약수를 얻는 경우도 있다.

이 경우, 공격은 성공하지 못한다.

e가 4이상인 경우, 이 공격법은 e에 관한 이차식 시간이 걸린다. 결과적으로 공개키 e가 작

은 경우에만 한해서 이 공격법을 시도할 수 있다. e가 큰 경우, 최대 공약수를 계산하기란

아주 힘들다. 따라서, 임의의 e에 대해 그런 공격을 고안해 내는 것도 재미있는 문제이다.

특히, 위의 정리 증명 과정에 나타난 g1과 g2의 최대 공약수를 loge에 관한 다항식 시간 내

에 계산할 수 있겠는가하는 문제이다. ■

4) Coppersmith's Short pad attack

Franklin-Reiter의 공격 법은 어딘가 인위적으로 보인다. 즉, 왜 Bob은 서로 연관 있는 평

문을 암호화해서 Alice에게 보냈는가 하는 것이다. Coppersmith는 이 공격법을 더 강화하

고 padding에 관한 중요한 결과를 증명했다. naive random padding 알고리즘은 평문 M에

몇 개의 random 비트를 추가한다. 여기서 소개할 공격은 그런 간단한 덧붙이기의 위험성

을 지적한다. Bob이 Alice에게 평문 M에 적당한 덧붙이기 과정을 거친 암호문을 전한다고

하자.

Page 62: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 62 -

그리고 Oscar는 암호문을 가로채서 Alice에게 전송되는 암호문을 막는다. 이 경우, Bob은

Alice의 회신이 없음을 알고 평문 M을 다시 Alice에게 보낸다. 여기서 물론 Bob은 평문에

난수를 덧붙이고 그 결과인 암호문을 보낸다. 따라서, Oscar는 똑같은 평문 M에 대해 서로

다른 난수를 덧붙여 생성한 두 개의 암호문을 얻을 수 있다. 다음의 정리는, Oscar가 어떤

난수가 덧붙여졌는지 모르더라도 명문을 복호화할 수 있음을 설명한다.

정리2.1.17 <N,e>를 RSA 공개키라하고, N은 n비트 길이라 하자. 그리고 m=[n/e2], M은

길이가 최대 n-m 비트인 평문이라 하자. M1=2m+r1, M2=2m+r2라 정의한다. 여기서, r1과

r2는 서로 다른 정수이고, 0≤r1,r2<2m이다. 만약, <N, e>가 주어지고 M1,M2의 대응하는 암

호문 C1,C2 가 주어지면(물론, r1,r2는 주어지지 않는다), Oscar는 평문 M을 효율적으로 계

산할 수 있다.

[증명] g1(x,y)=xe-C1, g2(x,y)=(x+y)e-C2라 정의한다. 만약 y=r2-r1이면, g1과 g2는 M1이

라는 공통근을 갖는다. 즉, Λ=r2-r1은 h(y)=resx(g1,g2)∈ZN[y]의 근이다. 더욱이, |Λ|<2m

< N 1/e 2이 성립한다. 따라서, Λ는 h modN의 근이 되고, Coppersmith의 정리에 의해 Λ값

을 찾을 수도 있다. 값을 찾은 경우, Franklin-Reiter의 공격법으로 M2를 복호화할 수 있

고, 결국 M을 얻을 수 있다. ■

e=3이라 하면, 덧붙여지는 난수의 길이가 명문길이의 1/9보다 작은 경우에 한해, 이 공격법

이 유효하다. 이것은 아주 중요한 결과이다. 즉, e=65537이 권장되기 때문에 표준 법 크기

에 대해서 이 공격법은 의미가 없다.

Page 63: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 63 -

5) Partial Key Exposure Attack

<N, d>를 RSA 비 키라 하자 그리고 Oscar는 몇몇 방법을 통해 비 키 d의 1/4정도를 밝

혀낼 수 있다고 하자. 그렇다면, Oscar는 나머지 3/4정도의 비 키를 복원할 수 있을까? 공

개키의 크기가 작은 경우, 이것은 가능하다. 최근, Boneh, Durfee,그리고 Frankel에 의해,

e< N인 경우에 한해 비 키 d를 복원했다. 따라서, RSA 비 키 전체를 보호해야 한다.

정리 2.1.18. <N, d>를 RSA 비 키라 하고, N을 n 비트 길이라 하자. 그리고, d의 최상위

[n/4]비트가 주어지는 경우, elog2e에 관한 1차식 시간 내에 d의 모든 비트를 복원할 수 있

다.

정리 2.1.l9. (Coppersmith) N은 n 비트 크기이며, RSA 법이라 하자. p의 최하위 n/4 비트

또는 p의 최상위 n/4 비트가 주어지면, N을 효과적으로 소인수 분해할 수 있다.

정리 2.1.18은 partial key- exposure attack으로 알려져 있다. e< N인 경우, e가 비록

큰 값이라 하더라도 이 공격과 비슷한 방법이 존재한다. 하지만 기술적으로 좀더 복잡하다.

E1-Gamal 공개키 암호시스템과 같은 이산 대수에 기초한 암호 시스템은 이 공격에 취약하

지 않은 것 같다. 왜냐하면, gx modp와 x의 일정한 부분이 주어지는 경우라도, x의 나머지

부분을 계산할 수 있는 다항식 시간 알고리즘이 알려져 있지 않기 때문이다.

Page 64: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 64 -

공개키 e의 크기가 작은 경우, RSA 시스템은 d의 최상위 비트의 1/2을 누설할 수 있음을

보인다. 우선, ed-k(N-p-q+1)=1을 생각해본다(여기서, 0<k≤e). k가 주어지면, Oscar는

d=[(kN+1)/e] 을 쉽게 계산할 수 있다. 그리고, | d-d|≤k(p+q)/e ≤3k N/e<3 N이다.

따라서, d는 d의 훌륭한 근사값이 된다. 그리고, 위의 부등식에서 보다시피, 대부분의 d에

대해, d의 최상위 비트의 1/2 정도는 d의 최상위 비트의 그것과 값이 같음을 알 수 있다.

그리고, k 값은 e개가 가능하므로, Oscar는 크기 e인 작은 집합을 만들 수 있다. 물론 이

집합이 원소 가운데 하나는 d의 최상의 비트의 절반과 동일한 값을 갖는다. e=3인 경우, 항

상 k=2임을 보일 수 있고, d의 최상위 비트의 절반을 완전히 밝힐 수 있다.

라. Implementation attack

여기에서는 완전히 새로운 공격 유형들을 살펴본다. 즉, RSA 암수들의 기본 구조들에 대한

공격이 아니라, RSA의 실제 구현에 대한 공격들이다.

1) Timing attack

RSA 비 키를 저장하는 스마트 카드를 생각해보자. 이 카드는 tamper resistant이기 때문

에, Oscar는 내용물을 확인하거나 키를 알아낼 수가 없다. 하지만, Kocher는 스마트 카드

의 복호화 과정에 걸리는 시간을 측정하여, 비 키 d를 찾아내는 공격법을 제안했다. 반복

제곱 알고리즘(repeated squaring algorithm)을 이용한 RSA의 간단한 구현에 대한 이 공

격법을 어떻게 취하는지 살펴본다. 비 키 d를 다음과 같이 이진수로 표현한다.

d = dndn-1…d1d0.

Page 65: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 65 -

반복제곱 알고리즘을 기껏해야 2n번의 modular multiplication율 이용해 C=Md modN을 계

산한다. 이 공격법을 취하기 위해서 0scar는 스마트카드로 하여금 많은 수의 랜덤 평문

M1,M2,⋯,Mk(∈ Z *N)에 대해 서명토록 하고, Mi의 서명에 필요한 시간 Ti를 측정한다. 이

공격법은 최하위 비트로부터 한번에 비 키 d의 1 비트를 찾아낸다. 우선 d는 홀수임을 안

다. 따라서, d0=1 이다. 그리고, 두 번째 반복 단계에서, z=M2 modN 이고 C=M 이다. 만약

d1=1 이면, 스마트 카드는 Cz=M×M2 modN을 계산하고 그렇지 않으면 계산하지 않는다. ti

를 Mi× M 2i modN을 계산하는데 걸리는 시간이라고 하자.

Mi들이 서로 다르기 때문에 M1× M 2i modN을 계산하는데 걸리는 시간도 다르다. 즉 ti들은

서로 다르다. Kocher는 d1=1인 경우에 {ti}와 {Ti}는 상관관계가 있음을 알아냈다. 즉 임의

의 i에 대해, ti가 기대값보다 훨씬 큰 경우, Ti 또한 기대값보다 훨씬 크다. 반면, d1=0 인

경우, {ti}와 {Ti}는 서로 독립인 확률변수이다. 따라서, 상관관계를 이용해 Oscar는 d1이 0

인지 1인지를 결정할 수 있다. 이런 방법으로 d2,d3 등을 찾아낼 수 있다.

공개키 e가 작은 경우, Kocher의 방법으로 비 키 d의 전체 비트 중 1/4정도를 찾아낸 후

앞 절의 partial key exposure attack으로 전체 키를 구해낼 수 있다. 이 공격법을 피할 수

있는 방법에는 두 가지가 있다. 가장 간단한 것은, modular exponentiation의 수행시간이

모두 같도록 적당한 delay를 첨가하는 것이다. 두 번째 방법은 Rivest가 제안한 것으로,

blinding에 기초한 것이다. 명문 M을 복호화 해내기 이전에 난수 r(∈ Z*N)을 택하여

M'=Mre modN 을 계산한다. 그리고, M'에 d 제곱을 취한다. 즉 C‘=(M')d modN. 마지막으

로 스마트카드는 C=C’/r modN 을 계산한다. 이 공격법은 0scar가 알지 못하는 랜덤 평문

M'에 d 제곱을 취하므로 의미가 없다. 최근 Kocher는 power cryptananlysis라 불리는 공

격법을 제안했다. 이 공격법은, 스마트카드가 서명할 때 사용하는 전력양 측정을 이용한 것

이다. 즉, 곱셈 연산시 스마트카드는 평소보다 많은 전력을 소모한다. 따라서, 전력 소비 시

간을 측정하여, 주어진 시간에 한번 또는 두 번의 곱셈이 이루어졌는지를 알 수 있고 결국

d의 모든 비트를 구해낼 수 있다는 것이다.

Page 66: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 66 -

2) Random Faults

RSA 부호화와 서명을 구현할 때 법 N 계산을 빨리 하기 위해 Chinese Remainder

Theorem 을 사용한다. 즉, 법 N연산을 직접 하지 않고, Bob은 먼저 법 p와 q에 대해 서명

하고 결과를 Chinese Remainder Theorem으로 얻는다. 즉, Bob은 Cp= Md p modp, Cq=

Md q modq를 먼저 계산하고, C=T1Cp+T2Cq modN을 계산해 서명한다. 여기서, dp=d

mod p-1, dq=d modq-1. 그리고 T1= 0 modp, T1=1 modq이고, T2=0 modp, T2=1 modq

이다.

Boneh, DeMi11o, 그리고 Lipton은 Chinese Remainder Theorem에 내재된 위험성을 지

적했다. 만약, 서명을 생성하고 있는 와중에, Bob의 computer에 결함이 생겨서 한 가지 명

령 수행이 잘못 계산되었다고 하자. 이 경우 0scar는 Bob의 법 N을 쉽게 계산할 수 있다.

그 예로 A. K. Lenstra가 제안한 공격법을 소개해 보겠다. 만약, Bob이 서명을 하고 있는

동안 오류가 한 가지 생겼다고 하자. 그 결과, Cp 또는 Cq중 정확히 한 개가 잘못 계산 될

것이다. 편의상 Cq가 잘못 계산되어 C q가 되었다고 하자. 그러면, 서명은

C=T 1 Cp+T 2 Cq 로 될 것이다. 만약 Oscar가 C를 도청하면, C가 잘못된 서명이라는

것을 알 수 있다. 왜냐하면, C e≠M modN이기 때문이다. 그리고, C e=M modp가 성립

하므로, gcd(N, C e-M)으로부터 N의 약수를 구할 수 있다. 이 공격 방법이 성공하기 위해

서는, 우선 Oscar는 평문 M에 대해 완전히 알고 있어야 한다. 즉, Bob이 어떠한 예비 덧붙

이기 과정을 사용하지 않았다고 가정해야 한다. 즉, 이 공격방법을 막기 위해서는 서명하기

이전에 난수만 더해 주면 되겠다. 그렇지 않고, Bob이 서명을 보내기 이전에 서명을 한 번

확인해 보면 더 간단히 해결할 수도 있다. 이러한 확인 과정은, CRT를 이용해 고속연산을

하는 system에 더욱 중요하다. CRT를 이용하지 않은 system을 포함해 많은 system이

random fault를 이용한 공격에 취약하다. 하지만, 이러한 결과들을 너무 이론적인 것이다.

Page 67: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 67 -

5. Dickson 암호시스템과 LUC 암호시스템

RSA 공개키 암호시스템은 큰 정수를 소인수 분해하는 문제의 어려움에 안전도의 기반을

두고 있으며, 암ㆍ복호화 과정에서 지수 함수 fRSA : x→xe (modn)을 이용한다. 몇몇 암호학

자들은 RSA의 지수함수를 대신하여 trapdoor 일방향 함수의 성질을 만족하는 치환 다항식

(Permutation polynomial)을 이용한 RSA의 변형시스템을 개발하였다. 1981년에 Muller와

Nobauer는 매개변수 a=1 또는 a=-1인 경우의 Dickson 함수 fDIC : x→De(x,a) (modn)을

이용한 Dickson 공개키 암호시스템을 제안하였다. 이 Dickson 시스템의 안전도는 RSA 시

스템과 마찬가지로 소인수분해문제를 기반으로 한다. 1993년에 Smith와 Lennon이 개발한

LUC 암호시스템 역시 소인수분해문제에 기반을 두고 있으며, 매개변수 c=1인 Lucas 수열

로 정의된 Lucas 감수 fLUC : x→Ve(x,1)(modn)을 이용하여 암ㆍ복호화를 행한다. 여기서는

이와 같은 공개키 암호시스템 중 Dickson 공개키 암호시스템에 대해서 소개한다. 또한, 이

시스템과 RSA 공개키 암호시스템, LUC 암호시스템과의 비교ㆍ분석을 통하여 Dickson 다

항식을 이용한 RSA 유형 공개키 암호시스템의 일반화를 제시한다.

Page 68: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 68 -

가. Dickson 공개키 암호시스템 및 이에 대한 공격법

Dickson 공개키 암호시스템을 소개하는데 이용할 Dickson 다항식의 정의와 몇 가지 기본

성질을 알아보자

정의2.1.20 R을 단위원을 가진 가환환이라 하자. 매개변수 a∈R이고 차수가 n인 제 1의3)

Dickson 다항식 Dn(x,a)를 다음과 같이 정의한다.

여기서 [n/2]은 n2

과 같거나 작은 가장 큰 정수이다.

n=0 인 경우에 D0(x, a)=2라 하면, n=1 인 경우에 D1(x, a)=x이다. 특히, a=0 이면

Dn(x,a)=xn이 된다. 즉, Dickson 다항식은 지수 함수의 일반형이다. 또한, 임의의 양의 차수

n과 임의의 정수 a에 대해서 Dn(x, a)의 계수는 항상 정수임을 알 수 있다. u를 u+au=x

또는 u2-xu+a=0를 만족하는 R의 확장환(extension ring) R'의 한 단원(unit)이라 하자.

Waring's formula를 이용하여4) 다음과 같이 Dickson 다항식을 정의할 수 있다.

위의 식을 이용하면 Dn(x, a)가 다음과 같은 2차 점화 관계 (the second order

recurrence relations)를 만족함을 보일 수 있다. n≥0에 대해 초기 값은 D0(x, a)=2, D1(x,

a)=x 이고

3) 제 2의 Dickson 다항식 EN (x.a)= ∑[n/2]

i=0(n-ii )(-a)

i x n-2i 로 정의되어진다. (n=0 인 경우에

E0(x,a)=1 로 정의함) 여기서는 제 1의 Dickson 다항식 Dn(x,a)만으로 제한한다.

4) u1, u2는 부정원이고. n은 자연수라 하자. Waring's formula에 의해 다음 식을 얻는다.

Page 69: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 69 -

위의 점화식을 이용하여 Dickson 다항식을 쉽게 생성할 수 있으며, 다음과 같은 수식들을

얻을 수 있다.

이 두 식은 Dickson 다항식을 효율적으로 계산할 수 있는 알고리즘이 이 점화식들을 기반

으로 하기 때문에 중요하다. 이 외에도 다음과 같은 식을 만족한다.

이제, Dickson 공개키 암호시스템의 암호화 및 복호화 과정을 살펴보자.

[키 생성 단계]

① Dickson 다항식의 매개변수 a를 1 또는-1로 정함

② 정수 r≥2를 선택

③ 임의의 큰 소수 p i와 지수 k i 를 선택(1≤i≤r)

④ n=pk 11 p

k 22 …p

k rr

와 v(n)=lcm[pk i-1

i ( p 2i-1),1≤i≤r]5)를 계산

⑤ gcd(e, v(n))=1인 임의의 e를 선택

⑥ ed≡1(mod v(n))인 d를 계산

※ 여기서 공개키는 (e,n) 이고, 비 키는 d이다

[암호와 단계]

메시지M∈Z/(n)에 대한 암호문 C=De(M,a) (mod n) 생성

[복호화 단계]

비 키 d를 이용하여 평문M=Dd(C,a)=Dd(De(M,a),a) (mod n)을 얻음

5) v(n)=lcm[pk i-1

i ( p 2i-1),1≤i≤r]=lcm[pk 1-1

1 ( p 21-1),pk 2-1

2 ( p 22-1)…pk r-1

r p 2r-1)]

Page 70: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 70 -

이 시스템은 일단 n이 소인수 분해되면 복호화 키 d와 복호화 함수 fDIC-D : x → Dd(x,a)

(mod n)를 쉽게 계산할 수 있어 원래의 메시지를 복원할 수 있다. 그러나, 법 n을 소인수

분해하는 문제가 Dickson 공개키 암호시스템을 해독하는 것과 동치인지에 대한 증명은 존

재하지 않는다. 암호화 함수 fDIC-E : x → De(x,a) (mod n)의 역함수를 구하는 지금까지 알

려진 모든 방법은 법 n을 소인수 분해하는 것을 필요로 한다. 이 시스템의 실질적인 문제는

암ㆍ복호화 시에 [n/2]6)개항의 합을 계산해야 한다는 것이다. Dickson 공개키 암호시스템

이 처음 제시되었을 때는 암ㆍ복호화 함수의 효율적인 계산방법이 제시되지 않았으나, 이후

1988년에 Post1이 위의 두 점화식을 이용하여 Dn(x,a)를 효율적으로 계산하는 알고리즘을

제시했다. 이를 RSA 공개키 암호시스템에서의 지수 함수 xn과 비교하면 Dickson 다항식의

계산 시간이 가장 빠른 최상의 경우에는 지수함수 xn을 계산하는 것만큼 걸리지만 최악의

경우 이의 2배만큼 걸린다는 것을 알 수 있다. 1994년에 More는 매개변수 a=1 또는 a=-1

인 경우의 Dickson 공개키 암호시스템의 평균적인 계산량이 RSA 공개키 암호시스템의 약

1.3배만큼 필요하다는 것을 보였다. 앞으로 본 고에서는 법 n=p1p2인 경우로 제한한다.

소인수 분해 공격을 피하고 메시지 공간을 극대화하기 위해 Dickson 공개키 암호시스템의

키 변수가 만족해야 할 조건은 RSA 시스템에서와 같다.

① 소인수분해문제를 안전도의 기반으로 하기 때문에 강한 소수 (strong prime)를 선택해

야만 한다. 강한 소수는 다음과 같은 3가지 조건을 만족하는 소수를 말한다.(여기서 i=1,2이

다.)

ⓐ pi≡ 1 (mod p i') (즉, p i-1이 큰 소인수 p i'을 가질 것)

ⓑ pi≡ p *i-1 (mod p *i) (즉, p i+1이 큰 소인수 p *i를 가질 것)

6) [n/2]은 n/2과 같거나 작은 가장 큰 정수이다.

Page 71: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 71 -

ⓒ p i'≡1 (mod p si) (즉, p i'-1이 큰 소인수 p si을 가질 것)

② ⓐ 암호화 차수 e의 mod p i'상의 위수가 클 것

ⓑ 암호화 차수 e의 mod p *i상의 위수가 클 것

③ 암호화 차수 e는 너무 작지 않은 것을 선택해야한다.

④ 소인수분해 공격을 피하기 의하여 RSA 시스템과 마찬가지로 같은 크기 그리고 충분히

큰 크기를 택해야 하며, p1-p2도 너무 작으면 안 된다.

만약 ①,②의 조건을 만족하면 a=1와 a=-1인 경우의 Dickson 공개키 암호시스템이 아래와

같은 공격들에 대해 안전함을 보일 수 있다. 예를 들어,

은 ⓛ,②의 조건을 충분히 만족시킨다. 여기서는 a=1인 경우의 공격법을 살펴보자.

1) Ds(C,1)≡2 (mod n)인 s를 찾는 공격

가) 부분 해독 (partial decryption)

C=De(M,1) (mod n)를 주어진 암호문이라 하자.

ⓛ 공격자가 전수 조사에 의해 Ds(C,1)≡2 (mod n)을 만족하는 자연수 s를 찾는데 성공했

다고 가정한다. 여기서 s=s1s2으로 s1은 e를 나누는 s의 모든 소인수들의 곱이고, s2는 s의

나머지 모든 소인수들의 곱이다. (⇒ gcd(e,s2)=1)

② gcd(e,s2)=1이기 때문에 ee≡1 (mod s2)를 만족하는 자연수 e를 계산한다.

(⇒ ee= s 2r+1)

Page 72: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 72 -

③ De(C,1)≡M (modn)으로 메시지를 얻을 수 있다.

( ∵ u i∈GF( p 2i)를 ui+1ui=c의 한 근이라고 하자. (i=1,2)

o i를 GF( p 2i) 의 곱셈군 GF( p 2i)*에서의 ui의 위수라 하자.

이 공격법은 키 변수 조건 ①을 만족하면 피할 수 있다.

나) 법 n의 소인수 분해

v2(s)=max{e∈N:2e|s} 라 하자.

① 공격자가 전수 조사에 의해 Ds(C,1)≡2 (modn)을 만족하는 짝수 s를 찾는데 성공했다고

가정한다.

② v2(s)를 계산한다.

③ j를 계산한다.

Page 73: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 73 -

(∵ ui∈GF( p 2i)를 ui+1ui=c의 한 근이라고 하자.(i=1,2)

라 하자.

④ 만약 ⓐ j=v2(s) ⇒ 끝

ⓑ D s/ 2 j+1(C,1) ≡ -2 (mod n) ⇒ 끝

그밖에 ⓒ k = gcd( D s/ 2 j+1(C,1) -2, n)를 계산한다.

⇒ n의 소인수 k를 얻는다.

(∵ 다음의 네가지 경우 중에 하나를 만족한다.

㉮,㉱의 경우는 n의 소인수 분해를 주지 않는다.

㉯의 경우에는 D s/ 2 j+1(C,1) ≡2 (modp1) 이고

㉰의 경우에는 D s/ 2 j+1(C,1) /≡ (modp1) 이고

이 공격법은 부분 해독에 의해 암호문 C가 복호화 되었을 때에만 가능하므로 실제로는

Dickson 시스템의 안전에 큰 위협을 주지 않으며, 역시 키 변수 조건 ①을 만족하면 피할

수 있다.

Page 74: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 74 -

2) 부동점(fixed points)7)을 이용한 소인수분해

s를 홀수라 하자. C /≡±2(mod n)를 Ds(x,1) (mod n)의 부동점이라 하자.⇒ C는 Ds(x,1)

(mod p1)의 부동점이다. (i=1,2)

ui∈GF( p 2i)를 ui+1ui=c의 한 근이라고 하자. (i=1,2)

gcd(Ds+1(C,1)-2,n)∈{p1, p2}이 되어 n의 소인수를 찾을 수 있다.

만약 ⓒ u 1s+1=1이고 u2

s+1=1 또는

ⓓ u1s-1=1이고 u 2

s-1=1 이면

D s(C,1)≡2 (mod n)을 만족하는 짝수

s를 찾을 수 있으므로 공격법 [1-b]를 적용하여

n을 소인수 분해 할 수 있다.

특히, s=e인 경우에는 C는 암호화 함수 De(x,1) (mod n)의 부동점이 된다.

현재까지는 Ds(x,1) (mod n)의 부동점을 찾는 알고리즘이 알려져 있지 않기 때문에 전수

조사에 의해 부동점을 찾는 것이 유일한 방법이다. 따라서, Ds(x,1) (mod n)의 부동점의 개

수가 작다면 Dickson 시스템은 이러한 공격으로부터 안전하다. 키 변수 조건 ①을 만족하

면 임의의 부동점을 찾는 것은 계산불가능하다. 또한, C가 Ds(x,1) (mod n)의 부동점이 되

는 자연수 s와 C∈가Z/(n)을 구하는 것도 계산불가능하다

7) 함수 f(x)의 부동점이란 f(c)= c를 만족하는 원소 c∈Z/(n)를 말한다.

Page 75: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 75 -

3) Cyc1ing 공격

D(r)e

(x,α)는 De(x,α)를 r번 합성한 함수를 말한다.

M= D -1e (C,a) (mod n)인 암호문 C∈Z/(n)가 주어진다.

메시지 공간 Z/(n)은 유한 집합이므로 D (r)e

(C,a)≡ D (s)e

(C,a)(mod n)인 r, s가 존재한다.

⇒ D(t)e

(C,a)≡C (mod n) 인 t가 존재한다.

위와 같이 이 공격을 통해 메시지 M을 복구 할 수 있다. 또한, Cyc1ing 공격은 n의 소인수

분해를 가능하게 한다.

⇒ et이홀수이기 때문에 공격법[2]를 적용하여 소인수분해를 할 수 있다. Cycling 공격은 C

가 D et (x,a) (mod n)의 부동점이 되는 작은 자연수 t가 (즉, t≤1010) 존재할 때에만 성공

한다. 키 변수 조건 ①, ②를 만족하면 t≤1010인 모든 t에 대하여 D et(x,a) (mod n)이 적은

수의 부동점을 가지므로 Cycling 공격을 피할 수 있다.

나. Dickson 다항식을 이용한 RSA 유형 공개키 암호시스템의 일반화

1) RSA 암호시스템과 Dickson 암호시스템, LUC 암호시스템의 비교

가) RSA 공개키 암호시스템과 Dickson 공개키 암호시스템

Page 76: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 76 -

다음 표는 원형 RSA 공개키 암호시스템과 Dickson 공개키 암호시스템의 알고리즘을 비교

한 것이다.

[표 2-4] RSA 공개키 암호시스템과 Dickson 공개키 암호시스템

원형 RSA 공개키 암호시스템에서는 Φ(n)=(p-1)(q-1)와 서로 소인 암호화지수 e를 선택한

다. gcd(e,Φ(n))=1 ⇔ gcd(e,p-1)=1이고 gcd(e,q-1)=1 ⇔ gcd(e,w(n))=1이기 때문에 Φ

(n)=(p-1)(q-1)대신 w(n)=lcm[p-1,q-1]을 취할 수 있다. 따라서, 매개변수 a=0인 경우의

Dickson 암호시스템과 같아진다. 즉, RSA 공개키 암호시스템을 Dickson 공개키 암호시스

템의 특별한 경우로 볼 수 있다. RSA 암호시스템의 키 생성 과정에서의 법 w(n)에 대한 복

호화 지수 d와 Dickson의 암호시스템에서 Φ(n)에 대한 복호화 지수 d*의 크기를 비교하면

d*가 d의 크기의 거의 2배이므로 Dickson 암호시스템을 사용하면 비 키의 사이즈가 커진

다. 공개키 암호시스템에서 암호화 함수의 부동점의 개수는 중요한 문제가 된다. 왜냐하면,

부동점이 많이 존재한다는 것은 평문 메시지 자체가 암호문이 되는 감추어지지 않는 메시지

가 많다는 뜻이기 때문이다. RSA 암호시스템에서 fRSA : x→xe (mod n)의 부동점의 개수

FIX(xe)는 정확히

Page 77: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 77 -

이다. e-1,p-1,q-1이 모두 짝수이므로 FIX(xe)≥9이다.

매개변수 a=1 또는 a=-1인 경우의 Dickson 암호시스템의 부동점의 개수를 구하여 보자.

환 Z/(n)은 Z∣(n)≅Z∣(p)⊕Z∣(q)이므로 부동점의 개수는

이다. 매개변수 a=1 또는 a=-1인 경우의 Z/(p)에서(p는 임의의 소수) fDIC : x→De(x,a)의

부동점의 최소 개수는 다음과 같다.

따라서, Fix(Z/(p),De(x,1))≥25 이고, Fix(Z/(p),De(x,-1))≥1 임을 알 수 있다 다시 말하자

면, 매개변수 a=-1인 경우에는 0만을 유일한 부동점으로 갖는 Dickson 다항식 De(x,-1)과

이러한 성질을 만족하는 소수 p, q가 존재한다는 것이다. 일반적으로도 매개변수 a=-1인

경우가 a=1인 경우보다 부동점의 개수가 더 적기 때문에 암호학적으로 중요하다. RSA 암

호시스템에서 0와 1을 제외한 부동점을 이용한 공격법이 존재하기도 하지만 일반적으로 메

시지 공간의 크기에 비해 부동점의 비율은 무시할만큼 적다. 따라서, 부동점은 실제로 RSA

암호시스템의 안전에 큰 위협이 되지 않는다. 앞에서 제시된 것처럼[공격법 2] Dickson 공

개키 암호시스템에 있어서도 부동점을 이용한 공격이 존재하지만 키 변수 조건 ①을 만족하

면 이 공격을 피할 수 있다. 그러므로, a=-1인 경우의 Dickson 암호시스템이 RSA 암호시

스템에 비해 더 적은 수의 부동점을 가진다는 것이 실제에 있어서 더 나은 안전도를 제공하

지는 않는다. 매개변수 a=1 또는 a=-1인 경우의 Dickson 함수 fDIC : x→De(x,a) (mod n)

은 지수 함수 fRSA : x→xe (mod n) 와는 달리 곱셈 특성을 만족하지 않는다. 즉, 지수함수

는 M e1M

e2=(M1M2)

e을 만족하지만 Dickson 함수는 De(M1,a)De(M2,a)≠De(M1M2,a) 이다. 따

라서, 일반적으로 두 개의 유효한 서명의 곱이 새로운 유효한 서명을 제공하지 않기 때문에

adaptive 선택 평문 공격 (Adaptive chosen-message attack)이 직접적으로 가능하지는

않다. 그러나, Dickson 암호시스템은 adaptive 선택 평문 공격의 제한된 유형인

“existential 위조"가 가능하다. existential 위조란 다음과 같다. 메시지 M에 대한 서명

Dd(M,a)이 주어지면 임의의 k≥0에 대해

Page 78: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 78 -

을 만족한다. 즉, 메시지 M에 대한 서명 Dd(M,a)으로부터 서명에 필요한 비 키 d를 모르

고도 쉽게 다른 메시지 Dk(M,a)에 대한 서명 Dd(Dk(M,a),a)을 얻을 수 있다. 그러나, 실제로

RSA 공개키 암호시스템을 구현할 때는 이러한 adaptive 선택 평문 공격을 피하기 위해 메

시지에 일방향 해쉬 함수를 취하거나 lS0 9796 블록 형식을 적용한 후에 서명한다. 매개변

수 a=1 또는 a=-1인 경우의 Dickson 함수 fDIC : x→De(x,a) (mod n)와 지수 함수 fRSA :

x→xe (mod n)의 계산 시간에 대한 비교는 앞에서 주어졌다. 다시 말하면, Dickson 공개키

암호시스템의 평균적인 계산 시간이 RSA 암호시스템의 약 1.3배만큼 필요하고 ,최악의 경

우는 RSA 암호시스템에 필요한 계산 시간의 2배가 걸린다.

나) LUC 공개키 암호시스템과 Dickson 공개키 암호시스템

이제 LUC 공개키 암호시스템과 Dickson 공개키 암호시스템을 비교하기 위해 먼저 Lucas

수열과 이 수열로 정의된 Lucas 함수에 대해 살펴보자.

Page 79: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 79 -

정의 2.1.21. P, Q는 정수이고, α, β는 이차식 x2-Px+Q=0의 서로 다른 두 근이라 하자.

다음과 같이 정의된 정수열 {Un(P,Q)}n≥0 와 {Vn(P,Q)}n≥0를 Lucas 수열이라 한다.

위에서 정의된 수열 중 LUC 암호시스템에서는 {Vn(P,Q)}n≥0을 이용하여 Lucas 함수를 정

의하므로 이의 기본 성질 몇 가지를 알아본다.

① V0(P,Q)=2, V1(P,Q)=P이다. n≥2에 대해 점화관계 Vn=PVn-1-QVn-2를 만족한다. 이 식

에 의해 Lucas 수열을 효율적으로 계산할 수 있다.

③ Q=0이면 n≥1에 대해 Vn(P,Q)=Pn임을 알 수 있다. 즉, Lucas 수열을 일반화된 지수로

볼 수 있다.

LUC 공개키 암호시스템에서 암ㆍ복호화 함수로 이용되는 Lucas 함수는 메시지 x∈Z/(n)에

대해 fLUC : x→Ve(x,1)x,1) (mod n)로 정의된다. 여기서 암호화 키 e는 p-1,p+1,q-1,q+1

모두에 서로 소인 자연수로 선택한다.

다음 표는 LUC 공개키 암호시스템과 Dickson 공개키 암호시스템의 알고리즘을 비교한 것

이다.

Page 80: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 80 -

[표 2-5] LUC 공개키 암호시스템과 Dickson 공개키 암호시스템

LUC 공개키 암호시스템은 다음과 같다. 먼저, RSA 암호시스템과 같은 법 n=pq을 생성한

다. p-1,p+1,q-1,q+1 모두에 서로 소인 e를 선택하기 위해 v(n)=lcm[p2-1,q2-1]를 계산

하여 gcd(e,v(n))=1을 만족하는 e를 취한다. 송신자는 메시지 M∈Z/(n)에 대한 암호문을

생성하기 위하여 Ve(M,1)=C (mod n)를 계산하여 C를 보낸다. 수신자는 C를 복호화하기

위하여 S(n)=lcm[p- ( D'p ),q- ( D'q )]를 계산하여 ed≡1 mod S(n)를 만족하는 복호화 키 d

를 얻는다. (여기서,D'=C2-4이다.) Vd(C,1)=M (mod n)을 계산하여 메시지 M을 구한다. 이

시스템의 복호화 과정에서는 원래의 메시지 M이 주어져야 복호화 키 d를 구할 수 있다.

그러나,

Page 81: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 81 -

이 성립하므로 암호문 C를 가지고 S(n)=lcm[ p-( D'p ),q-(D'q )]을 계산하여 ed≡1 mod

S(n)를 만족하는 복호화 키 d를 얻는다.

Dickson 공개키 암호 시스템과 LUC 공개키 암호시스템을 비교하기 위하여 먼저, Lucas

수열과 Dickson 다항식의 관계를 살펴본다. Waring's formula와 Lucas 수열의 정의,

Dickson 다항식의 정의에 의해 다음과 같은 식을 만족함을 알 수 있다. 정수 P,Q와 n≥0에

대해

여기서, Dn(x,Q)는 매개변수 Q∈Z이고 차수는 n인 Dickson 다항식이다. 그러므로, 임의의

x∈Z(n)에 대해 다음과 같이 정의된 Dickson 함수 f DIC :x→ D e(x,1) (mod n)와 Lucas

함수 fLUC : x→Ve(x,1) (mod n)는 본질적으로 같은 함수이다. 다시 말해, Dickson 다항식

이란 Lucas 수열을 다항식으로 표현한(representation) 것이다. 그러므로, LUC 공개키 암

호시스템은 매개변수 a=1인 경우의 Dickson 공개키 암호시스템의 변형으로 볼 수 있다. 다

만, 이 두 시스템의 차이는 복호화 키 d의 생성에 있다. LUC 암호 시스템과 Dickson 암호

시스템의 복호화 키 d를 비교하여 보자. 먼저, 매개 변수 a=1인 경우의 Dickson 시스템에

서는 ed≡1 mod v(n) (v(n)=lcm[p2-1,q2-1]임)을 만족하는 d를 구한다. LUC 암호시스템

에서는 ed≡1 mod S(n)을 만족하는 d를 선택해야한다. S(n)=lcm[ p-( D'p ),q-(D'q )]은 4개

의 값 lcm(p+1,q+1), lcm(p+1,q-1), lcm(p-1,q+1), lcm(p-1,q-1) 중의 하나이므로 키 생

성 단계에서 미리 다음과 같은 4개의 d를 생성한다.

Page 82: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 82 -

암호문을 얻은 합법적인 수신자가 복호화 키 d를 구하기 위해서는 S(n)을 계산하여 위의 4

개의 d 중 하나를 선택한다. 이를 위하여 ( D'p ),(D'q )을 계산하는 동안 컴퓨터 시스템에 암

호문 C와 p ,q를 저장하게 되는데 이것은 LUC 암호시스템에 위험요소가 될 수 있다. 또한,

( D'p )=(Dp ) 이고 M=M2-4이므로 결국 위와 같이 생성된 키 d는 메시지에 의존하게

(message-dependent)된다. Dickson 공개키 암호시스템에서는 메시지에 의존하지 않는

(message-independent) 복호화 키 d를 생성하기 때문에 두 Legendre symbol

( D'p ),(D'q ) 의 계산이 불필요하고, 시스템의 키 생성 단계 후에는 p,q를 버린다. 그러나,

Dickson 공개키 암호시스템의 법 v(n)에 대한 e의 역원 d의 키 사이즈는 평균적으로 LUC

암호시스템의 복호화 키 사이즈의 2배가 된다.

다) Dickson 다항식을 이용한 일반화

위의 세 개의 공개키 암호시스템은 Dickson 공개키 암호시스템의 수학적 기반이 되는

Dickson 다항식을 이용하여 RSA 유형 공개키 암호시스템의 한 부류로 묶어 일반화 할 수

있다. 매개변수 a=0, a=1 또는a=-1인 경우의 Dickson 다항식들의 모임(collection)은

trapdoor 일방향 치환들의 집합이다. a=0인 경우의 Dickson 다항식을 이용하여 공개키 암

호시스템을 구축한 것이 RSA 암호시스템이고, a=1 또는 a=-1인 경우가 Dickson 공개키

암호시스템이다. LUC 공개키 암호시스템이 a=1인 Dickson 암호시스템의 변형이라는 것은

앞에서 보였다. 다만, LUC 암호시스템은 비 키의 크기를 줄였다.

Page 83: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 83 -

(그림 2-1) Dickson 다항식을 이용한 RSA 유형 암호시스템의 일반화

제 2 절 이산대수문제 (Discrete Log Problem)

1. 개 요

인수분해문제와 함께 이산대수문제는 많은 암호학적 기술의 안전성의 기반이 되고 있다. 이

산대수문제 기반의 알고리즘으로는 Diffie-Hellnam 키교환과 이의 변형 알고리즘, ElGamal

암호시스템과 그것의 변형 알고리즘 등이 있다. 특히, 타원곡선 기반의 ElGamal형 암호시스

템은 다른 암호시스템과 같은 수준의 안전성을 제공하면서도 키 크기를 줄일 수 있어 차세

대 암호시스템으로 부상하고 있다. 먼저, 이산대수문제란 무엇인가에 대하여 살펴보겠다.

Page 84: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 84 -

일반적으로 G를 생성자 a를 갖는 위수가 n인 유한 순환군이라고 하자. 간단하게, G를 위수

가 p-1인 곱셈 군 Z*p로 간주한다. 여기서 군 연산은 법 p상의 곱이다.

정의 2.2.1. G는 위수가 n인 유한 순환군이라고 하자. a를 G의 생성자라고 하고, β∈G라고

하자. 기저 a에 대한 β의 이산대수(discrete logarithm)는 β=ax인 0≤x≤n-1에 속하는 유일

한 정수 x이고, logαβ 라고 표기한다.

a를 위수가 n인 순환군 G의 생성자라고 하자. β,r∈G라고 하고, s를 정수라고 하면, logα(β

r)=(logαβ+logαr)mod n이고, logα(βs) = slogαβ mod n을 만족한다.

정의 2.2.2. 이산대수문제(Discrete Logarithm Problem)은 다음과 같이 정의한다. 소수 p,

Z *p의 생성자 α, β∈ Z *p가 주어지면, αx=β를 만족하는 0≤x≤p-2에 속하는 정수 x를 찾는

다.

정의 2.2.3. 일반이산대수문제(Generalized Discrete Logarithm Problem)은 다음과 같이

정의한다. G를 위수가 n인 유한 순환군이라 하고, α를 G의 생성자라 하고, β∈G라고 하자.

αx=β를 만족하는0≤x≤n-1에 속하는 정수 x를 찾는다.

α,r를 위수가 n인 순환군 G의 2개의 생성자라고 하자. β∈G이고, x=logαβ, y=logrβ, z=logα

r라고 하면, ax=β=ry=(αz)y이고, x=zy modn이고, logrβ=(logαβ)(logαr)-lmodn를 만족한다.

이것은 기저를 α로 하는 대수(logarithm)을 계산하는 알고리즘은 G의 또 다른 생성자인 r를

기저로 (logarithm)을 계산하기 위해 사용될 수 있다는 것을 의미한다.

Page 85: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 85 -

일반이산대수문제의 더욱 일반적인 형태는 다음과 같다. 유한군 G와 원소 α,β∈G가 주어졌

을 때, ax=β를 만족하는 정수 x를 찾는다. 이 식에서는 G가 순환군이라는 조건이 요구되지

않는다. 그리고 α가 G의 생성자라는 조건이 요구되지 않는다. 이 문제는 일반적으로 일반이

산대수문제를 해결하는 것보다 어려울지도 모른다. 그러나 G가 순환군(예를 들어, G가 유한

체의 곱셈군이면)이고, α의 위수가 알려진 경우는 αx=β를 만족하는 정수 x가 존재하는지를

쉽게 알 수 있다. 이것은 다음의 사실 때문이다. G가 순환군이고, α가 G에 있는 위수가 n인

원소이고, β∈G이라면, βn=1일 때마다 ax=β를 만족하는 정수 x가 존재한다.

같은 위수의 2개의 순환군이 동형(isomorphic; 즉, 원소들이 다르게 표현된다 할지라도 같

은 군구조를 갖는다)이다고 할지라도 1개의 군에서 대수(logarithm)을 계산하기 위한 효율

적인 알고리즘이 또 다른 군을 위해 반드시 효율적인 알고리즘일 필요는 없다. 이러한 사실

을 보이기 위하여, 위수가 n인 모든 순환군은 덧셈 순환군 Zn 즉, 군연산이 법 n에서 덧셈

인 정수 {0,1,2,...,n-1} 집합에 동형이다. 게다가 후자 군에서 이산대수문제는 즉, 주어진

a,b∈Zn에 대하여 αx≡b(mod n)를 만족하는 정수 x를 찾는 문제가 다음과 같이 쉽게 보여

질 수 있다. 먼저, d=gcd(a,n)가 b를 나누지 않는다면, x가 존재하지 않는다는 것을 지적하

고 그렇지 않다면, 즉, d|b이면, extended Euclidean algorithm을 사용하여 as+nt=d인 정

수 s와 t를 찾을 수 있다. 이 방정식의 양변에 정수 b|d를 곱하면 a(sb|d)+n(tb|d)=b를 얻

는다. 이 방정식을 법 n으로 reduce시키면 a(sb|d)≡b(mod n)이 되고, x=(sb|d)(mod n)은

우리가 원하는 해답이 된다. 위와 같은 과정은 쉽게 얻어질 수 있다.

Page 86: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 86 -

2. 이산대수문제에 대한 알고리즘

이산대수문제를 풀기 위하여 알려진 알고리즘은 다음과 같이 분류 될 수 있다.

A. 임의의 군에서 작동하는 알고리즘. (예, exhaustive search, baby-step giant-step

algorithm, Pollard's rho algorithm)

B. 임의의 군에서 작동하지만 군의 위수가 작은 소수 인수를 포함하는 경우 특히 효율적인

알고리즘.(예, Pohlig-He11nam algorithm)

C. 특수한 군에서만 효율적인 알고리즘. (예, Index-calculus algorithm)

가. 전수조사(Exhaustive Search)

일반이산대수문제를 의한 가장 명백한 알고리즘은 β가 얻어질 a0,a1,a2,...를 성공적으로 계

산하는 것이다. 이 방법은 n이 α의 위수일 때, O(n) 곱셈이 걸린다. 그러므로 n이 커지면

비효율적이 된다.

나. Baby-step Giant-step 알고리즘

n이 α의 위수일 때, m=⌈ n⌉이라 하자. Baby-step giant-step 알고리즘은 전수조사 방

법의 시간과 메모리의 trade-off를 고려한 방법이고, 다음의 사실을 기반으로 한다. β=αx이

라면, x=im+j(0≤i,j<m)로 쓸 수 있다. 그러므로 αx=αimαj이고, β(α-m)i=αj가 된다. 이것은 x

를 계산하기 위한 다음의 알고리즘을 제안한다.

Page 87: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 87 -

[ Baby-step giant-step algorithm ]

입력 : 위수가 n인 순환군 G의 생성자 α, 임의의 원소 β∈G

출력 : 이산대수 x=logαβ

A. m ←⌈ n⌉로 놓는다.

B. 0≤j<m에 대해 (j,αj)의 표를 작성한다. 두 번째 값의 순서로 맞춘다.

C. α-m를 계산하고 r←β로 놓는다.

D. 각각의 i에 대해 0부터 m-1까지 다음을 수행한다.

D.1. 이 B에서 작성한 표의 쌍 중에서 두 번째 값인지를 확인한다.

D.2. 만약 r=αi 이면 x=im+j를 출력한다.

D.3. r←rㆍα-m로 놓는다.

위의 알고리즘은 O( n) 군원소를 저장하기 위한 저장 공간이 필요하다. 표를 구성하기 위

하여 O( n) 곱셈이 필요하고, 순서를 맞추기 위하여 O( nlgn)번 비교하여야 한다. 표를

구성한 후에도 단계 D에서 O ( n) 곱셈과 O ( n) 표 룩업(look-up)8)이 필요하다. 군 곱셈

이 lgn 비교보다 더 많이 걸린다고 가정하면 baby-step giant-step 알고리즘의 수행시간은

O ( n) 군 곱셈만큼 걸린다.

수행능력을 향상시키기 위하여 Z *p에서 멱법(exponentiation)을 사용하는 어떤 암호학적

프로토콜은 보통 작은 Hamming weight(정수의 Hamming weight는 그것의 이진 표현에서

1의 개수임)를 갖는 특별한 형태의 지수를 선택한다. p가 k비트 소수이고, Hamming

weight 의 지수가 유일하게 사용 된다고 가정하자. 그런 지수의 개수는 (kt)이다.

8) 키에 의해 항목이 구별되어 있는 배열이나 도표에서 데이터 항목을 가려내는 프로그래밍 기법

Page 88: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 88 -

다. Pollard's rho 알고리즘

이산대수를 계산하기 위한 Po1lard's rho 알고리즘은 Baby-step giant-step 알고리즘과

똑같은 기대 수행 시간을 갖는 랜덤화된 알고리즘이며, 무시해도 좋을 만큼의 저장 공간을

필요로 한다. 이러한 이유로 실제적인 문제에서 Baby-step giant-step 알고리즘보다 훨씬

더Pollard's rho 알고리즘을 사용한다. 간단하게, 여기에서는 G를 위수 n인 순환군이라고

가정한다.

군 G를 쉽게 분석할 수 있는 어떤 성질을 기반으로 거의 같은 크기를 갖는 3개의 집합

S1,S2,S3로 분해한다. 분할(partition)을 선택하는데 항상 주의를 기울여야 한다.

[ Pollard's rho algorithm ]

입력 : 위수가 소수n인 순환군 G의 생성자 α, 임의의 원소 β∈G

출력 : 이산대수 x=logαβ

A. x0←1,a0←0,b0←0로 놓는다.

B. 각각의 i=1,2,... 에 대해 다음을 수행한다.

B.1. 정확하게 계산된 xi-1,ai-1,bi-1와 x2i-2,a2i-2,b2i-2 값은 이용하여 xi,ai,bi와 x2i,a2i,b2i을 계

산한다.

B.2. 만약 xi=x2i 이면 다음을 수행한다.

r←bi-b2i mod n로 놓는다.

만약 r=0이면 실패로 끝난다.

① 만약 r≠0이면 x=r-1(a2i-ai) modn 을 계산해서 x을 출력한다.

위의 알고리즘이 실패로 끝나는 경우는 구간 [1, n-1]내에 속하는 임의의 정수 a0, b0를 선

택, x0=αa0βb0를 정함으로써 위의 절차를 반복한다. 사실 G를 order가 소수 n인 군이라고

하자. 위의 방정식에 의하여 정의된 함수 f.G→G가 임의의 함수로 가정하자. G의 이산대수

에 대한 Po1lard's rho 알고리즘의 수행시간은 O ( n) 군 연산이다. 게다가, 이 알고리즘은

무시해도 좋은 정도의 저장 공간을 요구한다.

Page 89: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 89 -

라. Pohlig-Hel1man algorithm

이산대수를 계산하기 위한 Pohlig-Hellman 알고리즘은 군G의 위수 n의 소인수분해를 이용

한다. n= p e11 pe22 ...,p

err를 n의 소인수분해라고 하자. x=logαβ라고 하면, 이 방법은 1≤i≤t에

대하여 xi=x mod p eii를 계산하고 Gauss's 알고리즘을 사용하여 x modn를 복구한다. 각각

의 정수 xi는 pi-ary representation의 l 0, l 1,.... l e i-1를 계산함으로써 결정된다. 즉,0≤lj≤

p i-1일 때, x i= l 0+ l 1 p i+....+ l ei,- 1pei-1i

이다. 알고리즘의 결과 값이 올바르다는 것을

보이기 위해 n이 순환군이라고 가정한다.

[ Pohlig-He11man algorithm ]

입력 : 위수가 소수 n인 순환군 G의 생성자 α, 임의의 원소 β∈G

출력 : 이산대수 x=logαβ

A. n= p e11 pe22.......p

err( e i≥1)의 소인수분해를 찾는다.

B. 각각의 i에 대해 1 부터 r까지 다음을 수행한다

( x i= l 0+ l 1 p i+....+ 1pei-1i

를 계산한다.( x i=x mod p e1i ) )

B.1. q←pi 와 e←ei로 놓는다.

B.2. r←1 와 l-1←0로 놓는다.

B.3. a← a n/q를 계산한다.

B.4. 각각의 j에 대해 0부터 e-1까지 다음을 수행한다.

γ← γalj-1 q

j-1

와 β←( βγ -1) n/q j+1를 계산한다.

Page 90: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 90 -

l j← log aβ를 계산한다.

B.5. xi←l0+l1q+...+le-1qe-1로 놓는다.

c. Gauss의 알고리즘을 이용하여 x≡ x i ( modpeii ) (1≤i≤r)를 만족하는 정수 x(0≤x≤n-1)를

계산한다.

D. x를 출력한다.

사실 n의 소인 주어졌을 때, Pohlig-Hellman 알고리즘의 수행 시간 O( ∑r

l=1e i ( lgn+ p i)) 군

곱셈이다. 이에 의하면, Pohlig-Hellman 알고리즘은 n의 소인수 pi가 상대적으로 작을 때

만 효율적이다.; 즉, n이 smooth 정수이면 효욜적이다. 또한, n이 소수이면,

Pohlih-Hel1man 알고리즘은 baby-step giant-step 알고리즘과 같다. Poh1ih-Hel1man

알고리즘의 단계 A에서 먼저 작은 인수를 찾는 인수분해 알고리즘이 사용되어야 한다.; 이

것은 n이 smooth 정수가 아니라면, Pohlih-He11man 알고리즘은 효율적이지 않다는 것을

의미한다. Baby step-giant step 알고리즘의 단계 B.4에서 요구되는 저장공간은 Pollard's

rho 알고리즘을 사용함으로써 줄일 수 있다.

마. lndex-calculus 알고리즘

Index-calculus 알고리즘은 이산대수를 계산하기 위하여 알려진 방법 중 가장 강력한 방법

이다. 이 알고리즘이 모든 군에 적용되는 것은 아니지만 적용되면 subexponential-time 알

고리즘을 제공한다. 먼저, 이 알고리즘은 순환군 G의 일반적인 셋팅에서 서술된다.

lndex-Calculus 알고리즘은 G의 원소의 중요한 조각이 S로부터 원소들의 곱으로 효율적으

로 표현될 수 있도록 G의 원소들로 이루어진 상대적으로 작은 부분집합 S(인수 기저라고

불리는)의 선택을 요구한다. S에 있는 모든 원소들의 대수(logarithm)를 포함하는 데이터베

이스를 미리 계산하는 것을 진행한다. 그리고 나서 특수한 군 원소의 대수(logarithm)가 요

구될 때마다 이 데이터 베이스를 다시 사용한다. 이 알고리즘은 두 가지 이유에서 불완전하

다. 첫째, 인수 기저 S를 선택하기 위한 기술이 구체화되지 않았다. 둘째, 다음의 두 개의

식의 관계를 효율적으로 생성하는 방법이 구체화되지 않았다. 인수 기저 S는 작지만 지나치

게 작지는 않은 G의 부분집합임에 틀림이 없다. 관계를 생성하기 위한 충분한 인수 기저와

기술은 Z *p와 F* 2 m와 일반적인 유한체 Fq의 곱셈군 F*q를 포함하는 어떤 순환군에 대해서

는 알려져 있다.

Page 91: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 91 -

[ Index-calculus algorithm ]

입력 : 위수가 소수 n인 순환군 G의 생성자 α, 임의의 원소 β∈G

출력 : 이산대수 x= log aβ

A. 인수기저를 선택하기 의하여 G의 부분집합 S={p1,p2,...pt}를 선택한다.

B. S의 원소의 대수(logarithm)를 포함하는 선형관계식을 구한다.

B.1. 임의의 정수 k(0≤k≤n-1)를 선택하고 ak를 계산한다.

B.2. a k를 S의 원소들의 곱으로 표현하려고 노력한다.

만약 표현이 가능하다면 아래의 선형관계식을 얻기 위해 윗식의 양변에 대수(logarithm)를

취한다.

B.3. 위와 같은 형태의 t+c개의 관계식을 얻을 때까지 단계 B.1 과 B.2를 반복한다.

(여기서 c 는 작은 양의 정수이다)

C. log a pi (1≤i≤t)값을 얻기 위해 단계 B에서 모은 t+c개의 관계식을 푼다. (법 n으로 계

산함)

Page 92: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 92 -

D. y를 계산한다.

D.1. 임의의 정수 k(0≤k≤n-1)를 선택하고 β․ak를 계산한다.

D.2. β․ak를 S의 원소들의 곱으로 표현하려고 노력한다.

이 시도가 성공하지 못하면 단계 D.1을 반복한다.

그렇지 않으면 윗식의 양변에 대수(logarithm)를 취해서

log aβ=( ∑t

i=1log a p i-k)modn을 얻는다.

y=(∑t

i=1d i log a p i-k)modn를 계산해서 출력한다.

두개의 실제적인 응용분야인 Z*p와 F

*2m

에서 사용되는 두개의 종류의 군에서

Index-Ca1cu1us 알고리즘이 어떻게 작용하는지를 살펴보자.

1) Index-calculus algorithm in Z *P

p가 소수인 체 Z p에 대하여, 인수 기저 S는 첫 번째 소수 t로 선택될 수 있다. B.2의 관

계식은 a kmodp를 계산함으로써 생성되고 이러한 정수가 S안에 있는 소수들의 곱인지 아

닌지를 확인하기 위하여 trial division을 사용한다.

2) Index-calculus algorithm in F *2m

유한체 F*2m

의 원소는 차수가 m-1인 Z 2 [x]상의 다항식으로 표현된다. 여기서 곱셈은

Z 2 [x]상의 차수 m인 고정된 기약 다항식의 f(x)를 법으로 수행한다. 인수 기저 S는 이

미 정해진 어떤 bound b를 차수로 하는 Z 2 [x]내의 모든 기약 다항식의 집합 중 선택될

수 있다. B.2의 관계식은 a kmodf(x)를 계산함으로써 생성되고 이러한 다항식이 S안에 있

는 다항식의 곱인지 아닌지를 확인하기 위하여 trial division을 사용한다.

Page 93: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 93 -

Index-calculus 알고리즘의 수행시간을 최적화하기 위하여 인수 기저의 크기 t를 적절히

잘 선택하여야 한다. 최적화된 선택은 m보다 작은 차수의 F 2 [x]에 있는 다항식 내에서

smooth 다항식(기약 인수가 상대적으로 작은 차수를 갖는 다항식)의 분포에서 Z *p와 F *2m

경우에 대한 구간 [1,p-1]에 있는 smooth 정수의 분포에 대한 지식에 의존한다. t를 적절

히 선택하면, Z *p와 F *2m에 대한 위에서 언급한 것과 같은 Index-ca1cu1us 알고리즘은

L q [12,c]의 기대 수행시간을 갖는다. 여기서 q=p,q=2 m,c>0상수이다. 최근에 F *2m에서

대수(logarithm)을 계산하기 위하여 알려진 가장 좋은 알고리즘은 Coppersmith의 알고리즘

이라고 불리는 Index-calculus 알고리즘의 변형이다. 이것은 어떤 상수 c<1.587에 대하여

기대 수행속도는 L 2m [13,c]이다. Z *p에서 대수(logarithm)을 계산하기 위하여 알려진 가장

좋은 알고리즘은 number field sieve라고 알려져 있는 Index-calculus 알고리즘의 변형이

다. 이것의 기대 수행 시간은 L p [13,1.923]이다.

3. ElGamal 공개키 암호시스템

1985년 나온 ElGamal 공개키 암호시스템은 유한체 상에서 로그문제가 어렵다는 사실에 기

반을 두었다. 여기서는 ElGamal 공개키 암호시스템의 기초 개념과 일반적 ElGamal 공개키

암호시스템을 기술한다.

Page 94: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 94 -

가. ElGamal 공개키 암호시스템의 개념

먼저, ElGamal 공개키 암호알고리즘을 살펴보자.

[키생성 단계]

각 사용자는 공개키와 그에 대응되는 비 키를 생성한다.

사용자 A는 다음을 수행한다.

① 큰 랜덤 소수 p와 곱셈 군 Z *p의 생성자 a를 생성한다.

② 난수 a, 1≤a≤p-2를 선택하고, a amodp를 계산한다.

③ A의 공개키는 (p,a, a a)이고 비 키는 a이다.

[암호화 단계]

B는 메시지 m을 암호화하여 A에게 보낸다.

① A의 인증된 공개키 (p,a, a a) 를 얻는다.

② 메시지를 범위 {0,1,…,p-1}에서의 정수 m으로 표현한다.

③ 난수 k, 1≤k≤p-2를 선택한다.

④ γ= a kmodp와 δ=m․( a a)k modp를 계산한다.

⑤ 암호문 c = (γ,δ)를 A에게 보낸다.

[복호화 단계]

암호문 c로부터 메시지 m을 복구하기 위하여 A는 다음을 수행한다.

① 비 키 a를 사용하여 γ p-1-a를 계산한다.

(참고 : γp-1-a = γ-a = a-ak )

② ( γ-a)․δ modp를 계산하여 메시지 m을 복구한다.

이 시스템을 효율성과 안전성 및 난수성 측면에서 살펴보자.

1) 효율성

① 암호화 과정에서 두 개의 모듈러 지수 승이 필요하다(즉, a kmodp와 ( a a)k modp). 이

러한 지수승은 어떤 덧셈 구조를 가진 임의의 지수 k를 선택하는 가에 따라 속도를 증가시

킬 수가 있다(예, Hamming weight가 작은). 그러나 baby-step giant-step 알고리즘을 통

한 공격을 막기 위해 충분히 큰 지수를 선택하여야 한다.

Page 95: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 95 -

② ElGamal 암호화의 단점은 2의 배수만큼 메시지가 확장된다. 즉, 암호문은 대응되는 메

시지의 두 배이다.

2) 안전성

① ElGamal 암호화 방식을 깨는 문제(즉, 주어진 p,a, a a,γ와 δ로부터 메시지 m을 복구하

는 문제)는 Diffie-Hellman 문제를 푸는 것과 동치이다. 사실, ElGamal 암호화 방식은 단순

히 세션키 aak를 결정하기 위한 Diffie-Hellman 키교환 다음에 그 세션키를 곱하여 메시지

를 암호화하는 것으로 생각할 수도 있다. 이러한 이유로 인하여 ElGamal 암호화 방식의 안

전도는 비록 증명되지는 않았지만, Z *p에서의 이산대수문제에 기반을 두었다고 말하여 진

다.

② 다른 메시지를 암호화할 때 다른 난수 k의 사용은 매우 중요하다.

두 메시지 m 1과 m 2에 같은 난수 k가 사용되어 암호화하고, 각각의 암호문은 ( γ 1, δ 1)과

( γ 2, δ 2)이라고 가정하자. 그러면, δ 1/ δ 2 =m1 m2이고, m 1이 알려진다면 m 2는 쉽게 계산

될 수 있다.

③ Z *p에서의 이산대수 문제에 관한 최근 현황으로 보면 512 비트 모듈러스 p가 필요하다.

1996년에 적어도 768 비트의 모듈러스 p가 권고되었다. 더 긴 보안 강도를 원한다면,

1024 비트 또는 그보다 더 긴 모듈러스가 사용되어야 한다. 이것은 Z *p에서의 이산대수 문

제를 풀기 위한 index-calculus 알고리즘의 계산 능력이 상대적으로 급속히 발전하고 있기

때문이다.

Page 96: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 96 -

3) 난수성

ElGamal 암호화는 암호화 과정에 난수성을 활용하는 많은 암호화 방식중의 하나이다(예,

McEliece, Goldwasser-Micali와 Blum-Goldwasser 확률론적 암호화 등). 난수화된 암호

화 기술의 기본 아이디어는 아래의 방식 중 하나 또는 그 이상의 것을 통하여 암호화 과정

에서 암호학적 안전도를 증가시키기 위하여 난수화를 사용한다.

① 평문 메시지 공간을 효과적 크기로 증대

② 평문에서 암호문으로 보내는 일-대-다수의 장점으로 인해 선택평문 공격의 효과적인 절

감 또는 배제

③ 입력의 우선적 확률분포를 단계화 하여 통계적 공격의 효과적 절감 또는 배제

나. 일반화된 ElGamal 암호알고리즘

ElGaml 암호시스템은 전형적으로 곱셈 군 Z *p에서 기술되므로 일반적 유한 순환군 G로

쉽게 일반화시킬 수가 있다. ElGamal 암호시스템과 마찬가지로 일반화된 ElGamal 암호시

스템 안전도는 군 G에서의 이산대수 문제에 기반을 둔다. 군 G는 다음 두 가지 조건을 만

족하도록 주의 깊게 선택되어야 한다.

① 효율성을 위하여, G에서의 군 연산은 상대적으로 쉬워야 하고,

② 안전도를 위하여, G에서의 이산대수 문제는 계산적으로 불가능하여야 한다.

일반화된 ElGamal 공개키 암호시스템의 알고리즘을 살펴보자.

[키생성 단계]

각 사용자는 공개키와 그에 대응되는 비 키를 생성한다.

사용자 A는 다음을 수행한다.

① 생성자 a를 갖고, 위수 n인 적절한 cyclic 군 선택한다.

②난수 a, 1≤ a ≤ n-1를 선택하고, 군 원소 a a를 계산한다.

③ A의 공개키는 (a, a a)이고, G에서의 연산 방법을 공개한다.

(A의 비 키는 a이다.)

Page 97: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 97 -

[암호화 단계]

B는 메시지 m을 암호화하여 A에게 보낸다.

B는 다음을 수행한다.

① A의 인증된 공개키 (a, a a)를 얻는다.

② 메시지를 군 G의 원소 m으로 표현한다.

③ 난수 k, 1 ≤ k ≤ n-1를 선택한다.

④ γ =ak와 δ = m․( aa)k를 계산한다.

⑤ 암호문 c = (γ, δ)를 A에게 보낸다.

[복호화 단계]

암호문 c로부터 메시지 m을 복구하기 위하여 A는 다음을 수행한다.

① 비 키 a를 사용하여 γ a를 계산하고 γ-a를 계산한다.

② ( γ-a)․δ를 계산하여 메시지 m을 복구한다.

ElGamal 암호시스템은 Taher ElGamal에 의해 개발되었다. Harber와 Lenstra는 고의적으

로 약하게 모듈러스 p를 생성하여 이산대수 문제에 트랩도어의 가능성을 제시하였다. 여기

에서 약한 소수 p라 함은 Z* p에서 이산대수문제가 상대적으로 쉽게 풀릴 수 있음을 의미

한다. 예를 들면, p-1이 단지 작은 소인수만으로 이루어 졌다면 Pohlig-Hellman 알고리즘

이 효과적이다. 그러나 Gordon은 그러한 trapdoor를 쉽게 피하는 방법을 제시하였다.

Rivest와 Sherman은 선택 평문과 선택 암호문 공격에 관한 언급과 더불어 난수화된 암호

화알고리즘을 위한 개괄적이고 통일된 기본 틀을 제공하였다. unit 군 Z* n을 적용한 수정

된 ElGamal 암호화는 McCurley에 의해 개발되었다. 이 방식은 적어도 n을 소인수분해 하

는 정도는 안전하다. 만일 암호해독가가 n을 소인수분해 하였다 하더라도, 여전히 이산대수

문제를 해결하여야 한다. 그 밖에도 이 시스템은 다음으로 소개되어질 타원곡선 기반 암호

시스템에서도 변형된 방식으로 사용되고 있다.

Page 98: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 98 -

4. 타원곡선 암호시스템(Elliptic Curve Cryptosystem)

가. 타원곡선 암호시스템의 소개

여기에서는 타원 곡선에 대한 기초적인 개념들을 소개하고 이 타원곡선에 기반한 공개키 암

호시스템에 대하여 알아본다.

1) 타원곡선과 그 성질

가) 기본개념

Fq를 q개의 원소를 가지는 유한 체라 놓자. 단, q는 소수의 멱이다. 만약 K가 체이면, K

를 그것의 algebraic closure라 놓자. (만약 K =Fq라면 K=⋃m≥1 F qm 이다.) K위에서의

projective plane P 2 (K)는 K 3-{(0,0,0)}위에서 작용하는 관계 ~ 에 의한 equivalence

c1asses 의 집합이다. 여기서 ( x 1, y 1, z 1)∼( x 2, y 2, z 2)는 어떤 u 가 K *에 존재하여

x 1= ux 2, y 1= uy 2, z 1= uz 2가 되는 것을 말한다. 우리는 이제 (x,y,z)를 포함하는

equivalence class 를 (x :y :z)라고 표시한다. Weierstrass 방정식은 다음과 같은 형식을

가지는 3차의 동차 방정식을 말한다.

여기서 a 1, a 2, a 3, a 4, a 6는 K의 원소이다. 만약 모든 사영점들 P=(X :Y :Z )∈P 2 (K)가

Page 99: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 99 -

을 만족하는 모든 사영점들 P =(X : Y : Z ) ∈P 2(K) 에 대하여 그 점에서 ∂F∂X, ∂F∂Y, ∂F∂Z

중 적어도 하나가 영이 아닐 때 그 Weierstrass 방정식은 smooth 혹은 non-singular라

고 부른다. 만약 세 편 미분 값이 모두 P에서 영이면 P는 singular point라고 부르고, 그

Weierstrass 방정식은 singular라고 말한다. 타원 곡선 E ( or an algebraic curve of

genus 1 ) 는 하나의 smooth Weierstrass 방정식의 P 2 (K) 에서의 모든 해들의 집합이

다. E에는 Z-coordinate 가 영인 점이 정확히 하나 ( 즉,( 0 : 1 : 0 ) ) 존재한다. 우리는 이점

을 point at infinity 라 부르고, O 라고 쓸 것이다. 편의를 위하여, 우리는 하나의 타원 곡

선에 대한 Weierstrass 방정식을 non-homogenious (affine) coordinates

x = X/Z, y = Y/Z

을 사용하여 표현할 것이다. 그러면 하나의 타원 곡선 E 는 affine plane A2 (K) = K × K

에서의 방정식 (2.1.1)의 해들의 집합이 되며, 특별히 point at infinity O 를 가진다.

a 1, a 2, a 3, a 4, a 6 가 K의 원소이면 E 가 K 위에서 정의되었다고 말하고 이것을 E/K 라

고 쓸 것이다. 만약 E 가 K 위에서 정의되었다면 E 의 K-rational point 들의 집합

(E(K))는 두 coordinate들이 K 에 있는 점들의 집합이며, 점 O를 포함한다. 여기서는 용

어를 약간 바꾸어서 위에 정의된 방정식을 E라 할 것이다.

두 타원 곡선이 동형이라고 말할 때는 그들이 projective varieties로서 동형일 때이다. 간

단히 말하면 체 K 위에서 정의된 두 projective varieties V 1, V 2가 K 위에서 동형이라는

말은 K위에서 정의된 두 함수 ø : V 1 →V 2와 ø : V 2 →V 1가 존재하여 ψ∘ø와 ø∘ψ가 각

각 V 1, V 2 위에서 항등 함수일 때이다.

Page 100: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 100 -

나) 군 법칙

타원 곡선 위의 점들이 어떠한 연산하에서 가환군을 이룬다는 것은 잘 알려진 사실이다. E

가 Weierstrass 방정식 (2.2.1)에 의해 주어지는 타원 곡선이라 놓자. 덧셈 규칙은 다음과

같이 주어진다. 모든 E 의 원소 P와 Q에 대하여

(1) O+P =P 이고 P+O =P (그래서 O 는 항등원으로 작용한다.)

(2) -O=O.

(3) 만약 P = ( x 1, y 1)≠ O이면 -P = ( x 1,-y 1,-a 1 x 1-a 3)이다.

( x 좌표가 x 1 인 점들은 단지 P와 -P 뿐임에 주목하자)

(4) Q = - P 이면 P+Q=O 이다.

(5) P ≠ O , Q ≠ O , Q ≠ -P 일 때 R을 P ≠ Q이면 PQ와 그 곡선과의 교점이고, P = Q

이면 P에서의 곡선의 접선과 그 곡선과의 교점이라 놓자. 그러면 P + Q = -R 이다.

정리 2.2.4. (E , +)는 항등원 0을 가지는 가환군이다. 만약 E가 K위에서 정의된다면 E(K)

는 E의 부분군이다.

위의 (5) 의 경우에 P + Q 의 좌표를 P 와 Q 의 좌표로 표현하기 위한 수식은 쉽게 만들

어진다.

라 놓자. 1을 P ≠ Q 인 경우는 P와 Q를 통과하는 직선이라 놓고 P =Q인 경우는 그 곡선

의 P에서의 접선이라 놓자. 1의 기울기 및 x 3, y 3의 좌표는 다음과 같다.

Page 101: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 101 -

다) 판별식과 j-불 변량

E는 비 동차 Weierstrass 방정식 (2.2.1)에 의해 주어지는 곡선이라 하자. 양들을 다음과

같이 정의하자.

양 Δ는 Weierstrass 방정식의 판별식이라 부르고, 만약 Δ≠0이면 j(E)를 E 의 J-불변

량이라 한다. 다음 두 정리가 이 양들의 중요성을 설명해 준다.

정리 2.2.5. E가 타원 곡선이다 (즉, Weierstrass 방정식이 non-singular이라 함)라는 말은

Δ≠0이라는 것과 동치이다.

정리 2.2.6. 두 타원 곡선 E 1/K와 E 2/K 가 K위에서 동형이면, j(E1) = j(E2)이다. 만약

K가 대수적으로 닫힌 체이면 역도 성립한다.

Page 102: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 102 -

라. 군의 구조

E를 Fq위에서 정의된 타원 곡선이라 놓자. 그리고 q= p m이라 하자. (여기서 p는 소수이며

char ( Fq)이다. E( Fq)에 있는 점들의 개수를 #E( F q)라 쓴다. 만약 E가 Weierstrass 방

정식에 의해 주어진다면 이 방정식은 각각의 x∈ F q에 대하여 기껏해야 두 개의 해를 가지

므로 #E( Fq) ≤2 q+1임을 알 수 있다. 귀납적으로, 각각의 x∈ F q에 대하여 방정식(2.2.1)

이 1/2의 확률로 Fq에서 해를 가지고, 결론적으로 #E( Fq) ≈q 이기를 기대한다. 다음의

정리는 이 논리가 옮음을 확신시켜준다.

정리 2.2.7. (Hasse) #E( Fq)=q+1 ­t 이면, ¦ t ¦ ≤2 q 이다.

Hasse의 정리의 중요한 결론은 확률론적 다항식 시간(probabilistic polynomial time)에서

타원 곡선 E( Fq)위의 점들 P를 uniform하고 random하게 끄집어 낼 수 있다는 것이다. 이

것은 다음과 같이 수행할 수 있다. 먼저 무작위로 원소 x∈ F q을 선택한다. 만약 x 1이

E( Fq)에 있는 어떠한 점의 x좌표이면 Fq에서 근을 찾는 문제를 푸는 것에 의해

( x 1, y 1)∈ E( Fq)인 y 1을 찾을 수 있다. 확률론적 다항식 시간에서 Fq위에서의 다항식

의 근들을 찾는 데는 다양한 기술들이 있다. 만약 q=p인 소수이면 ¦ t ¦ ≤2 q 을 만족하는

모든 t에 대하여 # E( Fp)= p+1-t을 만족하는 F p위에서 정의된 타원 곡선이 적어도 하

나 존재한다. 사실, E가 F p 위에서의 모든 타원 곡선으로 다양하게 주어질 때 #E( F p)의

값은 p+1에 중심을 둔 크기 p 의 구간에서 거의 균등하게 분포된다. #E( Fq)=q+1-t일

때 p가 t를 나누면 타원 곡선 E를 supersingular라 부른다. 그렇지 않으면,

non-supersingular라 부른다. 만약 p=2 혹은 p=3 이면 E가 supersingular라는 것과

j(E)=0 이라는 것이 동치라는 것은 잘 알려져 있다.

Page 103: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 103 -

2) 타원곡선 기반 공개키 암호시스템

타원곡선에 기반한 공개키 암호시스템은 Kobliz와 Muller가 제안한 ElGamal 암호방식에 근

거한 방법과 American National Standard X9.63의 표준으로 채택된 방법이 있으며 91년

에 Koyama등이 제안한 Z n(n=pq, p,q는 소수) 위에서의 타원곡선을 이용한 방법이 있다.

이 방법은 안전도가 소인분해 문제와 동치인지 증명되지 않았으나 Meyer 등은 Z n(n=pq,

p,q는 소수)위에서의 타원곡선을 이용한 방법으로 안전도가 소인분해 문제와 동치인 암호법

을 제안하였다. 각각의 알고리즘을 살펴보자. A는 B에게 비 로 메시지 M을 전달하기를 원

한다고 가정한다.

가) Kobliz와 Muller의 암호시스템

[초기화]

1. E(a,b) : y 2+xy = x 3+ ax 2+b는 유한체 K = GF( q n)위에 주어진 타원곡선

2. P 는 E(K)에서 소수 위수 N을 갖는 점

[키생성 단계]

1. 1<d<N 인 정수 d를 선택

2. Q = dP 를 계산

3. B는 d를 비 키로 하고 P, Q 를 공개키로 공개

Page 104: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 104 -

[암호화 단계]

1. 1<k<N 를 만족하는 k를 임의로 선택

2. P' = kP, Q' = kQ, C = Q'+M을 계산

(M이 타원곡선 상의 x좌표가 되게 조정)

3. B에게 (P',C)를 전송

[복호화 단계]

1. Q' = dP'를 계산

2. M = Q'+C를 계산

나) American National Standard X9.63의 암호시스템

[초기화]

1. E(a,b) : y 2+xy = x 3+ ax 2+b는 유한 체 K = GF( 2 n)위에 주어진 타원곡선

2. P 는 E(K)에서 소수 위수 N을 갖는 점

[키생성 단계]

1 1<d<N 인 정수 d를 선택

2. Q = dP를 계산

3. B는 d를 비 키로 하고 P, Q를 공개키로 공개

[암호화 단계]

1. 1<k<N를 만족하는 k를 임의로 선택

2. P' = kP, Q' = kQ, C = Q'⊕M 계산

3. B에게 (P',C)를 전송

[복호화 단계]

1. Q' = dP'를 계산

2. M = Q'⊕C를 계산

Page 105: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 105 -

다) Koyama의 암호시스템

q를 q≡2 (mod3)을 만족하는 2가 아닌 소수이고 b∈ F q,b≠0 이면, 타원 곡선

E 1/ Fq : y2= x 3+b의 위수 #E 1 ( Fq)=q+1이다. 그리고 p도 2가 아닌 소수이고

q≡2 (mod3)일 때 n=pq,E 1 ( Zn)=E 1 ( Fp)×E 1 ( Fq)라 하면 P=(x,y)∈E 1 ( Z n)는

Chinese Remainder Theorem에 의하여 다음과 같이 유일하게 표현된다.

물론, 무한원점 O=[O,O]이다. 그러므로 #E 1 ( Zn)=(p+1)(q+1)이고 Nn=lcm(p+1,q+1)

라 하면 P ∈E 1 ( Z n)이면 Nn․P=O이다.

[키생성 단계]

1. p≡q≡2mod3를 만족하는 큰 소수를 선택하여 n=pq를 계산한다.

2. (n,b)=1인 타원곡선 E(b) : y 2 = x 3+b를 선택하고 Nn=lcm(p+1,q+1) 를 계산한다.

3. ed≡1mod N n을 만족하는 정수 e, d를 선택한다.

4. B는 p, q, p+1, q+1, Nn은 비 로 하고 n, e와 타원곡선은 공개한다.

[암호화 단계]

1. 메시지 M=(Mx,My) ∈ E( Z n)이 되게 조정.

2. C = e․M ∈E( Zn)을 계산

3. B에게 C 를 전송

[복호화 단계]

1. M = d․C ∈E( Zn)를 계산

이 시스템은 RSA 암호시스템과 마찬가지로 n의 소인수분해문제 기반한 암호시스템이다.

Page 106: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 106 -

라) Meyer의 암호시스템

n은 소수 p, q의 곱이고 Z n위에서 타원곡선 E(a,b) : y 2 = x 3+ax+b을 이용한다.

[키생성 및 암호화 단계]

1. 0 < λ < n 을 선택

2. P = (m2,λm3)라 한다.

3. a=λ3, b=( λ 2-1)m6-am2을 계산

4. gcd( 4a 3+ 27b 2,n)>1이면 다시 1로 간다.

5. E=(a,b), x Q=x(2․P),t=type(y(2․P)), l=lsb(y(2․P))를 전송

[복호화 단계]

1. type t와 lsb 1을 이용하여 x 3q+ax Q+b의 제곱근 Yq를 계산한다.

2. q = (Xq,Yq)라 한다.

3. 2․Pi = Q, (1≤i≤s)를 만족하는 P i∈E( Z n)계산

4. I = {1≤i≤ sꠐa2=y( P i)

6x( p i)-9}을 계산

5. #I > 1이면 거부(에라)하고

그렇지 않으면 m = y( PI)3x( PI)-4a

-1을 계산

나. 타원곡선 암호화에 관한 최근의 연구동향

여기서는 타원곡선 암호시스템에 관련된 최근의 연구 동향을 기술한다. 주요 내용은 효과적

인 연산을 위한 유한체 연산과 스칼라 곱, 타원곡선의 위수계산 문제, 타원곡선 암호시스템

을 공격하기 위한 이산대수문제 등을 살펴본다.

Page 107: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 107 -

1) 타원곡선 위에서의 고속연산

가) 유한 체의 연산

유한체의 연산은 유한체의 표현방법 즉, 기저가 무엇인지, 유한체를 구성하는 기약다항식이

무엇인지에 의하여 많은 영향을 받는다. 1992년에 Harper등은 합성체(composite field)를

이용한 유한체의 연산 방법을 제안하였다. 즉 GF( 2 104)를 GF( 2 8)위에서의 13차 확장 체

로 보고 연산을 하는 방안을 제시하였다. 이 방법은 GF( 2 8)의 연산은 테이블로 만들어 놓

고 연산을 하는 방법이다. 1995년에 Schroeppel등은 표수가 2인 유한체 연산을 Trinomial

과 Almost Inverse Algorithm(AIA)을 이용한 유한체의 연산 방법을 제시하였는데 지금까

지 소프트웨어 구현에 대표적인 방법으로 알려져 있다. 1996년에는 Win등은 합성체와

Trinomial를 이용한 유한체의 연산 방법을 제안하였다. 이 방법은 Harper와 Schroeppel

방법을 혼합한 방법이다. 또한 97년에는 Guajardo등은 합성체의 연산을 Karatsuba-Ofman

Algorithm(KOA)을 이용한 곱셈과 Itoh 와 Tsujii의 알고리즘을 이용한 역원 계산 방법을

제안하였고 98년에는 Baily등이 p가 워드 사이즈 ( 2 16, 2 32, 2 64) 보다 조금 작은 소수인

GF( Pn)의 연산을 Binomial ( x n-w)을 이용하여 구현하는 효율적인 방법을 제시하였다. 이

방법은 바탕체의 모듈러 연산을 효율적으로 할 수 있는 컴퓨터의 특성을 최대한 활용할 수

있는 방법으로 표수가 2인 유한체의 연산 속도 정도의 효율적인 연산 방법이다. 이상의 유

한체의 연산은 다항식 기저를 바탕으로 하는 소프트웨어적인 구현 방법이다.

유한체의 하드웨어 구현은 표수가 2인 경우가 합리적이고, 특히 최적 정규기저 I형태를 이

용한 방법을 Hasan등이 제안한 이후 더 효과적인 방법은 제시되지 않고 있으며 비슷한 난

이도를 갖는 방법이 Koc등에 의하여 제안되었다. 1999년에 Wu는 Trinomial과 다항식 기

저를 이용한 효율적인 하드웨어 구현 방법을 제안하였다. 전체의 비교표는 다음과 같다.

Page 108: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 108 -

[표 2-6] 하드웨어 복잡도 비교표

곱셈 제곱

Hasann 2 AND, n 2-1 XOR gates,

DA+(1+ꀎlog2(n-1)ꀏ) DX DelaysRewiring

Kocn 2 AND, n 2-1 XOR gates,

DA+(2+ꀎlog2(n-1)ꀏ) DX Delays

n-1 XOR gates,1 Dx Delays

Wlun 2 AND, n 2-1 XOR gates,

DA+(1+ꀎ log 2n ꀏ+1) DX Delays

≤(n+k)/2 XORgates, 2Dx Delays

위의 표에서 알 수 있듯이 유한체 연산의 하드웨어 구현은 정규 기저를 이용하는 것과 다항

식 기저를 이용하는 경우 곱셈기는 비슷한 복잡도를 가지나 제곱의 경우 정규기저는 비용이

전혀 들지 않는 반면에 다항식 기저는 약간의 연산이 필요하다. 그러나 하드웨어 구현시 역

원계산을 a-1 =a 2․a 22

․a 23

…a 2n-1

를 이용하여 구하므로 제곱을 n-1 번 하여야 하는 문

제가 존재하므로 아직까지는 정규기저를 사용하는 것이 더 효과적이다.

나) 스칼라 곱

타원곡선에서 스칼라 곱은 곱셈군에서 지수승과 비슷하다. 이 같은 관계로 RSA의 멱승 방

법이 그대로 적용되며 또한 타원곡선의 성질을 이용한 방법도 제안되고 있다. 차례로 정리

하면 다음과 같다. GF( 2 n)위에서의 Affine좌표를 쓸 경우 타원곡선의 연산의 경우 한번의

덧셈과 제곱은 각각 유한체의 1번의 역원, 2번의 곱, 1번의 제곱연산을 필요로 한다. m은 t

비트 정수이고 P는 타원곡선의 점일 때 m․P를 계산하고자 한다. W를 n의 Weight라 하자.

Page 109: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 109 -

(1) Binary 방법

t 비트 정수의 스칼라 곱의 경우 Binary 방법의 경우 t -1번의 제곱과 w-1번의 덧셈을 필

요로 한다. 그러므로 m․P 를 계산하려면 유한체의 1.5t 번의 역원, 3t 번의 곱셈이 필요하

다.

(2) k-ary 방법

이 방법은 선계산(precomputation)과 메모리를 필요로 하는 방법으로 m을 2 k진법으로 전

개하고 s․P (1 < s < 2 k)을 선계산한 다음 binary 방법처럼 계산하는 것으로 많아야 유한체

의 t+t/k+2 k-2번의 역원, 3(t+t/k+2 k-2)번의 곱 연산을 필요로 하는 방법이다.

이외에도 k-ary 방법을 일반화한 window 방법, signed binary 방법, signed window 방법

등이 있다.

(3) Frobenius 함수를 이용한 방법

이 방법은 97년에 Solinas가 binary curve의 경우에 적용한 것을 98년에 Muller가 표수가

2인 경우로 확장하였으며 99년에 Kobayashi등이 일반적인 표수에 대하여 적용하였다.

GF( q k)(q=2 n)위에서 non supersingular curve

에서 E의 Frobenius Endomorphism Φ 은 다음과 같이 주어진다.

그러면 Φ2-cΦ+q=0,이고 c는 정수이고 ꠐcꠐ ≤ 2 q이다. 한편 Hasse 정리에 의하여

#E(Fq) = q+1-c이다.

Page 110: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 110 -

보조정리 2.2.10. s ∈ Z[Φ]. 그러면 s = t․Φ + r를 만족하는 정수 -q2 < r ≤

q2

가 존재한

다.

이 보조정리를 이용하여 Muller는 정수 m을 Z[Φ]의 원소로 보고 다음과 같이 전개하는

방법을 제시하였다.

정리 2.2.11. q > 4이고 s ∈ Z[Φ]. k = ꀎ2log q ∣s∣ꀏ+3이면 다음을 만족하는

r j ∈ {- q-12 ,…,q2 }, 0 ≤ j < k가 존재한다.

이 정리에 의하면 m = ∑k

j=0mj․Φ

j와 같이 전개된다면 m․P = (∑k

j=0mj․Φ

j)․P이다. 이 경우

Φ․P는 좌표의 쉬프팅으로 이루어지므로 거의 연산이 필요치 않다. 또한 i․P(1 < i ≤ q/2)를

선계산 하면 더욱 효율적이다. 이 Muller 방법은 Binary 방법을 50% 개선하는 효과가 있

다.

2) 타원곡선의 위수

타원곡선의 위수 계산은 타원곡선 암호 시스템 구현에 꼭 필요한 문제이다. 제한된 유한체

위에서 타원곡선을 바꾸어 사용할 수 있는 것이 또한 하나의 장점이다. 물론 타원곡선의 위

수는 먼저 계산한 다음에 필요할 경우에 사용하면 되므로 암호시스템 자체에 결정적인 문제

는 아니다. 순환군의 위수를 계산하는 알고리즘으로 위수가 작은 경우에 처음에는

Baby-step giant-step 알고리즘이 존재한다. 그러나 우리가 필요로 하는 위수 2160정도를

계산하기는 불가는 알고리즘이다. 이후에 Mestre's 알고리즘, Cornacchia's 알고리즘 등이

소개되었고 1985년에 Schoof는 유한체 Fq위에 주어진 타원곡선 E 의 위수를 계산하는데

복잡도가 O( q 1/4+ε)인 다항식 시간 알고리즘을 제안하였다. 그러나 이 알고리즘은 구현상에

어려움이 있어 95년에 Schoof가 박사 논문에 위에 제안한 알고리즘에 Baby-step

giant-step 알고리즘을 혼합하여 복잡도가 O( log 8q)인 알고리즘을 제시하였다. 그러나 지

금까지 타원곡선 위수 계산 알고리즘으로 Schoof 알고리즘이 유일하며 이 이후에 Atkin,

Elkies, Lercier, Couveignes, Morain등에 의하여 꾸준히 개선되고 있다. 대략적인 내용은

다음과 같다.

nonsupersingular 타원곡선의 위수를 계산하기 위해서 표수가 2이면 y 2+xy = x 3+a 6, 표

수가 3보다 크면 y 2 = x 3+ax+b를 고려하면 된다. 왜냐하면 다른 형태는 이 형태와 twist

관계이기 때문이다. 타원곡선 E가 유한체 F q위에 주어졌다고 하자. 그러면 Frobenius 함

수는 다음과 같이 정의된다

Page 111: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 111 -

그러면 ø 2-tø+q = 0이고 타원곡선의 위수는 정리 2.2.7에서와 같이

로 주어진다. 여기서 t 는 ø의 트레이스(trace)이다. Schoof의 알고리즘의 핵심은 소수 p

에 관한 모듈로로 t를 구하는 것이다. 즉

를 만족하는 많은 소수 p 에 대하여 모듈로로 계산한 다음 중국인의 나머지 정리를 이용하

여 t를 복구하면 t를 구할 수 있다는 것이다. 먼저 기본적인 사항을 살펴보면 다음과 같다.

f p (x) : Division 다항식, deg( f p) = Ο( p2)라 하면

Page 112: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 112 -

(p,q) = 1이면 E(p) ≅ Z p× Z p이고

P = (x,y) ∈ E(p) ⇔ f p (x) = 0이다.

모듈로 p 에 관하여 t를 계산하기 위하여 ø를 E(p)에 제한하여 살펴본다. 즉

ø2-tø+q ≡ 0 mod p이고 E(p)의 E( Fq)의 원소이므로 F[x,y]/(E, f p (x))에서

( x q2

, y q2

)+[q](x,y) = [ t p]( xq, y q)를 만족하는 t p ≡ t mod p를 구하는 것이다. 구체적인

방법은 다음과 같다. 먼저 q p ≡ q mod p라 하자. t p를 0부터 (p-1)/2까지 움직이며

ø2(P)+[ q p]P = [ t p]ø(P)를 만족하는 P ∈ E [P]가 존재하는지 확인한다. p가 소수이므로

P≠O인 P가 존재하면 E(p)의 모든 점에서 성립한다. 구체적으로 보면

Q = ( x q2

, y q2

)+[q](x.y) = [ t p]( xq, y q)를 Division 다항식을 이용하여 표시하고 Q의 x좌

표 Q x를 곡선의 방정식과 f p (x)=0를 이용하여 x에 관한 유리식으로 표시하고 분자 부분

을 h x (x)라 한다. Hx = gcd( h x (x), f p (x))가 1이 아니면 그런 점이 존재하고 1이면 존재

하지 않는다. 이 같은 방법으로 각 p에 대하여 t p를 구한 다음 중국인의 나머지 정리를 이

용하여 t를 구하는 것이다. 그러나 h x (x)의 차수가 상당히 크다는 것이 문제의 어려움이

다. 그러므로 h x (x)의 차수는 O( p 2)이므로 이 다항식과 f p (x)의 gcd를 구하는데 많은

시간이 소모된다. 그래서 실제로는 다음과 같은 세 단계로 나누어 계산한다

A) t2-4q가 Z p에서 이차 잉여인 경우

t p를 0부터 (p-1)/2 까지 범위에서 다음 조건을 만족하는 P ∈ E(p)*가 존재하는지 확인

한다.

B) t가 p를 나누는 경우

ø 2 (P) = ±[ q p]P를 만족하는 P ∈ E(p)*가 존재하는지 확인한다.

Page 113: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 113 -

C) A, B의 경우가 아닌 경우 위에서 한 일반적인 경우와 같이 확인한다.

이 이후에 Elkies은 차수가 큰 Division 다항식 대신에 Modular 다항식과 Isogenies를 이

용하여 차수가 (p-1)/2인 다항식을 사용하는 알고리즘을 제안하였다. 그 자세한 내용은 다

음과 같다. E, E*를 두 타원곡선이라 하고 방정식 Fp(u) = u2-tu+q ≡ 0 mod p에서

Δ = t 2-4q라 하자. 이 경우 Δ가 Z p에서 이차 잉여인 경우와 이차 비잉여인 경우로 나눌

수 있다. 즉 Fp (u)=0가 Z p에서 근을 갖는 경우가 안 갖는 경우로 구분된다. 우리는 전자

를 Elkies 소수라 하고 후자를 Atkin 소수라 한다.

정리 2.2.12. E, E*기 p-isogenous 가 되게 하는 modular 다항식 Φ p (X,Y) ∈ Z[X,Y]가

존재하기 위한 필요충분 조건은 Φp(j(E),j(E*)) = 0이다.

정리 2.2.13. modular 다항식 Φ p(X,Y)에서 Φ p (X,j(E))는 바탕체 위에서 다음과 같이 인

수분해 된다.

(1) Δ≡0mod p이면 1차 p차 또는 모두 1차로 인수분해 된다.

(2) Δ가 이차 잉여인 경우는 1차 2개와 나머지는 r차로 인수분해 된다. 그리고 이 경우

Frobenius 함수 ø는 E(p) 는 Z p위에서 행렬

( λ 00 μ )과 같이 주어지는 일차변환이다.

(3) Δ가 이차 비잉여인 경우는 모두 r차로 인수분해 된다. 물론 이 경우 Fp (u)는 Z p위에

서 기약 다항식이다.

이러한 성질을 이용하여 Elkies는 다음과 같은 알고리즘을 제안하였다.

Page 114: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 114 -

[Elkies의 알고리즘]

A. Fq위에서 Φ p (X,j(E))를 인수분해 한다.

B. 정리 2.2.13의 (2) 경우면

B.1. 타원곡선 E *를 하나 잡고 차수가 p인 isogeny I를 하나 구한다.

B.2. I의 커널(kernel) C를 구하여 Gp (x) = II ±P∈c-{O} (x- (P) x)를 계산한다.

B.3. Schoof 알고리즘에서 Division 다항식 f p (x)대신 G p (x)를 이용하여 t p를 계산한다.

C. 이 같은 p를 많이 구하여 t를 계산한다.

여기서 C 는 위수가 p인 순환군이므로 G p (x)의 차수가 (p-1)/2인 것을 알 수 있다. 이

알고리즘은 복잡도 O( log 6q)을 갖는 확률론적 알고리즘이다. 이외에 Atkin 소수인 경우는

Fp (u)가 Fp에서 기약이므로 F p2에서는 두 일차식의 곱으로 표현되고 두 근을 각각

λ, μ라 하면 Fp에서 t=λ+μ, q=λμ이고 Fp2에서 γ r=λ/μ라 하자. 그러면 F*p2 = <g>이면

γ r ∈ { gi( p 2-1)

| (i,r)=1, 1≤i<r}. 간단히 하기 위하여 Fp2 = Fp( d)라 하면

λ= x 1+x 2 d, μ= x 1-x 2 d, γ r= g 1+g 2 d, x i, g i ∈ Fp로 주어진다. 여기서 x 1, x 2는

알 수 없으나 γ r의 가능성에 의하여 g 1, g 2는 알 수 있을 경우 다음 식으로부터 t p를

구할 수 있다.

Page 115: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 115 -

그러므로 Fp에서 qg 1=x21+dx

22, qg 2=2x1x2, q=x

21-x

22. 따라서 x 21=q( g 1+1)/2 이므

로 t=2x 1을 이용하여 t p를 계산한다. Schoof, Elkies, Atkin의 방법을 혼용하여 SEA 알고

리즘이라 한다. 이외에 Menezes등에 의하여 중국인의 나머지 정리를 이용하지 말고 모듈로

2c에서 t를 구하여 바로 t를 찾는 방법을 제안하였다. 이러한 방법이 Couveignes, Morain

등에 의하여 발전되었다.

3) 타원곡선 위에서의 이산대수문제

타원곡선은 유한군 위에서의 이산대수 문제에 기반한 방식이다. 따라서 여기에서는 타원곡

선 군 위에서 적용될 수 있는 이산대수 해결 방법에 대하여 살펴본다.

가) 타원곡선 위에서의 이산대수 문제

정의 2.2.14. E를 타원곡선이라 놓고 P를 타원곡선 위의 점이라 하고 Q∈<P >라 놓자. 그

러면 어떠한 정수 l이 존재하여 Q = l P이 된다. 주어진 P,Q에 Q = l P를 만족하는 l을

찾는 것을 타원곡선 위에서의 이산대수 문제라 한다.

그럼 타원곡선의 이산대수 문제에 적용 가능한 방법과, 타원곡선에만 적용 가능한 방법에

대하여 살펴보자.

(1) Pollard's rho 알고리즘의 타원곡선에의 적용

이 방법은 위에서 기술했던 Pollard's rho 알고리즘의 특수한 경우로 다음과 같다. |P |=n

이라 놓고 순환군 <P>를 대략 같은 크기의 S 1, S 2, S 3로 분할하였다고 가정하면 다음과

같은 방법으로 순환 함수 f를 정의한다.

Page 116: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 116 -

A 0, B 0∈ [1, n-1]를 임의로 선택한 후 Z 0=A0P+B 0Q 로 정의한 후 다음과 같은

Triple을 정의한다.

만약 Z i=Zj이고 B i≡B j (mod n)이 아니면 l=Ai-AjBj-Bi

mod n이 된다. 따라서 타원곡선

위에서의 이산대수 문제를 해결하게 된다. 그런데 위의 방법과 같이 <P>의 분할을 굳이 3

개로 할 필요는 없다. E. Teske는 <P>의 분할을 20개로 하여 이산대수 문제를 푸는 방법

을 제안하였다. 이것은 단지 위에서 정의된 f함수만 다르며 나머지 방법은 분할을 3개로 하

였을 때와 같다. 분할을 20개로 하였을 때 f함수는 다음과 같이 정의된다.

이러한 방법은 평균적으로 πn/2만큼 연산량이 필요하다.

P=(x,y) GF(p)위에서 정의된 타원곡선 E의 점이라면 -P=(x,x-y)이다. 따라서 -P를 구

하는 것은 매우 쉽게 계산될 수 있다. 따라서 다음과 같은 방법을 이용하여 좀 더 효과적인

방법을 얻을 수 있다. Z i와 -Zi의 y좌표를 비교하여 작은 쪽을 Z i 로 선택한다. -Zi

의 y좌표가 Z i의 y좌표보다 작다면 -Zi를 Z i로 놓고 -Ai를 Ai, -Bi 를 B i 로 놓

는다. 이러한 경우 찾아야 하는 공간의 크기는 반으로 줄며, 평균 수행 시간은 2만큼 줄

어들게 된다. 그러나 위의 방법에서 Z i와 Z i+1가 같은 S j에 속하고

Zi+1=-( Zi+cjP+d jQ),Zi+2=-( Zi+1+cjP+d jQ)=Zi이면 2-cycle이 생기게 되어 문제를

풀기 못하게 된다. 이러한 것을 확률적으로 방지하는 방법에 대하여 살펴보자.

f w(Z)=Z+ c wP+d wQ로 정의하자. Z i∈ S j로 가정하자. 그러면 f( Z i)=f j ( Z i)이다.

Z i+1의 값을 정하기 위하여 R=± f j ( Z i)값을 계산한다. R∉ S j이면 Zi+1=R이고 R∈ S j이

면 Z i를 S j+1에 있는 것처럼 생각하여 R=± f j+1( Z i) 를 계산한다. 만약 R∉S j+1이면

Zi+1=R이 된다. 그렇지 않다면 j+2,j+3,…에 대하여 같은 방법을 반복 실행한다. 모든 첨

자 20개에 대하여 만족하지 않으면 Z i+1=± f j ( Z i)를 이용한다. 그런데 이러한 확률은

(1/20)20으로 거의 발생하지 않는다고 할 수 있다. 따라서 2-cycle은 확률적으로 발생하지

않는다고 할 수 있다. 위의 방법의 단점은 Z i+1을 구하기 위해서는 Z i이 값을 알아야 하므

로 병렬처리가 불가능하다. 이러한 단점을 보안한 알고리즘을 살펴보자.

Page 117: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 117 -

E (a,b) (GF( 2ed))를 y 2+xy= x 3+ ax 2+b, a,b∈GF( 2 e)로 정의된 타원곡선 군이라 정의하고

ø를 GF( 2e) 위에서의 Frobenius map이라 놓자. 또한

P∈E (a,b) (GF( 2ed)), P∉E (a,b) (GF( 2

ef))1≤f≤d-1라 놓자. P의 위수는 소수 p라 가정하고

p2은 타원곡선 군의 위수를 나누지 않으며, d는 홀수라 가정하자. Frobenius map의 정의

에 의하여 어떤 λ가 존재하여 다음과 같은 식을 얻을 수 있다.

따라서 d|p-1임을 얻을 수 있다. 앞의 방법과 같은 방법으로 Z i를 결정하고, 2d개의 다른

점 ±ø( Z i), 0≤ j ≤d-1의 값을 계산한다. 계산 후 2d개의 점 중에서 y좌표의 값이 가장 작

은 값을 대표 원으로 저장한다. 예를 들어 ø j ( Z i)의 y-좌표 값이 가장 작다면 Zi=øj( Zi),

Ai=λj Ai,Bi=λ

j Bi 로 바꾼다. Zk= Z j, k≠j인 두 점을 발견하면 두 점 사이의 관계에

의하여 타원곡선 위에서의 이산대수 문제를 풀게 된다. 이 방법은 d개를 동시에 병렬처리

하므로 앞의 방법을 1/ d큼 줄일 수 있다. 한편 Wiener와 Zuccherato는 1998년에 바탕체

가 합성체 F 2ad이고 타원곡선이 F 2e위에 주어졌을 때 추정 시간이 O( ( πn/d )/2)인 알고

리즘을 제안하였다.

Page 118: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 118 -

(2) Pollard's lambda 알고리즘의 타원곡선에의 적용

이 방법은 Po1lard's rho의 타원곡선에의 적용방법과 같은 방법을 적용시킬 수 있다. 즉 함

수 f의 연산이 타원곡선의 덧셈연산으로 이루어지고 시작 값은 타원곡선의 임의의 점이 되

는 것이다. Po1lard's rho의 방법에서 알 수 있듯이 이 방법 또한

y2+xy= x

3+ ax

2+b, a,b∈GF( 2

e)로 정의된 타원곡선이면 Frobenius map을 이용하여 함

수를 구성하면 구현이 용이하여 효과적으로 이산대수 문제를 풀 수 있다. 즉 함수 f를 다음

과 같이 구성한다.

위에서 쓰인 ø함수는 각각의 x좌표 및 y좌표를 단지 2 e승하는 연산으로 각각의 좌표를 쉬

프트연산을 통해 구현이 용이하여 f함수는 단지 실질적으로 두 점의 덧셈 연산만으로 구현

될 수 있다. 각 프로세스에서 생성된 값들에 대해 대표원을 Pollard's rho의 방법으로 구성

하여 저장(k=2인 경우) 또는 중앙프로세스에 전달한다( k> 2인 경우). 위의 식에서 k=2일 때

즉 프로세스의 개수가 2개 일 때가 일반적으로 Pollard's lambda 방법이라 하고 만약 k가

2보다 크다면 이를 Parallized Po1lard's lambda 방법이라고 부른다. 이는 Pollard's

lambda의 방법을 일반화시켜 병렬처리하는 방법이다. 위 식에서 k의 개수가 크면 클수록

즉 프로세서의 개수가 많으면 많을수록 보다 효과적으로 병렬화 시킬 수 있다. 이 병렬기법

을 좀 더 자세히 설명하면 각각의 프로세스는 함수 f를 이용하여 서로 다른 시작점을 가지

고 위의 Pk i+1를 계산한 후 1개의 중앙 프로세스에 그 값의 대표원을 보낸다. 그러면 중앙

프로세스는 각 프로세스에서 보낸 대표원을 비교하여 충돌을 찾는다. 만약 충돌을 찾았다면

두 점 Pk1i , P

k2j의 대표원이 같으므로 P

k1i = ø

l (Pk2i )을 만족하는 것이다. 따라서,

Pk1i =a

k1i P+b

k1i Q 라 두고 P

k2j =a

k2j P+b

k2j Q라 하면 우리는 다음과 같은 식을 얻는다.

Page 119: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 119 -

여기서 Q=kP라 하면 ak1i P+b

k1i Q=ø

l (ak2j P+b

k2j Q)=λ

l (ak2j P+b

k2j Q)이어서

k=( λ lbk2j-b

k1i )-1(a

k1i-λ

lak2j ) 이 되는 것이다.

이러한 방법 외에 anomalous 곡선에 대한 이산대수 문제를 효율적으로 푸는 방법을

Semev, Satoh와 Araki가 제안하여 여기에 해당되는 곡선의 이용은 피해야 한다. 또한

Silverman에 의하여 Xedni 알고리즘이 제안되었고 이것의 구현여부가 활발히 연구되었으나

결국 구현은 불가능한 것으로 Jacobson, Koblize, Silverman에 의하여 분석되었다. 이 알

고리즘에 관한 자세한 내용은 다음과 같다.

(3) ECDLP에 대한 Index calculus 방법

1920 년대에 Kraitchik에 의해서 발견된 Index Calculus 방법은 유한체 F *q 의 군에 대한

이산대수 문제는 준 지수 시간 (subexponential time)에 의해 풀려짐이 증명되었고 다른

많은 방법이 개발되었다. 이러한 이유로, Miller와 Koblitz는 암호학적인 목적에 의해서 곱

군 F *q 를 타원 곡선 의에서 유리점 E(Q)로 대치하였다. 이것이 타원 곡선 위에서의 이산대

수 문제(ECDLP)를 도입하였다. Miller는 그의 논문에서 두 개의 중요한 부분 때문에 Index

Calculus 방법은 타원 곡선 위에서의 이산대수 문제에 사용될 수 없다고 하였다. Miller가

제시한 이유를 아래에 간단히 기술한다.

Page 120: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 120 -

● 작은 유리 점을 많이 갖는 타원 곡선을 찾는 것은 어렵다. 이것을 두 부분으로 나누면 -

높은 위수를 갖는 타원 곡선을 찾는 것은 어렵다.

- 작은 높음(height)을 갖는 점들에 의해 생성되는 타원곡선을 찾는 것은 어렵다.

● 타원 곡선 E(Q)가 주어졌을 때 큰 소수 p와 축소 사상 E(Q)→E( F p) 의 치역 안에 점

S∈E( Fp)에 대해서, 점 S 를 E(Q)로 상승시키는 것이 어렵다.

타원 곡선 위에서의 이산대수 문제(ECDLP)에 관한 Index Calculus 방법의 적용이 용이하

지 않기 때문에 타원 곡선에 근거한 암호 체계는 높은 안전성을 갖는다. 일반적으로 타원

이산대수 문제(ECDLP)는 정수 분해문제(IFP) 또는 일반 목적의 알고리즘 하에 지수 아래

시간에 의해 풀려지지 않는 이산대수 문제보다도 어렵다고 믿어지고 있다.

우리는 Mestre의 방법을 이용하여 적당히 낮은 높임(height)을 갖고 높은 위수(rank)를 갖

는 타원 곡선 위로 상승시킨다. 또한 계산적이고 이론적인 증거로 p가 크다면, E(Fp) 의

이산대수 문제(ECDLP)에 관한 Index Calculus 방법을 이용하는 것은 어렵다는 것을 보인

다. Miller가 제시한 기본적인 이유를 정확하게 설명하면 위수 r을 갖는 상승 곡선(lifting

curve) E(Fp) 의 생성자(generator) P 1,…P r에 대하여 적당한 양의 상수 A,B와 C에

대하여 h( Pi)≥A+B log(p)+C r log (r)를 만족한다. 군의 연산은 E( Fp) 안에서의 덧셈이고

군의 위수 N=Np=#E(Fp)라 하면 E(Fp)는 유안 군이다. N을 구하는 방법으로는 앞에서

살펴본 Schoof 와 Elkies 와 Atkin에 의해 다항식 시간 알고리즘이 있다. 이 방법들은

p≤ 2 200에 대해서는 매우 유용한 방법이 다. 특별한 경우의 타원 이산대수 문제(ECDLP)는

풀릴 수 있다.

Page 121: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 121 -

● N=p+1인 경우를 "supersingular" 경우라 하고 이것에 관한 타원 이산 수 문제

(ECDLP) 곱 그룹에 관한 이산 대수 문제로 축소할 수 있다. 일반적으로 N 이 p k-1을 나

눈다면 이것에 관한 타원 이산대수 문제(ECDLP) 는 원소의 개수를 p k개로 갖는 유한체의

곱 그룹에 관한 이산 대수 문제로 축소할 수 있다.

● N=p인 경우는 ꡒanomalousꡓ경우라 하고 이것에 관한 타원 이산대수 문제(ECDLP)

유한체 Fp에서의 덧셈으로 축소할 수 있다.

● N이 작은 소수들로 나누어지면 Pohlig, Hellman 과 Po1lard의 방법을 용하면 O( p)안

에 이산대수 문제를 풀 수 있다. 여기서 p'는 N을 나누는 가장 큰 소수이다.

● 직접적인 연관성은 없지만, genus g 가 g≫p를 만족하는 야코비안 J를 는 곡선에 대한

이산대수 문제는 쉽게 풀린다. J(Fp)는 높은 확률로 순환군이 아니기 때문에 위의 방법들이

적용이 된다. 타원 곡선인 경우에 암호학적인 응용 면에서는 일반적으로 E(Fp)가 소수 위

수를 갖는 순환군이 되는 E를 택한다. 이러한 방법들이 모두 가능하지 않다고 가정하고, 타

원 곡선 위에서의 Index Calculus 방법을 적용시켜보자. 아래에서 Index Calculus 방법이

어떻게 적용이 되는가를 살펴보자.

● 축소하였을 때 E/Fp 가 되는 타원 곡선 E/Q들 중에서 많은 수의 독립한 리 점 즉

P 1, P 2,…, Pr 을 갖는 타원 곡선을 택한다.

● E(Fp) 위의 점 S에 대해서 상구 곱인 S,2S,3S,…을 계산하고 각각의 j에 대하여 jS를

S j∈E(Q)로 상승시킨다. 즉 S j≡jS (modp)이다. 만약에 이것이 성공적이면 우리는 S j를

선형 결합 S j=∑r

i=1ni Pi의 형태로 표현한다.

Page 122: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 122 -

● r개의 jS에 대하여 상승시킨 후에 우리는 r개의 선형방정식 j=∑r

i=1ni logs ( Pi)을 구할

수 있다. 그런 다음 각각의 log s ( Pi)를 구할 수 있다.

● 다음에 T,T+S,T+2S,…를 E(Q)로 상승시킨다. 즉 T+jS를 Tj로 상승시킨다.

Tj=∑r

i=1mjPj이면 log s (T)+j=∑

r

i=1mi logs ( Pi) 이다. 우리는 log s ( Pi)의 값을 알고있기 때문에

log s (T)의 값을 복원할 수 있다.

위의 방법을 실제적으로 적용하는데는 다음과 같이 여러 가지 어려움이 있다.

● 위수와 높음의 방해: 매우 큰 위수를 가지는 타원 곡선을 만드는 것과 매우 작은 정류자

(regulator)를 갖는 것과 E(Fp)의 안 점을 E(Q)상의 점으로 상승시킬 때 그의 높임이 작을

확률은 매우 낮다.

● 만약에 위에 말한 점들을 모두 극복하더라도 실제적인 상승의 문제가 있다. 처음에 한

점 ( x 1, y 1)∈E(Z/pkZ)으로 상승시킨다 하더라도 선택할 수 있는 많은 점들이 있다. 그래

서 새로운 방법을 제시하지 못한다면 이 문제는 극복할 수 없다.

● 타원 곡선 위의 점을 계산하는 방법 E/Q를 최소의 Weierstrass 방정식을 타원 곡선

E.y2+a 1xy+a 3x= x

3+a2 x

2+a 4x+a 6라하고 판별식을 △(E)라 하자. 유리수 r/s∈Q 높

임을 H(r/s)=max{ | |r ,| |s }라고 정의하자. 점 P∈E(Q)의 정규 높임(canonical height)을

h(P)=12limn→∞

1

n 2logH(x(nP))라고 정의하고 두 점 P,Q∈E(Q)에서

<P,Q>=12(h(P+Q)-h(P)-h(Q))를 P,Q의 내적이라고 한다. 이 내적은 E(Q)⊗R에서 양수

이고 P 1,…, P r∈Q 점들에 대한 타원 정류자는 Reg(E)= det(<Pi,Pj>) 1≤i,j≤r이다. 우리는

유계한 높음을 갖는 타원곡선 E(Q)의 점들의 수에 관심이 있다. 높음이 B보다 작은 점들의

개수는 다음과 같이 표현된다 : N(E,B)=#{ P∈E(Q):H(x(P))≤B}. torsion 점들의 개수는 :

T(E)=#E(Q )tors 나타내고 위수 r=r(E)=rank E(Q), a r=πr/2/((r/2)Γ(r/2))은 Rr에 있는

단의 구의 체적이다. 그러면

Page 123: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 123 -

Mazur의 정리에 의해서 T(E)≤16임이 알려졌다. 기하 정수론의 기본적인 결과로부터 다음

과 같은 사실이 알려졌다:

더욱이, torsion 점이 아닌 P∈E(Q)에 대해서 h(P)≥c log | |△(E)추측되고 있다. 여기서

c는 E에 독립한 상수이다. 이 추측은 작은 상수 c에 대해서는 대부분 증명이 되어졌다.

Miller 는 이미 우리가 log B ≫ rlog △가 되게 택하지 않는다면 N(E,B)가 큰 것을 얻는

것이 가능하지 않음을 관찰하였다. Mestre는 log | |△ ≫ rlog r을 증명하였다. 만약에 r

을 크게 잡는다면 △의 값은 매우 거대하게 커진다.

● 작은 높임 점을 갖고 높은 위수를 갖는 곡선

위수가 12 인 타원 곡선은 1982년 전에 알려지지 않은 것처럼 높은 위수를 갖는 타원 곡

선을 갖는 찾는 것은 어렵다. 오늘날 알려진 가장 높은 위수는 23이다. 현재에 알려진 높은

위수를 갖는 타원 곡선을 찾는 방법 으로는 많은 독립한 점들을 포함하는 하나의 또는 2개

의 매개 변수를 포함하는 타원 곡선을 만드는 것이다. 이 방법은 우리가 유한체에서 타원

곡선을 생각하기 때문에 우리의 목적에는 적합하지 않다. 그래서 다른 방법을 생각해보면

초기의 Mestre의 방법을 생각해본다.

Page 124: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 124 -

[ Mestre의 방법]

높은 위수를 갖는 타원 곡선 E(Q)을 만들기 위해서 작은 소수 l=2,3,5,… l 0들에 대해서

#E(F1)이 최대가 되는 E의 계수들을 택하기 위해서 동치 조건을 사용한다. 다음에 판별식

△(E)가 이 동치조건에 맞도록 하는 대강 적은 판별식을 찾는다. 그런 다음 2개의torsion

점 ( e 1,0)의 가장 근접한 정수 점을 찾는다. 즉 e 1<x< e 1+5000을 만족하는 점 (x,y)를

구한다. 이렇게 선택한 곡선을 Mestre 곡선이라고 한다. Mestre 곡선을 만드는 알고리듬은

잘 알려져 있다. Mestre의 논문에는 위의 방법을 이용하여 위수가 4부터 12까지의 타원 곡

선의 목록을 작성하였다. 목록을 검토해보면 위수에 대한 상한이 rlog r ≤ log( Cond(E))의

형태를 갖는다. 여기서 Cond(E)는 △의 비 제곱 부분이다.

독립된 점들을 만들기 위한 Mestre의 방법은 h(Pi)≈112 log | |△를 만족해야 한다.

논문의 자료들에 기초한 이론적인 분석을 통해서 유리수 점들의 수를 계산해보면

이 된다. 더욱이 N(E,B)가 이 비율보다 확실하게 큰 타원 곡선을 찾는 것은 가능하지 않

다.

Page 125: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 125 -

● Mod p의 곡선으로부터 높은 위수를 갖는 곡선으로 상승시키는 것

앞에서 언급한 이론적인 문제를 실제의 상황에 응용해보자. 주어진 소수 p에 대하여

Mestre의 방법을 사용하여 E/Fp를 적당히 큰 위수를 갖는 곡선 E/Q로 상승을 시켜 이산

대수 문제를 풀기를 원한다. 계산적인 유계를 살펴보면 E/Fp 의 점을 E/Q의 높음이 기껏해

야 B 인 점으로 상승시키기 위해서는 p에 상당히 근접한 N(E,B)를 필요로 한다. 예로써

N(E,B) ≥ p/210이다. 우리는 하한 logB≥rlog( p

11.93r0.26r)

20πe(p πr

210)2/r 을 구할 수가 있다.

우리는 이상적인 크기의 소수 p (암호학적인 목적에 우리는 280 보다 적은 소수를 사용할

수 없다)에 대하여 허락하는 한 가장 적은 B는 p의 기본적인 멱승이다. 이러한 이유에서 희

망적으로 우리는 B=p20 을 택할 수 있다. 그러나 우리가 알고 있는 사실은 p는 이보다 훨

씬 커야한다. 또한 우리는 현재로는 위수가 24보다 큰 타원 곡선이 발견되지는 않았지만 희

망을 가지고 위수가 100부터 200까지를 가지는 적당한 상승 곡선 E/Q를 잡을 수 있다고

가정하자. B=p20 이고 생성자 P1,P2…Pr을 알고 있다고 하더라도 Miller의 논문에 의하면

우리는 중대한 문제에 직면하게된다. 높음이 p20 보다 적은 상승된 타원 곡선이 있다하더라

도 E(Fp)의 점을 어떻게 E(Q)로 상승을 시키는 것이 문제이다. 확실히 우리는 모든 적당한

선형 결합 ∑niPi 를 살펴보기를 원하지 않는다. 왜냐하면 이 방법은 N(E,B) 개의 원소를

갖는 집합의 전수 조사와 다름이 없고 B의 크기는 N(E,B)≫≪p 가 되도록 택하기 때문에

현실적으로 불가능하다. 한편, p-adic 하게 주어진 점을 상승시키는 방법을 생각해보면 첫

번째로 법 p2 으로 상승시키고 다음으로 법 p3 등등으로 상승시킨다. 만약에 우리가 이것을

정확하게 하였다면, 법 p20 으로 상승시킨 경우에 우리는 원하는 점을 구할 수 있다. 왜냐하

면 원하는 점의 x 좌표는 높음이 p20 보다 적기 때문이다. 불행히도 p-adic 상승 단계에서

우리는 전번의 단계에서 각각의 상승에 대해서 p 개의 가능한 점을 갖는다. E(Q) 의 점에

정확히 가는 경로를 구하는 방법이 아직 개발되지 않는 상태이므로 이 방법을 검토해야 할

점이 p 20개가 있다. 이일은 가능한 작업이 아니다. 여기에서 중요한 점은 대부분의 E(Fp)

점의 높음이 ≤B 보다 적은 기본적인 p의 멱승이 되는 B 를 택하고 그러한 큰 B 에 대

해서 E(Fp) 위에 주어진 점에 대하여 원하는 상승된 점을 찾는 방법으로는 현재로는 전수

조사의 방법 외는 없다는 것이다. 이것이 곱셈 군의 이산 대수 문제에 관한 Index Calculus

방법이 타원 곡선의 이산대수 문제에 이용하는 것은 어렵다는 이유이다.

Page 126: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 126 -

(4) Xedni 알고리즘

여기에서는 ECDLP를 해결하기 위하여 Xedni ca1cu1us라는 새로운 알고리듬을 기술한다.

Xedni calculus 의 각각의 중요한 단계들은 알고리듬의 이론적인 분석을 근사적으로 주기

위해서 충분히 성질을 제한하기 위해서 충분히 실험적이다. 문제의 실제적인 과정은

Mestre의 높은 위수를 가지는 동치 조건 (반대로)을 이용하기 위하여 어떤 타원곡선이 예

상한 것보다 적은 위수를 가지게끔 상황을 만들어 가는 것이다. 이러한 이유 때문에 프로그

래밍 작업과 설치를 해서 실제적으로 Xedni calculus를 시험해 보는 것이 필요하다. Xedni

calculus 와 Index calculus 의 관계를 설명해보면 Index calculus를 ECDLP에 사용하기

위해서 우리는 처음으로 타원 곡선 E/Fp를 E/Q로 상승을 시키고 다음으로 많은 점들을

E(Fp)에서 E(Q) 로 상승을 시킨다. 마지막으로 ECDLP를 해결하기 위해서 이러한 상승된

점 사이의 관계를 이용한다. 두 가지의 어려운 점이 있다. 첫째 타원 곡선 E/Fp 를 독립하

면서 작은 높음(height)을 갖으면서 많은 유리 점들을 포함하는 E/Q 로 상승을 시키는 것

이 어렵다. 다음으로 E(Fp)의 점을 E(Q) 로 상승을 시키는 것이다. 이 두 문제는 매우 어

렵다. 이러한 문제들 때문에 Xedni calculus 는 문제를 처음부터 달리 생각해본다. 처음에

우리는 E(Fp) 위의 점 P 1,…P r를 택하고 정수 좌표를 가지는 점들 Q 1,…, Q r 로 상승을

시킨다. 그런 다음 Q 1,…, Q r 를 지나는 타원 곡선 E(Q)를 택한다. 이것은 단순한 형태의

선형 대수 문제이다. 그런 다음 상승 곡선의 문제와 Fp 의 점들을 Q로 상승을 시키는 것

이 매우 간단한 작업이다. 마지막으로 점 Q 1,…, Q r 들이 E(Q)위에서 종속(dependent)

하다면 ECDLP 는 거의 해결이 된 것이다. 그래서 Xedni calculus의 목적은 타원 곡선이

예상한 위수보다도 적은 위수를 갖는 것을 찾는 것이다. 불행하게도 Neron과 Masser는 위

의 방법으로 만들어진 점 Q 1,…, Qr 들은 독립 하다는 것을 제시하였다. 그래서 본 장에서

는 몇 가지의 방법을 도입한다. Mestre는 큰 위수를 가지는 타원 곡선을 만드는 방법으로

동치관계를 이용하였다. 기대한 위수보다도 큰 위수를 가지는 타원 곡선을 찾기 위해서

Mestre의 반대 방법을 이용한다.

[Xedni 알고리즘]

[단계 1]

정수 4≤r≤9을 고정하고 정수 M을 적은 소수들의 곱이라고 하자. 우리는 p는 M을 나누

지 못한다고 가정하자. (여기서 정수 r은 상승이 되야 할 점들의 개수이고 정수 M은 보조

동치 조건에 포함되는 소수들의 곱이다.)

[단계 2]

정수 계수를 가지고 아래의 조건을 만족하는 r 개의 점 PM,i=[ xM,i,yM,i,zM,i], 1≤i≤r,을 택한

다.

i) 다음 네 개의 점 [1,0,0],[0.1.0],[0,0,1],[1,1,1]은 포함한다.

ii) M을 나누는 모든 소수 p에 대해서 행렬 B(PM,1,…PM,r)는 법 l 에 대해서 최대 위수

를 가진다. 여기서 r개의 점들 Pi=[ x i, y i, z i], 1≤i≤r, 에 대해서 r행 10 열의 행렬

B=B( P 1,…, Pr)를 정의한다. B 의 1행, 2 행, r 행은 아래와 같다.

Page 127: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 127 -

즉 i 행은 세 개의 변수 x i, y i, z i로 만들어지는 삼차 식이다.

더욱이 PM,1,…, PM,r은 아래의 항등식을 만족하도록 계수 u M,1,…, uM,10을 택한다.

조건(i)은 uM,1=uM,4=uM,10=0을 말해준다. 여기에서 중요한 점은 조건 (i)과 (ii)를 만족시

키는 가능한 작은 정수들을 택하는 것이다. 특별한 소수 p에 대해서는 법 M 에 대하여 계

산하는 것은 법 l에 대해서 계산하는 것으로 충분하다. 중국인 나머지 정리를 이용하여 법

M에 대한 uM,j를 구한다. PM,i의 선택은 다음에 상승되는 점들에 의해 만족되는 선형 관

계를 제안하는 점으로 택한다.

[단계 3]

r 개의 무작위(random) 정수 쌍들 ( s i, t i)을 택한다. 여기서 1≤ s i, t i< N p이다. 그리고

1≤i≤r,에 대해서 다음과 같이 정의된 점들 Pp,i= s iS- t iT∈E(Fp)를 Pp,i=( x p,i, y p,i)을

계산한다.

[단계 4]

변수 변환을 이용하여 P 2의 형태로 바꾼다.

X´=a 11X+a 12Y+a 13Z, Y´=a 21X+a 22Y+a 23Z,

Z´=a 31X+a 32Y+a 33Z이다. 처음의 네 개의 점은

P p,1=[1,0,0], P p,2=[0,1,0], P p,3=[0,0,1], P p,4=[1,1,1], 이 된다. E/Fp는 다음의 형태를

갖는다.

Page 128: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 128 -

실제로 up,1=up,4=up,10=0이고 다른 up,i의 합은 법 p에 대해서 0이다. 행렬에 의한 변

수 변환은 Fp 위에서 9 개의 변수를 가지는 8개의 재차 방정식을 푸는 것으로 쉽게 계산

될 수 있다.

[단계 5]

중국인 나머지 정리를 이용하여 모든 1≤i≤10에 대해서 u' i≡u p,imod p와

u' i≡uM,i mod M를 만족하는 u' i,…, u' 10 를 찾는다.

[단계 6]

주어진 점들을 P 2 (Q)로 상승을 시킨다. 즉 모든 1≤i≤10에 대해서 P' i≡Pp,i mod p와

P i= PM,1mod M를 만족하는 P i=[ x i, y i, z i],1≤i≤r를 찾는다. 항등 조건은 P 2 (Q)에서

계산하는 것이기 때문에 중국인 나머지 정리로부터 쉽게 구할 수 있고 작은 좌표를 가지는

해를 찾기 위해서 개선된 gcd-type 알고리듬을 사용할 수 있다.

[단계 7]

B=B( P 1,…, Pr) 는 앞에서 언급한 행렬이다. 선형방정식 Bu=0 을 생각하자. 부가적인 성

질 u=[ u' 1, u' 2,…, u' 10]modMp를 만족하는 u=[ u 1,…, u 10] 를 구한다. 여기서

u' 1, u' 2,…, u' 10 는 단계 5에서 계수들이다. 대응되는 타원 곡선을

라 하자. Cu는 다음 조건을 만족한다.

○ 점들 P 1,…, P r는 Pp,1,…, Pp,r 로 상승이 된다.

○ 곡선 Cu는 E/Fp의 상승된 곡선이다.

○ 곡선 Cu는 P 1,…, P r을 지난다.

Page 129: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 129 -

그래서 Index calculus에서 발생되는 상승에 관계되는 문제는 Xedni calculus에서는 일어

나지 않는다.

[단계 8]

좌표를 변환하여 Cu 를 P 1=[0,0,1] 를 원점으로 하는 표준 minimal Weierstrass 형태

로 바꾼다. rhisrP된 식은 다음과 같이 표현한다.

여기서 a 1,…, a 6∈Z이고 Q 1, Q 2,…, Q r 는 P 1, P 2,…, Pr의 변환된 점들이다.

c 4 (u), c 6 (u),△(u)를 항상 쓰는 형태이다. 일반적으로 좌표 변환은 단순한 알고리듬이지만

Cu의 계수가 크다면 정확한 Eu 를 계산하지 않고도 알고리듬의 나머지를 구현하는 것이

가능 할 것이다.

[단계 9]

단계 7 의 선형방정식의 해를 생성해내는 작은 정수 기저 v 1,…, v 10-r 를 구한다. 각각

3 10-r개의 해 e 1,…, e 10-r∈{-1,0,1} 에 대해서

대입해서 대응되는 타원 곡선 Eu 를 계산하고 판별식을 구한다. 만약에 △(u) 가 △(u)

보다 작으면 u를 u'으로 치환한다. Bu=0의 작은 기저를 찾는 것은 LLL 알고리듬을 써서

구할 수 있다.

[단계 10]

Q 1, Q 2,…, Qr∈Eu (Q)에 대해서 독립한지를 검사한다. 그것들이 독립하면 단계 2 또는 3

으로 가고, 독립하지 않다면 종속 관계

를 계산하고 n1=-n2-n3-…-nr,을 계산한다. 계속해서 다음 단계를 한다. 이 과정을 실

행하기 위해서 2가지 방법이 있다. 내림 (descent)방법은 보조 소수들의 집합 Q를 선택하

고 사상

Page 130: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 130 -

을 관찰하고 이차 상호성 (quadratic reciprocity)을 이용한다. 높음(height) 방법은 정규 높

임 정류자 < Qi, Q j> 2≤i,j≤r 의 판별식을 구하고 만약에 정류자가 거의 0라면 열에 LLL 알

고리듬을 사용한다. 점들이 독립하면 종료가 되지 않지만 내림 방법은 일반적으로 독립성을

살피는 데에는 빠르다. 변수 변환아래서 Cu≅Eu이기 때문에 우리는 P i↔Q i 이고

Q 1=O이다. 위의 선형 식은 나누는 것(divisors)들에 대해 동치성

을 갖고 이러한 관계에서 Cu에서는 다음의 관계식을 얻을 수 있다.

[단계 11]

s=∑r

i=1ni si 와 t=∑

r

i=1ni ti 를 계산한다. 만약에 gcd(s,Np)>1이면 단계 2 또는 3으로 돌아간

다. 그렇지 않으면 역원 ss'≡1 mod N p을 구한다. 그런 다음 log T(S)=s't mod N p이고

ECDLP는 풀린다.

다음으로, Xedni 알고리즘을 분석해 보자.

정리 2.2.15. 어떤 가정 하에서 Fp 위에 정의된 타원곡선에 이산로그를 찾는 Xedni 알고리

즘이 성공할 확률이 C0/p 보다 적게되는 상수 C0 가 존재한다.

C0가 다소 커지면 이 결과는 문제를 즉시 해결하는 방법이 되지 않는다. P∈E(Q)안의 모

든 torsion 점들에 대한 최소의 정규 logarithmic 높임 h(P)를 m 이라고 하자 Lang의 추

측에 의하면 m > C 3 log| |D를 만족하는 양의 상수 C 3 가 존재한다.

Page 131: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 131 -

보조정리 2.2.16 D는 상승된 곡선의 판별식이고 Pi 들은 상승된 점들, h 는 정규

logarithmic 높임이고 Xedni 알고리즘 안에서 log| |D≥C 1 max i=1,…,r h( P i) 라고 가정하

자. C1 는 양의 상수이다. Lang의 추측아래서 상승된 점들이 서로 종속이면 그 점들은 상

수 C2에 유계한 계수를 갖고 자명하지 않는 관계식을 갖는다.

정리에 있는 상수 C0 를 추정하기 위해서 우리는 다음을 가정한다.

1. Lang의 추측아래서 상수 C3 는 0.00005보다 크다.

2. r=2,3,4,5,6에 대해서 7개의 계수 변수들을 갖는 Weierstrass 형태의 타원 곡선을 사용

한다. Siege1의 보조 정리로부터 r 개의 점들의 좌표의 길이에 대한 계수 길이의 비를 가

정한다. 더욱이 판별식의 길이는 계수의 길이의 12배라고 가정한다.

3. r=7,8,9 에 대해서 10개의 변수 계수를 갖는 일반적인 삼차 식을 사용한다. 계수에 대

한 비율은 1+3r/(10-r) 이라고 가정한다. 더욱이 판별식의 길이는 계수의 길이의 110배라

고 가정한다.

4. Q 에 정의된 타원 곡선은 자명하지 않는 torsion 점들이 없다.

우리는 정리에 있는 유계를 사용한다. T,C1,C2와 C3는 위의 네 가지의 가정에 의해 결정

된다.

이고 C3=0.00005 이고 T=1 이고 r=2,3,4,5,6 에 대해서 C1=12(1+3r/(7-r)) 이고

r=7,8,9에 대해서는 C1=110(1+3r/(10-r)) 이다. 우리는 p≈ 10 50에 대해서는 정리가 r≤5

인 경우는 Xedni 알고리듬의 사용이 적용되지 않는다는 결론을 내린다. Mestre의 조건에

반대로 하기 위해서 실험적인 작업은 r=2,3,4 를 택한다. p≈ 10 50 일 때 r=6인 경우에는

판별식이 적어도 10000 digits 이고 r=9인 경우에는 150000 digits이다. 이것은 명백히 알

고리듬을 구현하는 것이 어렵다는 것을 보여주는 명백한 증거다.

Page 132: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 132 -

5. 초타원곡선 암호시스템 (Hyperelliptic Curve Cryptosystem)

가. 초타원 곡선 암호시스템

초타원 곡선(Hyperelliptic curve)은 대수적 곡선의 특별한 부류(class)이고 타원곡선의 일

반화로 볼 수 있다. genus 1인 초타원 곡선이 타원곡선이다. 1989년 Koblitz는 초타원 곡

선의 야코비안(Jacobian)의 군 구조(Group Structure)를 이용한 암호법을 제시하였다. F를

완전한 체라 할 때 F위의 genus가 g 인 대수적 곡선 C를 초타원 곡선이라 하면 타원곡선

은 genus가 1인 야코비안으로 초타원 곡선 암호법은 이를 일반화한 것이다. 이 때 초타원

곡선 암호법에 이용되는 야코비안 J(F)는 초타원 곡선의 genus가 g일 때 2g개의 순환군의

직합이다. 타원곡선 군 E(F) (genus 1인 Jacobian)은 기껏해야 2개 순환군의 직합이다. 타

원곡선 암호법처럼 키 교환이나 서명에 쓰일 수 있다. Adleman, DeMarrais, Huang은

genus g가 큰 초타원 곡선에서 Jacobian의 이산대수 문제를 subexponential 시간 안에 풀

수 있는 알고리즘을 제시하였다. 그러나 초타원 곡선 암호법은 지금까지 타원곡선 암호법에

비해 안전한 것으로 여겨지고 있다. 그러면 초타원 곡선에 관한 성질을 좀더 자세히 살펴보

자.

정의 2.2.17 F가 체(field), F는 F의 대수적 폐포(algebraic closure)라 하자. F위에서

genus g(≥1)인 초타원 곡선 C는 F [u,v]에서의

Page 133: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 133 -

형태의 방정식이다. 여기서, h(u)∈F[u]는 많아야 차수가 g인 다항식이고, f(u)∈F[u]는

차수 2g+1인 모닉(monic)다항식이다. 그리고

동시에 만족시키는 해 (u,v)∈F×F은 존재하지 않는다.

C상의 특이점(singular point)은 v 2+h(u)v=f(u), 편도함수 방정식을

2v+h(u)=0, h'(u)v-f(u)=0 동시에 만족시키는 해 (u,v)∈F×F 이다. 위의 정의는 초타원

곡선은 임의의 특이점을 갖지 않음을 말한다. 이 절의 나머지 부분에서 체 F와 곡선 C는

불변이라고 가정한다. 주어진 체의 표수가 홀수이면 h(u)=0, 2이면 h(u)=1로 변환할 수

있으므로 일반적으로 초타원 곡선은

와 같이 표현할 수 있다.

정의 2.2.18 K를 F의 확대체라 하자. C상의 K-유리점( K -rational points)의 집합

C(K)는 특별한 무한원점 Ο와 함께 C의 방정식 (1)를 만족하는 K× K에 속하는 모든 점

P=(x,y)의 집합이다. 무한원점은 사영평면 P 2 (F)에 속한다. 이 점은 동차화된 초타원 곡

선방정식을 만족하는 무한 직선 상에 놓여 있는 유일한 사영점이다. 만약 g≥2면 Ο은 특이

점이다 : O ∈ F×F 이므로 이것이 허용된다. C(F)를 간단히 C로 표시한다. Ο가 아닌 C

의 점을 유한점 (finite points)이라고 부른다.

Page 134: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 134 -

초타원 곡선 C상의 유한점을 P=(x,y)으로 놓는다. P의 opposite(다른 한 쪽)는 점

P=(x,-y- h(x)) 이다. ( P는 진짜 C상의 점이다). 우리는 또한 Ο의 다른 한쪽은 Ο그 자

체로 정의한다. (O=O). 유한점 P가 P=P를 만족하면 P를 특별한 점 (special point)이라

고 부른다. 그렇지 않을 때 그 점을 보통(ordinary)점이라 부른다.

정의 2.2.19. F 위의 C의 좌표환(coordinate ring) F[C]는 F[u,v]/( v 2+h(u)v-f(u))이다.

비슷하게 F[C]=F[u,v]/( v 2+h(u)v-f(u))이다. F[C]의 원소는 C상의 다항식 함수

(Polynomial function) 라고 부른다.

보조정리 2.2.20. 다항식 r(u,v)=v 2+h(u)v-f(u)는 F 위에서 기약 다항식이다. 따라서

F[C]는 정역(integral domain)이다.

F[C] 에 속하는 각각의 다항식 함수 G(u,v)에 대하여 v 2대신 f(u)-h(u)v를 반복적으로

치환하면 결국 F[u]에 속하는 적당한 a(u),b(u)에 의해 G(u,v)=a(u)-b(u)v와 같은 표현

을 얻는다. 이런 형태로의 G(u,v)의 표현(representation)은 유일함을 알 수 있다.

정의 2.2.21. G(u,v)=a(u)-b(u)v 를 F[C]에 있는 다항식 함수라 하자. G(u,v)의 공액

(conjugate)은 다항식함수 G(u,v)= a(u)+b(u)(h(u)+v)이다.

정의 2.2.22. G(u,v)∈F[C]의 norm은 다항식 함수 N(G)=GG이다.

노름함수는 이변수의 다항식 함수에 관한 문제를 일변수 다항식에 관한 문제로 변화하는데

유용하다.

보조정리 2.2.23. G, H∈F[C]를 다항식 함수라 하자.

Page 135: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 135 -

1) N(G)는 F[C]에 속하는 다항식이다.

2) N(G)=N(G)이다.

3) N(GH)=N(G)N(H)이다.

정의 2.2.24. F위의 C의 함수체(function fie1d) F(C)는 F[C]의 분수체 (the fie1d of

fractions)이다. 비슷하게, 함수체 F(C)는 F[C]의 분수체이다. F(C)의 원소는 C상의 유리

함수(rational functions) 라고 부른다.

F[C] 는 F(C)의 부분환이다. 즉, 모든 다항식 함수는 또한 유리함수이다.

정의 2.2.25. R∈F(C), P ∈C, P≠O라 하자. 그러면 R=G/H,H(P)≠0인 다항식 함수

G, H∈F[C]가 존재할 경우 R은 P에서 정의되어진다고(defined at P) 말한다, 그러한

G, H∈F[C] 가 없는 경우에 R는 P에서 정의되어지지 않는다고 말한다. 만약 R이 P에서

정의되어질 경우 P에서 R의 값은 R(P)=G(P)/H(P)인 것으로 정의한다.

정의 2.2.26. G(u,v)=a(u)-b(u)v∈F[C] 를 0아닌 다항식 함수라고 하자. G의 차수

(degree) 는 deg G=max{ 2 deg u (a),2g+1+2 deg u (b)}로 정의한다.

보조정리 2.2.27. G, H∈F[C]라 하자.

Page 136: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 136 -

정의 2.2.28. R=G/H∈F(C)를 유리함수라 하자.

1) degG<degH 이면 R(O)=0으로 정의한다.

2) degG>degH 이면 R는 0에서 정의되지 않는다.

( R is not defined at Ο)

3) degG=degH 이면 R(O)는 G와 H의 (deg함수에 관한)최고차 계수의 비율(ratio)로 정

의되어진다.

다음은 매개변수(parameter)의 개념과 유리함수의 영(zero)과 극(poles)의 위수(order)에

관하여 살펴본다.

정의 2.2.29. R∈F(C)를 0이 아닌 유리함수라 하자. P∈C라 놓는다. 만약 R(P)=0이면 R

는 P에서 영(zero)을 갖는다고 말한다. 만약 R이 P에서 정의가 안 되는 경우에는 R은 P

에서 극(pole)을 갖는다고 말하고 R(P)=O로 쓴다.

보조정리 2.2.30. G∈F[C]을 0이 아닌 다항식 함수, P∈C라 하자. 만약 G(P)=0이면

G( P)=0이다.

보조정리 2.2.31. P=(x,y)∈C이다. P에서 영(zero)을 갖는 F[C]에 속하는 0이 아닌 다항

식 함수 G=a(u)-b(u)v, 그리고 x는 a(u)와 b(u)의 근(root)이 아니라 가정한다. 그러면

G(P)=0 ⇔ P 는 특별한 점(special point)이다.

보조정리 2.2.32. P=(x,y)가 C상의 보통점, G=a(u)-b(u)v∈F[C]를 0아닌 다항식 함수라

고 놓는다. G(P)=0이고 x는 a(u)와 b(u)의 근이 아니라고 가정한다. 그러면 G는

(u-x)sS 형태로 쓸 수 있다. 여기서 s는 N(G)를 나누는 (u-x)의 최고멱이고, S∈F(C)

는 영(zero)도 아니고 P에서 극(pole)도 가지지 않는다.

Page 137: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 137 -

보조정리 2.2.33. P=(x,y)를 C상의 특별한 점이라 하자. 그러면 (u-x)는 (v-y)2S(u,v)형

태로 쓸 수 있다. 여기서 S(u,v)∈F(C)는 P에서 영 또는 극중 어느 것도 갖지 않는다.

보조정리 2.2.34. P∈C라 놓는다. 다음과 같은 성질을 만족하는 U(P)=0가진 F(C)에 속하

는 함수 U가 존재한다 : F[C]에 속하는 각각의 0이 아닌 다항식 함수 G에 대하여,

G=UdS, S(P)≠0, O인 정수 d와 F[C]에 속하는 함수 S가 존재한다. 더욱더, 수 d는 U

의 선택에 의존하지 않는다. 함수 U를 P에 대한 uniformizing 매개변수라고 부른다.

정의 2.2.35. C를 F[C]에 속하는 0이 아닌 다항식 함수라 하자. P∈C, U∈F(C)를 P에

대한 uniformizing 매개변수라 하자. G=UdS, S∈F(C), S(P)≠0, O일 때, 점 P에서 G의

위수 (order)는 ordpG=d로 정의한다.

보조정리 2.2.36. G 1, G 2∈F[C]를 0이 아닌 다항식 함수라 하자. P∈C, ord p

G 1= r 1, ordp G 2= r 2라 하자.

정의 2.2.37. G=a(v)-b(u)v∈F[C]를 0이 아닌 다항식 함수라 하자. P∈C 로 놓는다. P

에서 G의 위수 ordp (G)는 다음과 같이 정의한다.

Page 138: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 138 -

1) 만약 P=(x,y)가 유한점이면 a(u)와 b(u)두 개를 나누는 (u-x)의 최고멱을 r이라 놓는

다. 그리고 G(u,v)=(u-x)r ( a 0 (u)- b 0 (u)v)로 쓴다. 만약 a 0 (x)- b 0 (x)y≠0이면 s=0으로

놓는다. 만약 a 0 (x)- b 0 (x)y=0이면 N( a 0 (u)- b 0 (u)c)= a 02+a 0 b 0h- a 0

2f를 나누는

(u-x)의 최고멱을 s 라 놓는다. 만약 P가 보통점이면 ord pG=r+s로 정의한다. 만약 P

가 특별한 점이면 ord pG=2r+s 로 정의한다.

2) P=O이면 ordpG=-max{ 2 deg u (a), 2g+1+2 deg u (b)} 로 정의된다.

보조정리 2.3.11 G∈F[C]를 0이 아닌 다항식 함수라고 하자. P∈C로 놓는다. 그러면

ord P (G)= ord P (G) 이다.

정리 2.2.38. G∈F[C]를 0이 아닌 다항식 함수라 하자. 그러면 G는 유한개의 영과 극을

갖는다. 더욱이, ∑P∈cord P (G)=0 이다.

정의 2.2.39. R=G/H∈F(C)를 0이 아닌 유리함수라 하자. P∈C일때 P에서 R의 위수

(order)는 ord P (R)= ord P (G)-ord P (H) 로 정의되어진다.

다음은 약수(divisor)의 기본 성질을 제시하고 초타원 곡선의 야코비안을 소개한다.

Page 139: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 139 -

정의 2.2.39. 어떤 약수(divisor) D는 C상의 점들의 형식적인 합(sum)이다 즉,

D=∑P∈Cm pP, mp∈Z이다. 여기서 정수들 mP중 오직 유한개 만이 0이 아니다 D의 차수

(degree)는 degD= ∑P∈Cm P

이다 P에서 D의 위수(order)는 mP이다; ordp(D)= mP로 쓴다.

모든 약수의 집합 D는 아래의 덧셈 구식에 따라 덧셈군을 이룬다;

차수 0인 모든 약수의 집합 D 0는 D의 부분군이다.

정의 2.2.40. D 1= ∑P∈CmPP 와 D 2= ∑

P∈Cn PP를 약수이라 하자.

D 1와 D 2의 최대공약수는

로 정의되어진다. gcd( D 1, D 2)∈ D 0이다.

정리 2.2.41. R=F[C]가 0이 아닌 유리함수(rational function)라 하자. R의 약수 (the

divisor of R)는 div(R) = ∑P∈C( ord pR)P로 정의한다. 만약 R=G/H이면 div(R) = div(G) -

div(H)이다.

정리 2.2.41은 유리함수의 약수는 유한 형식적인 합(finite formal sum)이고 차수 0 을 갖

음을 보인다.

보조정리 2.2.42. G∈ F[C]가 0이 아닌 다항식 함수라고 하자. 또, div(G)= ∑P∈Cm PP 로

놓는다 그러면 div( G)= ∑P∈Cm PP 이다.

정리 2.2.43. 어떤 약수 D∈D0 가 F(C)에 속하는 적당한 0이 아닌 유리함수 R에 대해

D=div(R)일 경우에 D는 주약수(Principal divisor)라고 부른다. 모든 주약수의 집합 P는 D0

의 부분군이다. 잉여군(quotiet group) J=D0/P는 곡선 C의 야코비안(jacobian)이라고 부른

다. 만약 D1, D2∈D0, D1-D2∈P 이면 D1~D2로 쓰고 D 1과 D 2는 동치인 약수(equivalent

divisors) 라고 부른다.

정의 2.2.44. D= ∑P∈Cm PP를 약수(divisor)라 하자. D의 support(버팀)는 집합 supp(D)={P

∈C | mP≠0}이다.

Page 140: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 140 -

정의 2.2.45. 반 간략화된 약수 (semi-reduced divisor)는 D= ∑mi-(∑mi)O형태의 약수

이다. 여기서, 각각의 mi≥0이고 Pi=Pi(이 경우에 mi=1)인 경우에는 P i∈supp(D)일

때는 P i∉ supp(D)인 유한점(finite pints)이다.

보조정리 2.2.46. D0에 속하는 각각의 약수 D에 대해 D~D1인 D0에 속하는 반 간략화된

약수 D1이 존재한다.

다음은 야코비안의 반 간략화된(semi-reduced) 약수에 대한 다항식표현을 설명한다. 이것

은 야코비안의 원소를 더하는 효율적인 알고리즘을 유도한다.

보조정리 2.2.47. P=(x, y)가 C상의 보통점, P∈ FC를 P에서 극을 갖지 않은 유리함수라고

하자. 그러면, 0이상인 임의의 k에 대하여, R=∑∞

i=0c i (u-x)

i+(u-x) k+1 Rk(여기서 Rk는 P에

서 극을 갖지 않는다)가 되는 F의 유일 한 원소 c 1, c 1…, c k와 R k∈ F(C)가 존재한다.

Page 141: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 141 -

보조정리 2.2.48. P=(x, y)를 초타원 곡선상의 보통점이라 하자. 그러면 1이상의 각각의 k

에 대해,

이 되는 F[u]에 속하는 유일한 다항식 bk(u)가 존재한다.

다음 정리는 반 간략화된 약수가 어떻게 두 개의 다항식 암수의 약수(divisors)의 gcd로 표

현될 수 있는지를 보여준다.

보조정리 2.2.49. D=∑mi Pi-(∑mi)O 를 semi-reduced divisor라 하자.(여기서

Pi=( x i, y i)) a(u)=∏(u-x i)mi로 놓자. 그러면 다음의 1), 2), 3)을 만족하는 유일한 다

항식 b(u)가 존재하면

1) deg ub< deg ua,

2) mi≠0 모든 i에 대해

3) a(u)는 (b(u)2+b(u)h(u)-f(u))b(xi)=yi. 를 나눈다. 그러면 D=dcg(div(a(u)), div(b(u)-v)

이다.

(gcd(div(a(u)), div(b(u)-v))는 보통 div(a(u),b(u)-v)로 약해서 쓴다. 또는 더 간단히

div(a,b)로 약해서 쓴다.

보조정리 2.2.50. a(u), b(u)∈ F[u]는 deg ub< deg ua인 것이라 하자. 그러면 a|b 2|+bh-f

이면 div(a, b) 는 반 간략화된 약수이다.

다음은 간략화된 약수(reduced divisor)의 개념을 정의하고 잉여군 J=D 0/P의 각 잉여류

(each coset)가 정확히 한 개의 간략화된 약수를 갖는다는 것을 증명한다. 그러므로 우리는

J의 각각의 원소를 이 원소의 간략화된 약수와 동일시(identify) 할 수 있다.

Page 142: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 142 -

정의 2.2.51. D=∑mi Pi-(∑mi)O를 반 간략화된 약수라 하자. 만약 ∑mi≤g(g는 C의

genus)인 경우에 D를 간략화된 약수라 한다.

정의 2.2.52. D=∑mpP를 약수(divisor)라 하자. D의 norm은 다음과 같이 정의한다.

D 0에 속하는 어떤 약수 D가 주어졌을 때 D1~D, | D 1 |≤ |D |인 반 간략화된 약수 D 1를

구할 수 있다.

보조정리 2.2.53. R를 F(C)에 있는 0이 아닌 유리함수라 하자. 만약 R이 유한극(finite

poles)을 갖지 않을 경우에 R는 다항식 함수이다.

정리 2.2.54. D 0에 속하는 각각의 divisor D에 대해 D~D1인 유일한 간략화된 약수 D1이

존재한다.

다음은 야코비안의 덧셈 연산에 관하여 살펴보자. 유한체 F의 위에서 정의된 genus g인 초

타원 곡선을 C라 하자. J를 C의 야코비안이라 하자. P=(x, y)∈C라 하자. F위에서의 F의

자기동형사상(automorphism of F over F)을 σ라 하자. 그러면 Pσ=( Xσ,Yσ) 또한 C상

의 점이다.

정의 2.2.55. 어떤 약수(divisor) D는 만약 F위의 F의 모든 자기동형사상 σ에 대해 D σ

가 D와 같을 경우에 F위에서 정의되어진다고 (to be defined over F)말한다. 즉, 주약수

(principal divisor)가 F위에서 정의되어진다는 것은 이 주약수는 F에 있는 계수를 갖는 유

리함수의 약수이다.

Page 143: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 143 -

F위에서 정의된 대표원(representative)을 갖는 J에 있는 모든 약수류(a1l divisor classes)

의 집합 J(F)는 J의 부분군이다. J(F)의 각각의 원소는 reduced divisor div(a, b)와 같은

유일한 대표(representation)를 갖는다. 여기서 a,b∈ F[u], degua≤g, degub<degua이다.

그러므로 J(F)는 사실상 유한 아벨군이다. 이 절은 이 군에 있는 원소를 더하는 효율적인

알고리즘을 제시한다. F위에서 정의된 두 개의 간략화된 약수 D1=div(a1,b1), D2=div(a2,b2)

라 하자. a 1, a 2, b 1, b 2∈F[u]. 다음의 알고리즘은 D~D1+D2가 되는 a,b∈ F( [u]을 가

진 반 간략화된 약수 D=div(a,b) 를 발견한다. 알고리즘 2는 D~D’인 간략화된 약수D'를

찾는다. 기호 b mod a는 b 가 a로 나눌 때의 나머지 다항식(remainder polynomial)을 나

타낸다. 다음 두 알고리즘은 1989년 Kobilitz에 의하여 제시되었다.

[알고리즘 1]

입력 : F위에서 정의된 두 개의 간략화된 약수인

출력 : D1+D2~D인 F위에서 정의된 반 간략화 된 약수 D=div(a,b)

를 발견하기 위해 유클리드 알고리즘을 사용한다.

인 d,c1,c2,∈F[u]을 발견하기 위해 유클리드 알고리즘을 사용한다.

로 놓는다.

Page 144: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 144 -

그러면 d= s 1 a 1+ s 2 a 2+ s 3 ( b 1+ b 2+h)이다.

다음은 반 간략화 된 인수로 간략화 된 인수를 구하는 알고리즘이다.

[알고리즘 2]

입력 : F위에서 정의된 D=div(a,b)

출력 : 유일한 D‘ = div(a’ , b‘) D'~D.

A. a'=(f - bh - b2)a과 b'=(-h-b)mod a'를 설정한다.

B. 만약 degua'>g이면 a←a', b←b'로 놓고 단계 1로 간다.

C. c를 a'의 최고차 항의 계수로 놓고 a'는 c-1a'로 설정한다.

D. (a', b')를 출력한다.

이 같은 군 연산의 구현은 처음에는 상당히 어려운 문제로 여겨졌으나 최근에는 많은 구현

한 결과가 발표되고 있다. EUROCRYPT'99에서 Smart는 초타원 곡선 암호법을 구현한 결

과와 초타원 곡선 암호법이 타원곡선 암호법에 비하여 장점이 없다는 결과를 발표하였다.

초타원 곡선 야코비안의 이산대수 문제는 기존의 일반적인 방법 baby-step/giant-step,

Lambda rho/kangaroo 방법은 그대로 적용되며 타원곡선 이산대수 문제와 같이 Lambda

rho/kangaroo방법의 병렬화가 활발히 연구되고 있다. Adleman, DeMarrais, Huang이 제안

한 방법의 구현에 문제가 있었으나 Paulus와 Flassenberg, Paulus에 의하여 구현되었다.

그 의의 특별한 알고리즘은 아직 발표되지 않고 있다

Page 145: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 145 -

제 3 절 배낭문제(Knapsack Problem)

1. 개요

NP-complete인 knapsack 문제는 Ralph Merk1e과 Martin Hellman에 의한 공개키 암호

체계 실제의 기초로 이용되었다. 이들의 암호 시스템은 암호화와 복호화를 동시에 할 수 있

는 공개키 암호 시스템으로서는 알려진 최초의 것이었다. 그러나, 이 시스템의 대부분은 공

격법이 알려졌다. 명백히, 이는 (knapsack problem을 풀므로써가 아니라 해당되는

Knapsack problem을 풀지 않고서 공개키로부터 개인키를 계산하는 방법을 찾음으로써 해

석될 수 있는 것이다.

가. Knapsack 문제

Knapsack 문제란 어떤 가중치를 갖는 항목들의 집합이 주어졌다고 가정했을 때, 각 항목을

기껏해야 한번만 선택하여 그 가중치의 합이 W(제약한계값)가 되게하려는 것을 해결사항으

로 하는 문제라고 할 수 있다. 처음에는 이 문제가 특별히 어렵지 않은 문제로 보이지만,

현대의 컴퓨터 모형인 확정적 Turing machine으로 polynomial time안에 해결할 방법을 아

직 찾지 못하고 있다. 물론 비-확정적 Turing machine으로는 가능할 수도 있다. 왜냐하면,

비-확정적 Turing machine은 여러가지 가능성에 대해 guessing과 의사결정 가지치기를 수

행하기 때문이다. 그러나, 어떠한 Knapsack problem은 자명한 해를 갖는 문제라는 것을

알 수 있을 때가 있다. 예를 들어, 각 가중치가 superincreasing의 특성을 지닌다고 가정하

여보자. 즉, 각 항목의 가중치는 앞의 항목의 가중치의 총합보다 항상 큰 하나의 수열을 생

각해 볼 수 있다. 그렇다면 이 경우에는 linear time greedy 알고리즘으로 그 문제를 쉽게

해결할 수 있다. 즉, 가장 큰 가중치를 고르고 그것이 W보다 크면 버리고, 아니면 선택한

다. 그러면 남은 제약한계값에 대하여 다음으로 큰 가중치를 선택하여 동일 과정을 반복할

수 있다. 만약, 최종 제약한계값이 0이 아니면, 해는 존재하지 않는 것이다. 이처럼, 풀기

쉬운 문제와 풀기 어려운 문제가 Knapsack problem에는 공존한다고 할 수 있다. 그렇기

때문에, 암호화에 관심을 둔다면, Knapsack 문제를 데이터를 암호화하는 방법으로 이용하

고 쉬운 형태의 문제를 어려운 형태로 바꿈으로써, Knapsack problem을 공개키 시스템으

로 변형시킬 필요가 있다.

Page 146: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 146 -

나. Matrix Knapsack문제

Matrix knapsack문제는 일반적으로 공격법 또는 암호체계가 선형계획법 또는 기본적으로

선형대수학에 기초를 두고있는 분야에 속하는 것이다. 예를 들어, Lu-Lee 시스템,

Niederreiter 암호시스템, Goodman-McAuley knapsack 암호시스템 등을 이 부류로 간주

할 수 있다.

다. Polynomial Knapsack문제

Polynomial knapsack 암호시스템은 복수개의 다항식을 기반으로 Pieprzyk 씨가 GF(2) 상

의 다항식을 기반으로 하는 knapsack 암호시스템을 고안, 1984년 폴란드의 National

Conference on Signal Processing in Telecommunication에서 Design of public-key

cryptosystems based on knapsack problem라는 논문을 발표한 것이 그 유래라고 할 수

있다. 이는 Goodman-McAuley knapsack 암호시스템과 흡사하여 차이점은 정수만을 키로

사용하지 않고, 다항식도 이용한다는 점이다. 물론 이 시스템도 몇몇 matrix knapsack 암

호 시스템과 유사하게 선형대수학을 기반으로 한 공격법이 존재한다. 그 후의 다항식형

knapsack 암호시스템으로 나타난 것이 1984년에 Chor-Rivest의 첫 발표를 이어 1988년

에 수정 발표된 소위 Chor-Rivest 암호시스템이다. 이들의 알고리즘은 현재까지 알려진

knapsack형 암호시스템 중 가장 보안성이 높다고 인정받는 것으로서, 완전한 다항식형

knapsack암호시스템이라고 할 수 있다. 그런데 비해, 앞의 Pieprzyk의 방법은 하나의 과도

기적 방법이라고 할 수 있다. 일반적으로 knapsack문제는 선형인데, 그리하여 그 안전성이

오랫동안 의심되어왔다. 그러나 이러한 행렬형태보다 나은 안전성을 위하여 정수들이 아닌

보다 복잡한 형태의 원소에 관심을 두게되었다. 그 결과로 정수 대신 다항식을 이용하게 된

것이다. 1995년 Lin, Chang, Lee는 knapsack기반의 공개키 암호 시스템을 새로이 개발하

였는데, 이들의 알고리즘에서는 두 개의 공개키를 이용한다. 그 키는 모두 쉽게 생성이 가

능하며, 암호화와 복호화 과정이 모두 간단한 것이 특징이다. 어떠한 메시지를 암호화하기

위하여 송신자는 보낼 메시지와 암호화키에 대해 벡터 프로덕트를 수행하여야 한다. 반면

에, 수신측에서는 몇 번의 곱 연산과 모듈로 연산을 통하여 쉽게 복호화할 수 있다. 안전성

분석을 위해서, 몇 가지 알려진 공격법을 통한 시험이 수행되었다. 그러나 1997년

Blackburn, Murphy, Paterson에 의해서 이들의 암호 알고리즘은 비 키 시스템에 이용된

다 할지라도 안전하지 않다는 것이 판명되었다.

Page 147: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 147 -

2. 배낭 유형의 공개키 암호시스템

1978년 소개된 단일반복 knapsack crypto-system은 Shamir에 의해 그 공격법이 밝혀져

1982년 Ann. Symp. Foundations of Comp. Sci.에서 발표된바 있다. 그 후, Merkle은 다

수반복 knapsack crypto-system을 제안하였으나, Brickell에 의해 그 방법도 공격법이 밝

혀지고 말았다. Merkle은 단일반복 법에 대해 자신 개인 자금으로 l00달러를, 다수반복에

대해 1000달러를 현상금으로 걸고 그를 크랙할 수 있는 자에게 지불하기로 하였으나, 그는

조속히 지불할 수밖에 없었다. 이는 곧 초기의 knapsack 형 암호 시스템이 얼마나 취약하

였는가를 보여주는 것이라고 할 수 있다.

다음은 초기의 knapsack형 공개키 암호 시스템 이후 개발된 암호시스템들이다.

Page 148: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 148 -

가. Niederreiter Cryptosystem

대수적 부호이론 이용하는 subset sum형태의 암호시스템이다.

나. Goodman-McAuley Knapsack cryptosystem

이들의 암호시스템은 풀기 쉬운 knapsack을 위조하기 위한 방법으로서 법 곱셈을 수행한

다.

다. Pieprzyk Knapsack cryptosystem

Pieprzyk는 GF(2) 상의 다항식을 기반으로 하는 knapsack형 암호시스템을 고안, 1984년

폴란드의 National Conference on Signal Processing in Telecommunication에서 Design

of public-key cryptosystems based on knapsack problem (Proc. of lst National

Conference on Signal Processing in Telecommunication, Control, and Management,

Bydgoszcz, Poland, February 1984, pp.54-9.)라는 논문을 발표하였다.

라. Chor-Rivest Knapsack cryptosystem

정수론 문제에 기초를 둔 공개키 암호 시스템에 대한 효율적인 공격법이 없었던데 비해, 몇

몇 knapsack형 공개키 암호 시스템은 불안전성이 증명되었다. 이 knapsack형 공개키 암호

시스템은 대부분 은 한(노출되지 않은) superincreasing 수열을 지니고 있는데. Shamir가

1982년 처음으로 그 공격법을 발표하였다. 그의 공격법에 이어, 많은 공격법들이 보다 더

복잡한 시스템에 대해 제안되었다. 1985년 Bricekll은 일반적인 Merkle-Hel1man 기법을

깰 수 있는 방법을 발견하였다. 또한 동일문제에 대한 다른 공격방법으로서 Lagarias와

Odlyzko의 1ow-density 공격법도 소개되었다. 여기서 knapsack에서의 density란 요소들

을 비트로 나타내었을 때의 크기에 대한 요소들의 수를 의미한다. Lagarias와 Odlyzko의

방법에 있어서 가장 흥미로운 점은 암호 시스템이 어떻게 구성되었는가에 대한 아무런 가정

을 하지 않는다는 것인데, 이것으로 말미암아 그들의 방법은 어떤 형태의 knapsack형 암호

시스템이건 density가 낮기만 하다면 적용이 가능하다는 것이다. 이점은 Shamir의 공격법

이 superincreasing 수열에 거의 의존적인 것과는 다르다고 할 수 있다. 결과적으로 현실에

서 비교적 비효율적이라고 알려지기는 했으나, Lagarias와 Odlyzko의 방법과 다른 새로운

1ow-density 공격법이 Brickell에 의해 제안되기도 하였다. 이러한 공격법이 출현한 결과,

superincreasing 수열을 갖고 있거나, density가 낮은 knapsack형 공개키 암호 시스템 취

약하다는 결론을 내릴 수밖에 없었다. 이러한 knapsack형 공개키 암호 시스템에 대한 개발

의 정체성은 1988년 Chor-Rivest가 새로이 제안한, 높은 density와 완전히 다른 기저를

갖는 knapsack영 공개키 암호 시스템으로 인해 한층의 발전적 시대를 맞이하였다.

Page 149: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 149 -

이들은 knapsack 유형의 새로운 공개키 암호시스템을 소개하였다. 이 시스템은 유한체

(finite fields)에서의 산수를 적용하는데 그 기초를 둔 것으로서, Bose와 Chow1a가 이미

1936년 제시한 솟수 (prime)에 관한 정리의 뒤를 이은 것이라고 할 수 있다. 기존의

knapsack 형 암호시스템과는 달리 쉬운 (easy-to-solve) knapsack을 위조하기 의한

modular multiplication을 사용하지 않는 것이 특이하다. 이들의 암호시스템은 knapsack형

암호 시스템 중에서는 가장 안전성 있는 시스템으로 인정받았으나 최근에 분석되었다.

Page 150: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 150 -

1) 기존의 knapsack과 Chor-Rivest knapsack 암호 시스템 차이점

Chor-Rivest의 암호 시스템은 기존의 knapsack 암호 시스템과 그 기초가 크게 다르다. 이

는 superincreasing 벡터가 아닌 일반적인 knapsack 벡터에 근거하고 있으며,

Merkle-Hellman 암호 시스템에서와 같은 정수연산이 아니라 Cooper-Patterson 암화와

같은 Galois 체(field) 연산을 이용하고 있다. 그러한 이유로, 쉬운 knapsack을 위조하기 위

한 방법들도 사용되지 않는다. (비교: Goodman-McAuley 암호 시스템). superincreasing

벡터를 사용하는 것은 그 부분합이 서로 다르기 때문이다. 이는 일반적인 knapsack에서는

성립되지 않는다. h개의 원소의 합이 서로 다른, 고 도 knapsack 벡터를 구성할 수 있는

가 하는 것에 대한 답이 Bose-Chowla의 정리인데, 이 정리에 근거하여 만들어진 암호 시

스템이다.

2) Chor-Rivest의 knapsack형 공개키 암호시스템 고찰

첫 번째 단계는 솟수 (또는 솟수의 제곱수) p와 h를 GF( p h)가 이산로그 계산을 할 수 있

도록 고르는 것이다. 일단 p와 h가 선택되면, 기본체상의 대수 차가 h인 t∈GF( P h)와 g∈

GF( p h) (t와 g는 여러 가지 가능한 후보 중에서 랜덤하게 고르게된다)를 고른다.

Bose-Chowla의 정리에 따라, g를 밑으로 한 p개의 원소들에 대한 로그값을 GF(p)+t에서

계산한다. 이 p개의 정수들은 랜덤하게 메겨진 순열에 따라 흩어진다. 이 흩어진 정수들은

공표된다. p와 h로 이들은 공개 암호 키를 구성한다. 또한 t와 g원소 그리고 흩어지지 않은

순열은 비 키를 구성한다. 길이가 p인 이진 메시지를 암호화하기 위해, 사용자는 해당 메

시지 위치에 knapsack원소에 1을 추가시키고, 합을 보낸다. 적합한 (수신할 바로 그곳) 수

신측에서 합을 받게되면, 이에 대해 생성자 g를 불러내고 결과를 GF(p)상의 h차 다항식으

로 표현한다. 이 다항식의 h개의 근은 연속적 치환으로 구할 수 있다. 원래의 순열의 역을

적용하여 비트가 1인 평문의 인덱스들이 복구된다. 이상은 시스템 생성, 암호화, 복호화를

간략히 설명한 것이다. 이제, Chor-Rivest의 암호 시스템의 알고리즘을 자세히 살펴보자.

Page 151: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 151 -

[ Chor-Rivest public-key Cryptosystem ]

B 는 A에게 보낼 메시지 m 암호화한다.

[암호화 단계]

A. B는 다음을 수행한다.

A.1. A의 인증된 공개키 (( c 0, c 1,… c p-1), p,h)를 얻는다.

A.2. 메시지 m을 길이가 ⌊( ph

)⌋ 인 이진 수열로 표현한다(여기서, ( ph

)은 이항계수이

다.)

A.3. m을 한 정수의 이진표현으로 생각한다. 이 정수를 길이가 p인 이진 벡터 M = (

M 0, M 1,…Mp-1)로 바꾼다.(여기서, p는 다음을 만족해야 한다.)

i) l←h로 놓는다.

ii) 각각의 I에 대해 1부터 p까지 다음을 수행한다.

만약 m≥(p-il) Mi-1←l-1이다.

그렇지 않으면, Mi-1 ← 0로 놓는다.

(n≥0에 대해 (n0) = 1, l ≥1에 대해 (

0l) = 0.)

A.4. c = ∑p-1

i=0Mi c imod( p

k-1)을 계산한다.

A.5. A에게 암호문 c를 보낸다.

[북호화 단계]

B. 암호문 c로부터 평문을 복호화하기 위해서, A는 다음을 수행해야 한다.

B.1. r = (c-hd) mod( p h-1)을 계산한다.

B.2. u(x) = g(x)r modf(x)을 계산한다.

B.3. Z p위의 차수가 h인 모닉 다항식인 s(x) = u(x)十f(x)을 계산한다.

Page 152: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 152 -

B.4. s(x)를 일차 인수로 인수분해 한다.

B.5. 벡터 M의 1인 component는 indices π-1( t j)(1≤j≤h)를 갖는다. 나머지 component들은

0이다.

B.6. 메시지 m 은 다음과 같이 M에서 복호화 된다.

I) m←0, l←h로 놓는다.

ii) 각각의 i에 대해 1부터 p까지 다음을 수행한다.

만약 Mi-1 = 1 이면 m←m十 (p-il)와 l← l-1로 놓는다.

Chor-Rivest의 암호 시스템에서는 메시지가 가중치가 h이고 길이가 p인 이진 벡터들을 포

함한다고 가정하고 있다. 실질적으로 메시지가 이러해야 한다는 조건이 아니라 이렇게 처리

된다는 것을 의미한다. 일반적으로 이진 비트열은 길이가 각기 다르다. 따라서,

Chor-Rivest의 암호시스템에 어떤 메시지(텍스트라 생각해보자)를 적용하려한다면, 이러한

무제약의 이진 텍스트를 가중치가 h이고 길이가 p인 이진 벡터들로 변환하는 과정이 필요

하다.

마. 선형이동 (linear shirt) knapsack 공개키 암호시스템

Chor-Rivest의 암호 시스템 이후, 새로운 knapsack 암호시스템들이 개발되었다. 그중 하나

는 linear shift 방법을 이용한 공개키 암호시스템으로서 Laih 등의 연구가 1989년 발표된

바 있다. 선형이동 knapsack공개키 암호 시스템은 Laih 등이 개발한 knapsack 공개키 암

호시스템으로서 그 안전성은 충분히 입증되지 않았다. 이 암호체계는 두 가지 추가적인 변

환을 통하여 기존의 쉬운 knapsack 벡터를 사용하는 knapsack 암호체계의 문제점을 보완

하였다. 쉬운 knapsack 벡터를 고 도의 knapsack 벡터로 변환시켜줌으로써 자료의 확장

도를 크게 줄였고 따라서 공개키의 크기도 줄였다. 또한 선형 이동 변환을 통하여 암호체계

의 안전성을 높였다. 즉, 쉬운 복호화 키가 선형 대수를 사용하여 랜덤한 복호화 키로 대체

되었고, 이렇게 생성된 암호화 키는 난해한 NP-complete에 속하는 knapsack 벡터에 포함

될 확률이 아주 커지게 된다. 그러므로 Shamir의 암호분석과 저 도 암호분석이 이 암호체

계에는 유효하지 않다. 이 암호 시스템의 가장 큰 장점은 Chor-Rivest 암호 시스템에 비하

여 암호 시스템의 구축과정이 용이하며 복호화 과정이 아주 효율적이라는 점이다.

Page 153: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 153 -

바. Modular knapsack group에 근거한 암호 체계

modular knapsack group 문제에 기초를 둔 암호 시스템은 Niemi에 의해 1991년 발표되

었다. 모듈라 knapsack군에 근거한 암호 시스템은 작은 정수로 이루어진 행렬을 사용하고

있다. 일반적인 knapsack 암호 시스템에서 knapsack벡터는 상당히 큰 정수이다. 그러나 이

암호 시스템에서는 행렬이 작은 수로 이루어져있으므로 암호화나 복호화시 요구되는 계산은

작은 유한체에서 이루어진다. Niemi의 암호 시스템은 병렬 아키텍처로서 암호화와 북호화

과정이 효율적인 점이 특이하다. 이 암호 시스템은 특수하게 구성된 격자에서 Lovasz의 격

자 기저 축소 알고리즘을 이용하여 비 구조를 발견해 내거나, 주어진 암호문에서 평문을

분석해낼 수 있다.

3. 배낭 유형의 공개키 암호시스템이 대한 공격법

위에서 언급한 바와 같이, knapsack형 공개키 암호 시스템은 안전성에 있어서 의혹의 대상

이 되어왔다. 이러한 knapsack형 공개키 암호시스템 중 가장 안전한 것으로 알려진

Chor-Rivest의 암호 시스템에 대해서도 공격법이 개발되었으나, crack하는데 소요되는 시

간이 매우 길다. 일반적으로, knapsack형 공개키 암호시스템은 타 시스템보다 안전성이 상

대적으로 낮지만, 암호화 및 복호화에 있어서 효율성은 높다. Merk1e-Hellman의

knapsack 암호체계 이후로, 이에 대한 집중적인 암호분석이 이루어져 왔다. 이러한 암호분

석(Cryptanalysis) 방법들은 대개 성공적이었다. 따라서 이 암호분석방법들에 대해서도 안

전성이 유지되는 새로운 knapsack 공개키 암호체계의 개발을 위한 연구들이 이루어져 왔

다. 기존의 암호분석(Cryptanalysis)은 크게 두 개의 부류로 나누어진다.

Page 154: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 154 -

A. 첫 번째 접근 방법은 주어진 knapsack 공개키의 암호체계에 대하여, 이를 구축하는 기

반이 되는 쉬운 knapsack 벡터에 대한 정보를 찾고자 하는 구조적 접근 방법이다. 만일 어

려운 knapsack 벡터를, 암호체계가 근거하고 있는 쉬운 knapsack 문제로 변환할 수 있으

면 정당한 수신자와 동일한 복호화 과정을 통하여 모든 암호문을 쉽게 해독할 수 있다.

B. 또 하나의 접근 방법으로는 일반적인 knapsack 문제에 대한 해를 구하는 과정을 개발하

는 방법이 있다. 이는 암호체계에서 사용되는 knapsack 벡터는 쉬운 knapsack 벡터에서

변형되어 나온 특수한 구조를 지니기 때문에, 일반적으로 아주 어려운 knapsack 문제를 구

성하지 않아 이러한 접근 방법이 가능하다. 따라서 이제 일반적인 knapsack 문제의 해를

구할 수 있으면 이 knapsack 문제에 연관된 암호문을 복호화 할 수 있고, 이 접근 방법은

knapsack 벡터의 도가 낮은 모든 knapsack 암호화 체계에 대하여 상당히 유용한 것으로

알려져 있다. 이러한 접근 방법을 저 도 암호분석(Cryptanalysis)방법이라 한다. 여기서는

대표적인 구조적 암호분석(Cryptanalysis)방법인 Merkle-Hel1man 암호체계에 대한

Shamir의 암호 분석 방법등 최근 공격법 연구 동향을 중점적으로 고찰한다. 먼저, 기존공격

법에 대해 간략히 살펴본다.

Page 155: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 155 -

대부분의 기존 knapsack 암호체계는 초증가하는 knapsack 벡터와 모듈라 연산을 사용하고

있다. 즉 초증가하는 쉬운 knapsack 벡터를 구한 후에 이를 모듈라 연산으로 숨긴다. 이러

한 방법을 사용하는 knapsack 암호체계는 기존의 구조적 암호분석(Cryptanalysis) 방법에

의하여, 공개키로부터 비 정보인 쉬운 knapsack 벡터와 모듈라 연산의 계수들을 발견할

수 있다. 또한 이러한 암호체계는 knapsack 벡터의 도가 낮아서 일반적인 암호분석

(Cryptanalysis) 방법에도 취약하다. 결론적으로 이 두 가지 부류의 암호분석

(Cryptanalysis) 방법에 의하여 대부분의 기존 knapsack 암호체계는 해독된다. 그러나

Chor-Rivest 암호체계와 같이 아직 해독되지 않고 있는 knapsack 암호체계도 있다. 이러

한 암호분석(Cryptanalysis) 방법은 모두 Lenstra-Lenstra-Lovasz의 1attice basis

reduction 알고리즘을 암호분석(Cryptanalysis)의 기본적인 수단으로 사용하고 있다. 이러

한 암호분석 방법은 주어진 암호체계와 접근방법에 따라 일정한 lattice를 정하고 이 lattice

에서 길이(Euclidean norm)가 상당히 작은 비영(nonzero) 벡터를 찾음으로써 암호분석

(Cryptanalysis)에 필요한 파라미터들을 추정한다. 그러므로 기존의 암호분석

(Cryptanalysis) 방법을 실현하는데 대부분의 시간과 기억장소는 LLL 알고리즘의 실행시간

이 다항식 복잡성을 지니고 있지만 이의 실행 시간은 상당히 크다. 또한 LLL 알고리즘은

상당히 효과적이기는 하지만, 일반적으로 길이가 비교적 적은 벡터를 찾을 뿐 길이가 가장

작은 비영 벡터를 찾지는 못한다. 따라서 LLL 알고리즘이 지니는 한계 때문에, 이 LLL알고

리즘을 사용하는 기존의 암호분석(Cryptanalysis) 방법은 그 유효성이 제약되고 있다.

Knapsack 암호는 그것이 개발된 이후로 집중적인 암호분석의 대상이 되어 왔으며 많은 경

우에 성공적인 결과를 얻었다. knapsack 암호체계의 안전성에 대한 의문이 제기되는 이유

중의 하나는 이 암호체계가 근본적으로 선형이라는 점이다. 즉,

Page 156: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 156 -

이다. 이 선형성에 근거한 암호분석방법이 제시되지는 않고 있지만, 일반적으로 암호체계의

선형성은 암호체계의 안전성에 해롭다고 알려져 있다. 한번 변환시킨 Merkle-Hellman 암

호체계에 대해 Shamir가 최초로 성공적인 암호분석을 하였다. 그는 Lenstra의 정수 계획법

알고리즘을 이용하여 공개된 knapsack 벡터에서 이를 초증가하는 knapsack 벡터로 변환시

키는 (w', m')을 발견하였다. Shamir 의 방법은 다른 knapsack암호에 대한 일반적인 암호

분석이 되지 못했는데, Adlennn이 knapsack암호분석에 Lovasz의 lattice basis reduction

알고리즘이 사용될 수 있음을 발견하고 이를 사용하여 Graham-Shamir knapsack 암호체

계를 암호 분석하는데 성공하였다. 이후 이 Lovasz의 알고리즘은 knapsack 암호를 분석할

수 있는 중요한 수단이 되었다. 초증가하는 단순 knapsack 벡터를 모듈라 변환시키는 모든

knapsack 암호체계는 이 알고리즘을 사용하여 암호 분석되었다. Knapsack 암호분석에는

Lovasz 알고리즘을 사용하여 knapsack 암호의 비 구조를 밝히는 접근방법이의에

Lagarias 와 Odlyzko의 저 도 knapsack 암호분석이 있다. 이는 도(density)가 낮은 모

든 knapsack 암호에 적용된다. 이와 다른 저 도 knapsack 암호분석을 Brickell이 제안하

였다.

가. Lovasz 의 격자기저축소 알고리즘

여기서는 우선 knapsack 암호체계에 대한 기존의 모든 암호분석 방법이 그 기본적인 암호

분석의 수단으로 사용하는 Lenstra-Lenstra-Lovasz (LLL) lattice basis reduction 알고리

즘 에 대하여 살펴보기로 한다. n 차원 실수 공간 Rn에서의 lattice L은 n개의 basis

{ b i} 의 정수선형결합이다. 즉 Z가 정수들의 집합일 때,

Page 157: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 157 -

이며, n은 L의 rank 라고 한다. Computational complexity 와 정수 이론, 암호학에서의 많

은 문제가 lattice에서 0이 아닌 가장 작은 Euclidean norm을 가지는 벡터를 찾는 문제로

전환시킬 수 있다. 이러한 문제는 Simultaneous Diophantine Approximation 과 접하게

연관되어 있다. 이러한 문제가 NP-hard 인지는 알려져 있지 않지만, 아직 다항식 시간 알

고리즘이 개발되어 있지도 않고 있다. 전수탐색으로 lattice에서 norm이 가장 작은 비영 벡

터를 찾는 알고리즘이 개발되어있지만, 이는 실행시간이 너무 커서 사용하기에는 비현실적

이며, 사용되고 있는 알고리즘은 다항식 시간안에 비교적 작은 벡터를 찾는 알고리즘이다.

LLL 알고리즘은 lattice의 basis { b i}를 가능한한 orthogonal에 가까운 basis { b' i}로 변

환시키는 것이다. 그러면 이 reduced basis{ b' i}에 norm이 상당히 작은 벡터가 존재하며

실제로는 모든 reduced basis 벡터가 상당히 작아지는 경향이 있다.

Lattice L의 determinant d(L)은 다음과 같이 정의된다. 즉,

이는 양수이며 특정한 basis와 관계없이, L에 의해 결정된다. 여기에서 d(L)은 ∑n

i=0[0,1) b i

의 체적(volume)으로 볼 수 있다. 따라서 다음의 Hadamard의 부등식이 성립한다.

위 식에서 등식은 basis {bi}가 직교 (orthogonal)할 때만 성립한다. 한편 lattice L에는 다

음을 만족하는, 거의 직교 basis가 있다.

여기서 c는 오직 n에만 의존하는 상수이다. Basis reduction 과정은 위의 부등식을 만족하

는 basis를 구하여 준다.

n개의 선형 독립인 벡터의 집합 { b 1}는 Gram-Schmidt의 orthogonalization 과정을 통하

여 서로 직교하는. 선형독립인 벡터의 집합 { b * i} 으로 전환된다.

Page 158: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 158 -

여기서 (xㆍy) 는 x와 y의 내적이다. 다음의 두 조건을 만족할 때 1attice의 basis {bi}는

reduced 되었다고 한다.

정리 2.3.1. { bl,ㆍㆍㆍ, bn } 이 lattice L ∈ R 2의 reduced basis이고,{ b*1 ,… b

*n}

이 Gram-Schmidt 직교화 과정에서 얻어진 벡터인 경우에 다음이 성립한다.

정리 2.3.2. { b1,…, bn } 이 lattice L ∈ R 2 의 reduced basis이면 다음이 성립한다.

정리 2.3.3. {b1, …,bn } 이 lattice L ∈ R 2 의 reduced basis이고, x 1, … x n, ∈ L 이

선형 독립이면 다음이 성립한다.

Page 159: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 159 -

정리 2.3.2와 정리 2.3.3은 reduced basis 에 비교적 작은 벡터가 포함되어 있음을 보여준

다. 실제의 경험에 의하면 reduced basis 에는 이상한보다 훨씬 작은 벡터가 포함되어 있

는 경우가 많다. Lenstra, Lenstra, Lovasz 의 LLL 알고리즘은 정수 lattice 에 대한 임의

의 basis에서 시작하여 결국에는 reduced basis를 구한다. 알고리즘은 먼저 basis { b i}로

부터 Gram-Schmidt 의 직교화 basis를 구한 후 basis { b i}이 수정된다. 각 과정에서는

수정된 basis 는 다음과 같이 k번째까지 부분적으로 축소된다.

이러한 과정을 거쳐 k = n + 1 이 되면 모든 basis가 reduce 된다. 각 단계에서는 다음의

두 경우가 있다.

[경우 1] ( k≥ 2 이고 | b k*+u k,k-1 b k-1|

2<(3/4 | b k-1|

2)

이 경우에는 b k 와 b k-1를 서로 바꾼다.

[경우 2] ( k = 1 이고 | b k*+u k,k-1 b k-1|

2≥(3/4 | b k-1|

2)

먼저 1/2 보다 큰 u kl를 구한 후, b k. 는 b k-rb1 로 대체된다. 여기서 r은 u kl 에 가장

가까운 정수이다. 이는 모든 u kl가 적절한 크기가 될 때까지 반복되며, 마지막으로 k를 하

나 증가시킨다.

[ LLL 알고리즘 ]

각각의 i = 1,ㆍㆍㆍ, n에 대해

각각의 j = 1, …, i-1에 대해

Page 160: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 160 -

k = 2

A. = k - 1 에 대하여 (*)를 실행한다.

만약 Bk<(3/4- u 2 k,k-1)Bk-1이면 B 단계로 간다.

1 = k-2, k-3, …, 1 에 대하여 (*)를 실행한다.

만약 k = n이면 끝난다.

k=k+1

A 단계로 돌아간다.

만약 k > 2 이면 k = k + 1

A 단계로 간다.

(*) 만약 u kl > 1/2이면

r = u kl에 가장 가까운 정수. b k= b k- rbl

정리 2.3.4. {b1, …,bn}이 lattice L ∈ R 2 의 basis 이고, B가 | b i|2≤B,1≤i≤n을 만족하

는 실수라고 하자. 그러면 basis reduction 에 필요한 연산의 수의 상한은 O( n 4 logB) 이

고, 각 연산에 서 취급되는 정수는 그 비트 크기가 O(nlogB) 에 의해 한정된다.

Page 161: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 161 -

정리 2.3.4에 의하면 LLL 알고리즘은 다항식 시간안에 basis를 reduce함을 알 수 있다. 이

알고리즘을 보다 효율적으로 개선하여 연산 수가 O( n ( logB) 3) 인 알고리즘도 있다. 또한

reduced basis 가 더욱 작은 것이 보장된 또 다른 lattice basis reduction 알고리즘도 있

다. 그러나 이 알고리즘은 실행시간이 더 느리다.

이 LLL 알고리즘은 다음 분야에서 사용되고 있다.

(1) 정수 lattice에서 작은 벡터를 찾는 문제

(2) 특정한 정수계획법문제에 대한 다항식 시간 알고리즘

(3) 계수가 유리수인 다항식의 인수분해

나. Shamir의 Merk1e-Hel1man 암호체계의 암호분석

한번 모듈라 변환시킨 기본적인 Merk1e-Hellman 암호체계에 대하여 Shamir 가 최초로 성

공적인 암호분석을 하였다. 그는 Lenstra의 정수계획법 알고리즘을 이용하여 공개된

knapsack 벡터에서 이를 초증가하는 knapsack 벡터로 변환시키는 trapdoor (w', m')을 발

견하였다.

우선 Merk1e-He11man knapsack 암호체계가 다음과 같이 구축되었다고 하자. {b1,… ,bn}

은 초증가하는 knapsack 벡터이고 a i는 dn-n+i-1비트의 수이다. 또한 trapdoor 모듈라

는 비트인 m 이고 승수는 w 이다. 공개키는 { a i= wb imodm} 이다. 이 알고리즘은 다

음의 두 단계로 나누어진다.

(1) m 과 w 가 trapdoor 가 되기 위해, w/m 이 속해야 되는 [0, 1]에 속해 있는 몇 개의

폐구간들을 구한다.

(2) w/m 이 대략적으로 알려져 있는 것을 이용하여, 각 구간을 m, w가 trapdoor 가 충분

조건으로 될 수 있는 더 작은 구간으로 나눈다. 이제 LLL 알고리즘에 근거한 Diophantine

approximation 알고리즘으로 가장 작은 m 과 w 를 발견한다.

Page 162: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 162 -

1 개의 b i 곡선을 분석하는 경우에, b i 곡선의 가장 가까운 최저점은 다음 구간안에 있

다.

b i의 최저점의 위치는 위의 구간에서 일양 (uniform) 분포되어 있다고 가정하면, b 1, b 2,

… , b l 곡선의 최저점이 가까울 확률은

이며 따라서 집적점의 개수의 기대치는

( l-d-1)n > l 2/2 이면 이는 1 보다 작다. 따라서 n=100 이고 d=2 인 경우에 1=4 이면

충분하다. 이 과정에서 문제는 m 0를 모른다는 것이다. 그러나 집적점은 곡선자체가 아니

라 그 기울기에 의해 결정된다. 따라서 각 좌표를 m 0로 나누면

이며 최저점의 위치는 다음 부등식들의 해이다.

이 부등식 체계의 해는 LLL 알고리즘에 근거한 정수계획법 알고리즘으로 다항식 시간내에

구할 수 있다. 이때 정수계획법의 복잡성의 상한은 poly(n)ㆍexp( (d+2) 3) 이다. 이와 같이

구한 p 와 q 는 암호체계를 구축하는데 사용된 m 과 w 와 일치되지는 않지만 어려운

knapsack 벡터를 초증가하는 knapsack으로 전환시키는 trapdoor 이다. 결과적으로 한번

모듈라 변환된 모든 Merkle-Hellman 암호체계는 Shamir 의 암호분석 방법으로 해독된다.

그러나 이 정수계획법 알고리즘이 아직 구현되어 있지 않으므로 이 Shmir 암호분석 방법이

실제로 구현되어 있지는 않고 있다.

Page 163: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 163 -

다. Lagarias 와 Odlyzko 의 저 도 암호분석 방법

Lagarias 와 Odlyzko는 일반적으로 knapsack 문제를 사용하는 공개키 암호체계를 암호분

석하는 방법을 제시하였다. 즉 Lagarias-Odlyzko 암호분석은 주어진 암호문에 대한 평문을

발견하고자하는 것이며, 이는 다음과 같은 knapsack 문제의 해를 구하면 된다.

(1) 이를 위해 우선 다음의 basis 로 이루어지는 n+1 차원의 정수 lattice L을 구성한다.

(2) 이제 메시지 S 가 0 < S < ∑a i 인 경우에 다음의 과정을 통해 knapsack 문제의 해

를 구한다.

[SV 알고리즘]

A. 식 (1) 의 n+1 차원의 정수 lattice L을 정한다.

B. LLL 알고리즘을 사용하여 L 의 reduced basis { b * 1,…, b*n+1

}을 구한다.

C. 모든 j = 1, …, n 에 대하여 b * ij = 0 또는 c 인 벡터 b * i를 찾는다. 그러한 벡터가

있으면 { x j = c -1 b * ij } 이 knapsack 문제의 해인지 검사한다. 만약 해가 되면 멈추

고 그렇지 않으면 단계 D로 간다.

Page 164: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 164 -

D. S를 S' = ∑a i - S 로 바꾼 후 단계 A - C 를 반복한다.

만약 SV 알고리즘은 LLL 알고리즘을 두 번 반복하므로, B ≥ max a i 이면 이 알고리즘은

O( n 6 ( lognB) 3) 비트 연산 내에 종료된다. Knapsack 벡터 a=( a 1,…, an)의 도

(density) d(a) 는 다음과 같이 정의된다.

Knapsack 암호에서 도는 비트들이 전송되는 정보율의 근사치가 된다.

Lagarias-Od1yzko 의 암호분석방법의 결과는 다음과 같다.

(1) d(a) < 0.645 인 거의 모든 knapsack 문제의 해는 lattice L 에서 가장 작은 벡터이다.

(2) d(a) < (2-ε) ( log 24/3)-1 n-1≅1/n 인 거의 모든 knapsack 문제의 해는 Lagarias

-Odlyzko 알고리즘으로 구할 수 있다.

그러나 실제 검증 결과 알고리즘이 좋은 결과를 얻는 최대 도 d c(n)는 1/n 이상이 되나,

n → ∞ 일 때 d c (n)→0이 된다. Lagarias 와 Odlyzko 는 n = 50 이고, log2B = 100이

되는 knapsack 문제에 대해 Lovasz 알고리즘으로 reduce 하는데 CRAY-1 으로 약 14분

소요하였다. Odlyzko 의 실험 결과에 의하면 각 knapsack 의 크기 n 에 대하여 성공률

1.00 %를 cutoff 도의 상한의 추정치로 삼는 경우에, d c(30) ≤ 0.61 이고, d c(40) ≤

0.51 이다.

Page 165: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 165 -

라. Brickell 저 도 암호분석 방법

Lagarias 와 Odlyzko 의 저 도 암호분석 방법이의에 일반적 ∑n

i=1| b i|=S 의 knapsack 문

제의 해를 구함으로써 knapsack 공개키 암호체계를 암호분석하는 방법으로 Brickell 의 저

도 암호분석 방법이 있다. 이 암호분석 방법은 knapsack 벡터 a 1,…, a n 을 가지고

O(n4 ( logn) 3) 시간내에 수행되며, 그 이후에는 이러한 knapsack 벡터를 갖는 모든

knapsack 문제의 해는 O( n 3) 안에 구할 수 있다. 모듈라 m 으로 w 을 승수로 하여

knapsack 벡터 a 1,…, a n 를 b 1,…, b n로 바꾸는 모듈라 변환은, ∑n

i=1| b i |<m 이면 소합 성

질 (small sum property)을 갖는다고 한다. 이를 SSMM 이라고 표시하기로 한다.

정리 2.3.5. 모듈라 m 에 대하여 w 을 승수로 하여 knapsack 벡터 a 1,…, a n 를

b 1,…, b n 로 바꾸는 b i= a imodm의 모듈라 변환이 소합 성질을 가지고 있고,

이라고 하자. 어떤 0-1 벡터 e 에 대하여 ∑n

i=1e i a i = S 이고, S' = Sw mod m 이고,

이면, S'' = ∑n

i=1e i b i 이다.

( a 1,…, a n),( a 1 w 1mod m 1,…, a n w 1mod m 1

),…( a 1 w 1mod m 1,…, a n w kmod m k

)가

선형독립인 경우에, a 1,…, a n에 대한 SSMM이 되는 ( w 1, m 1),…(w k, mk) 는 독립적이

라고 하자.

Page 166: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 166 -

정리 2.3.6. ( a 1,…, a n) 에 대하여 n-1 개의 독립적인 SSMM을 찾으면 ( a 1,…, a n)을

knapsack 벡터로 갖는 knapsack 문제 ∑n

i=1e i x i =S에 대하여, n 모듈라 곱셈과 n*n 행렬

과 벡터를 곱하는 연산으로 그 해를 구할 수 있다.

Y-1L 가 0-1 벡터인지 아닌가만 문제가 되므로, Y 의 각 원소에 서로소인 작은 소수 p를

모듈로하여 Y-1L 를 계산해도 된다. 이제 knapsack 벡터를 암호분석하기 위해서는

a 1,…, a n에 대한 독립적인 SSMM을 찾아야 한다. Knapsack 벡터 a 1,…, a n가 주어졌을

때, 다음의 basis 로 이루어진 Rn상의 lattice L 을 구성하고 LLL 알고리즘으로 basis 를

reduce 한다.

정리 2.3.7. x=( x 1,…, x n)∈L이고, ∑n

i=2| x i | < na 1이면, 승수 x 1과 모듈라 a 1 을 사용

한 모듈라 변환은 소합성질을 갖는다.

정리 2.3.8. ( v 1,…, v n) 이 lattice L 의 reduced basis 라고 하자. 만일 모든 i = 1, …,

n 에 대하여 ∑n

j=2| v ij/n|< a 1 이라고 하면, n-1 개의 ( a 1,…, a n) 에 대해 독립적인 SSMM

을 발견할 수 있다.

결국 이 암호분석이 가능하기 위해서는 ∑n

j=2| v ij/n|< a 1, i=1, …, n 인 reduced basis를

얻을 수 있어야 한다. 이렇게 되기 위해서는 knapsack 벡터의 도가 1/ log 2n 이하가 되

어야 한다. 실험에 의하면 n=30 까지는 이 암호분석 방법이 유효하다. Knapsack 벡터의

도가 1 / log 2n 보다 큰 경우에도 암호분석이 가능하게 하기 위해 n n<M<2 n n이고

gcd(W,m)=1 인 M 과 W<M를 선택하여, knapsack 벡터 { a i}를 b i= aiWmodM 로 모듈

라 변환한다. 이 knapsack 벡터 { b i}의 도는 1/ log 2n 보다 작으므로 위의 암호분석이

성공할 수 있다. 실험에 의하면 n≤0.26 이고 도가 0.44 보다 작은 경우에 이러한 방법은

거의 모두 성공적이었고 n=28 일때는 이 성공적인 도의 상한이 0.40까지 감소한다.

Page 167: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 167 -

마. Chor-Rivest 암호시스템 공격법

1) C.P.Schnorr, M.Euchner의 방법(1994)

괴테대학의 C.P.Schnorr와 M.Euchner는 Mathematical Programming 지에 “Lattice basis

reduction: Improved practical algorithms and solving subset sum problems"라는 논문

을 1994년 발표하였다. 이 논문에서 그들은 기존의 격자 기저 축소에 대한 보다 개선된 현

실적인 알고리즘을 제시하였다. 즉, 그들은 1982년 LLL (Lenstra, Lenstra, Lovasz)가 제

시한 소위 LLL알고리즘에 대안 부동소수형 버전 알고리즘을 제안하였던 것이다. 또한,

"deep insertion"이라는 개념으로 LLL 알고리즘의 한 변형도 소개하고 있으며, 1987년

Schnorr에 의해 제시된 개념인 블록 Korkin-Zolotarev 축소를 위한 현실적인 알고리즘도

보여주고 있다. 이들의 논문을 정리하면 다음과 같은 내용이다.

Page 168: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 168 -

가) 부동소수점 산술에 근거한 LLL축소

다음의 L3 축소 알고리즘에서는 기저벡터 b 1,…, b m∈ Zn과 부동 소수형 숫자인 μij와

| | b i ||2을 가지고 수행하게 된다. 기저는 기저 변환에서의 오차 때문에 정확한 값을 가져

야 하고 수정될 수 없다. 다른 모든 오차들은 수정 기저(correct basis)를 사용하여 수정할

수 있다. 다음의 것들은 부동 소수 오차를 최소화하는 과정을 보여주고 있다. 정확한 값인

v에 대응하는 부동 소수값을 v'이라 하자. 정수 τ는 부동 소수점 연산에서의 precision bits

의 수를 나타낸다.

[ L 3FP 알고리즘 ]

입력 : b1, …, bm ∈ Zn (격자 기저), δ (단, 12

< δ<1).

출력 : b1, …, bm ( δ로 L 3축소된 기저)

A.(초기화 단계) k: = 2,F:= false

각각의 i=1,…,m 에 대해 b' i:=( b i)을 행한다.

B. k<+m을 만족하면 다음을 수행한다.

c k= ||b' k||2, 만약 k=2 이면 c 1:= | | b ' 1||

2 이다.

각각의 j=1,…, k-1에 대해 다음을 수행한다.

만약 | < b' k, b' j>|-τ/2 | | b' k ||․| | b' j||이면 s:=< b k, b j>'이다.

그밖에 s:=< b' k,b' j>

Page 169: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 169 -

C. 각각의 j=k-1,…,1 에 대해 다음을 수행한다.

만약 | μ k,j|>12

이면

만약 | μ|> 2 τ/2이면 Fc: =true

만약 i=1,…,j-1 이면 μk.i:=μk.i-μμj.i이다.

만약 | μ k.j |이면 끝난다.

만약 Fc이면 [Fc:=false, k=max(k-1,2), Goto 2].

D. 만약 δc k-1> c k+ μ2k.k-1 c k-1이면

swap b k. b k-1, swap b' k,b' k-1, k:=max(k-1,2)을 행한다.

그밖에 k:=k+1

L3FP 알고리즘을 수행한 결과, 이 알고리즘은 부동 소수 연산에서 단 하나의 precision을

갖고, 매우 많은 양의 벡터에 관한 경우에서도 안정성을 갖는 것으로 나타났다. 두개의

precision의 경우에는 swap의 수를 상당히 감소시켰으며 알고리즘을 보다 빠르게 만들었

다. 요점은 L3FP 알고리즘이 기저 벡터의 처음 비트와 τ 를 동시에 다룬다는 것이다. 따라

서 swap의 수가 log2B/τ 에 비례하게 된다. L3FP가 항상 종료한다는 사실은 증명하지 못

했다. 만약 부동 소수 연산 precision이 입력 벡터들의 길이에 비해 너무 작으면 L3FP는

사이클이 발생하게 되고 부동 소수점 오차를 발생시킬 가능성이 있다. 하지만 격자(lattice)

가 125이고 입력 정수의 길이를 300으로 한 수천 번의 예에 적용한 결과 성공적으로 수행

되었다. Schnorr는 L3 축소 알고리즘에서 부동 소수점 오차가 무시 할 만한 것임을 증명하

였다. 이 알고리즘의 실용적 버전은 L3FP에 비해 10%가량 느리다. Fc는 수정 단계가 수행

할 때에는 true로 고정시켰다. k가 k-1로 감소하는 경우에는 μij와 ||bi||2는 i=k-1과 i=k

로 수정될 것이다. 부동 소수점 오차의 작은 값을 계산하기 위해 1/4보다 큰 값에 대해서

δ값을 사용하였다. (예, δ≥1/2).

Page 170: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 170 -

나) 선형 종속적 생성시스템에서의 L 3축소

격자를 L3 축소 기저로 만드는 모든 generator 시스템 b 1,…, b m∈ Z n 로 변환시키기

위해 L3FP 알고리즘을 확장시킬 수 있다. 만일 b 1,,…, b m가 linearly dependent하다면

Gram-Schmidt orthogonalization을 통해서 ∧

b 1

,…, ∧

b m

가 적어도 하나의 zero 벡터를

포함하게 한다. 우리는 c k=∥∧

b k∥2이 zero인 경우 k+1로 stage를 옮기는 것을 피해

야 한다. 왜냐하면 ck가 다음 stage인 k+1에서 나눗셈을 수행하기 때문이다. 운좋게도 ck

가 zero이면 b k-1과 b k를 swapping하는 조건인 δ c k-1> c k+μ2k.k-1 c k-1을 만족하고 따라

서 μ 2k.k-1<14

과δ≥ 12

도 만족시킨다. k>2인 경우에는 이 b k-1과 b k의 swap과 k의 감소

는 연속적으로 0으로 나누는 것을 피할 것이다. 그렇지만 k=2인 경우와 c2=0(b2와 b1의

swapping)의 경우에는 zero 벡터 b 1을 가져올 수 있다. 우리는 간단히 이러한 zero 벡터

를 기저에서 제거할 수 있다. L3FP의 3단계에서 b k각각의 크기 축소를 확인한 다음 1단

계를 더 진행하여 축소 벡터 b k가 zero인지를 판단하고 그러한 경우라면 b k를 기저에서

제거하는 것이다. 이것은 초기에 b 1이 zero 벡터로 주어지지 않는 경우라면 모든 경우에

있어서 정확히 적용된다. 따라서 우리는 L3FP의 3단계에서 b k를 축소하고 k를 변화시키

기 전에 다음과 같은 사항을 삽입하였다.

[ L3FP의 3단계의 추가 사항 ]

만약 b k=0이면 b k를 제거하고, m:=m-1, k:=2, 단계 B로 간다.

입력 벡터 b 1,… b m가 linearly dependent하다면 이 사항은 항상 L3FP에 포함되도록 하

였다. 이러한 추가 사항이 있는 L3FP를 확장된 L3FP라 부르기로 한다. 본래의 comment와

확장된 L3FP의 종료(아래의 Thm 2에서 증명)는 확장된 L3FP가 부동 소수 오차를 수정한

다는 것을 보여주고 있다. 이는 Stage k의 벡터 b 1,… b k-1이 항상 L3 축소형이며 알고리

즘이 Stage m+1에서 종료한다는 것을 나타낸다. 따라서 산출 벡터 b 1,… b m 들은 기저를

이루게 되고 또한 L3 축소형태가 된다. j=1, ..., k-1이고, α=1/ (δ-14)≤4인 경우에

c j≥a1-j∥ b 1 ∥

2가 항상 유지된다는 것에 따라 Stage k의 벡터 b 1,… b k-1들이 항상

L3 축소형임을 보일 수 있다. 따라서 2단계의 제수 cj는 0에서 충분히 멀게 된다. 이는 부

동 소수점 오차를 최소화하는데 도움을 준다. Stage k를 2에 다시 맞춤에 있어서 3단계의

추가 사항은 부동 소수 오차에 대한 예방 조치이다. 0벡터인 b k를 생성하는 것은 약간의

부동 소수점 오차를 발생시키며 상당히 작은 벡터인 bit가 이 과정에서 나타나게 된다.

Page 171: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 171 -

2) C.P.Schnorr, H.H. Horner의 방법(1995)

이들은 잘 알려진 L3 알고리즘의 개선인 격자 기저 축소 알고리즘을 소개한다. 랜덤한 L3-

소 격자 기저 b 1,…, b n이 축소 Gram-Schmidt 계수벡터가 구간 (0,1) n(n-1)/2에 균일한

분포가 되도록 주어진다면, pruned enumeration을 통해 최단 격자 벡터를 찾을 확률은 0

보다 크게 된다는 내용이다. 그들은 임의의 부분합 문제를 풀므로써 그들이 개발한 알고리

즘의 우수한 성능을 입증하였으며, 또한 그들의 알고리즘을 이용하여 Chor-Rivest의 암호

시스템 그리고 Damgard의 hash 함수도 깼다.

3) P. Nguyen과 J. Stern의 방법(1999)

이들의 논문은 “The Hardness of the Hidden Subset Sum Problem and its

Cryptographic Implications", Phong Nguyen and Jacques Stern, Proceedings of

CRYPTO '99 으로, 이들은 문제상에 나타난 파라미터들이 이들이 명시화한 특정한 조건을

만족시키면 필요충분적으로 이들이 제시한 효율적인 격자축소 공격법이 성공한다 (대체적으

로 성공)는 것을 보여주고 있다.

Page 172: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 172 -

제 4 절 격자축소문제(Lattice Reduction Problem)

1. 개 요

현재 사용중인 공개키 암호 시스템은 대부분 유한체에 존재하는 계산상 어려운 문제, 특히

소인수 분해 문제와 이산대수 문제의 어려움에 기반을 두고 있다. 최근 MIT의 Goldreich,

Goldwasser, Halevi가 발표한 공개키 암호알고리즘 이러한 문제와는 다른 격자축소문제의

계산상 어려운 점, 특히 한 점이 주어졌을 때 그 점에 가장 가까운 lattice상의 벡터를 찾는

문제에 그 안전성의 근거를 두고 있다. 이 절에서는 먼저 Lattice의 정의 및 수학적 기반이

론에 대해서 살펴보고, Lattice 관련 문제 즉, CVP, SVP, SBP의 근사이론 및 기존 Lattice

기반 공개키 암호알고리즘들을 고찰한다.

가. 격자(lattice)의 정의 및 기본 성질

정의 2.4.1. Rn상에 있는 n개의 선형 독립 벡터 B={ b 1,..., b n}이 주어졌을 때, B에 의하여

생성된 lattice를 다음과 같이 정의

이때, B를 lattice L(B)의 기저라고 한다. L=L(B)과 같은 기저 B가 존재하면 Rn상에 있는

벡터들의 집합 L은 lattice라고 한다. 벡터 v가 lattice L에 속하면 v는 lattice 벡터 또는

lattice point라고 한다.

다음에서 lattice에 대해 잘 알려진 몇 가지 사실에 대해 간단하게 언급하고자 한다. Rn상에

있는 lattice의 기저는 그 기저 벡터를 열로 갖는 특이하지 않은 nxn 행렬로 간주된다. 이와

같이 B에 의하여 얻어진 lattice는 L(B)={Bv:v는 정수 벡터}이다. 집합 B={ b 1,..., b n}가

lattice L을 생성한다면 B의 한 원소 b i를 취하여 다른 벡터들의 정수 선형 조합을 더함으

로써 같은 lattice의 또 다른 기저를 얻을 수 있으므로 한 개의 lattice에 대한 많은 다른 기

저들이 존재한다는 것을 알 수 있다. lattice에 대한 중요한 사실은 주어진 lattice의 모든

기저들은 같은 행렬식을 갖는다. 이것은 BT=C와 같은 정수 행렬과 CT-1=B와 같은 또

다른 정수 행렬 T-1가 존재하기 때문이다. B={ b 1,..., b n}가 Rn상에 있는 한 lattice,

L=L(B)의 기저라고 한다면, B는 각각의 bi를 열로 하는 nxn 행렬로 생각할 수 있다. L의

dual lattice는 행렬 B-1의 행에 의하여 생성되는 lattice이다. B-1의 행들을 b 1,..., b n이

라고 하자.

Page 173: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 173 -

정의 2.4.2. B를 특이하지 않은 nxn 실수 행렬이라고 할 때, B의 orthogonality defect는

다음과 같이 정의한다.

(∥ b i∥는 B의 i번째 열의 Euclidean norm이다.)

보조정리 2.4.3. orth-defect(B) ≥ 1이고, B의 열들이 서로 직교할 때만 등식이 성립한다.

Rn상의 lattice의 서로 다른 기저들을 비교할 때, 실제로 한 lattice에 대하여 det(B)가 모두

같기 때문에 || b i||의 곱에만 관심을 가지면 된다. 특히 trapdoor 함수에서 lattice

L=L(B)에 대한 기저 B를 사용할 때 전수조사에서 필요한 작업량은 dual lattice의 기저에

대한 orthogonality defect에 비례한다.

Page 174: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 174 -

정의 2.4.4. B를 특이하지 않은 nxn 실수 행렬이라고 할 때, B의dual orthogonality defect

를 다음과 같이 정의한다.

(∥ b i∥는 B-1의 i번째 행의 Euclidean norm이다.)

다음으로 Gram-Schmidt Process에 대해 소개한다. Gram-Schmidt process는 주어진 기

저에 대하여 동일한 벡터 공간을 생성하는 직교기저를 만드는 방법이다. 이 방법은 Lattice

reduction 알고리즘의 가장 중요한 부분을 차지하고 있다. b 1, ... , b n ∈ Rn을 일차독립

인 행 벡터라 놓고 bj*를 다음과 같이 순환적으로 정의하면 bj*는 서로 직교하는 새로운 벡

터가 된다.

나. 격자(lattice) 상의 어려운 문제들

1) 최단벡터문제(The Shortest non-zero Vector Problem : SVP)

SVP 문제는 Ajtai가 제안한 공개키 암호알고리즘의 구조와 MIT의 Goldreich, Goldwasser,

Halevi가 제안한 충돌 자유 해쉬 알고리즘의 안전성에 근거가 된다. SVP 문제란 Rn상의 한

lattice에 대한 기저 B가 주어졌을 때, Euclidean norm이 최소가 되는 L(B)상의 0이 아닌

벡터를 찾는 작업으로 이 문제를 해결하는 다항식-시간 알고리즘은 현재까지 알려진 바 없

고, 또한 NP-hard9)인지도 알려져 있지 않다. 그러나 SVP에 대한 결정론적 다항식-시간

근사 알고리즘은 몇 가지 개발되어 있는데 이 중 LLL 알고리즘은 최악의 경우 2 n/2까지

Rn상의 SVP를 근사하였고, Schnorr에 의해 이것은 ε>0에 대해 (1+ε) n 까지 향상되었다.

다항식의 계수 n내에서 Rn상의 SVP를 근사하는 알려진 다항식-시간 알고리즘은 없다. 실

제로 이러한 근사값은 얻어내기 어려운 것으로 제안되어왔다.

9) van Emde Boas에 의해 L∞ norm로 계산하였을 때 NP-hard임이 알려짐.

Page 175: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 175 -

2) 근접벡터문제(The Closest Vector Problem : CVP)

CVT 문제는 SVP의 non-homogeneous한 변형으로, Rn상의 한 lattice에 대한 기저 B와

벡터 v가 주어졌을 때 v에 가장 가까운 L(B)상의 벡터를 찾는 것이다. CVP는 van Emde

Boas에 의해 NP-hard임이 보여졌고, kannan에 의해 근사값 측면에서 ρ로 SVP에 근사되

는 알고리즘은 n 3/2 ρ 2내에서 CVP로 근사되는 알고리즘으로 전이될 수 있음이 보여졌다.

Schnorr의 알고리즘과 결합하여 ε>0에 대해 (1+ε) n 내로 Rn상에서 CVP를 근사하는 다항

식-시간 결정론적 알고리즘을 만들었다.

3) 최단기저문제(The Smallest Basis Problem : SBP)

SBP 문제는 Rn상의 한 lattice에 대한 기저 B가 주어졌을 때, 같은 lattice에 대한 "가장 작

은" 기저 B'을 찾는 것이 목표이다. "가장 작은"이라는 의미에서 볼 때 SBP 문제에 대한 다

양한 변형이 있을 수 있다. GGH 암호알고리즘에서는 작은 orthogonality defect를 갖는 기

저들에 대해 관심을 가지고, 가장 작은 orthogonality defect를 갖는 L(B)의 기저 B'를 찾

는 SBP의 변형을 적용하였다. 즉, 공개키로부터 개인키를 찾는 것은 SBP 실례상의 어떤

분포로부터 해를 구하는 것과 같다. SBP에 대한 다항식 시간 알고리즘은 알려진 바 없고,

현재까지 가장 좋은 다항식 시간 근사 알고리즘으로 알려진 것은 LLL과 Schnorr의 알고리

즘이 있다. 그리고 이것은 Rn상의 SBP 실례에 대한 최악의 경우 2 O( n2 )의 근사비를 성취하

는 알고리즘이다.

Page 176: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 176 -

2. SVP, CVP. SBP에 대한 근사이론

Lattice에 기반한 안전도의 배경은 최단벡터문제(SVP), 근접벡터문제(CVP), 최단기저문제

(SBP)이다. 아직까지도 이 근본적인 문제는NP-hard 문제이다. 이 문제들에 대한 근사이론

을 알아본다,

SVP 는 주어진 b 1,…, b n에 대하여, lattice에서 어떤 고정된 norm으로 0이 아닌 가장 짧

은 벡터를 찾는 문제이다. 앞으로 NP-complete 문제를 lattice에서 대략적으로 최단 벡터

를 찾는 문제로 줄일 것이다. Ajitai에 의하면 우리가 사용하는 NP-complete 문제는 부분

합 문제의 일종인 제한된 부분 합 문제이다. 이 문제는 다항식 시간 줄임 아래에서는

NP-hard라고 증명되었다. 여기에서 제한된 부분 합 문제라 함은

max{ log 2 (∣A∣+1,Maxli=1 log 2 (∣ a i∣+1)}≤ l

3 를 만족하는 주어진 정수 a 1,…, a l,A에

대하여, ∑l

i=1a i x i=A, ∑

l

i=1x i=[

12]에 대한 0-1해를 찾는 문제이다.

ε>0를 임의의 상수라 하고 x=2, μ=10이라고 하자. 4ε

보다 크고 μ보다 충분히 큰 α를 선

택한다. 예를 들어 ∑l

i=1a ix i=A를 제한된 부분 합 문제라 하자. 그리고 δ1이 존재성이 a 1

=2a, a 2=1에 대한 정리1에 의하여 보장되는 상수라고 할 때, n-[ l1/δl] 이라 놓자. 1과 그

리고 결론적으로 n은 α에 대하여 충분히 크다고 가정할 수 있다. J는 n=[logJaloglogJ

]를 만

족하는 정수라 하자. 그러면 en<J< e

n log 2n를 만족한다. p 1<…< p m은 모두 ( logJ) a보다

작거나 같은 소수라 하자. 소수이론에 의하여, n a≤m≤n a+1이다. Γ는 집합 { p 1,…, p m}

의 n개의 다른 원소들의 모든 곱들을 취함에 의해 형성되는 정수들의 집합이라고 놓자. 우

리는 Γ의 어떤 원소도 기껏해야 ( logJ) an≤J임을 알 수 있다. 정수 b를 균등하게 Γ에서 선

택한다. ω는 ωμ≤b≤(2ω) μ을 만족하는 정수라 놓자. 당연히 2 n≤b≤J를 만족한다. 따라서

b와 ω는 n의 지수이다. 위에 정의된 매개변수, x,μ,m,B= ωμ+1,ω,그리고 b의 값을 이용하여

Ajtai의 lattice를 만들기로 한다. 이 만드는 과정에서 임의성은 임의의 b∈U Γ의 선택이다.

L 1을 아래 행렬의 행 v i에 의해 형성되는 lattice라 하자.

Page 177: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 177 -

아래의 보조정리에 의해 lattice 벡터가 충분히 짧으면 v i의 관점에서 그것의 계수는 특별

한 모양을 갖는다는 것이 증명된다. 여기에서 사용된 벡터의 길이에 대한 가정은 강한데 이

는 더 큰 추측 인수에 대한 NP-hardness를 증명 가능하게 해준다.

보조정리 2.4.5. c를 2log2보다 작은 상수라고 하고 ω는ω=( ω1,...,ωm+2)∈ L 1, ω≠0, ω=

∑m+2

i=1δ i v i, δ m+1≥0을 만족한다고 하자. 만약 ∥ω∥2≤log b+c라면,

o∣δ m+2∣≤ωx+1;

o δm+1=1;

o i=1, …,m에 대하여, δ i∈{0,-1};

o 만약 i=1, …,m에 대하여,

한다;

Page 178: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 178 -

o 모든 ν∈L, ν≠0에 대하여, ∥ν∥ 2≥1ogb이다.

유용한 사실들로 정의하자. 그러면,

이기 때문에 ω는 νm+2의 상수 배수가 될 수 없다. 모든 0이 아닌 lattice 벡터의 길이가

적어도 1이 되도록 lattice를 정규화 한다. 집합 Γ로부터 임의로 선택된 b는 높은 확률로

다음을 만족한다:

(1) b≥ J1-

1α-2

(2) (b-ω3/2,b+ω3/2)구간에서 모듈 ω로 b와 같은 Γ의 원소가 적어도 2 nlogn개 존재한다.

만약 b가 위의 (1), (2)를 만족한다면, 모든 충분히 큰 n에 대하여 다음과 같은 보조정리가

성립한다.

보조정리 2.4.6. L 2=1logb

L 1,ν-i =

1logb

ν i ρ-=

3

ω2logb

라 하자. 그러면,

o ν∈ L 2,ν≠0⇒∥ν∥≥1;

oZ가 모든 ω∈ L 2의 집합이고, γ i∈{0,-1},i∈{1,…,m}에 대하여

ω=∑m+2

i=1γ i ν

-i이고∑m

i=1∣γ i∣=n

∥ω∥ 2<1+ ρ -이라면,∣Z∣≥ 2 nlogn이다;

Page 179: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 179 -

o만약 u 1, u 2∈Z, u 1≠u 2 그리고 ui=∑m+2

i=1γ (j)i ν

-i 이면 γ 1i≠γ

2i 를 만족하는 i∈{1,…,m}존

재한다;

o모든 ω∈L, ω≠0에 대하여

만약 ∥w∥2≤1+

2

m 3ɛ/2, ∑m+2

i=1γ i ν

-i , γm+1≥0이면

γ 1,ㆍㆍㆍ, γ m∈{0,-1} 그리고 γ m+1=1

o size( ρ -)≤n 2,0< ρ-< 2 - n

o ∣det( ω 1,…, ω m+2)∣≥(c 0n) n 여기에서 c 0는 universal 상수이다.

여기에서 L 2는 진짜 lattice이다. 확률적 다항식 시간 내에 L 2에 대한 좋은 추정인

lattice를 만들 수 있다.

보조정리 2.4.7. v i=(1+ρ) v i,L=L( v 1,..., vm+2) 그리고 ρ=8ρ 라 놓자. 그러면, 모든 충분

하게 큰 n에 대하여,

ov∈L, v≠0은 ||v||≥1을 의미한다 :

o ∑m

i=1∣γ i∣=n, γ i∈{0,-1},i∈{1,...m}에 대하여

v=∑m+2

i=1γ i v i이고, ∥v∥ 2<1+ρ를 만족하는 모든 v∈L의 집합을 Y라고 할 때,

∣Y∣≥ 2 nlogn;

o만약 u 1, u 2∈Y, u 1≠u 2와 uj=∑m+2

i=1γ (j)i v i,j=1,2이면,

γ (1)i ≠γ(2)i

를 만족하는 i∈{1,…,m}이 존재한다.

o모든 v∈L,v≠0에 대하여

만약 ∥v∥2≤1+2

m3ɛ/4 ,v=∑

m+2

i=1γ i v i, γ m+1≥0 라면

γ 1,…, γ m∈{0,-1}와 γm+1=1이다.

Page 180: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 180 -

정리 2.4.8.(Ajtai) 모든 α 1>2, α 2>0에 대하여, 충분히 큰 모든 n에 대하여 다음을 만족시

키는 δ 1, δ 2, δ 3, 0< δ i<1<i=1,2,3이 존재한다. <S, X>가 n-uniform hypergraph,

n2≤∣S∣≤ n

α 1,∣X∣≥2

α 2nlogn,k=ꀚ n

δ 1ꀛ 그리고 C=C 1,…, Ck가 정확하게

∣S∣ n-1- δ 2 개의 원소를 가지는 서로 교집합을 갖지 않는 부분집합의 무작위 수열이라고

가정하면, 1-n-δ3 보다 크거나 같은 확률을 가지고 각각 0,1-값을 가지는 {1,…,k}위에

정의된 함수 f에 대하여, 모든 j∈{1,…,k}에 대하여 f(j)=∣Cj∩T∣를 만족하는T∈X가 존

재한다.

위에서 정의된 n를 이용하여 α 1=2α, α 2=1,S,={1,…,m},k=⌊nδ 1⌋≥l 그리고

X={T⊆{1,...,m}∣∃v∈Y,v=∑m+2

i=1γ i v i,T={i∈{1,…,m}∣ γ i=-1}} 을 정리에 적용한다.

∣Y∣≥ 2 nlogn 이라는 것과 어떤 두 개의 다른 v1,v2∈Y는 다른 T를 만든다는 것을 안다.

따라서 Ajitai의 정리의 가정이 요구하는 대로 α2=1이기 때문에 ∣X∣≥2a 2nlogn 이다. 높

은 확률을 가지고 C i의 무작위 선택은 다음을 만족한다. {1,2,…, l}에 정의된 0,1-값 함수

f에 대하여, 모든 j∈{1,2,…, l}에 대하여 f(j)= | C j∩T| 를 만족하는 T∈X가 존재한다.

C=C1,…,Cl이 좋은 선택이고, ∑l

i=1a i x i=A가 제한된 부분 합 문제의 주어진 예라고 하자.

v=∑m+2

i=1γ i v i일 때, g, c, v(i)=- ∑

j∈c iγ i 라 하자. 다음과 같이 ( l+2)×(m+1)행렬 D를 정의하

자.

Page 181: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 181 -

1. 모든 j∈C i에 대하여 d 1.j=a il, d 1.m+1=Al그리고 그 밖의 j에 대해서는 d 1.j=0;

2. 모든 j∈∪li=1 Cj에 대하여 d 2,j=l, d 2,m+1=[ 12 ]l 그리고 그 밖의 j에 대해서는 d 2.j=0;

3. 모든 i∈{1,…, l}에 대하여, 만약 j∈ C j이면 d i+2.j=1이고 그렇지 않으면 di+2.j=0

만약 C 1,…, Cl이 {1,…,m}의 연속되는 구간들일 때, D는 다음과 같은 행렬이다

x∈L,x=∑m+2

i=1γ i v i 에 대하여, τ=2/m ε일 때, 라 하자.

L (D)⊆Rm+l+4가 벡터 ( v i,Λ( v i)DT)에 의해 생성되는 lattice라고 놓자. 이 lattice의 차

원은 m+2이다. 그리고 당연히

이다. L (D)+{ (v,Λ(v) DT∣v∈L,v=∑m+2

i=1γ i v i, γ m+1≥0} 이라 하자.

정리 2.4.9. (1) 높은 확률을 가지고 앞의 정리의 관점에서 C=C1,…,Cl의 무작위 선택은

좋다.

(2) 그와 같은 C의 좋은 선택에 대해서, D를 위에서 정의된 행렬이라고 하자. 만약 제한된

부분 합 문제 ∑l

i=1a i x i=A이 해를 가지고, ω=(ω,Λ(ω)DT)∈L(D)가 L (D)의 0이 아닌 최단

벡터에 대한 (1+1

mε )-추측 값 즉, λ 1 ( L

(D)) 2≤∥ω-∥2≤(1+1

mε ) λ 1 ( L

(D)) 2 (λ1:최단벡

터의 길이)이라면, y i g C.ω(i)는 제한된 부분 합 문제에 대한 해가 된다.

Page 182: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 182 -

보조정리 2.4.10. y 1,…, y l를 ∑l

i=1y i [

l2]을 만족하는 l개의 정수라고 하자. 그러면 ∑

l

i=1y 2i

은 모든 y i들이 0 또는 1일 때 최소화되고, 최소 값은 [l2]이다, 만약 y i∉{0,-1}가 되

는 i가 존재한다면, ∑l

i=1y2l≥[l2]+2 이다.

다음으로 가장 짧은 lattice 벡터들을 추정하는 것은 가장 근접한 lattice 벡터들을 추정하는

것보다 더 어렵지 않음을 살펴보기로 한다. lattice에서 대략 제일 근접한 벡터를 주는 보조

루틴에 대한 오라클 access가 주어진다면, lattice에서 대략적으로 가장 짧은 벡터를 다항식

시간내에 찾을 수 있다. lattice L과 목표 벡터 w를 입력하면, 이 보조루틴은 임의의 0이

아닌 벡터 u∈L에 대하여 ||v-w||≤f(n)ㆍ∥u-w||를 만족하는 v∈L를 출력한다. 여기에

서 소개하는 알고리즘은 lattice L를 입력으로 하여 임의의 0이 아닌 벡터 u∈L에 대하여

||v||≤f(n)를 만족하는 0이 아닌 벡터 v∈L를 출력하는 알고리즘이다. 결과는 임의의

norm에 대하여 모두 성립하며, CVP 오라클은 원래의 SVP와 정확히 같은 차원의 lattice에

서 불려진다. SVP에 대한 입력은 lattice이고 그 lattice에 대하여 0가 아닌 최단벡터를 찾

는 것이 문제가 되었다. CVP에서 입력은 목표벡터와 함께 lattice이며, 목표벡터에 가장 근

접한 lattice 벡터를 찾는 것이 문제이다. 일반적으로 SVP는 CVP보다 어렵지 않다는 것이

믿어져 왔으며, 많은 사람들이 SVP가 더 쉽다고 믿는다. 2 log0.999n의 인자내에 n-차원의

lattices에서 CVP를 추정하는 것은 NP-hard인 반면에, SVP는 2보다 작거나 같은 상수

인자이내에 추정하는 것이 NP-hard라는 것만이 알려져 있다. SVP는 CVP의 NP-hardness

를 애용하여 쉽게 CVP로 줄일 수 있다. 그러나 이 일반적인 NP-completeness 논쟁은 원

래의 SVP 문제보다 훨씬 큰 차원의 CVP instances를 만들어낸다. 차원을 유지시키는 직접

적인 줄임이 가능한지의 여부는 매우 흥미로운 질문이라 할 수 있다. 추정인자가 지수일 때

에만 이 두 문제는 다항식 시간 내에 풀 수 있다고 알려져 있다. Henk가 SVP는 CVP보다

더 어렵지 않다는 첫 번째 비 실험적인 증거를 주었는데, 그는 SVP를 푸는 것은 CVP를 푸

는 것으로 줄일 수 있음을 보였다. 더군다나 그의 논문에서의 결과는 단지 유클리디안

norm에 대해서 뿐만이 아니라 많은 다양한 norm들에 대하여 성립한다. 같은 차원에서 그

리고 같은 추정 인자를 가지고 SVP에 대한 f-추정을 찾는 작업을 CVP에 대한 f-추정을

찾는 작업으로 줄이는 방법에 대해서 알아보자.

SVP와 CVP사이에는 두 가지의 차이점이 존재한다. 하나는 SVP는 모두 0인 벡터에 가까

운 lattice 점을 요구한다. 반면에 CVP는 임의의 목표벡터에 가까운 lattice 점을 요구한다.

다른 하나는 SVP는 모두 0인 해를 허락하지 않는다. 그러나 CVP는 목표벡터가 lattice의

원소라면 목표벡터를 해로 받아들인다. 따라서, 이 두 문제는 아주 당연하게 관계 되어있지

는 않다. 특히, CVP 오라클이 모두 0인 벡터를 줄 수도 있기 때문에 L→(L, 0 m) 줄임은 작

용하지 못할 수도 있다. 따라서 이런 가능성을 막을 필요가 있다. 우선, 모두 0인 벡터에 가

까운 lattice 점을 찾는 대신에 다른 lattice 벡터 w∈L에 근접한 lattice 점을 찾는다. w가

해로 돌아오는 것을 피하기 위해 w를 포함하지 않는 부분-lattice L'⊂L에 대하여 CVP 오

라클을 돌린다. 문제는 w에 가장 근접한 L-벡터를 제거하지 않고 어떻게 부분-lattice L'⊂

L을 선택하는 방법이다.

Page 183: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 183 -

보조정리 2,4.11. v=∑n

i=1c i b i∈L를 0이 아닌 가장 짧은 벡터라고 하자. 그러면 c i가 홀수

가 되도록 하는 i가 존재한다.

다음은 SVP를 CVP의 n instances의 해로 줄이는 방법을 살펴보자. 주어진 기저

B=[ b 1,…, b n]과 그에 대한 lattice L(B)={ ∑n

i=1c i b i: c 1,…, c n∈Z}에 대하여 CVP의 n

instances를 세운다. j 번째 instance는 기저 B (j)=[ b 1,…, b j-1, 2b j, b j+1,…, b n]과 목표

벡터 bj로 구성된다.

보조정리 2.4.l2. v=∑n

i=1c i b i를 c j가 홀수가 되게 하는 lattice 벡터라 하면,

u=c j+1

2( 2b j)+∑

i≠jc i b i는 L( B (j))의 lattice 벡터이며, 목표 b j로부터 u의 거리는 v의

길이와 같다.

보조정리 2.4.13. u= c' j ( 2b j)+∑i≠jc i b i 를 L( B (j))의 lattice 벡터라고 하자. 그러면

v=( 2c' j-1) b j+∑i≠jc i b i는 L( B )의 0이 아닌 lattice 벡터이고 v의 길이는 목표 b j 로부

터 u의 거리와 같다.

정리 2.4.14. 모든 함수 f:N↦{r∈R:r≥1} 에 대하여 SVPf( GapSVP f)는

CVP f ( GapCVP f)로 Cook-reducible이다. 게다가, 줄임은 non-adaptive하고, 모든

queries는 입력 instance의 위수를 유지한다.

결론적으로 lattice의 위수가 n일 때, SVP f의 instance를 푸는 것은 CVP f의 n instances

를 푸는 것으로 결정론적이게 줄이는 것이 가능하다. SVP문제를 한 개의 CVP instances로

줄이는 것이 가능한지에 대한 의문은 아주 자연스럽다. 우리는 정리 2.4.14에 의해 무작위

줄임에 대해서는 가능하다는 것을 알 수 있다. 즉 입력 (B,d)에 대하여 무작위로 j∈{1

,…,n}를 선택하고 ( B (j), b j,d)를 출력한다. YES instances는 적어도 1/n의 확률을 가지고

YES instances로 이동하며, NO instances는 항상 NO instances로 이동한다.

Page 184: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 184 -

정리 2.4.15. 모든 함수 f:N→ {r∈R:r≥1}에 대하여 일방향 에러 확률이 1/2이하인 SVP f

로부터 CVP f라로 확률적으로 많은 줄임이 존재한다. 더군다나 생성된 CVP instance는

원래의 SVP 문제와 같은 위수를 가진다.

Coding 이론에서 lattices에 대한 SVP, CVP와 유사한 2개의 잘 알려진 문제는 최소거리문

제(the Minimum Distance Problem-MDP)와 가장 가까운 코드워드 문제(the Nearest

Codeword Problem-NCP)이다. MDP에서 입력은 유한체 F위로의 선형 코드이고, 이 스트

링에 해밍 메트릭으로 가장 가까운 코드워드를 찾는 것이다. 유한체 F로의 길이 n인 선형

코드는 Fn의 선형 부분공간 C이다. 코드C의 비율은 F로의 벡터 공간으로써의 그것의 차

원이다. 코드는 lattice의 기저 표현과 유사한 생성 행렬로 표현 가능하다. F가 Z/2Z인 경우

가 가장 관심을 끄는 경우이다. 이 경우에 코드는 전체 위수 m행 n열인 Boolean 행렬 C에

의해 주어지고, 코드워드는 C의 열들의 모든 선형결합이다. wt(w)를 워드 w∈ F n의

hamming weight는 w의 0이 아닌 원소의 개수로 정의하면 워드사이의 거리는 일반적으로

해밍 메트릭 d(v,w)=wt(v-w)에 의해 측정된다. MDP로부터 NCP로의 줄임은 기본적으로

lattice의 줄임과 같다.

정리 2.4.16. 모든 함수 f:N→ {r∈R:r≥1}에 대하여 인수 f까지 주어진 Boolean 선형 코드

의 거리를 추정하는 문제는 인수 f까지 주어진 Boolean 선형 코드로부터 주어진 스트링의

거리를 추정하는 문제로 Cook-reducible하다.

Page 185: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 185 -

정리 2.4.17. 모든 함수 f:N↦{r∈R:r≥1}와 어떤 체 F=GF(q)에 대하여, 인수 f까지 F위에

서 주어진 선형 코드의 최소 거리를 추정하는 문제는 같은 추정 인수이내에 F위의 선형 코

드로부터 주어진 스트링의 거리를 추정하는 문제로 Cook-reducible하다. 게다가, 줄임은

길이를 유지하며 코드 위수를 감소시킨다.

정리 2.4.18. 모든 함수 f:N↦{r∈R:r≥1)와 어떤 체 F=GF(q)에 대하여, 인수 f까지

F=GF(q)위로 주어진 선형 코드의 최소거리를 추정하는 문제를 같은 추정 인자이내에

F=GF(q)로의 주어진 선형 코드로부터 주어진 스트링의 거리를 추정하는 하나의 instance를

푸는 것으로 줄이는 확률론적 다항식시간 알고리즘이 존재한다. YES instances는 확률

1-(1/q)로 YES instances로 이동하고, 반면에 NO instances는 항상 NO instances로 이동

한다. 게다가, 줄임은 길이를 유지하고 코드의 비율을 감소시킨다.

세 번째로는 lattice 문제들의 어려운 instances를 생성하는 것을 살펴보기로 하자. 만약

1/2이상인 확률을 가지고 무작위 lattice에서 짧은 벡터를 찾는 확률적 다항식 시간 알고리

즘이 존재한다면 지수적으로 1에 가까운 확률을 가지고 Z n안의 모든 lattice에서 다음과

같은 세 개의 lattice 문제를 푸는 확률적 다항식 시간 알고리즘이 존재하도록 하는 Z n의

임의의 lattice c1ass를 알아보도록 한다.

o n 차원 lattice에서 최단의 0이 아닌 벡터의 길이를 대략 다항식 인수까지 찾는다.

o 최단 벡터 ν가 길이가 기껏해야 n c∥ν∥인 다른 벡터가 ν에 평행하

- 여기에서 c는 충분히 큰 절대 상수이다-는 관점에서 유일성을 보장받을 수 있는 n 차원

lattice L에서 0이 아닌 최단벡터를 찾는다.

o n 차원 lattice L에서 길이가 가장 짧은 기저 b 1 b 2,…, b n을 찾는다.

여기에서 길이는 max ni=1∥ b i∥로 정의된다.

Page 186: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 186 -

암호의 현존하는 기술의 대부분은 NP안의 문제의 특별한 예의 형성을 포함한다. 수학적 증

명이 부족함에도 불구하고 적어도 두 경우에서 문제가 풀기 어려울 것이라고 기대한다. 하

나는 NP-complete 문제들의 클래스이다. 다른 하나는 만약 문제가 매우 유명한 문제라면

(예를 들어 소수 인수분해 문제) 오랫동안 대부분의 유능한 과학자들에 의해 공격이 성공하

지 못했던 경우이다. 불행하게도 "풀기 어려운"이라는 표현은 최악의 경우에 풀기가 어렵다

는 것을 의미한다. 만약 문제의 특별한 예를 제공하는 작업을 한다면, 이 원칙은 문제를 만

들어 내는 방법에 대하여 어떤 안내도 하지 못한다. 임의로 생성된 문제들의 집합을 찾는

문제와 만약 양의 확률을 가지고 임의의 예의 해를 찾는 알고리즘이 존재한다면 최악의 경

우에 풀리지 않는 유명한 문제들 중의 하나를 해결하는 알고리즘 또한 존재한다는 것을 보

이기 위안 해결책이 존재한다는 것은 오래 전부터 알려져 있었다. 그와 같은 임의의 문제들

의 클래스를 알아보기로 하자. 사실상 이는 임의의 문제를 준다: 해가 최악의 경우에 관련

된 "유명한" 문제들의 군의 해를 의미하는 무작위 lattice의 어떤 클래스에서 짧은 벡터를

찾는다. 최악의 문제 중에 세 가지를 알아보기로 하면,

(P1) 대략 다항식 인수까지, n 차원 lattice에서 최단의 0이 아닌 벡터의 길이를 찾는다.

(P2) 길이가 기껏해야 n c∥ν∥인 다른 벡터는 ν에 평행하다는 관점에서 최단벡터 ν가 유

일한 n 차원 lattice L에서 최단의 0이 아닌 벡터를 찾는다. 여기에서 c는 충분히 큰 절대

상수이다.

(P3) n 차원 lattice L에서 길이가 다항식 인수까지 가능한 최단의 기저 b 1 b 2,…, b n을

찾는다.

(P2)는 좀더 일반적인 형태로 주어질 수 있다. 만약 lattice L∈ Z n이 주어진다면, 모든 부

분 lattice L'=V∩L를 찾는다. 여기에서 V는 min{d,n-d}가 상수보다 작게 되고, V∩L이 모

든 w=L/V에 대하여 n cd max di=1∥ v i∥≤∥w∥( c d>0은 d에 비하여 충분히 크고 다른 것

들에 대하여 의존하지 않는다.) 를 만족하는 기저 v 1,…, v d을 가진다. 임의의 문제는 또한

선형 simultaneous Diophantine 추측문제로 변형이 가능하다. (P1)이 NP가 아님에도 불구

하고 여전히 우리가 다루는 알고리즘은 일방향 확신만을 준다. 즉, 하 한계보다 더 짧은 벡

터가 존재하지 않음을 보이는 확신만을 가진다. 문제 (P3)에서 lattice의 최소 기저 길이에

대한 추정 값을 얻을 수 있다. 이 추정 값을 기저와 함께 얻을 수 있기 때문에 상 한계에

대한 확신을 가진다. 중앙 대칭체에 대한 Minkowski 이론은 최단 0이 아닌 벡터의 길이에

대한 추정이다. 유클리디안 norm의 경우에 cn12 (detL)

1n 보다 작거나 같은 상 한계 sh(L)

를 준다. 연속되는 최소값에 대한 Minkowski의 이론은 최단벡터의 길이와 최단의 기저의

길이에 대한 문제를 정형화한다.

Page 187: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 187 -

LLL은 길이가 기껏해야 2n-12 sh(L)인 각각의 lattice L⊆ Rn에서 벡터를 찾는 결정적 다

항식 시간 알고리즘을 주었다. 이에 C.P.Schnorr는 인수 2n-12 를 고정된 ε>0에 대하여

( 1+ε) n까지 향상시켰다. 이 알고리즘은 ( 1+ε) n에 대하여 인수 2n-12 까지 sh(L)에 대한

추정을 준다. LLL 알고리즘은 다른 knapsack 암호시스템에 대한 공격도 가능하게 해주었

다. Lattice는 무한 집합이기 때문에 임의의 클래스에서 lattice의 유한 대표로 고정시켜야

한다. 무작위 클래스의 lattice는 정수 요소를 가지는 벡터들로 구성될 것이다. 더군다나 이

들 lattice는 만약 두 벡터가 모듈로 q에 대하여 같다면 둘 모두 lattice에 포함되거나 또는

둘 중의 아무 것도 lattice에 포함되지 않는다는 관점에서 모듈로 q에 대하여 정의될 것이

다. 마지막으로 임의의 클래스의 lattice는 n에 의존하는 길이 m인 정수들의 모든 수열의

집합으로써 정의될 것이다. 좀 더 자세히 말하자면, 만약 v=< u 1,…, um>, u i∈Zn이면 Λ

(v,q)는 ∑m

i=1h i u i≡0(modq)을 만족하는 정수 h 1,…, h m의 모든 수열의 lattice라 한다. 무작

위 클래스에서 모든 lattice는 어떤 v와 단지 n에만 의존하는 하나의 고정된 q에 대하여 Λ

(v,q)의 모양이 될 것이다. 무작위 클래스의 정의는 두 개의 절대 상수 c 1, c 2의 선택에 의

존한다. n이 주어지면 m=[ c 1nlogn],q=[ nc2]라고 놓는다. 각각의 n에 대하여 =(λ,q)

가 차원 m을 가지는 lattice가 되도록 하는 하나의 임의의 변수 λ을 생각한다. 우선 λ의 '

이상화된" 버전 λ'을 정의한다. 이는 단순한 방법에 의해 정의가 가능한데 λ'의 단점은 Λ(λ

',q)에서 짧은 벡터와 함께 λ'을 생성하는 방법을 알지 못한다는 것이다. 그런 후 Λ(λ,q) 에

서 짧은 벡터와 함께 생성 가능하도록 λ을 정의한다. 이 때 P(λ=λ')이 지수적으로 작다는

것을 알 수 있다. 이는 Λ(λ',q)에 대하여 뒤에 나오는 정리를 증명한다면, 자동적으로 Λ

(λ,q)에 대해서도 성립함을 의미한다. v 1,…, v m이 독립으로 선택되고 모든 벡터

< x 1,…, x n>의 집합으로부터 균등하게 분포할 때, λ'을 < v 1,…, v m>로 놓자. 여기에서

x 1,…, x n은 정수이고 0≤ x i<q이다. lattice Λ(λ',q) 에서 짧은 벡터를 찾는 것은 선형

simultaneous Diophantine 추측 문제에 대하여 해를 찾는 문제와 동등하다. Dirichlet의 정

리는 만약 c 1이 c 2에 비하여 충분히 크다면 항상 n보다 더 짧은 벡터가 존재함을 의미한

다. 벡터 v 1,…, v m-1을 독립적으로 그리고 모든 벡터 < x 1,…, x n>∈ Zn,0≤ x i<q 의 집합

에 대하여 균등한 분포를 가지도록 임의화한다. 이 임의화와는 무관하게 0,1-수열

δ 1,…, δ m-1를 임의화한다. 여기에서 δ i는 독립적으로 선택되며, {0,1}로 부터 균등한 분

포를 가진다. 모든 v m의 원소가 [0, q-1]범위에 있는 정수이고 v m≡-∑m-1

i=1δ i v i (modq)를

만족하는 v m을 정의한다. λ=< v 1,…, v m>으로 놓는다. A가 λ의 가능한 값의 집합일 때,

λ의 분포가 ∑a∈A∣P(λ=a)-∣A∣-1∣≤2-cn의 관점에서 균등한 분포에 지수적으로 가깝다

는 사실을 증명한다. 이는 주어진 분포를 가지는 임의의 변수 λ'에 대하여 P(λ≠λ')이 지수

적으로 작다는 방식으로 선택 가능하다.

정의 2.4.19. 만약 v가 lattice L에서 가장 짧은 0이 아닌 벡터라면, 그리고 α>1, 어떤 ω∈

Page 188: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 188 -

L에 대하여 ∥ω∥≤α∥v∥이 v와 w가 평행하다는 것을 의미한다면 v를 α-유일하다고 한

다.

정의 2.4.20 k가 정수라면 size(k)는 k를 이진법으로 표현했을 때 비트의 수를 의미한다.

만약 v∈< x 1,…, x n>∈ Zn이면 size(v)=∑

n

i=1size( x i)이다.

이 정의에 의하여 모든 v∈ Z n에 대하여, size(v) ≥n임을 알 수 있다.

정리 2.4.21. 다음을 만족하도록 하는 절대 상수 c 1, c 2, c 3가 존재한다. 주어진 무작위 변

수 λ n, c 1, c 2를 입력으로 하여 적어도 확률 1/2를 가지면서 길이가 기껏해야 n인

Λ( λ n, c 1. c 2,[ nc 2]) 의 벡터를 출력하는 확률적 다항식 시간 알고리즘 A가 존재한다고 가

정하자. 그러면, 다음과 같은 성질을 가지는 확률적 알고리즘 B가 존재한다. 만약 선형 독

립 벡터 a 1,…, a n∈Zn이 입력으로 주어진다면, 알고리즘 B는 σ=∑

n

i=1size( a i)의 다항식

시간안에 1- 2-σ보다 크거나 같은 확률을 가지고 다음과 같은 세 개의 요구를 만족하도록

하는 z,u,< d 1,…, d n>를 출력한다.

(1) v가 L( a 1,…, a n)에서 최단의 0이 아닌 벡터라고 한다면 z≤∥v∥≤ nc3z이다.

(2) v가 L( a 1,…, a n)에서 nc3 - 유일한 0이 아닌 최단벡터라면, u=v또는 u=-v이다.

(3) d 1,…, d n은 max n=1i ∥ d i∥≤ nc 3bl(L)인 기저이다.

Page 189: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 189 -

A에 대한 가정에서 확률 1/2는 n-c로 대치될 수 있다. 이는 기껏해야 n c의 인수까지 B

의 실행속도를 증가시키나 상수 c 1, c 2, c 3에는 영향을 미치지 않는다. 만약 A가 어떤

c'>1에 대하여 길이가 기껏해야 n c'인 벡터를 출력한다면 정리는 참인 상태로 남아있지만

c 1, c 2, c 3은 c'에 의존한다. l 2 norm에서의 2보다 작은 상수배안에 SVP근사값을 찾는

것은 NP-hard이다. 또한 정수론적 Conjecture를 이용 결정적 축소를 제시한다. 다음의 결

과는 l p(p≥1)norm에 대해 모두 성립한다. SVP는 부분합, 선형프로그래밍 등 여러 가지

문제를 해결하는데 수학에서 널리 알려진 문제이다.

처음 van Emde Boas에 의해 CVP가 NP-hard라는 것이 증명되었고, SVP도 NP-hard일

것이라고 추측되었다. 그후 어떤 상수 그리고 21g(1-ε)n안에 CVP 근사값을 찾는 것은

NP-hard라고 증명되었다. 그러나 SVP의 어려움에 대한 증명은 CVP와는 달리 매우 느리

게 진행되었다. 최근 Ajtai가 SVP가 랜덤 축소에 의해 NP-hard라는 것을 증명했다. 또한

어떤 상수 c에 대해 1+1

2nc

안에 SVP근사값을 찾는 것은 NP-hard라는 것을 보이고 있

다. 이것은 J.Y Cai와 A.P.Nerurkar에 의해 비 근사값이 1+1

n ε 로 향상되었으며 lattice

의 차원이 커질수록 1로 접근하고 있다. 1이 아닌 어떤 상수범위 안에 SVP 비 근사값을 증

명해보자. 이것은 CVP의 변형으로부터 SVP 근사값으로 축소함으로써 얻어진다. CVP를

SVP로 축소하는 기술은 L.M.Ademan과 M.Ajtai가 사용했던 것과 비슷하다.

사용될 정의들을 살펴보자.

o ∊ Rn를 벡터라 하고, p≥1에 대해 ∥x∥p= (∑Xpi)

1p 를 x에 대한 p-norm이라 한다.

임의의 p에 대해 모두 성립하나 기호의 편리성을 위해 ∥ㆍ∥2를 사용한다.

o 사건 A에 대해, I A= 1, A가 참일 때

0, 그렇지 않을 때.

o U: node의 집합일 때,

(U,Z) 를 hyper-graph라 안다. Z∈ 2 u : hyper-edge의 집합.

Z에 있는 집합을 {0,1}|u|에 있는 불 벡터라고 생각한다.

oG⊆U에 대해 Z를 G에 축소하는 것을 Z|G={A∩G|A∈Z}라 한다.

Page 190: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 190 -

정의 2.4.22. (근사SVP) g가 차원에 대한 gap 함수일 때, The promise problem

Gap SVP g를 다음과 같이 정의한다.

• B는 Rn에 있는 lattice의 기저, d∈R, 어떤 z∈ Z n-{0}에 대해 ∥Bz∥≤d 이면 (B,d)

를 Yes instance라 하자

• B는 Rn에 있는 lattice의 기저, d∈R, 모든 z∈ Z n-{0}에 대해 ∥Bz∥≤gd이면 (B,d)

를 No instance라 하자

정의 2.4.23. (근사CVP)

• B∈ Z k×n,y∈ Z k,d∈R, 어떤 z∈ Z n에 대해

∥Bz-y∥≤d이면 (B,y,d)는 Yes instance이다.

• B∈ Z k×n,y∈Z, d∈R 모든 z∈ Z n에 대해

∥Bz-y∥>gd이면 (B,y,d)는 No instance이다.

정의 2.4.24. (변형CVP)

• B∈ Zk×n,y∈ Z

k,d∈R, 어떤 z∈{0,1}n에 대해

∥Bz-y∥≤d이면 (B,y,d)는 Yes instance이다.

• B∈ Zk×n,y∈ Z

k,d∈R, 모든 z∈ Zn,w∈Z-{0}에 대해

∥Bz-wy∥>gd이면 (B,y,d)는 No instance이다.

L.Babai, J.Stern둥에 의해 Gap CVP c 와 GapCVP 'c는 임의의 상수c에 대해 NP-hard라

고 증명되었다. 다음은 lattice에서의 CVP 근사값의 어려움을 이용하여 어떤 상수배 안에

SVP 근사값을 얻는 것은 어렵다는 것을 보인다.

Page 191: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 191 -

보조정리 2.4.25. 임의의 상수 ε≥0에 대해, 1 k의 입력으로 다음 아래의 것들을 1에 가까운

확률을 가지고 만족시키는 lattice L∈ R (m+1)×m, 벡터 s∈ Rm+1,행렬 C∈ Z k×m을 계산하

는 (확률적)다항식시간 알고리즘이 존재한다.

• 0이 아닌 임의의 z∈ Z m, ∥Lz∥ 2> 2

• 모든 x∈{0,1}k에 대해 Cz=x 그리고 ∥Lz∥-s∥2<1+ε 을 만족하는 z∈ Zm이 존재한

다.

정리 2.4.26. lattice에서 SVP 근사값을 2보다 작은 어떤 상수배 안에서 찾는 것은

NP-hard이다.

3. 격자 축소문제 기반 암호알고리즘

Ajtai-Dwork 암호 알고리즘은 키 크기나 효율적인 면에서 GGH 알고리즘보다 취약했으나

Ajtai에 의해 안전성이 보통의 경우/ 최악의 경우에 증명이 되었으므로 안전성에 대한 확신

은 가지게 되었다. GGH(Goldreich, Goldwasser, Halevi)시스템은 AD 시스템보다 키가 작

고 암호화 속도가 빠르므로 실용적이라는 생각이 전반적이었지만 Internet Challenge를 통

하여 차원이 400미만인 경우는 모두 공격에 성공하였다. 그러나 차원이 400인 경우는 키가

너무 커져 비실용적이므로 이 GGH 시스템은 완전히 깨졌다고 할 수 있다. 따라서 이와 비

슷한 암호법 또한 안전하지 않다. JYC, NTRU 알고리즘은 가장 최근에 나온 알고리즘이다.

JYC 알고리즘은 그 나름대로의 분석방향을 설정하여, 그에 대한 안전성을 증명하였으나 아

직 확실히 그 안전성이 좋은 지에 대해서는 알 수 없다. NTRU 시스템은 GGH 시스템과 마

찬가지로 Internet Challenge를 통하여 그 안전도를 분석하였으나 이 역시 그 안전성의 좋

고 나쁨은 알 수 없다.

Page 192: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 192 -

가. Ajitai-Dwork 암호알고리즘

최근에 Ajitai는 몇몇 잘 알려진 lattice 문제들의 최악의 경우의 복잡도와 보통의 경우의 복

잡도 사이의 관련성을 발견하였다. 후에 Ajitai와 Dwork은 만약 특별한 lattice 문제가 최악

의 경우에 어렵기만 하다면 안전하다는 Ajitai의 연구에 영감을 얻어 암호시스템을 제안하였

다. 아래의 공격에 대한 실험은 AD시스템이 안전하기 위해서는 실제 생활에서는 비실용적

인 매우 큰 키를 가져야만 안전함을 보였다. 먼저 Ajitai-Dwork 암호시스템에 대해서 알아

보자. 0과 1/2사이에 존재하는 ε에 대하여 가장 근접한 정수까지의 거리가 기껏해야 ε인 실

수의 집합을 Z+ε이라하자. 그리고 유클리다안 공간 Rn에서 2개의 벡터들의 내적을

<x,y>라고 표기하자. 주어진 n개의 선형독립인 벡터 ω1, ω2,…, ωn에 대하여, ω i들에 의

해 확장된 parallelepiped는 계수가 [0,1]에 존재하는 ω i들의 모든 선형결합의 집합

P( ω 1,…, ω n)이다. 주어진 안전 변수 n에 대하여 m= n 3, ρ n= 2nlogn이라고 놓자. 그리고

Bn을 변의 길이가 ρ n인 큰 n 차원 큐브, S n를 반지름이 r-8인 작은 n 차원 볼이라 표

기하자. 주어진 n에 대하여 비 키는 n 차원 단위구에서 균등하게 선택된 벡터 u이다. 이와

같은 비 키에 대하여 아래와 같은 설계에서 나온 Bn 에 존재하는 점들의 분포를 Hu라

표기한다.

1) {x∈ Bn:<x,u>∈Z}로부터 무작위로 균등하게 점 a를 뽑는다.

2) S n 으로부터 무작위로 균등하게 δ 1, δ 2,…. δ n를 추출한다.

3) 점 ν=a+∑iδ i를 출력한다.

공개키는 parallelepiped ω=P( ω1,…, ωn)의 넓이가 적어도 n-2 ρ n가 되는 조건에 맞는 분

포 Hu로부터 점 ω1,…, ωn , ν 1,…, ν n를 무작위로 독립적으로 선택함에 의해서 얻을 수

있다. 암호화는 비트 단위로 이루어 진다. '0'을 암호화하기 위해서는 {0,1}에서 b 1,…, b m

를 균등하게 선택한 후 벡터 ∑m

i=1b i ν i를 parallelepiped ω 모듈로 줄인다. 이렇게 얻어진

벡터가 암호문이 된다. '1'의 암호문은 parallelepiped ω에서 단지 무작위로 선택된 벡터이

다. 비 키 u를 가지고 암호문 x를 복호화하기 위해서는 τ=<x,u>를 계산한다. 만약 τ∈Z±

n-1이라면, x는 '0'으로 복호화되고, 그렇지 않으면 '1'로 복호화된다. 따라서 '0'의 암호와

는 항상 '0'으로 복호화될 것이며, '1'의 암호화는 확률 2n-1로 '0'으로 복호화된다. 그러나

이 복호화 에러는 제거가 가능하다.

다음은 실제적인 공격방법에 대하여 살펴보자.

Page 193: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 193 -

(u, ω1,…, ω n, v 1,…, v m)를 키들의 집합이라 하자. 어떤 실수 β에 대하여 Λβ를 아래의 행

렬의 열들에 의해 확장된 m 차원 lattice로 표기하자.

각각의 < ν i,u>는 Z± n-7에 속한다: Vi 를 < ν i,u>에 가장 근접한 정수라고 하자. 아래

에 따르는 결과는 Λβ에 존재하는 짧은 벡터들은 Vi들에 대한 정보를 준다는 것을 알려

준다.

정리 2.2.27. x= (β( λ 1 ν 1+ λ m ν m)l,λ1,…,λm)

t를 Λβ의 점이라 하자. 여기에서 λ i들은

정수이다. 만약 n 7∣∑m

i=1λ i ν i∣+∑

m

i=1∣ λ i∣< n

7이면, ∑m

i=1λ i Vi=0이다. 특히, 만약,

β 2≥1

2n 7-1,∥x∥<

1

2n7-1n 7 이면, 등호가 성립된다.

Page 194: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 194 -

정리 2.2.28. 모든 ε>0에 대하여 모든 n≥N에 대하여 아래의 내용이 성립하도록 하는 N이

존재한다.{ i 1, i 2,…, i m}을 {1,2,…,m}의 부분집합이라고 하자. 만약,

를 만족하는 {-1,0,1}안에 존재하는 모두 0은 아닌 λ 1, λ 2,…, λ m이 존재한다.

보조정리 2.2.29. 모든 ε>0에 대하여 모든 n ≥N, 모든 β>0 대하여 n3+ β

2n7-2n/log2n보

다 작거나 같은 norm를 가지는 적어 개의 선형 독립인 Λβ 안의

lattice점들이 존재한다.

만약 L이 Z n안의 lattice라면 수직 lattice L⊥는 모든 lattice 점들에 수직인 Z n안의 점

들의 집합으로 정의된다. 원소들이 Vi들인 Z m안의 벡터 V를 고려하자. 정리1은 Λβ의

충분히 짧은 벡터들은 Z m안의 m-1 차원 lattice인 V⊥안의 벡터와 상응함을 보여준다.

보조정리 2.2.29는 그 같은 짧은 백터들이 많이 존재함을 보여준다. 만약 누군가가 V⊥안

의 m-1개의 선형 독립벡터들을 안다면, 그는 1-차원 lattice ( V⊥)⊥를 결정할 수 있다:

그는 ( V⊥)⊥ 를 생성하는 벡터 V'를 찾을 수 있다. V= εV'를 만족하는 ε∈Z이 존재한다.

만약 모든 Vi들이 서로소라면 ε=±1이다. 부호는 무시할 수 있으므로 ε=1로 가정할 수 있

다. 그리고 만약 Vi 를 안다면, 선형 시스템을 풀어 비 키 u의 근사값을 얻을 수 있다. 이

는 각각의 < ν i,u >≈ Vi는 미지수가 u의 원소가 되는 선형방정식을 유발한다. 만약 A가

canonical 기저에 대한 ν 1,…, ν n를 표현하는 행렬이라면, V 1,…, Vn에 의해 형성된 백터

에 의한 A-1의 곱은 u의 근사값이다. 이 근사값은 < ν i,u >가 Vi에 가깝고 A-1의 계수

들이 매우 작기 때문에 좋다. 공격은 다음과 같다:

Page 195: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 195 -

(1) lattice 줄임 알고리즘들을 이용하여 ν i 들의 짧은 선형 결합을 찾아 V⊥ 안의 벡터들을

얻는다.

(2) V⊥ 안의 벡터를 충분히 찾았을 때, ( V⊥)⊥,±V를 계산한다.

(3) 선형시스템 Au'=V'를 푼다. u';비 키 u의 근사값

위와 같은 단계를 거쳐 공격을 해본 결과 n=32일 때조차도 공격이 가능하였다. 공개키를

저장하기 위해서는 적어도 n 5logn비트가 요구되므로 n=32에 대해서 이 양은 20 메가바이

트이며, 각각의 비트에 대한 암호문은 길이가 6144비트이다. 이는 AD암호시스템이 적절한

안전도를 보장하는 차원에서는 비실용적임을 보여준다.

나. GGH 암호알고리즘

Gap CVP r와Gap SVP r를 이용한 GGH 공개키 암호시스템의 개선에 대해서 살펴보자.

GGH 공개키 암호에 있어서 가장 큰 문제점은 공개키의 크기나 암호문의 크기가 너무 크다

는 데에 있다. 따라서 본 절에서는 GGH 시스템의 공개키, 암호문의 사이즈를 개선하는 방

법을 제안한다. 우선 GGH 시스템의 공개키를 B, 비 키를 R, 에러 벡터를 e라 놓고 E(M)

을 메시지 M에 대한 암호문이라 놓자.

(1) 메시지를 에러벡터에 embedding 시키는 방법

M을 메시지라 할 때 E(M)=e mod L(B)가 된다. Gap CVP r를 풀 수 있는 사람은 E(M)에

서 가장 가까운 Lattice를 찾을 수 있으므로 e를 구할 수 있게 된다. 따라서 복호화가 가능

하게 된다.

Page 196: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 196 -

(2) 메시지를 Lattice 벡터에 embedding 시키는 방법.

M을 메시지라 하면 M을 정수 벡터 m∈{ 0,1}n에 embedding 시키자. 그러면

E(M)=(Bm+e) mod (2B)이다. Gap SVP r를 풀 수 있는 사람은 m을 구할 수 있으므로 복

호화가 가능하게 된다.

(3) 공개키의 크기를 줄이는 방법.

주어진 행렬로부터 Hermit Normal Form을 구하는 것은 매우 쉬운 일이다. 따라서 공개키

를 위에서 주어진 B의 Hermit Normal Form이라 놓으면 공개키의 사이즈는 원래의 GGH

시스템보다 훨씬 작게 된다. 따라서 공개키의 크기는 작아지게 된다. 그리고 위에서 제안된

방법을 이용하면 암호문의 크기도 작아지게 된다.

GGH구조는 그 디자인 구조상 2개의 커다란 결점이 존재한다.

(1) 어떤 암호문도 평문에 대한 정보를 유출한다.

(2) 암호문을 해독하는 문제는 일반적인 문제보다 훨씬 쉽고 간단한 특별한 근접벡터문제로

줄일 수 있다.

따라서, 이 GGH 시스템은 실용성을 고려한다면 충분한 안전성을 제공하지 못한다고 할 수

있다.

Lattice를 기반으로 한 공개키 암호 시스템은 크게 2가지로 나눌 수 있다. 하나는

Ajitai-Dwork 암호 시스템으로 최소벡터문제를 그 기반으로 하고 다른 하나는

Goldreich-Goldwasser-Halevi의 암호 시스템이다. 이는 근접 벡터 문제를 그 기반으로 한

다. GGH 시스템은 AD가 키 크기나 암호화 시간이 n 4에 비례하는데 비하여 n 2에 비례하

므로 AD에 비해 실용적이라 할 수 있다. GGH는 차원이 200, 250, 300, 350, 그리고 400

에 대하여 인터넷 도전을 실시했는데, 이 도전에 의하여 차원이 300이상이어야 안전하다고

믿어졌다. 이 도전에서 가장 강력한 시도는 embedding 기술-근접 벡터 문제를 비슷한 차

원의 최소 벡터 문제로 줄이는 기술-이다. 높은 수준의 reduction 알고리즘을 이용하여 근

접 벡터 문제를 풀기를 시도하여 Schnorr는 차원150이상 Nguyen은 200이상을 성공하였

다. 이 논문에서는 GGH 시스템이 아주 위험한 결점을 가지고 있음을 보인다. 즉, 각각의

암호화는 평문에 대한 정보를 유출하며, 이 유출된 정보는 일반적인 문제보다 훨씬 쉬운 특

별한 근접 벡터 문제로 귀결되어 공격자로 하여금 훨씬 쉽게 복호화 하도록 허용한다. 이

제, GGH 암호알고리즘을 자세히 분석해보기로 하자. 먼저 Lattices에 대한 기본배경을 알

아보자.

Page 197: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 197 -

정의 2.4.30. M:행렬식이 0이 아닌 n×n 정수 행렬이고 b 1 b 2,…, b n:M의 행 벡터라 할

때, L=( b 1 b 2,…, b n)⇔L(M)은 b 1 b 2,…, b n 의 정수 선형 결합.

Lattice reduction의 목적은 줄여진 기저- 즉, 적당히 작은 벡터들로 구성된 기저-를 찾는

것이다.

정의 2.4.31. Lattice gap=(두 번째 연속 최소값)/(가장 짧은 0이 아닌 벡터의 길이)이다.

따라서, lattice gap이 클수록 줄임이 더 쉬워진다. (실험결과)

줄임 알고리즘은 두 가지가 존재하는데 하나는 LLL-알고리즘으로 근접 벡터 문제, 최소 벡

터 문제에 대한 추정 알고리즘이고, 다른 하나는 BKZ-알고리즘으로 가정 좋은 줄임 알고리

즘이다. 실제적으로 근접 벡터 문제를 푸는 가장 좋은 방법은 이 문제를 최소 벡터 문제로

줄이는 embeddig 기술이다. ;

b 1 b 2,…, b n: L의 기저, c: 최소 벡터 문제를 부르는 주어진 벡터

Page 198: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 198 -

따라서, L'의 가장 짧은 lattice 벡터가 L의 가장 짧은 lattice 벡터와 같은 길이를 갖기를

기대할 수 있다. v∈L이 c와의 거리를 최소화한다고 하자. (c-v,1)∈ Zn+1은 짧고 L'에 속

한다고 할 수 있다. 만약 c가 L가 매우 가깝다면 c-v는 L의 최소 벡터보다 더 짧게 될 것

이다. 즉, L'은 큰 gap를 가지게 되어 줄이기가 쉬워진다.

다음으로, GGH 암호 시스템의 구성은 아래와 같다.

[암호화단계]

c=mB+e

B: 공개키, B=U1 U2,…,UrR , Ui는 행 변환 행렬

R: 비 키(어떤 범위 내까지 에러벡터를 무시 할 수 있게 한다.)

(n, σ)∈ N 2,n≫ σ((n, σ)≓(300,3)); 안전도를 결정한다.

메시지 공간은 Zn에서 충분히 크게 한다. [-128,…,1 27] n ;8n 비트.

e= (-σ,σ) n.

여기에서 암호 시스템은 많이 안전하지는 않다. (이미 알고 있는 에러 벡터와 암호문, 공개

키 B에 대하여 c=mB+e를 계산해본다.)

[복호화 단계]

Page 199: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 199 -

정리2.4.32. R을 비 기저라 하자. R-1의 열의 L∞-길이가 최대인 값이 γn

이라 하면

복호화 할 때 에러가 있을 확률은 2ne -1/(8 σ2γ2) 보다 작거나 같다.

이 정리로부터 우리는 σ가 커지면 근접 벡터 문제가 어려워져 안전도는 올라가지만 복호화

에러가 일어날 확률이 커짐을 알 수 있다. 이 모두를 고려하여 GGH는 σ의 값이 3일 때가

가장 좋다고 하였다. 그러나 결과적으로 이 사실에서 GGH 시스템은 차원이 400보다 작으

면 안전하지 않음이 드러나고 차원이 400이상이면 GGH 자신들이 밝혔듯이 비실용적이다.

GGH 시스템은 그 형태 자체로 정보를 유출한다.

(n, σ) 안전도 매개변수

B 공개기저

m→c, e∈ {± σ}n, c=mB+e 에러 벡터의 특별한 모양이 이 시스템의 주요 단점이다.

c=mB(mod σ)

s={ σ, σ,…, σ}∈ Z n라 하자. 그러면,

e+s≡0(mod2 σ)이 되고 c+s≡mB(mod2 σ)가 되어 이 모듈라 시스템을 풀면, m 2σ를 얻을

수 있다. 이 과정을 진행하기에 앞서 두 가지 의문점이 생기게 된다. 하나는 '얼마나 많은

해가 존재 할 것인가?'이고 나머지 하나는 '모든 해를 어떻게 다 구할 수 있는가?' 라는 의

문이다. 이 의문점에 대한 해답은, 높은 확률로 근의 수는 아주 적으며, 또한 계산하기도 쉽

다는 것이다. 무시할 수 없는 확률로 단 하나의 유일한 해가 존재한다. 이 확률은 B에 의존

한다. B가 비 키 R를 임의로 섞음에 의해 얻어지고 2σ가 작은 수이므로 우리는 B의 원소

들이 모듈 2σ에 의해 서로 독립적으로 Z 2σ안에 균일하게 분포감을 가정할 수 있다. 다음과

같은 모듈방정식을 생각해 보자.

y = x B (mod N)

근의 수= kernel의 수

만약 B가 모듈 N에 대하여 invertible 하다면 우리는 쉽게 모듈 N에 대하여 근을 구할 수

있다. y B-1=x( modN)

Page 200: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 200 -

(1) 역행렬을 가지는 행렬

정리2.4.33. N∈N, p 1, p 2,…, p l∣N, R={M∣M∈Mat n×n ( Z N)}이라 할 때, invertible 행

렬의 비는 ∏l

i=1∏n

k=1(1-p -ki ) 이다.

(a) N= q a

N과 서로소가 아닌 수들은 q의 배수이므로 singular 행렬은 행렬식이 q에 의해 나누어지는

행렬이다. 따라서 Mn ( Z qa)에서 invertible 행렬의 비는 정확하게 Mn ( Z q)에서

invertible 행렬의 비이다.

Mn( Fq)에서 invertible 행렬의 수는 선형 독립 벡터들의 ( b 1 b 2,…, b n)의 군의 수와 같

고 이는 ∏n-1

k=0( q n-q k)=q n

2

∏(1- q-k) 이므로 invertible 행렬의 비는 ∏

n

k=1(1- q-k)이다

(b) N= p 1α 1 p 2

α 2… p lα 1

Chinese Remainder Theorem에 의해 비를 계산할 수 있다.

∏l

i=1∏n

k=1(1- pi

-k)

무시할 수 없는 확률로 공개 행렬B는 모듈 2 σ로 invertible함을 알 수 있고 이에 의해 모

듈2 σ로의 평문 값 m 2σ를 알 수 있다.

(2) 작은 kernel를 가진 행렬

행렬이 역행렬을 갖지 않을 때 그 행렬에 대한 방정식의 kernel은 대부분 매우 작다.

Page 201: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 201 -

(a)소수 모듈 p

xB=0 (mod p)

이 때 kernel은 Zp-벡터 공간이다.

만약 d=dim(ker)이라면, 해의 수는 p d이다.

만약 p와d가 작다면, 이 수 역시 작다.

정리2.4.34. Mn( Fq),q는 소수의 승을 고려하자. 이 때 다음을 알 수 있다.

(1) 1-차원 kernel를 가진 행렬의 비 = q

( q-1)2 (1- q

-n) ∏n

k=1(1- q-k)

(2) 2-차원 kernel를 가진 행렬의 비

=q

( q-1) 2( q 2-1)2 (1- q

1-n-q-n+q 1-2n) ∏n

k=1(1- q-k)

이 정리에 의해 모듈p로 역행렬을 갖지 않는 대부분의 모듈 system은 kernel의 차원이 기

껏해야 2임을 알 수 있다. 즉, 이 시스템에 대한 근은 기껏해야 p 2개이며 이 근을 계산하

는 것은 매우 간단하다. 어떤 소수 모듈에 대해서 어떠한 행렬의 kernel기저는 다항식 시간

내에 계산이 가능하다. 이 시스템의 특별근을 찾기 위해서 우리는 embedding 기술을 이용

하기 위하여, y와 행렬 B로부터 (n+1)×(n+1) 행렬을 만들 수 있다.

(b) N= p 1 p 2… p l

각각의 소수 모듈에 대하여 구한 근들로부터 CRT를 사용하여 계산한다. 근의 총 수는 각각

의 소수에 대한 근의 수의 곱에 의해 얻어진다.

모듈 2σ 즉 6에 대하여 kernel의 원소가 12개 이상일 경우는 매우 적다.

(3) N이 어떤 소수에 대하여 2차 이상으로 나누어질 때는 위의 방법을 적용할 수 없으나

정확하게 근의 수는 계산할 수 있는지 없는지 알지 못하나, 확실한 것은 근의 수가 작다는

것이다.

Page 202: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 202 -

제한된 안전도 매개변수에 대해서 B는 높은 확률로 매우 작은 kernel를 가지고 있다. 따라

서, 어떤 암호문 c에 대해서도 선형 시스템은 매우 작은 수의 해를 가진다. 따라서, 암호화

방법이 확률적임에도 불구하고 주어진 암호문이 주어진 평문(평문의 아주 작은 부분만을 알

지만)에 올바르게 대응되는지의 여부를 확인할 수 있다. 그러므로 GGH 암호시스템은 아주

안전한 것과는 거리가 멀다. 다음은 CVP 문제를 간단하게 만드는 방법을 알아보자. 평문에

대한 부분정보 m 2σ를 이용하여 어떻게 복호화 문제를 간단히 하는지를 알아본다.

근접 벡터 문제가 에러 벡터가 e2σ∈{ ± 12 }

n

로 매우 작아진다. (에러 벡터의 크기:

σ n→n4). Embedding 방법은 작은 에러 벡터에 대하여 더 잘 문제를 해결한다. 그러나

위의 새로운 근접 벡터 문제는 유리수가 포함되어 있고 이는 좋지 않은 상태이다.

(개선1) 양변에 2를 곱한다.

c-m 2σB

σ=2m'B+

eσ,eσ={±1}

n

c-m 2σB

σ∈ Z n 이고 에러 벡터의 길이= n이다.

(개선2) 평행 이동에 의해 에러 벡터를 2 σ의 배수로 만든다.

s=(σ,σ,…,σ)∈Zn

c+s-m2σB=(m-m2σ)B+e+s

여기에서 c+s-m2σB=2σc', m-m2σ=2σm', e+s=2σe', c',m',e'∈ Zn이다.

Page 203: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 203 -

c'=m'B+e',e'∈{ 0,1} n

여기에서 에러 벡터의 길이는 n4

보다 약간 긴 n2

이다. 하지만, 유리수 상태를 모두 정

수 상태로 만들 수 있다.

이 시스템의 암호화 과정에서 에러 벡터가 특별한 모양을 가진다.

o정리1이 유효하면서 즉, 복호화 에러가 일어나지 않으면서 잘 선택한 정수 모듈에 대하여

에러 벡터의 값을 공격자가 더 이상 알지 못하도록 에러 벡터를 고쳐야 한다.

o정리 1이 유효하기 위해서 에러 벡터의 각 원소들의 절대값이 σ보다 작아야 하고 평균이

0이어야 한다.

e∈{-σ,…,σ},여기에서의 단점은 에러 벡터의 길이가 줄어들어 근접 벡터 문제를 쉽게 한

다는 것이다.

몇몇의 학자들은 에러벡터로 e∈{± σ,±( σ-1)}를 제안하였지만 이 역시 벡터의 특별한 모

양이므로 위험하다. 어떤 경우에도 에러벡터는 원래 구조에서보다 작아지지만 이는 첫 번째

약점에 더 노출되게 만든다. 만약 e∈{-σ,…,σ}이면, embedded lattice의 gap은 약 3≤7이

다. 최소벡터문제는 차원 350까지 작은 gap(≒7)을 가지고 lattice classes에 대하여 효과

적으로 풀 수 있다. 결론적으로 GGH 근접 벡터 문제에서 에러벡터의 특별한 모양은 위험

하다. 평문의 부분정보가 유출되고 암호문을 복구하는 문제가 일반적인 문제보다 훨씬 쉬운

근접 벡터 문제를 푸는 것으로 줄여진다. 이 단점을 보완하기 위한 간단한 방법이 존재하

나, 수정됨에도 불구하고 안전 매개변수를 크게 하지 않으면 충분한 안전도를 제공하지 않

는다. 안전 매개변수를 크게 한다함은 차원을 400이상으로 올리는 것인데 차원이 400이상

이면 GGH 시스템은 더 이상 실용적이지 않다.

Page 204: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 204 -

다. NTRU 암호알고리즘

NTRU는 새로운 공개키 암호시스템이다. 이는 적당히 짧고, 키 생성이 쉽게되며, 속도가 빠

르고 적은 양의 메모리를 요구한다. 암호화 단계는 다항식 대수와 두 개의 수 p와 q에 대한

모듈에 근거한 섞는 시스템을 사용한다. 반면에 복호화 단계는 타당성이 기초적 확률이론에

의존하는 섞지 않는 시스템을 사용한다. NTRU 공개 키 암호체계의 안전성은 p와 q의 모듈

로 줄임의 무관성과 함께 다항식 섞음 시스템의 풀기 어려움으로부터 나온다. 안전성은 또

한 대부분의 lattice에 대하여 매우 짧은 벡터를 찾기가 매우 어렵다는 사실에 의존한다.

NTRU는 확률론적 암호시스템의 일반적 구조에 잘 맞는다. 이는 암호화가 무작위 원소를

포함하는 것을 의미하며, 따라서 각각의 메시의 암호화가 다양하게 된다. NTRU의 암호화

와 복호화는 매우 빠르며, 키 생성은 빠르고 쉽다. 길이 N의 메시지 블록을 암호화 또는 복

호화하는 것은 O( N 2)만큼의 연산이 소요되며, 이는 O( N 3)이 소요되는 RSA보다 훨씬 빠

름을 알려준다. 더군다나 다른 빠른 공개 키 시스템의 키 길이가 O( N 2)인데 비하여

NTRU의 키 길이는 O(N)이다. NTRU 암호시스템은 세 개의 정수 매개변수 (N, p, q)와 정

수 계수를 가지는 N-1차 다항식의 네 개의 집합 Lf,Lg,Lφ,Lm에 의존한다. 여기에서 p

와 q는 소수일 필요는 없고, 단지 서로 소의 관계이며, q는 p보다 훨씬 크기만 하면 된다.

NTRU 알고리즘은 링 R=Z[X]/(XN-1)에서 작용한다. 원소 F∈R은 다항식 또는 벡터로

쓰여진다.

R에서의 곱셈을 ∗로 나타내기로 한다.

F∗G=H⇔Hk=∑k

i=0Fi Gk-i+ ∑

k

i=k+1Fi GN+k-i= ∑

i+j=k(mod N)Fi Gj

Page 205: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 205 -

원칙적으로, F∗G의 계산은 N 2곱셈을 요구한다. 그러나 NTRU에서 사용되는 것에 대해서

는 F와 G중의 하나가 작은 계수를 가지기 때문에 이 계산은 매우 빠르다. NTRU의 키를

생성하기 위해서 무작위로 두 개의 다항식 f,g∈L g를 선택한다. 다항식 f는 모듈 q와 모듈

p로의 역을 가져야만 한다. 이 역들을 F q F p로 표시하자. 즉,

다음으로 h≡ Fq∗g(mod q)를 계산한다. 공개키는 다항식 h이며, 비 키는 다항식 f이다.

메시지를 보내기 위해서 평문 Lm의 집합에서 메시지 m을 무작위로 선택한다. 다음은 다항

식 ∅∈ L ∅를 무작위로 선택하고 e≡p∅∗h+m(mod q)를 계산하기 위해 상대방의 공개키

를 사용한다. 이 e가 바로 암호화 메시지이다. 비 키 f를 이용하여 복호화하는 것을 효과

적으로 하기 위하여 다항식 Fp를 미리 계산한다. e를 복호화하기 위해서 처음 해야할 일은

a≡f∗e(mod q)를 계산하는 것이다. 여기에서 a의 계수들은 -q/2에서 q/2범위에서 선택한

다. a를 정수 계수를 가지는 다항식으로 다루므로 Fp∗a(mod p)를 계산함에 의해 메시지

를 복구할 수 있다. 알맞은 매개변수 값에 대하여, 복호화 단계가 원래의 메시지를 복구하

는 가능성은 매우 높게 존재한다. 그러나, 몇몇의 매개변수 선택은 때때로 복호화를 실패하

게 할 수도 있다. 따라서 사용자는 각각의 메시지 블록에 몇 개의 체크 비트를 포함시켜야

한다. 다항식 a는 다음과 같은 성질을 만족한다:

Page 206: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 206 -

여기에서 마지막 다항식 p∅∗g+f∗m을 고려해 보자. 적당한 매개변수의 선택에 대하여

이 다항식의 계수 모두가 거의 항상 -q/2와 q/2사이에 존재하게 할 수 있다. 따라서 만약

이 다항식의 계수가 모듈 q에 대하여 줄여져 있다면 변하지 않는다. 이는 f∗e 모듈 q의

계수를 -q/2와 q/2사이로 줄일 때, 다항식 a를 Z[X]/( XN-1)에서 정확하게 복구할 수 있

다. a 모듈 q를 줄이는 것은 다항식 f∗m(mod p)를 얻을 수 있음을 의미하고, Fp를 곱하

면, 메시지 m(mod p)를 얻을 수 있다. R의 원소 F의 폭

∣F∣∞를 max 1≤i≤N { F i}- min 1≤i≤N { F i}으로 정의한다. 이는 R위의 L∞ norm의 일종이

다. 비슷한 방법으로 R위의 centered L 2 norm을 F'=1N ∑

N

i=1Fi라 할 때,

∣F∣2=( ∑N

i=1( Fi-F')

2) 1/2로 정의할 수 있다.

정리 : 임의의 ε>0에 대하여 ε과 N에 의존하면서, 무작위로 선택된 다항식 F,G∈R에 대하

여, γ 1∣ F∣ 2∣ G∣ 2≤∣F∗ G∣∞≤ γ 2∣ F∣ 2∣ G∣ 2를 만족하는 확률이 1-ε보다 큰

γ 1, γ 2가 존재한다. 만약 γ 2/ γ 1이 작은 ε에 대하여 매우 크다면, 실용적인 관점에서 이

정리는 유용하지 않다. 그러나, 완만하게 큰 N과 매우 작은 ε의 값에 대해서도, 상수

γ 1, γ 2는 전혀 극단적이지 않다. 메시지 Lm의 공간은 모듈 q 다항식으로 구성되어 있다.

p가 홀수라고 가정하면, Lm을 {m∈R: -12 (p-1)≤coeff(m)≤12(p-1)}으로 선택하는 것이

가장 편리하다. 다른 샘플 공간을 묘사하기 위하여,

L( d 1, d 2)={F∈R: d 1coeff(F)=1, d 2coeff(F)=-1,나머지는0}모양의 집합을 사용한다. 우선

3개의 양의 정수 d f, d g,d와 집합 Lf=L( d f, d f-1), Lg=L( dg, d g),Lϕ=L(d,d)를 선택한

다. 이 때, ∣f∣2= 2 d f-1-N-1, ∣g∣2= 2 d g, ∣Φ∣2= 2d 이다. 복호화가 제대로 작용

하기 위해서는 ∣f∗m+p∅∗g∣ ∞<q일 필요가 있다. 이는 매개변수를

∣f∗m∣ ∞≤q/4, ∣p∅∗g∣ ∞≤q/4 가 되도록 선택한다면, 항상 성립한다. 그리고 위의

정리 관점에서 이는 ε의 작은 값에 대하여 상응 하는 γ 2에 대하여

∣f∣ 2 ∣m∣ 2≈q/4 r 2, ∣∅∣ 2 ∣g∣ 2≈q/4p γ 2 를 잡도록 제안한다. 이 시스템에 대한

다양한 안전성 분석을 살펴보자.

Page 207: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 207 -

1) 무작위 공격

공격자는 모든 가능한 f∈L f를 시행해보고, f∗h(mod q)이 작은 원소들을 갖는지를 시험

해보거나, 또는 모든 g∊ Lg를 시행해보고, g∗ h -1(mod q)이 작은 원소들을 갖는지를 시

험해 봄에 의해 비 키를 찾을 수 있다. 비슷하게 공격자는 모든 가능한 ∅∈ L ∅를 시행해

보고, e=∅∗h(mod q)가 작은 원소를 갖는지 시험해봄에 의해 메시지 복구가 가능하다.

실제로 Lg가 Lf보다 더 작을 것이므로 키의 안전성은 # Lg에 의해 결정되고, 메시지 안

전성은 #L∅에 의해서 결정된다. 그러나 meet-in-the-middle 공격에 의해 공격시간을 줄일

수 있으므로 안전성 수준은 아래와 같다.

키의 안전성 #Lg=1d g!

N!(N- 2d g)!

메시지 안전성 #L∅=1d !

N!(N-2d)!

2) Meet-in-the-middle 공격

암호화된 메시지의 모양은 e=∅∗h(mod q) 이다. Andrew Odlyzko는 ∅에 대하여 사용할

수 있는 meet-in-the-middle 공격이 존재함을 지적하고 있다. 그리고 쉽게 비슷한 공격을

비 키 f에 대해서도 적용 가능함을 알 수 있다. 간단히 말해서 f를 반으로 분리, 즉,

f=f 1+f 2,한 다음 f 1∗e를 - f 1∗e에 match시킨다. 따라서, 2 80의 안전 수준을 얻기 위

해서는 f,g,∅를 약 2 160개의 원소를 포함하는 집합으로부터 선택해야만 한다. 그러면 좀

더 자세히 NTRU 비 키에 대한 이 공격법에 대해서 알아보자. 만약 비 키가 2 M개의 원

소를 가지는 샘플 공간에서 선택되었다면, 암호시스템의 안전도 수준은 2M2 이다. 먼저 기

본적인 기호들을 정의하기로 한다. N, d; NTRU 암호시스템을 만들기 위해 사용되는 정수

의 매개변수. 여기에서 N과 d는 짝수라 가정할 것이며, 홀수 값에 대해서는 짝수로 수정하

기가 쉽다.

Page 208: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 208 -

f : d개의 1과 N-d개의 0들로 구성되어 선택된 비 키

g : 공개키를 형성하기 위해 사용되며, 계수들이 0과 r-1사이에서 선택되어진다.

h : 공개키 h≡ f-1g(mod q)

k, 1 : (q

2l )k가 ( N/2d/2 ) 보다 크게 되는, 공격자에 의해서 선택되어지는 정수.

이 공격법에 대한 아이디어는 f 1+f 2형태에서 f를 찾는 것이다. 여기에서 f 1, f 2는 각각d/2

개의 1을 가진다. 단계별로 살펴보기로 하자.

[단계 1]

N개의 가능한 자리 중에 무작위로 N/2개를 선택한다. 실제 비 키 f에서 이 선택된 N/2개

의 자리 중에서 정확하게 d/2개의 자리가 1이라고 가정한다. 좀 더 명확하게 하자면, 처음

N/2개의 자리가 선택 될 수 있도록 자리 매김을 다시 한다. 그러면, 각각 d/2개의 1과 나머

지는 0으로 구성된 길이가 N/2인 두 개의 벡터 f 1, f 2을 찾는다. 이 때 이들 두 개의 벡터

의 합은 ( f 1+f 2)h가 모듈 q로 작은 값을 가져야 한다.

[단계 2]

벡터 f 1을 낱낱이 센다. 이는 ( N/2d/2 ) 단계가 걸리며 다음과 같이 할 수 있다. f 1h(modq)

의 처음 k개의 요소들을 근거로 하는 bin에 f 1을 집어넣는다. bin을 만들기 위해서는 범위

[0, q-1]을 길이 2 l의 부분 범위로 나눈다. 이 부분 범위의 집합을 I로 표시한다. 다시 말

해서, I범위 I j들의 집합이다. I j=[ 2l(j-1), 2

lj-1],1≤j≤

q

2 l (편의상, 2 l이 q를 나눈다고

가정한다.). Bin은 I로부터 선택된 범위들의 k개의 요소로 된 집합이다. 어떤 f 1h(modq)의

처음 k개의 요소가 ( a 1, a 2,…, a k)라면, a i∈ I i,1≤i≤k가 되도록 하는 bin ( I 1, I 2,…, I k)

에 f 1을 넣는다. f 1에 대한 bin I k들의 집합의 개수 # I k는 (q

2 l)k이다.

Page 209: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 209 -

[단계 3]

벡터 f 2열거하고, 그들을 bin에 넣는다. 이는 ( N/2d/2 )만큼의 단계가 걸린다. - f 2h(modq)

의 처음 k개의 요소에 근거하여 f 2를 bin에 넣는다. 그러나 f 2 bin을 f 1의 bin보다 약간

더 크게 만들 것이다. 좀 더 정확하게, T를 J j=[ 2l (j-1)-(r-1), 2 lj-1],1≤j≤

q

2 l,들의 집합

이라고 하면, 이 범위들은 서로 겹치는 부분이 생기고, 따라서 어떤 f 2들은 1개 이상의

bin에 들어갈 수도 있다. 어떤 경우에도 f 2에 대한 bin의 집합 Tk의 order는 # T k=

(q

2 l) k이다.

[단계 4]

어디에서 이 범위들이 겹치는지 알아보기 위해 bin에 대한 조사를 한다. 만약

( f1 + f 2)h(modq)의 모든 요소들이 0과 r-1사이에 존재하며, 그리고 f 1이 bin

( J j1, J j2…, J jk)에 있다면, f 2는 bin ( J j1, J j2…, J jk)에 있어야만 한다. 단계 1에서 위치 선

택이 옳았다고 가정한다면, 올바른 f 1을 상응하는 f 2와 잘 맞출 수 있다.

Page 210: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 210 -

[알고리즘에 대한 공격]

지적한 대로, 옳은 f 1와 그의 상대 f 2는 상응하는 bin안에 들어있을 것이며, 그래서 우리

는 그들을 찾을 수 있다. 여기에서 주요 수는 f 1( f 2)가 속해있는 bin의 비인 occupancy 비

율이다. 만약 이 비율이 상당히 작다면, 1%보다 작다면, f 1의 99%는 상응하는 f 2의 bin

이 공집합인 bin안에 속할 것이며, 따라서 그와 같은 f 1은 즉시 제거될 것이다. 나머지 f 1

들은 상응하는 f 2의 bin이 공집합이 아닐 것이나, 거의 항상 f 2 bin은 단지 하나의 f 2을

포함하므로, 우리는 ( f 1, f 2)쌍에 대하여 ( f 1+ f 2)h (mod q)가 작은지를 조사하기만 하면

된다. Occupancy 비율은 다음과 같다.

Occupancy비율 ≈( N/2d/2 )#Tk

=( N/2d/2 )(q

2l )k 다음은 알고리즘에서 단계의 수가

d{2․( N/2d/2 )+(q

2 l) k}의 order에 의존함을 살펴본다. 여기에서 d는 단계 1에서 N/2 자

리를 선택함으로부터 나오며, 두 개의 ( N/2d/2 )는 f 1와 f 2을 bin안에 넣는 것으로부터 나

온다. 그리고 (q

2 l)k는 I

k, J

k안에 상응하는 bin들의 각각의 쌍에 대하여 동시에

occupied가 되는지를 조사하는 것으로부터 나온다. 우리는 occupancy 비율이 적당히 작게

선택할 것이므로, 알고리즘에 대한 시간은 Time≈ d(q

2 l)k의 order에 의존한다. 마지막으

로 bin들에 대해 필요한 저장 공간은 # I k+# J k=2 (q

2l )k의 order에 의존한다.

Page 211: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 211 -

3) Multiple transmission 공격

같은 공개키와 다른 무작위 ø들을 이용하여 하나의 메시지 m을 서 너 번 보낸다면, 공격자

는 메시지의 큰 부분을 복구할 수 있다. 간단히 말해서, sender가 i=1,2,…,r 에 대하여

e i= ø i∗h+m(mod q) 를 전달했다고 가정하면, 공격자는 ( e i- e 1)∗h-1(mod q) 를 계산할

수 있으며, 따라서 ø i- ø 1 (mod q) 를 복구할 수 있다. 그러나 ø들의 계수는 정확하게

ø i-ø1 을 복구할 수 있을 정도로 작으므로, ø 1의 계수들을 많이 복구할 수 있다. 만약 r

이 적당한 크기라면, 공격자는 brute force에 의해 남아있는 계수들에 대한 모든 가능성을

시험해 볼 수 있을 정도로 충분히 ø 1 을 복구하고, 따라서 m을 복구한다. 따라서 multiple

transmission은 메시지를 충분히 섞지 않고는 위험하다고 할 수 있다. 그러나 공격자가 이

런 방법으로 하나의 메시지를 복구할 수 있다손 치더라도 이 정보는 연속되는 메시지들을

복호화 하는데 전혀 도움을 주지 못한다.

4) Lattice에 근거한 공격

공개키 h와 메시지 m에 대한 알려진 lattice공격에 대해 간단한 분석을 한다. lattice 줄임

의 목적은 주어진 lattice에서 하나 또는 그 이상의 "작은" 벡터를 찾는 것이다. 이론상으로

최단 벡터는 무작위 찾음에 의해 찾을 수 있으나, 실제로는 차원이 크다면 이는 불가능하

다. 많은 사람들에 의해 다양한 향상이 있었던 LLL 알고리즘은 다항식 시간내에 상대적으

로 작은 벡터들을 찾을 수 있으나, LLL 조차도 만약 최단 벡터가 최단 벡터의 기대된 길이

보다 훨씬 작을 때에는 많은 시간이 소요된다. 먼저 NTRU 비 키에 대한 lattice공격을 알

아보자.

네 개의 N×N 블록으로 구성된 2N×2N 행렬을 고려하자:

Page 212: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 212 -

여기에서 α는 짧게 선택된 매개변수이다. L을 이 행렬의 열에 의해 생성된 lattice라고 하

자. L의 행렬식 값은 q N α N이다. 공개키가 h=g∗ f -1이기 때문에 lattice L의 벡터 τ=(αf,

g)-α에 의해 곱해진 f의 N개의 계수와 g의 N개의 계수들로 이루어진 벡터-을 포함한다.

차원이 n이고 행렬식 값이 D인 임의의 lattice에서 최단의 벡터의 기대되는 크기는

D1n n2πe

와 D1n nπe

사이에 존재한다. n=2N 이고 D= q N a N인 경우 기대되는 최단의

길이는 s=Nαqπe

보다 크다. Lattice 줄임 알고리즘의 실행은 만약 공격자가 비율

s∣τ∣ 2

을 최대화 하도록 α을 선택한다면 길이가 τ에 가까운 다른 벡터나 정확하게 길이

가 τ인 벡터를 찾게 해준다. 이 비율을 제곱하면, 공격자가 α을

α

α2∣f∣

22+∣g∣

22

=( α∣f∣ 22+ α

-1∣g∣ 22)1이 최대화 되도록 선택해야만 한다는 사실을

알 수 있다. 이는 α을 ∣g∣ 2

∣f∣ 2

로 선택하면 된다. α가 이런 식으로 선택되었을 때,

∣τ∣2= c hs 로 놓음으로써 상수 c h을 정의한다. 따라서 c h는 기대되는 최단 벡터의 길

이에 대한 목표 벡터의 길이의 비이다. c h의 값이 작으면 작을수록 목표 벡터를 찾기가

더 쉬워진다. 위의 식에 대입하면, c h=2πe ∣f∣ 2 ∣g∣ 2

Nq 을 얻을수 있다. 만약 c h가 1

에 가깝다면, L은 무작위 lattice와 비슷하며 lattice 줄임 방법은 일반적으로 짧은 벡터를

찾거나, 특별히 τ을 찾는데 많은 시간이 걸린다. 다음은 NTRU의 메시지에 대한 lattice 공

격을 알아보자. 여기에 관련된 lattice 문제는 h에 대한 것과 매우 비슷하며, 목표 벡터는

(am, o/)형태이다. 공격자는 값 c h=2πe ∣m∣ 2 ∣Φ∣ 2

Nq 을 유도하는 α=

∣Φ∣2

∣m∣2

을 이

용하여 lattice의 균형을 맞추어야 한다. 상수 c m은 lattice 공격에 대하여 개인적인 메시

지의 위험 노출 정도를 알게 해준다. c m이 작다면, 암호화된 메시지는 위험 노출 정도가

높고, c m이 1에 근접할수록 위험 노출 정도가 줄어든다. h와 m에 대한 공격을 동등하게

어렵게 만들기 위해서 c m≈ c h 즉, ∣f∣ 2 ∣g∣ 2≈ ∣m∣ 2 ∣Φ∣ 2 이 되도록 하면 된다.

p=3에 대하여, 평균 메시지 m은 1, 0 그리고 -1 각각이 N/3개씩 되도록 구성하여,

Page 213: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 213 -

∣m∣2≈2N3

이 되도록 한다. 비슷한 방법으로, Φ는 1 그리고 -1이 각각 d개로 나머지

는 0으로 구성하여 ∣ø∣2= 2d 가 되도록 한다. 그러면 ∣f∣ 2 ∣g∣ 2≈4Nd3

이 된다.

마지막으로 가짜 키에 대한 lattice 공격을 알아보자. 비 키 f를 찾기보다는 공격자는 위에

묘사된 lattice를 이용하여 lattice에서 다른 짧은 벡터를 찾는 것이 더 좋다. 이 다른 짧은

벡터를 τ'=(af', g')이라고 하자. 만약 이 벡터가 충분히 짧다면, f'은 복호화 키처럼 행동한

다. 좀 더 자세히 말하자면, 만약 높은 확률을 가지고 f∗e≡pΦ∗g'+m∗f (mod q) 가

∣pΦ∗g'+m∗f∣∞<q 을 만족한다면, 복호화는 성공한다; 그리고 이 폭이 2q 또는 3q일

때도 에러 correcting 기술을 거치면 메시지 복구가 가능하다. 그러나 실험적인 증거는 가

짜 키의 존재는 안전성을 위협하지 못한다는 것을 이야기 해준다. NTRU 공개키 암호시스

템에 대한 reaction 공격을 알아보자. Hal1, Goldberg, 그리고 Schneier는 McEliece,

Atjai-Dwork, 그리고 GGH 암호시스템을 포함한 lattice 문제에 근거한 몇몇의 공개키 암호

시스템에 대한 Reaction 공격을 제안하였다.

Page 214: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 214 -

NTRU 공개키 암호시스템은 기본적인 lattice 문제에 근거하고 있기 때문에 Reaction 공격

이 NTRU에 대해서도 존재한다는 것은 당연하다. 이 같은 공격은 유용한 정보를 주기 시작

하기 전에 공격자가 NTRU 이용자에 의해 추적당할 수 있도록 충분히 암호화된 메시지의

모양을 일그러뜨린다. 또 그와 같은 공격은 하나의 비 키가 많은 수의 메시지를 복호화 하

는데 사용될 때에만 성공한다고 희망할 수 있다. 그러나 NTRU 키 생성키의 용이성이 키가

자주 바뀐다는 것이기 때문에 NTRU 근본시스템에서 드물게 일어난다. Reaction 공격의 기

본 아이디어는 공격자에 대하여 각각이 유용한 메시지로 복호화 하는 확실한 확률과 유용하

지 않은 메시지로 복호화하는 확실한 확률을 가지고 있는 암호화된 메시지 e의 수열을 생

성하는 것이다. 이 공격의 성공은 공개키 암호시스템의 공통적인 약점에 의존한다. 주어진

암호문 C에 대하여, 공격자는 같은 평문으로 그리고 다른 평문으로 복호화하는 무시할 수

없는 확률을 가지는 두 번째 암호문 C'을 생성할 수 있다. 이런 시스템 각각(McEliece,

Atjai-Dwork, Goldreich-Goldwasser-Halevi)은 최 근접 점 시스템으로 고려된다. 이 시스

템 모두에서 특별한 평문에 상응하는 암호문 class를 각각의 공간에서 점을 감싸는 구로 간

주할 수 있다. 공간에서 서로 근접한 암호문을 조사함에 의해 이 구의 경계와 구의 중심을

결정할 수 있다. p, q, N을 보통의 NTRU 매개변수라 하고, h, f를 NTRU의 공개키, 비

키 쌍이라고 하고, e=ㅇ/ h+m(mod q)를 암호화된 NTRU 메시지라고 하자. 그리고 a=pㅇ/

g+mf을 복호화 과정에서 보통의 중간단계라고 하자. 만약 a의 가장 큰 계수( a μ)가 a μ≤

q/2을 만족하고, a의 가장 작은 계수 ( a ν)가 a ν>-q/2를 만족한다면 NTRU의 복호화 과

정이 자연스럽게 진행한다. 만약 a μ>q/2거나 a ν≤-q/2를 만족한다면, wrap failure가 일

어났다고 말한다. 이는 메시지가 복호화될 수 없음을 의미하는 것이 아니라, 부가적인 계산

이 필요함을 의미한다. 그리고 공격자는 이 부가적인 시간을 추적하여 wrapping failure가

발생했다고 증명할 수 있다. NTRU에 대한 reaction 공격은 공격자가 wrapping failure가

발생했을 때 이를 추적할 수 있음을 가정하고 시작한다. 만약 공격자가 gap failure가 발생

했을 때 공격자가 이를 추적할 수 있다면, 다소 더 복잡하지만, 비슷한 공격이 가능하다. e

를 옳게 복호화되는 유용한 메시지라고 하자. 그러면, a μ≤q/2이고 a ν>-q/2이다. 암호화된

메시지 e에 상응하는 다항식 a는 다음과 같은 두 가지 성질을 가지고 있음을 가정한다.

(1) a의 모든 계수들은 이 a i≤a μ-p을 만족한다.

(2) a μ+ a ν>p

(3) np를 np+ a μ>q/2을 만족하는 p의 가장 작은 배수라고 하자.

즉, n은 다음 식을 만족하도록 선택한다.

a μ+(n-1)p≤q/2< a μ+np.

물론 공격자는 n의 값을 실제로는 알지 못 한다. 그래서 n=1,2,…에 대하여 작용을 하는 n

을 찾을 때까지 알고리즘을 실행시킬 것이다. 또는, 만약 공격자가 복호화를 제한된 번만큼

만 할 수 있다면, 그는 n에 대한 비슷한 값을 추측할 수 있다. 공격자는 암호화된 메시지

e+npXi,i=0,1,…,N-1을 전한다. i= i 1,…, i s에 대하여 메시지 e+np X i가 wrap failure를

유발하고, 그러나 i의 다른 값들에 대해서는 wrap failure없이 복호화가 된다는 것을 가정한

다. 공격자는 다항식 F=XN-i 1+X

N-i 2+…+XN-i s을 형성한다. (만약 i j=0이면 X

N=1)

NTRU의 비 키 f는 1의 개수와 -1의 개수가 정해져 있으며, 나머지는 0이다. 공격자에 의

Page 215: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 215 -

해 만들어진 다항식 F는 f의 "1-계수들"의 이동된 버전이다.

다음은 NTRU의 실제적인 실행을 살펴보자. f와 g의 norms는 복호화 실패가 5ㆍ 10-5보다

작은 확률로 일어나도록 선택한다.

[경우 A] 알맞은 안전도

알맞은 안전도 매개변수는 어떤 개인적인 메시지의 본질적인 값이 작고 키가 적당한 빈도로

바뀌는 상황에 적당하다.

이에 대한 키의 크기는 비 키가 340비트이고, 공개키는 642비트이다. 그리고

(meet-in-the-middle) 안전도 수준은 키 안전도가 2 50이고 메시지 안전도는 2 26.5이다. 위

의 값을 적당한 형태로 대치하는 것은 lattice 값 c k=0.257, c m=0.258,s=0.442q을 만들어

낸다.

[경우 B] 높은 안전도

(N, p, q)= (167, 3, 128)

Lf=L(61, 60), Lg=L(20, 20), L ø=L(18, 18)

(즉,d=18)

비 키=530비트, 공개키=1169비트

키 안전도= 2 82.9, 메시지 안전도= 2 77.5

c h=0.236, c m=0.225, s=0.296q

[경우 C] 최고의 안전도

(N, p, q)=(503, 3, 256)

Lf=L(216, 215), Lg=L(72, 72), L ø=L(55, 55)

(즉, d=55)

비 키=1595비트, 공개키=4024비트

키 안전도= 2 285, 메시지안전도= 2 170

c h=0.182, c m=0.160, s=0.365q.

처음 메시지 블록 후에 단지 1-1의 확장을 가지면서, NTRU 기술이 매우 긴 메시지를 전

달하는데 사용할 수 있는 간단한 방법이 존재한다. 처음 암호화된 메시지 e 1은 1, 0, -1

의 수열로써 복호화되며, 다음 메시지블록을 ø 1 으로 표시한다. 다음 암호화된 메시지 블록

은 m 1이 실제 메시지의 첫 블록일 때, ø 1∗ e 1+m 1 이다. ø 1 을 알 경우에 모듈 q에 대

하여 정확하게 m 1를 복구할 수 있다. 다음 암호화된 메시지 블록은 m 1을 제곱하고 이를

모듈 3으로 줄인 값을 ø 2라 할 때, e 2= ø 2∗e 1+m 2 이다. 여기에서는 m 1을 알면, ø 2

Page 216: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 216 -

을 복구할 수 있고, 따라서 e 2로부터 모듈 q에 대한 m 2을 얻을 수 있다. 이를 임의의 길이

의 메시지에 대하여 계속 진행 가능하다.

다음은 NTRU 공개키 암호시스템의 이론적인 operating characteristics을 고려해보자. 3개

의 정수의 매개변수 (N, p, q)에 대한 NTRU 공개키 암호시스템 작동 특성을 요약한 표이

다.

[표2-7] 3개의 정수의 매개변수 (N, p, q)에 대한 NTRU 공개키 암호시스템 작동 특성

평문 블록 Nlog 2p 비트암호문 블록 Nlog 2q 비트

암호화 속도 O( N2) operations

복호화 속도 O( N2) operations

메시지 확장 log pq -to- 1

비 키 길이 2Nlog 2p 비트

공개키 길이 Nlog 2q

Page 217: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 217 -

NTRU를 실행시킬 때 고려되어야 하는 요소 몇몇을 간단하게 언급하면, 첫 째는 p, q가 서

로소이어야 한다. NTRU가 이 조건 없이도 작용함에도 불구하고 실제적으로는 p와 q의 최

소공배수가 1보다 크면 안전도를 감소시킨다. 극단적인 예로 만약 p가 q를 나누는 경우를

생각해 보면, 암호화된 메시지 e는 모듈 p로 m와 같아지게 된다. (e≡m(mod p)). 두 번째

로는 f는 모듈 p 그리고 모듈 q로 역함수를 가지고 있어야 한다. 만약 그렇지 않다면 키를

생성하기가 어렵다. 첫 번째로 필요한 요구사항은 f(1)와 pq의 최소공배수가 1이어야 한다

는 것이다. 그러나 만약 어떤 선택된 f가 이 조건을 만족하지 않는다면 코드 창조자는 대신

f(X)+1이나 f(X)-1를 이용한다. f(1)와 pq의 최소공배수가 1이라면, N을 소수로 잡는다면

모든 f가 역함수를 가지게 된다. NTRU 시스템은 링 R에서 ∗-곱셈이 행렬의 곱으로 형성

될 수 있다는 점에서 McEliece 시스템과 공통점을 가지고 있다. 그리고 둘 모두의 시스템

에서 암호화가 A가 공개키인 경우 행렬 곱 E=AX+Y로 쓰여진다. 두 시스템 사이의 약간의

차이점은 NTRU 암호화에 대해서는 Y이 메시지고 X가 임의의 벡터이고, 반면에 McE1iece

시스템은 Y이 임의의 벡터이고 X가 메시지이다. 그러나 두 시스템의 진짜 차이점은 복호화

를 가능하게 하는 trap-door이다. McEliece 시스템은 행렬 A가 에러 correcting (Goppa)

code와 관련되어 있고, 임의의 contribution이 Goppa code에 의해 옳게 되기에 충분히 작

기 때문에 북호화가 가능하다. MTRU에 대해서는 행렬A가 circulant 행렬이고 복호화는 A

가 특별한 모양을 갖는 두 개의 행렬의 곱으로 나누어지는데 의존한다. NTRU 시스템이

lattice 줄임 공격을 피하도록 설계됨에도 불구하고 복호화 방법은 복호화가 짧은 lattice 기

저를 앎에 근거한다는 점에서 GGH 시스템과 매우 다르다. 이런 면에서 GGH는 실제적으로

McEliece 시스템과 닮았다. 이 두 시스템의 경우에 복호화는 작은 임의의 contribution를

인식하고 제거함에 의해 실행된다. 이와 비교해서, NTRU는 훨씬 더 큰 contribution을 제

거한다. 아래의 테이블은 RSA, McEliece, GGH, 그리고 NTRU의 이론적 작동 특성의 몇몇

을 비교한 것이다. 각각의 경우에 N은 안전도/메시지 길이 매개변수를 나타낸다.

Page 218: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 218 -

[표 2-8] 이론적 작동 특성 비교

NTRU RSA McEl. GGH

암호화속도 N 2 N 2 N 2 N 2

복호화속도 N

2N3

N2

N2

공개키 N N N 2 N 2

비 키 N N N2

N2

메시지확장

다양 1-1 2-1 1-1

(1) NTRU 암호화는 다른 곱셈없이 단지 덧셈과 shifts만을 필요로 한다.

(2) RSA 암호화는 작은 암호화 지수를 사용하지 않는다면, 속도가 O( N 3)이다.

(3) NTRU 암호화와 복호화는 FFT를 사용하면, 속도가 O(NlogN)다.

라. JYC 암호알고리즘

Ajtai는 최근에 아래와 같은 가장 나쁜 경우와 보통의 경우에 대해서 상등한 결과를 증명할

수 있는 정수 점들의 무작위 lattice의 c1ass를 발견하였다. 만약 class로부터 무작위

lattice에서 짧은 벡터를 찾는 확률적 다항식 시간 알고리즘이 존재한다면, 어떤 n-차원의

lattice에서 최소 벡터 문제와 관련된 몇 가지 문제들을 해결할 수 있는 확률적 다항식 시간

알고리즘 또한 존재한다. 새로운 암호시스템은 AD의 암호시스템과 비슷하고 안전성 근거

역시 최소 벡터 문제에 두고 있으나, AD시스템이 비트별로 암호화하여, 암호문이 평문보다

최소 100배 이상 커지는 거대한 데이터 확장이 일어나나 이 새로운 시스템은 암호화가 블

록단위로 이루어져 훨씬 적은 데이터 확장이 일어나 매우 실용적이다. AD시스템은 어떤

lattice문제가 확률적 다항식 시간에 풀리지만 않는다면 안전하나, GGH 시스템은 최악의 경

우와 평균적인 경우의 상등성이 증명되지 않았다. AD시스템보다 훨씬 적은 데이터 확장이

일어나는 AD시스템에 근거한 공개키 암호시스템을 제안하고, 이 시스템의 몇 가지의 통계

적 분석을 제안하며, 이 시스템에 대한 몇 가지의 공격을 분석하여, 이 시스템이 이들 공격

에 대하여 안전하다는 것을 보이겠다. 그러나 이 시스템에 대하여 최악의 경우와 평균적인

경우의 상등성의 존재여부는 아직 증명되지 않았다.

Page 219: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 219 -

1) 최악의 경우와 평균적인 경우의 상등성을 가진 Lattice문제

가) A={ a 1, a 2,…, a n}를 lattice L안의 벡터들의 집합이라 할 때, 집합 A의 길이를

length(A)= max 1≤i≤n∥ a i∥라 한다.

나) λ 1 (L)= min 0≠ν∈L∥ν∥; 최소길이

차원이 n인 어떤 lattice L에 대하여도 ∥ν∥≤γ ndet (L)1n 를 만족하는 0가 아닌 ν∈L이

존재하도록 하는 universal 상수 γ가 존재한다는 정리가 있다. 여기서, det(L)은 n차원의

fundamental parallepiped의 부피를 의미하며, 이 정리를 만족시키는 γ를 Hermite 상수라

고 한다. 이 정리는 높은 차원의 lattice에서 짧은 또는 가장 짧은 0가 아닌 벡터를 찾는 방

법에 대한 단서를 제공하는 것이 아니라 단지 존재성만을 알게 해주는 정리이다. 우리가 이

미 여러 논문에서 보았듯이 lattice에서 가장 짧은 0가 아닌 벡터를 찾기 위한 효율적인 알

고리즘의 존재여부는 알려지지 않았으며, 또한 0가 아닌 짧은 벡터를 추정하는 효과적인 알

고리즘조차 존재하지 않는다. 단지 차원 n에서 어떤 고정된 다항식 배 이내에 길이를 대략

적으로 알 수만 있다. Rn에서 임의의 lattice에 짧은 벡터를 찾기 위한 현재까지의 알고리

즘 중에서 가장 좋은 알고리즘은 LLL-알고리즘이다. 이는 결정적 다항식 시간 안에 기껏해

야 최소 벡터와 2n-12 배 차이가 나는 벡터를 찾아낸다. (∥ν∥≤ 2

n-12∥ b 1∥).

C.P.Schnorr는 이를 고정된 ε>0에 대하여, ( 1+ε) n으로 향상시켰다.

Page 220: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 220 -

다음은 계산상 복잡도에 대해서 알아보자. Ajitai는 최악의 경우와 평균적인 경우의 복잡도

사이의 관계를 설명하였다. 즉 어떤 c1ass로부터 무작위 lattice안에서 적어도 1

nO(1)

가지는 벡터를 찾는 확률적 다항식 시간 알고리즘이 존재하면, Z n안에 모든 lattice에서 지

수적으로 1에 가까워지는 확률을 가지고 다음과 같은 3개의 lattice문제를 푸는 확률적 다

항식 시간 알고리즘 또한 존재하는 Z m에서 lattices의 클래스를 정의했다.

(P1) n차원 lattice에서 0이 아닌 가장 짧은 벡터의 길이를 다항식 인수까지 찾는다.

(P2) 가장 짧은 벡터가 다항식 인수까지 유일한 n차원 lattice에서 0가 아닌 최단벡터를 찾

는다.

(P3) n차원 lattice에서 길이가 가능한 가장 짧은 기저를 찾는다.

무작위 클래스에서 lattices는 모듈로 q로 정의된다;

ν={ u 1, u 2,…, um}:Zqn에서 주어진 벡터들의 집합

⇒ Λ(V)={정수벡터 < h 1, h 2,…, h m>∣∑m

i=1h i u i≡0(modq)}

주어진 n에 대하여, m=[ c 1n], q=[ nc 2], c 1, c 2는 적당한 상수

(A1) 주어진 n, m, q, M∈ Mat n×m ( Z q)에 대하여 Mx≡0(q),∥x∥<n를 만족하는 0이 아닌

x를 찾는다. x의 존재성은 Minkowski 정리에 의해 알 수 있다. x의 크기에 대한 조건만 없

다면, 이 알고리즘은 선형 시스템을 푸는 문제로 선형 시스템은 다항식 시간내에 풀 수 있

다. Ajitai는 논문에서 (P1), (P2), (P3)각각의 최악의 경우의 복잡도를 (A1)의 보통경우의

복잡도로 줄인다.

Page 221: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 221 -

[정리 (P3)에 대한 줄임]

주어진 상수 ε>0에 대하여 주어진 무작위 lattice Λ(ν), ν=( u 1, u 2,…, um)∈Zn×mq

은 균일

하게 선택됨, 에 대하여 길이가 n보다 작거나 같은 벡터를 찾는 확률 1

n O(1)를 가지는 확

률적 다항식 시간 알고리즘이 존재한다면 어떤 주어진 lattice L에 대해서도 아래와 같은

조건을 만족하는 L에 대한 다른 기저를 출력하는 확률적 다항식 시간 알고리즘이 존재한다.

2) 새로운 암호 시스템

새로운 암호 시스템은 안전성의 근거를 SVP에 둔다.

[비 키] 가) 단위 구 Sn-1={x∣∥x∥=1}로부터 균등한 분포를 가지고 선택한 벡터 u.

나) m+1문자를 돌리는 무작위 permutation σ, m=[cn], c<1.

[공개키] 가) b>0

나) 유리수 벡터들의 집합 { ν o(0), ν o(1),..., ν o(m)}, ν i․u=Nj∈Z+여기서 집합은 N j가 초월증

가가 되도록 선택한다. 즉,

[암호화] 이진 평문은 m+1비트의 블록단위로 암호화된다.

평문블록P=( δ 0, δ 1,…, δ m), δ i=0 or 1

보내는 사람은 ∥r∥≤ b2

를 만족하는 무작위 벡터 r를 균등하게 선택한다.

Page 222: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 222 -

Ni가 초월증가 하므로 δ σ-1 (i)를 알아낼 수 있고 비 키 σ를 이용하여 δ i를 찾아낸다.

이는 u와 σ를 비 키로 하는 Odlyzko가 다 깨졌다고 한 쉬운 knapsack 문제로 보이나 먼

저 방향 u를 찾아내야만 knapsack공격이 가능하므로 위와는 관계가 없다. 이 시스템은 ν i

의 분포를 아래와 같이 정의한 D로 한다. M≫ 2 n,b'>b 각각의 i, 0≤i≤m에 대하여

ν i=2 2i b' 2

Mu+ 1-

2 2i b' 2

M 2ρ i, 여기에서 ρ i는 n-2 차원의 단위 구 위에 독립적이고 균

등하게 분포되어 있는 값이다.

다음은 이 새로운 시스템이 얼마나 안전하지에 대하여 살펴보자. 아직까지 최악의 경우와

보통의 경우의 상등성을 증명하지 못하였으므로 이 시스템의 설계과정에서 주어진 몇몇의

선택에 대해서 알아보자.

가) 무작위 permutation σ

만약 σ가 존재하지 않는다면 ν 0,…, ν m이 순서가 바뀌지 않은 상태에서 공개된다. 이는

다항식 시간 내에 시스템을 깨는 선형 programming에 근거한 공격법이 존재하게 된다.

Page 223: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 223 -

[공격방법]

비 키 u를 포함하는 ㅇ/ 이 아닌 convex body의 유용한 해를 찾기 위해 선형

programming를 이용하면 모든 부등식을 만족하는 벡터 u'를 다항식 시간내에 찾을 수 있

다. u'이 u가 아닐지라도 u'은 메시지를 복호화하기 위해 u만큼 충분히 좋다. 따라서,

Permutation σ는 이 프로토콜의 안전성을 위해 필수적이다.

나) 무작위 섭동 r의 더함

섭동 r은 선형 대수에 근거한 공격에 대하여 안전하게 해준다.

[공격방법]

만약 섭동 r를 암호화시 더하지 않는다면, 암호문 c=∑m

i=0δ i ν σ(i) 로 서로 선형 독립인 v σ( i)

들의 선형 span이다. c=∑m

i=0χ i ν σ(i)를 풀어 m+1개의 x i들을 얻는다면, 선형 독립성에 의

해 계수는 유일하므로 x i=δ i가 되어 메시지가 복구된다. 섭동 r를 더해주면 암호문이 선

형 span이 아니므로 δ i를 찾는 문제는 CVP문제보다 쉽지 않다.

다) m=cn이라면, c<1이어야한다.

∥ ν i∥가 비슷하지 않다면, 통계적으로 정보의 유출이 존재한다. 따라서 ∥ν i∥는 거의같

아야 하며 이를 V로 놓자.

Page 224: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 224 -

[공격방법]

∥ν i∥≈V로 하고 Q i=∣u․ ν 1∣

∥u∥∥ν i∥≈N iV

로 정의하자.

모든 i<m-3log n에 대하여, Q i<Qm

n3

를 만족한다

만약 비 벡터 u와의 내적이 상당히 작은 값을 가지는 n-1개의 벡터 ν i들을 찾는다면 이

n-1개의 벡터 모두와 수직인 normal 벡터는 u에 대한 좋은 추측이 된다.

n-1개의 벡터가 상당히 작은 Q i를 가질 확률은

따라서 이 확률은 c가 1보다 크다면, 높은 확률로 u를 추측할 수가 있어 이 시스템은 깨지

게 된다. 이 공격은 c가 1/2이면 이루어질 수 없다.

제 5 절 그래프 완전지배집합문제(Graph Perfect Dominating Set

Problem)

1. 개 요

조합론의 여러 NP-complete인 문제를 이용하면 다양한 one-way 함수를 만들 수 있기에

RSA 보다 먼저 NP-complete 문제인 Knapsack 문제를 통해 공개키 암호체계를 구성하는

one-way 함수를 만들려는 시도도 있었다. 구체적으로 1978년 NP-문제인 Subset Sum 문

제에 기반을 둔 Merk1e-Hellman Knapsack 시스템이 제안되었다. 그러나 그 후, 1984년

Shamir는 Subset Sum문제의 어떤 부분 집합이 다항식 시간 안에 풀릴 수 있다는 것이 보

여졌다. 그런데 1993, 94년 Fellows, Koblitz는 Perfect dominating set과 같은 조합론의

NP-문제에 기반을 둔 공개키 시스템이 안전할 수 있다는 주장을 하였다. 계속해서 그들은

1994년 Combinatorial Cryptosystems Galore! 논문을 통해 일반적으로 조합론에서의

NP-complete 문제를 기반으로 하는 공개키 암호시스템의 가능성을 피력하였다. 특히 그들

은 여러 조합론의 NP-문제에서도 Combinatorial cryptosystems을 많이 만들 수 있다는

주장과 함께 그 이론들을 다듬어 가고 있다.

이 절에서는 그래프 이론 기반 공개키 암호시스템에 사용하는 그래프 이론에서의

NP-Complete 문제인 완전지배집합문제(Graph Perfect Dominating Set Problem)에 대해

먼저 알아본다.

Page 225: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 225 -

가. 결정적 알고리즘과 비결정적 알고리즘

가중치가 있는 그래프 (weighted graph)에서 정점 x에서 y로 가는 최단의 경로를 찾으라는

문제에서는 Dijkstra 알고리즘 등을 통한 효율성이 있는 알고리즘을 찾을 수 있다. 그러나,

x에서 y로 가는 순환회로 (cycle)가 없는 가장 긴 경로를 찾으라는 문제에서는 모든 가능한

경로를 점검해 보는 방법보다 더 나은 방법이 현재는 없다. 더구나 예(yes)와 아니오(no)만

을 요구하는 다음과 같은 문제에서는 쉬운 문제와 어려운 문제사이의 경계선을 정하는 것은

훨씬 더 어렵다.

O 쉬움 : weight≤M 인 x에서 y로 가는 경로가 있는가?

O 어려움 : weight≥M 인 x에서 y로 가는 경로가 있는가?

Breadth-first search로, 선형시간(1inear time)안에, 위의 문제는 풀 수 있지만, 그 아래

문제에 대해서는 모든 알려진 알고리즘이 지수시간(exponential time)만큼 걸릴 수 있다.

일반적으로, 지수시간 알고리즘이란, 사이즈 N의 입력(input)에 대하여 적어도 2N에 비례하

는 시간이 걸리는 알고리즘으로 생각하는 것이 편리하다. (여기서 2 대신에 α>1인 어떤 α

라도 대체 가능하다). 크기가 100이나 그보다 크다면, 컴퓨터의 속도에 관계없이 알고리즘

이 2 100단계를 수행하기까지 기다릴 수 없기 때문에, 지수시간 알고리즘은 큰 도움이 되지

못한다. 지수시간의 증가는 기술상의 발전을 위축시킨다. 슈퍼 컴퓨터가 주판보다 10 12배

속도가 빠르지만 2 100단계를 요구하는 문제풀이를 끝낼 수는 없다. 몇몇 효율성이 있는 알

고리즘과 지수 시간 알고리즘의 차이는 간단한 형식적인 모델과 더불어 그들간의 공유영역

을 연구될 수 있다. 이 모델에서 알고리즘의 효율성은, "합리적인(reasonable)" 코드로 바꾸

는 작업을 통해, 입력을 코드로 바꾸기 위해 사용된 비트(bit)수의 함수이다. 우선 주어진

크기 N에 대해, N의 어떤 다항식(polynomial)의 값에 비례하는 단계 안에 문제를 풀 수 있

는 문제들의 집합을 P라 하자. 즉, P는 다항식 시간(polynomial time)안에, 결정적 알고리

즘(deterministic algorithm)에 의해 풀릴 수 있는 모든 문제의 집합이다. 여기서 결정적

(Deterministic)이란, 알고리즘이 무엇을 하고 있더라도 항상 다음에 할 것이 단지 하나만

있는 것을 의미한다. 일반적인 개념은 실제 컴퓨터에서 프로그램이 작동하는 방식을 다룬

다. 삽입 분류(Inserting sort)는 N 2에 비례하는 시간으로 작동하기에, 이 분류는 P에 속

한다. 알고리즘의 시간은 분명 사용하는 컴퓨터에 의존하지만, 다른 컴퓨터를 사용해도 다

항식 인자(polynomial factor)만큼의 차이밖에 없다. 여기서 논의해야 할 이론적인 결과는,

진술할 일반적인 명제가 증명되는 계산의 특별한 모델에 기초하겠다. 엄 한 정의나 정리진

술이 아닌 중심적인 아이디어만 조사할 것이다. 컴퓨터의 능력을 신장하는 한가지 "불합리

적(unreasonable)"인 방법은 비결정주의(nondeterminism)의 능력을 부여하는 것이다. 비결

정주의란, 알고리즘이 여러 개의 선택상황에서 하나를 택할 때 올바른 것을 추측해 내는 능

력을 가지는 것이다. 쉽게 말해서 비결정적 알고리즘을 문제의 해답을 추측하고 또한 검증

할 수 있는 알고리즘이라 생각하자. 예를 들어, 분류문제(sorting)에 비결정적 알고리즘 과

결정적 알고리즘을 적용해보겠다. bubble sort와 같은 비교분류법을 사용하면 결정적 알고

리즘은 n 2의 복잡도를 갖는다. 한편, 분류방법으로 merge sort 또는 quik sort등을 사용

하면 O(n logn)의 복잡도를 갖는다. 비결정적 알고리즘을 통한 분류는 다음과 같다: n개의

숫자 중에서 최소수를 뽑는다. 비결정적 알고리즘은, 올바른 것을 추출해 내는 신의 손을

갖고 있기 때문에 최소수의 선택에 1단계로 충분하다. 그리고 남은 원소들 중에서 재귀적으

로 최소수를 뽑아 나열하면 분류는 완료된다. 이러한 비결정적 알고리즘에서의 분류는

Page 226: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 226 -

1+1+…+1=n이므로 O(n)의 복잡도를 갖고 분류를 수행한다. 이는 결정적 알고리즘의

O(nlogn)과 다른 복잡도를 갖는 것이고, 이는 올바른 선택능력, 즉 신의 손에 기인한다. 비

결정주의(nondeterminism)가 알고리즘 (algorithm) 설계에 유익한 도구이지만, 여기서는 문

제를 분류하기 위한 이론적인 도구로 사용하겠다. 이제 다항식 시간 안에 비결정적 알고리

즘에 의해 다항식 시간 안에 풀 수 있는 모든 문제의 집합을 NP로 표시하자. P에 속하는

모든 문제가 NP에 속하는 것은 당연하다. NP에는 다른 많은 문제들이 포함되어 있을 것으

로 보인다. 어떤 문제가 NP에 속한다는 것을 보이기 위해, 추측된 해답이 타당한지 그렇지

않은지를 점검 할 다항식시간 알고리즘을 찾아내면 된다. 예를 들어, 앞의 최장거리 경로를

찾는 문제의 '예 아니요 버전(yes-no version)'은 NP에 속한다. 또 다른 한 예는 만족성 문

제(satisfiability problem)이다. 다음과 같은 논리식이 있다고 하자.

여기서 x i는 부울변수(Boolean variable, T or F), '+' 는 ∨(or), '*'는∧(and), x는 ~

(not)을 의미한다. 만족성 문제(satisfiability problem)란, 이러한 논리식을 참이게 하는 x i

들의 진리값이 존재하는지 아니면 존재하지 않는지를 결정하는 것이다. 이 문제는 이 이론

에서 중요하고 특별한 역할을 한다. 왜 귀찮게 어려운 문제를 쉽게 만드는 상상의 도구를

생각하느냐? 비결정주의(nondeterminism)가 아무리 강력하게 보여도 그것이 실제문제에 도

움이 된다는 것을 증명할 수 없기 때문이다. 다른 식으로 표현하면, 'P에는 속하지 않지만,

NP에 속한다'고 증명할 수 있는 문제를 찾을 수 없다는 것이다. 즉, P=NP 인지 아닌지 알

수 없다. 많은 실제 문제가 NP에 속하지만 (그 문제는 비결정적 기계에 의해 효율적으로

풀릴 수 있다) P에는 속하는지 속하지 않는지 (결정적 기계에서 효율적 알고리즘을 찾을 수

없다) 알 수 없기에 다소 좌절적인 상황이다. 만약 P에 속하지 않는 문제의 존재성을 증명

할 수 있다면, 효율적인 알고리즘에 관한 연구를 포기할 수 있다. 그런 증명이 없기에 어떤

효율적인 알고리즘이 발견되지 않은 채로 있다는 가능성이 생긴다. 사실 지금의 지식 수준

으로는 "어떤 효율적인 알고리즘이 발견되지 않은 채로 있다" 는 것을 함축하는 "NP에 속

하는 모든 문제에 대한 효율적 알고리즘이 존재한다" 는 것이 가능하다. 사실 P=NP라고 믿

는 사람은 없다. P≠NP 라는 것을 증명하기 위해 상당한 노력이 경주되었지만 이 문제는

여전히 컴퓨터 과학에서 미해결의 개방된 연구 문제로 남아 있다.

Page 227: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 227 -

나. NP-Complete 문제

이제 NP에 속하지만 P에 속하는지는 모르는 일련의 문제를 보자. 이 문제들은 비결정적 기

계에서는 풀기가 쉽지만 일상적인(conventional)기계에서는 효율적 알고리즘을 아직까지 찾

아내지 못하고 있다. 이런 문제들은 P≠NP 의 설득력 있는 증거가 되는 부가적인 특성을

지닌다. 이런 문제 중 어느 하나가 결정적 기계에서 다항식 시간안에 풀릴 수 있다면 NP에

속하는 모든 문제가 그렇게 풀릴 수 있다 (즉, P=NP). 즉, 이런 모든 문제에 대한 효율적

알고리즘을 찾으려는 연구자의 집단적인 실패는 P=NP 의 증명의 집단적인 실패로 간주될

수 있겠다. 그러한 문제들이 "NP-완비하다(NP-complete)"라고 불린다. 많은 재미있는 실

제 문제가 이런 특징을 가지고 있는 것으로 밝혀지고 있다." 문제들이 NP-완비하다"는 것

을 증명하기 위해 사용하는 도구는 다항식 환원성(polynomial reducibility)의 아이디어이

다. NP에 속하는 새로운 문제를 풀기 위한 알고리즘은 몇몇 기존의 NP-완비성 문제를 풀

기 위하여 사용될 수 있다. 다항식 환원성(Polynomial reducibility)이란 다항식시간 안에

변형이 가능함을 의미한다. 새로운 문제에 대한 다항식시간 알고리즘의 존재성은 NP-완비

성 문제의 다항식시간 알고리즘의 존재성을 의미하고, 정의에 의해 NP에 속하는 모든 문제

의 다항식시간 알고리즘의 존재성을 의미한다. 환원(Reduction)의 개념은 알고리즘을 분류

하는데 유익한 테크닉을 제공한다. 예를 들어, NP에 속하는 한 문제가 NP-완비하다는 것

을 보이기 위해 몇몇 기존의 NP-완비성 문제가 그 문제로 다항식적으로 환원가능하다는

것을 보이면 된다. 즉, 새로운 문제에 대한 다항식시간 알고리즘은 NP-완비성 문제를 푸는

데 사용할 수 있고 NP에 속하는 모든 문제를 푸는데 사용할 수 있다. 환원을 이용하여 한

문제의 NP-완비성으로 다른 문제의 NP-완비성을 증명할 수 있다. 그렇지만 환원을 쓸 수

없는 경우가 하나있다. 어떻게 처음의 한 문제가 NP-완비하다는 것을 보일 수 있을까?

1971년에 쿡(Cook)이 이것을 해결하였다. 쿡(Cook)은 "만족성 문제는 NP-완비하다"는 직

접적인 증명을 제시하였다. 즉, 만족성 문제에 대한 다항식 시간 알고리즘이 존재한다면 NP

에 속하는 모든 문제가 다항식 시간안에 풀릴 수 있다. 증명은 매우 복잡하지만 대략적인

방법은 다음과 같이 설명할 수 있다. 첫째, NP의 모든 문제를 풀 수 있는 기계의 수학적 정

의가 만들어진다. 이것은 입력(input)을 받아 어떤 연산을 수행하고 결과(output)를 출력할

수 있는 튜링 머쉰(Turing machine)으로 알려진 다목적 컴퓨터의 간단한 모델이다. 튜링

머쉰은 다른 다목적 컴퓨터가 할 수 있는 계산도 같은 시간으로 (다항식 시간 차이), 실행

하고 그것이 수학적으로 간결하게 기술될 수 있다는 부가적 장점을 가지고 있다. 비결정주

의(nondeterminism)의 부가적 능력을 갖추었기 때문에, 튜링 머쉰(Turing machine)은 NP

의 모든 문제를 풀 수 있다. 증명의 다음 단계는, 명령어가 어떻게 수행되는지를 포함한 이

머쉰의 각 특징을, 만족성 문제에서 나오는 논리식(logical formula)으로 기술하는 것이다.

이런 식으로 NP의 모든 문제 (비결정적 튜링 머쉰에서 프로그램으로 표현할 수 있는) 와

만족성(satisfiability) 문제의 어떤 경우(프로그램을 논리식으로 전환)사이에 대응이 성립된

다. 만족성 문제에 대한 해는 주어진 입력에서 주어진 프로그램을 수행하는 기계의 모의 실

험(simulation)에 실질적으로 일치하여, 그것이 주어진 문제의 한 경우에 대한 해를 찾아준

다. 다행히도 단지 하나의 증명만이 필요하다. 왜냐하면, 다른 문제의 NP-완비성은 환원을

이용하면 훨씬 쉽기 때문이다.

Page 228: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 228 -

이것들과 많은 다른 관련된 문제들은 중요한 실질적 응용이 되기에, 얼마 동안 이것을 풀

좋은 알고리즘을 찾으려는 강한 동기 유발이 되어 왔다. 이런 문제에 대한 좋은 알고리즘이

발견되지 못했다는 사실은 P≠NP의 강력한 증거가 된다. 대부분의 연구자들은 P=NP 이건

P≠NP 이건간에 현재로서는 NP-완비성 문제를 효율적으로 풀 수 있는 알고리즘이 없다고

생각하고 있다. 그러나 이런 다양한 문제에 대한 어떤 종류의 해가 실질적으로 구해져야 하

기에 이런 상황에 대처할 수 있는 몇 몇 테크닉이 개발되어져 왔다.

한가지 접근법은 문제를 바꾸고 최적의 해가 아닌 최적에 가까운 해를 구하는 근사 알고리

즘(approximation algorithm)을 찾는 것이다. 불행히도 이것이 NP-완비성 문제를 완비 해

결하는 것은 아니다. 또 다른 접근법은 평균 시간(average-time) 실행에 의존하여, 모든 경

우는 아니지만 몇몇 경우에 한해서 해를 찾을 수 있는 알고리즘을 개발하는 것이다. 즉 모

든 경우의 문제에 적용되는 알고리즘을 찾을 수 없는 반면, 실제 발생하는 각각의 문제를

효율적으로 해결할 수는 있을 것이다. 세 번째 접근법은 역추적 기법(back tracking

technique)을 이용하여 효휼적 지수시간 알고리즘을 수행하는 것이다. 결국 다항식시간과

지수시간 사이에 큰 차이가 있게 된다. 문제가 NP-완비하다는 것을 보임으로써, 적어도 효

율적 알고리즘을 찾는 것이 대단히 어려운 작업이라는 것을 알 수 있다. (또 다른 접근법이

시도될 수 있다는 것도 암시한다) 지금까지 효율적 알고리즘을 많이 찾아냈지만, NP-완비

성 이론은 아직도 연구해야 할 많은 과제가 있음을 우리에게 시사한다.

다. 공개키 시스템에 이용한 그래프 NP-Complete 문제

o 그래프 G=(V, E):

o w∈V의 닫힌 neighborhood N[w]는 w와 인접한 G의

모든 vertex들의 모임

o W⊂V는 G의 dominating set when ∪v∈WN[u]=V

o dominating set W is perfect when N[u]∩N[v]=ø

G=(V, E를 (undirected) 그래프라 하자. G의 vertex v에 대하여 N[v]를 집합{u|u=v 또는

u와 v는 그래프 G에서 adjacent 되어 있다}으로 정의하고 vertex v의 근방이라 한다. V의

부분집합 W가 ∪v∈WN[v]=V 인 성질을 만족할 때 W를 그래프 G의 dominating set이라 한

다. 이러한 dominating set이 임의의 v∈V 에 대해 N[v]가 오직 W의 한 원소만을 포함할

때, 이를 perfect dominating set 이라 한다. Perfect dominating set 개념은 코딩이론

(Coding theory)에서의 Hamming code와 같은 perfect code의 이름을 따라 perfect 용어

를 사용함. G의 vertex v의 N[v] 이는 v를 중심으로 하는 반경 1인 원판이다. 아래의 그

림에서 메워지지 않은 vertex들이 아래의 3-regular 그래프에서의 perfect dominating set

를 이룬다.

Page 229: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 229 -

(그림 2-1) 3-regular 그래프에서의 완전지배집합(perfect dominating set)

주어진 그래프에서 PDS를 구하는 문제의 복잡도는 다음과 같다.

o 모든 vertex가 d(≥3)개의 vertex와 인접한 경우,

PDS(perfect dominating set)를 구하는 문제는 NP-complete하다 1991년 Kratochvil)

o 주어진 평면 planar 3-regular 그래프가 perfect dominating set을 갖는지를 판단하는

문제는 NP 문제이다 (Kratochvil, 1994).

한편, 3-regular graph G에 대해, 4개의 perfect dominating set으로 G를 분할할 수 있다

는 말과 G가 K 4의 covering graph가 된다는 말은 동치이다. 따라서 주어진 3-regular

graph G에 대해, G가 K4의 covering graph가 되는지를 알아내는 문제는 NP 문제이다.

(Kratochvil, 1994). Fellows와 Koblitz의 공개키 알고리즘은 K 4의 covering graph에서의

PDS를 기반으로 하고 있다. 여기서 주어진 K 4의 covering graph에 PDS가 존재하는지에

대한 결정문제의 복잡도에 대한 연구가 요청된다. 또한 PDS가 있는 것을 아는 경우 찾는

문제의 복잡도도 고려되어야 한다. 다음은 cubic 그래프에서의 3-edge coloring 문제에 대

한 복잡도이고 또한 PDS 시스템을 구현하는 K 4 covering graph와의 관계이다.

o 주어진 3-regular 그래프에 3-edge coloring이 존재하는지를 판단하는 문제는

NP-complete 문제이다.

Page 230: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 230 -

정리 2.5.1. G가 Cubic graph라고 하자. G가 K 4 covering 그래프이면 G에 3-edge

coloring이 존재한다. 그러나 역은 성립하지 않는다.

[증명]

G가 K 4 covering 그래프라 하고 f를 치역이 {0, 1, 2, 3,}으로 갖는 covering map 이라

하자. 이제 f의 값이 0인 vertex 전체의 모임을 P 0라고 하고, f의 값이 1인 vertex 모임

을 P 1, 그리고 같은 방법으로 P 2, P 3 를 잡자. 이제, P 0에서 Pi로 나가는 edge에 i의

색을 준다. P 1에서 P 2로 나가는 edge에 3의 색을, P 2에서 P 3로 나가는 edge에 1의

색을, 그리고 P 1에서 P 2로 나가는 edge에 2의 색을 준다. 이 때, 우리는 3-edge

coloring을 얻게 된다. 한편, 다음 그래프는 두 쌍의 PDS를 갖기에 (또한 vertex의 개수가

4의 배수가 아니기에) K 4 covering graph가 아니지만 다음과 같이 3-edge coloring이 존

재한다. 여기서 edge에 쓰인 -1, 0, 1은 각edge에 할당된 색의 값이다. ■

Page 231: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 231 -

(그림 2-2) 3-edge coloring

2. Koblitz-Fellows의 암호시스템과 문제점

조합론의 여러 NP-complete인 문제를 이용하면 다양한 one-way 함수를 만들 수 있기에

1978년 NP-문제인 Subset Sum 문제에 기반을 둔 Merkle-Hellman Knapsack 시스템이

제안되었다. 그러나 그 후, 1984년 Shamir는 Subset Sum 문제의 어떤 부분 집합이 다항

식 시간 안에 풀릴 수 있다는 것이 보여졌다. 또한 Knapsack 문제와 같은 NP-complete

문제와 공개키 문제와 관련하여 Brassard's theorem은 어떤 가정 아래에서 NP-complete

문제가 위험한가를 밝혔다. 즉, 1979년 Brassard는 A가 NP이고 A∈CoNP 이면

NP=CoNP 임을 증명했다. 그런데 NP=CoNP는 아닌 것으로 믿어지기에 A∈CoNP인 문제

에 기반을 둔 암호시스템은 NP가 아니라고 주장한 것이다. 그런데 1993년 Fe11ows,

Koblitz는 Perfect dominating set과 같은 조합론의 NP-문제에 기반을 둔 공개키 시스템

이 Brassard's theorem의 가정 즉 A∈CoNP을 만족시키지 않기에 Brassard's theorem에

의해 안전하지 않다고는 말할 수 없다고 주장하였다. 계속해서 그들은 1994년

Combinatorial Cryptosystems Galore! 논문을 통해 일반적으로 조합론에서의

NP-complete 문제를 기반으로 하는 공개키 암호시스템의 가능성을 피력하였다. 특히 그들

은 일반적인 조합론의 NP-문제에서도 Combinatorial cryptosystems을 많이 만들 수 있다

는 주장과 함께 그 이론들을 다듬어 가고 있다. Koblitz와 Fellows는 Polly Cracker 암호

시스템을 PDS(perfect dominating set)등과 같은 조합론의 NP-complete 문제를 기반으로

제안하였는데, 구체적으로 PDF를 갖는 복잡한 regular 그래프 G를 vertex 개수가 4인

complete graph K 4를 base로 하여 graph covering으로 만든 후, 이어서 G의 불변식

(invariant polynomials)들을 통한 Polly Cracker 암호시스템의 가능성을 제안하였다. 먼저

이러한 개념을 정리해 본다.

Page 232: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 232 -

가. PDS (Perfect Dominating Set)와 불변식

o 그래프 G=(V, E):

o w∈V의 닫힌 neighborhood N[w]는 w와 인접한 G의 모든 vertex들의 모임

o W⊂V는 G의 dominating set when ∪v∈WN[u]=V

o dominating set W is perfect when N[u]∩N[v]=ø

G = (V, E)를 (undirected) 그래프라 하자. G의 vertex v에 대하여 N[v]를 집합 {u|u =

v 또는 u와 v는 그래프 G에서 adjacent되어 있다}으로 정의하고 vertex v의 근방이라 한

다. V의 부분집합 W가 ∪v∈WN[v]=V 인 성질을 만족할 때 W를 그래프 G의 dominating

set 이라 한다. 아래의 그림에서 a와 e가 아래의 3-regular 그래프에서의 perfect

dominating set를 이룬다. 즉, vertex a와 e는 PDS를 이루는데, 이 말을 함수 개념을 도입

해서 다음과 같이 쓸 수 있다. 즉, 함수 f: V→{0,1} 는 G의 PDS function 로서

f(a)=f(e)=1 이고 그 외의vertex에서의 값은 0이다.

Page 233: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 233 -

(그림 2-3) {a, e} : PDS

⊙ 함수 f는 (0,1)-perfect dominating set function when

주어진 그래프에서 PDS를 구하는 문제의 복잡도는 다음과 같다.

⊙ 모든 vertex가 d(≥3)개의 vertex와 인접한 경우,

PDS(perfect dominating set)를 구하는 문제는 NP-complete하다 (1991년 Kratochvil)

⊙ 주어진 평면 planar 3-regular 그래프가 perfect dominating set을 갖는지를 판단하는

문제는 NP문제이다 (Kratochvil, 1994).

한편, 3-regular graph G에 대해, 4개의 perfect dominating set으로 G를 분할할 수 있다

는 말과 G가 K 4의 covering graph가 된다는 말은 동치이다. 따라서 주어진 3-regular

graph G에 대해, G가 K 4의 covering graph가 되는지를 알아내는 문제는 NP 문제이다

(Kratochvi1, 1994).

그림 2-3의 그래프 G를 보면 vertex a와 e는 PDS를 이룬다. 이 때, a+b+c+d (vertex

이름인 a, b, c, d를 a, b, c, d의 vertex에 주어지는 값을 나타내는 문자로 생각하자) 라는

식은 그래프 G에 어떠한 PDS가 주어지든 항상 1의 값을 갖게 된다. 또한 e+f+g+h도 어

떤 PDS에 대해서도 항상 1의 값을 갖는다. 이 것은 PDS를 G의 vertex에서 정의된 함수로

서 다음의 성질을 갖는 것으로 보면 당연하다.

Page 234: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 234 -

이것을 엄 히 정의하기 위해 다음을 도입하자. F[G] 를 G의 vertex를 변수로 갖는 다항

식 ring이라 하자. 만일 p(x)∈F[G]가 임의의 PDS D,D''에 대해 p(D)=p(D') 성질을 만족

하면 p(x)를 G의 불변식(invariant expression)이라 한다. 그리고, Inv[G] 를 G의 vertex

를 변수로 갖는 불변식 전체라하자. 이 때, 불변식 값이 0인 Inv[G]의 원소들은 F[G] 의

idea1이 된다. 이와 같이 그래프의 vertex를 변수로 갖는 다항식에서, 변수를 그래프 전체

에서 갖는 것을 global 불변식이라 하고, 어떤 vertex v의 근방 N[v]에서만 변수를 갖는

불변식을 local 하다고 하자. 특별히 vertex v의 근방 N[v]에서만 변수를 갖는 불변식의

집합을 Inv[ G v]로 표시하자.

[예] (1oca1한 불변식) 1차식 : 1=a+b+c+d

2차식 : 0=a 2+b 2+2ab-a-b

4차식 : 0=abcd

(global한 불변식) 2=a+b+c+d+e+f+g+h

Inv[G]의 모든 원소들을 만족시키는 근을 구하면 그것이 PDS이다. 따라서 Inv[G]의 근

을 구하는 문제는 그래프 G에서 PDS 구하는 문제와 같이 어렵다. 불변식의 개념을 형식화

하기 위해 그래프 G = (V, E)에서 T={ a v∣v ∈V }를 각 vertex에 대응하는 변수의 집합

이라 하고, W를 의 perfect dominating set 이라 하자. 이 때, substitution scheme

σ (x, y, m) 는 변수 T 위에서의 다항식에 대하여

로 치환하여 계산하는 스킴을 나타낸다고 하자. 이때 N[v]에 대응하는 변수들

{ a u∣u ∈ N [v]} 위에서의 다항식이 N[v]에 있는 S의 원소가 어떤 것이든 상관없이 같

은 값으로 계산되어질 때 이 다항식을 substitution scheme σ (x, y, m)과 N[v]에 대한 불

변식이라 한다. 다음의 그림 2-5를 보자.

Page 235: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 235 -

(그림 2-4) 3-regular그래프

그림 2-5는 3-regular 그래프이다. 위의 그래프에서 임의의 vertex v에 대해서 N[v]는 항

상 4개의 vertex를 포함하는데, 이를 a, b, c, d라고 두자. 이 때, 다음은 substitution

scheme σ(2,1,3)에서 불변식이 된다.

나. Koblitz-Fellows의 암호시스템과 문제점

[Koblitz와 Fellows가 제안한 시스템]

A. 갑은 W를 perfect dominating set으로 하는 regular graph (degree가 일정한 그래프)

를 잡고, W는 비 키로 감추고 G는 공개한다. 또한 적당한 x, y, m을 잡아 σ (x, y, m)을

만들고 그 것을 이루는 파라메타인 (x, y, m)은 공개한다. 여기서 W를 perfect dominating

set으로 하는 regular graph를 만드는 것은 쉽지만, 거꾸로 G에서 W를 찾는 것은

NP-complete로 어려운 one way function 관계가 중요하다.

Page 236: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 236 -

B. 갑에게 메시지를 보내고 싶은 을은 먼저 G에서 임의로 vertex 들을 잡고, 다음 잡은 각

vertex의 N[v]와 파라메타 (x, y, m)에 대한 invariant 수식들을 잡는다. 그리고 잡은

invariant 수식들을 곱하고 더해서 복잡한 다항식 P를 만들되 그 다항식이 파라메타 (x, y,

m)에 의한 evaluated 값이 자기가 갑에게 보내고 싶은 값 b (modulom)가 되도록 한다. 이

때 잡는 다항식 P는 중간에 도청하는 사람이 P로부터 그 다항식을 이루는 invariant 수식들

을 분해하기 어렵도록 만들어야 한다. 이제 다항식 P를 갑에게 보낸다.

C. 을에게서 P를 받은 갑은 자신의 비 키인 perfect dominating set W와 substitution

scheme σ (x, y, m)을 사용하여 받은 다항식 P의 값을 구하여 을이 보낸 b의 값을 얻는다.

[구체적인 예] 위의 순서 A, B, C를 따라 다음과 같이 만들 수 있다. 이제 그래프 G = (V,

E)에서 F=Z/2Z, T={ t v∣v ∈V}을 변수의 집합이라 하자. 공개키를 그래프 G = (V, E)로,

비 키를 그래프 G의 perfect dominating set S라 하고, 다음과 같이 집합 B = B 1∪B 2

을 정한다.

각각의 변수 t v에 대해서 다음과 같이 값을 결정한다.

이때 각 각 vertex에 대하서 올바른 perfect dominating set에 해당하는 치환을 y라 하면

모든 q j ∈ B 에 대하여 q j (y)=0가 된다. 만일 갑이 을에게 메시지 m을 보내기 위해서는

집합 B를 사용하여 다항식 p =∑h j q j 을 만든다. (여기서 q j∈B , h j∈F[T] 즉 T를 변

수로 하는 다항식). 즉 p는 B에 의해서 생성되는 F[T]의 이데알의 원소로 잡는다. 이렇게

만든 p에 갑은 을에게 보내려는 m을 더해서 다항식 c=p+m 를 만든 후 이것을 전송한다.

이를 받은 을은 암호를 해독하기 위하여 비 키인 y를 대입하여 c(y) = p(y) + m = m을

알아 낼 수 있다.

Page 237: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 237 -

이제, Koblitz와 Fellows가 제안한 시스템의 문제점에 대해 고찰해 보자.

1) Koblitz와 Fellows가 제안한 시스템에서 공개키를 K 4 covering graph로 하고 그 그래

프의 PDS를 비 키로 한다. 그런데 일반적인 주어진 (planar) cubic 그래프가 perfect

dominating set을 갖는지를 판단하는 문제는 NP 문제이지만 (Kratochvil, 1994), 그 그래

프 집단의 부분집합인 K 4 covering graph 전체에서의 PDS문제에 대한 복잡도가 밝혀지

지 않았다. 따라서, 일반적인 cubic 그래프에서 비 키를 잡는 방법을 개발하든지, 또는

K 4 covering graph 전체에서의 PDS 문제에 대한 복잡도를 보여야 한다. 또한 PDS가 존

재하는 것을 아는 경우 찾는 문제의 복잡도도 고려하여야 한다.

2) Koblitz와 Fellows가 제안한 암호시스템에서 보내려는 메시지 값 m ∈ F =Z/2Z 에 대

해, 불변식 값이 0 인 global한 불변식 p(x)=∑h j q j를 만들되 h j ∈F[G] 이고 q j는

local 불변식으로부터 만든 불변식 값 0인 Inv[G] 원소이다. 다음 p(x)+m으로 m의 값을

암호화하고 전송하면 메시지를 받은 사람은 자신의 비 키 PDS인 D를 대입하여

p(D)+m=m 을 얻게된다. 그런데 ∑h j q j 과 같이 불변식 값이 0인 불변식을 만들기 위해

각 vertex에서 만드는 local 불변식은 1 =a+b+c+d의 상수배로 모두 generate 된다. (즉,

global한 불변식의 모양이 c 1=∑v∑u∈N[v]

u) 즉, PDS에서 Inv[ G v]는 하나의 generator를

갖게 된다. (즉 1 =a+b+c+d ). 이 것은 공격자가 메시지를 불변식으로 decompose 하려

는 linear attack을 대비할 경우 취약성이 있다. 따라서 다양한 불변식을 제공하는 PDF가

요청된다.

Page 238: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 238 -

3) Koblitz와 Fellows가 제안한 암호시스템에서 메시지 값 m을 키우는 문제가 있다. 또한

Koblitz와 Fellows가 제안한 암호시스템에서는

과 같이 불변식의 값이 0인 global한 불변식을 사용하는데 이 곳에 곱셈이 사용되기에 나올

수 있는 단항식들이 많아져서 메시지 expansion이 크게 된다. 다음 장에서 설명하지만

linear attack 때문에 곱셈을 사용할 수밖에 없는 것 같다. 이때, 사용되는 곱셈은 메시지

expansion을 고려해서 실행되어야 할 것이다. Koblitz와 Fellows가 제안한 시스템에서는

vertex a 가 나타내는 변수에 대해 a=a 2 이기에 한 개의 power가 있게 된다. 참고로 다

음 장에서 설명하는 (-1, 1, 1, 1)-PDF에서는 0이 없기에 모든 a에 대해 a2=1로

cancellation을 시킬 수 있고 결국 이 경우에도 한 개의 power가 있게 된다.

다. 3-edge coloring과 불변식

그래프 G=(V,E)로 한다. 함수 f: E→{-1,0,1}는 인접한 두 edge는 서로 다른 coloring 값

을 갖을 때 G의 3-edge coloring function이라 한다. 주어진 그래프에서 3-edge coloring

을 구하는 문제의 복잡도는 다음과 같다. 모든 vertex가 d(≥3)개의 vertex와 인접한 경우,

3-edge coloring의 존재성을 판단하는 문제는 NP 문제이다.

다음의 그래프 G를 보면 각 edge에 주어진 값 -1, 0, 1 이 3-edge coloring을 이룬다. 이

때, 임의의 vertex에 인접한 3개의 edge에 주어진 color 값들의 합은 항상 0이다. 또 각

edge에 대해 그 edge에 인접한 두 edge의 합과 다른 두edge의 합과의 차는 항상 0이다

(삼각형이 있는 경우 같은 edge가 두 번 count). 예로, 다음의 그래프를 보자.

Page 239: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 239 -

(그림 2-5) {-1, 0, 1}로 3-edge coloring

여기서 edge a, b, c 에 주어진 co1or 값의 합과 edge c 에 인접한 edge a, b 의 합과 d,

e 의 합과의 차는 0이다

[예] (local한 불변식) 1차식 : 0=a+b+c

2차식 : -1=ab+bc+ca

3차식 : 0=abc

(golbal한 예) 0=a+b-d-e

이 것을 엄 히 정의하기 위해 다음을 도입하자. 그래프 G에 대해 F[G]를 G의 edge를 변

수로 갖는 다항식 ring이라 하자. 만일 p(x)∈F[G]가 임의의 3-edge coloring D,D'에 대

해 p(D)=p(D')성질을 만족하면 p(x)를 G의 edge에 대한 불변식(edge invariant

expression)이라 하자. 그리고, Inv[G] 를 G의 edge를 변수로 갖는 불변식 전체라 하자.

이 때, 불변식 값이 0인 Inv[G] 의 원소들은 F[G]의 ideal이 된다. 이와 같이 그래프의

edge를 변수로 갖는 다항식에서, 변수를 그래프 전체에서 갖는 것을 global 불변식이라 하

고, 어떤 vertex v의 근방 N[v]에서만 변수를 갖는 불변식을 local 하다고 하자. 특별히

vertex v의 근방 N[v]에만 있는 불변식의 집합을 Inv[ G v]로 표시하자. Inv[G]의 모든

원소들을 만족시키는 근을 구하면 그 것이 3-edge coloring map이다. 따라서 Inv[G]의 근

을 구하는 문제는 그래프 G에서 3-edge coloring을 구하는 문제와 같이 어렵다.

Page 240: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 240 -

제 3 장 효율적인 공개키 암호알고리즘 개발

제 1 절 격자축소문제 기반 공개키 암호알고리즘 개발

1. 개요

Lattice를 이용한 공개키 암호 알고리즘은 키 크기에 대한 효율성 등에서 기존의 공개키 알

고리즘들이 가지고 있는 단점과 취약점을 극복할 수 있는 새로운 공개키 개발의 필요성을

느낌으로써 제안된 암호법이다. 1997년 MIT에서 Lattice 상에서의 어려운 문제에 기반을

둔 새로운 공개키를 제안한 후 공개키 그 자체로서 그리고 기존의 암호 알고리즘을 공격하

는 공격수단으로서 그 연구가 활발하다.

이 절에서는 Lattice 기반 공개키 암호알고리즘의 장점은 응용하고 단점은 제거하여, 기존

암호법을 개선하면서, 새로이 개발된 암호알고리즘을 제안한다. 처음 개발된 Lattice 기반

공개키 암호알고리즘은 안전성이 취약하였다. 그러나, 이 취약점을 보완하여, 다른 새로운

알고리즘을 개발하였으며, 이를 프로그램으로 구현하였다. 제안된 새로운 공개키 암호 알고

리즘은 암호화, 복호화 속도가 다른 암호 알고리즘에 비해 빠르므로 실용적이라 할 수 있

다. 그러나, 좀 더 안전성을 강화할 필요가 있다.

2. 제안 알고리즘

이 절에서는 본 연구진이 새로이 개발한 공개키 시스템을 제안하고 이에 대한 안전성을 분

석한다.

Page 241: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 241 -

가. 새로운 공개키 암호 알고리즘의 제안

k을 Lattice의 차원이라 하고 B=( b ij) ∈Mat k (Z)이라 놓고 l∞노름을 다음과 같이 정의

하자.

우선 키 생성과정에 대하여 알아보자.

(조건 1) 다음을 만족하는 정수 m,e,{ d ii} 1≤i≤k, 소수 q, 행렬 T∈ Mat k (Z))를 선택한다.

(1-1) 임의의 큰 소수 q를 선택한다.

(1-2) 임의의 정수 m≈ q 0.2와 e≈ q 0.6를 선택한다.

(1-3) m보다 크고 q 0.3보다 작은 { d ii} 1≤i≤k들을 선택하여 d ii들을 대각성분으로 갖는

대각행렬 D를 만든다.

e는 에러 벡터의 상한이며 m은 메시지 벡터의 상한이다.

(조건 2) 행렬의 성분이 ∑k

i=1t ij< q

0.1을 만족하며 모듈라 q에 대하여 행렬이 존재하는 행렬

T를 선택한다.

(조건 3) R=D⋅T로 놓고 R을 비 키로 사용한다. 행렬 R의 i번째 행은 d ii의 배수이다.

위의 조건 1), 2), 3)은 아래의 부동식을 만족시킨다.

(조건 4) Bq≡R-1 (mod q)를 계산한다. L∈Mat k (Z)을 행렬식이 1이고 대각성분을 제외한

다른 성분은 q인 배수인 하삼각행렬이라 놓고 U∈ Mat k (Z)을 행렬식이 1이고 대각성분을

제외한 다른 성분은 q인 배수인 상삼각행렬이라 놓자. A∈ Mat k (Z)는 성분이 0, q,-q로

만 이루어진 행렬이라 놓고 B를 다음과 같이 정의하고 공개키로 사용하자.

Page 242: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 242 -

공개키 : B,e,m

비 키 : R,q,T

암호화 과정은 메시지를 벡터로 사영시킨 후 Lattice 점을 생성하고 임의의 에러 벡터를 더

한 값을 암호문으로 사용한다. 암호화 과정을 살펴보면 다음과 같다.

(암호화 1) M= ( m 1,…,mk)t을 메시지라 놓자. (0≤m i⟨m)

(암호화 2) E= ( e 1,…, e k)t를 임의의 에러 벡터라 놓으면 (0≤ e i⟨e) 암호문 C는 다음과

같다.

복호화 과정은 비 키인 q와 R의 특성을 이용하여 복호화한다.

(복호화 1) C q≡C(mod q)를 계산한다.

(복호화 2) X= ( x 1,…, x k)t≡R⋅Cq (mod q)를 계산한다.

(복호화 3) 위의 조건에 의하여 mi= x i (mod d ii)이므로 메시지를 복호화하게 된다.

복호화 과정을 수학적으로 살펴보면 다음과 같다.

이다. 따라서

Page 243: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 243 -

=M+(D⋅T)⋅E (조건3에 의하여)

≡ ( mi (mod d ii)) 1≤i≤k (조건3에 의하여)

=M (조건1에 의하여)

이다. 그러므로 복호화가 가능하게 된다.

나. 새로운 공개키에 대한 공격법 제안

여기에서는 가에서 제안된 공개키 암호시스템에 대한 여러 가지 공격법에 대하여 살펴보겠

다.

1) BKZ-reduction 알고리즘의 적용

암호화 과정을 다시 살펴보면 다음과 같다. C=B⋅M+E. 따라서 암호문 C는 B에 의하여

생성되는 Lattice B⋅M에 에러 벡터 E를 더한 벡터라 생각할 수 있다. 그러므로

BKZ-reduction 알고리즘을 다음과 같은 행렬에 적용시킬 수 있다.

그러나 GGH 시스템과는 달리 에러 벡터의 크기가 매우 크므로 BKZ-reduction 알고리즘을

적용시켜도 에러 벡터를 찾는 것이 불가능하게 된다. 따라서 위에서 제안된 알고리즘은

BKZ-reduction 알고리즘에 안전하다고 할 수 있다.

Page 244: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 244 -

2) 역행렬을 이용한 공격

비록 비 키인 R을 모르지만 다음과 같은 식이 성립함을 알 수 있다.

R⋅B≡Imod(q). B-1=

1det(B)

B'라 놓으면 B'=det(B)B-1이 된다. 따라서 위의 식에다 양

변에 B'을 곱해주면 다음과 같은 식이 만족된다. R⋅B⋅B'≡B'mod(q), R=D⋅T이므로

det(B)D⋅T≡B'mod(q)이 된다.

B'=ꀌ

︳︳︳︳

︳︳︳︳

b 11' … b 1k'⋯ … ⋯b k1' … b kk'

로 놓으면 위의 식은 다음과 같은 식이 된다.

따라서 다음과 같은 방정식을 얻을 수 있다.

일반성을 잃지 않고 GCD (det(B),q)=1라고 할 수 있으므로 위의 식들은 다음과 같이 바뀐

다.

(1'),(2'),(3') 으로부터 방정식

을 얻을 수 있다. b 'ij값은 알고 있고 t ij의 값의 범위는 작으므로 t 12, t 13, t 14를 임의로

선택하여 GCD ( t 12 b'13- t 13 b

'12, t 13 b

'14- t 14 b

'13)를 구하여 q의 정보를 구할 수 있게 된

다.

Page 245: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 245 -

3) 다른 소수를 이용한 공격

공개키 B는 공개되어 있고 q의 범위도 대략 알고 있으므로 q와 같은 정도의 비트 수를 가

지는 다른 소수 q'을 선택한다. 이러한 q'에 대하여 공개키 B를 모듈라 reduction 시킨 후

나온 행렬을 B'이라 놓자.

C=B⋅M+E이므로

이 된다. 일반적으로

으로 나타낼 수 있다. 그런데 B'의 원소의 크기는 대략 q'과 비슷하므로 B*의 원소의 크기

는 대략 q 'k-1정도가 되고 det(B')≃ q k가 된다. B'⋅M+E 의 각 원소는 2 q '보다 작으므

로 위의 (1)번 식은 다음과 같이 쓰여진다.

위의 (3.1.2)번 식에다 양변에 B'-1를 곱하여 주면

이 된다. 그런데 B *⋅E의 원소의 크기는 대략 q k-1+0.6정도이고 det(B')≃ q k이므로

(3.1.3)번 식의 양변에 Gauss 기호를 적용하면

Page 246: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 246 -

이 된다. 따라서 q를 모르는 상태에서 메시지 M을 복원할 수 있게 된다.

4) Arithmetic method를 이용한 공격

위에서 제안된 공개키 암호시스템에서 공개키 생성과정을 다시 살펴보면

B=( Bq+A)⋅L⋅U이 된다. 여기서 L은 하삼각 행렬이고 U는 상삼각 행렬이며 대각성분은

모두 1이며, 대각성분을 제외한 나머지 부분은 0,±q이다. B=( b ij)라 놓고 B의 성분의 크

기를 살펴보면 b 11, b kk의 크기는 대략 q 2정도가 되고, 나머지 성분들의 크기는 대략

q3정도가 된다. 따라서 b 11, b kk로 행렬 B의 다른 성분을 나눠 몫을 관찰하면 q에 대한

많은 정보를 얻을 수 있다. 따라서 얻은 정보를 이용하면 q를 찾을 수 있게 된다.

(예제) q=10570841, m=25, e=2000

Page 247: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 247 -

이다.

공개키 : m,e,B

비 키 : q,R,T

암호화 과정

Page 248: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 248 -

복호화 과정

이므로 복호화가 가능하게 된다.

다. 공격법에 강한 새로운 암호알고리즘의 개선

여기에서는 가에서 제안된 알고리즘의 취약성을 보완한 새로운 알고리즘에 대하여 제안을

하겠다. 여기에서 제안될 방법은 가의 내용과 비슷하며, 공개키 생성시 모듈라 reduction을

이용하는 점이 원래의 것과 다르다고 할 수 있다. 우선 새로운 공개키 제안에 앞서 나의 각

각의 공격법에 대한 보완할 수 있는 방법에 대하여 살펴보자.

Page 249: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 249 -

∙ BKZ-reduction 알고리즘을 이용한 공격

앞 절에서 제안된 방법과 마찬가지로 에러 벡터의 범위를 키우면 이 알고리즘의 대하여 안

전하게 된다.

∙ 역행렬을 이용한 공격

앞에서 제안된 알고리즘이 이러한 공격에 대하여 취약성을 보이는 것은 t ij의 범위가 너무

좁기 때문에 아래와 같은 방정식을 만족하는 t 12, t 13, t 14의 값을 전수 조사를 통하여 찾을

수 있게 된다. 따라서 q에 대한 정보도 얻을 수 있게 된다. 그러므로 t ij의 범위를 키워 아

래의 방정식을 만족하는 t 12, t 13, t 14를 계산적으로 찾을 수 없게 하여야 한다.

∙ 다른 소수를 이용한 방법

B=( B q)⋅L⋅U이고 C=B⋅M+E이므로 공개키와 암호문을 다른 수로 reduction이 가능하

게 된다. 따라서 B는 orthogonal defect가 크지만 다른 수로 모듈라 reduction을 한 후 만

들어지는 행렬의 orthogonal defect는 원래의 것에 비해 작게 된다. 따라서 에러 벡터에 모

듈라 reduction 한 후 만들어지는 행렬의 역행렬을 곱한 후 Gauss 기호를 적용하면 높은

확률로 모든 성분이 0이 된다. 따라서 q를 구하지 않고서도 메시지를 구하게 된다. 이러한

공격은 공개키와 암호문을 모듈라 reduction을 이용하지 않고 정수 상에서의 행렬 혹은 벡

터처럼 생각하여 연산을 하기 때문에 이와 같은 공격이 가능하게 된다. 따라서 이와 같은

공격을 피하기 위해서는 공개키와 암호문을 앞 절에서 제안한 방법과 같이 모듈라

reduction을 시키지 않고 공개하는 것이 아니라 어떠한 수로 모듈라 reduction을 시키면 이

와 같은 방법의 적용이 불가능하게 된다.

Page 250: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 250 -

∙ Arithmetic method를 이용한 공격

이 방법이 가능했던 것은 공개키를 만드는 과정에 있어서 상삼각 행렬과 하삼각 행렬을 곱

하여 주기 때문에 성분의 크기가 비슷하지 않고 차이가 나게 된다. 이러한 특성 - 성분의

크기가 다른 성질 -을 나타나지 않게 하면 이러한 공격을 피할 수 있게 된다.

그럼 새로운 공개키 알고리즘에 대하여 살펴보자.

(조건 1) 다음을 만족하는 정수 m,e,{ d ii} 1≤i≤k, 소수 p,q, 행렬 T∈ Mat k (Z))를 선택한

다.

(1-1) 임의의 큰 소수 p,q(≈512비트)를 선택한 후 n=p,q 로 놓는다.

(1-2) 임의의 정수 m≈ q 0.4 와 e≈ q 0.3를 선택한다.

(1-3) m보다 크고 q 0.5보다 작은 { d ii} 1≤i≤k 들을 선택하여 d ii들을 대각성분으로 갖는

대각행렬 D를 만든다.

e는 에러 벡터의 상한이며 m은 메시지 벡터의 상한이다.

(조건 2) 행렬의 성분이 ∑k

i=1t ij< q

0.2을 만족하며 모듈라 q에 대하여 역행렬이 존재하는 행

렬 T를 선택한다.

(조건 3) R=D⋅T로 놓고 R을 비 키로 사용한다. 행렬 R의 i번째 행은 d ii의 배수이다.

위의 조건 1), 2), 3)은 다음의 조건을 만족시킨다.

(조건4) B q≡R-1(mod q)를 계산한다. (여기서 Bq의 부호는 음수도 허용한다)

L∈ Mat k (Z)을 행렬식이 1이고 대각성분을 제외한 다른 성분은 q인 배수인 하삼각 행렬이

라 놓고 U∈ Mat k (Z)을 행렬식이 1이고 대각성분을 제외한 다른 성분은 q인 배수인 상삼

각 행렬이라 놓자. B를 다음과 같이 정의하고 공개키로 사용하자.

공개키 : B,e,m,n

비 키 : R,q,T

Page 251: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 251 -

암호화 과정은 메시지를 벡터로 사영시킨 후 Lattice 점을 생성하고 임의의 에러 벡터를 더

한 값을 암호문으로 사용한다. 암호화 과정을 살펴보면 다음과 같다. 암호화 과정은 가에서

제안한 방법과 모듈라 reduction을 쓴다는 점에서 다르고 복호화 과정은 가의 방법과 같다.

(암호화 1) M= ( m 1,…,mk)t을 메시지라 놓자. (0≤m i⟨m)

(암호화 2) E= ( e 1,…, e k)t를 임의의 에러 벡터라 놓으면 (0≤ e i⟨e) 암호문 C는 다음과

같다.

복호화 과정은 비 키인 q와 R의 특성을 이용하여 복호화한다.

(복호화 1) C q≡C(mod q)를 계산한다.

(복호화 2) X= ( x 1,…, x k)t≡R⋅Cq (mod q)를 계산한다.

(복호화 3) 위의 조건에 의하여 mi= x i (mod d ii)이므로 메시지를 복호화하게 된다.

복호화 과정을 수학적으로 살펴보면 다음과 같다.

이다. 따라서

=M+(D⋅T)⋅E (조건3에 의하여)

≡( mi (mod d ii)) i (조건3에 의하여)

=M (조건1에 의하여)

이다. 그러므로 복호화가 가능하게 된다.

Page 252: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 252 -

3. 안전성 분석

여기에서는 위에서 제시된 알고리즘에서 각 변수에 대한 수학적 조건을 다시 살펴보고, 안

전성에 대한 분석을 제시하겠다.

가. 변수들의 수학적 조건

∙ m은 메시지 벡터성분의 상한을 나타내는 값으로 메시지 벡터의 공간의 크기는

q 0.4k≈ 2 220k이다.

∙ e는 에러 벡터성분의 상한을 나타내는 값으로 에러 벡터의 공간의 크기는

q0.4k≈ 2

220k이다.

∙ D의 대각성분 d ii 를 선택하는 범위는 m⟨ d ii⟨ q0.5이므로 d ii를 선택할 수 있는 개수

는 약 2 260개다. 따라서 D를 선택하는 개수는 약 2 260k개다.

∙ T의 대각성분 t ij 를 선택하는 범위는 약 0⟨ t ii⟨ q0.2/k이므로 t ij를 선택할 수 있는

개수는 약 2 100/k개다. k가 50인 경우 t ij 선택할 수 있는 개수는 약 2 94개다.

∙ 벡터 M+R⋅E의 각 성분은 q보다 작다.

Page 253: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 253 -

나. 새로운 알고리즘에 대한 여러 가지 공격

∙ Brute-force 공격

메시지 벡터 M과 에러 벡터 E에 대하여 exhaustive search를 적용하여 M,E 를 찾는 방

법에 대하여 살펴보자. 메시지라고 예상되는 메시지 벡터M'을 선택한후, E'을 아래와 같이

계산한다.

E'=( e 1',…, e k')t=C-BM'(mod n)

만약 모든 i에 대하여 e i'≤e 이면 높은 확률로 위에서 추측한 M'을 메시지라고 생각할

수 있게된다. 그러나 가능한 메시지 벡터의 수는 약 q 0.4k≈ 2 220k이므로 이와 같은 방법으로

메시지 벡터를 찾는 것은 불가능하게 된다. 같은 방법으로 에러 벡터 E'을 추측하고 메시지

벡터 M'을 계산하여 계산한 메시지 벡터들의 모든 성분들이 메시지 상한보다 작으면 추측

한 에러 벡터를 옮은 에러 벡터로 생각할 수 있게 된다. 그러나 이 방법도 에러 벡터의 상

한이 매우 크므로 불가능하게 된다.

∙ BKZ-reduction 알고리즘의 적용

가에서 제안한 방법과 달리 다에서 제안한 방법은 암호화시 모듈라 reduction을 사용하므로

Lattice 상에서의 근접 벡터를 찾는 문제라 할 수 없다. 따라서 BKZ-reduction 알고리즘의

적용은 더 이상 불가능하게 된다.

∙ n의 인수분해

n의 인수분해가 가능하다면 q를 알아낼 수 있으므로 복호화가 가능하게 된다. 따라서 n이

인수분해가 되면 위에서 제안한 알고리즘은 깨지게 된다. 그러나 알고있듯이 인수분해 문제

는 매우 어려운 문제이므로 인수분해를 통하여 q의 정보를 얻는 것은 불가능하게 된다.

Page 254: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 254 -

∙ 모듈라 역원에 대한 행렬의 임의성

공개키 B의 생성시 우선 B q를 생성한 후 다시 B q에 상삼각 행렬과 하삼각 행렬을 곱하

여 모듈라 n으로 reduction 시킨다. B q는 모듈라 q에 대한 R의 역행렬이고 R은 특정한

형태 - i번째 행은 d ii의 배수가 된다 -를 지니고 있으므로 B q 또한 특정한 형태를 지

닐 수도 있게 된다. 그러나 모듈라 역행렬에 의하여 B q의 각 성분은 다른 성분과 어떠한

연관성도 가지지 않게 된다. 따라서 B의 각 성분도 임의의 성분이 된다. 따라서 B로부터

d ii, t ij의 정보를 얻는 것은 불가능하게 된다.

∙ 역행렬을 이용한 공격

나에서 제안된 역행렬을 이용한 공격에 대하여 살펴보자. 앞에서 쓰인 기호와 같다고 하면

새로운 공개키 암호법에 대해서도 다음과 같은 식이 성립하게 된다.

그러나 새로운 시스템은 t ij의 범위가 매우 크므로 임의의 t 12, t 13, t 14를 찾아 이와 같은

관계식을 만족하는 t 12, t 13, t 14를 찾는 것은 계산적으로 매우 어렵게 된다. 따라서 역행렬

을 이용한 공격법에 대하여 안전하다고 할 수 있다.

다. 예제

위에서 제안된 알고리즘에 대한 예제를 살펴보자.

Page 255: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 255 -

이다.

공개키 : m,e,B,n

비 키 : q,R,T

[암호화 과정]

Page 256: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 256 -

[복호화 과정]

이므로 복호화가 가능하게 된다.

라. 결론

다음으로 앞에서 제안한 공개키 암호알고리즘의 효율성 및 키의 크기에 대하여 요약하면 다

음과 같다.

[표3-1] 새로운 공개키의 키의 크기 및 연산량

키의 크기 연산량

RSA Ο( logn) Ο( ( logn) 3)

새로운 알고리즘 Ο( k 2 ( logn)) Ο( ( logn) 2 k 2)

Page 257: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 257 -

위의 표에서 k는 행렬의 크기를 나타내며 n은 합성수를 나타낸다. 즉 n=pq이다. 실제적

인 구현속도는 다음의 표와 같다.

[표3-2] 새로운 공개키 알고리즘의 구현 속도

암호화 복호화 Platform

n≈1024비트k=10

0.01sec 0.01sex PenII 350Mhz

n≈1024비트k=30

0.09sec 0.15sec PenII 350Mhz

n≈1024비트k=50

0.27sec 0.43sec PenII 350Mhz

새로이 개발한 공개키 암호 알고리즘은 m≈ q 0.4이고 k=30인 경우 RSA와 같은 정도의 속

도를 가지고 약 6000비트를 한번에 암호화시킬 수 있는 장점이 있는 알고리즘으로 안전성

분석과 공개키의 크기를 줄일 수 있는 방안이 연구가 필요하다.

4. 프로그램 명세

[함수명세표]

다정도 연산에 관한 함수

•void mp_nul1 (MP * a, int 1en);

a의 값을 0으로 초기화한다.

•void mp_copy (MP * a, MP * b, int len);

b의 값을 a에 복사한다.

•int mp_zero (MP a, int len);

a의 값이 0이면 1을 그렇지 않으면 0을 리턴한다.

•int mp_1en (MP a, int 1en);

a의 길이를 리턴한다.

Page 258: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 258 -

•int mp_cmp (MP a, MP b, int len);

a와 b를 비교하여 a가 크면 1을, 그렇지 않으면 -1을 리턴한다.

•MP mp_int_add (MP a, MP b, MP c, int len);

1en보다 작은 자리에 대해서는 b+c를 한 후 a의 값으로 취하고 1en자리에서 carry가 발

생하면 1을 리턴하고 그렇지 않으면 0을 리턴한다.

•void mp_add (MP a, MP b, MP b, int len);

b+c를 계산하여 a의 값으로 취한다.

•MP mp_int_sub (MP a, MP b, MP c, int len);

b-c를 계산하여 a의 값으로 취하고 b가 c보다 크거나 같으면 0을 리턴하고 그렇지 않으면

1을 리턴한다.

•int mp_sub (MP a, MP b, MP c, int 1en);

b-c를 실행하여 a의 값으로 취하고 결과가 음수이면 -1를 그렇지 않으면 1을 리턴한다.

•void mp_int_mu1t (MP a, MP b, MP * high, MP * 1ow);

단정도 변수인 a와 b를 곱하여 하위 32비트는 low에 저장하고 상위 32비트는 high에 저장

한다.

•void mp_mult (MP *a, MP *b, MP *c, int len);

b와 c를 곱하여 a의 값으로 취한다.

•void mp_modaddinv (MP *a, MP *b, MP *c, int len);

모듈라 c에 대한 b의 덧셈에 대한 역원이다. 즉 a≡-b mod c이다.

•void mp_modinv (MP *a, MP *b, MP *c, int 1en);

b, c가 서로소일 때 c에 대한 b의 역원을 a로 취한다.

•void mp_mod (MP *a, MP* b, int b_len, MP *c, int c_len);

b를 c로 나누었을 때 나머지를 a로 취한다. 즉 a≡b mod c이다.

•void mp_gcd (MP* a, MP* b, MP *c, int len);

b, c의 최대 공약수를 a의 값으로 취한다. 즉 a=gcd(b,c)이다.

•void mp_modadd (MP* a, MP* b, MP* c, MP * d, int len);

b+c를 한 후 d로 모듈라 reduction 시킨다. 즉 a≡b+c mod d이다.

Page 259: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 259 -

•void mp_modmult (MP* a, MP* b, MP* c, MP *d, int len);

b*c를 한 후 d로 모듈라 reduction 시킨다. 즉 a≡b⋅c mod d이다.

다정도의 입출력에 관한 함수

•void mp_read (MP *a, int *1en, char *file);

file로부터 1en 길이만큼의 숫자를 읽어서 a의 값으로 취한다.

•void mp_write (MP *, int, char*);

file로 1en 길이만큼 a로부터 옮겨 적는다.

•void mp_print (MP *a, int len);

a를 1en 만큼 화면에 출력한다.

행렬에 관한 함수

•void mp_Mnull (MATRIX *z);

행렬 z을 0으로 초기화하는 함수이다.

•void mp_Vnull (VECTOR *z);

벡터 z를 0으로 초기화하는 함수이다.

•int mp_Mlen (MATRIX *z);

행렬의 크기를 리턴하는 함수이다.

•void mp_MMadd (MATRIX *z, MATRIX *x, MATRIX *y);

행렬의 덧셈을 계산하는 함수이다. 즉 z = x + y

•void mp_MMmult (MATRIX *, MATRIX *, MATRIX *);

행렬의 곱셈을 계산하는 함수이다. 즉 z = x * y

•void mp_MMmodadd (MATRIX *z, MATRIX *x, MATRIX *y, MP *p, int p_len);

행렬간 더한 후 p로 모듈라 reduction 시키는 함수이다. 즉 z≡x+y mod p이다.

•void mp_MMmodmult (MATRIX *z, MATRIX *x, MATRIX *y, MP *p, int p_len);

행렬간 곱한 후 p로 모듈라 reduction 시키는 함수이다. 즉 z≡x⋅y mod p이다.

Page 260: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 260 -

•void mp_Mcopy (MATRIX *z, MATRIX *x);

x를 z에 복사하는 함수이다. 즉 z = x 이다.

•void mp_Mmult (MATRIX *x, MP *a, int i, MP *p, int len);

행렬 x의 i번째 행에다 a를 곱한 후 다시 p로 모듈라 reduction 시키는 함수이다.

•void mp_Mchange (MATRIX *x, int i, int j);

행렬 x의 i-번째 행과 j-번째 행을 바꾸는 함수이다.

•void mp_Mmultadd ( MATRIX *x, MP *a, int i, int j, MP *p, int 1en);

행렬 x의 I-번째 행에 a를 곱한 후 j-번째 행에 더한 다음 p로 모듈라 reduction 시키는

함수이다.

•void mp_Minv (MATRIX *z, MATRIX *x, MP *p, int p_len);

모듈라 p에 대한 x의 역행렬을 구하는 함수이다.

벡터에 관한 함수

•int mp_Vlen (z);

벡터의 크기를 리턴하는 함수

•void mp_VVadd (VECTOR *z, VECTOR *x, VECTOR *y);

벡터간의 덧셈을 계산하는 함수이다. 즉 z = x + y

•void mp_VVmult (MP *, VECTOR *, VECTOR *);

벡터간의 내적을 계산하는 함수이다. 즉 z = x ㆍ y 이다.

•void mp_VVmodadd (VECTOR *z, VECTOR *x, VECTOR *y, MP *p, int p_len);

벡터간 더한 후 p로 모듈라 reduction 시키는 함수이다. 즉 z≡x+y mod p이다.

•void mp_VVmodmult (MP *z, VECTOR *x, VECTOR *y, MP *p, int p_len);

x와 y를 내적한 후 모듈라 p로 reduction 시키는 함수이다. 즉 z≡xㆍy mod p이다.

Page 261: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 261 -

행렬과 벡터간의 연산에 관한 함수

•void mp_MVmult (VECTOR *z, MATRIX *x, VECTOR *y);

행렬과 벡터의 곱셈을 계산하는 함수이다. 즉 z = x * y

•void mp_MVmodmult (VECTOR *z, MATRIX *x, VECTOR *y, MP *p, int p_len);

행렬과 벡터를 곱한 후 모듈라 p로 reduction 시키는 함수이다.

즉 z≡x+y mod p이다.

•void mp_Mprint (MATRIX *M);

행렬의 출력을 설정하는 함수이다.

•void mp_Vprint (VECTOR *V);

벡터의 출력을 설정하는 함수이다.

5. 향후계획

우리는 Lattice에 관한 전반적인 수학적 성질 및 암호학적 특성에 대한 연구를 통하여 새로

운 공개키 암호시스템을 제안하였다. 이러한 제안은 Lattice에 대한 암호학적 기반을 이루

는 것으로 매우 중요한 일이라 할 수 있으며 새로운 공개키 암호 알고리즘의 제안은 새로운

일방향성의 제시라는 점에서 매우 뜻깊은 일이라 할 수 있다.

앞에서 보듯이 기존의 많은 공개키 암호알고리즘이 Lattice를 이용하여 분석되어지고 있다.

이번 연구를 통한 Lattice의 정확한 수학적 성질의 이해와 분석은 공개키 암호에 대한 새로

운 분석법을 제시할 수 있으리라 기대 되어진다. 그러나, 아직까지 앞에서 제안된 공개키

암호 알고리즘의 안전성에 대한 증명이 이루어지지 않고 있다. 따라서 제안한 알고리즘에

대한 안전성증명은 매우 시급한 문제라 할 수 있다. 또한 행렬을 이용하는 다른 알고리즘과

마찬가지로 공개키의 크기와 암호문의 크기가 커진다는 단점이 있다. 따라서 이를 줄이는

연구도 해야 할 과제라고 할 수 있다.

Page 262: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 262 -

제 2 절 타원곡선 기반 변형 공개키 암호알고리즘 개발

1. 개요

Neal Koblitz와 Victor Miller에 의해서 독립적으로 제안되어진 타원곡선 암호체계(ECC,

Elliptic Curve Cryptosystem)는 공개키 암호시스템으로 타원곡선군의 이산대수 문제의 어

려움에 근거한 암호법이다. 이 방법은 상당한 관심을 유발시켜 왔는데, 그 이유는 현재 사

용되고 있는 또 다른 암호체계와 같은 수준의 안전성을 제공하면서도 키 크기(key sizes)를

1/6로 할 수 있다는 것이다. 작은 키 크기는 데이터를 암호화, 복호화 하는데 있어서 더욱

더 적은 연산과 에너지가 조금 필요하다는 것을 암시한다. 최근에 활용성이 증대되고 있는

디지털 서명(Digital Signature)의 경우 공개키 암호가 필수적이며 지금 가장 널리 사용되고

있는 RSA의 경우 키 크기가 1024비트는 되어야 안전한 것으로 평가되는데 이는 서명의 길

이가 너무 긴 단점을 지닌다. 이에 반해 ECC는 160비트정도의 키 크기로 같은 수준의 안

전성을 보장하기 때문에 전자상거래에 필요한 스마트 카드(smart card)나 전자 화폐 등에

사용될 수 있다. 더욱이 더욱 안전할 것으로 기대되는 초타원 곡선(Hyperelliptic curve)을

이용한 암호법은 genus가 큰 경우 subexponential time 알고리즘이 존재하는 것이 밝혀져

있고 1999년 EUROCRYPT'99에서 Smart가 구현시 타원곡선이 더 효과적임을 보이는 등

타원곡성 암호법의 활용 가치는 더욱 증대되고 있는 실정이다. 또 전원의 양이 한정된 이동

통신기기의 암호화에 적용될 수 있다. 위와 같은 이유로 해서 ECC는 차세대 공개키 암호법

으로 주목받고 있다.

Page 263: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 263 -

그런데 타원곡선 암호의 실제적인 구현시에 타원곡선 연산에 기반이 되는 유한체 연산의 효

율적인 구현이 가장 절실한 문제이며, 이는 타원곡선의 장점으로 부각되고 있는 제한된 환

경(스마트 카드, VLSI chip)에서의 구현(키 크기가 매우 작다는 점에 기인한)을 위해서도

반드시 해결해야 할 문제이다. 이 절에서 주어질 구체적인 연구 내용은 다음과 같다. 표수

가 유한체의 하드웨어 구현 방법과 표수가 컴퓨터의 워드 크기와 비슷한 유한체의 효과적인

S/W 구현방법과 DSA 구성 방법을 설명하였다. 그리고 Muller의 방법을 개선한 상수곱의

연산을 개선하는 알고리즘과 표수가 2인 유한체 위에서 관한 구체적인 방법을 제안하였다.

또한 기존의 방법과 다른 유한체 표현을 이용한 연산은 기존의 유한체 연산에 걸려있는 특

허문제를 해결하게 하므로 여기에 적합한 타원곡선 암호시스템을 구현하는 것도 중요한 문

제이다.

2. 제안 알고리즘

가. 첫 번째 접근

여기의 목적은 종속의 확률을 높이기 위해서 매개 변수에 대한 몇 가지 성질을 얻는 것이

다. 우리의 전략과 매개 변수의 크기는 종속된 점들이 많게 만들기 위해서 선택한다. 곡선

의 계수의 크기를 조정해서 판별식을 가능한 작게 한다. 각각의 r=2,3,4에 대해서 아래의

조건에 따라 20000개의 곡선을 만들어낸다.

1) r 개의 점 P 1,…, P r 에 대하여 Pi=( x i, y i)의 정수 좌표 계수 | x i |와 | y i | 가 r

이 2 인 경우에는 40 보다 작고 r이 3, 4 인 경우에는 30 보다 적게 택한다.

2) r 개의 점을 지나고 계수가 작은 표준 Weierstrass 형태를 구한다.

3) 같은 j invariant를 갖는 곡선은 제거한다.

4) 넷째: r=3,4 인 경우에 판별식이 2 80보다 크면 제거한다.

Page 264: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 264 -

나. 두 번째 접근

i=1,2,3,4 에 대한 좌표 계수 x i, y i가 B k≤| x i|≤ B k+11 와 B k'≤| x i|≤B k+1'를 만족

하도록 정한다. 여기서 B k=6k 이고 B k'=[( 6k)3/2]이다. 그런 다음 k=1,…10을 계산하

고 k는 3000까지 계산 한다. 수정된 유계에서 행렬 B( P 1,…, P r)의 핵심 (kernel)에 대한

LLL-축소 기저들 v 1,…, v r을 계산한다. 집합 { e 1 v 1+… e 7-r v 7-r: e i=0,-1,1}의 원소

중에서 대응하는 곡선의 판별식이 최소가 되게 하는 벡터 u를 구한다. 각각의 k에 대해서

100000개의 곡선들 중에서 종속이 되는 가장 적은 판별식을 가지는 1000개를 구한다. 그

래서 8백만 개의 곡선이 만들어지고 그들 중에서 1%만이 종속을 보장된다.

다. 앞선 결론

다음의 실험을 살펴보자.

1) 종속의 확률이 판별식의 비트 길이가 증가하면 감소하지만 비트 길이에 전적으로 의존하

는 것은 아니다. 다른 요소는 기대한 판별식의 길이와 실제적인 길이의 비율이다.

2) Mestre의 반대의 조건은 독립인 경우보다 종속인 경우에 만족된다. 작은 소수에 대해

주어진 Mestre의 반대의 조건이 만족할 확률은 어떻게 되느냐 하는 것이다.

3) 종속 계수의 작은 크기는 Xedni 알고리즘의 실제적인 의문점을 준다. 적당히 큰 계수를

만족하는 관계의 우선 순위를 알고있다고 하더라도 P 1,…, P r 이 종속할 확률은 무엇인가

하는 것이다.

Page 265: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 265 -

라. Xedni 알고리즘의 실험

위의 의문점을 해결하기 위해서 Xedni 알고리즘을 실치한다. 매개 변수의 크기는 종속인 경

우에 찾는 경우를 늘리기 위해서 택한다.

p=17과 p=67에 대해서 3가지의 실험을 한다

(a) Mestre의 반대의 조건을 포함하지 않는다.

(b) Mestre의 반대의 조건이 두 개의 곱으로 된 M이 p와 같은 길이와 유사하게 포함한다

(c) p를 가지고 일을 진행하는 대신 p'≈Mp를 가지고 계산한다. 물론 p는 Mestre의 반대

의 조건을 포함하지 않는다.

[표 3-3] (a), (b), (c) 에 대한 계산

D min D max D av # dep. D min D max D av

( a )

p=17 M=117 131 73 317 23 91 61

( b )

p=17 M=1541 273 182 3 140 151 144

(c) p=257 M=1 40 255 167 0

(a) p=67 M=1 57 257 148 153 59 170 114

( b )

p=67 M=77289 612 421 0

( c )

p=5167 M=1269 581 394 0

여섯 개의 수열 중에서 100000번의 실행을 해서 종속을 얻는 경우는 3개의 수열인 경우이

다. 실험 (a) 에서는 p=17 과 p=67이고 실험 (b) p=17인 경우이다.

Page 266: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 266 -

마. 결론

Xedni calculus는 타원 곡선 암호에 쓰이는 정도의 소수 p에 대해서는 실용적이지 않다.

1) 정규 logarithmic 높음의 기본적인 성질은 상승된 점들에 대한 관계 안에서 계수는 절대

상수에 의해서 유계하다. 이것은 대략적인 실행 시간은 적어도 Ο(p)가 됨을 말해준다.

Index calculus 와 마찬가지로 Xedni calculus는 거의 같은 이유로 실패한다.

2) 점들 사이에 종속이 되는 상승이 있다면 그러한 상승을 찾는 것은 판별식이 커지면 찾을

확률이 감소한다.

3) 실험에 의한 자료는 종속이 되는 계수들의 크기는 실제적인 상황에서 계산하기에는 너무

크다.

4) Mestre의 반대 조건은 종속성을 증가시키지만 기본적으로 판별식을 증가시키게 한다.

3. 연구결과

가. 유한체 표현과 연산

1) 합성체의 하드웨어 구현

유한체 GF( q m)의 원소 x, y를 정규기저 A = a, a q, a q2

,…, a qm-1

사용하여 나타내면 다

음과 같다.

Page 267: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 267 -

x를 q 승하면 a qn

=a을 이용하여

를 구할 수 있다. 즉, x = ( x 0, x 1,…, x m-1)로 표현하면 x를 q승하는 것은 x를 오른쪽으로

한번 쉬프팅하는 것과 같다는 것이다. 즉 q=2인 경우는 제곱은 오른쪽으로 1번 쉬프팅하는

것과 같다. 그리고 xy 곱의 경우

이다. 그리고 a qm

=a이고 x q은 오른쪽으로 한번 쉬프팅이다. 그러므로

이므로

이다. 따라서 l ij=l(m-1)ij

라 하면

여기서 x=( x 0, x 1,…, x m-1),y=( y 0, y 1,…, y m-1),M=( l ij)이고 x(k), y

(k)는 각각 x, y를

오른쪽으로 k번 쉬프팅한 것이다. 이때 M=( l ij)를 GF(q)위에서 GF( q m)에 대한 A의 곱의

Page 268: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 268 -

행렬이라 한다. M은 대칭행렬이고 q = 2일 경우 l ij는 0 또는 l이다. A를 GF(q)위에서

GF( q m)의 정규기저라 할 때 A의 곱의 행렬 M의 요소중 0이 아닌 것의 개수를 CN이라

하면 CN ≥ 2m-1이다. A가 GF( q m)의 정규기저이고 CN이 2m-1일 때 A를 최적 정규

기저(optimal norma1 basis)라 한다. (m, n) = 1이고 B=(a, a q,…, a qm-1)이 GF(q)위에서

GF( q m)의 정규기저이면 B는 GF( q n)위에서 GF( q nm) 의 Modified 정규기저이다.

a,b∈GF( q nm)을 B를 사용하여 표현하면 다음과 같다.

Page 269: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 269 -

그러면 위에서와 같이 c=( c 0, c 1,…, c m-1)를 a와 b의 곱이라 하면

Page 270: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 270 -

여기서 M을 GF( q n)위에서 GF( q nm)에 대한 B의 Modified 곱의 행렬이라 한다.

B=(β, β q,…, β q m-1)가 GF(q)위에서 GF( q m)의 정규기저이고 (m, n) = 1이면 GF(q)위에

서 GF( q m)에 대한 B의 곱의 행렬 M 과 GF( q n)위에서 GF( q nm)에 대한 B의 Modified

곱의 행렬 L은 일치한다.

따름정리 3.2.1. B를 GF( q n) 위에서 GF( q nm)의 Modified 정규기저이면 곱의 행렬 M의

요소 중 0이 아닌 것의 개수 2m-1보다 크거나 같다.

정의 3.2.2. B=(β, β q,…, β q m-1)가 GF( q n)위에서 GF( q nm)의 Modified 정규기저이고

Modified 곱의 행렬의 0아닌 요소의 개수가 2m-1일 때 Modified 최적 정규기저라 한다.

GF(2)위에서 GF( 2 m)의 최적 정규기저는 구성 방법에 따라 Ⅰ타입과 Ⅱ타입으로 구분되고

모든 m에 대하여 최적 정규기저가 존재하는 것은 아니고 m이 홀수이면 II타입의 최적 정규

기저 이다.

정리 3.2.3. (m, n) = 1 이고 B=(β, β q,…, β qm-1

)이 GF(q)위에서 GF( q m)의 최적 정규기

저이면 GF( q n)위에서 GF( q nm)의 Modified 최적 정규기저이다.

따름정리 3.2.4. (m, n) = 1 이고 B가 GF(2)위에서 GF( 2 m)에 관한 최적 정규기저이면 B

는 GF( 2 n)위에서 GF( 2 nm)의 modified 최적 정규기저이고 GF( 2 m)위에서 GF( 2 nm)에

관한 B의 곱의 행렬 L의 요소는 0 또는 1이다.

최적 정규기저를 이용한 유한체의 곱셈기는 상당히 효율적이다. 특히 I 타입의 경우는 가장

효과적이다. 그러나 이것의 단점은 유한체의 개수가 풍부하지 않다는 것이다. 여기서는 위

의 성질과 기존의 최적 정규기저 I, II을 혼합한 곱셈기를 구성하는 방법을 제안한다. 구체

적인 것은 다음과 같다.

Page 271: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 271 -

◦ I 형태의 합성체

A = {a, a q, a q2

,…, a qm-1

}를 GF(2)위에서 GF( 2 m)에 대한 I 타입의 최적 정규기저

B=(β, β r,…, β r m-1)를 위에서 GF( 2 n)에 대한 II 타입의 최적 정규기저 하면 A는 GF( 2 n)

위에서 GF( 2 nm)최적 정규기저이다. 그러므로 a, b ∈ GF( 2 nm)를 다음과 같이 표현할 수

있다.

이 같은 방법으로 곱셈기를 구현하면 Space 복잡도는 n2m2 AND gates,

n(2m 2n-m 2-1) XOR gates이고 Delay 복잡도는

DA=(2+⌈ log 2n⌉+⌈ log 2(m-1)⌉)DX이다. 한편,

이므로 제곱은 Wiring 이다.

◦ II 형태의 합성체

A = {a, a q, a q 2

,…, aqm-1}는 GF(2)위에서 GF( 2 m)에 대한 II 타입의 최적 정규기저

B=(β, β r,…, β r m-1)는 GF(2)위에서 GF( 2 n)에 대한 I. 타입의 최적 정규기저이면 A는

GF( 2 n)위에서 최적 정규기저이다. 이 경우의 곱셈기의 Space 복잡도는 n2m2 AND

gates, m2 ( n 2+2n-1)+2mn XOR gates이고 Delay 복잡도는

DA+(2+⌈ log 2 (n-1)⌉+⌈ log 2m⌉)DX

Page 272: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 272 -

이 방법으로는 I타입의 경우와 같이 효율적이지는 못하나 많은 유한체를 구성할 수 있다는

것과 확정성을 갖는 장점이 있다. 정확한 복잡도의 비교는 비교표에 있다.

[표3-4] 복합체와 기존의 체와의 하드웨어 복잡도 비교표

Page 273: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 273 -

2) Non-Conventiona 유한체 기저

정의 3.2.5 GF( 2 n)의 부분집합 B={a, a 2, a 3…, a n}이 GF(2)위에서 일차독립일 때 B를

GF(2)위에서 GF( 2 n)의 anomalous 기저라 한다.

f가 GF(2)의에서 n차의 모닉(monic)인 기약다항식이고 f(a)=0이면 {a, a 2, a 3,…, a n}는

GF(2)위에서 일차독립이다. 이것은 다항식 기저 {1,a,…, a n-1}와 다른 집합이고 f가

a11-one-polynomial(AOP)인 경우는 집합적으로 최적 정규기저 {a, a 2, a 22

,…, a 2n-1

}와

같으나 위치가 다르므로 서로 다른 기저이다. f가 AOP인 경우 anomalous 기저는 하드웨어

와 소프트웨어 구현에 모두 효과적임을 보일 것이다. AOP가 기약인 n 은 162, 172, 178,

180, 196 등이다. α가 n차의 기약인 AOP의 근이고 B={a, a 2, a 3,…, a n}를 GF(2)위에서

GF( 2 n)의 anomalous 기저라 하자. GF( 2 n)의 원소 a 는 다음과 같이 표현된다.

GF( 2 n)의 원소의 곱은 두 다항식의 곱과 an+1=1을 이용한 reduction의 과정으로 계산한

다. AOP가 기약이면 n은 짝수이므로 n=2m라 하면 제곱은 다음과 같다.

a를 벡터형태 ( a 0, a 1,…, a 9)로 표현할 경우 n=10 일 때 a의 제곱은

( a 5, a 0, a 6, a 1, a 7, a 2, a 8, a 3, a 9, a 4)이다. Almost Inverse 알고리즘은 다항식 기저로 표

현한 유한체 원소의 역원을 구하는 가장 개선된 알고리즘으로 알려져 있다.

Page 274: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 274 -

이 알고리즘을 anomalous 기저의 경우에도 쉽게 적용할 수 있다. GF( 2 n)≅GF(2)[x]/(f)

로 차수가 n보다 작은 0이 아닌 다항식 A(x)의 역원 C(x)는 다음과 같이 표현된다.

Almost Inverse 알고리즘은

를 만족하는 B(x)와 k를 구하여 A(x)의 역원을 구하는 알고리즘이다.

또한 GF( 2 n)의 0이 아닌 원소 A(x)를 anomalous 기저 {x, x 2,…, x n}로 표현하면 A(x)

의 차수는 n보다 적거나 같고 상수항은 존재하지 않는다. 즉

A(x)= xk 0⋅A 1 (x), k 0〉0,A 1 (x)의 상수항은 1이다. 따라서 Almost Inverse 알고리즘을

이용하여

를 만족하는 B 1 (x), k 1을 구한다. 그러면 A(x)의 역원은 xk 0+ k 1로 B 1 (x)를 나눈 다음

상수항을 소거하여 구할 수 있다. 다음 표는 GF( 2 180)에서 anomalous 기저를 사용하여 펜

티엄 120에서 C-언어로 구현한 결과와 Asiacrypt' 96에서 Win등이 GF( 2 177)에서

Trinomial과 다항식 기저를 이용하여 구현한 결과의 비교표이다. 이 같은 기저를 사용할 경

우 하드웨어적으로도 매우 효과적이며 소프트웨어와 하드웨어 동시 구현 시스템에 활용할

경우 기저 변환 없이 사용할 수 있는 장점이 있다.

Page 275: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 275 -

[표 3-5] 제안된 기저의 소프트웨어 연산 비교표 ( 단위:μsec)

AOP를 이용한

anomalous 기저 GF( 2 180)

Trinomial을 이용한 다항식

기저 GF( 2 177)

곱셈제곱역원

51.51.5

161.4

71.82.7225

3) 표수가 큰 유한체의 연산과 그 응용

Baily가 Crypto'99에서 사용한 pseudo-Mersene prime 과 A11 one Polynomia1(AOP)을

이용한 anomalus 기저를 사용한 유한체의 연산은 Baily의 binomial x n-2의 경우를 제외

하면 더 효과적인 연산이 가능하고 또한 x n-2가 기약인 prime field가 거의 존재하지 않

는 문제가 있다. 그러나 기약인 AOP는 아주 많이 존재함으로 원하는 유한체를 쉽게 구성할

수 있고 또한 유한체 원소의 멱승이 효과적으로 이루어지는 장점을 이용한 DSA scheme을

제안하였는 바 이 Scheme는 기존의 DSA 보다 더 효율적으로 이루어지고 구성하기도 쉬운

장점이 있다. 이 연산의 복잡도 비교표는 다음과 같다. 여기서 OEF with x n-w는

F p [x]/( xn-w)로 구성한 체이고 EFn (m,c)는 Fp[x]/( x

n+x

n-1+…+x+1)(p=2m-c)로

구성된 유한체를 나타낸다.

Page 276: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 276 -

[표 3-6] 표수가 홀수인 유한체 연산 구현 복잡도 비교표

OEF with xn-w[12] EFn(m,c)

곱셈

GF(p)에서 곱 n2 n2

GF(p)에서 덧셈 n2-n n2-1

GF(p)에서 w곱 n-1 no

제곱

GF(p)에서 곱 n(n+1)2

n(n+1)2

GF(p)에서 덧셈 * (n-1)(n+2)2

GF(p)에서 w곱 n-1 no

GF(p)에서 2배 2n-3 n+1

* n이 짝수면 n(3n-4)4

, 홀수면 (3n+1)(n-1)4

DSA알고리즘에 적용하기 위하여 EFn (m,c)에서 멱승 연산을 살펴보면 다음과 같다. 양의

정수 t를 p 진법으로 ( t k, t k-1,…, t 1, t 0)와 같이 표현 된다고 하자. 그러면 여기서

a=∑n-1

i=0a i a

i+1 ∈ EFn(m,c)일 경우

여기서 ∅k(i+1)=(i+1) pk(mod n+1)로 z *n+2의 전단사 함수이므로 실질적으로 a

p k는

EFn (m,c)에서 좌표의 위치는 바꾸는 연산만을 필요로 한다. 결과적으로 DSA 알고리즘과

의 계산 복잡도를 계산하기 위하여 먼저 소수 q≈ ( 2 m)n=|EFn (m,c)|라 하자. 그리고 q 1

은 960 비트 소수이고 q 2는 1024 비트 소수라 하자. Z q 1에서는 160비트 정도 수 32비

트 워드 컴퓨터에서 멱승하고 Z q 2에서는 256 비트 정도 수 64비트 원드 컴퓨터에서 멱승

한다고 하자. 이 멱승은 4-ary 방법을 이용할 경우 EFn(m,c)에서의 멱승과의 복잡도 비

교는 다음과 같다.

Page 277: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 277 -

[표 3-7] DSA 구현 복잡도 비교표

32비트 워드 시스템 64비트 워드 시스템

EFn (32,c) Z q 1 EFn (64,c) Z q 2

곱셈 GF( 2 32-c)에서

n2번 곱셈

32비트 정수의

n 2번 곱셈[82] GF( 2 64-c)에서

n2번 곱셈

64비트 정수의

n 2번 곱셈[82]

멱승의 평균

31번의 제곱46번의 곱셈

157번의 제곱37.5번의 곱셈

63번의 제곱70번의 곱셈

252번의 제곱59번의 곱셈

나쁜 경우

31번의 제곱61번의 곱셈

157번의 제곱39번의 곱셈

63번의 제곱77번의 곱셈

252번의 제곱62번의 곱셈

이 표에서 q가 소수인 경우 Z q에서 제곱이 곱의 반정도의 연산이 필요하므로 실제로

EFn (m,c)에서의 연산이 더욱 빠른 것을 알 수 있다. 또한 아주 풍부하게 EFn(m,c)에서

DSA Scheme을 구성할 수 있다. 즉 DSA 구성 과정과 비교한 표는 아래와 같다.

Page 278: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 278 -

[표 3-8] DSA 구성 비교표

DSA Our Scheme

1. 소수 을 선택 1. EF16(64,c), 를 선택(또는

EF30(32,C), )

2. │ 이고 ≈인 소수 p 선택 2. q = (또는 +---++1)소수인지 확인 아니면 1을 다시 계산

3. <g> = Z*p를 구하고 a = 를 계

3. EF16(64,c)* = <g>(또는 EF30(32,c)* =

<g>)를 선택하고 a=g (p16-1)/q(또는

a=g (p30-1)/q)를 계산

4. 임의의 ≈ , 1<a<q인 수를 선택 4. 임의의 ≈ , 1<a<q인 수를 선택

5. aa를 계산 5. aa를 계산

6. 공개키 : p, q, a, aa

비 키 : a6. 공개키 : 유한체, q, a, aa

비 키 : a

1.1.1.1.1.1.3.

위와 같은 Scheme를 만족하는 유한체 E F 16 (64,c), 0〈c〈 232인 c 가 약 200만개 정도

존재한다. 그러므로 우리는 이와 같은 Scheme을 쉽게 구현할 수 있다.

나. 고속 상수곱

Muller는 GF( q k)(q=2 n)위에서 non super singular curve

에서 E의 Frobenius Endomorphism ∅를 이용하여 정수 m을 Z[∅]의 원소로 보고

m=∑k

j=0mj⋅∅

j,-q/2 〈mi ≤ q/2와 같이 전개하여 m⋅P=( ∑k

j=0mj⋅∅

j)⋅P를 계산하는 방

법을 제시하였다. 이 방법은 ∅⋅P는 유한체 상에서 좌표의 쉬프팅 또는 제곱 연산으로 이

루어지므로 거의 연산이 필요치 않다는 장점을 이용한 것으로 기존의 Binary 방법을 50%

정도 개선한 효과가 있다. 본 연구를 통해서 Binary 방법에 NAF를 적용하였듯이 Muller

방법에 NAF를 적용하는 알고리즘을 개발하였다. 먼저 NAF의 알고리즘을 살펴보면 다음과

같다.

Page 279: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 279 -

[NAF 알고리즘]

입력 : 양의 정수 n

출력 : NAF(n)

1. Set c = n

2. Set S = 〈 〉

3. While c 〉0

4. If c odd

5. then

6. set u = 2 - (c mod 4)

7. set c = c - u

8. e1se

9. set u = 0

10. Prepend u to S

11. set c = c/2

12. EndWhile

13. Output S

이러한 알고리즘을 응용하여 정수 m을 Z[∅]의 원소로 보고

m=∑l

j=0mj⋅∅

j,mj ∈ {- k 0 q2

4+1,…,- k 0

q 2

4 }, k 0≥2 이고 mj mj+1=0를 만족하도록 전

개하는 알고리즘을 개발하였다. 이 알고리즘을 정리하면 다음과 같다.

Page 280: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 280 -

[알고리즘]

입력 : 양의 정수

출력 : m=∑l

j=0mj⋅∅

j

[예] m = 567, q = 4, k 0 = 4, t = 2 이면 567 = -9⋅∅6-9와 같이 표현된다. 그러므

로 타원곡선상의 점 P = (x, y)에 대한 스칼라 곱은 567⋅P = -9⋅( x 4096, y 4096)-9⋅(x,y)

로 계산할 수 있다. window 방법을 쓸 경우 Muller의 방법과의 속도와 메모리(선 계산량)

의 비교표는 다음과 같다.

Page 281: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 281 -

[표 3-9] Muller의 window 방법 속도 비교표

s q=4 q=8 q =16

1 100(2) 78(4) 63(8)

2 62(12) 44(40) 33(144)

3 43(62) 30(364) 24(2456)

4 33(312) 23(3280) 17(41760)

[표 3-10] 제안한 알고리즘의 속도 비교표

k⋅ q2/2 q = 4 q = 8 q = 16

k = 2 71(8) 46(32) 31(128)

k = 4 60(16) 41(64) 28(256)

k = 8 49(32) 35(128) 25(512)

k = 16 43(64) 28(256) 21(1024)

k = 32 35(128) 25(512) 18(2048)

*Muller의 방법, ( ) : 선 계산량

다. Non-conventional 기저에 관한 구체적인 논리개발

B={a, a 2,…, a m}을 GF(2)위에서 기약인 m차 AOP에 의한 유한체 GF( 2 m)의 기저라고

하자. 그러면, 이 기저는 아래와 같은 성질을 만족한다. am+1=1. 또한, 이 기저는 정규기저

와 같은 집합이며, m은 항상 짝수이다.

Page 282: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 282 -

1) Trace를 계산하는 알고리즘.

예를 들어 a=( a 0, a 1, a 2, a 3)가 유한체 GF( 2 4)의 원소라고 하면,

a2=( a 2, a 0, a 3, a 1), a

2 2=( a 3, a 2, a 1, a 0), a2 3=( a 1, a 3, a 0, a 2)으로 계산이 된다. 그런

데, Tr(a)=a+a 2+a 22

+a 23

이므로 결과적으로 Tr(a)= a 0⊕a 1⊕a 2⊕a 3이 된다(⊕은

Bitwise Xor).

2) GF( 2 m)위에서 이차 방정식 z 2+z=β을 푸는 알고리즘.

m=2n, z=∑m-1

i=0z i a

i+1그리고 β=∑m-1

i=0β i a

i+1라고 놓자.

그러면, 식 z 2+z=β은 다음과 같은 관계식으로 나타내어진다.

예를 들어, m=4인 경우에,

z 2⊕z 0= β 0, z 0⊕z 1= β 1, z 3⊕a 1= β 2, a 1⊕a 3= β 3로

관계식을 얻을 수 있다. β i는 모두 주어진 값이므로 z 0=0으로 시작해서 순차적으로 모든

z i들을 쉽게 구할 수 있다. (주의. z'가 z 2+z=β의 근이면, z'+1도 근임.)

3) 기저 변환 알고리즘

가) 다항식 기저 -> Non-conventional 기저.

Page 283: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 283 -

나) Non-conventional 기저 -> 다항식기저.

다) 정규 기저 <-> Non-conventional 기저.

(주의 : 다항식 기저와 Non-conventional 기저사이의 변환에는 기저 변환 행렬이 불필요.)

라) Quadratic Residue를 계산하는 알고리즘.

a=( a 0, a 1, a 2, a 3)라고 하면, a=( a 1, a 3, a 0, a 2)이다.

즉 제곱에서의 permutation을 역으로 쉽게 생각할 수 있다.

다음으로, IEEE P1361 표준을 기반으로 타원곡선 암호시스템을 소프트웨어로 구현하여 프

로그래밍했다. Non-conventional 기저는 다항식기저와 정규기저의 각각의 장점을 모두 지

니면서도 그들이 갖는 단점은 배제되었다고 할 수 있다. 그러므로 소프트웨어 구현시 매우

효과적임을 알 수 있었다.

4. 프로그램 명세

본 프로그램은 c와 c++를 사용해서 coding되었으며, Visual c++ 5.0으로 compile했음.

또한, IEEE P1363에서 제시된 표준안을 기반으로 구현했다.

Page 284: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 284 -

가. 유한체 연산과 관련 함수

1) 유한체 (GF( 2 m)) - class Element

∘초기화

#include “fieldaop.h"

Element : : INITIALIZER(m, 0);

// 유한체에 와 관련된 모든 함수나 연산자는 이 과정 뒤에서 위치해야만 한다.

∘선언

Element : : INITIALIZER(162, 0);

ㆍㆍㆍ

Element f;

Element g(Vector(E1ement: :DEGREE( ), 0x4000000, 0x1000A005,0,0,0xE));

Element h(g);

Element zero('0'), identity('1');

f=x^154+x^124+x^111+x^109+x^98+x^96+x^3+x^2+x^1;

// f, g, h는 같은 값을 갖는다.

Page 285: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 285 -

∘ Static Functions

Element: :DEGREE( ); // m을 전달.

∘연산자

+(덧셈), -(뺄셈), *(곱셈), ~(역원), ^(n승).

∘ Member Functions

f.Trace( ); // f의 trace값를 전달.

f.out( i ); // f의 x i의 계수를 전달.

f.in(i, j); // f의 xi의 계수를 j로 입력.

∘일반 함수

square(f); // f 2을 전달.

square(f, i); // f 2i

을 전달.

Solving_Quadratic_Equations_over_GF2m(f, g);

// 이차 방정식 z 2+z=f의 근이 존재하면 그 근을 g에 입력.

Finding_a_Quadratic_Residue_of_an_element_in_GF2m(f, g); // f의 quadratic residue를

g에 입력.

2) 유한체위의 다항식환 (GF( 2 n)[X]) - class Poly

∘초기화

#include “polynomial_ring_over_finite_fields.h"

E1ement: :INITIALIZER(n, 0);

Page 286: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 286 -

∘선언

Poly F,G(5), H(G);

F. reAssign(5);

// F, G, H는 5차 다항식이다.

∘연산자

+(덧셈), -(뺄셈), *(상수배), *(곱셈), /(몫), %(나머지).

∘ Member Functions

F. DEGREE( ); // F의 차수를 전달.

F. output( i ); // F의 x i의 계수를 전달.

F. input(i, f); // F의 x i의 계수를 유한체 원소 f로 바꿈.

F. reAssign( i ); // F를 I차의 다항식으로 다시 생성.

∘ 일반 함수

GCD(F,G) - 두 다항식 F와 G의 gcd를 전달.

Finding_a_Root_in_GF2m_of_an_Irreducible_Binary_Polynomial(F); // 방정식 F=0의 근을

전달. 참고로 F는 GF(2)위에서 기약이어야 한다.

Embedding_in_an_Extension_Field(f, I, j, 0) - subfield GF( 2 j)의 원소 i에 대응하는

extension field GF( 2 n)의 원소를 f에 입력.

Page 287: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 287 -

나. 타원곡선 연산과 관련 함수 (E(GF( 2 n)), y 2+xy= x 3+ax 2+b)

- class Point, class Curve

Element: : INITIALIZER(n,0);

Cruve cv; // cv.x와 cv.y는 위에 주어진 Weistrass 방정식의 각각 a와 b를 의미 한다.

Point P,Q,R; //P,x와 P,y는 각각 정수점 P의 x와 y좌표를 의미한다.

1) 타원곡선

Assign(Q, P); // Q=P

Double(Q, P, cv); // Q=2P

Add(R, P, Q, cv); // R=P+Q

Inverse(Q, P, cv); // Q=-P

Scalar_Mul(P, cv, l, k); // kP를 전달.

2) Wei1정리에 의한 타원곡선의 위수를 구하기 위한 함수

Finding_a_Point_on_an_Elliptic_Curve(cv);

// 주어진 Weistrass 방정식을 만족시키는 유리수점을 전달.

Finding_a_Point_of_Large_Prime_Order(u, k, cv);

// 커다란 소수의 위수를 갖는 유리점을 전달. 유리점의 위수는 u이다.

Curve_Orders_over_small_Binary-Fields(cv, d);

// GF( 2 d)위에 정의된 타원곡선의 위수를 구한다. 참고로 d는 n을 나누고

32보다 작거나 같아야한다.

Curve_Orders_over_Extension_Fields(d, e, w);

// GF( 2 d)위에 정의된 타원곡선의 위수 w가 주어졌을 때, GF( 2 d*e) 즉, GF( 2 n)위에 정

의된 타원곡선의 위수를 전달.

Page 288: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 288 -

3) 타원곡선의 위수.

Curve_Orders_via_Subfields(cv, u, k, a, b, n, d, rMin, rMax, lMax, 0 ,0);

// 커다란 소수u를 포함하는 위수k*u를 갖는 다원곡선 cv를 계산한다.

rMin과 rMax는 u의 제한범위를 의미한다. a와 b는 GF( 2 d)위에 정의된 Weistrass 방정식

의 계수이다.

4) Modular다항식

Modular 다항식의 계산은 Hard Problem으로 알려져 있다. 다만, 작은 소수 아래로

reduction된 modular 다항식의 계산은 다소 쉬우며, 1975년 O. Herrman의 논문에 소개되

어 있다.

다. Isogeny

∘Computing_Isogenies_in_GF2m(...) - isogenious 한 두 타원곡선간의 정해진 차수의

isogeny를 구함. (유의. isogenious인 두 타원곡선을 선택하기 위해선 Modular 다항식이

필요하다)

라. 타원곡선의 위수

개선된 Schoof 알고리즘(SEA)를 사용하기 위해선 Modular 다항식을 반드시 필요로 함.

Page 289: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 289 -

5. 향후계획

타원곡선 암호체계(ECC)는 공개키와 비 키를 생성하는데 타원곡선을 사용하는 암호법으로

상당한 관심을 유발시켜 왔는데, 그 이유는 현재 사용되고 있는 다른 암호체계와 같은 수준

의 안전성을 제공하면서도 키 크기(key sizes)를 1/6 이하로 할 수 있다는 것이다. RSA에

반해 ECC는 160비트 정도의 키 크기로 같은 수준의 안전성을 보장하기 때문에 전자상거래

에 필요한 스마트 카드(smart card)나 전자 화폐 등에 더욱 효과적이다. 또한 전원의 양이

한정된 이동통신기기의 암호화에 적용될 수 있다. 위와 같은 이유로 해서 앞으로 RSA의 역

할을 ECC가 대신할 것으로 여겨진다.

타원곡선 암호의 구현속도는 타원곡선 연산의 기반이 되는 유한체 연산과 타원곡선의 점에

대한 상수곱의 연산에 좌우된다. 그 중에 유한체의 연산은 기본적인 연산으로 타원곡선의

장점으로 부각되고 있는 제한된 환경(스마트 카드, VLSI chip)에서의 구현(키 크기가 매우

작다는 점에 기인한)을 위해서도 반드시 해결해야 할 문제이다. 새로운 기저를 이용한 유한

체의 연산은 기존의 특허문제를 해결할 수 있고 또한 이 기저는 소프트웨어와 하드웨어 구

현에 모두 효율적임으로 하드웨어, 소프트웨어 구현의 두 암호시스템사이에 통신시 발생하

는 기저변환의 문제를 완전히 해결할 수 있는 장점이 있다. 또한 표수가 워드 크기인 경우

의 유한체 연산의 효율성은 S/W로 타원곡선 암호시스템 뿐만 아니라 ElGamal 암호법에도

쓸 수 있고 기타 관련된 응용분야에 다양하게 쓰일 수 있다. 또한, 타원곡선을 구하는 최근

의 방법들을 사용하기 위해서는 보다 많은 연구가 요구된다. 특히, j(τ)을 포함하는

modular equation에 대한 연구가 절실하다. 결론적으로 isogeny를 이용한 개선된 Schoof

알고리즘의 구현은 또 다른 하나의 중요한 연구과제로 남는다.

Page 290: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 290 -

제 3 절 배낭유형의 공개키 암호알고리즘 개발

1. 개요

공개키 암호 시스템은 키 분배의 문제를 깨끗하게 해결하면서 디지털 서명의 요구도 충족시

킬 수 있다. 물론 공개키 암호시스템도 단점을 가지고 있다. 가장 치명적으로 여겨지는 것

이 바로 수행 속도의 문제이다. 대부분의 공개키 암호화 알고리즘들이 매우 큰 정수를 다루

는 수학적 함수를 이용하여 개발되었기 때문에 그 수행 속도가 사용하기 힘들만큼 느리게

된 것이다. 이는 앞으로의 통신망이 BISDN과 같은 초고속 통신망이 된다는 측면에서 더욱

중요한 문제가 될 수 있다. 이러한 상황에서 RSA이 비해서 암호화 및 복호화 과정에서의

시간 복잡도가 작은 knapsack 공개키 암호 시스템의 중요성이 부각되고 있다.

이 절에서는 공개키 암호 시스템의 한 분야로 1970년대에 처음 제시된 knapsack 유형 공

개키 암호 시스템의 새로운 알고리즘을 제안하고 이에 대한 처리 예를 시험할 수 있도록 프

로그램을 제시한다.

2. 제안 알고리즘

여기에서는 초증가 수열(super increasing sequence)에 관한 몇 가지 성질을 살펴보고, 이

를 응용하여, 변형된 부분합 문제(subset sum problem)에 혹은 배낭문제(knapsack

problem)에 기반한 새로운 공개키 암호 시스템을 소개하고자 한다.

Page 291: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 291 -

가. 기호

여기에서는 먼저 앞으로 사용될 수학적인 기호들을 소개한다.

◦ {0,1} n은 길이가 n인 모든 이진 수열의 집합을 의미한다.

◦ 양의 정수 M에 대하여, ring (환) Z M는 {0,1,…,M-1}을 의미한다.

◦ 양의 정수 M, n에 대하여, module (가군) Z nM는 { ( x 1,…, x n)∣ x i∈ Z M}을 의미한다.

◦ 세 개의 양의 정수 x, y, M 에 대하여, x≡y( modM)는 x와 y가 Z M 안에서 동치임을

의미한다.

◦ 두 개의 벡터 x=( x 1,…, x n)와 y=( y 1,…, y n)가 x≡y modM라 함은, 각각의

i, 1≤i≤n, 에 대해서 x i≡ y i (modM)임을 의미한다.

나. 기반문제

새로운 암호 체계는 다음과 같은 부분합 문제와 유사한 풀기 어려운 문제에 기반한다.

[Hard Problem] 먼저 양의 정수 M을 선택한 후, Z M상의 크기가 l×n인 행렬 T와 길이

가 n인 벡터 x를 선택한다. 그리고 나서, y≡Tx (modM)를 계산한다. M, n, y가 주어졌

을 때, x를 찾는다.

이 문제는 Phong Nguyen과 Jacques Stern이 제시한 감추어진 배낭 문제 (hidden subset

sum problem)를 변형한 것으로서, 감추어진 부분합 문제란, "양의 정수 M, n, m(M〉n)과

Z mM에서 벡터 b=( b 1,…, b m)이 주어졌을 때, b T≡X a T (modM)을 만족하는 벡터 a를

구하는 문제"이다. 이 새로운 문제는 감추어진 부분합 문제에서의 행렬 X와 벡터 →a

의 역

할을 바꾼 것으로서, M, n이 클 때, 단순히 y≡Tx (modM)를 만족하는 x를 찾는 것이

아니고, 이미 결정된 x를 찾는 문제이므로 매우 어렵고, 이 문제를 푸는 알고리즘 또한 없

다. 앞으로 소개하고자 하는 암호 체계에서 y는 암호문에 해당되고, x는 평서문에 해당되

며, T는 암호화 함수에 해당된다.

Page 292: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 292 -

다. 초증가 수열에 관한 성질

R. C. Merk1e과 M. Hellman이 제시한 공개키 암호 체계는 부분합 문제에 기반한 것으로

서 부분합 문제의 선형성에 의해 암호화와 복호화 속도가 매우 빠른 장점을 지녔다.

Merk1e-Hellman 암호 체계는 어려운 부분합 문제를 쉽게 풀기 위해 "초증가 수열" 이라는

쉬운 도구를 이용하였다. 초증가 수열 혹은 초증가 벡터란, 양의 정수로 된 수열

( s 1,…, s n)로서 각각의 i, i≥2,에 대해 ∑i-1

j=1s j〈 s j를 만족해야 한다. 초증가 수열에 의한

부분합 문제는 다음과 같은 알고리즘에 의해 쉽게 풀린다.

[알고리즘]

초증가 수열 ( s 1,…, s n)과 정수 b (=∑n

i=1x i s i)가 주어져 있을 때, 이진 수열 ( x 1,…, x n)

을 찾는 알고리즘은 다음과 같다.

A. i ← n.

B. i ≥ 1인 동안 아래 과정을 반복한다.

B.1. b≥ s i 이면, x i ← 1이고 b ← b- s i 로 한다.

B.2. i ← i-1로 한다.

C. ( x 1,…, x n)를 출력하다.

Page 293: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 293 -

이 초증가 수열은 부분합 문제를 풀기 위한 가장 대표적인 도구로서 Merkle-Hellman 암호

체계 이후로도 배낭형 공개키 암호 체계를 만들기 위해 다른 암호학자들에 의해 많이 이용

되었다. 그러나, Merkle-Hellman 암호 체계가 A. Shamir 등에 의해 해독된 것을 시작으로

대부분의 배낭형 공개키 암호 체계들이 깨어졌다. 그러다, J. C. Lagarias와 A. M. Odlyzko

가 “Solving low-density subset sum problems”라는 그들의 논문에서 내부 구조와는 상

관없는 저 도 암호체계를 해독하는 방법을 제시한 뒤, 초증가 수열은 배낭형 공개키 암호

체계를 구축하는데 더 이상 사용되지 않게 되었다. 그 이유는 다음과 같다. 고전적인 부분

합 문제(classical subset sum problem)란, 양의 정 수 M과 ZM={0,1,…,M-1}의 원소

b, a1,…, an이 주어졌을 때, b ≡ ∑J∈Saj (mod M)가 성립하는 {1,…,n}의 부분 집합 S를 구

하는 문제이다. 이 문제에서 도 d는

d=n

max1≤i≤n{ai}

로 정해지는데, 이 도를 기준으로 부분합 문제는 고 도 문제인지 저 도 문제인지 두 가

지로 분류된다. 그런데, 초증가 수열을 사용하여 이 문제에 근거하여 암호 체계를 만들게

되면, 초증가 수열의 성질 때문에 도가 낮아진다.

여기에서는 가군 ZnM에서 초증가 벡터의 수를 계산하고, 이를 토대로 기존의 암호 체계와는

다른 새로운 암호 체계를 제시하고자 한다. 초증가 수열에 관한 다음의 두 가지 정리는 나

중에 나오는 새로운 암호 체계의 안전성 분석 시 중요한 역할을 한다. 우선, 가군 Z nM 에서

합이 M보다 작은 초증가 벡터의 개수의 상한 값을 알아보자. 앞으로 나오는 정리들에 사용

될 집합 Sn, Vn, Hn, Tn, Tn들을 다음과 같이 정의하자.

Sn={ (x1,…,xn)∈ZnM | 모든 i≥2 에 대해 ∑i-1j=1xj<xi 이고 ∑n

j=1xj<M },

Vn=[O,M]n,

Hn={(x1,…,xn)∈Rn | x1+…+xn=M },

Tn={(x1,…,xn)∈Vn | 모든 i≥2 에 대해 ∑i-1j=1xj≤xi 이고. ∑n

j=1xj≤M }

Tn=Tn∩Hn

Page 294: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 294 -

정리 3.3.1. Tn의 체적과 Tn의 체적은 다음과 같은 관계를 가진다.

Vol(Tn)=1n․Mn․Vol( Tn).

[증명]

Tn= {εx | 0≤ε≤1 and x∈Tn } 이므로, Tn=0*Tn이다. 즉, Tn은 원점인 0을 꼭지점으로

하고 Tn을 밑면으로 하는 고깔이다. Rn에서 초평면 Tn의 방정식은 x1+…xn-M=0이므

로, 0 과 초평면 Tn 사이의 거리 d는 d=M

1+…+1=Mn

이다. 따라서,

Vol(Tn) =1n․d․Vol( Tn)

=1n․Mn․Vol( Tn)

이다. ■

정리 3.3.2. 12Tn-1={(

x12,…,

xn-12) | (x1,…,xn-1)∈Tn-1}라 정의할 때, 다음과 같이 정의

되는 사영 함수를 고려해 보자.

π:Rn → Rn-1

(x1,…,xn) ↦ (x1,…,xn-1).

그러면, Tn에 한정된 함수 π , π| Tn은 Tn과 12Tn-1 간의 전단사함수이다.

Page 295: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 295 -

[증명]

(a) π | Tn: Tn→12Tn-1이 잘 정의됨을 보이자.

Tn에서 임의의 벡터 x=(x1,…,xn)를 선택하자. 그러면, π(x)=(x1,…,xn-1) 는 12Tn-1의 원

소이다. 왜냐하면, 만약 π(x)가 12Tn-1의 원소가 아니면, 즉 x1+…+xn-1 >

M2

이면

x1+…+xn-1≤xn이므로 xn >M2

이다. 따라서, x1+…+xn >M가 되어 x가 Tn의 원소라는

사실에 모순이 된다. 그러므로, π | Tn | Tn→12Tn-1는 잘 정의된다.

(b) π | Tn : Tn→12Tn-1이 단사 함수임을 보이자.

x와 다른 y=(y1,…,yn)를 Tn에서 임의로 선택하자. 그러면, x i≠ y i인 i,1≤i≤n, 이 적어

도 하나 존재한다. 만약, 1≤i≤n-1인 모든 i에 대해서 xi=yi이면, 벡터 x와 벡터 y는

Tn이므로 xn=yn이 되어 x≠y라는 사실에 모순이 된다. 따라서, π(x)≠π(y)이 되어 π | Tn

는 단사함수이다.

(c) π | Tn : Tn→12Tn-1이 전사 함수임을 보이자.

12Tn-1에서 임의의 벡터 x=(x1,…,xn-1)를 선택하자. 그러면, 각각의 i, 2≤i≤n-1에 대해

x1+…+xi-1≤xi이고 x1+…+xn-1≤M2

이므로, xn을 xn=M-(x1+…+xn-1) 로 하면,

x1+…+xn=M이 되고 x1+…+xn-1≤xn이 되어 (x1,…,xn-1,xn)은 Tn의 원소가 된다. 그러므

로, π | Tn는 전사함수이다. ■

Page 296: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 296 -

다음은 Tn의 체적과 Tn-1 의 체적 사이의 점화식을 알아보자.

정리 3.3.3. Tn의 체적과 Tn-1의 체적은 다음과 같은 관계를 가진다.

Vol(Tn)=M

n2n-1․Vol(Tn-1).

[증명]

ϑ를 Tn 과 Tn-1 사이의 각이라고 하자. Rn 에서의 초평면 Tn의 방정식은

x1+…xn-M=0이고 Tn-1은 집합 { (x1,…,xn)∈Rn | xn=0}의 부분집합으로 생각할 수 있으

므로 Tn과 Tn-1의 법벡터는 각각 u=(1,1,...,1,-1)과 v=(0,0,...,0,1)이다.

따라서, u․v=|u|| v|cosϑ가 되어, cosϑ=1n

이다.

그러므로,

Vol(Tn)=1cosϑ

․1

2n-1․Vol(Tn-1)

= n

2n-1 ․Vol(Tn-1 )

이고, 정리1 에 의해서,

Vol(Tn)=M

n2n-1 ․Vol(Tn-1)

이다.

이제 Tn의 체적을 구해 보자.

따름정리 3.3.4. Vol(Tn)=Mn

n!2n(n-1)/2

이다.

Page 297: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 297 -

[증명]

Vol(T1)=M이므로, 정리 3을 이용하면, 쉽게 구해진다. ■

다음은 집합 S n의 원소의 개수와 Tn의 체적과의 관계를 알아보자.

정리 3.3.5. |Sn| ≤ Vol( Tn).

[증명]

S n의 임의의 원소 v=(v1,…,vn)에 대하여, 집합 Λv 를 다음과 같이 정의하자.

Λv=(v1-1,v1)×…×(vn-1,vn).

집합 Λv에서 임의로 원소 x=(x1,…,xn)를 선택하자. 그러면 모든 i, 1≤i≤n 에 대하여

vi-1< xi< vi가 되어 다음과 같은 두 가지 성질을 만족한다.

(a) 모든 k, 2≤k≤n, 에 대하여, x1+…+xk-1<v1+…+vk-1<vk이다. 즉,

x1+…+xk-1<vk-1<xk이다.

(b) x1+…+xk<v1+…+vk이므로, x1+…+xk<M 이다.

따라서, 집합 Λv는 Tn의 부분집합이다.

만약, S n의 서로 다른 두 원소 v와 w에 대하여, x = (x1,…,xn)∈Λv∩Λw 이면, 각각의

i, 1≤i≤n에 대해, vi-1 < xi < vi , wi-1 < xi < wi 이고 vi, wi는 정수이므로, vi=wi이다.

따라서, v와 w가 서로 다르다는 사실에 모순이다. 그러므로, Λv∩Λw=∅ 이다.

집합 S n의 서로 각각의 원소 v 에 대해서 Vol(Λv) = 1이므로, |Sn | = ∑v∈SnVol(Λ v)이다.

그리고, 집합 Λv는 Tn의 부분집합이고 서로 다른 원소 v와 w에 대해 Λv∩Λw=∅이므

로 ∑v∈SnVol(Λ v)≤Vol(Tn)이다. 그러므로, |Sn | = ∑

v∈SnVol(Λv) ≤ Vol(Tn)이다. ■

Page 298: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 298 -

이제 집합 S n의 원소의 도의 상한 값을 알아보자.

따름정리 3.3.6. | Sn |

| ZnM|≤

1

n!2 n(n-1)/2

다음은 가군들 사이에서의 사영 함수에 관한 성질을 살펴보자.

정리 3.3.7 dimV=m<n라고 하자. 그러면, 1≤i1 <i2 <…< im≤n으로 규정되는 사영 함수

π : ZnM→Zm M (x1 ,…, xn)↦(xi1,…,xim)는 부분 가군 V에 한정되었을 때, V와 ZmM 사이의 전

단사 함수가 된다.

[증명]

{ v'1,…,v'm }을 부분 가군 V의 기저라고 하자. 그러면 적당한 선형 변화에 의해, 기저

{ v'1,…,v'm }는 다음과 같은 성질을 갖는 가군 V의 새로운 기저 { v 1,…,v m }로 변환된다.

i1,i2,…,im, (1≤i1≤i2<…<im≤n)이 존재해서, 각각의 vk=(vk,1,…,vk,n), (1≤k≤m)에 대하여,

vk,j = {0 if j < ik1 if j=ik0 if j=ik+1,…,im

을 만족한다.

변환 π : ZnM→ ZmM를 π(x1,…,xn) = (xi1,…,xim)로 정의하자.

{ f1,…,fn }을 가군 ZnM의 표준기저라고 하고, { e1,…,em }를 가군 ZmM의 표준기저라고 할

때,

π(fj) = { 0 if j ∉ { i1,…,im}ej if j = ik for some k∈{1,…,m }

Page 299: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 299 -

이다. ZM에서 임의의 두 원소 α, β와 Z nM에서 임의의 두 원소 x=x1f1+…+xnfn와

y=y1f1+…+ynfn를 선택하자.

αx+βy= (αx1+βy1) f1+…+(αxn+βyn) fn=(αx1+βy1,…,αxn+βyn)이므로 다음과 같은 성질

이 성립한다.

( a) π(αx+βy) = (αxi1 +βyi1,…,αxim+βyim)

( b) απ(x)+βπ(y) = (αxi1 +βyi1)e1+…+(αxim+βyim)em

=(αxi1+βyi1,…,αxim+βyim)

따라서, 이 변환 π는 선형 변환이다.

이제, 이 선형 변환 π는 V에 한정되었을 때 단사 함수임을 보이겠다. 즉, V의 서로 다른

두 벡터 x= (x1,…,xn)와 y=(y1,…,yn)에 대하여 π( x)≠π( y)임을 보이면 된다. 이는, π

가 선형변환이므로, ZmM에서 π(z)가 영벡터면 V에서 z도 영벡터임을 보이는 것과 동치이

다. { v1,…, vm}는 V의 기저이므로 가군 V의 모든 원소들은 v1,…, vm의 선형 결합으로

표현되기 때문에, z= z1v1+…+zmvm인 z1,…,zm이 Z M에 존재한다. 각각의 i (1≤i≤m)에

대하여 π(vi) =ei이므로, π( z) = (z1,…,zm)이다. 그러므로, π( z)가 ZmM에서 영벡터이면

z1=z2=…=zm=0이다. 즉, 벡터 z도 부분 가군 V에서 영벡터 이다.

다음은, V에 한정된 선형 변환 π |V :V→ZmM가 전사 함수임을 보이겠다. ZmM 에서 임의

원소 y= (y1,…,ym)을 선택하자. x=y1v1+…+ymvm이라 하면, x는 부분 가군 V의 원소

이고, π( x) = y이다. ■

Page 300: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 300 -

다음은 Z nM 의 임의의 부분 가군 V에서, 합이 M 보다 작은 초증가 벡터의 개수의 상한

값을 구하도록 하자.

정리 3.3.8. V가 Z nM의 m 차원 부분 가군 이라고 하자(m<n). 그러면, 부분 가군 V에서

의 합이 M 보다 작은 초증가 벡터의 개수는 ZmM 에서의 초증가 벡터의 개수 보다 작거나

같다.

[증명]

π는 순서를 보전하므로, V의 합이 M 보다 작은 임의의 초증가 벡터 x= (x1,…xn)에 대

하여 π(x)도 ZmM 상에서 합이 M 보다 작은 초증가 벡터가 된다. 그러므로, V 상에서 합

이 M 보다 작은 초증가 벡터의 개수는 ZmM 상에서 합이 M 보다 작은 초증가 벡터의 개

수 보다 작거나 같다. ■

라. 새로운 암호 체계의 기본 구조

여기에서는 새로운 배낭형 암호체계를 설계하는 기본적인 방법을 기술하겠다. 양의 정수

n, l,k 와 M 를 k < l≤n 가 되고, 환 ZM가 s1+...+sn <M 을 만족하는 초증가 수열

( s1,...,sn )을 적어도 하나는 갖도록 선택한다.

[키생성 과정]

1. a1+…+an<M 을 만족하는 초증가 수열 (a1,...,an)을 임의로 선택한다.

2. Z lM 에서 벡터 x 와 ZM 상에서 크기가 l×n 인 행렬 B 를 xB≡(a1,...,an) ( modM)

가 되도록 선택한다.

3. Z lM 에서 서로 선형 독립이면서, x에 직교하는 벡터들 u1,...,uk 를 선택한다.

4. 공개키 : (B,u1,..., uk)

5. 비 키 : x.

Page 301: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 301 -

[암호화 과정]

길이가 n인 이진 벡터 평서문 m과 공개키 (B,u1,...,uk) 가 주어질 때,

1. Span(u1,...,uk) 에서 임의로 선택된 열벡터들로 이루어진 크기가 l×n 인 행렬 H 를

만든다.

2. 암호문 cT≡(B+H)mT(modM) 를 계산한다.

[복호화 과정]

암호문 c 와 공개키 (B,u1,...,uk), 비 키 x 가 주어질 때,

1. (a1,...,an)≡xB(modM)를 계산한다.

2. y≡ xcT (mod M ) 를 계산한다.

3. 알고리즘 1.을 이용하여 y 로부터 m을 계산한다.

[복호화 과정 증명]

yT≡XcT≡X(B+H)mT≡AmT+XHmT(modM).

행렬 XH의 첫 번째 행벡터가 영벡터이므로, 벡터 y 의 첫 번째 원소, y는

y≡xcT≡a1m1+...+anmn(modM)이다.

이 암호시스템은 사용자가 각자의 암호화키를 생성하여 메시지를 암호화하므로 사용자 입장

에서는 허가 받은 상대방조차 암호화키를 모른다. 또한, 하나의 공개키로부터 다양한 암호

키가 임의로 생성되므로 특정인이 계속해서 메시지를 보낼 때 매번 다르게 다른 암호화키로

암호문을 만들 수 있다. 즉, 한번의 공격 성공이 계속되는 공격 성공을 뜻하지는 않는다.

Page 302: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 302 -

마. 구현 시 참고 사항

키 생성 단계에서, 비 키 x 와 공개키 B 를 다음과 같은 방법으로 구할 수 있다.

1. a1+...+an<M을 만족하는 초증가 수열 (a1,...,an)을 임의로 선택한다.

2. 가군 Z lM에서 역행렬 관계에 있는 크기가 l×l 두 개의 행렬 X와 X'을 임의로 선택한

다.

3. X 의 첫 번째 행벡터를 x라 하자.

4. 가군 Z lM에서 서로 선형 독립이면서, 벡터 x에 직교하는 벡터들 u1,...,uk를 선택한다.

5. 크기가 l×n 행렬 A=[aij] l×n 를, A 의 첫 번째 행벡터를 (a1,...,an) 이라 하고, 나머

지 행벡터들은 가군 ZnM에서 임의로 선택하여 만든다.

6. B≡X'A (modM) 라 정의하자.

7. 공개키 : (B,u1,...,uk)

8. 비 키 : x.

안전한 암호체계를 위해서는 매개변수들이 충분히 커야 한다. 그러나 값이 크면 클수록 효

율성은 낮아지므로 적당한 값을 정해야 하므로, 시스템 매개변수들인 M,n, l,k는 이 암호

체계가 어디에서 응용되느냐에 따라 당시의 컴퓨터 환경을 고려하여 안전하면서 효율적이

되도록 정한다. 구체적으로 살펴보면, brute-force attack에 대하여 안전하도록

(2l-k-n)!2 (2l-k-n)(2l-k-n-1)/2와 Mk 가 충분히 크도록, 예를 들어 2 130 이상이 되도록 정하

고, M는 환 ZM가 길이가 n인 초증가 수열 (a1,...,an)을 포함토록 M의 크기가 2n 보다

크도록 정한다. 왜냐하면, 각각의 i, 2≤i≤n, 에 대하여 ∑i-1

j=1aj<ai와 ∑

n

j=1aj <M를 만족하여야

하므로

M > an+…+a1> 2(an-1+…+a1)> 2(2(an-2+…+a1))

= 22(an-2+…+a1))… … > 2n-1a1

이고, 초증가 수열이 추측하기 어려운 분포를 갖기 위해 M > 22n을 권한다.

Page 303: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 303 -

바. 새로운 암호 체계의 변형들

만약, 암호문 c를 가진 제 3 자가 복호화 오라클(복호화 오라클이란 일종의 마법 상자로서,

제 3자가 비 키를 갖고 있지 않아도 암호문을 이 상자에 입력하면 그에 해당하는 평문을

업을 수 있는 상자이다. 이 때 입력 가능한 암호문의 종류에 따라 복호화 오라클은 두 가지

정도로 분류된다.)에 접근 가능하다면, 그는 Span( u1, ...,uk)에서 임의로 선택한 v에 대

해, c+v를 복호화 오라클에 입력함으로써 알고자 하는 평문 m 을 알 수 있다. 그러므로,

이와 같은 즉각적인 adaptive chosen ciphertext attack을 피하려면 아래와 같은 방법을

이용한다. 우선, 해쉬 함수를 h : { 0, 1 }n→ ZnM를 정의하자.

Page 304: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 304 -

[암호화 과정]

1. h(m)=(α1,...,αn)을 계산한다.

2. E≡B+H ( modM)를 계산한다. 여기서, 행렬 H는 H의 i번째 열벡터를 hi라 할 때,

j≡i ( mod k) 에 대해 hi≡αiuj (modM)와 같이 설계된 행렬이다.

3. 암호문 cT≡EmT ( modM)를 계산한다.

[복호화 과정]

1. (a1,...,an)≡xB(mod M)를 계산한다.

2. y≡ xcT ( modM) 를 계산한다.

3. 알고리즘 1.을 이용하여 y로부터 m'을 계산한다.

4. h(m' ) = (α'1,...,α'n)을 계산한다.

5. E'≡B+H' (modM) 를 계산한다. 여기서, 행렬 H'는H'의 i번째 열벡터를 h'i라 할 때,

j≡i ( mod k) 에 대해 h'i≡α'iuj (modM) 와 같이 설계된 행렬이다.

6. 암호문 c' T≡E'm' T (modM) 를 계산한다.

7. c'≡ c (modM) 인지 검사한다.

검사 결과가 참이면 m'을 해당 평문으로 출력하고, 거짓이면 “해당 평문 없음”에 해당하는

기호 NULL을 출력한다.

3. 안전성 분석

가. 안전성 분석

먼저, 안전성 분석을 위해 새로운 암호 체계에 적용 가능한 공격법들을 조사한다. 즉, 기존

의 배낭형 공개키 암호 체계에 가해졌던 공격법들에 대하여 새로운 암호 체계의 안정성을

분석한다.

Page 305: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 305 -

1) 기존의 공격법들

배낭형 공개키 암호 체계를 분석한 기존의 공격법들은, 목표로 하는 암호 체계의 근간이 되

는 부분합 문제의 구체적인 형태에 따라 크게 두 가지로 분류할 수 있다.

가) 고전적인 부분합 문제에 근거한 공격법들

R. C. Merk1e과 M. Hellman이 최초로 제시한 배낭형 공개키 암호 체계 이후 제시된 초기

의 배낭형 공개키 암호 체계들은 주로 이 고전적인 부분합 문제에 근거하여 풀기 쉬운 요소

인 초증가 수열 (s1,...,sn) 등을 풀기 어렵게 보이는 요소인 (a1,...,an)로 변환하여 이

(a1,...,an)를 공개키의 일부로 공개하고, (s1,...,sn)를 (a1,...,an)로 변환하는 과정에 필요

한 정보는 비 키로 간직한다. 제 3자는 공개키 (a1,...,an)을 이용하여 메시지를 암호화하

여 키 생성자에게 암호문을 보낸다. 키 생성자는 자신이 가지고 있는 비 정보를 이용하여

암호문을 (s1,...,sn)를 이용하여 해독한다. 초증가 수열을 이용한 초기의 공개키 암호 체계

들은 저 도를 가졌는데, 이들은 A. Shamir에 의한 공격법에 의해서만이 아니라 J. C.

Lagarias and A. M. Odlyzko가 제시한 a1,...,an와 암호문에 의해 형성된 격자에서 짧은

벡터를 찾는 강력한 LLL(Lenstra-Lenstra-Lovasz) 알고리즘에 의해 배낭형 공개키 암호

체계의 개별적인 내부 구조에 상관없이 도가 낮으면, 구체적으로 0.645, 깨어진다. 그러

나 새로운 암호 체계에서는 그러한 암호화 벡터가 평문마다 바뀌고 공개되지 않으므로 이

공격법을 적용할 수 없다. Benny Chor와 Ronald L. Rivest는 이러한 저 도 암호 체계의

불안전성 때문에 고 도 암호 체계를 제시하였다. 그러나, 이들의 암호 체계는 키 생성 과

정이 어렵고 복호화 속도가 느리며, 이산 로그 계산이 가능한 크기가 매우 큰 유한체 상에

서 해야하는 단점이 있었다. 그래도 배낭형 공개키 암호 체계에서는 가장 안전한 암호 체계

로 인정받아 왔다. 그러다가, 1995년 C. M. Schnorr와 H. H. Horner는 비록 시간이 적게

걸리지는 않지만 Lattice Reduction Algorithm (격자 기저 축소 알고리즘)을 개선하여

Benny Chor와 Ronald L. Rivest의 암호 체계를 분석하였다. 그러다 1998년에 Serge

Vaudenay가 완전한 공격법을 제시함으로써 Benny Chor와 Ronald L. Rivest의 암호 체계

는 더 이상 안전하지 않게 되었다. C. M. Schnorr와 H. H. Horner의 공격법과 Serge

Vaudenay의 공격법의 공통점은 모두 공개된 암호화 knapsack 벡터와 평문을 이진 수열로

나타내었을 때, 1의 개수가 항상 일정한 것에 착안하였다. 그러나 새로운 암호 체계에서는

1의 개수가 일정하지 않고 암호화 벡터가 평문마다 바뀌고 공개되지 않으므로 이 공격법을

적용할 수 없다.

Page 306: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 306 -

나) 감추어진 부분합 문제에 근거한 공격법

1998년 V. Boyko와 M. Meinado, R. Venkatesan은 Eurocrypt '98에서 선행 계산을 사용

하여 고르게 분포되어 있는 (x, gxmod M)쌍을 생성하는 간단하고 빠른 방법을 소개하였다.

1999년 Phong Nguyen과 Jacques Stern은 Crypto '99에서 hidden subset sum Problem

(감추어진 부분합 문제)라는 새로운 부분합 문제를 제시하면서 V. Boyko와 M. Meinado,

R. Venkatesan의 방법의 안전성은 이 문제에 의존한다고 하였다. 여기서는 knapsack 벡터

가 공개되어 있지 않기 때문에 고전적인 부분합 문제에서와 같이 도를 정의할 수 없다.

그래서, Phong Nguyen과 Jacques Stern는 이 문제에서의 도는 d=nlogM

로 정의하고

도가 아주 작은 경우, 구체적으로 0.645, bT≡XaT (modM)을 만족하는 행렬 X와 벡터

a를 구하는 방법을 제시하였다. 새로운 암호 체계에서는 c≡Em (modM), E= [eij] l ×n, 와

같이 암호문이 생성되며, E는 암호화 과정마다 변경되고 공개되어 있지 않다. 따라서,

Phong Nguyen과 Jacques Stern의 방법을 새로운 암호 체계에 적용할 수 있는 곳은 암호

문 c의 각각의 성분에 대한 방정식 ci≡m1ei,q+…+mnei,n (mod M) 이다. 그러나, 이 경우

는, m=1<n 이 되어 안전성에 영향을 미치지 않는다.

Page 307: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 307 -

2) Brute-Force 공격법

여기서는 매개 변수를 264 <M<265 , n=32, l=25,k=3으로 두고 안전성과 효율성을 분석한다.

에서 살펴보았듯이, 기존의 공격법들은 효과적인 brute force attack 보다 낫지 않다. 암호

문 c와 공개키 (B, u1,..., uk) 가 주어질 때, 우리는 두 가지 공격점을 생각할 수 있다.

O 공개키로부터 비 키에 관한 정보를 알 수 있는가?

아래의 두 조건을 만족하는 벡터 y를 찾을 수 있다고 가정하자.

(a) yB≡Me = (e1, ...,en)이 초증가 벡터이고, ∑n

i=1ei <M ,

(b) y․u1≡…≡y․uk≡0(modM) .

그러면 ycT≡M y(B+H)mT≡Me1m1+…+enmn 이므로, 알고리즘에 의해서 평문

m= (m1,…,mn) 을 구할 수 있다. 따라서, y를 구하는 것이 목표이다.

위의 (a)와 (b)를 푸는 가장 효율적인 방법은 다음과 같다.

W = Span(u1,…,uk)⊥라하고, B(W)를 W 의 일차변환 B 에 의한 상으로 보자. 그러면,

dim(B(W)) = dim(W) -dim(Ker B) 이다. rank(B) = l 이라고 가정하면, 정리8에 의해 B(W)

에서 임의로 벡터 e=(e1,…,en)를 선택할 때, 위의 조건 (a)을 만족할 확률은

1

(2l-k-n)!2 (2l-k-n)(2l-k-n-1)/2 보다 같거나 작다. 그러므로, 평균적으로 적어도 15!2105 > 2130

개의 e를 선택해야 한다. 그러나 직교하는 벡터들을 제공하지 않을 때에는

1

(2l-n)!2(2l-n)(2l-n-1)

2

만큼의 확률로 줄어든다. 다시말하면 (2l-n-k)! 2(2l-n-k)(2l-n-k-1)

2 만큼

의 시도에서 더 많은 (2l-n)! 2(2l-n)(2l-n-1)

2 만큼의 시도를 해야한다. 이의 이론적 근거는

ImB=dimB-KerB=l-(n-l)=2l-n이다. 그리고, 직교하는 벡터 u1, u2,…, uk를 주지 않는

다면 18!2153만큼의 시도를 해야한다. 위의 계산량은 하나의 초증가수열을 찾기 위한 최소

의 계산량이고 따라서 임의의 초증가수열만을 찾아도 되니까 계산량은 최대값으로 변하게

된다. 따라서 최악의 경우는 한번의 행벡터와 행렬의 곱으로 초증가수열도 찾아낼 수 있고

가장 안전한 경우라도 최대 (2l-n-k)!2(2l-n-k)(2l-n-k-1)

2 만큼의 계산을 하면 되므로 안전성

에 문제가 있다.

Page 308: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 308 -

O 주어진 암호문으로부터 해당 평문에 관한 정보를 알 수 있는가?

암호문 cT≡M (B+H)mT가 주어졌을 때, BmT≡M c-Hm

T의 정확한 값을 추측하는 것은

어렵다. 왜냐하면, HmT≡Mγ1u1+…+γk uk이고 각각의 γ i는 ZM 상의 원소이므로 정확한

BmT를 추측하려면 Mk 개의 시도를 해봐야 하기 때문이다. 주어진 매개 변수로는 2 190 개

가 넘는다. 따라서, 비록 행렬 B가 역행렬이 존재하더라도, 메시지 m에 관한 정보를 알

수 없다.

3) 이 시스템의 비 키는 유일한 키의 역할을 하지 못한다. 또한, 키의 크기에 개선의 여지

가 있다. 그 이유를 다음과 같이 설명할 수 있다.

공개된 u1,u2,…,uk,에 의해서 생성되는 공간에 직교하는 벡터 v를 선택한다. 그러면 암호

문 cT≡(B+H)mTmod M 에서

v․cT≡v(B+H)mT≡vBmT+vHmT≡vBmTmod M

vB=[a1,…,an]가 되는 초증가수열 [a1 ,…,an]가 되는 초증가수열 [a1 ,…,an]을 찾는 문제

로 귀착된다. 여기서 B는 주어져 있고 임의의 v를 < {u1,…,uk} >⊥에서 선택한 후

vB=[a1,…,an]를 만족하는 [a1 ,…,an]를 찾아야 하는데 이때 v는 1-k차원에서 선택한다.

따라서 주어진 B에서 임의의 x를 선택하여 xB=[a1,…,an]인 초증가수열 [a1 ,…,an]를 찾

는 것보다 쉬워진다. 다시 말하면 비 키의 정보를 일부 제공하는 셈이다. 또한, 꼭

[a1 ,…,an]를 찾을 필요는 없고 임의의 초증가수열을 찾아도 된다. 그 이유는

v․cT≡vBmTmod M 에서 vB=[b1,…,bn]가 [a1 ,…,an]와 다른 초증가수열이라고 할 때,

v․cT≡vBmT≡∑n

i=1bimi mod M이므로 초증가수열 [b1 ,…,bn]을 이용하여 mi를 찾을 수 있

다. 따라서, 제안된 알고리즘은 < {u1,…,uk} >⊥에 속하는 임의의 벡터 v와 B를 곱하여 초

증가수열만 찾아내면 해독이 가능하다.

결론적으로, 이 시스템은 사용자에게 임의성을 주고 암호화키도 임의로 정하여 암호화하므

로 EmT≡cT에서 E, mT는 감추어지고 cT는 알려진 hidden subset sum 문제 같지만, 알

려진 B와 임의의 xT를 곱하여 초증가수열을 찾는 문제와 같다. 오히려 임의의 xT가 아니

고 u1,u2,…,uk와 직교하는 조건을 제공함으로써 비 키의 일부 정보를 누출하고 있다. 결

정적인 취약점은 xT가 진정한 의미의 비 키가 아니고 vB가 초증가수열이 되는

u1,u2,…,uk에 직교하는 임의의 벡터 v는 모두 비 키의 역할을 한다는 것이다. 계산적 측

면에서 볼 때도 사용자 입장에서는 l의 크기가 작을수록 계산량이 줄어 효율적일 수 있으

나 공격자 입장에서는 brute-force attack의 경우에 확률을 높이는 결과가 된다. 따라서 B

의 크기가 n×n보다 안전성이 떨어진다. l크기의 행벡터와 l×n크기의 행렬, B를 곱하여 임

의의 초증가수열이 나오는 연산 속도에 이 암호 체계의 안전성이 달려 있다.

Page 309: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 309 -

나. 효율성 분석

여기에서는 새로운 암호 체계의 메시지를 암호화 혹은 복호화 하는데 걸리는 시간과 키의

크기, 정보율을 분석한다. 이 암호 체계의 암호화 혹은 복호화 하는데 주로 사용되는 계산

은 행렬과 벡터의 모듈러 곱셈이다. 가장 기본적인 알고리즘에 의해서도, 크기가 l×n인 행

렬과 길이가 n인 벡터의 곱은 최대 ln 번의 모듈러 곱셈이 행해진다. 키의 크기 중, 특히

공개키의 크기는 공개키 암호 체계에서 중요한 요소인데, 이 암호 체계에서는 l(n+k)logM

비트이다. 정보율은 평문의 비트 길이와 암호문의 비트 길이의 비로 정의된다. 앞에서 제시

한 매개변수들로 구체적으로 계산하면, 암호와/복호화 시 최대 800 번의 ZM 상에서의 곱

셈이 필요하고, 공개키의 크기는 7 K 바이트이며, 정보율은 2%이다.

4. 프로그램 명세

가. 개발 공개키 암호시스템의 구현 예

여기에서는 앞에 제안된 개발 알고리즘에 관한 구현예 (구현 프로그램 명: Knapsack

Crypto-System)를 보여준다. 본 구현은 n-bits의 이진열(메시지 비트)을 암호화 및 복호화

하며 그 때의 해당 공개키 및 비 키 그리고 몇 가지의 과정적 계산 결과를 출력하는 구현

물이다. 처리의 수준(용량)은 실용적인 크기는 아니며, 일반적인 고급 윈도우 프로그래밍 컴

파일러에서 제공하는 프로그램 원시언어 (본 과제에서는 C++을 사용하였음)에서의 자료형

의 최대 한계치까지만 처리할 수 있도록 구현되었다. 여기서는 구현 프로그램의 간단한 사

용법 (데이터 입력 규칙)과 그 처리 예를 제공한다.

Page 310: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 310 -

(그림 3-1) Knapsack Crypto-System의 초기화면

다음의 그림 3-2는 Knapsack Crypto-System (KCS)에서 데이터를 어떻게 입력하는가는

보여주고 있다. 예를 들어, 처음의 12라는 수는 본 알고리즘에서의 4의 배수에 해당하는 정

수 (n)을 의미한다. 그 다음에 나타나는 필드는 이진 비트 (메시지 비트)에 관한 입력을 의

미한다. 현재 총 16비트의 데이터가 입력되어 있으므로, 처리하는 총 비트는 앞에서부터 제

12번째 비트까지 즉, 101111000101 이 된다.

Page 311: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 311 -

(그림 3-2) Knapsack Crypto-System의 데이터 입력화면

이 문제를 본 알고리즘에 따라 처리하고자 하면, 위의 그림에 나타나 있듯이 메뉴에서 [풀

기]→[암호화/복호화]를 선택하면 된다. 선택하여 이 문제에 대한 본 처리 결과를 보면 다

음의 그림과 같이 나타난다.

메인 윈도우 (main window)에는 네 개의 자식창(child window)이 나타나있다. 우선,

Example이라고 나타난 자식창은 원래의 데이터 입력 창이다. 다음의 out이라고 나타난 자

식창은 처리과정의 공개키, 비 키, 그리고 과정적 계산 결과 (벡터, 행렬 등)들이 포함되어

있다. 특히, cipher와 plain이라고 나타내어진 두 창은 원 이진 비트열에 대한 암호화 수열

및 복호화 수열을 나타내주고 있다.

Page 312: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 312 -

(그림 3-3) 암호화/복호화의 처리결과

밑의 그림 3-4는 out으로 표시된 자식창의 내용의 일부를 보여주고 있다. 이 창에는 공개

키, 비 키, 해당 행렬들 및 벡터들, p, n값 등이 보여지고 있다.

구현한 프로그램을 이용하여 작은 정수에 대하여 예제 풀이를 하여보면 다음과 같다. 랜덤

스트림에 따라 동일한 입력에 대해서도 서로 다른 공개키와 비 키들이 생성될 수 있다.

n=8 그리고 10111100라는 비트열을 하면

Public key is (B,u1, ...,un/4):

Page 313: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 313 -

Matrix B:

Vector u:

u1 = [0 476 0 0 0 0 0 0 ]

u1 = [0 0 43 0 0 0 0 0 ]

Private key is vector x :

Vector x:

x = [63 0 0 0 0 0 0 0 ]

와 같이 키들이 얻어진다.

그리고, 이를 통하여 원래의 메시지 비트 10111100가 복구됨은 볼 수 있다.

Page 314: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 314 -

(그림 3-4) 암호화/복호화의 처리결과 화면

[대형처리용량을 위한 방법]

입력되는 정수(n)의 크기가 매우 커지게 되면 행렬의 연산을 위한 자료 구조와 연산 알고리

즘으로 어떠한 것을 이용하느냐가 중요한 문제가 된다. 다음은 IEEE Transactions on

Computers에 1989년 게재된 “Optimal Matrix Multiplication on Fault-Tolerant VSLI

Arrays"라는 논문을 참조한 내용이다. 프로세서 배열 (processor arrays)의 Wafer-scale

integration은 편재하는 결함이 있는 처리요소를 다루는 효과적인 결점을 참아낼 수 있는

기술의 발전을 요구한다. 그러한 기술들은 결함이 있는 PE 들을 위한 테스트와 작업 프로

세서들을 요구된 배열 구조로 조율하는 것과 연계가 있다. wafer scale integration으로의

견해와 더불어, 프로세서의 결점 감내에 대한 몇가지 접근들이 수 년간 제안되었다. 하지만,

몇 가지 효과적인 결점 감내 디자인의 바람직한 특성을 무시하든 아니면 조금 덜 미치든 간

에, 이러한 다양한 기술들로부터 얻어진 디자인들은 짧은 inter-PE wire length를 가지고

있고 결함이 없는 PE들을 효율적으로 이용한다. Rosenberg가 결점 감내 VLSI 배열의 디

자인을 위해 Diogenes 방법을 제안하였다. 이 방법의 핵심은 동일선상의 프로세서의 설계

로 mapped되어 있고 PE들과 평행하게 진행되고 있는 버스들에 대한 적절한 스위치 세팅에

의해 바람직한 배열구조로 형성된 프로세서 네트웍의 선형화에 있다. 그것은 검사능력을 향

상시키는 scan-in/scan-out 능력을 제공하며 정렬은 프로세서당 몇 개 정도의 제어라인을

사용하여 달성된다. 2차 메쉬 배열 (two demensional mesh array)의 디오게네스 디자인은

two demensional 구현보다 상당히 커다란 영역을 차지하며, 커다란 물리적인 거리를 span

하기 의해 논리적으로 이웃한 PE's와의 유선의 연결 (connecting)을 필요로 한다. 이것은

만약 그 배열내의 모든 PE's가 무 결점상태 (fault free)로 된다고 가정한다해도 같은 경우

Page 315: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 315 -

임을 주목해야 한다. 이런 접근의 본질인, 긴 wire는 시스템의 throughput의 감소와 부합해

서 스로우 시스템 클럭 (slower system clock, 시스템의 시간이 얼마인가를 측정하는 장치

중 하나)의 사용을 필요로 한다. 이 논문에서는, long inter-PE wire 길이가 부과하는

throughput (1ower system clock late가 원인인)의 저하를 피면서, 다이오게네스 디자인의

모든 우수한 fault-tolerance한 특성을 보유한 fault-tolerant VLSI 행렬 곱셈 배열 모형을

제안하고 있다. 비공식적으로, 이들의 모델은 PE's의 line과 평행하게 작동하는 다중 버스

(multibus)에 의해 통신하는 프로세서의 collinear한 layout으로 구성되어있다. inter-PE

wire length 와 무관한 clock rate를 만들기 위해, 이 저자들은 고정된 물리적 간격(물리적

으로 이웃한 PE's의 모든 pair 사이를 말한다) 버스 안에 버퍼를 소개하는데 ,그래서 신호

는 모든 사이클에서 이 버퍼로 들어오거나 나가는동안 시간이 재어진다. 다른 모형과 공통

적으로, 버스와 스위치들이 완전히 신뢰할 수 있다고 가정한다. fault tolerance는 결함있는

PE's를 바이패스하고, 오직 그 버스에서 working processor를 hooking으로써 달성할 수

있다. retiming의 사용은 결함있는 PE's의 존재에도 불구하고 우리의 알고리즘의 정확함을

유지하는 것을 가능하게 한다. 이 논문의 주요 결과는 다음과 같다. 제안된 모형에서, 저자

들은 n3의 스칼라 곱을 수행하는 아무 알고리즘에 의해서 두 개의 n×n 행렬을 곱하는데

요구되는 시간에 대한 Ω(n n)만큼의 하한을 확립하였다. 더욱이, n n PE를 이용하고

O(n2) 영역을 필요로 하는 하나의 최적의 O(n n) 시간 복잡도의 systolic 알고리즘을 발

표하였다. 이 논문에서는 용이한 시험성과 재구성성을 위한 메커니즘을 명시적으로 구체화

시키는 행렬 곱을 위한 무결점 배열을 개발하였다. 또한, 이 모형상에서 행렬의 곱셈을 하

기 위한 최적 시간의 알고리즘을 설계하였다.

나. 프로그램 명세서

구현한 프로그램의 기본 구조는 다음과 같다.

1) Header files

Aboutbox.h : 리소스 형성에 관련된 클래스 정의부

Ipframe.h : 프래임 생성에 관련된 파일의 정의부

Kstatw.h : application 수행에 관련된 클래스 정의부

Linkitem.h : 아이템들의 링크에 관련된 클래스 정의부

Mainfrm.h : 윈도우 프래임 생성에 관련된 클래스 정의부

Paddoc.h : Window Doc에 관련된 클래스 정의부

Padframe.h : 원도우를 통한 데이터 교환에 관련된 클래스 정의부

Paditem.h : 원도우를 통한 데이터 교환에 관련된 클래스 정의부

Padview.h : 원도우로부터 데이터를 받아들이는데 필요한 클래스 정의부

Page 316: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 316 -

Pageset.h : 프린트 시 출력페이지 셋업에 관련된 클래스 정의부

Resource.h : 리소스들의 아이디에 부여된 코드 정의부

Stdafx.h : standard system에 필요한 파일을 포함시킨 곳

Tapstop.h : tab setting에 관련된 클래스 정의부

Waitcur.h : cursor에 관련된 클래스

2) C++ source files

Aboutbox.cpp : 리소스를 다루는 핸들링 코드

Ipframe.cpp : 윈도우 프래임 생성에 관련된 코드

Linkitem.cpp : 아이템간의 링크에 관련된 코드

Mainfrm.cpp : 윈도우 프래임 생성에 관련된 코드

Paddoc.cpp : Window Doc에 관련된 코드

Padframe.cpp : 윈도우를 통한 데이터 교환에 관련된 코드

Paditem.cpp : 윈도우를 통한 데이터 교환에 관련된 코드

Padview.cpp : 윈도우로부터 데이터를 받아들이는데 관련된 코드

Pageset.cpp : 프린트 시 출력페이지 셋업에 관련된 코드

Algorithm.cpp : 직접 계산을 수행하는데 필요한 코드(*)

Stdafx.cpp : standard system을 위한 파일에 관련된 코드

Tapstop.cpp : tab setting에 관련된 코드

이에 대한 핵심코드 (Algorithm.cpp)에 관한 명세는 다음과 같고, 컴파일러는 Visual

C++6.0이다.

Page 317: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 317 -

3) 헤더파일 참조 코드

다음의 네 코드 라인은 라이브러리 함수를 호출하여 사용하기 위해서 헤더파일을 참조함을

의미한다.

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <time.h>

4) 매크로 상수 정의

MAX는 long integer형 변수의 표현범위의 한계에 따르는 본 프로그램의 처리수준 제약을

잡아 둔 것이다. 발전된 알고리즘을 적용함으로써 이는 해소될 수 있다.

#define MAX 100

INTERVAL 은 superincreasing 수열을 생성하는데 있어서 앞의 항까지의 합과 다음 항의

차이를 랜덤하게 주기 위하여 둔 값으로서 오버플로우(overflow)의 제약으로 인하여 작은

수인 10을 두었다.

#define INTERVAL l0

#define PERROR -2954

5) 클래스 선언

가) 변수 선언부

프로그래밍언어 C++에서의 클래스란 C언어에서의 구조체의 발전된 형태라고 이해할 수

있다. 다음의 Crypt라는 클래스는 본 연구의 알고리즘을 구현하는 핵심 데이터 구조형을 나

타낸다.

n은 정수형의 변수로서 superincreasing 수열의 항의 개수라고 할 수 있다. p는 긴 정수형

(long integer) 변수로서 솟수로 이용할 변수이다.

배열 a[]는 superincreasing 수열을 표현하기 위한 변수들이다. 다음에 열거된 포인터 변수

(*)들은 우측의 주석에 표기되었듯이 행렬과 벡터로서 본 알고리즘에 나타난 대로 명명되었

다.

Page 318: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 318 -

class Crypt {

int n; // a large integer

long p; // a large prime number

long a[MAX]; // p > a[0] +… a[n-1]

long *A; // matrix

long *X; // matrix

long *X1; // matrix

long *x; // vector

long *v; // vector

long *u; // matrix = set of vectors

long *B; // matrix

long *H; // matrix

long *E; // matrix

long *alpha;

int m[MAX]; // message

public:

Crypt();

~Crypt();

int idx(int i, int j) { return i*n+j; }

// Key generation

int init(); // initialize memory

int find_super(); /// find p and {a_n}

void create_A(); / create matrix A

void choose_XX1(); // choose Ⅹ and Ⅹ1

void choose_ v(); //choose v

void find_B(); //find B

void print_keys(); //print public and private key

Page 319: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 319 -

// Encryption

void choose_alpha();

void make_E();

void make_cipher(); //make cripher text

// Decryption

void compute_y();

int doParse(char*);

void doProcess(char*,char*);

};

나) 키생성과정 함수들

함수 doProcess()는 입력을 오류 없이 번역한 후에 키생성, 암호화, 복호화를 하는 과정을

포함하는 함수이다. 키 생성과정에서 init()라는 함수는 처리능력이 커야하는 경우를 대비하

여 메모리를 동적으로 할당(dynamic memory allocation)하는 과정이다. 오류가 일어나면

리턴 값은 0이되면 그렇지 않은 경우 TRUE(참값)가 리턴된다.

함수 doParse()는 윈도우 화면에 입력된 데이터를 읽어들여 처리할 수 있는 형태로 번역하

는 함수이다. 또한 이 함수는 4의 배수인 양의 정수 n이 입력된 경우 그에 따르는 초증가

수열(superincreasing sequence)를 하나 찾아주고 그에 해당하는 솟수 (p)를 찾아주는 함

수이다. 만약 오류가 생기느냐 아니냐에 따라서 체크할 수 있는 리턴값을 준다.

Page 320: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 320 -

create_A()라는 함수는 행렬 A를 생성해준다.

choose_XX1()이라는 함수는 두 행렬 X와 (각 엔트리에 대해 Fp상에서) X의 역행렬을 생

성해 주는 함수이다.

choose_v()라는 함수는 u에 관한 벡터들 n/4개를 찾아주는 함수이다.

find_B()는 행렬 B를 찾아주는 함수이다.

print_keys()라는 함수는 키 생성 과정에서 생성된 공개키와 비 키를 출력해주는 함수이

다. 여기서는 과정적 이해를 돕기 위한 여타의 행렬 및 벡터 등도 출력하여 준다.

다) 암호화 과정

choose_alpha()라는 함수는 복수개의 α값들을 생성해낸다.

make_E()라는 함수는 행렬 H를 생성해내고 이를 이용하여 행렬 E를 최종적으로 생성해낸

다.

make_cipher()라는 함수는 앞에서 얻어진 공개키와 행렬들을 이용하여 n비트의 이진열을

암호화하는 과정이다. 처리되는 내용들이 2개의 파일로 저장되게 된다.

라) 복호화 과정

compute_y()라는 함수는 암호화된 수열이 저장된 파일을 읽어 그 수열을 이용하여 비 키

로 복호화를 하는 과정으로서, 그 결과는 1개의 파일로 저장된다.

Page 321: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 321 -

5. 향후계획

본 연구에서는 knapsack문제에 개념적 기반을 두어 새로운 공개키 암호알고리즘 개발을 하

였다. 개발된 공개키 암호시스템의 암호화 및 복호화의 시간적 효율성이 우수하다고 결론지

을 수 있으나, 안전성 측면에 문제가 있다고 할 수 있다. 따라서, 이 알고리즘을 보완하기

위해서 xT의 크기를 1×n로 하는 것이 더 안전할 것이며, 또한, x

T에 직교하는

u1,u2,…,uk를 제공하지 않는 것이 더 나은 안전성을 제공한다. 왜냐하면, H행렬을 반드시

만들 필요가 없기 때문이다. 가장 중요한 것은 xT가 유일한 비 키가 되지 못하는 취약점

을 개선해야 한다는 것이다. 결론적으로 이 시스템의 알고리즘에서 초증가수열을 행렬로 변

환시키고 orthogonal한 벡터들로 이루어진 행렬을 더해준 것은 초증가수열의 각 원소를 각

각 다른 파라미터로 선형변환시킨 것과 같고 따라서 선형변환은 선형변환의 역으로 해결할

수 있기 때문에 하나의 선형변환시에 계산상의 복잡도가 크지 않으면 공격의 위험이 크다.

그러므로 초증가수열을 이용하여 개발한 이 알고리즘의 안전성을 향상시키기 위해서 타원곡

선상의 연산처럼 복잡도가 큰 이론을 적용시키는 것이 큰 연구과제이다.

Page 322: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 322 -

제 4 장 신규논리 기반 공개키 암호알고리즘 개발

제 1 절 그래프 이론 기반 공개키 암호알고리즘 개발

1. 개요

공개키 암호시스템의 기본 개념은 암호를 만드는 일방향 함수이다. 공개키 암호시스템의 발

견은 암호학에 대수와 정수론 등의 수학이 더욱 응용되는 결정적인 계기가 되었다. 특별히

최근에는 조합론 등의 이론이 점점 더 응용되고 있다. 이러한 수학이 결정적으로 사용되는

이유는 수학이 일방향 함수를 찾아내는 보물 창고이기 때문이다.

맨 처음 발견된 공개키 암호시스템인 RSA 시스템은 정수론을 사용한다. 이 당시 발견된 조

합론의 Knapsack 문제에 기반을 둔 공개키 암호시스템은 불안전함이 밝혀졌다. 그러나 조

합론의 여러 NP-complete인 문제를 이용하면 다양한 one-way 함수를 만들 수 있기에

RSA와 어깨를 나란히 하며 NP-complete 문제인 Knapsack 문제를 통해 공개키 암호체계

를 구성하는 one-way 함수를 만들려는 시도가 계속되고 있다. 그런데 knapsack 문제와 같

은 NP-complete 문제를 이용한 공개키 암호체계는 곧 안전하지 않음이 Shamir 등에 의해

밝혀졌고, 또한 Knapsack 문제와 같은 NP-complete 문제와 공개키 문제와 관련하여

Brassard's theorem은 어떤 가정 아래에서 NP-complete 문제가 위험한가를 밝혔다.

그런데 1993년 Fellows, Koblitz는 Perfect dominating set과 같은 조합론의 NP-문제에

기반을 둔 공개키 시스템이 Brassard's theorem의 가정을 만족시키지 않기에 Brassard's

theorem에 의해 안전하지 않다고는 말할 수 없다고 주장하였다. 계속해서 그들은 1994년

Combinatorial Cryptosystems Galore! 논문을 통해 일반적으로 조합론에서의

NP-complete 문제를 기반으로 하는 공개키 암호시스템의 가능성 을 피력하였다. 특히 그

들은 일반적인 조합론의 NP-문제에서도 Combinatorial cryptosystems을 많이 만들 수 있

다는 주장과 함께 그 이론들을 다듬어 가고 있다. 특히 Elliptic 암호시스템의 제안자인

Koblitz는 일반적인 조합론의 NP-문제에서도 Combinatorial cryptosystems을 많이 만들

수 있다는 주장과 함께 그 이론들을 다듬어 가고 있다. 한편 캐나다 Waterloo대학의

Stinson등도 조합론의 문제를 기반으로 Perfect Secrecy, Authentication Codes,

Universal Hashing, Secret Sharing Schemes, Key Distribution Patterns and Broadcast

Encryption, Visual Cryptography 등을 연구하고, 그 내용을 중심으로 Combinatorial

Cryptography를 제안하고 있다.

본 연구의 목적은 1994년 Fellows와 Koblitz의 논문 Combinatorial Cryptosystems

Galore!을 통해 제안한 Combinatorial-Algebraic Polly Cracker 암호시스템을 그래프 기

반의 NP-완비인 (-1, 1, 1, 1)-PDF 와 (-1, 0, 1)-PMDF를 통해 연구하고, 또한 이러한

연구의 영지식 인증 및 비 분산시스템에 응용 가능함을 살펴보는 것이다. 본 연구에서는

먼저, Fellows와 Koblitz가 제안한 그래프의 PDS를 기반으로 하는 암호시스템을 정리하고

문제점들을 제시하였다. 다음, 그러한 문제점을 극복하려는 시도로 (-1, 1, 1, 1)-PDF 와

(-1, 0, 1)-PMDF 기반 암호시스템을 제안하였다. 또한 본 연구에서는 그래프의 edge에서

정의되는 3-dege coloring map 에 대한 불변식을 생각하고, 이것을 사용하여 graph 전체

에서 vertex와 edge 전체에 대한 불변식을 통한 공개키와 비 분산시스템을 생각하였다.

Page 323: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 323 -

본 연구과제는 제안된 perfect dominating set에 기반을 둔 공개키 암호시스템을 기초로

하여 perfect domination set 문제보다 더 복잡한 (-1, 1, 1, 1)-perfect dominating

function 및 (-1,0,1)-perfect minus dominating function 문제를 기반으로 하는 공개키 암

호시스템을 연구하는 것이다. 이와 같은 그래프 기반 암호시스템이 안전한 경우 그 자체의

암호론적 가치 외에 Zero-Knowledge등과 같은 암호화 프로토콜에도 응용될 수 있다. 특별

히 그래프의 edge에서 정의되는 3-edge coloring map 에 대한 불변식을 생각하고, 이것을

사용하여 graph 전체에서 vertex와 edge 전체에 대한 불변식을 통한 공개키 시스템과 비

분산시스템 등에 응용할 수 있다 (예를 들어, PDS와 3-edge coloring map에 대한 정보

를 두 사람에게 나누어주고 들어온 암호문에 각자의 비 키를 넣어 함께 해독한다).

먼저 공개키 암호시스템에 쓰일 수 있는 그래프 이론의 NP-complete 그래프 문제를 보자.

이제 G=(V,E)를 graph라고 할 때, dominating set W가 W에 속한 두 vertex u, v에 대

해 N[u]∩N[v]=∅ 인 성질을 갖는 Perfect Dominating Set 문제를 생각하자. 여기서

cubic 그래프에서 perfect dominating set을 구하는 문제는 NP-complete 하다는 것이 알

려져 있다. 일반적으로 그래프의 모든 vertex가 꼭 d(≥3)개의 vertex와 인접한 경우, 그

그래프에서 perfect dominating set을 구하는 것은 NP-complete 하다는 것을 1991년

Kratochvil이 밝혔다. 또한 cubic 그래프에서 3-edge coloring을 갖는지 판단하는 문제도

NP-complete문제이다.

Page 324: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 324 -

본 연구는 Koblitz와 Fellows가 제안한 Polly Cracker 암호시스템을 바탕으로 perfect

dominating function 와 PDS 기반 시스템의 문제점을 보강하기 위해 (-1, 1, 1, 1)-PDF

기반 시스템을 연구하였다. 또한 영지식 및 비 분산스킴을 위해 2개의 PDS에 기반을 두는

(-1, 0, 1)-PMDF (perfect minus dominating function) 문제와 관련한 Polly Cracker 암

호시스템을 다음과 같은 과정으로 만들어 연구하였다. 먼저 F를 체, T= {t1, t2,…, tn}를

변수의 집합이라 하자. 이제 비 키를 벡터 y∈Fn 라고 또한 공개키를 모든 j에 대해서

qj(y)=0 인 다항식 집합 B= {qj}⊂F[T] 라고 잡자. 이러한 집합을 만든 후 다음과 Polly

Cracker 암호시스템을 생각할 수 있다. 즉, 갑이 을에게 메시지 m을 보내기 위해서는 불변

식의 값이 0인 global한 불변식의 집합 B를 사용하여 다항식 P=∑hjqj을 만든다 (불변식

이란 모든 PDS에 일정한 값(불변값)을 갖는 식이다. 여기서 qj∈B ,hj∈F[T] 이다). 즉 P

는 B에 의해서 생성되는 F[T]의 이데알의 원소로 잡는다. 이렇게 만든 p에 갑은 을에게

보내려는 m을 더해서 다항식 c=P+m를 만든 후 이것을 전송한다. 이를 받은 을은 암호를

해독하기 위하여 자신이 알고 있는 비 키인 y를 대입하여 c(y) = P(y) + m = m을 알아

낼 수 있다.

두 개 이상의 PDS를 모은 Perfect minus dominating function (PMDF)을 사용하는 경우

에도 Cubic graph인 complete graph K4 의 covering을 사용하여 그래프 G를 만들어 공

개한다. 여기서 G의 (0,1,-1) PMDF f 는 비 키이다. G의 vertex V를 {v1,v2,...,vn},

(n=4m)이라 할 때, G위의 다항식 P (x1, x2,..., xn)∈F[x1, x2,..., xn] 를 생각하고 불변식

값이 0인 Invariant polynomial의 아이디얼 R을 잡는다. 을은 Ideal R에서 안전한 다항식

P를 잡고, 보내려는 메시지 m을 P에 더한 P+m을 갑에게 보낸다. 마지막으로 갑은 받은

다항식 P+m의 변수 xi 에 f(vi)의 값을 대입하여 그 결과 을의 메시지 m을 얻을 수 있다.

여기서 edge의 집합을 사용하여 3-edge coloring NP-complete 문제로 암호시스템을 구

현할 수도 있다.

위와 같은 perfect dominating function 문제와 관련된 Polly Cracker 암호시스템에서의

결정적인 연구문제는 먼저 Cubic graph인 complete graph K4의 covering을 사용하여

PMDF를 찾는 것이 어려운 그래프 G를 만들고, 또한 이것과 관계된 Ideal R을 어떻게 만드

는가 하는 것이다.

Page 325: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 325 -

현재까지 조합론 기반의 암호시스템은 암호화 과정에 들어가는 많은 계산량 때문에 현실성

이 없어 보인다. 그러나 Elliptic 암호시스템의 제안자 중 한사람인 Koblitz도 Elliptic 암호

시스템을 제안 당시에는 계산능력 때문에 그 암호시스템도 현실성이 없는 이론처럼 보였다

고 말한다. 조합론 특히 그래프 이론에 기반을 둔 암호시스템을 바탕으로 조합론적 암호시

스템의 실용성 연구에 대한 후속연구에 활용될 수 있다. 특별히 조합론 기반 암호시스템에

대한 구축 문제뿐 아니라 다음과 같은 공개키 암호시스템을 이용한 응용을 생각할 수 있다.

공개키 알고리즘 연구 후, 이러한 방향의 응용연구를 생각할 수 있다.

특별히 모든 vertex가 d(≥3)개의 vertex와 인접한 경우, PDS 존재성에 대한 문제와

3-edge coloring의 존재성을 판단하는 문제는 모두 NP 문제이기에 이 둘을 혼용하여 다음

같은 시스템에 응용할 수 있다.

(1) 신뢰할 수 있는 메시지 교환 및 인증 (보내어진 메시지를 누가 보냈는지에 대한 사용자

인증과 보내어진 메시지가 변조되지 않았다는 메시지 인증 두 종류가 있다) 은 해쉬함수,

디지털 서명, 패스워드와 확인시스템 (데이터나 시설에 접근할 수 있게 하거나 사용자를 확

인할 수 있는 시스템), 그리고 증인시스템 (디지털 계약에서와 같이 어떤 일에 동의하고도

나중에 안했다는 말을 못하도록 하는 시스템) 등을 사용하며 이러한 시스템을 공개키 시스

템으로 구현할 수 있다;

(2) 비 분산시스템, 미사일을 발사하는 패스워드 등을 한 사람이 갖고 있으면 위험할 수

있다. 이 경우 미사일 패스워드에 관한 정보를 조각내어 관계자들에게 나누어주되, 나누어

받은 사람 중 k 사람이 모이면 패스워드를 복구할 수 있지만 k 미만의 사람이 모여서는 알

아낼 수 없도록 할 수 있게 하는 시스템이다;

(3) 영지식시스템, 어떤 사람에게 어떤 정수론 문제나 조합론 문제 (예를 들어, 모듈러 연산

에서 어떤 수의 제곱근이나 그래프의 3-색칠문제에 대한 해결책)를 풀어 답을 알고 있음을

증명하되 상대방에게 답에 대한 어떤 정보도 흘리지 않고 하는 시스템이다.

Page 326: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 326 -

그래프이론 (Graph theory)과 관계되는 많은 문제들이 NP-complete 문제이다. 본 연구를

시작으로 그래프와 관계되는 여러 NP-complete 문제를 통한 공개키 암호시스템 연구로 발

전할 수 있다. 또한 그래프 기반 암호시스템을 활용하여 암호론의 영지식

(Zero-know1edge) 및 비 분산 시스템(Secrete sharing scheme) 등과 관계되는 연구도

생각할 수 있다. 특히 본 과제에서 연구하는 perfect minus dominating function에 기반을

두는 암호시스템에서 그래프를 인접행렬 A=[aij]로 공개하고, perfect minus dominating

function을 길이가 n인 column 벡터로 표현하면 컴퓨터에서 돌아가는 소프트웨어의 개발에

활용될 수 있을 것이다.

본 연구는 순수한 그래프 이론의 관점에서 K4 를 base로 하는 Topological graph theory

의 그래프 커버링 연구 및 perfect minus dominating function을 갖는 그래프 family에 대

한 연구에 활용될 수 있다. 구체적으로 PMDF을 갖는 그래프 집합은 무엇인가 하는 문제이

다. 여기서 적어도 -1 또는 0의 값을 하나 이상 갖는 PDMF 를 갖는 그래프 족은 암호에

유용하게 쓰일 수 있을 것이다 (예를 들어, K4 에는 0, 1, -1 모두 들어가는 (0,1,-1)

PMDF를 잡을 수 있다). 다음은 PMDF을 갖는 그래프 중에 minimal domination number

( = ∑v∈Vf(v)) 의 값을 구하는 문제이다. 또한 PMDF 갖는 그래프의 domination number 활

용성과 Kn 의 covering space에 어려운 PMDF 잡는 법 그리고 1, -1, 0, 1 같이 단순히

순환하는 PMDF는 안전한가 하는 문제가 연구될 수 있다.

본 연구는 또한 암호론과 관계된 복잡도 연구와 관계가 있다. 안전한 공개키 암호체계를 구

성하는 것은 one-way 함수를 얼마나 견고하게 만드느냐와 깊은 관련이 있고, 조합론의 여

러 NP-complete인 문제를 이용하면 다양한 one-way 함수를 만들 수 있다. 그런데

knapsack 문제를 이용한 공개키 암호체계에서 볼 수 있듯이, 내재된 문제가 NP-complete

이라고 해도 그 암호의 안전성이 보장될 수 없다. 따라서 NP-complete인 PDMF 문제를

기반으로 하는 공개키 암호체계도 안정성에 대한 분석이 있어야 한다. 특히 Knapsack 문제

와 같은 NP-complete 문제와 공개키 문제와 관련하여 Brassard's theorem은 어떤 가정

아래에서 NP-complete 문제가 위험한가를 밝히고 있다. Fellows, Koblitz는 그래프 문제

(Perfect dominating set)에 기반을 둔 공개키 시스템이 Brassard's theorem의 가정을 만

족시키지 않기에 Brassard's theorem에 의해 안전하지 않다고는 말할 수 없다고 주장한다.

그렇다면 새로운 관점에서 perfect minus dominating function과 같은 NP-complete 문제

에 기반을 둔 시스템에 대한 복잡도 이론을 통한 안전성 분석이 있어야 한다. 본 연구는 그

러한 후속연구에 활용될 수 있다.

Page 327: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 327 -

현실적으로 (-1, 0, 1, 1)-PMDF나 (-1, 1, 1, 1)-MDF를 갖는 regular 그래프를 만들려면

그래프 커버링을 쓰는 방법이 좋다. 그런데 regular 그래프에서 PMDF 등을 찾는 문제는

NP 이지만 이미 PMDF가 있다는 가정 아래에서 PMDF를 찾는 소위 Promising problem의

복잡도는 다를 수 있다. 또한 그래프 커버링을 사용하여 PMDF를 갖는 regular 그래프를

만들면, 상대적으로 강력한 구조를 갖는 covering graph에서 PMDF를 찾는 문제가 쉬울

수도 있다. 이러한 방향의 복잡도에 대해 연구가 필요하다. 한편, 조합론의 무수한 문제로부

터 암호시스템을 만들 수 있는 주장에 대해, 현실적으로 가능한 부분과 어려운 점을 파악한

후, 새로운 조합 암호론 (Combinatorial Cryptosystem)의 등장을 기대한다.

2. 제안 알고리즘

1) (-1, 1, 1, 1)-PDF와 공개키 암호시스템

Koblitz와 Fellows가 제안한 암호시스템에서 ∑hi qj 과 같이 불변식 값이 0인 불변식을 만

들기 위해 각 vertex에서 만드는 local 불변식은

1=a+b+c+d

의 상수배로 모두 generate 된다. 즉, PDS에서 Inv[Gv]는 하나의 generator를 갖게 된다.

이것은 공격자가 메시지를 불변식으로 decompose 하려는 linear attack을 대비할 경우 취

약성이 있다. 따라서 다양한 불변식을 제공하는 PDF가 요청된다.

Page 328: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 328 -

또한 Koblitz와 Fellows가 제안한 암호시스템에서 메시지 값 m을 키우는 문제가 있고, 또

Koblitz와 Fellows가 제안한 암호시스템에서는

p(x)=∑hj qj

과 같이 불변식의 값이 0인 global한 불변식을 사용하는데 이곳에 곱셈이 사용되기에 나올

수 있는 단항식들이 많아져서 메시지 expansion이 크게 된다. 이러한 문제점 등을 감안하

여 PDS의 일반화인 함수 version의 PDF를 정의하고 이것을 사용하여 공개키 암호시스템

을 구성하여 본다. 또한 cubic 그래프에서의 3-edge coloring function (함수값이 -1, 0,

1) 문제에 대한 불변식을 통해 vertex에서의 PDF와 edge에서의 coloring map을 두 개 혼

합하여 불변식을 만들고 PDF와 coloring map을 각각 비 키로 하는 일종의 비 분산시스

템 등에 응용될 수 있다.

가) 그래프와 (-1,1,1,1)-PDF(Perfect Dominating Function)

앞에서, PDS를 그래프의 꼭지점에 0과 1을 대응시키는 함수로 볼 수 있다. 이러한 관점을

일반화하여서 꼭지점에 -1, 0, 또는 1을 대응시키는 함수를 생각할 수 있다. 다음의 정의를

보자.

⊚ 그래프 G=(V,E):

정의 : 함수 f: V→{0,1,-1}는 G의 minus dominating function iff

∑v∈N[u]

f(v)≥1 for each u∈V

⊚ 다음을 만족시키는 Cubic 그래프에서의 함수 f를(-1,1,1,1)-perfect dominating

function((-1,1,1,1)-PDF)이라 하자. (조건)

∑v∈N[u]

f(v)=2 and f(N[u])={-1, 1} for u∈V

Page 329: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 329 -

⊚ Cubic 그래프의 경우 f의 함수값을 사용하여 (-1,1,1,1)-PDF를 vertex a의 닫힌 근방에

서의 함수값이 -1, 1, 1, 1 인 것을 나타낸다.

주어진 그래프에서 (-1,1,1,1)-PDF를 구하는 문제의 복잡도는 PDS를 구하는 문제의 복잡

도와 같다. 그 이유는 (-1,1,1,1)-PDF를 구한 경우 -1을 1로 그리고 1을 0으로 잡으면

(1,0,0,0)-PDF를 얻게 되는데, 바로 이것이 PDS가 된다.

역으로, PDS는 (1, 0, 0, 0)-PDF라고 할 수 있고, 이 때 1을 -1로 그리고 0을 1로 바꾸면

(-1,1,1,1)-PDF를 얻게 된다. 따라서 PDS를 갖는 그래프 전체의 집합이 바로

(-1,1,1,1)-PDF를 갖는 그래프의 집합이 된다. 그런데 이러한 (-1,1,1,1)-PDF에 대해서도

다음과 같이 각각 불변식을 정의할 수 있다.

나) (-1, 1, 1, 1)-PDF와 불변식

앞에서, PDS를 그래프의 꼭지점에 0과 1을 대응시키는 함수로 볼 수 있다. 이러한 관점을

일반화하여서 Cubic 그래프의 경우 f의 함수값을 사용하여 (-1,1,1,1)-PDF를 vertex a의

닫힌 근방에서의 함수값이 -1, 1, 1, 1 인 것으로 정의했다. 이러한 vertex 함수에 대해서

도 각각 불변식을 정의할 수 있다.

⊚ 그래프 G와 체 F 에 대해 F[G] 를 G의 vertex를 변수로 갖는 다항식 ring이라 하자.

만일 p(x)∈F[G]가 임의의 (-1,1,1,1)-PDF D,D'에 대해 p(D) = p(D') 성질을 만족하면

p(x)를 G의 불변식(invariant expression)이라 한다 (엄 하게는 (-1,1,1,1)-PDF에 대한

불변식이다).

Page 330: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 330 -

그리고, Inv[G] 를 G의 vertex를 변수로 갖는 불변식 전체라 하자. 이때, 불변식 값이 0인

Inv[G]의 원소들은 F[G]의 idea1이 된다. 이와 같이 그래프의 vertex를 변수로 갖는 다

항식에서, 변수를 그래프 전체에서 갖는 것을 global 불변식이라 하고, 어떤 vertex v의 근

방 N[v]에서만 변수를 갖는 불변식을 local 하다고 하자. 특별히 vertex v의 근방 N[v]

에서만 변수를 갖는 불변식의 집합을 Inv[Gv ]로 표시하자.

(그림 4-1) K4-covering graph의 예

[예] (local한 불변식) -1= abcd

0=ab+ac+ad+bc+bd+cd

2=a+b+c+d

(global한 예)

4=a+b+c+d+e+f+g+h

⊚ PDS의 경우와 같이 Inv[G]의 모든 원소들을 만족시키는 근을 구하면 그것이

(-1,1,1,1)-PDF이다. 따라서 Inv[G]의 근을 구하는 문제는 그래프 G에서 PDS 구하는 문

제와 같이 어렵다.

Page 331: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 331 -

(-1,1,1,1)-PDF 아래에서 Inv[Gv ]를 생각하자. 이 때, Inv[Gv ]는 14개의 모노미알이 나

타나게 된다. Inv[Gv ] 중에서, a, b, c, d, ab, ac, ad 만을 변수로 갖는 invariant

polynomial들을 Inv[G v ]* 라고 하자. 이 때, Inv[G v ]

* 의 원소는

y1a+y2b+y3c+y4d+y5ab+y6ac+y7ad

로 쓸 수 있다. 그런데, invariant polynomial의 정의에 의해서

-y1+y2+y3+y4-y5-y6-y7 ......(-1,1,1,1) 대입

=y1 -y2+y3+y4-y5+y6+y7 ......(1,-1,1,1) 대입

=y1 +y2-y3+y4+y5-y6+y7 ......(1,1,-1,1) 대입

=y1 +y2+y3-y4+y5+y6-y7 ......(1,1,1,-1) 대입

을 얻게 되고, 또한

y1-y2+y6+y7 =0 ......(1)

y2-y3+y5-y6 =0 ......(2)

y3-y4+y6-y7 =0 ......(3)

이 연립방정식을 풀면

y1=y4 -y5-y6

y2=y4 -y5+y7

y3=y4 -y6+y7

즉, 뒤의 네 개의 변수를 free variable 로 하여 Inv[G v ]*의 원소를 나타낼 수 있다. 따라

서 Inv[G v ]*는 다음과 같이 generator 네 개로 생성된다.

[y1 ,y2,y3,y4,y5,y6,y7 ]=y4[1,1,1,1,0,0,0]+y5[-1,-1,0,0,1,0,0]

+y6 [-1,0,-1,0,0,1,0]+y7[0,1,1,0,0,0,1]

그리고 불변식의 불변식 값은 다음과 같다.

(값)=2y 4-y5-y6+y7이를 이용하여 원하는 불변식을 간단히 만들 수 있다.

p(x)=∑hj,qj (hj∈F[G], qj∈Inv[G]의 불변식의 값은 0)

Page 332: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 332 -

다음은 (-1,1,1,1) - minus dominating function에서 만들어지는 abc, abd, acd, bcd 가

없는 불변식 모양의 예이다. 예를 들어, (-1,1,1,1) - minus dominating function에서 abc,

abd, acd, bcd 가 없는 불변식 계수 중 계수를 -3, -2, -1, 0, 1, 2, 3로 갖는 불변식의 개

수는 컴퓨터로 세어보면 108586개 였다. 간단하게, 계수를 -1, 0, 1 로 갖는 불변식 모양

은 389개로 다음은 그 중 60개를 보여준다.

--------------------------------------------------------------------

------

---

A11 polynomials that satisfy the given conditions

--------------------------------------------------------------------

------

---

-2 = -a-b-c-d-ab-ac-bc-ad-bd-cd (1개) 오른쪽 숫자는 개수를 나타냄

0 = -ab-ac-bc-ad-bd-cd (2)

2 = a+b+c+d-ab-ac-bc-ad-bd-cd (3)

-1 = -a-b-ac-bc-ad-bd-cd 4

1 = c+d-ac-bc-ad-bd-cd 5

0 = -a-b+c+d+ab-ac-bc-ad-bd-cd 6

-1 = -a-c-ab-bc-ad-bd-cd 7

1 = b+d-ab-bc-ad-bd-cd 8

0 = -a+d-bc-ad-bd-cd 9

0 = -a+b-c+d-ab+ac-bc-ad-bd-cd10

-1 = -b-c-ab-ac-ad-bd-cd11

1 = a+d-ab-ac-ad-bd-cd12

0 = -b+d-ac-ad-bd-cd13

0 = -c+d-ab-ad-bd-cd14

-1 =-a-b-c+d-ad-bd-cd15

Page 333: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 333 -

0 = a-b-c+d-ab-ac+bc-ad-bd-cd16

-1 = -a-d-ab-ac-bc-bd-cd17

1 = b+c-ab-ac-bc-bd-cd18

0 = -a+c-ac-bc-bd-cd19

0 = -a+b-ab-bc-bd-cd20

1 = -a+b+c+d-bc-bd-cd21

-2 = -a-b-c-d-ab-ac-bd-cd22

0 = -ab-ac-bd-cd23

2 = a+b+c+d-ab-ac-bd-cd24

-1 = -a-b-ac-bd-cd25

1 = c+d-ac-bd-cd26

0 = -a-b+c+d+ab-ac-bd-cd27

-1 = -a-c-ab-bd-cd28

1 = b+d-ab-bd-cd29

0 = -a+d-bd-cd30

0 = -a+b-c+d-ab+ac-bd-cd31

-1 = -b-c-ab-ac+bc-bd-cd32

1 = a+d-ab-ac+bc-bd-cd33

0 = -b+d-ac+bc-bd-cd34

0 = -c+d-ab+bc-bd-cd35

-1 = -a-b-c+d+bc-bd-cd36

0 = -a+b+c-d-ab-ac-bc+ad-bd-cd37

-1 = -a-d-ab-ac+ad-bd-cd38

1 = b+c-ab-ac+ad-bd-cd39

0 = -a+c-ac+ad-bd-cd40

0 = -a+b-ab+ad-bd-cd41

1 = -a+b+c+d+ad-bd-cd42

-2 = -a-b-c-d-ab-ac+bc+ad-bd-cd43

0 = -ab-ac+bc+ad-bd-cd44

Page 334: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 334 -

2 = a+b+c+d-ab-ac+bc+ad-bd-cd45

-1 = -a-b-ac+bc+ad-bd-cd46

1 = c+d-ac+bc+ad-bd-cd47

0 = -a-b+c+d+ab-ac+bc+ad-bd-cd48

-1 = -a-c-ab+bc+ad-bd-cd49

1 = b+d-ab+bc+ad-bd-cd50

0 = -a+d+bc+ad-bd-cd51

0 = -a+b-c+d-ab+ac+bc+ad-bd-cd52

-1 = -b-d-ab-ac-bc-ad-cd53

1 = a+c-ab-ac-bc-ad-cd54

0 = -b+c-ac-bc-ad-cd55

-2 = -a-b-c-d-ab-bc-ad-cd56

0 = -ab-bc-ad-cd57

2 = a+b+c+d-ab-bc-ad-cd58

-1 = -a-b-bc-ad-cd59

1 = c+d-bc-ad-cd60

(-1,1,1,1) - minus dominating function에서 abc, abd, acd, bcd가 없는 불변식 중 계수

를 -3, -2, -1, 0, 1, 2, 3로 갖는 불변식의 개수는 컴퓨터 실험결과 108586 개 였는데,

그 중에서 단항식에 bc, bd, cd 가 없는 것의 개수도 많았다. 한편, abc, abd, acd, bcd 가

없는 불변식 중 계수를 -2, -1, 0, 1, 2 로 갖는 불변식은 11180개 였는데, 앞에서 설명한

바와 같이 단항식에 bc, bd, cd 가 없는 이상적인 불변식 즉 Inv[G v ]*의 원소의 예 60개

를 다음에 적는다. 여기서 오른쪽에 쓰여진 번호는 11180개 중 몇 번째인가를 나타내준다.

A11 polynomials that satisfy the given conditions

------------------------------------------------------

-2 = 2a-2b-2c-2d-2ab-2ac-2ad [8646]

Page 335: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 335 -

-1 = 2a-2b-c-d-ab-2ac-2ad [8647]

0 = 2a-2b-2ac-2ad [8648]

1 = 2a-2b+c+d+ab-2ac-2ad [8649]

2 = 2a-2b+2c+2d+2ab-2ac-2ad [8650]

-1 = 2a-b-2c-d-2ab-ac-2ad [8651]

-2 = a-2b-2c-d-ab-ac-2ad [8652]

0 = 2a-b-c-ab-ac-2ad [8653]

-1 = a-2b-c-ac-2ad [8654]

1 = 2a-b+d-ac-2ad [8655]

0 = a-2b+d+ab-ac-2ad [8656]

2 = 2a-b+c+2d+ab-ac-2ad [8657]

1 = a-2b+c+2d+2ab-ac-2ad [8658]

0 = 2a-2c-2ab-2ad [8659]

-1 = a-b-2c-ab-2ad [8660]

1 = 2a-c+d-ab-2ad [8661]

-2 = -2b-2c-2ad [8662]

0 = a-b-c+d-2ad [8663]

2 = 2a+2d-2ad [8664]

-1 = -2b-c+d+ab-2ad [8665]

1 = a-b+2d+ab-2ad [8666]

0 = -2b+2d+2ab-2ad [8667]

1 = 2a+b-2c+d-2ab+ac-2ad [8668]

0 = a-2c+d-ab+ac-2ad [8669]

2 = 2a+b-c+2d-ab+ac-2ad [8670]

-1 = -b-2c+d+ac-2ad [8671]

1 = a-c+2d+ac-2ad [8672]

-2 = -a-2b-2c+d+ab+ac-2ad [8673]

0 = -b-c+2d+ab+ac-2ad [8674]

-1 = -a-2b-c+2d+2ab+ac-2ad [8675]

Page 336: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 336 -

2 = 2a+2b-2c+2d-2ab+2ac-2ad [8676]

1 = a+b-2c+2d-ab+2ac-2ad [8677]

0 = -2c+2d+2ac-2ad [8678]

-1 = -a-b-2c+2d+ab+2ac-2ad [8679]

-2 = -2a-2b-2c+2d+2ab+2ac-2ad [8680]

-1 = 2a-b-c-2d-2ab-2ac-ad [8813]

-2 = a-2b-c-2d-ab-2ac-ad [8814]

0 = 2a-b-d-ab-2ac-ad [8815]

-1 = a-2b-d-2ac-ad [8816]

1 = 2a-b+c-2ac-ad [8817]

0 = a-2b+c+ab-2ac-ad [8818]

2 = 2a-b+2c+d+ab-2ac-ad [8819]

1 = a-2b+2c+d+2ab-2ac-ad [8820]

-2 = a-b-2c-2d-2ab-ac-ad [8821]

0 = 2a-c-d-2ab-ac-ad [8822]

-3 = -2b-2c-2d-ab-ac-ad [8823]

-1 = a-b-c-d-ab-ac-ad [8824]

1 = 2a-ab-ac-ad [8825]

-2 = -2b-c-d-ac-ad [8826]

0 = a-b-ac-ad [8827]

2 = 2a+c+d-ac-ad [8828]

-1 = -2b+ab-ac-ad [8829]

1 = a-b+c+d+ab-ac-ad [8830]

3 = 2a+2c+2d+ab-ac-ad [8831]

0 = -2b+c+d+2ab-ac-ad [8832]

2 = a-b+2c+2d+2ab-ac-ad [8833]

-1 = a-2c-d-2ab-ad [8834]

1 = 2a+b-c-2ab-ad [8835]

Page 337: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 337 -

다) (-1,1,1,1)-PDF 기반 암호시스템

[키생성]

⊚ 공개키 : PDS를 갖는 cubic (3-regular) 그래프G

⊚ 비 키 : G의 (-1,1,1,1)-PDF

[암호화]

⊚ 보내려는 메시지 값 m∈Z.

⊚ 불변식 값이 0인 global한 불변식 p(x) =∑hj qj 를 만든다

(단, hj∈ F[G],

qj는 local 불변식으로부터 만든 불변식 값 0인 Inv[G] 원소) ⊚ p(x) +m으로 의 값을 암호화하고 전송한다.

[복호화]

⊚ 메시지를 받은 사람은 자신의 비 키 (-1,1,1,1)-PDF인 D를 대입하여 p(D)+m=m을

얻게 된다.

하나의 vertex v의 N[v]={v,p,q,r}에서 얻어지는 invariant polynomial들을 더해서

global한 불변식을 만들면 linear attack에 의해 local한 불변식의 합으로 decompose된다.

따라서 global한 불변식을 만들어 암호문을 전달하려면 non-linearity가 필수적이다. 이것을

위해 곱셈을 쓸 수밖에 없다.

다음은 invariant polynomial들을 더해서 global한 불변식을 만들면 linear attack에 의해

local한 불변식의 합으로 쉽게 decompose되어 불변식 값이 노출됨을 보인 것이다. 여기서

vertex는 variable이 되며 소문자로 쓰고, edge 역시 variable이 되며 vertex 두 개를 첨자

로 붙여쓴다. 그리고 coefficient는 이에 대응하는 대문자로 쓴다. 즉, vertex vi에 대응하

는 coefficient는 Vi이다. edge v iv j의 coefficient는 v i에서 정해질 때는 Vi,j이고 v j에서

정해질 때는 Vj,i 로 쓰기로 한다. 하나의 vertex에서 얻어지는 local한 invariant

polynomial은 다음과 같이 표현할 수 있다. 여기서 free variable은 Vi, Vi,j, Vi,k,Vi,l이다.

mi=Vivi+(Vi+Vi,k+Vi,l)vj+(Vi+Vi,j+Vi,l)vk+

(Vi+Vi,j+Vi,k)vl+Vi,jvivj+Vi,kvivk+Vi,lvivl

where N(vi)={vj, vk, vl }

그리고 이 불변식의 불변식 값은 2Vi+Vi,j+Vi,k+Vi,l이다.

이제 이 불변식 polynomial에 적당한 상수를 곱하여 보낸다고 하면, 보내는 불변식

polynomial은 cimi가 되고, 이 불변식의 불변식 값은 ci(2Vi+Vi,j+Vi,k+Vi,l) 이 된다. 이제

각 vertex에서 불변식을 모아 global한 invariant polynomial을 만들면 이 불변식의 값은

∑vi∈V(G)

ci((2Vi+Vi,j+Vi,k+Vi,l)

vj,vk,vi∈N(vi)

이 된다.

Page 338: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 338 -

전송되는 global한 불변식과 공개되어 있는 graph를 알았다고 하면, 다음과 같은 linear

attack으로 불변식 값을 알아낼 수 있다. 즉, 먼저 1차항들의 계수의 합을 구하고 이것을 α

라 놓는다. 이것의 값을 각각의 계수들의 합으로 쓰면

∑vi∈V(G)

ci(4Vi+2Vi,j+2Vi,k+2Vi,l)

vj,vk,vi∈N(vl)

가 됨을 알 수 있다. 그러면 α2

가 구하는 메지지가 됨을 알 수 있다.

다음의 example을 보자. 여기서 graph에서 가능한 모든 invariant polynomial을 써보자.

여기서 편의상 a를 l로 h를 8로 쓰기로 하자.

Page 339: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 339 -

(그림 4-2) K4-covering graph의 예

Page 340: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 340 -

이 예에서 위의 관계식을 확인할 수 있다. 일반적인 경우로서 14개의 variable을 가지는

invariant polynomial의 경우를 살펴보자. 이때의 invariant polynomial은 다음과 같은 형식

을 갖는다.

C1a+C2b+C3c+C4d+C5ab+C6ac+C7ad+C8bc+C9bd+C10cd+

C11abc+C12abd+C13acd+C14bcd

위 polynomial에 (1, 1, 1, -1), (1, 1, -1, 1), (1, -1, 1, 1), (-1, 1, 1, 1)을 대입하여 연

립방정식을 풀면 다음과 같은 계수space를 구할 수 있다. 이때 free variable은 11개임을

알 수 있다.

C2=C1+C6+C7-C8-C9 +C13 -C14

C3=C1+C5+C7-C8-C10+C12-C14

C4=C1+C5+C6-C9-C10+C11-C14

이때의 일정한 불변식 값은 다음과 같습니다.

(불변식값)= 2C1+C5+C6+C7-C8 -C9 -C10-2C14

vertex vi 에서의 invariant polynomial은 다음과 같다. 여기에서 C(i,t)는 vertex vi의 t

번째 계수이다. 그리고 가능한 free variable은

C(i,1),C(i,5),C(i,6),C(i,7),C(i,8),C(i,9),C(i,10),C(i,11), 그리고 가능한 것이

C(i,12),C(i,13),C(i,14)이다.

mi=C(i,1)vi+

(C(i,1)+C(i,6)+C(i,7)-C(i,8)-C(i,9)+C(i,13)-C(i,14))vj+

(C(i,1)+C(i,5)+C(i,7)-C(i,8)-C(i,10)+C(i,12)-C(i,14))vk+

(C(i,1)+C(i,5)+C(i,6)-C(i,9)-C(i,10)+C(i,11)-C(i,14))vl+

C(i,5)vivj+C(i,6)vivk+C(i,7)vivjvl+C(i,8)vjvk+

C(i,9)vjvl+C(i,10)vkvl+C(i,11)vivjvk+

C(i,12)vivjvl+C(i,13)vivkvl+C(i,14)vjvkvl

where vj,vk,vl ∈ N(vi), j<k<l

Page 341: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 341 -

라) (-1, 1, 1, l)-PDF 기반 암호시스템의 응용

앞에서 cubic 그래프에서의 3-edge coloring function (함수 값이 -1, 0, 1). 문제에 대한

복잡도 및 불변식을 언급하였다. vertex에서의 PDF와 edge에서의 coloring map을 두 개

혼합하여 불변식을 만들고 PDF와 coloring map을 각각 비 키로 하면 두 사람에게 비 키

를 분산시키고 두 비 키가 모여야 복호화를 할 수 있어서 일종의 비 분산시스템이 될 수

있다. 또한 PDF에 대해 검증자가 불변식을 줄 경우 불변식 값을 계산하여 돌려주어 PDF에

대한 정보를 누출하지 않으면서 PDF를 갖고 있음을 증명할 수 있다. 물론 이 경우 검증자

가 보낸 것이 불변식임을 확인하여야 한다. 다음은 PDF와 같이 혼용하여 사용할 수 있는

coloring에 대한 정리이다.

⊚ 그래프 G=(V,E):

⊚ 함수 f: E →{-1,0,1}는 다음 조건을 만족시킬 때 G의 3-edge coloring function이다.

(조건) 인접한 두 edge는 서로 다른 coloring값을 갖는다.

주어진 그래프에서 3-edge coloring을 구하는 문제의 복잡도는 모든 vertex가 d(≥3)개의

vertex와 인접한 경우, 3-edge coloring의 존재성을 판단하는 문제는 NP 문제임이 밝혀졌

다. 이제 (-1,1,1,1)-PDF에 대한 응용을 정리해본다.

(1) (-1,1,1,1)-PDS를 기반으로 하는 공개키 암호시스템은 하나의 메시지에 대해 많은 단

항식의 합으로 이루어진 불변식 다항식을 대응시키게 되고, 이 경우 다항식을 이루는 계수

들의 숫자가 많아지기에 하나의 메시지에 여러 개의 계수들이 대응되게 된다. 따라서 파일

등을 암호화하는 일에 (-1,1,1,1)-PDS를 사용하는 것은 부적절하다. 그러나 자신의 비자카

드 번호와 같은 간단한 메시지를 (-1,1,1,1)-PDF를 사용하면 무한히 많은 방법으로 암호화

하여 전달할 수 있다. 즉, (-1,1,1,1)-PDF 기반 암호시스템은 하나의 메시지 값에 대해 무

한히 많은 암호문을 대응시킬 수 있는 probabilistic 암호시스템이다. 따라서 신용카드 번호

와 같은 간단한 메시지를 전달할 경우 더구나 하루에도 여러 번 그 번호를 쓸 경우에는 이

와 같은 확률론적인 암호시스템이 편하다.

Page 342: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 342 -

(2) 공개된 그래프에 대해 어떤 사람이 (-1,1,1,1)-PDF를 안다고 할 때, 그것을 어떻게 증

명할 수 있는가? 테스트하는 사람이 복잡한 불변식을 하나 줄 때 (-1,1,1,1)-PDF를 아는

사람은 쉽게 불변식의 값을 구할 수 있다. 그러면서도 자신이 알고 있는 (-1,1,1,1)-PDF에

대한 정보를 누출시키지 않을 수 있다. 이러한 (-1,1,1,1)-기반 암호시스템은 인증과 서명

에 이용될 수 있다고 본다. 특별히 영지식과 관련한 인증이 가능하다고 본다.

영지식이란 어떤 정보를 알고 있을 때, 그 정보에 대한 어떤 사실도 상대방에게 공개하지

않으면서 상대방에게 자신이 그 정보를 알고 있다는 것을 납득시키는 방법을 말한다. 영지

식을 이용한 최초의 프로토콜은 1982년 Blum의 “전화 상에서 동전던지기 게임"이다. 영지

식 대화형증명 시스템을 설명하는데 두 개의 기본적인 개념이 필요하게 된다. 하나는 영지

식에 대한 개념이고 다른 하나는 대화형증명시스템 (Interactive proofs system)에 대한 개

념이다. 이러한 두 개념은 서로 종속적인 것으로 생각되어 왔으나, 대화형증명시스템은 명

백히 영지식과 독립적이다. 그러나 대화형증명 없이 임의의 프로토콜이 영지식이라고 보이

는 것은 어려운 문제이다.

Page 343: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 343 -

일반적으로 인증이라 부르는 것은 메시지 인증 (message authentication)과 사용자 인증

(entity authentication) 그리고 이러한 기능을 합친 디지털 서명(digital signature)등으로

분류할 수 있다. 사용자 인증 기능에 있어서 “당사자인 사용자 B 자신도 제3의 사용자 X에

게 A임을 증명할 수 없다"는 조건이 추가되었을 때 개인 식별(identification)이라는 사용자

인증 기능이 될 수 있다. 개인 식별이란 사용자 A가 사용자 B에게 A임을 증명할 수 있으

나, B 자신을 포함한 A 이외의 어떤 사용자도 제3의 C에게 A임을 증명할 수 없는 암호 기

법을 말한다. 개인 식별은 디지털 서명과 달리 분쟁을 일으키는 메시지를 포함하지 않으며,

다만 요청 받은 서비스를 제공할 것인지 아닌지를 실시간 내에 결정하여 처리할 수 있도록

해주는 암호에 있어서 기본적인 문제중 하나이다. 일반적으로 개인식별 방식은 안전성을 위

해 다음과 같은 조건을 만족해야 할 것이다.

① 합법적인 검증자는 합법적인 증명자를 높은 확률로 받아들일 수 있어야 한다.

② 합법적인 검증자는 불법적인 증명자를 낮은 확률로 받아 들여야 한다.

③ 불법적인 검증자는 합법적인 증명자와 다항식 횟수만큼 상호 통신하여도 어떤 사람에게

자신이 합법적인 증명자라고 흉내낼 수 있는 어떤 정보도 얻을 수 없어야 한다.

위의 조건 ③에서 불법적인 검증자는 합법적인 증명자에게서 어떠한 정보도 얻을 수 없음이

영지식의 개념과 매우 흡사하다. 여기서 비록 공개키 암호시스템이 공통키 암호 시스템보다

키 관리가 편리하고 보다 많은 정보 서비스 기술을 제공할 수 있다고 하여도 상대를 인증하

기 위해서는 공개키를 인증 해야 하는 문제가 발생함에 유의하자. 따라서 공개키 암호 시스

템에서 공개키는 공통키 암호 시스템에서 사용되는 키와 달리 제3자에게 노출된다고 하여

도 암호 시스템의 안전성에 영향을 주지 않으나 공개키를 공개 기록집(public directory)으

로 만들어 항시 보유해야만 된다.

Page 344: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 344 -

(-1,1,1,1)-PDF 기반 암호시스템을 이용하면 각 사용자가 비 키인 (-1,1,1,1)-PDF를 갖

는 그래프를 공개기록집에 올린다. 합법적인 검증자는 사용자 A를 확인하기 위해 A의 공개

키인 그래프에서 복잡한 불변식을 만들어 사용자 A에게 불변식값을 요청하고 사용자 A는

자신이 아는 비 키를 대입하여 검증자가 숨긴 불변식값을 돌려줌으로서 자신이 A임을 증

명할 수 있다. 이 경우 자신의 비 키인 (-1,1,1,1)-PDF에 대해서는 정보유출이 거의 없게

된다. 또한 검증자를 비롯한 제삼자는 비 키를 모르기에 랜덤하게 만들어지는 불변식의 불

변식 값을 맞추기는 힘들다.

참고로 1984년 Shamir는 주소, 성명 등 각 개인을 식별할 수 있는 ID(identification)을 이

용한 암호 시스템을 제안하였다. ID를 이용한 암호 시스템에서는 ID를 공개키로 사용하기

때문에 공개키를 인증할 필요성이 없어지고 따라서 공개 기록집을 작성하지 않아도 된다.

일반적으로 ID를 이용한 암호 시스템에서는 공개키에 해당하는 ID와 ID에 대응되는 비 키

가 있으며 비 키를 만드는 trusted center가 존재한다. trusted center는 암호시스템 구성

시 각 사용자가 예상하는 행동만을 한다고 가정한다. 또한 trusted center만 이 비 키를

생성할 수 있는 능력을 갖고 있으므로 trusted center 이외의 어떤 누구도 ID를 변경할 수

없다. 또한 1987년 Fiat와 Shamir는 ID를 이용한 매우 효과적인 개인 식별을 제안하였는

데, Fiat와 Shamir의 개인 식별 프로토콜은 ZKIP(Zero Know1edge Interactive Proof) 개

념에 Shamir의 ID 개념을 첨가한 매우 안전한 개인 식별 프로토콜이다.

(-1,1,1,1)-PDF 기반 불변식 뿐만 아니라 그래프 이론의 그래프동형 문제도 대화형증명시

스템에 사용될 수 있음에 주목하자. 우선 G1, G2를 n개의 vertex를 갖는 동형그래프라 하

자. 이제 증명자 P는 검증자 V에게 다음의 과정을 거쳐 공통입력으로 올라와 있는 G1과

G2사이의 어떤 동형사상 g를 알고있다고 영지식으로 증명할 수 있다.

Page 345: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 345 -

(순서1) 증명자 P는 랜덤하게 1또는 2를 잡아 i라고 하자. 또한 n개의 원소를 바꾸는 임의

의 Permutation f를 랜덤하게 잡는다. 이제 H=f(Gi)를 계산하여 H를 검증자 V에게 보낸

다.

(순서2) 검증자 V는 랜덤하게 1또는 2를 잡아 j라고 하고, j를 증명자 P에게 보낸다.

(순서3) 증명자 P는 h(Gj)=H가 되는 함수 h를 잡아 검증자에게 보낸다 (예를 들어, i=2 이

고 j=1 이면 h는 함수 g와 f의 합성함수이다).

(순서4) 검증자 V는 받은 함수 h를 통해 h(Gj)=H됨을 확인하여, 증명자 P가 G1과 G2사

이의 어떤 동형사상을 알고있다고 accept 한다.

그래프 동형 문제의 경우, 완전성은 그래프 G1, G2가 서로 동형이면 Prob(V accepts)=1

이다. 또한 이것의 건전성은 G1, G2가 동형이 아닐 때 m번 반복적으로 V가 accept할 확률

은 Prob(V accepts)=1/2m 이다.

이러한 그래프 동형 문제의 경우, 그래프 G1, G2가 서로 동형이면 Prob(V accepts)=1 이

다. 이러한 성질을 완전성(completeness)이라 한다. 또한 G1, G2가 동형이 아닐 때 m번

반복적으로 V가 accept할 확률은 Prob(V accepts)=1/2m이다. 이러한 성질을 건전성

(soundness)이라 한다. 또한 이렇게 완전성과 건전성이 있는 대화형 프로토콜을 대화형 증

명시스템이라 한다. 또한 완전영지식 (perfect zero-knowledge)이란 검증자 V가 증명자

P와의 통신을 통해 얻을 수 있는 정보는 기껏해야 검증자 V 자신이 스스로 계산할 수 있

는 것과 다를 것이 없는 경우를 말한다. G1, G2를 n개의 vertex를 갖는 동형그래프라고 할

때, 그래프 동형문제를 이용한 완전영지식 대화형 증명시스템이 가능하다. 예를 들어, 증명

자 P는 검증자 V에게 앞에서 설명한 과정을 거쳐 G1과 G2사이의 어떤 동형사상 g를 알고

있음을 영지식으로 증명할 수 있었다. 이때, 검증자 V가 P와의 통신을 통해 얻는 정보는 다

음과 같은 확률적 다항식 시간 알고리즘 튜링기계인 simulator MV를 통해 만들어 낼 수

있다. 여기서 simulator MV는 공통입력 G1, G2에 대해 다음 알고리즘 과정을 거쳐 output

을 낸다.

input ( G1, G2)

repeat

guess randomly i∈{1,2}

guess randomly π∈{n-pennutation}

Let H=π(Gi)

Simulate V on input ( G1, G2) with the Prover's

first message H and determine which j∈{1,2}

the verifier V puts on the communication channel

until j=i

output (H,i,π)

Page 346: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 346 -

Page 347: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 347 -

암호화 프로토콜은 암호 알고리즘이 포함된 통신 알고리즘이다. 바람직한 암호화 프로토콜

은 안전성이 있고 또한 효율성이 있는 것이어야 한다. 예를 들어, A가 다항식 횟수만큼 B

와 통신하여 어떤 정보를 얻어 이것을 사용하여 A가 C에게 자신이 B인 것처럼 흉내낼 수

있다면 문제가 있다. 특별히 개인식별을 위한 암호화 프로토콜이 이러한 문제점을 갖고 있

다면 치명적이다. 이러한 문제점을 제거시키는 방법으로 여러가지를 생각할 수 있으나, 가

장 효율적이고 안전한 방법은 영지식을 이용하는 것이다. 여기서 (-1,1,1,1)-PDF와 같은

공개키 암호시스템과 관련하여 인증-서명과 영지식에 대해 언급한다.

인증 방식을 실현하는 두 개의 기본형을 생각할 수 있는데, 하나는 일체형이고 다른 하나는

분리형이라고 불리어진다. 먼저 일체형에서는 2개의 변환 알고리즘 P와 그 역변환 P-1이

각각 키 Kp와 K p-1에 의해서 변환되는 암호화ㆍ복호화 알고리즘을 형성하고 있다. 출력 메

세지 M'이 의미가 있는 것이라면, 상대방 사용자 및 메시지가 정확한 것으로 인증되어질

수 있다. 분리형은 메시지 M을 압축하는 어떤 알고리즘을 사용하는 것으로 hash function

h를 사용하여 메시지를 압축한다. P와 P-1는 일체형과 마찬가지로 키 Kp와 K p-1에 의하

여 변환되는 2개 알고리즘이다. 또한 S는 인증자(authenticator)라고 말하며, 수신된 인증

자 S'을 복호화 하는 알고리즘 P-1를 적용하여 얻어진 값 P-1(S')와 수신된 메시지 M'에

hash function h를 적용하여 얻은 h(M')값과 일치하는가 않는가에 의하여 메시지 및 상대

사용자를 인증할 수 있다.

Page 348: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 348 -

구체적인 실현 방법으로는 키 Kp및 K p-1에 의해서 변환되는 알고리즘인 P와 P-1를 비

키 암호시스템이며 표준 암호 알고리즘으로 잘 알려져 있는 DES암호, FEAL암호 등을 암호

화ㆍ복호화 알고리즘에 적용하거나 RSA암호를 비롯한 공개키 암호시스템의 복호화 알고리

즘을 인증 생성 알고리즘으로 암호화 알고리즘을 인증을 확인하는 알고리즘으로 사용하는

방법을 생각할 수 있다. 그러므로 공통키 암호시스템을 적용할 경우에는 Kp=k p-1=K (비

)이며, 공개키 암호시스템을 적용할 경우에는 Kp=KD (비 ), Kp-1=KE(공개) 및

EKE(DKD (M))=M이 성립되어야 한다. 공통키 암호 시스템의 인증 방식을 일체형에 적용할

경우 실현 가능한 인증 시스템은 제약 조건이 적은 사용자 인증과 메시지 인증을 동시에 실

현할 수 있다. 그러나 이 경우 모든 메시지에 대하여 암호화 및 복호화 처리를 하여야 한

다. 반면 분리형으로 실현할 경우에는 정보를 보호하는 보호 기능은 손실되나 hash

function을 이용하여 메시지 M을 압축하기 때문에 암호화ㆍ복호화 처리를 하는 데이터 양

은 매우 적게 될 수 있다.

2) (-1,0,1)-PMDF와 공개키 암호시스템

Koblitz와 Fellows가 제안한 암호시스템에서는 K4-covering graph를 공개키로 한다. 그런

데 K4-covering graph에는 PDS가 서로 disjoint 한 것이 4개 존재한다. 그런데 하나만 존

재하는 그래프에서도 정의할 수 있는 (-1,1,1,1)-PDF 기반 암호시스템을 K4-covering

graph에서 구현한 이유는 connected인 K4-covering graph를 쉽게 생성할 수 있기 때문

이다.

그런데 일반적인 주어진 (planar) cubic 그래프가 perfect dominating set 또는

(-1,1,1,1)-PDF를 갖는지를 판단하는 문제는 NP 문제이지만 (Kratochvil, 1994), 그 그래

프 집단의 부분집합 K4-covering graph 전체에서의 PDS 문제에 대한 복잡도가 밝혀지지

않았다. 따라서, 일반적인 cubic 그래프에서 비 키를 잡는 방법을 개발하든지, 또는 K4

-covering graph 전체에서의 PDS 문제에 대한 복잡도를 보여야 한다.

Page 349: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 349 -

그런데 주어진 cubic graph에 서로 disjoint한 PDS 4개가 존재한다는 것은 곧 그래프가

K4 covering graph라는 것이고, 일반적으로 주어진 cubic 그래프가 K4- covering graph

인지를 판정하는 문제는 NP-complete 문제이다.

따라서 4개의 PDS에 해당하는 (-1,0,1)-PMDF를 기반으로 K4 covering graph에서 암호

시스템을 구축하는 문제를 생각하게 되었다. 여기에서는 2개의 PDS에 해당하는 (-1, 0,

1)-PMDF를 기반으로 K4 covering graph에서 암호시스템을 구축하고 간단한 응용을 살펴

본다.

1) 그래프와 (-1,0,1)-PMDF

앞에서, PDS를 그래프의 꼭지점에 0과 1을 대응시키는 함수로 볼 수 있다. 이러한 관점을

일반화하여서 꼭지점에 -1 ,0, 또는 1을 대응시

정의 : ⊚ 함수 f: V → {0, 1, -1}는 G의 minus dominating function when ∑v∈N[u]

f(v)≥1

for each u∈V

⊚ 함수 f는 (0,1)-perfect minus dominating function ((0,1)-PMDF) when

∑v∈N[u]

f(v)=1 and f(N[u]) = {0,1 } for u∈V

⊚ 함수 f는 (-1,0,1)-perfect minus dominating function ((-1,0,1)-PMDF) when

∑v∈N[u]

f(v)=1 and f(N[u]) = {-1, 0,1 } for u∈V

여기서 (0,1)-PMDF는 바로 perfect dominating set과 같은 개념이다.

Page 350: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 350 -

(예) f: V → {0,1,-1}가 a, b에서 -1의 값을, c, d에서 0의 값을 그리고 다른 vertex에서

1의 값을 가진다면, 함수 f는 다음 그래프의 (-1, 0, 1) - PMDF가된다.

(그림 4-3) (-1, 0, 1) - PMDF 갖는 G

만일 그래프 G의 인접행렬을 A 라고 하고 (-1, 0, 1) - PMDF 함수를 나타내는 벡터를 f

라고 하면 ꀎ

︳︳︳

︳︳︳A+Iꀎ

︳︳︳

︳︳︳f =ꀎ

︳︳︳

︳︳︳

1⋯1

가 된다. 따라서 주어진 그래프에서의 (-1, 0, 1) -

MDF 문제는 행렬방정식ꀎ

︳︳︳

︳︳︳A+Iꀎ

︳︳︳

︳︳︳f =ꀎ

︳︳︳

︳︳︳

1⋯1

에서 f를 구하는 문제와 같고, 또한 그

문제는 행렬방정식을 이루는 몇 개의 방정식으로 이루어진 연립방정식을 푸는 문제와 같다.

예를 들어, 다음의 Cubic 그래프를 보자.

(그림 4-4) cubic그래프

Page 351: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 351 -

vertex를 a ,b, c, d, e, f, g, h 순서로 정렬하여 그래프의 인접행렬을 구하면 다음과 같다.

이때, 그래프의 (-1, 0, 1) -PMDF를 구하라는 문제는 다음과 같은 행렬방정식에서의 모르

는 벡터 x를 구하는 문제와 같다 (단 벡터 x의 성분은 -1, 0 ,1 이며 성분의 합은 4이다).

앞에서 함수 f: V → (-1, 0, 1)는 perfect minus dominating function

when ∑v∈N[u]

f(v)=1 for every u∈V

또한 함수 f는 (0, 1)-PMDF when PMDF f가 ( f(N[v] ) = {0, 1}이고, 함수 f는(-1, 0,

1) -PMDF when PMDF f가 f(N[v]) = {-1, 0, 1} 임을 정의했다. 이 때, Cubic 그래프

G에 대해서 다음과 같은 정리를 얻을 수 있다.

Page 352: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 352 -

정리 4.1.1. G가 (0, 1) -PMDF를 갖는다 if and only if 그래프 G가 Perfect dominating

set를 갖는다.

[증명] G가 (0, 1) -PMDF를 갖는다면 1의 값을 갖는 vertex만 모으면 그것이 바로 PDS

집합이 된다. 이제 G가 Perfect dominating set를 갖는다면 PDS에 들어 있는vertex의 함

수값을 1로 나머지는 0으로 주면 (0, 1) -PMDF가 만들어진다. ■

정리 4,1,2. G가(-1, 0, 1, 1) -PMDF를 갖는다 if and on1y if 그래프 G에 두 개의

perfect dominating set P, Q가 존재해서 P와 Q가 disjoint 하다.

[증명] G가(-1, 0, 1, 1) -PMDF를 갖는다면 -1의 값을 갖는 vertex만 모아 P라는 집합을

만들고, 0의 값을 갖는 vertex를 모아 Q라는 집합을 만들면 G에 두 개의 perfect

dominating set P, Q가 존재해서 P와 Q가 disjoint하게 된다. 이제 그래프 G에 두 개의

perfect dominating set P, Q가 존재해서 P와 Q가 disjoint한다면 P에 속한 점에 -1을, Q

에 속한 점에 0을 그리고 나머지 점에 1을 배당하는 함수를 생각하면 이것이 (-1, 0, 1,

1)-Perfect dominating function임을 쉽게 보일 수 있다. ■

정리 4.1.3. G가 K 4 covering graph이다 if and only if 그래프 G에 세 개의 (따라서 4개

의) perfect dominating set P, Q, R가 존재해서 P와 Q와 R이 서로 서로 disjoint하다.

Page 353: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 353 -

[증명] G가 K 4 covering graph 라면 각 fiber에서 하나의 fiber를 P로, 다른 하나는 Q로,

그리고 나머지 두 개의 각 fiber를 R (그리고S)라면 그래프 G에 세 개의 (따라서 4개의)

perfect dominating set P, Q, R가 존재해서 P와 Q, R이 서로 서로 disjoint하다. 역으로

그래프 G에 세 개의 (따라서 4개의) perfect dominating set P, Q, ,R ,S가 존재해서 P와

Q와 R 그리고 S가 서로 서로 disjoint하다면 P, Q ,R, S를 각각의 fiber로 보면 edge들이

P, Q, R, S사이에만 일대일 대응이 존재하고 P, Q , R, S안에는 edge가 없음을 보일 수 있

다. 따라서 G는 K 4 covering graph가 된다. ■

다음은 정리 4.1.1, 4.1.2, 4.1.3에 대한 예이다. 먼저 G가 (0, 1) -PMDF를 갖지만 G가

(-1, 0, 1) -PMDF를 갖지 않는 다음의 예를 보자 .여기서 a, b, c는 그래프 G에서의 유일

한 PDS이다.

(그림 4-5)

(0, 1) -PMDF를 갖지만 (-1, 0, 1) -PMDF를 갖지 않는 그래프의 예

다음은 G가 (-1, 0, 1) -PMDF를 갖지만 K 4 -covering graph는 아닌 예이다. 여기서 a,

b와 c, d는 G에 존재하는 두 쌍의 PDS이다.

Page 354: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 354 -

(그림 4-6) (-1, 0, 1)-PMDF 갖는 G

다음은 G가 K 4 -covering graph인 예이다. 여기서 a, e와 b, f와 c, g와 d, h는 네 쌍의

PDS가 된다.

Page 355: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 355 -

(그림 4-7) K 4-covering 그래프의 예제들

일반적으로 regular cubic graph가 (-l, 0, 1, 1)-perfect minus dominating function을 갖

는지를 판단하는 문제는 그 cubic 그래프에 서로 disjoint한 PDS두 개가 있는가를 질문하는

것이기에 PDS 문제만큼의 복잡도가 있다고 생각된다.

나) (-1, 0, 1)-PMDF와 불변식

한 vertex 근방을 중심으로 불변식을 만들 경우, 한 vertex a와 인접한 vertex들이 b, c, d

라면 a, b, c, d, ab, ac, bc, ad, bd, cd, abc, abd, acd, bcd, abcd 들의 단항식 들이 사용

될 수 있다. 그런데 Koblitz와 Fellows가 사용한(0, 0, 0, 1)-PDS에서는 불변식이

a+b+c+d=1 과 ab=ac=ad=bc=bd=cd=0

이 주요한 불변식이다. 또한 컴퓨터에서 불변식을 생성해보면 단조로운 모양과 대칭성이 있

는 것만 생성된다.

Page 356: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 356 -

그러나(-1, 0, 1) -PMDF 함수 기반 시스템에서 생성해보면 다음의 예에서 보듯이 대칭성

이 없는 다양한 불변식을 만들 수 있다. (다음은(-1, 0, 1)-PMDF 함수 기반시스템에서 계

수를 -2, -1, 0, 1, 2로 가지는 불변식의 예).

그래프에서 a의 근방:

(그림 4-8) 그래프에서 a 근방

기본 불변식 모양 0 = abcd

1 = a+b+c+d

-1 = ab+bc+cd :

생성할 수 있는 불변식 모양의 예:

1 = a+c-d-ac+ad+2bd+cd-2abd-acd-2bcd

2 = 2a+b+2c-ac+ad+2bd+cd-2abd-acd-2bcd

3 = 2a+b+c+2d+bc-ad-2abc-abd-acd-2bcd

4 = 2a+b+2c+2d-ac-ad-cd-2abc-2abd-acd-2bcd

5 = a+b+c+d-2ab-2ac-2bc-2ad-2bd-2cd-2abc-2abd-2acd-2bcd

6 = 2a+2b+2c+2d-2ab-2ac-2bc-2ad-2bd-2cd-2abc-2abd-2acd-2bcd

-2 = -2a-2b-2c-2d+2ab+2ac+2bc+2ad+2bd+2cd-2abc-2abd-2acd-2bcd

-1 = -b-2c-2d-ab+bc+bd+2cd-acd-2bcd

0 = a-c-d-ab+bc+bd+2cd-acd-2bcd

Page 357: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 357 -

위의 예, 예를 들어, 3 = 2a+b+c+2d+bc-ad-2abc-abd-acd-2bcdb에서 볼 수 있듯이 비

대칭형이면서 불변식의 값이 3인 것을 본다. 그런데 (0,1)-PMDF 즉 PDS 에서는 불변식

값이 1 보다 큰 것은 모두 대칭형이다. 따라서 불변식 값을 이용하여 암호화할 때 큰 수 값

을 암호화하기가 어렵다. Fellow-Koblitz 시스템은 0과 1만 사용한다 .따라서 단항식 Xi

는 X로 reduce 될 수 있다. PMDF 시스렘에서는 0, 1, -1이 사용되기에 Xi는 X 또는 X 2

로 reduce 될 수 있다. Fellow-Koblitz 시스템에서는 ab, abc 등은 0이다. 반면 Perfect

minus dominating function을 이용하여 제안된 시스템에서는 abcd만이 0이다.

다) (-1, 0, 1)-PMDF 기반 암호시스템

[키 생성]

o 공개키 : (-1, 0, 1)-PMDF를 갖는 cubic (3-regular) 그래프 G

o 비 키 : G의(-1, 0, 1, 1)-PDF

[암호화]

o 보내려는 메시지 값 m ∈ Z.

o 불변식 값이 0인 global한 불변식 p(x)=∑h j q j 를 만든다

(단, h j∈F[G], q j는 local 불변식으로부터 만든 불변식 값 0인 Inv[G] 원소)

o p(x) + m으로 m의 값을 암호화하고 전송한다.

[복호화]

o 메시지를 받은 사람은 자신의 비 키 (-1, 0, 1, 1)-PMDF인 D를 대입하여 p(D) + m =

m 을 얻게 된다.

Page 358: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 358 -

하나의 vertex v의 N[v]={v, p, q, r)에서 얻어지는 invariant polynomial들을 더해서

global한 불변식을 만들면 linear attack에 의해 local한 불변식의 합으로 decompose된다.

따라서global한 불변식을 만들어 암호문을 전달하려면 non-linearity가 필수적이다. 이것을

위해 곱셈을 쓸 수밖에 없다.

다음은 invariant polynomial들을 더해서 global한 불변식을 만드는 초기의 과정을 예로 설

명한다. 다음을(-1, 0 1)-PMDF를 갖는 공개된 Cubic 그래프 G라고 하자.

(그림 4-9) (-1, 0, 1)-PMDF

비 키 : G의 (-1, 0 1)-PMDF 함수 f: V → {0, 1, -1} 예를 들어, f는 a, e에서 -1의 값

을, b, f에서 0의 값을 그리고 c ,d, g, h에서 0의 값을 갖는다고 하자. 그런데 각 vertex의

근방에서 다음과 같은 불변식을 볼 수 있다.

a의 근방에서 1 = a+c-d-ac+ad+2bd+cd-2abd-acd-2bcd

b의 근방에서 2 = 2a+b+2h-ah+ag+2bg+gh-2abg-agh-2bgh (c->h, d->g)

c의 근방에서 3 = 2a+f+c+2h+cf-ah-2acf-afh-ach-2cfh (b->f, d->h)

d의 근방에서 4 = 2a+f+2g+2d-ag-ad-dg-2afg-2adf-adg-2dfg (b->f, c->g)

e의 근방에서 (a->e, b->f, c->g, d->h)

Page 359: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 359 -

5 = e+f+g+h-2ef-2eg-2fg-2eh-2fh-2gh-2efg-2efh-2egh-2fgh

f의 근방에서 (a->f, b->e)

6 = 2f+2e+2c+2d-2ef-2cf-2ce-2df-2de-2cd-2cef-2def-2cdf-2cde

g의 근방에서 (a->e, c->g)

-2 = -2e-2b-2g-2d+2eg+2ce+2bg+2de+2bd+2dg-2beg-2bde-2deg-2bdg

h의 근방에서 (a->e, d->h)

-1 = -b-2c-2h-be+bc+bh+2ch-ceh-2bch

이 불변식을 모두 더하면

18 =

-2fgh-2abd-2def-ac-2acf-2bch-2adf+7a-2b+5f+g+2c+3h-2cde-2deg-cd

-2ah-gh-cf+dg-be-be+bc+bh+4bd+4bg-4ef-2egh-2beg+d+e-acd-agh-afh

-ach-adg-2bdg-2cdf-2cef-2efh-2efg-2dfg-2afg-2cfh-2bgh-2abg-ceh

-2bcd-2fg-2eh-2fh-2df+2ch

따라서 18을 오른쪽으로 보내면 불변식의 값이 0인 불변식을 만들게 된다. 여기서 f의 근방

에서 (a->f, b->e) 에서의 불변식

6 = 2f+2e+2c+2d-2ef-2cf-2ce-2df-2de-2cd-2cef-2def-2cdf-2cde

과 g의 근방에서 (a->e, c->g)에서의 불변식

-2 = -2e-2b-2g-2d+2eg+2ce+2bg+2de+2bd+2dg-2beg-2bde-2deg-2bdg

이 더해질 경우 위와 아래에 있는 공통인 단항식 들끼리 더해지고 빼지게 된다 (예를 들어,

위에서의 2e와 밑에서의 -2e가 합해져 없어진다). 이러한 이유로 합을 하였을 경우 불변식

을 이루는 항들이 서로 간섭을 주고받아 합해진 식을 복잡하게 만든다. 그런데, f 근방에서

의 불변식에 나오는 단항식 -2cef나 -2def등은 다른 vertex 근방에서의 불변식에 나오지

않는다 (만일 주어진 그래프에 삼각형이 없으면 그런 일이 나타난다). 따라서 합해진 식에

서 그 단항식들의 계수를 보면 합해지기 전의 단항식의 계수를 알아낼 수도 있다. 이런 이

유로 3개의 문자가 있는 항은 더해질 때 복잡도를 크게 일으키지 않는다고 볼 수 있다.

Page 360: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 360 -

또한 공개된 그래프에 사각형이 없다면 a 근방에서의 불변식에 나오는 cd와 같은 항이 다

른 곳에서 나오기 어렵다 (위의 예에서는 acfd가 사각형을 이루기에 a의 근방과 f의 근방에

서 c와 d 모두를 볼 수 있다). 따라서 a 근방에서의 불변식에 나오는 bc, bd, cd의 항도 복

잡도를 크게 증가시키지 않을 수도 있다. 이러한 이유로 a 근방에서의 불변식에 나오는 a,

b, c, d, ab, ac, ad 의 7개항이 복잡도를 향상시키는 역할을 하게 된다.

정리하면, 불변식 모양에 나타나는 bc, bd, abc, abd, acd, bcd에 의해 각 vertex로 치환되

는 단항식들은 각 근방의 불변식을 더할 때 서로 간섭하는 일이 없기에 (공개된 그래프에

삼각형과 사각형이 없는 경우) 각 vertex에서 상수배를 하는 경우 만들어진 불변식에서 그

정보가 노출되기 쉽다. 또한 bc, bd, abc, abd, acd, bcd 등의 단항식을 사용하는 경우 각

vertex에서의 불변식이 너무 많은 항을 갖기에 암호와 과정에 시간이 많이 든다. 이런 이유

로 불변식 모양에 a, b, c, d, ab, ac, ad 로만 이루어진 불변식이 암호와 과정에 유용함을

알 수 있다.

그런데 불변식 모양에 a, b, c, d, ab, ac, ad 로만 이루어진 불변식이 (-1, 0 1, 1)-PMDF

시스템에서는 찾기가 어려웠다. 그래서 -1, 0, 1을 함수값으로 하는 새로운 MDF를 생각하

게 되었는데, 함수의 값을 모두 더한 것이 1이 될 필요는 없기에 확장하여 2가 되는 시스템

중(-1, 0, 1) - PMDF 시스템 대신에 (-1, 1, 1, 1) - MDF 시스템에서 좋은 성질이 발견

되었다. 여기서 절대값이 1이 넘는 함수값을 갖는 시스템도 생각할 수 있으나 절대값이 1

이하인 함수값을 갖는 시스템에서는 a n 이 a, a 2 으로 바뀔 수 있기에 불변식을 곱할 경

우 나타날 수 있는 단항식들의 개수가 유한하게 된다. 따라서 복잡한 곱셈을 도입할 경우

절대값이 1 이하인 함수값을 갖는 시스템이 바람직하다. 이런 이유로 앞장에서 (-1, 1, 1,

1) -PMDF 함수를 생각하게 되었다.

Page 361: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 361 -

라) (-1, 0 1)-PMDF 기반 암호시스템의 응용

앞에서 G가 (-1, 0 1, 1)-PMDF를 갖는다 if and only if 그래프 G에 두개의 perfect

dominating set P, Q가 존재해서 P와 Q가 disjoint함을 보였다. 만일(-1, 0 1, 1)-PMDF를

기반으로 하는 불변식을 통해 메시지가 왔다면 해독하기 위해 두 개의 서로 disjoint한 PDS

P와 Q가 필요하게 된다. 이런 경우 P, Q를 두 사람에게 각각 나누어주었다면 두 사람이 모

여야 P와 Q를 각각 불변식에 대입하여 메시지 값을 알아낼 수 있다.

물론 한 개의 PDS를 아는 경우 나머지 하나를 알아낼 수 있는 문제의 난이도에 따라 비

키를 두 사람에게 나누어주는 응용시스템이 의미가 있다. 일반적으로 이와 비슷하게 비 을

분산시키는 비 분산스킴(secret sharing scheme)은 dealer가 하나의 비 정보를 여러 조

각으로 나누어 할당치를 다른 통신참가자 들에게 분배한 후, 필요시에 합법적인 참가자들에

게서 비 조각들을 받아 현재의 비 정보를 재구성하는 프로토콜을 말한다. 비 분산스킴

에서, 참여자의 임의의 부분집합이 비 정보에 관한 약간의 정보를 획득할 수 있다는 말은

곧 그 부분 집합의 참가자들이 온전한 비 정보를 결정할 수 있다는 말이 성립할 때 그 비

분산 시스템을 완전 비 분산스킴(perfect secret sharing scheme)이라 한다. 이는 완

전 영지식 증명시스템의 개념과 비슷하다. 일반적으로 비 분산 프로토콜의 안전을 위해

다음의 두 조건이 중요하다.

① dealer가 각 참가자들에게 분배한 각각의 비 조각에 대한 privacy가 보장되어야 한다.

이를 위해 영지식이 이용된다.

② 원래의 비 정보를 결정할 수 있는 집단들 이외의 다른 그룹들은 원래의 비 에 대한

어떠한 정보도 알 수 없어야 한다.

Page 362: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 362 -

완전 비 분산스킴은 위의 두 조건에 완전성 조건이 첨가된다. 완전성 조건이란 참여자의

어떤 부분집합이 비 정보에 관한 약간의 정보를 획득할 수 있다는 말은 곧 그 부분집합의

참가자들이 온전한 비 정보를 결정할 수 있다는 말이 성립하는 조건이다. 비 분산스킴

(SS: simple secrete sharing scheme)의 예로서, 어떤 분배자가 임의로 Zp(p:소수)에서 계

수를 갖는 t차의 다항식 P를 선택하여 P(0)의 값이 자신이 갖고 있는 비 값 s와 같도록

만들었다하자. 이제 분배자는 각각의 참가자 i에게 문자열 P(i)를 그의 할당으로 준다. 이후,

모든 참가자들이 자기가 받은 P(i)값을 내놓을 때 우리는 다항식 P를 거꾸로 만들 수 있고,

따라서 비 값 P(0)를 얻을 수 있다.

(예: 비 Password 분배) 한국의 대통령이, 만약 그가 죽게 되면, 그의 장관들이 그 나라

의 방어 체계에 대한 비 암호(password)를 알기를 원한다. 그러면 그는, 그가 아직 살아있

을 때, 비 조각을 나누어 준 후, 그가 죽었을 때만 단계 2를 수행하여 원래의 비 을 복

구하라고 명령한다. 그가 대다수의 장관들이 그의 명령을 따를 것이라고 믿을 때, 그 비

암호는 그가 살아 있을 동안 비 로 남아 있을 것이다. 그가 만약 죽는다면, 다시 대다수의

장관들이 단계 2에 참여할 것이기 때문에, 그 암호는 복구될 것이다.

참여자의 할당치는 dealer가 비 리에 참여자에게 주는 정보인데, 비 분산스킴의 실제적

인 수행에서는 가능한 작게 할당치의 크기를 유지하는 것은 중요하다. 왜냐하면 참여자가

할당치를 저장하는 가장 안전한 장소는 그 자신의 기억이기에 만일 그의 할당곳이 너무 크

다면 그는 그의 할당치를 어떤 곳에 적어 놓기가 쉽기 때문이다. 물론, 이것은 스킴의 안정

성을 떨어뜨릴 것이다. 이제 분배자(dealer)는 비 정보인 key를 갖고, 비 을 나누어 받을

통신참석자의 유한집합을 P라고 하자. 또한 비 조각으로부터 본래의 비 을 재구성 할 수

있는 참가자들의 모임들을 모은 access structure를 Γ라고 하자. 여기서 Γ는 P의 부분집합

들의 집합이 된다. access structure로서 Γ를 갖는 sharing scheme은 dealer가 각각의 참

여자에게 할당치를 나누어 주어서, 참여자의 부분집합이 그 key를 결정할 수 있는 필요충

분조건이 Γ의 부분집합이 되도록 하는데 사용할 수 있는 방법이다. 어떤 비 분산 시스템

에서, 참여자의 임의의 부분집합이 비 정보에 관한 약간의 정보를 획득 할 수 있다는 말은

곧 그 부분집합의 참가자들이 온전한 비 정보를 결정할 수 있다는 말이 성립할 때 그 비

분산시스템을 완전 비 분산스킴이라 한다. 완전비 분산스킴의 첫번째 구성은

Blakley[B3]와 Shamir[S1]의 threshold scheme이었다. threshold scheme에서는, access

structure가 Γ={A⊆P: ∣A∣≥t}인 threshold t가 존재한다. 예를 들어, 참가자의 집합 P가

{ a, b, c }이고 비 을 재구성할 수 있는 참가자들의 모임을 모은 access structure Γ가 {

{a,b}, {b,c}, {a,b,c} }라고 하자. 다음의 표는 주어진 참가자와 access structure에 사용

될 수 있는 완전비 분산스킴을 보여준다.

Page 363: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 363 -

[표 4-1] 완전비 분산스킴의 예

D a b c

1 1 2 1

1 2 0 2

1 0 1 0

2 1 0 1

2 2 1 2

2 0 2 0

0 1 1 1

0 2 2 2

0 0 0 0

예를 들어, dealer가 1이라는 비 을 분산시킨다 한다. 위 표에서 맨 왼쪽에 비 값 1이 쓰

인 행은 1, 2, 3행이다. Dealer는 랜덤하게 그 중 한행 (예를 들어 1행)을 뽑아 참가자 a,

b, c 에게 각각의 할당치 sa=1, sb=2, sc=1을 나누어준다. 비 을 복구하기 위해 합법적인

참가자들이 모였을 때, 그들은 s b- s a (mod3) 또는 s b- s c (mod3)를 계산하여 원래의 비

을 복구할 수 있다. 여기서 s a= s c 이기에 a와 c두 사람은 비 에 대한 어떤 정보도 얻

을 수 없음에 주목하자. 즉, a와 c가 계산한 값이 본래의 비 값일 확률은 a와 c가 랜덤하

게 정한 수가 비 값일 확률과 같다. 위의 표에서 dealer가 사용할 수 있는 비 정보들의

개수와 a, b, c에게 할당치로 줄 수 있는 수의 개수가 같음에 주목하자. 이를 일반화하여

이제 비 정보 key들의 집합을 K라 하고, secret sharing scheme에 사용되는 할당치의 집

합을 S라 하자. 즉, 각 참여자에 대한 할당치 s는 S의 원소이다 (s∈S). 이때, 비 분산스킴

의 정보율은 log 2∣K∣

log 2∣S∣ 으로 정의되는데, 정보율이 1일때의 완전 비 분산스킴을 ideal

이라고 한다.

만약 B∈Γ 이고 B⊆C 인 것이, 임의의 B, C⊆P에 대하여, C∈Γ임을 의미할 때, 집합 P의

부분집합들의 집합인 Γ를 monotone이라 한다. Ito er al.과 Benaloh와 Leichter 등은 또

한, P의 임의의 부분집합의 monotone set에 대하여, access structure로 Γ를 갖는 완전비

분산스킴이 존재한다는 것을 보였다. 그러나 Ito er al과 Benaloh와 Leichter의 구성 모

두에 대하여, 정보율은 ︳P︳ 안에서 지수적으로 작을 수 있다.

Page 364: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 364 -

정의들을 좀 더 간단히 하기 위하여, 우리는 동일한 행이 존재하지 않는 유한행렬, M을 정

의하자. M의 열을 참여자의 집합 P로 놓고, 행이 r이고 열이 p인 M의 entry를 M(r, p)로

나타낸다. 첫 번째 열을 p 0로 나타내고 p 0는 항상 그의 할당치로 key를 받는다고 가정하

자. 때때로 이러한 특별한 참여자 p 0를 dealer를 생각하는 것이 좋다. p∈P에 대하여,

S(p)={M(r, p): r은 M의 행}이라 하자. 즉 S(p)는 열 p를 차지하는 원소들의 집합이고 S

( p 0)= K이다. dealer는 균등한 분배를 위해 먼저 M(r, p 0)=α인 행렬의 행 r을 뽑은 후 각

각의 참여자 p∈P 에게 할당치로 M(r, p)를 준다. 이때, 그 행렬은 모두에게 알려진 것이지

만 r에 대한 dealer의 선택은 비 로 남게 된다.

이제 A⊆P 라 할 때, 각 참여자 a∈A는 αa인 행 r을 뽑았다는 것을 알 것이다. A⊆P에 대

하여, M(r,A)가 A에 의해 index된 열로 제한된 M에 속하는 행 r이라 하자. 여기서 access

structure Γ를 정의하는 것은 쉽다. 부분집합 A⊆P가 Γ에 속하는 필요충분조건은

M(r,A)=M(r,A) 인 행 r과 r이 또한 M(r, p 0)=M(r, p 0)를 만족한다는 것이다. 주어진 부분

집합 A⊆P와 b∉A인 참여자 b∈P에 대하여, 만약 M의 모든 행 r과 β∈S(b)에 대하여, 모

든 a∈A에 대하여 M(r,a)=(r',a)이고 M( r ',b)=β인 r'이 존재한다면, A가 b에게 준 할당치

에 대한 정보를 알 수 없다고 하고 기호 A↛b를 사용하여 나타낸다.

기호로 A↛b 는 ∀r∀β∃r ' : M(r,A) = M( r ',A) 그리고 M( r ',b) = β와 동치이다. 그렇지

않으면, 우리는 A가 b에 관한 어느 정도의 정보를 가지고 있다고 말하고, A→b로 나타낸다.

만약 A에 속하는 참여자들 위에서 동일한 모든 행들이 b위에서 동일하다면, A는 b 에게 준

할당치를 "안다"고 말하고, A⇒b로 나타낸다. 기호로, A⇒b는 M(r,A) = M( r ',a)인 모든 r

과 모든 r'에 대하여 M(r,b) = M( r ',b)와 동치이다. 그러면, Γ={A⊆P A=> p 0}가 access

집합들의 collection이다. 여기서 secret sharing scheme이 perfect한 필요충분조건은, 임

의의 A⊆P에 대하여, A→ p 0가A⇒ p 0라는 것을 의미하는 것이다.

Page 365: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 365 -

비 분산 스킴이 idea1인 필요충분조건은 perfect이고 모든 p∈P에 대하여,

∣S(p)∣ = ∣S( p 0)∣인 것이다. 따라서 만약 secret sharing scheme이 ideal이면, 우리

는 일반성을 잃지 않고 모든 p∈P에 대하여 S(p) =S (p0) 임을 가정하고 S(p)를 간단하게

S라고 나타낸다.

이제 Γm가 Γ의 minimal elements의 집합을 나타낸다고 하자. 만약, p가 Γ m의 그 어떤

부분집합에도 포함되지 않는 참여자 p∈P 가 존재한다면, 그의 할당치 key를 결정하는데

유용한 경우가 없으므로, 이러한 참여자는 필요하지 않다. 몇몇의 참여자가 쓸모없는 할당

곳을 받는 secret sharing scheme을 연구하는 것은 흥미로운 일이 아니다. 그러므로 우리

는 모든 참여자 p∈P Γ m의 부분집합 어딘가에 포함된다면, 그 secret sharing scheme이

'connected'라고 말한다.

이제 PS(Γ,r,n)이 access structure를 Γ로 하고 n개의 key를 사용하고 정보율이 r인 완전

비 분산시스템을 나타낸다고 하자. Brickell Stison등은 주어진 그래프 G=(V,E)에 대해

E * = { e *∣e⊂ e *⊂V for some e∈E} 그리고 PS(G,r,n) = PS( E *,r,n)으로 정의한 후,

G가 연결그래프라 할때, PS(G,1,n)이 존재할 필요충분조건은 G가 완전그래프인 것을 보였

다. 또한 G의 maximal degree가 d이고 e=[d/2]라 할 때, 어떤 r≥1e+1

가 존재해서 모든

n≥2에 대해 PS(G,r,n)이 존재함도 보였다. 만약 B∈Γ이고 B⊆C인 것이, 임의의 B,C⊆P에

대하여, C∈Γ임을 의미할 때, 집합P의 부분집합들의 집합인 Γ를 monotone이라 한다. 따라

서 그래프 G=(V,E)에 대해 E * = { e *∣e⊂ e *⊂V for some e∈E} 그리고

PS(G,r,n) = PS( E*,r,n) 으로 정의한 것은 monotone set에 대한 완전비 분산스킴 연구이

다. 최근에는 그래프의 인접관계를 추상화한 Matroid 위에서의 secrete sharing scheme연

구도 있다. 더욱 다양한 그래프에 대한 PS(G,r,n) 문제의 연구가 요청되고 있다.

Page 366: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 366 -

이와 같이 최근에는 그래프 이론과 디자인 이론 등의 조합론 문제들을 응용하여 영지식과

비 분산시스템에 대한 연구가 진행되고 있다. 이러한 경향을 따라 먼저 조합론과 응용대수

에 기반을 둔 공개키 알고리즘을 연구하고, 이들 연구를 기반으로 영지식과 비 분산시스템

등에 대한 프로토콜 연구를 계속할 예정이다.

3. 안전성분석

암호학적 방식에 대한 가장 큰 관심은 그 방식에 얼마나 안전한가이다. 안전성을 증명하기

위하여 문헌에서 나타난 가장 공통된 두 가지 방법은 complexity-based proofs와

random-oracle-model based proofs이다.

Complexity-based proofs는 Diffie and Hel1man에 의하여 처음 제안되었다. 먼저

well-defined hardness 가정을 설정한 다음 제안된 암호학적 방식에 대한 attack은 설정된

hardness 가정을 위반함을 보이는 방법이다. 이러한 가정의 예로, 인수분해나 이산대수문제

의 intractability를 들 수 있다. Random oracle model based proofs는 위의 방법이 힘들

경우 사용한다. 먼저 SHA와 같은 cryptographic primitive가 random 함수처럼 행동한다고

가정하고 제안된 방식이 이 가정 하에서 안전하다고 증명하는 것이다. Random oracle

model based proofs의 단점은 근거로 하고 있는 cryptographic primitive의 안전성이 이

론적으로 증명이 되지 않았기 때문에 가정에 대한 다양성이 없어서 chain reaction을 가져

올 수 있다. 반면에 complexity-based proofs는 독립된 hardness 가정들을 사용하기 때

문에 다양성이 있으며 이론적으로 단단하다고 볼 수 있다.

Page 367: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 367 -

제안된 공개키 방식은 complexity-based proofs 방법을 사용하고 있다. 즉 주어진 K 4

-covering graph의 세 개의 mutually exclusive한 PDS를 찾는 문제가 NP-complete라는

(아직은 증명되지 않은) hardness 가정에서 출발하였다.

Brassard가 1979년도에 Seminal paper에서 제시한 Claim, 즉, deterministic algorithm을

사용하고 유효한 공개키 집합이 coNP안에 있다고 가정하였을 경우 공개키의 trapdoor

function이 NP-complete에 기반한다면 NP=coNP라는 주장에 대한 새로운 고찰이 근간에

이루어져 왔다. Fellows와 Koblitz는 Combinatorial problem들은 Brassard의

precondition중 한 가지 조건, 즉 유효한 공개키 집합이 coNP안에 있다는 조건을 만족하지

않기 때문에 공개키 시스템이 사용될 가능성이 있다는 이론을 제시하였으며 combinatorial

cryptosystem을 제안했다. 예로 그래프에서 PDS가 없다는 것을 polynomial time만에 검

증할 수 있는 알고리즘도 이러한 최근 연구의 발표에 기반을 두고 있다.

Cracking Problem의 관점에서 본 알고리즘을 평가한다면 다음과 같다. 제안된 알고리즘은

Fe11ow와 Koblitz의 (0, 1)-PDF를 확장한 형태인 (-1, 0, 1)-PMDF를 사용하고 있으며,

그 근거는 -1을 사용함으로써 invariant equation을 증가시켜 암호문을 용이하게 Ρ(x)(f

(x)-α)+m의 형태로 만들 수 없다는 idea를 이용하였다. 이러한 생각이 제대로 작동하는 지

는 증명되지 않았지만 Fellow와 Koblitz의 방법보다 최소한 약하지는 않다는 점에는 동의

할 수 있다.

이와 같이 그래프 이론 기반 공개키 암호시스템은 한마디로 현 단계에서는 상용화 가능성을

속단하기 어렵지만, 장기적으로 연구해 볼 만한 가치가 충분하다고 생각된다. 이 시스템과

관련된 흥미로운 연구문제가 많고, 그 문제에 대한 해결에 따라 암호 시스템의 구체적인 모

습이 크게 달라질 수 있을 것이다. 이 시스템과 관련한 연구문제로는 다음과 같은 것을 생

각할 수 있다.

Page 368: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 368 -

① 비 키에 대한 공격

현재 제안된 시스템은 3-regular graph, 혹은 (3-regular graph의 부분집합인) K 4

-covering graph에서 공개키를 생성하도록 되어 있다. 3-regular graph가 perfect

dominating set(PDS)를 가지는지를 판별하는 문제는 NP-complete라고 알려져 있지만,

K 4-covering graph가 PDS를 가지는가를 판단하는 문제는 NP-complete인지 알려져 있

지 않다. 그리고 새롭게 제안된 (-1,0,1)-PMDF가 존재하느냐는 것은 두 개의 서로소인

PDS가 존재하느냐 하는 문제와 동치라고 증명되었지만, 아직 두 graph class에서

(-1,0,1)-PMDF가 존재하느냐 하는 문제는 NP-complete인지 아닌지 증명되지 못했다.

3-regular graph가 K 4-covering graph인지 아닌지를 판별하는 것이 NP-complete인데

(시스템 제안자 주장), 이것은 3-regular graph에 3혹은 4개의 서로소인 PDS가 존재하느

냐는 문제와 동치이다. 하나 이상의 PDS가 존재하느냐는 문제가 NP-complete이므로, 둘

이상의 서로소인 PDS가 존재하느냐를 판별하는 것은 NP-complete일 가능성이 높다고 예

측할 수 있다. (PMDF 관련한 NP-completeness 증명에서는 대부분 vertex cover나

one-in-three 3SAT에서 reduce하고 있다.)

안전한 공개키를 생성하기 위해서는 3-regular graph중에 PDS, 혹은(-1, 0 1)-PMDF 문

제가 다항 시간에 해결될 수 있는 c1ass를 조사하고 연구할 필요가 있다고 본다. 공개키를

random하게 생성하더라도 이러한 c1ass에 들어가는 그래프라면 당연히 공개키로 적절하지

못하므로 다시 생성해야할 것이다. 이런 관점에서도 K 4-covering graph에서 PDS, 혹은

(-1, 0 1)-PMDF 문제가 NP-complete 문제인지, polynomially solvable인지 판별하는 시

도가 의미가 있다고 생각된다. (Koblitz는 K 4-covering graph를 공개키 space로 제안했다

고 하는데, PDS를 가지는 random 3-regular graph를 생성하는 것은 너무 쉽고, 또

3-regular graph가 Koblitz가 제안한 c1ass의 superclass인데, 왜 그런 제안을 했는지 언

뜻 이해가 되지 않는다. 특별히 K 4-covering graph가 PDS 문제를 어렵게 만들 것이라고

믿게 하는 어떤 것이 있는지를 살펴볼 필요는 있다고 본다.)

Page 369: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 369 -

위에서 언급한 것과 같은 문제가 NP-complete라고 증명이 되더라도 비 키에 대한 공격이

안전하다고 말할 수는 없을 것이다. NP-complete 문제라는 것은 단지 모든 가능한

instance에 대해서 항상 polynomial time 이내에 끝나는 deterministic algorithm이 존재할

가능성이 거의 없다는 것을 말하는 것뿐이다. 비 키에 대한 공격이 안전하다고 확신을 가

지려면 Probabilistic approach(randomized algorithm)이나 Approximation approach 등에

대해서 얼마나 어려운 문제인지를 파악할 필요가 있다고 생각된다.

② 메시지에 대한 공격

메시지에 대한 공격은 복잡해 보이는 다항식을 invariant polynomial로 분할하는 문제로 생

각할 수 있다. 시스템 제안자께서 다양한 형태의 invariant polynomial을 가지는 것이 이러

한 공격에 상대적으로 안전할 것이라고 생각하고 다양한 invariant polynomial을 생성하고

있다. 안전성에 대한 논리를 확보하는 연구가 더 추가되어야 할 것으로 생각된다. 검토회의

에서도 나왔지만, invariant polynomial이 finitely generate되는 것인지 아닌지도 흥미로운

연구과제로 생각된다.

③ 암호시스템의 확장

현재 제안된 시스템은 3-regular 그래프로 관심을 한정하고 있다. 이것을 d-regular graph

class로 확장이 가능한지도 한번쯤은 짚어봐야 할 문제라고 생각한다. d-regular graph에

서(fixed d, 3이상) PDS 문제는 NP-complete로 알려져 있다. vertex의 수를 고정하였을

때, 3-regular graph의 수보다는 (서로 isomorphic 하지 않은; labeled이든 혹은

unlabeled이든) 4-regular graph의 수가 더 많을 것이다. 공개키 space가 넓어지는 유리한

점이 있다. 그리고 이 암호시스템은 vertex의 수만큼 변수를 가지고 있으므로, 변수의 수가

늘어나지도 않는다. degree가 커질수록 local한 invariant polynomial간의 interaction이 더

커진다고 볼 수도 있을 것이다.

Page 370: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 370 -

이 암호시스템을 기반으로 관심을 combinatorial cryptosystem으로 확장한다면, PDS 관련

문제이외에 어떤 combinatorial problem이 공개키 암호 시스템 설계에 이용될 수 있을까를

생각할 수 있다. PDS에 기반한 공개키 암호시스템의 숨어있는 약점 하나는 그래프에 PDS

가 unique 하지 않고 여럿일 수 있는데, 어떤 PDS를 찾더라도 그것이 비 키가 될 수 있다

는 것이다. (Subset sum 문제를 기반으로 한 암호시스템은 그 문제에 대한 임의의 해가 비

키가 되지는 않는다.)

④ 기타

그래프를 공개할 때 adjacency matrix를 사용하면 n 2 bit가 필요하다. 그렇지만 에지 리

스트를 이용하면 vertex를 표현하는데 log 2n 비트이면 충분하므로, d-regular graph인 경

우에 지수가 dn/2이므로 dn log 2n 비트이면 충분하다. d가 n log 2n보다 작은 경우 (예컨

데3), 에지 리스트가 공간 면에서 유리하다.

4. 향후계획

제안된 방식에서 가장 먼저 해결해야 될 사항은 역시 hardness 가정에 대한 규명이다. 먼

저 주어진 K 4-covering graph의 세 개의 mutual1y exclusive한 PDS를 찾는 문제가

NP-complete인가를 증명하는 것도 필요하겠지만, 조금 더 예측 가능한 문제에 대한

complexity를 생각해보자. 주변 문제에 대한 결과를 다음과 같이 정리할 수 있다.

문제 1. Cubic graph에서 한 개 이상의 PDS가 존재하는가?

문제 2. Cubic graph에서 두 개 이상의 mutually exclusive한 PDS가 존재하는가? ⇔

cubic graph에서 (-1, 0, 1)-PMDF가 존재하는가?

Page 371: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 371 -

문제 3. Cubic graph에서 세 개 이상의 mutually exclusive한 PDS가 존재하는가?⇔ cubic

graph가 K 4-covering graph인가?

문제 4. K 4-covering graph의 세 개의 mutually exclusive한 PDS를 찾는 문제

문제 4는 제안된 방식의 hardness 가정이다. 문제 1과 문제 3은 NP-complete임이 알려져

있다. 그러므로 중간 형태인 문제 2의 복잡도는 NP-complete로 예견된다. 즉 문제 4보다

는 문제 2의 복잡도 규명이 용이한 듯 하다. 제안된 방식에서는 K 4-covering graph

class를 공개키로 사용하고 있는데 이를 cubic graph class로 바꿀 경우에 발생할 수 있는

문제점이 경미하다면 hardness 가정으로 문제 2를 사용하는 것이 바람직하다고 본다. 또한

이 경우 공개키 space가 커진다는 장점 또한 지니고 있다.

제 2 절 SL 2 (Z) 기반 공개키 암호알고리즘 개발

1. 개요

DES로 대표되는 대칭형 암호시스템에 대하여, Dieffie와 Hellman이 1976년에 비대칭 암호

시스템, 즉 공개키 암호시스템(PKC)의 한 방법으로 유한체 위에서의 이산대수 문제의 어려

움을 이용한 암호시스템을 처음 제시한 이래, Shumely, McCurley, 그리고 Elgamal 등이

이산대수문제에 근거한 암호시스템들을 제안하였다. 한편 1978년의 RSA 공개키 암호시스

템을 필두로 인수분해의 어려움에 기인하는 여러 PKC들이 개발되고 있다. 아울러, 유한체

와 행렬군 (matrix group), 다항식환 (polynomial ring)등의 대수적 구조를 기반집합

(underlying set)으로 하고, 대수적 일방향 함수율 사용하는 대수적 암호시스템(algebraic

cryptosystem)등에 관한 연구가 간헐적으로 진행되어 왔다. 그러나 이러한 연구들은 대부

분 대수적인 구조가 갖는 특성을 십분 활용하지 못하였으며, 또한 S/W로서 구현, 실행 분

석된 결과가 보고되지 않고 있다.

이미 잘 알려진 계산복잡도에 근거하는 PKC들은 쉽게 공격을 받을 수 있으나, 대수적 구조

에 기인하는 암호시스템들은 아직 체계적으로 정립되어 있지 않으며, 서로 상이한 계산 복

잡성에 근거하고 있어 보다 안전하게 사용할 수 있다. 본 절에서는 군의 구조에 근거하는

대수적 PKC에 대하여 살펴보고자 한다. 이는 Yamamura가 제안한 방식을 기초로 하고 있

다.

Page 372: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 372 -

Yamamura의 공개키 암호시스템은 modular group 즉,

SL 2 (Z) = {( )a bc d

∣a,b,c,d∈Z, ad-bc = 1}에 기반한 암호시스템으로 SL 2 (Z)가 <A,B∣A

6=B

4=1, A

3=B

2>와 같은 group

presentation을 가지고 Z 6* z 2 Z 4의 amalgamated free product를 가지는 성질에 착안한

것이다. 지금까지 알려진 수학이론에 의하면 Yamamura type의 공개키 암호시스템을 만들

수 있는 고전군은 (아마도) SL 2 (Z)뿐이다.

G1* H1 = H2 G2로 쓰여지는 amalgamated free product 의 원소 g 는 G 1과 G 2가 각각

∪i∈Ia i H 1, ∪

j∈Jb j H 2의 coset decomposition을 가지면

s j 1 r i 1s j 2 r i 2

…r i ns j n+1 ( r i k

, s j k는 G 1, G 2 의 coset representative, 단 마지막은

H=H1=H2의 원소)의 모양으로 유일하게 쓸 수 있는데, 이를 g의 norma1 form 이라 부

른다.

Page 373: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 373 -

Yamamura의 공개키 암호시스템은 먼저 SL 2 (Z)의 free semigroup을 생성하고, 모든

word가 normal form인 V 1과 V 2 를 찾는다. (이런 V 1과 V 2는 무한히 많다.) 그리고

임의의 복소수 a를 정하고 F1 (a)=V1이고 F 2 (a)=V2인 F 1 (x)와 F 2 (x)를 C[x]상의

2x2행렬로 찾는다. 마지막으로 임의의 2x2 가역 복소행렬 M을 고정하고

W1(x)=M-1Fl(x)M, W2(x)=M-lF2(x)M로 둔다. 그리고 Φ(Gl(x))=MGl(a)M-1로 두면 Φ는 F1(x)

과 F2(x)로 생성되는 M2×2(C[x])의 free semigroup에서 V1과 V2로 생성되는 M2×2(C)의

free semigroup로 가는 injective homomorphism이 된다.

[키생성]

o 공개키 W1(x) , W2(x)

o 비 키 Φ(즉 a와 M)

(사실은 V1, V2와 F1(x), F2(x)도 비 )

[암호화]

o 주어진 평문 i 1 i 2… i n ( i k∈1,2)에 대해

으로 암호화하여 E(x)를 송신

[복호화]

ㅇ 먼저 V1, V2를 계산한 뒤, 주어진 암호문 E(x)에 대해 Φ(E(x))=ME(a)M-1를 계산하여

normal form V 2Vi 11 V 2V

i 21 … V 2V

i n1 V 2 으로 고쳐 복호화

Page 374: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 374 -

2. 제안 알고리즘

제안하는 알고리즘은 Yamamura공개키 암호알고리즘의 기저인 Z를 유한체 F상에서 구축함

으로써 효율성 향상에 중점을 두었다. SL 2 (F)는 유한체 F에서

SL 2 (F) = {( )a bc d

∣a,b,c,d∈F, ad-bc = 1}이고, PSL(2, F)은 항등행렬 I에 대하여, -I만

큼의 차이를 가지는 동치류들을 말한다.

H={z∈CIm(z)>0} 이라 하자. C는 복소수의 집합이다. 그러면 SL 2 (C)와 PSL 2 (C)의 원

소는 다음 선형변환에 의한 복소수 구에서의 군 작용이다. M을 SL 2 (F)의 한 원소라 하고,

행렬 M에 의하여 정의되는 선형변환 f M은 H에서 H로의 사상이고 z∈C에 대하여

f M(z) = az+bcz+d

로 정의된다. 따라서 H에서의 SL 2 (F)의 군 작용은 자연스레 유도된다.

즉M∈ SL 2 (F) 과 z∈H에 대하여, M의 작용에 의하여 얻는 z로 부터의 점은

Mz= f M(z)이다. 틀림없이, 이는 H에서의 SL 2 (F)의 군 작용이다.

이 군 작용으로부터 H에서의 동치관계 ~를 다음과 같이 정의할 수 있다.

정리 4.2.l F를 {z∈C∣ Re(z)≤ 12 , 1≤∣z∣} 이라 하자. 그러면 F은 SL 2 (F)의 기반군이

다.

증명: J-P Serra, A course in Arithmetic S=ꀌ

︳︳︳

︳︳︳

0 -1

1 0, T=

︳︳︳

︳︳︳

1 1

0 1

라 하자.

Page 375: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 375 -

그러면 Sz=-1z, Tz=z+1

위 정리의 증명을 이용하여 행렬 y=Mz를 만족하는 M∈ SL 2 (F)과 동치점 y를 얻는 알고리

즘을 찾을 수 있다. 더욱이, M을 S와 T의 멱승들의 곱으로 나타내는 알고리즘을 얻을 수

있다. 즉

여기서 i 0 = 0 or 1 and j k = ±1, ±2,…

SL 2 (F)가 관계 (ST) 6 = 1 = S4인 S, T에 의하여 생성됨은 잘 알려져 있다. 그리고,

( ST)3 =S

2이다.

이제 공개키 알고리즘을 살펴보면,

A(x)=( )x 11 0

, B(x)=( )x x+11 1

, a를 다항식 P n (x)의 근이라고 하자. 그리고

A(a)=( )a 11 0

, B(a)=( )a a+11 1

, 를 행렬들의 집합 G =SL 2 ( Fq)의 행렬이라 하자. 다항식

P n (x)가 결정되면, A=A(a), B=B(a)로 표시하자.

[키생성]

o 비 키 ; M, α

o 공개키 : PK 1 (x)= M-1A(x)M(x), PK 2 (x)= M

-1B(x)M

[암호화]

o b 1 b 2… b n를 0과 1로 표현된 평문 수열이라고 하자. 암호문은 다음과 같다.

Page 376: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 376 -

[복호화]

수신된 암호문은 다음과 같다.

그러므로, 비 키를 취하면

Φ(E(x))=ME(α) M-1=MM

-1B(α)A(α)

b1B(α)…A(α)

bnB(α)MM

-1

=B(α)A(α)b1B(α)…A(α)

bnB(α)

=BAb1B…A

bnB

3. 안전성 분석

제안된 암호시스템은 Yamamura 공개키 암호시스템과 유사하므로 분석의 중심을

Yamamura시스템으로 하였다. 먼저 안전성 분석은 다음과 같다.

① 복호화 과정은 E(x) 자체를 W 1 (x), W 2 (x)의 곱으로 분해하는 것은 힘들지만 (일반적으

로는 P-space complete라고 함) 위에서 언급한 SL 2 (Z)의 특별한 성질을 이용하면

polynomial time에 Φ(E(x))=ME(α)M-1를 V 1, V 2의 곱으로 (유일한 방법으로) 분해할 수

있다는 것이 Yamamura system의 요점이다.

② 먼저 명문의 길이가 짧다면 가능한 평문 i 1 i 2… i n모두에 대해

를 모두 계산해 보면 되므로, 이런 전수조사공격에 견디기 위해서는 명문의 길이가 '적당히'

길어야 한다.

Page 377: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 377 -

③ det W i (a)=det M-1 F i (a)M=det M

-1 V iM=det V i=1이므로 a에 대한 다항방정식

det W i (a)=1를 풀면 a의 후보들(근사값)을 구할 수 있다. 실제로 W 1 (x), W 2 (x)에 나타나

는 다항식의 차수는 그다지 클 수 없으므로 (뒤의 '실용성 문제'에서 언급) a는 사실상 비

이 아니다. Yamamura 자신도 그의 논문에서 "numerical aspect에 대해서는 언급하지 않겠

다고 하고 a를 무리수로 택하였다. 그러나 어차피 컴퓨터는 무리수를 인식하지 못하므로 a

의 근사값만 구하여도 충분하다.

④ 위의 ③에서 a를 알게 되고, 또 만약에 Vi를 안다면, 공개키 W i (x)를 이용하여 W i (a)

를 계산한 후 MWi (a)= F i (a)M에서 M을 구할 수 있다. 실제로 위 방정식은 M의 네 좌표

에 대한 동차의 4원 1차 연립방정식에 불과하다. 그리고 이 방정식의 해집합의 차원은 1이

므로 ( Fi (a)=Vi이 대칭행렬일 가능성은 거의 없기 때문) M의 상수배를 쉽게 구할 수 있

다. 한편 Yamamura의 system을 잘 살펴보면 M의 상수배만 알아도 암호를 풀 수 있음은

자명하다. 따라서 이 system의 진짜비 은 V 1, V 2이다. 이 점은 RSA 공개키의 경우와 유

사하다고 할 수 있다. 즉, RSA system에서도 진짜 비 은 주어진 비 키가 아닌 두 소수

p, q이다.

⑤ 그래도 M과 V 1, V 2, F 1 (x), F 2 (x)의 비 이 지켜진다고 생각하면, Yamamura system

을 공격할 수학적인 방법은 별로 없는 것으로 생각된다.

Yamamura 시스템은 처음부터 실용성에는 주력하지 않았다. 하지만 실용성을 고려하지 않

는 공개키 암호시스템은 의미가 없기 때문에 개선해야만 하는 몇 가지 문제를 지적한다.

Page 378: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 378 -

① 위 '안전성문제 ②'에서 언급한 전수조사 공격에 견디기 위해서는 복호화할 평문의 길이

가 제법 길어야 한다. Yamamura의 시스템은 RSA system 보다는 계산이 좀 복잡하므로

평문의 길이가 512bit 정도는 되어야 할 것으로 생각된다. 이제 W 1 (x), W 2 (x)에 나타나는

다항식의 최고차수를 d라고 하면, 암호문 E(x)에 나타나는 다항식의 최고차수는 512d가 된

다. 또 E(a)를 구하려면 a 1, …, a 512d들의 값들 구체적으로 계산해야 한다.

② 앞 ①에서 언급한 것과 같이 암호문 E(x)의 크기가 지나치게 커지는 것이 Yamamura

system의 가장 심각한 문제이다.

4. 향후계획

Yamamura 시스템은 위에서 언급한 바와 같이 안전성과 실용성에 몇 가지 문제점을 가지고

있다. 본 절에서는 C[x] 대신 C[ x 1, …, x n]를 사용하고 비 키로 M과 n개의 복소수

a 1, …, an을 사용함으로써 다음과 같은 개선점을 찾을 수 있을 것으로 제안한다.

① 우선 앞 '안정성 문제 ③'에서와 같이 비 키 a가 드러나는 것을 피할 수 있다.

② a의 size와 ( a 1, …, a n)의 size가 같다고 할 수 있으므로, Wi(x)에 나타나는 다항식의

최고차수 d를 더 낮게 정할 수 있고, 따라서 E(x)의 size도 훨씬 작아지게 된다.

대수 기반의 공개키 암호시스템에 관한 연구로 1999년 ACISP'99에서 발표된 논문에서

Yamamura 시스템과 동치이며 실용성 측면이 크게 개선된 암호시스템이 발표되었다. 이 논

문의 밑바닥에는 upper half plane H에의 GL 2 (R)-action에 관한 흥미롭고 중요한 idea가

숨어 있는 것으로 생각되고, 이에 대한 수학적 검토가 필요할 것으로 판단된다.

Page 379: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 379 -

제 5 장 결론

인터넷 기반의 정보화 사회로의 전환이 점차 가속화되어 전자문서거래, 전자상거래는 물론

대용량의 멀티미디어 정보들을 안전하게 송ㆍ수신하기 위한 정보기반구조를 구축하기 위하

여 우리나라 독자의 공개키 암호알고리즘을 개발하는 것은 매우 중요한 당면 과제중의 하나

이다. 이러한 사실이 전문가들 사이에서 점차 인식되고 있는 가운데 본 기관은 공개키 암호

알고리즘개발 과제를 수행함으로써 현재 미비한 단계에 있는 국내의 관련 연구 분야를 활성

화시키고, 개발가능성이 있는 논리에 대한 집중 연구를 수행함으로써 독자적인 공개키 암호

알고리즘개발의 기반을 마련하였다.

본 연구는 현재 사용되고 있거나 연구되고 있는 주요 공개키 암호알고리즘의 기본 논리인

소인수분해문제, 이산대수문제, 배낭문제, 격자축소문제, 그래프 완전지배집합(Perfect

Dominating Set) 문제에 대하여 수학적으로 정의하고 이러한 문제가 어떻게 공개키 암호알

고리즘과 관계를 갖게 되는지를 구체적으로 다루었으며, 기존의 공개키 암호알고리즘의 새

로운 문제점을 찾아내고, 수정 보완함으로써 기존의 공개키 암호알고리즘을 좀더 향상시킬

수 있는 방안을 연구하였다. 또한, 새로운 응용분야로 제시되고 있는 그래프 이론과 군 이

론을 공개키 암호알고리즘으로 연계하여 신규논리 기반의 공개키 암호알고리즘을 개발하였

으며, 향후 연구방향으로는 새롭게 개발된 공개키 암호알고리즘의 일반화를 통하여 효율성

을 향상 및 안전성을 강화시키는 방안을 연구할 계획이다.

이 과제의 결과중의 하나인 새로운 기저를 이용한 유한체 연산은 기존의 특허문제를 해결할

수 있을 뿐만 아니라 소프트웨어와 하드웨어 구현에 모두 효율적이므로 하드웨어, 소프트웨

어 구현의 두 암호시스템사이에 통신시 발생하는 기저변환의 문제를 완전히 해결할 수 있는

장점이 있다. 또한 표수가 워드 크기인 경우의 유한체 연산의 효율성은 S/W로 타원곡선 암

호시스템 뿐만 아니라 ElGamal 암호법에도 쓸 수 있고 기타 관련된 응용분야에 다양하게

쓰일 수 있다. 이러한 타원곡선 암호시스템의 S/W는 디지털 서명, 인증, 무결성, smart

card, 무선장치 등의 응용 Protocol에 곧바로 적용할 수 있을 것이다.

마지막으로, 공개키 암호알고리즘 개발 과제를 수행하면서 얻은 또 하나의 결과는 학계의

지대한 관심과 참여이다. 일반적인 공개키 암호알고리즘에 관한 이해 수준이었던 과제 초기

단계와는 달리 수학적 논리를 바탕으로 한 심도 깊은 분석으로 한 단계 발전된 모습을 보였

다. 이러한 공개키 암호알고리즘 개발 과제를 통해 국내 공개키 암호알고리즘 연구기반 조

성에 이바지하고 이를 더욱 발전시켜 형성된 연구기반을 지속적으로 유지시킴으로써 국내

암호산업 육성에 이바지하고자 한다.

Page 380: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 380 -

제 6 장 부록

제 1 절 격자축소문제 기반 공개키 암호시스템 구현 S/W

1. 변수설명

● p_len : 소수의 크기를 결정하는 변수. p_1en가 k이면 소수의 크기는 약( 2 32)k이다.

● n_len : n(=p*q)의 크기를 결정하는 변수. 약 p_len의 2배이다.

● M_SIZE : 행렬의 크기를 나타내는 변수.

2. 키생성

● 대각행렬 D를 생성하는 부분.

D의 대각 성분의 크기는 약 ( 2 32)7이다.

Page 381: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 381 -

● 상삼각행렬 U를 생성하는 부분.

대각성분을 제외한 U의 원소는 ±p이다.

● 하삼각행렬 L을 생성하는 부분.

대각성분을 제외한 L의 원소는 ±p이다.

● 행렬 T를 생성하는 부분.

Page 382: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 382 -

● 비 키 R과 공개키 B를 만드는 부분.

3. 암호화

● 에러벡터를 생성하는 부분

E의 각 성분의 크기는 약 (2 32) 5

● C=BM+E mod (n)을 계산하는 부분

Page 383: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 383 -

4 복호화

● C mod p를 구하는 부분.

● R(C mod p) mod p를 구하는 부분.

제 2 절 타원곡선 기반 변형 공개키 암호시스템구현 S/W

1. ECDSA의 개요

B는 A에게 메시지 M과 서명 (r,s)를 보내기를 원한다고 하자.

a. Setup - KISA.ECDSA_Setup-Program()

1. E(a,b) : y 2 + xy = x 3+ ax 2+ b는 유한체 K=GF( 2 n)위에 주어진 Weistrass 방정식.

2. P 는 E(K)에서 소수 위수 N을 갖는점

Page 384: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 384 -

b. 키 생성 - KISA.Key_Generation("B")//B는 자신의 공개키를 생성한다.

1. 1<d<N인 정수 d를 선택

2. Q = dP를 계산

3. B는 d를 비 키로 하고 P, Q를 공개키로 공개

c. 서명 생성-KlSA. Signature_Generation("B", M)//B는 메시지 M를 포함한 서명을 작성

한다.

1. 1<k<N를 만족하는 k를 선택

2. kP = ( x 1, y 1)를 계산

3. r = x 1 mod N을 계산

4. 해쉬함수 H를 이용하여 e = H(M)을 계산

5. s = k-1(e+dr) modN을 계산

6. (r,s), M을 A에게 전송

d. 서명확인 -KISA. Signature_Verification("B", M)//A는 B의 서명의 유효성을 검증.

1. e = H(M)을 계산

2. s-l modN을 계산

3. u 1= es-1 modN과 u 2= rs

-1 modN을 계산

4. u 1P+u 2Q=( x 2, y 2)를 계산

5. v= x 2 modN을 계산

6. v=r인 경우 서명 확인

Page 385: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 385 -

제 3 절 배낭 유형 공개키 암호시스템 구현S/W

Page 386: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 386 -

Page 387: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 387 -

Page 388: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 388 -

Page 389: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 389 -

Page 390: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 390 -

Page 391: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 391 -

Page 392: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 392 -

Page 393: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 393 -

Page 394: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 394 -

Page 395: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 395 -

Page 396: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 396 -

Page 397: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 397 -

Page 398: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 398 -

Page 399: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 399 -

Page 400: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 400 -

Page 401: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 401 -

Page 402: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 402 -

Page 403: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 403 -

참고문헌

1 .격자축소문제 기반 공개키 암호알고리즘의 참고문헌

[1] M .Ajtai ."Generating hard instances of lattice problems." In Proceeding of the

28th Annual ACM symposium on Theory of Computing, pages 99-108, Philadelphia,

PA, 1996

[2] L. Babai, "On Lov'asz lattice reduction and the nearest lattice point problem." in

Combinatorica, Vo1. 6, 1986, pp. 1-13

[3] M. Blum and S. Glodwasser. "An Efficient Probabilistic Public-Key Encryption

Scheme which Hides All Parity Information.“ in Proceedings of CRYPTO' 84,

Springer-Verlag. 1985, pp. 289-299

[4] P. van Emde Boas, "Another NP-complete problem and the complexity of

computing short vectors in a lattice." Report 81-04, Mathematics Institut, University

of Amsterdam, 1981

[5] D. Boneh and R. Liption "Algorithms for Black-Box Field and Their Application

to Cryptology." in Proceedings of CRYPTO '96, Lecture Notes in Computer Science

No. 1109, Springer-Verlag, 1996. pp. 283-297

[6] Digital Signature Standard (DES). FIPS PUB 186, 1994

[7} W. Diffe and M. E. He11man. "New Direction In Cryptology. "IEEE Transactions

on Information Theory, VOL IT-22, 1976, pp. 644-654

[8} T. EL-Gamal. "A Public Kay Cryptosystem and Signature Scheme Based on

Discrete Logarithms. "IEEE Trans. Information Theory, Vo1. 31, 1985, pp. 469-472

Page 404: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 404 -

[9] O. Goldreich."Two Remarks Concerning the Goldwasser - Micali - Rivest

Signature Scheme." in proceedings CRYPTO '86, Lecture Notes in Computer Science

NO. 263. Springer-Verlag, 1987. pp. 104-110

[10] O. Goldreich, H. Krawczyk and M. Luby. "On the existence of pseudorandom

generators." SIAMJ. on Computing, Vo1. 22(6), 1993. pp. 1163-1175

[11] O. Goldreich, and L. A. Levin "A Hard-core Predicate for All One-Way

Functions" Proceedings of the 21st ACM Symposium on Theory of Computing, 1989,

pp. 25-32

[12] S. Goldwasser, and S. Mica1i, S. "Probabilistic Encryption." Journal of

Computer and System Science, Vol. 28, 1984, pp. 270-299

[13] S. Goldwasser, S. Micali and R. L. Rivest. "A Digital Signature Scheme Secure

Against Adaptive Chosen Message Attack." SIAMJ. on Computing, Vo1. 17, no. 2,

1988, pp. 281-308.

[14] R. Lmpagliazzo and M. Naor. "Efficient cryptographic schemes probably as

secure as subset sum." In 30th Annual Symposium on Foundations of Computer

Science, IEEE. 1989. pp. 236-241

[15] The LiDIA project software-package and user-manual. Available from

ftp://crypt1.cs.uni-sb.de/pub/systems/LiDIA

[16] A. K. Lenstra, H. W. Lenstra, L. Lov'asz. "Factoring polynomials with rational

coefficients." Mathematics Anna1en 261, 515-534 (1982)

[17] R. J. McEliece, "A Public-Key Cryptosystem Based on Algebraic Coding

Theory." DSN Progress Report 42-44, Jet Propulsion Laboratory

Page 405: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 405 -

[18] M. Naor, and M. Yung, "Universal One-Way Hash Functions and their

Cryptographic Applications." in Proc. 21st ACM Symp. on Theory os Computing,

1989, pp. 33-43

[19] M. O. Rabin, "Digital Signatures and Public-Key Functions as Intractable as

Factorization." Technical Report MIT/LCS/TR-212, M.I.T, 1978.

[20] J. Rompel. "One-way functions are necessary and sufficient for secure

signatures." In Proceedings of the Twenty Second Annual ACM Symposium on

Theory of Computing, 1990, pp. 387-394

[21] R. L. Rivest, A. Shamir and L. Adleman. "A Method of Obtaining Digital

Signature and Public Key Cryptosystem." Communications of the ACM, Vo1. 21,

1976, pp. 120-126

[22] C. P. Schnorr. "A hierarchy of polynomial time lattice basis reduction

algorithm." in Theoretical Computer Science, Vo1.53, 1987, pp. 201-224

[23] C. P. Schnorr. and H. H. horner, "Attacking the Chor-Rivest Cryptosystem by

improved Lattice Reduction." in Proceedings of EUROCRYPT '95, Louis C. Guillou

and Jean-Jacques Quisquater, editors. Lecture Notes in Computer Science, Vo1.921,

Springer-Verlag, 1995. pp. 1-12

[24] H. C. Willams, "Some Public Key Crypt-Functions as Intractable as

Factorization." in Proceedings of CRYPTO '84, G. R. Blakey and D. C. Chaum,

editors. Lecture Notes in Computer Science, Vo1. 196, Springer-Verlag, 1985. pp.

66-70

[25] B. Helfrich, "Algorithms to construct Mincowski reduced and Hermit reduced

lattice bases.", Theoret. Comput. Sci. 41, 1985. pp. 125-139

[26] R. Kannan, "Improved algorithms for integer programming and related lattice

problems.", in: Proc. 15th. Ann. ACM Symp. on theory of Computing(1983) pp.

193-206

Page 406: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 406 -

[27} H. W. Lenstra, J. C. Lagarias and C. P. Schnorr, "Korkine-Zolotareff base and

successive minima of a lattice and its reciprocal lattice.", Tech. Rept. MSRI

07718-86, Mathematical Science Research Institute, Berkeley

[28] C. P. Schnorr, "A more sufficient algorithm for lattice basis reduction

(extended abstract)." in : Proc. 13th Col1. on Automata, Languages and

Programming, Rennes 1986, Lecture Notes in Computer Science 226 (Springer,

Berlin, 1986), pp. 359-369 ; complete version to appear in J. Algorithms (December

1987)

[29] L. M. Ade1man. "On breaking generalized knapsack public key cryptosystem.“

In Proc. 15th ACM Symposium on Theory of Computing, 1983. pp. 420-412

[30] M. Ajatai. "The shortest vector problem in L 2 is NP-hard for randomized

reductions." Prescript. Revision of ECCC Report TR97-047, Nov 11, 1997. can be

found at http://www.eccc.uni-trier.de/eccc/

[31] M. Ajatai. and C. Dwork. "A Public-key cryptosystem with

worst-case/average-case equivalence." in Proc. 29th ACM symposium on Theory of

Computing, 1997. pp. 284-293

[32] M. J. Coster, A. Joux, B. A. LaMacchia, A. M. Odlyzko, C. P. Schnorr and, J.

Stern. "Improved low-density subset sum algorithms." Computational Complexity,

2:111-128, 1992

[33] S. Goldwasser, O. Goldwasser. "On the limits of non-approximability of lattice

problems." Preprint. Revision of ECCC Reprt TR97-031. Oct 16, 1997. Can be found

at tttp://www.eccc.uni.trier.de/eccc/.

Page 407: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 407 -

[34] A. Joux and J. Stern. "Lattice reduction : a toolbox for the cryptananalyst" (to

appear in J. of Cryptology)

[35] J. C. Lagarias, and A. M. Odlyzko. "Solving low-density subset sum problems."

In Proc. 24th IEEE Symposium on Foundations of Computer Science, 1983. pp.

1-10. IEEE

[36] J. W. S. Cassels, "An introduction to the geometry of numbers"

Springer-Verlag(1972)

[37] T. J. Chou and G. E. Collins, "Algorithms for the solution of linear diophantine

equation." SIAM Journal on Computing, 11(1982)

[38] R. Kannan, "Minkowski's Convex Body Theorem and Integer programming."

Technical report 86-105, Computer Science dept., Carnegie-Mellon Univ.(1986) to

appear in Mathematics of Operation Research.

[39] U. Dieter, "How to compute shortest vectors in lattices" Mathematics of

Computation 29 (1975)

[40] D. E. Knuth, "The art of computer Programming.", Vo1.2 (1969)

Addison-Wesley

[41] A. Shamir, "A polynomial time algorithm for breaking Merkle-Hel1man

cryptosystem." in Proc. of the 23rd IEEE Symposium on the Foundations of

Computer Science, (1982), pp. 145-152

[42] Don Coppersmith, "Finding a small root of univariate modular equation." Proc.

of EUROCRYPT '96, Lecture Note in Computer Science, Vo1.1070, pp. 155-165

[43] W. De Jonge, D. Chaum, "Attack on some RSA Signature." Proc. of CRYPTO

'85, Lecture Notes in Computer Science, Vo1. 218, Springer-Verlag, Berlin, 1986,

pp. 18-27

[44] A. J. Menezes, P. C. Van Ocrschot, S. A. Vanstone, "Handbook of Applied

Cryptology." CRC press.

Page 408: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 408 -

[45] Jean-Francois Misasky, "A multiplicative attack using LLL algorithm on RSA

signature with redundancy." Lecture Notes in Computer Science No.1294,

Springer-Verlag, 1997. pp. 221-234

[46] H. Cohen. "A Course in Computational Algebraic Number Theory."

Springer-Verlag, 1993

[47] O. Goldreich, S. Glodwasser, and S. Halevi, "Pub1ic-key cryptosystems from

lattice reduction problems." Lecture Notes in Computer Science No.1294,

Springer-Verlag, 1997. pp. 112-131

[48] M. Kaib, C. P. Schnorr, "The Generalized Gauss Reduction Algorithm." to

appear in J. of Algorithm, 1993. pp 13

Page 409: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 409 -

[49] L. Lovasz, H. Scarf, "The Generalized Basis Reduction Algorithm." Mathematics

of Operation Research, Vo1.17, No.3, 1982. pp. 754-764

[50] C. P. Schnorr, "Block reduced lattice bases and successive minima." Tech.

Rep. ICSI, Berkley, to appear in Combanatorica, Probability and Computing, 1992.

pp. 18

[51] P. Nguyen, "Cryptanalysis of the Golereich-Goldwasser-Halevi Cryptosystem

from Crypto '97." To appear Crypto '99.

[52] O. Goldreich, D. Micciancio, S. Safra, and J.-P. Seifer, "Approximating shortest

lattice vector is not harder than approximating closest lattice vectors." Avaible at

http://www.eccc.uni-trier.de/eccc/ as TR 99-002

[53] G. Havas, B. S. Majewski, and M. R. Matthews, "Extended GCD and Hermit

normal form algorithm via lattice reduction." Experimental Mathematics 7 No 2

(1998) 125-136.

[54] D. Micciancio, "Lattice Based Cryptography : A Golbal Improvement.

[55] J.-Y. Cai, "A new transference theorem and application to Ajtai's connecton

factor." ECCC No 5 (1998).

[56] K. Mattews, "Short solutions of AX = B using a LLL-based Hermit normal

form algorithm." August 18, 1998, preprint.

[57] J.-Y. Cai, "Some recent progress on the complexity of lattice problems." ECCC

No 6 (1999).

[58] J.-Y. Cai and T.Cusick, "A lattice-based public-key cryptosystem." To appear

in Information and Computation.

[59] Phong Nguyen and Jacques Stern. "Cryptanalysis of the Ajitai-Dwork

Cryptosystem." Advances in Cryptology-Crypto '98, pp. 223-236.

Page 410: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 410 -

[60] Oded Goldreich, Daniele Micciancio, Shmuel Safra, and Jean-Pierre Seifert.

"Approximating shortest lattice vectors is not harder than approximating cloest

lattice vectors". January 21, 1999

[61] M. Ajtai, "The Shortest Vector Problem is NP-hard for Randomized

Reductions", Proc. 30th Symposium on Theory of Computing 1998, pp. 10-19.

[62] M. Henk, "Note on shortest and nearest lattice vectors", Information

Processing Letters Vo1.61, pp. 183-188, 1997.

[63] D. Micciancio, "The Shortest Vector in a Lattice is hard to Approximate to

within Some Constant", in Proc. 39th Symposium on Foundations of Computer

Science 1998, pp. 92-98.

[64] M. Ajtai, "Generating Hard Instances of Lattice Problems", ECCC TR96-007

1996.

[65] Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman, "NTRU: A Ring-Based

Public Key Cryptosystem.

[66] Jeffrey Hoffstein and Joseph H. Silverman, "Reaction Attacks Against the

NTRU Public Key Cryptosystem", NTRU Cryptosystems Technical Report, August

14, 1999.

2. 타원곡선 기반 변형 공개키 암호알고리즘의 참고문헌

[1] 박일환, 임종인, 조인호, 이상진, "유한체 GF( 2 n) 위의 고속 연산방법", 한국정보보호

학회논문지, v.5 n.2 (1995), 37-44.

[2] 조인호, 구현이 용이한 타원곡선 암호 시스템 개발에 관한 연구, 한국전자통신연구소,

1994.

[3] L. M. Adleman, J. Demarrais, and M. D. Huang, "A subexponential algorithm for

discrete logarithms over the rational subgroup of the jacobians of large genus

hyperelliptic curves over finite fields“, Algorithmic number theory, LNCS877,

Springer-Verlag, pp.28-40, 1994.

Page 411: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 411 -

[4] L. Adleman and M.-D. Huang. “Primality Testing and Abelian Varieties over

Finite Fields", Springer-Verlag, LNM 1512, 1992.

[5] L. Adleman and M.-D. Huang. "Counting rational points on curves and abelian

varieties over finite fields“, Algorithmic Number Theory, LNCS 1122,

Springer-Verlag, pp.1-16, 1996.

[6] G. Agew, T. Beth, R. Mu11in and S. Vanstone, “Arithmetic operations in

GF( 2 n) n, Journal of Cryptology, v.3, pp.3.-13, 1993.

[7] G. Agnew, R. Mullin, I. Onyszchuk and S. Vanstone, "An implementation for a

fast public-key cryptosystem", Journal of Cryptology, v.3, pp.63-79, 1991.

[8] G. Agnew, R. Mullin and S. Vanstone, "An implementation of elliptic curve

cryptosystems over F 2155", IEEE Journal on Selected Areas in Communications,

1993.

[9] A. V. Aho, J. E. Hopcroft and J. D. Ullman. The Design and Analysis of

computer algorithms, Addison-Wesley Publishing Co., 1974.

[10] D. Ash, I. Blacke and S. Vanstone, "Low complexity normal bases", Discrete

Applied Mathematics, v.25, pp.191-210, 1989.

[11] E. Bach, "Number theoretic algorithms", Annual Review in computer Science,

v.4, pp.119-172, 1990.

[12] D. V. Baily and C, Paar, "Optimal Extension Fields for Fast Arithmetic in

Public-key Algorithms", Advanced in Cryptology, CRYPTO '98, LNCS 1462,

Springer-Verlag, pp.472-485, 1998.

Page 412: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 412 -

[13] D. V. Baily and C, Paar, "Inversion in Optimal Extension Fields", Proceeding of

The Mathematics of Public Key Cryptography, Toronto University, 1998.

[14] R. Balasubramanian and N. Koblitz. The improbability that an el1iptic curve

has sub-exponential discrete log problem under the Menezes-Okamoto-Vanstone

algorithm. J. Cryptology, v.11, pp.141-145, 1998.

[15] A. Bender and G. Gastagnoni, "On the implementation of elliptic curve

cryptosystems", Advances in Cryptology, CRYPTO '89, LNCS 435, Springer-Verlag,

417-426, 1990.

[16] M. BEN-OR, "Probabilistic algorithm in finite fields", 22nd Annual Symposium

on Foundations of Computer Science, pp.394-398, 1981.

[17] E .R. Berlekamp. Algebraic coding theory. Aegean Park Press, 1984.

[18] T. Beth, "Efficient zero-know1edge identification scheme for smart cards",

Advances in Cryptology, EUROCRYPT '88, LNCS 330, Springer-Verlag, pp.77-84,

1988.

[19] T. Beth and F. Schaefer, "Non supersingular elliptic curves for public key

cryptosystems", Advances in Cryptology, EUROCRYPT '91, LNCS 547,

Springer-Verlag, pp.316-327, 1991.

[20] I. Biehl, J. Buchmann and C. Thiel. Cryptographic protocols based on discrete

logarithms in real-quadratic orders. LNCS 839, Springer-Verlag, pp.56-60, 1994.

[21] E. Biham and A. Shamir, "Differential cryptanalysis of the full 16-round DES",

Advances in Cryptology-CRYPTO '92.

[22] I. F. Blake, S. Gao and R. J. Lambert, "Construction and distribution problems

for irreducible trinomials over finite fields", In Applications of Finite Fields, D.

Gollman, editor, Oxford University Press, 1996.

Page 413: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 413 -

[23] I. F. Blake, X. H. Gao, R. C. Mullin, S. A. Vanstone and T. Yaghoobian,

Applications of Finite Fields, A. J. Menezes, Editor. Kluwer Academic Publishers,

1993.

[24] I. F. Blake, R. M. Roth, G. Seroussi, "Efficient arithmetic on finite fields

through palindromic representation", Hewlett-Packard Technical Report No.

HPL-98-134, August 1998.

[25] I. F. Bake, G. Serossi and N. Smart, Elliptic Curve in Cryptography, Cambridge

University Press, 1999.

[26] D. Bleichenbacher, "On the security of the KMOV public key cryptosystem",

Advanced in Crypology, CRYPTO '97, LNCS 1294, Springer-Verlag, pp.235-248,

1997.

[27] M. Blum and S. Micali, "How to generate cryptographically strong sequences

of pseudo-random bits", SIAM Journal on computing. 13, pp.850-864, 1984.

[28] B. Den Boer, "Diffie-Hellman is as strong as discrete log for certain primes",

Advances in Cryptology, CRYPTO '88, LNCS 403, Springer-Verlag, pp.530-539,

1990.

[29] D. Boneh and R. Lipton, "Algorithms for black-box fields and their application

to cryptography", Advanced in Cryptology CRYPTO '97, LNCS 1109,

Springer-Verlag, pp.283-297, 1996.

[30] D. Boneh and R. Venkatesan, "Breaking RSA may not be equivalent to

factoring", In Advances in Cryptology-EUCROCRYPTO '98, LNCS 1403,

Springer-Verlag, pp.59-71, 1998.

[31] E. Brickell, D. Gordon, K. McCurley and D. Wilson, "Fast exponentiation with

precomputation", Advances in Cryptology-EUCROCRYPTO '92, 1992.

Page 414: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 414 -

[32] E. Brickell and K. McCurley, "An interactive identification scheme based on

discrete logarithms and factoring", Journal of Cryptology, v.5, pp.29-39, 1992.

[33] J. Brillhart, D. Lehmer, J. Selfridge, B. Tuckerman and S. Wagstaff,

"Factorizations of bn±1, b=2,3,5,6,7,10,11,12 up to high powers", Contemporary

Mathematics, 22, 1983.

[34] J. Buchmann and V. Muller, "Computing the number of points of elliptic curves

over finite fields“, International Symposium on Symbolic and Algebraic Computation,

Bonn, July 1991.

[35] J. Buchmann and H. Williams, "A key-exchange system based on imaginary

quadratic fields", Journal of Cryptology, v.1, pp.107-118, 1988.

[36] J. Buchmann, S. Düllman and H. C. Williams. On the complexity and efficiency

of a new key exchange system. Advances in Cryptology-EUCROCRYPTO '89, LNCS

434, Springer-Verlag, pp.597-616, 1989.

[37] J. Buchamann, M. Jacobson and E. Teske, "On some computational problems in

finite abelian groups", Math. Comp., 66, 1663-1687, 1997.

[38] J. Buchmann and S. Paulus, "A one way function based on idea1 arithmetic in

number fields", Advances in Cryptology, CRYPTO '97, LNCS 1294, Springer-Verlag,

pp. 385-394, 1997.

[39] D. Cantor, "Computing in the jacobian of a hyperelliptic curve", Math. Comp.,

48, 95-101, 1987.

[40] D. Cantor, "On the analogue of the division polynomials for hyperelliptic curve

I", preprint, 1992.

[41] J. Cassels, Lectures on Elliptic Curves, Cambridge University Press, 1991.

[42] J. Chahal, Topics in Number Theory, Plenum Press, New York, 1988.

Page 415: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 415 -

[43] L. Charlap and D. Robbins, "An elementary introduction to elliptic curves",

CRD Expository Report No.31, Institute for Defense Analysis, Princeton, 1988.

[44] L. S. Char1ap, R. Coley and D. P. Robbins. Enumeration of rational points on

elliptic curves over finite fields. Preprint,1992.

[45] B. Chor and R. Rivest, "A knapsack-type public key cryptosystem based on

arithmetic in finite fields", IEEE Transactions on Information Theory, 34,

pp.901-909, 1988.

[46] D. Chudnovsky and G. Chudnovsky, "Sequences of numbers generated by

addition in formal groups and new primality and factoring tests", Advances in

Applied Mathematics, 7, pp.385-434, 1987.

[47] W. E. Clark and J. J. Liang. On arithmetic weight for a general radix

representation of integers. IEEE Trans. Info. Theory, 19, pp. 823-926, 1973.

[48] H. Cohen. A Course In Computational Algebraic Number Theory

Springer-Verlag. GTM 138, 1993.

[49] P. Cohen, "On the coefficients of the transformation polynomials for the elliptic

modular function", Math. Proc. Comb. Phil. Soc., 95, pp. 389-402, 1984.

[50] H. Cohen, A. Miyaji and T. One, "Efficient elliptic curve exponentiation using

mixed coordinates", Advanced in Cryptology, ASlACRYPT '98, LNCS 1514,

Springer-Verlag, pp.51-65, 1998.

[51] D. Coppersmith, "Fast evaluation of logarithms in fields of characteristic two",

IEEE Transactions on Information Theory, 30, pp.587-594, 1984.

Page 416: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 416 -

[52] D. Coppersmith, A. Odlyzko and R. Schroeppel, "Discrete logarithms in GF(p)",

Algorithmica, 1, pp.1-15, 1986.

[53] R. Crandell, "Method and apparatus for public key exchange in a cryptographic

system", U. S. patent number 5,159,632,1992.

[54] W. Davis, "Applications of public key cryptography -considerations for

wireless financial transactions", proceeding, PKS '97, 1997.

[55] M. Diab, "Systolic architectures for multiplication over finite field GF( 2 m)",

Proceedings of AAECC-9, Lecture Notes in Computer Science, 508,

Springer-Verlag, pp.329-340, 1991.

[56] W. Diffie and M. Hellman, "New directions in cryptography", IEEE Transactions

on Information Theory, 22, pp.644-654, 1976.

[57] Y. Driencourt and J. Michon, "Elliptic codes over a field of characteristic 2",

Journal of Pure and Applied Algebra, 45, pp.15-39, 1987.

[58] S. Dusse and B. Kaliski, "A cryptographic library for the Motorola DSP56000",

Advances in Cryptology, EUROCRYPT '90, LNCS 473, Springer-Verlag, pp.230-244,

1991.

[59] J. Dworkin, "ECC/RSA public key Benchmark results", proceeding, PKS '97,

1997.

[60] T.ElGamal, "A public key cryptosystem and a signature scheme based on

discrete logarithms", IEEE Transactions on Information Theory, 31, pp.469-472,

1985.

[61] T. ElGamal, "A subexponential-time algorithm for computing discrete

logarithms", IEEE Transactions on Information Theory, 31, pp.473-481, 1985.

Page 417: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 417 -

[62] N. D. Elkies, "Elliptic and modular curves over finite fields and related

computational issues", Proceedings of a conference in Honor of A.0.1. Atkin, AMS

International Press 7, pp.21-76, 1998.

[63] M. Feng, "A VLSI architecture for fast inversion in GF( 2 m)", IEEE

Transactions on Computers, 38, pp.1383-1386, 1989.

[64] A. Fiat and A. Shamir, "How to prove yourself: Practical solutions to

identification and signature problems", Advances in Cryptology, CRYPTO'86, LNCS,

293, Springer-Verlag, pp.186-194, 1987.

[65] R. Flassenberg and S. Paulus, "Sieving in function fields", Preprint, 1997.

[66] G. Frey And H. G. Ruck, "A remark concerning m-divisibility and the discrete

logarithm problem in the divisor class group of curves", Math. Comp. 62,

pp.865-874, 1994.

[67} W. Fulton, Algebraic curves, Benjamin, New York, 1969.

[68] S. Gao and H. W. Lenstra, "Optimal norma1 bases", Designs, Codes and

Cryptography, 2, pp.315-323, 1992.

[69] G. van der Geer, "Codes and elliptic curves" in Effective Methods in Algebraic

Geometry, Birkhauser, pp.159-168, 1991.

[70] W. Geiselmann and D. Gollmann, "VLSI design for exponentiation in GF( 2 m)",

Advances in Cryptology, AUSCRYPT '90, LNCS, 453, Springer-Verlag, pp.398-405,

1990.

[71] S. W. Golmb, Shift Register Sequences, Holden-day, 1967.

[72] S. Goldwasser and J. Killian, "Almost a11 primes can be quicky certified",

Proceedings of the Eighteenth Annual ACM Symposium on Theory of Computing,

pp.316-329, 1986.

[73] D. Goredon, "Discrete logarithms in GF(p) using the number field sieve", SIAM

Journal on Discrete Mathematics, 6, pp.124-138, 1993.

Page 418: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 418 -

[74] D. Gordon and K. McCurley, "Massively parallel computation of discrete

logarithms", Advances in Cryptology, CRYPTO '92, 1992.

[75] D. M. Gordon, "A survey of fast exponentiation methods", J. Algorithms, 27,

pp.129-146, 1998.

[76] J. Guajardo and C. Paar, "Efficient algorithms elliptic curve cryptosystems",

Advances in Cryptology, CRYPTO '97, LNCS, 1294, Springer-Verlag, pp.342-356,

1997.

[77] J. L. Hafner and K. S. McCurley, "A rigorous sub-exponential algorithm for

computation of c1ass groups", J. AMS, 2, 837-850, 1989.

[78] G. Harper, A. Menezes and S. Vanstone, "Public-key cryptosystems with very

small key lengths", Advances in Cryptology EUCROCRYPT '92, LNCS 658,

Springer-Verlag, 1993.

[79] M. A. Hasan, M.Z. Wang and V.K. Bhargava, "A modified Massey-Omura

parallel multiplier for a class of finite fields", IEEE Transactions on Computers, 42,

pp.1278-1280, 1993.

[80] J. Hasted, "On using RSA with low exponent in a public key network",

Advances in Cryptology, CRYPTO '85, LNCS 218, Springer-Verlag, pp.403-408,

1986.

[81] M. Hellmann and M. Reyneri, "Fast computation of discrete logarithms in

GF(q)", Advances in Cryptology, CRYPTO'82, Plenum Press, pp.3-13, 1983.

[82] S. M. Hong, S. Y. Oh and H. S. Yoon, "New Modulor Multiplication Algorithms

for Fast Modulor Exponentiation", Advanced in Cryptology, EROCRYPT'96, LNCS

921, Springer-Verlag, pp.1666-177, 1996.

Page 419: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 419 -

[83] M. Huang and D. Ierardi, "Efficient algorithms for the Riemann-Roch problem

and for addition in the jacobian of a curve", 31st Annual Symposium on Foundations

of Computer Science, 678-687, 1991.

[84] D. Hühnlein, M. Jacobson, S. Paulus and T. Takagi, "A cryptosystem based on

non-maximal imaginary quadratic orders with fast decryption", Advances in

Cryptology, EUCROCRYPT'98, LNCS 1403, Springer-Verlag, pp.279-287, 1998.

[85] D. Husemoller, Elliptic curves, Springer-Verlag, New York, 1987.

[86] J. I. Igusa, "Arithmetic variety of moduli for genus two", Ann. Math., 72,

612-649, 1960.

[87] T. Itoh, O. Teechai and S. Tsujii, "A fast algorithm for computing multiplicative

inverses in GF( 2 t) using normal bases" (in Japanese), J. Society for Electronic

Communications (Japan), 44, pp.31-36, 1986.

[88] T. Itoh and S. Tsujii, "A fast algorithm for computing multiplicative in verses

in GF( 2 m) using normal bases", Info. and Comput., 78(3), pp. 171-177, 1988.

[89] P. Ivey, S. Walker, J. Stern and S. Divsion, "An ultra-high speed public key

encryption processor", Proceedings of IEEE Custom Integrated Circuits Conference,

Boston, 1992.

[90] M. Jacobson, N. Koblitz, J. H. Silverman, A. Stein and E. Teske. "Analysis of

the Xedni calculus attack", Preprint, 1999.

[91] J. Jedwab and C. J. Mitchell, "Minimum weight modified signed-digit

representations and fast exponentiation", Electronics Letters, 25, pp. 1171-1172,

1989.

Page 420: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 420 -

[92] D. B. Johnson and A. J. Menezes, "Elliptic curve DSA(ECDSA): An enhanced

DSA", proceeding, PKS '97, 1997.

[93] M. Joye and J. Quisquater, "Reducing the elliptic curve cryptosystem of

Meyer-Müller to the cryptosystem of Rabin-Williams", Designs, Codes and

Cryptography, 14, pp.53-56, 1998.

[94] D. Jungnickel, Finite fields: Structure and Arithmetics, Bibliographisches

Institut, Mannheim, 1993.

[95] B. S. Kaliski, "A pseudorandom bit generator based one elliptic logarithms,"

Advances in Cryptology, CRYPTO'86, LNCS 293, Springer-Verlag, pp.84-103, 1987.

[96] B. S. Kaliski, "Elliptic curves and Cryptography: A pseudorandom bit generator

and other too1s", Ph. D. thesis, M. I. T., 1988.

[97] B. S. Kaliski. the Montgomery inverse and its applications. IEEE Trans. Comp.,

44, pp.1064-1065, 1995.

[98] B. S. Kaliski Jr and Y.L. Yin, "Storage-Efficient Finite Field Basis Conversion",

SAC '98, 1998.

[99] C. Kit and R. Lidl, "On implementation elliptic curve cryptosystems",

Contributions to General Algebra, 6, pp.155-166, 1988.

[100] A. W. Knapp, Elliptic Curves, Princerton University Press,1993.

[101] D. E. Knuth, The Art of computer programming, 2-Semi-numberical

Algorithms, Addison-Wesley, 2nd edition, 1981.

[102] T. Kobayashi, H. Morita, K. Kobayashi, and F. Hoshino, "Fast Elliptic Curve

Algorithm Combining Frobenius mapand table Reference to Adapt to Higher

characteristic", Advanced in Cryptology, EUROCRYPT'99, LNCS 1592,

Springer-Verlag, pp.176-189, 1999.

Page 421: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 421 -

[103] N. Koblitz, Introduction to elliptic curves and Modular Forms,

Springer-Verlag, New York, 1984.

[104] N. Koblitz, "Elliptic curve cryptosystems", Mathematics of Computation, 48,

pp. 203-209, 1987.

[105] N. Koblitz, A course in Number Theory and Cryptography, Springer-Verlag,

New York, 1987.

[106] N. Koblitz, "Primality of the number of points on an elliptic curve over a

finite field", 3th Pacific Journal of Mathematics, 131, pp.157-165, 1988.

[107] N. Koblitz, "Hyperelliptic cryptosystems", Journal of Cryptography, 1,

pp.139-150, 1989.

[108] N. Koblitz, "Constructing elliptic curve cryptosystems in characteristic 2",

Advances in Cryptology, CRYPTO'90, LNCS, 537, Springer-Verlag, pp.156-167,

1991.

[109] N. Koblitz, "CM-curve with good cryptographic properties", Advances in

Cryptology, CRYPTO'91, LNCS 576, Springer-Verlag, pp.279-287, 1992.

[110] N. Koblitz, Algebraic aspects of cryptography, Algorithms and Computation in

Mathematics, Springer-Verlag, Berlin, 1998.

[111] C. K. Koc and T.Acar, "Montgomery multiplication in GF( 2 k)", Designs, codes

and Cryptography, 14, pp.57-69, 1998.

[112] C. K. Koc and B. Sunar, “Low Complexity Bit-parallel Canonical and Normal

Basis Multiplier for a Class of Finite Fields', IEEE Transactions on Computers, 47,

pp.353-356, 1998.

[113] K. Koyama, U. Maurer, T. Okamoto and S. Vanstone, "New public-key

schemes based on elliptic curves over the ring Z pq", Advances in

Cryptology-CRYPTO'91, LNCS 576, pp.252-266, 1992.

Page 422: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 422 -

[114] K. Koyama and Y. Tsuruoka, "Speeding up elliptic cryptosystems by using a

signed binary window method", Advances in Cryptology, CRYPTO'92, LNCS 740,

Springer-Verlag, pp.345-357, 1992.

[115] B. La Macchia and A. Odlyzko, "Computing of discrete logarithms in prime

fields", Design, Codes and Cryptography, 1, pp.47-62, 1991.

[116] K. Y. Lam and L. C. K. Hui "Efficiency of SS(1) square-and-multiply

exponentiation algorithms", Electronics Letters, 30, pp.2116-2116, 1994.

[117] G. J. Lay and H. G. Zimmer, "Constructing elliptic curves with given group

order over large finite fields", LNCS 877, Springer-Verlag, pp.250-263, 1994.

[118] F. Lehmann. M. Maurer, V. Müller and V. Shoup, "Counting the number of

points on elliptic curves over finite fields of characteristic greater than three",

LNCS 877, Springer-Verlag, pp.60-70, 994.

[119] F. Lemmermeyer, "The Euclidean algorithm in algebraic number fields", Expo.

Math., 13, pp.385-416, 1995.

[l20] A. Lenstra and H. W. Lenstra, "Algorithms in number theory", Handbook of

Theoretical Computer Science, vol. A, Algorithms and Complexity, MIT Press,

Cambridge, pp.673-715, 1990.

[121] A. Lenstra, H. W. Lenstra, M. Manasse and J. Pollard, "The number field

sieve", Proceedings of the Twenty Second Annual ACM Symposium on theory of

Computing, 564-572, 1990.

[122] H. W. Lenstra, "Factoring integers with elliptic curves", Annals of

Mathematics, 126, pp.649-673, 1987.

[123] H. W. Lenstra and C. Pomerance, "A rigorous time bound for factoring

integers", Journal of the American Mathematical Society, 5, pp.483-516, 1992.

Page 423: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 423 -

[124] A. K. Lenstra and H. W. Lenstra, editors, The Development of the Number

Field Sieve. Springer-Verlag, LNM 1554, 1993.

[125] R. Lercier, "Computing isogenies in F 2n ", Algoritmic Number Theory, LNCS

1122, pp.197-212, 1996.

[126] R. Lercier, "Finding good random elliptic curves for cryptosystems defined

over F 2n", Advances in Cryptology, EUROCRYPT'97, LNCS 1233, Springer-Verlag,

pp. 379-392, 1997.

[127] R. Lercier and F. Morain, "Counting. the number of points on elliptic curves

over finite fields: strategies and performances", Advances in Cryptology,

CRYPTO'92, LNCS 740, Springer-Verlag, pp.79-94, 1993.

[128] R. Lercier and F. Morain, "Algorithms for computing isogenies between

elliptic curves", Computational Perspectives on Number Theory, Proceedings of a

conference in Honor of A.0.1. Atkin, AMS International Press 7, pp.77-96, 1998.

[129] R. Lidl and H. Niederreiter, Finite fields, Cambridge University Press, 1987.

[130] R. Lovorn, "Rigorous subexponential algorithms for discrete logarithms over

finite fields", Ph. D. thesis University of Georgia, 1992.

[131] K. McCurley, "The discrete logarithm problem", Cryptology and Computational

Number Theory, Proceedings of Symposia in Applied Mathematics, 42, pp.49-74,

1990.

[132] U. M. Mairer, "Towards the equivalence of breaking the Diffie-Hellman

protocol and computing discrete logarithms", Advances in Cryptology, CRYPTO'94,

LNCS 839, Springer-Verlag, pp.271-281, 1994.

Page 424: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 424 -

[133] B. Meyer and V. Muller, "A public key cryrptosystem based on elliptic curves

over Z/nZ equivalent to factoring", EUROCRYPT'96, LNCS 1070, Springer-Verlag,

pp.49-59, 1996.

[134] W. Meier and 0. Staffelbach, "Efficient multiplication on certain

non-supersingular elliptic curves", Advances in Cryptology CRYPTO '92, LNCS 740,

Springer-Verlag, pp.333-344, 1992.

[135] A. Menezes, Elliptic Curve Public Key Cryptosystems, Kluwer Academic

Publishers, 1993.

[l36] A. Menezes, I. Blake, X. Gao, R. Mullin, S. Vanstone and T. Yaghoobian,

Application of finite fields, Kluwer Academic Publishers, 1993.

[137] A. Menezes, T. Okamoto and S. Vanstone, "Reducing elliptic curve logarithms

to logarithms in a finite field", Proceedings of the 23rd Annual ACM Symposium On

theory of computing, pp.80-89, 1991.

[138] A. Menezes, T. Okamoto and S. Vanstone, "Reducing elliptic curve logarithms

to logarithms in a finite field", IEEE Transactions on information Theory, 39,

PP.1639-1646, 1993.

[139] A .Menezes and S. Vanstone, "The implementation of elliptic curves

cryptosystems", Advances in Cryptology, AUSCRYPT'90, LNCS 453,

Springer-Verlag, pp.2-13, 1990.

[140] A. Menezes and S. Vanstone, "Isomorphism classes of elliptic curves over

finite fields of characteristic 2", Utilities Mathematica, 38, pp.135-154, 1990.

[141] A. Menezes and S. Vanstone,"A note on cyclic groups, finite fields, and the

discrete problem", Applicable Algebra in Engineering, Communication and Computing,

3, pp.67-74, 1992.

Page 425: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 425 -

[142] A. Menezes and S. Vanstone. "Elliptic curve cryptosystems and their

implementation", Journal of cryptology, 6, pp.209-224, 1993.

[143] A. Menezes and S. Vanstone and R. Zuccherato. "Counting points on elliptic

curves over F 2 m", Mathematics of computation, 60, pp.407-420, 1993.

[144} A. J. Menezes, P. C. van Oorschot and S. A. Vanstone Handbook of Applied

Cryptography, CRC Press, 1996.

[145] R. Merkle, "A certified digital signature", Advances in cryptology, CRYPTO'89,

LNCS 435, Springer-Verlag, pp.218-238, 1990.

[146] B. Meyer and V. Müller, "A public cryptosystem based on elliptic curves over

Z/nZ equivalent to factoring", Advances in Cryptology, EUROCRYPT'96, LNCS 218,

Springer-Verlag, pp.49-59, 1996.

[147] V. Miller, "Uses of elliptic curves in cryptography", Advances in Cryptology,

CRYPTO'85, LNCS 218, Springer-Verlag. pp.417-426, 1986.

[148] V. Miller. "Elliptic curve and their use in cryptography", proceeding, PKS '97,

1997.

[149] A. Miyaji. Elliptic curves over Fp suitable for cryptosystems. Advanced in

Cryptology, AUSCRYPT'92. LNCS 718, Springer-Verlag, pp.479-491, 1993.

[150] P. Motgomery, "Speeding the Pollard and elliptic curve methods of

factorization", Mathematics of computation, 48, pp.243-264, 1987.

[151] P.L Montgomary, "Modular multiplication without trial divition", Math. Comp.,

44, pp.519-521, 1985.

Page 426: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 426 -

[152] F. Morain and J. Olivos, "Speeding up the computations on an elliptic curve

using addition-subtraction chains", Theoretical Information and Applications, 24,

pp.531-543, 1990.

[153] F. Morain, "Building cyclic elliptic curves modulo large primes", Advances in

Cryptology ,EUROCRYPT'91, LNCS 547, Springer-Verlag, pp.328-336, 1991.

[154] C. Moreno, Algebraic Curves over Finite Fields, Cambridge University press,

1991.

[155] V. Müller, "Fast multiplication elliptic curves over small fields of

characteristic two", J. Cryptology, 11, pp.219-234, 1998.

[156] R. Mullin, I. Onyszchuk, S. Vanstone and R. Wilson, "Optima1 normal bases in

GF( pn)", Discrete Applied Mathematics, 22, pp.149-161, 1988/89.

[157] R. Mullin, I. Onyszchuk, S. A. Vanstone and R. Wilson. Optimal normal bases

in GF( p n). Discrete Appl. Math., 22, pp.149-161, 1988/89.

[158] NATIONAL BUREAU OF STANDARDS, "Data Encryption Standard", Federal

Information Proceeding Standard, U. S. Department of Commerce, FIPS PUB 46,

Washington, DC., 1977.

[159] NATIONAL INSTITUTE FOR STANDARD AND TECHNOLOGY, "A proposed

federal information processing standard for digital signature standard(DSS)",

Technical Report FIPS PUB XX, Draft, 1991.

[160] NATIONAL INSTITUTE FOR STANDARDS AND TECHNOLOGY,

"Announcement and specifications for a secure hash standard(SHS)", Technical

report FIPS PUB YY. Draft, 1992.

[161] K. Nyberg and R. A. Rueppel, "Message recovery for signature schemes

based on the discrete logarithm problem". Designs, Codes and Cryptography, 7,

pp.61-81, 1996.

Page 427: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 427 -

[162] A. M. Odlyzko. Discrete Logarithms in finite fields and their cryptographic

significance. Advances in Cryptology, EUROCRYPT'84, LNCS 209, Springer-Verlag,

pp.417-426, 1985.

[163] T. Oakmoto, A. Fujioka and E. Fujisaki, "An efficient digital signature scheme

based on an elliptic curve over the ring Z n", Advances in Cryptology, CRYPTO'92,

LNCS 740, Springer-Verlag, 1993.

[164] S. H. Oh and C. H. Kim "Proposing the Use of Non-Conventional Basis of

Finite Fields", Contribution to IEEE P1363, 1999.

[165] J. Omura and J. Massey, "Computational method and apparatus for finite field

arithmetic", U. S. patent number 4, 587,627, May 1986.

[166] P. C. van Oorschot and M. J. Wiener, "Parallel collision search with

cryptanalystic applications", J. Cryptology, 12, pp.1-28, 1999.

[167] S. Paulus, "An algorithm of sub-exponential type computing the class group

of quadratic orders over principal ideal domains", Algorithmic Number Theory,

LNCS 1122, Springer-Verlag, pp.243-257, 1996.

[168] S. Paulus and H.-G. Rück, "Real and imaginary quadratic representation of

hyper-elliptic function fields". To appear, Math, Comp.

[169] S. Paulus and A. Stein. "Comparing real and imaginary arithmetics for divisor

class group of hyperelliptic curves", Algorithmic Number Theory, LNCS 1423,

Springer-Verlag, pp.576-591, 1998.

Page 428: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 428 -

[170] J. Pila, "Frobenius maps of ableian varieties and finding roots of unity in

finite fields", Math. Comp., 55, pp.745-763, 1996.

[171] S. Pohlig and M. Hellman, "An improved algorithm for computing logarithms

over GF(p) and its cryptographic significance", IEEE Transactions on Information

Theory, 24, pp.106-110, 1978.

[172] J. Pollard, "Monte Carlo methods for index computation mod p", Mathematics

of Computation, 32, pp.918-924, 1978.

[173] C. Pomerance, "Fast, rigorous factorization and discrete logarithms

algorithms", Discrete Algorithms and Complexity, pp.119-143, 1987.

[174] K. C. Posch and R. Posch. Modulo reduction in residue number systems.

IEEE Trans. Parallel and Dist. Systems, 6, pp.449-454, 1995.

[175] K. C. Posch and R. Posch. Division in residue number systems involving

length indicators. J. Comp. Appl. Maths., 66, pp.411-419, 1996.

[176] M. O. Rabin, "Probabilistic algorithms in finite fields", Siam J. Comp. 9,

pp.273-280, 1980.

[177] M. Rabin. Probabilistic algorithms for testing primality, J. Number theory, 12,

pp.128-138, 1980.

[178] H. Riesel, Prime Numbers and Computer Methods for Factorization.

Birkhäuser, 1985.

[179] R. Rivest, A. Shamir and L. Adleman, "A method for obtaining digital

signatures and public-key cryptosystems", Communications of the ACM, 21,

pp.120-126, 1978.

[180] H. Rück, "A note on elliptic curves over finite fields", Mathematics of

Computation, 49, pp.301-304, 1987.

Page 429: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 429 -

[181] H. Rück, "Abelian surfaces and jacobian varieties over finite fields",

Composition Mathematica, 76, pp.351-366, 1990.

[182] H. G. Rück, "On the discrete logarithm problem in the divisor class group of

curves" Math. Comp., 68, pp.805-806, 1999.

[183] T. Satoh and K. Araki, "Fermat quotients and the polynomial time discrete

log algorithm for anomalous elliptic curves", Comm. Math. Univ. Sancti Pauli, 47,

pp.81-92, 1998.

[184] E. F. Schaefer, "Computing a Selmer group of a Jacobian using functions on

the curve", Math. Ann., 310, pp.447-471, 1998.

[185] B. Schneier, Applied Cryptography, John Wiley and Sons, 1996.

[186] C. Schnorr, "Efficient signature generation by smart cards", Journal of

Cryptology, 4, pp.161-174, 1991.

[187] R. Schoof, "Elliptic curves over finite fields and the computation of square

roots mod p", Mathematics of Computation, 44, pp.483-494, 1985.

[188] R. Schoof, "Nonsingular plane cubic curves over finite fields", J. of

Combinatorial Theory, A46, pp.183-211, 1987.

[189] R. Schroeppel, H. Orman, S. O'Malley and O. Spatscheck, "Fast key exchange

with elliptic curve systems", Advanced in Cryptolog, Crypto 95, Springer-Verlag,

pp.43-56, 1995.

[190] J. Schwenk AND J. Eisfeld, Public key encryption and signature schemes

based on polynomial over Z n, Advanced in Cryptology, EUROCRYPT'96, LNCS

1070, Springer- Verlag, pp.60-71, 1996.

Page 430: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 430 -

[191] P. Scott, S. Simmons, S. Tavares and L. Peppard, "Architectures for

exponentiation in GF( 2 m)", IEEE Journal on Selected Areas in Communication, 6,

pp.578-586, 1988.

[192] I. A. Semaev, "Evaluation of discrete logarithms on some elliptic curves",

Math. Comp., 67, pp.353-356, 1998.

[193] G. Seroussi. Table of low-weight irreducible polynomials over F 2.

Hewlett-Packard Laboratories Technical Report No.HPL-98-135, August 1998.

[194] G. Seroussi. Compact representation of elliptic curve points over F 2 n.

Hewlett-Packard Laboratories Technical Report No.HPL-98-94Rl, September 1998.

[195] H. Shizuya, T. Itoh and K. Sakurai, On the complexity of hyperellitic discrete

logarithm problem, Advanced in Cryptology, EUROCRYPT'91, LNCS 547,

Springer-Verlag, pp.337-351, 1991.

[196] J. Silverman, The arithmetic of elliptic curves, Springer-Verlag, New York,

1992.

[197] J. Silverman and J. Tate, Rational points on Elliptic Curves, Springer-verlag,

New York, 1992.

[198] J. H. Silverman, The Arithmetic of Elliptic Curves, Springer-Verlag, GMT l06,

1986.

[199] J. H. Silverman, Advanced Topics in The Arithmetic of Elliptic Curves,

Springer-Verlag, GMT 151, 1994.

[200] J. H. Silverman and J. Suzuki, "Elliptic curve discrete logarithms and the

index calculus", Advanced in Cryptolog, ASIACRYPT'98, LNCS 1514,

Springer-Verlag, pp.110-125, 1998.

[201] J. H. Silverman, "The xedni calculus and the elliptic curve discrete logarithm

problem", Preprint, 1998.

[202] N. P. Smart, "On the performance of hyperellitpic curves cryptosystems",

Advanced in Cryptology, EUROCRYPT '99, LNCS 1592, Springer-Verlag,

pp.165-175, 1999.

Page 431: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 431 -

[203] J. A. Solinas, "An improved algorithm for arithmetic on a family of elliptic

curves", Advances in Cryptology, CRYPTO'97, LNCS 1294, Springer-Verlag,

pp.357-371, 1997.

[204] E. Teske, "Speeding up Pollard's Rho method for computing discrete

logarithms", Algorithmic Number Theory, LNCS 1423, Springer-Verlag, pp.541-554,

1998.

[205] E. Teske, "A space efficient algorithm for group structure computation",

Math, Comp., 67, pp.1637-1663, 1998.

[206] S. A. Vanstone and R. J. Zuccherato, "Elliptic curve cryptosystems using

curves of smooth order over the ring Z n", IEEE Trans. Info. Theory, 43,

pp.1231-1237, 1997.

[207] C. Wang and D. Pei, "A VLSI design for computing exponentiations in

GF( 2m) and its application to generate pseudorandom number sequences", IEEE

Transactions on Computers, 39, pp.258-262, 1990.

[208] D. Welsh, Codes and Cryptography Claredon Press, Oxford, 1988.

[209] E. De Win, A. Bosselaers, S. Vandenberghe, P. De Gersem, and J. andewalle.

"A fast software implementation for arithmetic operations in GF( 2 t)" , Asiacrypt'96,

LNCS 1163, Springer-Verlag, pp.65-76, 1996

[210] H. Wu, "Efficient Computation in Finite Fields with Cryptographic

Significance", PhD Thesis, University of Waterloo, 1999.

[211] H. Wu, "Low Complexity bit-parallel finite field arithmetic using polynomial

basis", Proceedings of Cryptographic Hardware and Embedded Systems, CHES'99,

pp280-191, 1999.

Page 432: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 432 -

3. 배낭유형의 공개키 암호알고리즘의 참고문헌

[1] 김 세헌, 엄 봉식, "Knapsack 공개키 암호체계에 대한 암호분석,“ WISC'90 (1990).

[2] 배낭 공개키 암호법의 비도분석 및 개선방법 개발에 관한 연구, 최종보고서, 한국전자

통신연구원, 1991

[3] 현대암호학, 한국전자통신연구원,1991

[4] Balinski, M.L. "Notes on a Constructive Approach to Linear Programming," in

Mathematics of the Decision Sciences, Part I, (1968) pp.38-64.

[5] Brassard, C., "A Note on the Complexity of Cryptography, "IEEE Trans. on

Informat. Theory 25 (1979) pp.232-233.

[6] Brickell. E.F., J.C. Lagarias and A.M. Odlyzko, "Evaluation of the Adleman

Attack on Multiply Iterated Knapsack Crytosystems," CRYPTO'83 (1984) pp.39-42.

[7] Brickell E. F. "Solving Low Density Knapsacks," CRYPTO'83 (1984) pp.25-37.

[8] Chor, B. and R.L. Rivest, "A Knapsack Type Public Key Cryptosystem Based on

Arithmetic in Finite Fields," IEEE Trans. on Informat. Theory 34 (1988) pp.901-909.

Page 433: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 433 -

[9] Cooper, R.H. and W. Patterson, "A Generalization of the Knapsack Method

Using Galois Fields," Cryptogia 8 (1984) pp.184-188.

[10] Cover, T.M., "Enumerative Source Coding, "IEEE Trans. on Informat. Theory

19 (1973) pp.73-77.

[11] Desmedt, Y.G. J.P. Vandewalle and R.J.M. Govaerts, "Cryptical Analysis of the

Security of Knapsack Public-Key Algorithms," IEEE Trans. on Informat. Theory 30

(1984) pp.601-611.

[12] Dieter, U., "How to Calculate Shortest Vectors in a Lattice," Mathematics of

Computation 29(1975) pp.827-833.

[13] Diffie, W., "The First Ten Years of the Public-Key Cryptography," Proceedings

of the IEEE 76 (1988) pp.560-577.

[14] Hammer, P.L., P. Hansen and B. Simeone, "Roof Duality, Complementation and

Persistency in Quadratic 0-1 Optimization," Mathematical Programming 28 (1984)

pp.121-155.

[15] Kaltofen, E., "On the Complexity of Finding Short Vectors in Integer Lattices,"

in Computer Algebra: Proceedings of EUROCAL'83, New York, (1983) pp.236-244.

[16] Lagrias, J. C. and A.M. Odlyzko, "Solving Low-Density Subset Sum Problems,"

Journal of the ACM 32 (1985) pp.229-246.

[17] Laih, C.S., J.Y. Lee, L. Harn and Y.K. Su, "Linearity Shift Knapsack Public-Key

Cryptosystem," IEEE Journal on Selected Areas in Communications 7 (1989)

pp.534-539.

Page 434: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 434 -

[18] Lenstra, A.K., H.W Lenstra, Jr. and L. Lovasz, "Factoring Polynomial with

Rational Coefficients," Mathematishe Annalen 261(1982) pp.515-534.

[19] Lenstra, H.W. Jr., "Integer Programming with a Fixed Number of Variables,"

Mathematics of Operations Research 8 (1983) pp.538-548.

[20] Merkle, R.C. and M.E. Hellman, "Hiding Information and Signatures in Trapdoor

Knapsacks," IEEE Trans. on Informat. Theory 24 (1978) pp.525-530.

[21] Niemi, V., "A New Trapdoor in Knapsack," EUROCRYPT'90, (1991)

pp.405-411.

[22] Odlyzko, A.M., "Cryptanalystic Attacks on the Multicative Knapsack

Cryptosystem on Shamir's Fast Signature Scheme," IEEE Trans. on Informat. Theory

30 (1984) pp.594-601.

[23] Padberg, M., "The Boolean Quadratic Polytope: Some Characteristics, Facets

and Relatives," Mathematical Programming 45 (1989) pp.139-172.

[24] Pieprzyk, J.P., "On Public-Key Cryptosystem Built Using Polynomial Rings,

EUROCRYPT'85 (1986) pp.73-78.

[25] Pohlig, S.C., M.E. Hellman, "An Improved Algorithm for Computing Algorithm in

GF(p) and its Cryptographic Significance," IEEE Trans. on Informat. Theory 24

(1978) pp.106-110.

Page 435: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 435 -

[26] Schnorr, C.P., "A Hierarchy of Polynomial Time Lattice Basis Reduction

Algorithms," Theoretical Computer Science l0 (1987) pp.201-224.

[27] Schroeppel, R. and A. Shamir, "A T=0( 2 n/4) Algorithm for Certain

NP-Complete Problems," SIAM Journal on Computing l0 (1981) pp.456-464.

[28] A. Shamir, "On the Cryptocomplexity for Knapsack Systems," Proc. Sysp. ACM

Theory Compu. 11(1979) pp.118-129.

[29] Shamir, A., "A Polynomial Time Algorithm for Breaking the Basic

Merkle-Hellman Cryptosystem," IEEE Trans. on Informat. Theory 30 (1984)

pp.699-704.

[30] T. Elgamal, "A Public Key Cryptosystem and a Signature Scheme Based on

Discrete Logarithms," IEEE Trans. on Informat. Theory 31 (1985) pp.469-472.

[31] A.J. Menezes, T. Okamoto and S.A. Vanstone, "Reducing Elliptic Curve

Logarithms to Logarithms in a Finite Fie1d," IEEE Trans. on Informat. Theory 39

(1993) pp.1639-1645.

[32] C. P. Schnorr and M. Euchner, "Lattice Basis Reduction: Improved Practical

Algorithms and Solving Subset Sum Problems, "Mathematical Programming 66 (1994)

pp.181-199.

[33] S. A. Vanstone and R.J. Zuccherato, "Short RSA Keys and Their Generation,"

Journal of Cryptology 8 (1995) pp.101-114.

Page 436: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 436 -

[34] S. Blackburn and S. Murphy, "The Cryptanalysis of a Public-Key

Implementation of Finite Group Mappings," Journal of Cryptology 8 (1995)

pp.157-166.

[35] S.M. Yen and C.S. Laih, "Improved Digital Signature Algorithm," IEEE Trans.

on Computers 44 (1995) pp.729-730.

[36] S.M. Yen and P. Suvannapattanan, "Correction to Improved Digital Signature

Algorithm," IEEE Trans. on Computers 45 (1996) pp.864.

[37] J. Feigenbaum, et. al., "Introduction to the Special Issue on Codes and

Complexity," IEEE Trans. on Informat. Theory 42 (1996) pp.1649-1659.

[38] J. Stern, "A New Paradigm for Public Key Identification," IEEE Trans. on

Informat. Theory 42 (1996) pp.1757-1768.

[39] S. R. Blackburn, S. Murphy and K. G. Paterson, "A Comment on A New

Public-Key Cipher System Based Upon the Diophantine Equations," IEEE Trans. on

Computers 46 (1997) pp.512.

[40] K. Sakurai and H. Shizuya, "A Structural Comparison of the Computational

Difficulty of Breaking Discrete Log Cryptosystems," Journal of Cryptology 11 (1998)

pp.29-43.

[41] R. Scheidler, "A Public-Key Cryptosystem Using Purely Cubic Fields," Journal

of Cryptology 11 (1998) pp.109-124.

Page 437: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 437 -

[42] Bales, E and J.B. Mazzola, "Nonlinear 0-1 programming : II. Dominance

Relations and Algorithms," Mathematical programming 30, (1984) pp.22-45.

[43] Balas, E. and J.B. Mazzola, "Nonlinear 0-1 Programming : I. Linearization

Techniques," Mathematical Programming 30, (1984) pp.1-21

4. 그래프 이론 기반 공개키 암호알고리즘의 참고문헌

[1] Brassard, G., A note on the complexity of cryptology, IEEE Trans. Information

Theory IT-25, pp.232-233, 1979.

[2] Damgard, I., 'Non-interactive perfect zero-knowledge with preprocessing',

Extended Abstracts, EUROCRYPT 92, pp.313-326, 1992.

[3] De Santis, A., Micali, S., and Persiano, G., 'Non-interactive zero-knowledge

proof systems', proc. CRYPTO 87, pp.52-72, 1987.

[4] De Santis, A., Micali, S., and Persiano, G., 'Non-interactive zero-knowledge

with preprocessing', Proc. CRYPTO 88, pp.269-282. 1998.

[5] Dunbar et. al., the algorithmic complexity of minus domination in graphs,

Discrete Applied Math., 68, pp.73-84. 1996.

[6] , Minus domination in graphs, Discrete Math., 199, pp.35-47, 1999.

[7] , The algorithmic complexity of minus domination in graphs, Discrete

Appl. Math., 68, pp.73-84, 1996. [FK] Fellows, Koblitz, Combinatorial cryptosystems

Galore!, Contemporary Maths, 168, pp.51-61, 1994.

Page 438: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 438 -

[8] Goldreich, O. and Kushilevitz, E., 'A perfect zero-know1edge proof for a

problem equivalent to discrete logarithm', Proc. CRYPTO 88, pp.57-70, 1988.

[9] Gross, Tucker, Topological Graph Theory (John Wiley & Sons 1987).

[10] Kratochvil, Regular codes in regular graphs are difficult, Discrete Math., 133,

pp.191-205, 1994.

[11] Lapidot, D., and Shamir, A., Publicly verifiable non-interactive 'zero-knowledge

proofs', Proc. CRYPTO 90, pp.353-365, 1990.

[12] Rackoff, C., and Simon, D., 'Non-interactive zero-knowledge proof of

knowledge and chosen ciphertext attack', Proc. CRYPTO 91, pp.433-444, 1991.

5. SL2(Z) 기반 공개키 암호알고리즘의 참고문헌

[1] 한국전자통신연구소(1991) 현대 암호학ㆍ전자통신연구소

[2] Adleman, L. 1983. On breaking generalized knapsack public key cryptosystems.

Proc. of the 15th Acm Symposium on Theory of Computing. 402-412.

[3] H.R. Amirazizi, E. D. Karnin, and J.M. Reyneri, "Compact knapsacks are

polynomial solvable," ACM SIGACT NEWS vol 15, pp.20-22, 1983.

[4] Brickell, E. 1984. Solving low density knapsacks, Advances in Cryptology :

Proceedings of CRYPTO 83. New York : Plenum Press. 25-37.

Page 439: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 439 -

[5] Brickell, E. 1985. Breaking iterated knapsacks. Advances in Cryptology :

Proceedings of CRYPTO 84. New York : Springer Verlag. 342-358.

[6] M. J. Coster, A. Joux, B. A. LaMacchia, A. M. Odlyzko, C. P. Schnorr and J.

Stern, Improved low-density subset sum Computational Complexity, to appear.

[7] deBruijn, N. 1950. On bases for the set of integers. Publ. Math (Debrecen). 1 :

232-242.

[8] deBruijn, N. 1964. Some direct decomposition of the set of integers. Math.

Comp. Col. 18 : 537-546.

[9] Desmedt, Y., J. Vanderwalle, and R. Govaerts. 1984. Critical analysis of the

security of knapsack public key algorithms. IEEE Trans. On Information Theory. 30

: 601-611.

[l0] J. B. Fraleigh, "A First Course in Abstract Algebra", Addison-Wesley, 1993.

[11] Halmos, "Finite Dimensional Algebra", Academic Press, 1921.

[12] T. Herlestam, "Critical remarks on some public key cryptosystems, "BIT, vol.

18, pp.493-496, 1978.

[13] J. H. Holland, "Adaptation in Natural and Artificial Systems",. Ann Arbor, MI :

University of Michigan Press, 1975.

[14] I. Ingemarsson, "A new algorithm for the solution of the knapsack problem," in

Lecture Notes in Computer Science 149 ; Cryptography : Proc. Workshop

Cryptography, T. Beth, Ed., Burg Feuerstein, Germany. March 29-April 2, 1982,

pp.309-315. Berlin : Springer-Verlag, 1983.

[15] J. C. Lagarias and A. M. Odlyzko, Solving low-density subset sum problems, J.

Assoc. Comp. March 32 (1985), 229-246.

Page 440: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 440 -

[16] H. W. Lenstra, Jr., "Integer programming with a fixed number of variables,"

Math. Operations Res., pp.15-24, 1979.

[17] A. K. Lenstra and H. W. Lenstra, Jr., "Algorithms in number theory," in

Handbook of Theoretical Computer Science, J. Van Leeuwen, Ed., pp.673-716.

Cambridge, MA : MIT Press, 1990.

[18] A. K. Lenstra and M. S. Manasse, "Factoring by electronic mail," in Lecture

Notes in Computer Science 434 ; Advances in Cryptology ; Proc. Eurocrypt '89,

J.-J. Quisquater and J. Vandewalle, Eds., Houthalen, Belgium, April 10-23, 1989,

pp.355-371. Berlin : Springer-Verlag,1990.

[19] Long, C. 1967. addition theorems for sets of integers. Pacfic J. Math. 23 :

107-112.

[20] R. Matthews, "The use of genetic algorithms in cryptanalysis", Cryptologia.

17(2) : 187-201, 1993.

[21] S. S. Magliveras and N. D. Memon, Properties of cyptosystem PGM, in

Advances in Cryptology-Crypto '89, Lecture Notes in Computer Science, Vol. 435,

spinger-Verlag, Berlin (1989), pp.447-460.

[22] S. S. Magliveras and P. Petersen, Software implementation of the PGM

encryption system, CCIS Report, Center for Communication and Information Science,

University of Nebraska-Lincoln, (1991)

[23] C. Pomerance, "Fast, rigorous factorization and discrete logarithm algorithms,"

in Discrete Algorithms and Complexity, D. S. Johnson, T. Nishizeki, A. Nozaki, and

H. S. Wilf, Eds. ,New York : Academic Press, pp.119-143, 1987.

[24] G. Rawlins, "Foundations of Genetic Algorithms", Los Altos Ca : Morgan

Kaufmann Publishers, 1991.

[25] A. Shamir, "A polynomial time algorithm for breaking the basic

Merkle-Hellman cryptosystem," in IEEE Trans. Inform. Theory, vol. IT-30, no. 5,

pp.600-704, Sept. 1984.

Page 441: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 441 -

[26] A. Shamir, "The cryptographic security of compact knapsacks,"

MIT/LCS/TM-164, Cambridge MA : Massachusetts Institute of Technology, 1980.

[27] A. Shamir, "On the cryptocomplexity of knapsack systems," in Proc. 11th ACM

Symp. Theory Comput., pp.118-129, 1979.

[28] A. Shamir and R. Zippel, "On the security of the Merkle-Hellman cryptographic

scheme," IEEE Trans. Inform. Theory, vol. 26, no. 3, pp.339-340, May 1980.

[29] C. C. Sims, Some group-theoretic algorithms : in M. F. Newnam, deitor,

Topics in algebra, Lecture Notes in Mathematics, Vol. 697, springer-Verlag,

Berlin(1978), pp. l08-124.

[30] Spillman, R., M. Janssen, B. Nelson, and M. Kepner. 1993. Use of a Genetic

Algorithm in the Cryptanalysis of Simple substitution Ciphers. Cryptologia. 17(1) :

31-44.

[31] S. A. Vanstone, New public-key cryptosystems based on factorizations of

finite groups, AUSCRYPT '92, preproceedings page 12.7-12.12.

[32] C. Charnes and J. Pieprzyk. Attacking the SL2 hashing scheme. In Advanced in

Cryptology-Proceedings of ASIACRYPT '94 (1994). LNCS 917. Spfinger-Verlag pp.

322-330.

[33] L.E. Dickson. Linear groups with an exposition of the Galois field theory.

Leibzig : Teubner 1901 (New York : Dover Publ. 1958).

[34] L. Dornhoff. Group representation theory, volume I. Marcel Dekker, Inc., New

York l971.

Page 442: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 442 -

[35] M. Suzuki. Group theory, volume I. Spinger-Verlag 1982.

[36] J-P. tillich and G. Zémor. Hashing with SL2. In Advanced in Cryptology

Proceedings of CRYPTO '94 (1994). LNCS 917. Springer-Verlag pp.40-49.

Page 443: 공개키 암호알고리즘 개발에 관한 연구 - ITFIND · 공개키 암호알고리즘 개발에 관한 연구 A Study on the Development of a Public-Key Cryptosystem 1999

- 443 -