암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … ·...

130
-1-

Transcript of 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … ·...

Page 1: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 1 -

최종연구보고서 암호기술연구 01-15

암호키분배 및 사용자 인증 프로토콜

모듈의 시스템 파라메터

안전성 검증 기술 및 개발S/W

A study on developing the security verification technique

and S/W of system parameters of key distribution and

authentication protocol module.

수탁기관 스팍스컴: (Sparxcom)

2002. 1

Page 2: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 2 -

제 출 문

한국정보보호진흥원 원장귀하

본 보고서를 암호키 분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 안전성 검“

증 기술 및 개발 최종 연구개발결과 보고서로 제출합니다S/W .

년 월2002 1

수탁 기관 : 스팍스컴(Sparxcom)

연구책임자 : 교 수 박 영 호 고려대 정보보호기술연구센터( )

참여연구원 : 연 구 원 유 혜 정 스팍스컴( )

연 구 원 장 기 식 고려대 정보보호대학원( )

연 구 원 이 성 우 스팍스컴( )

연 구 원 박 혜 영 고려대 정보보호대학원( )

연 구 원 양 창 진 스팍스컴( )

연 구 원 최 선 규 스팍스컴( )

연 구 원 정 희 윤 고려대 수학과( )

Page 3: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 3 -

요 약 문

제목1.

암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 안전성 검증 기술 및 S/W

개발

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

공개키 암호시스템은 인터넷 전자상거래 무선통신에 적용되는 보안 서비스의 핵심 기술로, ,

서 그 중요성과 활용성이 증대되고 있다 특히 키 분배 및 사용자 인증은 공개키 암호시스. ,

템이 제공해야할 가장 중요한 기능이라고 할 수 있다 현재까지도 표준화가 진행 중이며 보.

안업계의 주요논제인 공개키 기반구조 는 이런 기능을 보다 효과적이고 안전하게 제공PKI( )

하고자 하는 공개키 암호시스템 기술의 총화라고 할 수 있다 현재 국내외 보안업체의 상당. ,

수은 를 개발 공급하고 있으며 무선인터넷 보안을 위한 도 상용화하고 있는 실정이PKI , , PKI

다 이런 현실은 보안업체들이 개발한 관련제품에서 사용되는 공개키 암호시스템 파라메터.

의 안전성을 확보할 수 있는 기술개발과 검증 의 개발을 요구하고 있다S/W .

본 연구의 목적은 공개키 암호시스템 파라메터의 안전성과 관련된 최근의 연구동향과 표준

문서 등을 분석하고 이를 기반으로 안전성의 검중 기준을 제시한다 특히 본 과제를 통하여. ,

이런 기준을 평가할 수 있는 소프트웨어를 개발하여 그 실효성을 부각시키고자 한다.

Page 4: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 4 -

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

가 공개키 암호시스템 파라메터의 안전성 분석.

공개키 암호시스템 파라메터의 안전성과 관련된 최근의 연구동향 분석a)

현재 가장 중요한 공개키 암호시스템은 인수분해문제 이산대수문제 타원곡선 이산대수문제, ,

의 세 가지를 들 수 있다 예를 들어 인수분해문제와 관련되어 가장 잘 알려진 암호. , RSA

시스템은 안전성과 관련된 많은 연구가 진행되어 왔는데 대표적인 성과로는 첫째 소수생성, ,

의 안전성 기준에 대한 연구이다 초기에 사용되던 임의의 소수가 안전상의 문제로. “strong"

소수로 바뀌었다가 현재는 다시 임의의 소수가 사용되고 있다 둘째로 공개 지수의 크기와. ,

관련된 연구이다 현재는 안전성이 증명된 작은 크기의 공개 지수가 권장되고 있다 셋째로. . ,

지수의 모듈로로 사용되던 오일러 함수가 효율성의 문제로 최소공배수로 대체되어 사용되고

있다 타원곡선과 관련된 연구는 현재까지 괄목할 만한 발전을 이루었는데 시스템 파라메터. ,

의 안전성과 관련된 연구들은 크게 세 가지로 나누어 설명할 수 있을 것이다 그것들은 주.

로 타원곡선 이산대수문제의 안전성에 관한 것이다 소수 유한체 상에서 정의된. anomalous

곡선이 안전하지 않다는 보고가 있었고 곡선이 또한 안전하지 않다고 알려, super-singular

졌으며 지표가 인 유한 체 상에서 정의된 곡선 중에서 상기의 두 가지 조건을 만족하지, 2

않는 것 중에서도 안전하지 않다는 연구결과가 최근에 나왔다 이런 사실들은 표준문서에서.

충분히 고려되었거나 고려중인 것으로 알려져 있다.

공개키 암호시스템 파라메터의 안전성과 관련된 표준문서 분석b)

공개키 암호시스템과 관련된 표준문서는 ISO, ANSI X9 series, IEEE P1363, PKCS series,

등이 대표적이다 본 과제에서는 이들 문서에 소개된 시스템 파라메터의 안전성과 관MLS .

련된 항목들을 분석한다.

나 공개키 암호시스템 파라메터의 안전성 평가기준 마련.

Page 5: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 5 -

방식의 평가기준a) off-line

공개키 시스템 파라메터에 대한 직접적인 검증 방법으로서 소수 판정 테스트, group

테스트 등과 같이 수학적인 계산과정을 거쳐 타당성을 직접 검증한다membership .

방식의 평가기준b) on-line

을 이용해서 상에서 간접적으로 검증한다Interactive protocol on line . zero knowledge proof

라는 기본적인 성질을 만족시키는 을 만들어서 공개키의of knowledge Interactive protocol

타당성을 검증한다.

다 공개키 암호 시스템 파라메터의 안전성 평가툴 개발.

방식의 및 평가툴 개발a) RSA off-line on-line

방식의 및 평가툴 개발b) DSA off-line on-line

및 평가툴 개발c) ECC off-line on-line

연구결과4.

각 장별 세부내용을 살펴보면 다음과 같다.

장은 공개키 시스템 파라메터의 안전성과 관련된 요구조건 및 수학적인 근거들을 분석2,3,4

한다.

장은 공개키 시스템 파라메터의 평가기준 및 방법을 살펴본다5 off-line .

장은 공개키 시스템 파라메터의 평가기준 및 방법을 살펴본다6 off-line .

장은 에 의해 제시된 검증기준을 살펴본다7 NIST .

장은 공개키 시스템에 대한 영 지식 증명과 관련된 최근 동향을 살펴본다8 Interactive .

Page 6: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 6 -

장은 진단 및 적합성 테스트와 관련된 기술을 살펴본다9 S/W .

장은 구현과 관련된 간략한 설명이 첨부된다10 S/W .

활용에 대한 건의5.

현재 공개키 암호시스템의 개발은 민간업체에서 대부분 이루어지고 있다고 해도 과언이 아

닐 것이다 이런 사실은 안전성과 신뢰성이 최우선인 공개키 암호시스템의 본연의 목적을.

이루는 데는 커다란 문제점이라고 할 수 있을 것이다 이러한 문제점에 대한 효과적이고 실.

제적인 해결책은 보다 공정하고 신뢰성 있는 기관을 통해 공개키 암호시스템의 검증을 실시

하는 것이라고 하겠다 특히 시스템 파라메터의 안전성 확보는 공개키 암호시스템의 안전성. ,

의 핵심 이라는 점에서 본 과제의 결과물인 시스템 파라메터 검증 소프트웨어는 기존에 개

발된 프로토콜 검증 소프트웨어가 해결하지 못한 미비점들을 해결할 수 있을 것이다.

기대효과6.

본 과제는 시스템 파라메터 안전성 확보를 위한 검증기준을 마련하는 시발점이 될 것이라

생각되며 향후 지속적인 연구를 통한 보다 정확한 안전성 평가기준과 효율적인 검증방법,

개발의 필요성을 제시하고 있다 특히 본 과제를 통해 개발된 시스템 파라메터 검증 소프트. ,

웨어는 실제 적용이 가능한 검증툴 로서 그 역할을 다 할 수 있다고 생각된다.

Page 7: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 7 -

SUMMARY

1.Subject

A study on developing the security verification technique and S/W of system parameters

of key distribution and authentication protocol module

2. Objectives

The importance and application of Public-key systems are increasingly arising as a

primitive technology for security services, which are applied to internet, e-commerce,

and wireless communication. In particular, key distribution and entity authentication play

the most important roles in Public-key cryptosystems. PKI, which shill is being

standardized and a current hot issue in real world, is a total solution of Public-key

cryptosystems, providing these two functions efficiently and securely. Many domestic

and global security service providers provide PKI solutions including wireless PKI.

Under this current situation, the development of methods and softwares ensuring that

commercial security products conform to some formal conditions of Public-key system

parameters is required.

The purpose of this project is to analyze recent studies and standards related to

security analysis of Public-key system parameters and to present a validation guideline

for their security. In particular, a software implementation of testing these requirements

will give a practical effectiveness to this research.

Page 8: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 8 -

3. Contents and Scope

가. Security analysis of public-key system parameters

a) Analysis of recent studies for studies for public-key system parameters

At the present time, factoring problem, discrete logarithm problem and elliptic curve

discrete logarithm problem are the most important public-key system. For instance,

many researches connected with a security have ken studied h the well-Known system,

RSA, based on the factoring problem. As a representative result, the first, it is the

study about security criterion of a prime number generation. A random prime used in

the early stage was changed to a strong prime for a matter of security.

But now, a random prime is used again. The second, it is the study about the size of

public exponent. At present, the public exponent of a small size that is known as

provably secure is recommended. he third, the Euler function used h the exponent

module is replaced by the least common divisor for a matter of efficiency.

The research for a elliptic curve is extended considerably, the research related to the

security of a system parameter is classified in three parts. The first, it is the study

about security of elliptic curve discrete logarithm problem. There is a report that

anomalous curve defined in the prime held is not secure and that super-singular curve

is not secure either.

Recently, there is the result of research that among the curves defined in the field of

characteristic 2, insecure curves exist though previously recommended conditions are not

applied.

These facts have been considered or are being considered in the standard.

Page 9: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 9 -

b) The standard document analysis related to security of public-key system

parameter

The standard documents related to a public-key system are ISO, ANSI X9 series, IEEE

P1363, PKCS series, WTLS. In our study, we analyze the item connected with security

introduced in the standard.

나. The preparation of security validation criterion of public-key system

parameters

a) The validation criterion of off-line method

It is a direct validation method of public-key system parameters.

We evaluate the validity directly through a mathematical computation like primality test,

group membership test.

b) The validation criterion of on-line method

It is evaluated indirectly by using interactive protocol as a on-line. The validity of

public key is evaluated by using interactive protocol which is satisfied with a basic

property, zero knowledge proof of knowledge.

Page 10: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 10 -

다. The development of security validation too1 of public-key system parameters

a) The development of off-line & on-line validation tool as a RSA method

b) The development of off-line & on-line validation tool as a DSA method

c) The development of off-line & on-line validation tool as a ECC method

4. Result

Contents of this document are as follows.

In chap 2,3,4 we specify the mathematical basis and requirement for the security

parameters of public key cryptosystem.

In chap 5 we analyse the off-line test criterion and explain test method.

In chap 6 we analyse the on-line test criterion and explain test method.

In chap 7 validation criterion of NIST standard is described.

In chap 8 we surveyed the articles of zero-knowledge interactive proof system related

to public key cryptosystem parameters.

In chap 9 software diagnosis and conformance testing by NIST is described.

In chap 10 the explanation of software implementation is shortly described.

Page 11: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 11 -

5. Proposal

It is no exaggeration to say that the development of Public-key cryptosystems at

present is attained mostly in commercial security service providers. This fact may be a

large problem in Public-Key crytosystems' natural purpose that is the security and the

confidentiality.

The effective and practical solution about above problems is that Verification of

Public-key crytosystem is excuted by fair and true offices.

In particular, because the security assurance of system parameter is the point of

Public-key cryptosystems, our project`s outcome which is System Parameter Verification

Softwares may can solve unsettled questions by existing Protocol Verification Softwares.

6. Expectations

This project is expected to be a beginning of validation critertion of system parameters

for the security. It suggests that further study and research should be required for more

improvement of security validation criterion and efficient test development.

Specially the system parameter validation software developed by this project can be

practically applicable. And so it should be a valuable test tool.

Page 12: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 12 -

목 차

제 장 서 론1

제 장 인수분해 문제 기반의 공개키 파라메터 분석2

제 절 파라메터 요구조건 분석과 수학적 근거1 RSA (n=pq)

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

제 절 파라메터 요구조건 분석과 수학적 근거2 ESIGN(n=p2q)

시스템 파라메터 요구조건 분석*1. .

요구조건들에 대한 수학적 근거*2.

제 장 이산대수문제 기반의 공개키 파라메터 분석3

제 절 파라메터 요구조건 분석과 수학적 근거1 DSA

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

제 절 파라메터 요구조건 분석과 수학적 근거2 KCDSA

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

제 절 시스템 파라메터 요구조건 분석과 수학적 근거3 EIGama1

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

제 절 파라메터 요구조건 분석과 수학적 근거4 XTR

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

Page 13: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 13 -

제 장 타원곡선 이산대수 문제 기반의 공개키 파라메터 분석4

제 절 파라메터 요구조건 분석과 수학적 근거1 ECDSA

시스템 파라메터 요구조건 분석*1.

요구조건들에 대한 수학적 근거*2.

제 장 공개키 시스템 파라메터 검증을 위한 평가방5 Off-line

제 절 파라메터 검증을 위한 평가방법1 RSA Off-line

소수판정 테스트 테스트*1. (Miller-Rabin )

테스트*2. Known exponent

테스트*3. Small exponent

테스트*4. Exponents relation

제 절 파라메터 검증을 위한 평가방법2 DSA Off-line

테스트*1. Primality

테스트*2. Schnorr's relation .

생성자 위수 확인 테스트*3.

공개키의 생성자 테스트*4. group membership

제 절 파라메터 검증을 위한 평가방법3 ECDSA Off-line

표준 권장 곡선 적합성 테스트*1.

공개키 타당성 테스트*2.

제 장 공개키 시스템 파라메터 검증을 위한 평가6 On - line

방법

제 절 파라메터 검증을 위한 평가방법1 RSA On-line

인수분해 기반의 공개키 파라메터 모듈로 에 대한 검증*1. n

공개키 파라메터 에 대한 검증*2. RSA e

제 절 파라메터 검증을 위한 평가방법2 DSA On-line

비밀키 에 대한 테스트*1. d

Page 14: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 14 -

제 절 파라메터 검증을 위한 평가방법3 ECDSA On-line

제 장 의 검증 기준7 NIST

제 절 안전한 소수 생성 시 필요한 검증 횟수 근거1 (Strong prime)

제시

제 절 인수분해 문제 기반 암호시스템의 키쌍 공개키 비밀 키 검증2 ( , )

횟수 근거제시

제 절 이산대수 문제 기반 암호시스템의 도메인 변수 사용자변수3 , ,

메시지 변수 검증 횟수 근거 제시

도메인 변수 검증 근거 제시*1. (p, q, g)

사용자 변수 검증 근거 제시*2.

제 절 타원곡선 암호 프로토콜에 대한 새로운 검증 기준 마련 및 근4

거제시

제 장 공개키 시스템에 대한 영지식 증명8 Interactive

제 절 이산대수에 대한 영지식 증명1 Interactive(non-interactive)

*1. Schnorr's signature[36]

에 대한 영지식 증명*2. DLPl Interactive [17]

제 절 인수분해에 대한 영지식 증명2 Interactive(non-interactive)

*1. Poupard-Stern protocol[27]

*2. Proposed protocol

두 개의 의 곱에 대한*3. safe primes(or quasi-safe primes) Interactive (non -

영지식 증명interactive) [18]

유한체 연산에 대한 영지식 증명*4. Interactive(non-interactive) [11]

Page 15: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 15 -

제 장 진단 및 적합성 테스트와 관련된 기술9 S/W (S/W

diagnostics and conformance testing by NIST)

제 절 목적1

제 절 테스트 방법에 관한 연구2

표준에 따른 자동화된 소프트웨어 테스트 생성*1.

통계학적 방법에 의한 소프트웨어 테스트*2.

제 장 구현10 S/W

제 절 테스트용 함수 소개1

*1. RSA off-line test

*2. RSA off-line test

*3. DSA off-line test

*4. DSA off-line test

*5. ECC off-line test

*6. ECC on-line test

제 절 테스트용 자료파일 생성을 위한 자료형식2

*1. Big Integer

*2. Octet String

*3. Point Element

제 절 테스트 항목별 테스트 파일 작성3

항목 소수 테스트*1. 1(RSA )

항목*2. 2(RSA known exponent test)

항목*3. 3(RSA small exponent test)

항목*4. 4(RSA exponents relationship test)

항목*5. 6,7 (RSA on-line test)

항목 소수 테스트*6. 8(DSA )

항목*7. 9(DSA on-line test)

항목*8. 10(DSA group membership test)

항목*9. 12 13(DSA on-line test)˜

항목*10. 14 (ECC public-key validation test)

Page 16: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 16 -

항목*11. 16 17(ECC on-line test)˜

제 절 흐름도와 테스트 파일 예제4 On-line test .

*1. RSA on-line flow

*2. DSA on-line flow

*3. ECC on-line test f low

제 절 자료 구조5

*1. Big Number

*2. Field Element

*3. Point Element

제 절 소프트웨어 실행 예제6

*l. RSA off-line test

*2. RSA on-line test

제 절 기타 함수들7

유한체 연산*1.

타원곡선 연산*2.

입출력 함수*3.

제 장 결 론11

Page 17: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 17 -

표 목 차

표 시스템 파라메터[ 1] RSA

표 시스템 파라메터[ 2] ESIGN

표 시스템 파라메터[ 3] DSA

표 파라메터[ 4] KCDSA

표 파라메터[ 5] ElGama1

표 시스템 파라메터[ 6] XTR

표 시스템 파라메터[ 7] ECDSA

표[ 8] yes-biasedMonteCarloalgorithmforComposites

표 에 명시된 번 타원곡선[ 9] WTLS Version 05-Nov-1999 3

표 에 명시된 번 타원곡선[ 10] MLS Version 05-Nov-1999 5

표 에 명시된 번 타원곡선[ 11] WTLS Version 05-Nov-1999 7

표 도메인 변수 검증 횟수[ 12]

Page 18: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 18 -

그림목차

그림 파라메터 생성 알고리즘[ 1] KCDSA

그림[ 2] yes-biased Monte Carlo algorithm for Composites

그림 소수 판정 테스트[ 3] Miller-Rabin

그림 에 대한[ 4] d interactive zero-knowledge proof system..

그림[ 5] Schnorr's signature

그림[ 6] DLP1 (Goldreich-Kushilevitz)

그림[ 7] Poupard-Stern protocol

그림[ 8] Proposed protocol

그림 자동화 테스트 흐름도[ 9]

그림 실행화면[ 10]

그림[ 11] RSA on-line How

그림[ 12] DSA on-line f[ow

그림[ 13] ECC on-line test

그림 용 자료파일[ 14] test1.txt - test #1

그림 테스트 결과[ 15]

그림[ 16] RSA on-line test

Page 19: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 19 -

제 장 서 론1

전자상거래 는 인터넷이 보편화되고 있는 현대 산업사회에서 가장 커(electronic commerce)

다란 이슈이며 실제로 국내의 전자상거래를 위한 각종 서비스가 개발되어 상용화중이다 여, .

기에 문제는 전자상거래가 기본적으로 인터넷이라는 공개된 채널을 통한 정보의 이동을 가

정하고 있다는 데 있다 즉 인터넷으로 전달되는 모든 정보는 누구나 언제든지 접근이 가능. ,

하다 그러므로 전자상거래를 통해서 전달되는 정보를 보호하기 위해서는 새로운 기술 즉. ,

암호기술의 접목이 필요하다 그 중에서도 핵심기술인 암호키 분배 및 사용자 인증 기술의.

구현은 전자상거래 보안을 위한 필수적인 사항이라고 할 수 있다 특히 이런 일련의 기술들. ,

은 공개키 암호시스템을 기반으로 설계되고 공개키 기반구조 를 통해 구현되고 있다, (PKI) .

최근에 미국정부는 국방성이나 와 같은 보안관련 정부기관을 통해 전자상거래를 목적NIST

으로 민간에 의해 구현된 공개키 시스템에 대한 검증을 위한 평가기준 및 평가방법을 제시

하고 이에 따른 평가툴을 개발하고 있다 이러한 프로젝트의 목적은 공개키 시스템이 반드.

시 갖추어야 할 상호 연동성과 신뢰성을 신속하게 마련하여 국가차원의 경쟁력을 확보하려

는 의도에서 비롯되었다고 할 수 있다 본 과제에서는 암호 키 분배 및 사용자 인증 프로토.

콜에서 주로 사용하는 공개키 알고리즘의 시스템 파라메터들의 특성을 연구 분석하고 이를,

통해 시스템 파라메터의 안전성을 검증하는 기술을 마련한다 또한 공개키 시스템을 바탕.

으로 한 프로토콜들의 특성 검증에 앞서서 공개키 시스템에 사용되는 파라메터의 신뢰성,

안전성 정확성을 확보할 수 있는 다양한 기술의 확보를 목적으로 하고 있다 특히, . ,on-line

상에서 공개키 암호시스템의 파라메터들을 검중할 수 있는 기술을 확보하기 위해 기존의 관

련이론들을 분석하고 효과적인 방법을 제시한다 구체적으로 본 과제는 다양한 공개키 암호. ,

시스템 중에서 타입 타입 타입의 시스템들을 중심으로 파라메터 검증RSA , DSA , ECDSA

기술을 연구하고 실제로 소프트웨어로 구현한다.

Page 20: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 20 -

공개키 암호시스템 파라메터 검증방법을 간략히 소개하면 아래와 같이 크게 방식과off-line

방식의 두 가지로 분류할 수 있다on-line .

검증 방법 공개키 시스템 파라메터에 대한 직접적인 검증 방법으로서 소수 판Off-1ine :ㆍ

정 테스트 테스트 등과 같이 수학적인 계산과정을 거쳐 타당성을 직접, group membership

검증한다.

검증 방법 을 이용해서 상에서 간접적으로 검증한다On-1ine :Interactive protocol on line .ㆍ

라는 기본적인 성질을 만족시키는zero knowledge proof of knowledge Interactive protocol

을 만들어서 공개키의 타당성을 검증한다 또는 을 사용하는. random prime( strong prime)

의 경우 이러한 검증은 아직 소개되어 있지 않다RSA .

Page 21: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 21 -

제 장 인수분해 문제 기반의 공개키 파라메터 분석2

인수분해 문제는 공개키 암호 시스템에서 이산대수 문제와 함께 매우 널리 사용되는 어려운

문제 가운데 하나이다 특히 인수 분해 문제는 문제(hard problem) . , RSA , quadratic

문제 합성수 법에서의 제곱근 문제와 매우 밀접한 관계를 갖고 있다 인수분해residuosity , .

문제가 풀리면 나머지 세 문제도 다항식 시간에 해결될 수 있다 그러나 합성수 법에서의.

제곱근 문제가 풀리면 인수분해 문제도 다항식 시간 에 풀리는 반면 나머(polynomial time)

지 두 문제에 대하여는 역이 증명되지 않았다 위의 같은 형태의 문제들을 기반으로 하는.

공개키 암호 시스템들을 인수분해 문제 기반의 공개키 암호 시스템이라 한다.

공개키 암호 시스템은 년 의 인이 발표한 논RSA 1978 R.L Rivest, A. Shamir, L. Adleman 3

문인 제안된"A Method for Obtaining Digital Signatures and Public Key Crypto systems

소인수분해 문제에 근거한 암호 시스템을 말하며 발표자의 머리글자를 따서 라 명명되, RSA

었다 공개키 암호 시스템은 공개키 암호 시스템과는 달리 합성수 법에서의 제. Rabin RSA

곱근 문제를 직접 적용하였다 그러나 그 후 해독의 어려움이 소인수 분해의 어려움과 동일.

함이 증명되었다 공개키 암호 시스템의 기본적인 아이디어는 공개키 암호 시스. Rabin RSA

템의 공개키를 로 고정한 형태이다 하지만 공개키 암호 시스템은 복호화 과정에서2 . Rabin

가지 후보에서 하나의 평문을 결정해야한다는 결점이 있다 공개키 암호 시스템4 . Williams

은 공개키로 사용하는 두 소수의 곱에 제한을 가하여 공개키 암호 시스템의 결점을Rabin

없앤 암호시스템으로서 해독의 어려움이 인수분해 문제의 어려움과 동일함이 증명되었다.

Page 22: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 22 -

공개키 암호 시스템은 문제를 가정한 확률적 공개Goldwasser-Micali quadratic residuosity

키 암호 시스템이다 이 시스템은 를 이용하여 한 비트씩 암호화하고. pseudosquare number ,

등의 다양한 프로토콜에 유용하게 사용된다 스킴은Bit Commitment . ESIGN T. Okamoto

외 인이 제안한 것으로 에 선정된 전자서명 시스템으로 위수가5 NESSIE n = p 2q 인군에서

의 를 기반으로 한다 은 증명 가능한 안전approximate e-th root problem(AERP) . ESIGN

성을 지닐 뿐만 아니라 기반의 전자서명에 비해 서명생성이 배 이상 효율적이고 서, RSA 10

명검증도 비교할 만 하며 타원곡선 기반의 서명 스킴과 비교하여 서명생성 서명검증(ECC) ,

모두 몇 배정도 빠르다 참조(NESSIE, D-IEEE P1363a ).

본 연구보고서에서는 인수분해 문제 기반의 공개키 암호 시스템 중 현재 가장 일반적으로

사용되고 있는 의 인수분해 문제를 기반으로 하는 와 에 제안된 효율적인n=pq RSA NESSIE

서명기법으로 에서의 를 기반으로 하는n=pq approximate e-th root problem(AERP) ESIGN

시스템 파라메터 요구조건 분석과 수학적 근거를 분석한다.

제 절 파라메터 요구조건 분석과 수학적 근거1 RSA (n=pq)

에서는 의 비밀키로 를 사용한다 왜냐하면 이PKCS #1 RSA random prime . strong prime

의 안전성에 영향이 없기 때문이다 이 일반적으로 은 공격과RSA [3 . strong prime factoring

공격 에 안전하기 위해 제안되었다 우선 공격에 대하여cycling [19] . factoring , strong prime

은 방법 과 방법 기에 안전하기 위해 필요하다 그러나Pollard P-1 [19] Williams P+1 [37] .

이어도 의 에 안전하지 않다 왜냐하면strong prime Lenstra elliptic curves method(ECM) [2 .ㄲ

에 대하여 방법 방법 기 과 를 비교하Random prime Pollard P-1 [19], Williams P+1 [3 ECM

면 앞의 두 방법의 성공확률은 공격 시간에만 의존하지만 은 병렬처리로 성공확률을, ECM

높일 수 있다.

Page 23: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 23 -

그래서 에 안전하기 위해 의 조건을 고려할 필요가 없다 그리고ECM strong prime . cycling

공격은 공격보다 현실적이지 않기 때문에 공격에 안전하기 위한factoring cycling strong

의 조건도 고려할 필요가 없다prime .

시스템 파라메터 요구조건 분석*1.

와 에서 기술한 공개키 시스템에서 요구되는 파라메터 조건을 다음의 표로PKCS IEEE RSA

기술한다.

Page 24: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 24 -

표 시스템 파라메터[ 1] RSA

Page 25: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 25 -

표 시스템 파라메트 계속[ 2] RSA ( )

비밀키 는 다음과 같이 두 가지 을 갖는다K Type .※

Type 1) (n d)

Type 2) (p. q, dp, dQ, qlnu)

Page 26: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 26 -

요구조건들에 대한 수학적 근거*2.

가 의 조건에 관한 수학적 근거. e

는 홀수e (3 ≤ e≺n 이면서 과 서로소이다) , (p-1), (q-1) .

이므로 인 가 존재한다 그래서 인 가 존gcd(e,l(n))=1 e*d+l(n)*d' =1 d,d' . e*d=1 mod(l(n) d

재한다 즉. , e-1=d mod l(n)

나 의 조건에 관한 수학적 근거. d

d*e≡1 mod l(n)를 만족하는 d를 사용하여 임의의 메시지를 복호화 할 수 있다 사실.

의 복호화의 수학적 근거는 정리에 기반 한다 그러나 정리는RsA Eulse's . Euler's n과 서

로소인 a에 대하여만 a ( p - 1 ) * ( q - 1 )≡ 1 mod n 을 보장한다 여기서. Z n의 모든 원소

a에 대해 a lcm ( p - 1 ,q - 1 )≡ 1 mod n을 만족함을 보일 필요가 있다.

Z n≈ Z p× Z q 임으로 에 일대일 대응되는a ( a 1 , a 2 )∈ Z p× Z q가 존재한다.

그리고 Z p× Z q = Z*p× Z

*q ∪ Z

*p× {0}∪{0} × Z

*q∪ {0}× 이다{0} .

( a 1 , a 2 )∈ Z*p× Z

*q인 경우 a 1의 위수는 를 나누므로p-1 a 2의 위수는

lcm (p - 1,q - 1 )를 나눈다.

( a 1 , a 2 )∈ Z*p× 경우{0} a 1 = 0이고, a 2의 위수는 를 나누므로 의 위수는q-1 a

lcm (p - 1,q - 1 )를 나눈다.

( a 1 , a 2 )∈ {0}× 경우 이므로 항상 성립한다{0} a=0 .

Page 27: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 27 -

다 의 조건에 관한 수학적 근거. K

비밀 키 는 다음과 같이 두 가지 을 갖는다K Type .

Type 1) (n, d)

Type 2) (p, q, dP, dQ, qlnu)

두 가지 비밀 키 의 차이점(1) Type

두 번째 은 첫 번째 보다 배 정도 빠르다 두 번째 은 첫 번째 보다Type Type 8 . Type Type

알고리즘의 구조상 복잡하지만 법 연산의 크기가 반 이므로 더 효율적이다.

두 번째 비밀 키 을 사용하여 복호화 된 평문은 첫 번째 으로 복호화(2) Type [6] Type

된 평문과 일치한다.

m에 대하여 m = m 1 mod p, m = m 2mod q인 것만 확인하면 에 의해 유일한CRT m

이다 왜냐하면. m = m 2+ h *q에 의해 m = m 2mod q는 분명하다 그리고.

h = qInv ( m 1 - m 2 )mod p

qInv⋅q =1mod p 이므로 m = m 2+ qInv ( m 1 - m 2 )* q≡ m 2+ m 1 - m 2 = m 1

mod p가 된다.

두 번째 비밀 키 으로 서명 값을 생성할 때 주의할 점(3) Type .

만약 두 번째 으로 서명 값을 생성하는 중에Type s 1 = mdpmod p, s 2 = m

dQ mod q

중 하나를 잘못 계산하면 n을 인수분해 할 수 있다[6].

왜냐하면 s e = m mod p, s e≠m mod q 인 경우 gcd( n , s e - m )= p를 계산 할 수 있

다 그래서 서명 값을 생성한 후 정확한 결과인지 확인하는 과정이 필요하다. .

Page 28: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 28 -

라 의 조건에 관한 수학적 근거. p, q

또는 가 드러나면 비밀 키 를 유도할 수 있다(1) p q RSA d .

가 드러나면 계산하고 를 얻는다 그래서 법에 대한 의p q=n/p , lcm(p-1,q-1) . lcm(p-1,q-1) e

역원 를 계산한다d .

( 는 같은 비트크기를 가져야 한다2) p,q .

왜냐하면 의 은 작은 의 크기에 의존하, elliptic curve factoring algorithm Running time prime

기 때문이다 그래서 크기가 비트로 요구되면 의 크기는 비트이어야 한다. 1024 p,q 512 .

의 크기가 너무 작으면 안 된다(3) p-q .

이면p q≈ p≈ n 이므로 n 근처의 홀수들로 나누는 방법으로 쉽게 인수분해 할 수 있

다 그러나 가 하게 선택되었다면 의미 있는 확률로 는 충분히 클 것이. p, q random , p-q

다.

(4) random prime

제 장 제 절 파라메터 검증을 위한 평가방법 참고( 5 1 “RSA Off-line " )

마 의 조건에 관한 수학적 근거. n

크기는 비트(1) n 1024

와 를 피하기 위quadratic sieve factoring algorithm number field sieve factoring algorithm

해 크기는 적어도 비트를 요구한다 충분한 안전성을 위해 와 비트가 추천되어768 . 1024 2048

진다.

Page 29: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 29 -

바 인코딩 변수 의 조건에 관한 수학적 근거. P( )

인코딩 방법(1) EME-OAEP

Bleichenbacher's Attack on PKCSl [8]○

을 비트 모듈러스 을 비트 메시지 라 하자N n RSA , M m (m<n) .

암호연산을 적용시키기 전에 메시지 를 임의의 비트들을 추가함으로써 비트로 패RSA M n

딩 하는 것은 자연스러운 일이다 로 알려진 표준의 구 버전에서는 이런 방법을 사용. PKCS1

했었다 패딩 후에 메시지는 다음과 같이 보여 진다 결과적인 메시지는 비트 길이이고. . n

를 사용하여 직접 암호화되어진다 초기 블록은 포함하고 있으며 비트 길이이고RSA . “02” 16

랜덤 패드가 메시지에 더해졌다는 사실을 나타내 준다.

메시지가 의 기계에 도착되어졌을 때 응용프로그램은 예 브라우저 그것PKCS1 Bob , ( . web )

을 복호화 하여 초기 블록을 검토하고 랜덤 패드를 제거한다 어쨌든 어떤 응용프로그램은.

초기 블록에 대해 검토하고 만일 아니라면 유효하지 않은 암호문 오류 메시지“02” “02” “ ”

를 되돌려준다.

는 이런 오류 메시지가 상당히 위험스런 결과를 이끌어 준다는 사실을 논문Bleichenbacher

에서 보였다 즉 오류 메세지를 이용하여 공격자 은 그가 선택한 암호문을 복호화. Marvin

할 수 있다 이 에게 보내질 암호문 를 가로채서 그것을 복호화 하길 원한다고. Marvin Bob C

가정해 보자 공격을 시작하기 위해서 은 난수. Marvin γ∈ Z * N을 선택하고 C ' = γ e C

을 계산한 후 을 의 기계에 보낸다mod N C Bob .

의 기계에서 작동하는 응용프로그램은 을 받아서 그것을 복호화 하기 시작한다 그Bob C' .

후 프로그램은 오류 메시지를 표시하거나 만일 유효한 형식이라면 전혀 반응하지PKCS

않을 것이다 따라서 은 에 대한 평문 메세지 최 상위 비트가 인지 아닌지를. Marvin C 16 02

알 수 있게 된다 사실 은 그가 선택한 어떤 값 에 대해서. Marvin r γ 2C 에 대한mod N

평문 메시지의 최 상위 비트에 대한 값이 인지 아닌지를 검토할 수 있는 를 갖16 02 oracle

게 된 것이다.

Page 30: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 30 -

최 상위 비트에 대한 값이 이라는 정보는 평문 메세지 값이 폐구간16 02 M

[2⋅ 2 8( n - 2 ) ,3⋅ 2 8( n - 2 )]에 있다는 사실과 동치이다 을 통해. oracle γ iM 이(mod N)

폐구간 [2⋅ 2 8( n - 2 ) ,3⋅ 2 8( n - 2 )]에 있다는 정보로부터 이 더 작은 폐구간에 속한다M

는 정보를 얻을 수 있으며 이후 연속적인 시도를 통해 평문 메세지 이 속해 있을 폐구간M

은 한 점으로 수렴하게 된다는 결과를 얻어 원하는 평문 메시지를 얻을 수 있게 된다.

이러한 사실을 통해 선택된 암호문 공격에 견디는 plaintext-aware encryption

의 사용에 대한 강한 동기를 얻게 되며 버전 의schemes(Bellare and Rogaway) (PKCS #1 2

인코딩 방법 또는 실제의 프로토콜 단계에서 복호화 하기 전에 바로 메시지EME-OAEP )

무 결성에 대한 체크를 하는 것이 필요하다는 결과를 얻게 된다.

제 절 파라메터 요구조건 분석과 수학적 근거2 ESIGN(n=p2q)

스킴은 위수가ESIGN n = p 2 q 군에서의 를 기approximate e-th root problem(AERP)

반으로 하며 의 의 가정아래 증명 가능한 안전성을 지닐 뿐만 아니라, AER Intractablity ,

기반 스킴과 타원곡선 기반 스킴과 비교하여 효율적이다RSA (ECC) (NESSIE, D-IEEE

참조 의 서명 스킴은 키 생성 알고리즘 서명 생성 알고리즘 서명 검증 알P1363a ). ESIGN , ,

고리즘으로 구성되어 있다.

Page 31: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 31 -

키 생성 알고리즘-

입력 : 메시지

크기 인 다른 소수 를 선택하여[Step 1] R p,q 계산한다.

인 정수 를 선택한다[Step 2] 8 e .ε≥

[Step 3] pLen=k로 놓는다.

해쉬함수 출력길이 를 선택한다[Step 4] H( pLen-1) .

출력 공개키: 비밀키

서명 생성 알고리즘-

입력 메시지 공개키 비밀키: m {0,1}*, (n, e, pLen, H ) (p,q).∈

에서 난수 을 뽑는다[Step 1] (Z/pqZ) pZ .γ\

[Step 2] 로 놓고 를 계산.

[Step 3] 를 계산

만약[Step 4] 이면 로 돌아간다Step 1 .

[Step 5] 을 계산한다.

출력 :

서명 확인 알고리즘-

입력 공개키: (m , s), (n, e, pLen, H)

[Step 1] 을 계산하여 가운데 상위 비트와 이 같은지 비교

한다.

출력 검증 수락 또는 거절: 1 ( ) 0 ( ).

시스템 파라메터 요구조건 분석*1.

또는 에서 기술한 공개키 시스템에서 요구되는(1) NESSIE Draft to IEEE P1363a ESIGN

파라메터 조건을 다음의 표로 기술한다.

Page 32: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 32 -

표 시스템 파라메터[ 2] ESIGN

기호용어 공개 비밀/ 타입 출처

요구조건

p소수 비밀 양의 정수 D-IEEEP1363a,NESSIE

random prime

q소수 비밀 양의 정수 D-IEEEP1363a,NESSIE

random prime

nmodulus 공개 양의 정수 D-IEEEP1363a,NESSIE

r보안상수 공개 양의 정수 D-IEEEP1363a,NESSIE

비트 이상인 정수352 , pLen

e공개키 공개 양의 정수 D-IEEEP1363a,NESSIE

이상인 정수8

요구조건들에 대한 수학적 근거*2.

가 공개키. ESIGN

의 가장 효과적인 공격은 인수분해 하는 것으로 여겨지고 있다ESIGN . quadratic sieve

와 를 피하기 위해 크기는 적어factoring algorithm number field sieve factoring algorithm

도 비트를 요구한다 충분한 안전성을 위해 비트 이상 되어야 한다 특히768 . 1056 . ,

의 인수분해 문제는 비록 를 인수분해 하는 것이 를 인수분해 하는 것보다

쉽다는 것이 알려지지 않았으나 의 인수분해를 위한 특별한 알고리즘들이 연구되어

왔다.[1,26]

Page 33: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 33 -

현재 나 를 인수분해 하는데 알려진 가장 빠른 알고리즘은 Number Field

방법으로 은 의 사이즈에 의존 하므로 두 문제에 대한 어려움은 거의Sieve running time π

같다고 본다 또한 최근 의 명은. Boneh[4] 2 를 인수분해 하는데 알고리즘을 이LLL

용한 알고리즘을 제안하였는데 이 알고리즘이 효율적으로 사용되려면 이 적어도r (bg )1/2β

보다 커야 한다 따라서 이 충분히 큰 경우. n 의 인수분해 정도가 의 인수

분해 정도와 같다고 할 수 있다 따라서 의 크기는 비트 이상 되야 한다. n 1056 .

나 공개키. ESIGN k

소수 의 크기 는 비트 이상이어야p, q R 352 의 크기 요구 조건인 비트 이상이1056

될 수 있다.

다 공개키. ESIGN e

은 현재 를 풀 수 있는 가Lattice base reduction AERP(appromaximate e-th root problem)

장 효율적인 방법이다 년 후반 프랑스 수학자 그리고 에 의해.1980 Girault, Toffin Vallee

을 사용하여 가 폭넓게 연구되었으나 이후 에 대해1attice base reduction[10] AERP e 4≥

를 푸는 효율적인 해법이 발견되어지지 않았다 현재 는 보다 크거나 같은 값이 추AERP . e 8

천되어진다 또한 의 인은 공개키 를 짝수 으로 사용할 것을 권장하는데. Okamoto 5 e (even)

그 이유는 가 짝수 일 경우 를 해결하는 것은 인수분해 하는 정도로 어렵기 때e (even) AERP

문이다.

Page 34: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 34 -

제 장 이산대수문제 기반의 공개키 파라메터 분석3

장에서는 유한체에서 곱셈군의 이산대수 문제에 기반한 공개키 시스템에서의 파라메터 검3

증에 대하여 살펴보고자 한다 년 에 의해 공개키 암호가 발견되었을 때. 1976 Diffie-Hellman ,

이산대수 문제에 근거한 키 분배방식 키 분배 방식 이 제안되었다 그 후 이(Diffie-Hellman ) .

산대수 문제가 주목을 받게 되어 이산대수 문제에 근거한 공개키 암호나 인증방식이 많이

제안되고 있다 이런 의미에서 이산대수문제는 소인수분해 문제와 함께 공개키 암호 시스템.

을 구성하기 위한 대표적 문제이다 이산대수는 정수론에서 예전부터 지수 로서 알려.( (Index)

져 있던 개념이다.)

이산대수라는 것은 소수 가 주어졌을 때p , 의 생성원 에 대하여g 라면,

라 표기하고 이 를 의 에 대한 이산대수 라고 한다 즉 이산대수 문제라는 것x y g .

은 가 주어졌을 때(p,g,y) , 를 구하는 문제이다.

이산대수 문제의 해결을 위해서 현재까지 제안된 주요 알고리즘들은 대상이 되는 군 모( oup)

의 특성에 따라서 계산상의 효율성을 가지고 있다 알고리즘 알고리즘. Shanks , Pollard-rho

등은 모든 군 에 대해서 적용될 수 있고 알고리즘은 군 의 위(group) , Pohlig-Hellman (group)

수가 작은 소인수 들로만 구성되었을 경우에 효율적인 알고리즘 이다(small prime factor) .

지수 계산법 알고리즘은 특정한 성질을 가지는 군에 대해서 적용될 수 있으(index-calculus)

며 지수 계산법 에서 약간 변형되어 불리는 일종의, (index-calculus) "Number Field Sieve"

지수 계산법 알고리즘은 현재까지 알져진 가장 효율적인 알고리즘이다 최근에는 소인수 분.

해에 적용된 수체 선별법에 기반을 둔 알고리즘도 제시되어지고 있다.

Page 35: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 35 -

현재까지 이산대수 문제에 기반한 암호 알고리즘들은 무수히 많다 그 예로서 년. 1976

키 분배방식 년 에 의한 공개키 암호와 년Diffie-Hellman , 1982 ElGama1 ElGama1 1985

공개키 암호를 이용한 서명 등이 있으며 전자 서명 표준인 와 국내ElGama1 ElGamal DSA

표준 전자 서명 알고리즘으로서 가 있다 또한 최근에는 기존의 이산대수 문제 기반KCDSA .

의 암호 알고리즘들이 하나의 생성자를 이용하는 것과 다르게 두 개의 생성 자를 이용한

실체인증 방법 등도 제시되고 있다 그리고 에 와 에 의Okamoto . Cryto2000 Lenstra Verheul

하여 제안된 은 유한체의 이산대수문제에 기반한 공개키 암호로 기존의 타원곡선 암호XTR

를 제의한 모든 이산대수 문제기반의 암호보다 계산량과 전송량 에서의 좋은 효율성을 가지

고 있다 에서는 파라메터를 선택하는 부분에서 타원곡선이나 보다 더 효율적인. XTR RSA

알고리즘이 제안되었다.

Page 36: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 36 -

제 절 파라메터 요구조건 분석과 수학적 근거1 DSA

시스템 파라메터 요구조건 분석*1.

표 시스템 파라메터[ 3] DSA

기호용어 공개 비밀/ 타입 출처 기타

요구조건

필드크기 공개 정수 RIPS, IEEE

Prime modulus :

서브필드크기 공개 정수 FIPS. IEEE

Prime divisor of

서브그룹생성 공개 필드원소 FIPS, IEEE

비밀키 비밀 정수 FIPS

는 난수발생기로 얻은 정수(0< 표준문서에서는 비밀키를<q). IEEE

로 표현s

공개키 공개 정수 FIPS

비밀키 비밀 정수 FIPS

는 난수발생기로 얻은 정수(0< 표준문서에서는 로 표현<q), IEEE u

요구조건들에 대한 수학적 근거*2.

가 의 조건에 관한 수학적 근거. p

Page 37: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 37 -

제 장 제 절 파라메터 검증을 위한 평가방법 참고( 5 2 DSA Off-line " )

나 의 조건에 관한 수학적 근거. q

제 장 제 절 파라메터 검증을 위한 평가방법 참고( 5 2 “DSA Off-line " )

다 의 조건에 관한 수학적 근거. k

(1) 존재 조건 : GCD( )=1

가 존재하기 위해서 GCD( 이여야 한다 왜냐하면)=1 . , GCD ( 이면 어떤)=1 ,

정수 에 대해서a,b , 을 만족하는 가 존재한다 따라서b .

이므로 가 된다․

서명에 따라 다른 값이 사용(2)

다른 메시지에 대한 서명에 대해 똑같은, 가 쓰였다고 가정해보자 여기서 쓰는 기호들은. (

앞서 설명한 파라메터와 같다 서로 다른 메시지에 대한 해쉬 함수 의 두 값을.) SHA-1

라 하면 다음과 같은 식이 성립한다 즉. (

가되고 앞의 식에서, 두 번째 식에서, 로 두식의 우변은 서

로 같아야 하므로 가 성립하여 값을 알게 되고 즉, . 값

을 알게 되어 비밀 키 의 값도 알 수 있게 된다 왜냐하면. ( , 의 값은 공개되어

있으므로 등식에서 값을 구할 수 있다 여기서, 값을 유도하고 그 값을 이용하여 자,

신이 알고 있는 서명 값 에 대한 식에서 를 구할 수 있게 된다s x .

Page 38: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 38 -

라 에서 사용되는 난수를 생성하는 난수 생성기 의 문제. DSA

우리는 위에서 언급한대로 값과 같은 난수를 이용하여 서명을 만들었다 물론 난수DSA .

가 이 서명에만 쓰이는 것은 아닐 것이다 그런데 여기서 우리가 자세히 볼 점은 이 난수생.

성기에 의한 난수들이 확률적으로 정규적으로 분포되어있냐 하는 점이다 예전에 에 이. DSA

용된 난수 생성기는 선형식을 이용하였기에 선형식을 푸는 방법에 의해 난수 값들을 다 알,

아낼 수 있었다 그 이후에 이러한 점을 고려하여 새로운 난수 생성기가 고려 된 것이 표준.

문서 에 제시되어 있는 방법인데 이 난수 생성기에 의한 난수의 성질을 보면X9.31 , modulo

에 의한 연산을 하고 있다 는 최근에 에 사용된 난수생성기에. Daniel Bleichenbacher DSA

문제점이 있음을 밝혔다 이 문제점은 생성되는 난수가 특정한 범위 내에서 두 배 정도 많.

이 생성된다는 것이다 현재 계산 능력을 고려할 때 심각한 정도로 비춰지지는 않지만 보. , ,

다 미래의 사용을 위해서는 수정되거나 새로운 생성기를 대치되어야 할 것이다 본 연구 과.

제를 통해서 실험적인 관점과 이론적인 관점에서 난수생성기를 분석하고 새로운 방DSA-

안을 모색하고자 한다 다음은 난수 생성기이다. DSA- .

Page 39: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 39 -

난수생성기는 에서 취하는 모듈라 연산과정에서 되는 것으로 보인다 그래서DSA- 4.2 bias .

아래와 같이 수정된 난수생성기를 제안한다.

Page 40: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 40 -

수정된 난수생성기에서는 난수생성기에서 나타나는 를 제거하기 위해서 를DSA- bias 4.2 4.2`

과 으로 대체하는 새로운 방안을 제시한다,4.3, 4.4` .

제 절 파라메터 요구조건 분석과 수학적 근거2 KCDSA

는 년 한국 표준 서명KCDSA(Korean Certificate-based Digital Signature Algorithm) 1998

을 위해 채택된 알고리즘이다 는 이산대수 문제에 기반을 두고 있으며 기존의 이. KCDSA ,

산대수문제를 바탕으로 한 등의 조합과 변형을 통해서 이루어진 서명ElGamal, DSA, GOST

알고리즘이다.

Page 41: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 41 -

표 파라메터[ 4] KCDSA

기호

용어 공개 비밀/ 타입 출처

요구조건

크기field 공개 양의 정수 IEEE P1363a

는 홀수인 소수 이므로 의 비트

길이는 비트에를 갖는다512 .

의 위수g 공개 양의 정수 IEEE 1363a

의 위수이며 나누는 소수g p-1 . 이므

로 의 비트 길이는 비트에서 비트를 갖는다128 256 .

또한, 는 소수이거나 혹은 소수 인수들의 곱이라면 각각,

의 소수 인수들은 적어도 보다 커야한다q .

의subgrop

생성자공개 필드원소 IEEE P1363a

위수가 인 을 생성q subgroup .( )

비밀키 비밀 양의 정수 IEEE P1363a

는 정수의 난수 혹은 의사난수 (0< <q)

공개키 공개 필드원소 IEEE P1363a

해쉬값 공개 양의 정수 IEEE P1363a, X509

데이터의 해쉬값을 의미한다Ceritfication .

Page 42: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 42 -

파라메터 생성을 위한 알고리즘< >

파라메터 를 생성하는 과정은 다음과 같다p, q, g .

적어도[Step 1] 비트 이상의 임의의 정수 를 선택한다s .

다섯 개의 카운터들에 대한 초기화를 한다 다섯 개의 카운터와 초기화 값은 다음[Step 2] .

과 같다.

의사 난수 생성기 에 대한 초기값 은 다음과 같다[Step 3] (PRG ) (Seed ) .

여기서 는 비트 수이다8 . ( 또한) 와

는 비트8 . 는 비트의 길이이다 초기값 는 임16 . (seed)

의의 카운터가 변화될 때마다 자동적으로 갱신 된다고 가정하자(update) .

길이 의 난수 은 다음과 같이 생성된다[Step 4] p - q -1 r .ㅣ ㅣ ㅣ ㅣ

소수 판정 테스트를 이용하여 이 소수인지 판정하고 만일 이 소수[Step 5] Miller-Rabin r r

이면 단계 로 간다8 .

[Step 6] 를 증가시킨다1 .

[Step 7] 이면 단계 로 가고 그렇지 않으면 단계 로 간다<2048 4 , 1 .

[Step 8] 로 놓는다.

갱신되는 값을 사용하는[Step 9] Seed 비트 길이의 난수 는 다음과 같이 생성된다.

Page 43: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 43 -

을 계산한다 만일[Step 10] p=2qr+1 . 이면 단계 로 간다12 .

에 대한 소수 판정 테스트를 한다 만일 가 소수이면 단계 로 간다[Step 11] q . q 14 .

[Step 12] 값을 증가시킨다1 .

만일[Step 13] 이면 단계 로 간다 그렇지 않으면 단계 로 간다<1024 9 . 15 .

에 대한 소수 판정 테스트를 한다 만일 가 소수이면 단계 로 간다[Step 14] p . p 19 .

[Step 15] 값을 증가시키고1 , 로 설정한다=1 .

만일[Step 16] 이면 단계 로 간다<4096 9 .

[Step 17] 의 값을 증가시킨다1 .

만일[Step 18] 이면 단계 으로 간다 그렇지 않으면 단계 로 간다<256 3 . 1 .

[Step 19] 로 설정한다.

갱신되는 값을 사용하는[Step 20] Seed 비트 길이의 난수 는 다음과 같이 생성된다u .

[Step 21] 를 계산한다 만일. 이면 단계 로 간다24 .

[Step 22] 의 값을 증가시킨다1 .

만일[Step 23] 이면 단계 으로 간다 그렇지 않으면 단계 로 간다<256 20 . 17 .

와 출력되고 알고리즘은 끝이 난다[Step 24] p, q, g , .

위의 단계에 대한 알고리즘을 그림으로 나타내면 다음과 같다24 .

Page 44: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 44 -

그림 파라메테 생성 알고리즘[ 1] KCDSA

Page 45: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 45 -

시스템 파라메터 요구 조건 분석*1.

의 범위가 비트 이상 의 범위가 비트 이상이고 이며 의 약수들에p 512 , q 160 q | p-1 ,(p-1)/2q

대한 세부 조건들이 필요하다.

요구조건들에 대한 수학적 근거*2.

가 의 조건에 관한 수학적 근거. q

와 동일하다DSA .

나 의 조건에 관한 수학적 근거. (p-1)/2q

의 범위에 대한 제약조건을 두는 이유는(p-1)/2q 의 서브 그룹 중 작은 위수를 사용하,

는 서브 그룹에 대해 가능한 공격들에 대한 방지를 위해서이다.[24]

서브 그룹에 대한 공격은 다음과 같이 생각해 볼 수 있다 은 짝수이기 때문에 반드시.(p-1) ,

약수로서 그리고 이므로 또한 약수로 가지고 있다 따라서 의 약수를 고2, q p-1 . (p-1)αㅣ

려할 때 가장 직관적으로 보이는 약수 중 또 다른 하나는 이다 그런데 이 수 자체, (p-1)/2q .

가 소수 이면 이 값은 비트 와 의 관계에서 볼 수 있듯이 비트 이상의 보다, 1024 p q 160 q

는 크므로 를 위수로 하는 의 서브그룹보다는 위수가 클 것이다 그러나 문제가 생기는q 4 .

것은 만일 이 더 작은 소수들로 소인수 분해 되는 경우이다 왜냐하면 만일 소인수(p-1)/2q .

분해를 했을 때 약수들 중에 보다 작은 값이 존재한다면 그 값에 대한 서브 그룹이 존재, q ,

하고 그 서브 그룹 안의 원소를 이용하여 사용자의 비밀 키에 대한 비밀 정보를 유추할 수,

있기 때문이다 사실 이 조건은 의 생성자 위수 확인 테스트 과정에서 의 위수가. DSA " " g q

인지 확인해야 하는 이유와 같다.

Page 46: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 46 -

다 의 조건에 관한 수학적 근거. p

와 동일하다DSA .

마 해쉬 값 의 조건에 관한 수학적 근거. z

인데 여기서 는 해쉬 함수로서 표준문서에서는 을h KCDSA HAS - 160

사용 하고 있다 또한. 는 들로서 적어도 서명자의 공개키certification data , ID,

그리고 파라미터y, 에 대한 내용들을 포함한다.

제 절 시스템 파라메터 요구조건 분석과 수학적 근거3 ElGamal

사실상 스킴은 이산대수문제 기반의 공개키 시스템 중에서 년 가장 먼ElGamal (DLP) 1984

저 제안되었으며 등의 이산대수문제를 기반으로 하는 공개키 시스템의DSA, KCDSA, XTR

초석이 되었다.

Page 47: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 47 -

표 파라메터[ 5] EIGama1

기호용어 공개 비밀/ 타입 출처기타

요구조건

p필드크기 공개 정수 FLPS, IEEE

prime modulus :

q서브필드크기 공개 정수 FLPS, IEEE

prime divisor of

g서브그룹생성원 공개 정수 FLPS, IEEE

x비밀키 비밀 정수 FLPS

는 난수 발생기로 얻은 정수x (0< x <q-2)

y공개키 공개 필드원소 FLPS

시스템 파라메터 요구조건 분석*1.

시스템 파라메터로서 공개키 개인키를 생성하기 위해서는 먼저 큰 소수 와 곱셈ElGanml p

상의 군 의 생성원 를 선정해야 한다 이때 는 필드 크기로써 정수 값으로 공개되는g . p

값이며 의 경우와 마찬가지로DSA 은 수 인 값을 쓰L 64 )

도록 하고 있다 또한 은 공격을 방지하기 위하여 비트. p-1 Pohlig-Hellman 160

이상의 소수 로 나누어져야 한다 는 군 의 생성원 으로써 필드의 원소이면서 공개되는q . g 4

값이다 특별히 서명 스킴에서 생성원 를 다음과 같이 선택하지 말아야 한다. Elgamal g : i)g

가 를 나누고 위수가 인p-1 ii) g 의 부분군 에서의 이산대수문제가 쉽게 풀린다 따라S .

서 생성원 를 선택시 단순히 전체 군g 의 생성원이 아니라 소수 위수 의 부분군의 생성α

원 으로서 를 선택하여야 한다 는 비밀키로써 난수 발생기로 얻은g . x 인 정수

이다 는 공개키로써. y 를 계산한 값으로 필드원소가 된다.

Page 48: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 48 -

요구조건들에 대한 수학적 근거*2.

가 위에 제시된 파라메터 요구조건들에 대한 수학적 근거는 의 경우와 일치함. DSA .

나 서명 스킴에서의 생성원 의 선택 문제. Elganal g

생성원 의 생성 시 단순히 전체 군g 의 생성원이 아니라 소수 위수 의 부분군의 생성원q

으로서 를 선택하여야 한다g .

먼저 서명 스킴의 알고리즘의 간단히 소개하자Elgamal .

서명생성 알고리즘 가 메시지 을 자신의 공개키 를 가지고 에게 서명(A m y B )

서명확인 알고리즘 가 의 에 관한 서명값 를 확인 의 인증된 공개키(B A m ( ,s) ) - A (p, g,γ

획득y = g )α

Page 49: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 49 -

만일 특별히 성원 가 를 나누고 위수가 인g p-1 g 의 부분군 에서의 이산대수문제가 쉽S

게 풀린다라고 가정하자 그러면 공격자는 의 비밀 키를 모르고도 로 하여금 서명확인. A B

알고리즘을 통과하는 서명쌍을 만들 수 있다 의라 하자 공격자는 메시지 를 다음과: p-1= . m

같은 단계를 실행한다.

를 계산하고 로 놓는다- t=(p-3)/2 r= .α

- 를 만족하도록 를 결정한다 여기서 는 의 공개키임z . y A .

( 는 의 원소이며S 가 의 생성원이다S )

- 를 계산한다.

에 대한 서명 값은 을 얻는다- m (r, s) .

에 대한 서명 값 은 서명확인 알고리즘을 통과한다m (r,s) .

먼저 이므로

이다 따라서.

을 만족한다.

그러므로 를 단순히 전체 군g 의 생성원으로 택할 것이 아니라 소수 위수 의 부분군의α

생성원으로서 를 선택하여야 한다는 수학적 근거를 제시하였다g ,

Page 50: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 50 -

제 절 파라메터 요구조건 분석과 수학적 근거4 XTR

에 와 에 의하여 제안된 은 유한체의 이산대수문제에 기반한Crypto` 00 Lenstra Verheul XTR

공개키 암호로 기존의 타원곡선 암호를 제의한 모든 이산대수기반의 암호보다 계산량과 전

송량 에서의 효율성을 가지고 있다 그리고 파라메터 선택하는 부분에서는 타원곡선이나[22]

보다 더 효율적인 알고리즘이 제안되었다 공개키 시스템은 유한체의 부분 집합RSA . XTR

의 원소를 표현하고 그것의 지수승을 계산하는 데에 를 이용하는 방법이다 은trace . XTR

의 명확한 구성없이 의 안전성을 가지면서 의 연산을 사용하는 첫

번째 방법이다. 는 위수가 인 원소이다 여기서 부분군의 생성원으로서q . XTR

를 사용한다.

Page 51: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 51 -

시스템 파라메터 요구조건 분석*1.

표 시스템 파라메터[ 6] XTR

기호용어 공개 비밀/ 타입 출처 기타

요구조건

p필드크기 공개 정수 [LV]

prime modulus :

q서브필드 공개 정수 [LV]

prime divisor of

서브그룹

생성원공개 필드원소 [LV]

생성원 의 는 위수가 이고g q , 를 만족한다.

비밀키 비밀 정수 [LV]

는 난수발생기로 얻은 정수 (0< <q)

공개키 공개 필드원소 [LV]

가 소수 와 를 선택하는 알고리즘과 요구조건. p q

소수 와 생성 알고리즘(1) p q

을 만족하는 비트의 소수 를 선택한다- q 7 mod 12 160 .α≡

- 의 두 근 을 찾는다 와( .( p 1 mod 3 quadratic reciprocity≡

으로부터 존재한다.)

Page 52: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 52 -

에 대하여- i=1,2 p=ri 이 비트 소수이고 을 동시에 만족하는 을 찾+k*q 170 2 mod 3 k Z∈

는다.

요구조건(2)

소수 는 을 만족하는 비트 정도이며 는 비트 정도의 소수로p p 2 (mod 3) 170 , q 160 sixth≡

cyclotomic polynomial Φ6(p)=p2 의 인수가 되게 잡는다-p+1 .

* 요구조건들에 대한 수학적 근거2.

가 안전성.

체의 표수 와 부분군의 크기 는p q q p| 2 을 만족하도록 선택되어져야 한다 비트-p+1 . 1024

와 동등한 안전성을 얻기 위해서는 소수 의 크기는 비트정도이고 소수 는RSA p 170 , q 160

비트정도의 크기를 가져야 한다.

소수 는 비트 이상이어야 한다(1) q 160 .

의 크기는 부분군에서 가장 효율적인 공격인 방법에 안정하도록 요구되는q Pollard's rho

크기이다.

소수 는 비트 이상이어야 한다(2) p 170 .

소수 의 크기는p GF(p6)* 곱셈 군에서 가장 효율적인 공격은 Discrete Logarithm variant of

에 안전하도록 선택되어졌다the Number Field Sieve .

Page 53: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 53 -

(3) q p| 2 을 만족해야한다-p+1 .

q p| 2 조건은 가 곱셈군-p+1 g GF(p6)* 의 위수가 인 부분군을 생성한다 왜냐하면q . p2-p+1

이 GF(p6)*의 위수 p6 을 나누기 때문이다 그리고-1 . q p| 2 은 에 대하여-p+1 s=1,2,3 q p∤ s-1

을 만족한다 이것은 에 의하여 생성되는 부분군이 유한 체. g GF(p6 의 부분체) GF(p),

GF(p2), GF(p3 의 각 곱셈군) GF(p)*, GF(p2)*, GF(p3)*에 속할 수 없음을 의미한다 즉 확장.

체 GF(p6 에서 선택되어진 가) g GF(p6 의 부분체에 포함될 수 없게 된다) .

나 효율성.

공개키 시스템이 기종의 이산대수 문제를 기반으로 한 암호시스템보다 계산 량에서XTR

효율적이기 위해서는 GF(p2 의 원소 간 연산이 효율적이어야 한다 즉) . x,y,z GF(p∈ 2 에 대하)

여 xp, x*y, x2, x*z-y*zp의 계산이 효율적으로 이루어져야 한다. GF(p2 의 연산을 효율적으)

로 하기 위해서는 GF(p2 의 원소의 표현방법이 중요하다 조건은 이) . p 2 (mod 3) p mod 3≡

GF(3)*의 생성 원이 되기 때문에 = (X3-1)/(X-1)=X2 의 두근+X+1 ,α αp는 위에서GF(p)

GF(p2 의 를 구성한다 그리고) optimal normal basis . αi=αi mod 3을 만족하기 때문에, x∈

GF(p2 는) x1,x2 에 대하여GF(p) x∈ 1 +xα 2αp=x1 +xα 2α

2으로 표현된다 를. optimal normal basis

이용하여 GF(p2 의 원소를 표현할 경우 방법을 이용하여) Karatsuba xp, x*y, x2, x*z-y*zp

의 계산을 효율적으로 하는 것을 살펴보자 여기서. x=x1 +xα 2α2, y=y1 +yα 2α

2, z=z1 +zα 2α2라고

하고, x1, x2, y1, y2, z1, z2 이다GF(p) .∈

Page 54: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 54 -

(1) xp의 계산.

xp=x1pαp+x2

pα2p=x2 +xα 1α2으로 승 계산은 연산 량이 들지 않는다p .

계산(2) x*y .

(x1 +xα 2α2)(y1 +yα 2α

2)=(x2y2-(x1y2+x2y1)) +(xα 1y1-(x1y2+x2y1))α2은 x1y1,x2y2,(x1+x2)(y1+y2 으로)

계산 가능하다 즉 일반적인 방법으로는 번의 곱이 필요하지만 번의 곱으로 연산 량을 줄. 4 3

였다.

(3) x2 계산.

(x1 +xα 2α2)2=x2(x2-2x1) +xα 1(x1-2x2)α

2은 번의 곱으로 계산 가능하다 기존의 번에서 번2 . 3.2 1.2

이 감소한 것이다.

(4) x*z-y*zp 계산

x*z-y*zp=(z1(y1-x2-y2)+z2(x2-x1+y2)) +(zα 1(x1-x2+y2)+z2(y2-x1-y1))α2은 총 번의 곱으로 계산4

가능하다.

Page 55: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 55 -

제 장 타원곡선 이산대수 문제 기반의 공개키 파라미터 분석4

장에서는 곱셈군의 이산대수 문제에 기반 한 공개키 암호시스템의 파라미터 검증에 대하여3

살펴보았다 장에서는 타원곡선 이산대수 문제에 기반 한 공개키 암호시스템의 파라미터. 4

검증에 대하여 알아보고자 한다 먼저 타원곡선 이산대수 문제에 대하여 살펴보자 유한 체. .

에 대하여 타원곡선 위의 점 의 위수 는 을 만족하는 가장 작은 정수로 정의된GF(p) P t tP=0

다 상에서 정의된 타원곡선과 점 그리고 위수가 인 타원곡선 위의 점 가 주어졌. GF(p) Q, t P

을 때 를 만족하는 정수 을 구하는 것을 타원곡선 이산대수 문제라고 한다, Q=xP x [0,t-1] .∈

이 문제의 어려움에 기반을 둔 타원곡선 암호는 년 와 에 의해서 제안되었1985 Koblitz Miller

다 지금까지 알려진 가장 효율적인 알고리즘은 알고리즘이다 이산대수에 기반. Pollardrho .

을 둔 공개키 암호는 타원곡선 이산대수에 기반을 둔 공개키 암호로 전환되어질ElGamal

수 있고 년에는 미국 에 의해 제, 1991 NIST(National Institute Standards and Technology)

안된 서명 또한 타원곡선과 연관지어 제안된 서명이 있다DSA ECDSA .

Page 56: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 56 -

제 절 파라미터 요구조건 분석과 수학적 근거1 ECDSA

* 시스템 파라미터 요구조건 분석1.

표 시스템 파라미터[ 7] ECDSA

Page 57: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 57 -

* 요구조건들에 대한 수학적 근거2.

가 의 조건과 와의 관계. n cofactor

은 반드시 소수 이여야 하며n n>2160 은 타원 곡선 암호가 안전하기 위해 권장되는 비트를

나타낸다 두 번째 조건. n>4 q 은 예를 들어 일 경우m=431 4 q = 4 2 431 ≈ 2 2×

2 216 정도가 되어야 함을 말해준다 의 비트수가 비트 이상이 되어야 한다는 조건을. n 218

만족해야 한다 의 값이 커지면 의 값도 커져야 되는 이유는 의 값을 줄인다. m n , cofactor h

는 것에 목적이 있다 만일. cofactor=#E( F q 의 값이 크다면 공격에 대해 약점이 될 수)/n ,

있다고 알려져 있다 이유는 다음 세 가지 이유로 볼 수 있을 것이다. .

(1) h=# E( F q 의 값이 커진다는 것은 의 값이 작아진다는 것을 의미한다 그런데 만)/n n .

약 의 값이 이런 식으로 작아지면 우리가 원래 의도했던 의 비트수가 줄어들므로 공격자n n

에 의해 공격될 수 있다 따라서. h=# E( F q 의 값은 작아야 한다)/n .

만일(2) h=# E( F q 의 값이 커지면 공격에 대한 실마리를 제공할 수 있을)/n subgroup

것이다.

키 교환 프로토콜마다(3) h=# E( F q 를 곱해야 하므로 값이 크다면 비효율적이다)/n h .

나 의 조건. h'

의 값이h' ( p+ 1)2

보다 작은 정수 중에 가장 큰 정수라면 인지 확인한다/n , h=h' .

의 정리에 의해 다음과 같은 식이 성립한다Hasse . # E p (a,b)=p+1- a p where | a p

| ≤ 2 p and a p = - ∑x∈ F q

(( x 3+ ax+b)/p)

Page 58: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 58 -

p+ 1 - 2 p≤p+ 1 - a p≤p+ 1+ 2 p ( | a p | ≤ 2 p 이고)

p+1+2 p= ( p+ 1)2이므로

# E p ( a ,b ) = p + 1 - a p ≤ ( p+ 1 )2가 된다.

따라서 h = # E( F q )/ n = ( p + 1 - a p )/n ≤ ( p+ 1 )2/n이 성립한다.

다 와 조건. MOV Anomalous

조건을 만족해야 한다는 것은 타원 곡선에서의 이산 대수 문제를 유한체에서 이산 대MOV

수 문제로 바꿔서 생각할 때 이 조건을 만족하지 않으면 원래의 이산대수문제보다 계산 복

잡 도가 떨어질 수 있지만 이 조건에 의해 타원 곡선과 유한 체를 비교했을 때 적어도 같,

은 어려움을 갖게 하자는 것이다 조건이란 타원곡선이. Anomalous F q 위에서

E ( F q ) = q을 만족 할 때를 말하는데 이런 조건이 성립되면 공격자에 대해 공격의 실마,

리를 제공할 수 있다 따라서. # E( F q ) ≠ q 와 같은 조건이 되게 타원 곡선이 구성되

어야 한다는 것이다 즉 이것을 확인하기 위해 검사 해보는 과정이다. .

Page 59: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 59 -

제 장 공개키 시스템 파라미터 검증을 위한 평가방5 Off-line

제 절 파라메터 검증을 위한 평가방법1 RSA Off-line

* 소수 판정 테스트 테스트1. (Miller-Rabin )

소수 판정과 관련된 테스트 방법은 다양한 수학적인 문제들에 기반을 두고 소개되어 왔다.

널리 알려진 방법으로는 테스트 테스트Miller-Rabin , Lehmann's , Frobenius strong

테스트 혼합형 테스트 등이 있다 현재 표준문서 등과 같이 실제적으로 가장 널probable , . ,

리 사용되는 방법은 테스트이며 이 방법을 이용한 비트 정수의 소수 판Miller-Rabin , 512

정 테스트는 이를 번 반복했을 경우8 , 2 - 100의 에러 확률을 갖는다 테스트. Miller-Rabin

는 대표적인 이다yes-biased Monte Carlo algorithm . yes-biased Monte Carlo

은 에 대해 알고리즘의 결과가 이면algorithm Decision problem “yes" 100% correct, "no"

이면 의 확률로 한 알고리즘이다(error probability) incorrect probabilistic .ε

Page 60: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 60 -

가. yes-biased Monte Carlo algorithm for Composites

그림[ 2] yes-biased Monte Carlo algorithm for Composites

표[ 8] yes-biased Monte Carlo algorithm for Composites

실제 실험결과

case1 composite composite

case2 composite prime

case3 prime prime

case4 prime composite

Page 61: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 61 -

를 만족하는 자연수는 없다Note : case 4 . yes-biased Monte Carlo algorithm for

에서는 와 같은 경우는 존재하지 않는다Composite case 4 .

나 소수 판정 테스트. Miller-Rabin

소수 판정 테스트는 번 실행하여 비트 합성수를 소수로 판정할 오차율이Miller-Rabin t k

P k, t= 2t+ 4 k ( 2 - tk )

kt인 이다 그래서yes-biased Monte Carlo algorithm . 512

비트 정수의 소수 판정 테스트는 이를 번 반복했을 경우4 , 2 - 100의 에러 확률을 갖는다.

소수 판정 테스트는 다음의 두 가지 정리와 성질을 이용하여 알고리즘이 구Miller-Rabin

성된다.

정리- Fermat

가 소수이면P a p - 1 = 1 이다mod p .

대우) a p - 1 ≠ 1 이면 는 합성수이다mod p , p .

에 관한 성질- Square root

가 소수이면p x 2≡1 인 해는mod p x≡±1 뿐이다mod p .

Page 62: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 62 -

그림 소수판정 테스트[ 3] Miller-Rabin

다 소수판정 테스트 알고리즘 분석. Miller-Rabin

Page 63: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 63 -

에서* setp 4 b≡ 1 mod n이면 결국 a 2 k m ≡ 1 mod n 이므로 n 이 이라는prime

을 나타낸다output .

에서* setp 6 i가 부터0 k 동안-1 b ≡ -1 mod n ( b = 2 im 이면 결국)

a 2km≡1 mod n 이므로 n 이 이라는 을 낸다prime output .

를 통과하면 두 가지 경우로 나누어 생각할 수 있다 우선* step 6 . a 2km≠1 mod n 이면

n이 만족하지 않기 때문에Fermat thm n은 이어야 한다 그리고 비록composite .

a 2 k m ≡ 1 mod n이지만 를 통과하는 경우는 중간 에서step 6 loop b≠± 이면서1 b 2=

인 경우이므로 의 가 개 이상 존재한다 그래서1 1 square root 3 . n은 이어야 한composite

다.

테스트*2. Known exponent

공개키 시스템은 일반적으로 처리 속도가 느리다 그런 이유에서 공개키 파라미터의 선택.

시에 효율성이 고려되어진다 의 경우에 공개키 를 사용하는 추세에 있. RSA small exponent

다 그런데 이런 선택이 공개키 시스템의 안정성에 문제를 일으킬 수 있다 그러므로 안전성. .

이 보장될 수 있는 경우에만 주의 깊게 선택되어야 할 것이다 예를 들어. , 2 16 을 공개키+1

로 사용할 경우에 아직까지는 안전한 것으로 알려져 있으나 은 안전하지 않은 것으로 판, 3

명되었다[16].

만약 Α가 암호화를 빨리 하기 위해 e≡3으로 사용하면서 서로 다른, n 1, n 2 , n 3를 사용

하는 세 사람에게 같은 메시지 m 보내고자한다 그때. Α 는 c i = m3 m od n i, i = 를1,2,3

계산한다 그리고 도청 자는 으로 다음과 같은. Gauss's algorithm x를 계산할 수 있다.

Page 64: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 64 -

m 3≺ n 1 , n 2 , n 3 이므로 에 의해, CRT x = m 3 이다 그래서. x의 승근3 m을 계산할 수

있다 이 방법을 일반화시켜 작은 크기의 공개키. e에 대하여 적용할 수 있고 같은 메시지,

가 아닌 서로 e(e+1)/2선형관계를 갖는 메시지 사이에도 적용할 수 있다 그래서 큰 공.

개키 지수를 사용하든지 아니면 같은 메시지에 다른 값 적어도 비트 이상 을 추, random ( 64 )

가시켜서 암호화하여야 한다.

* 테스트3. Small exponent

비밀 키나 테스트를 통과하지 못한 공개키의 크기는 제한된 범위에서 선Known exponent

택되어야한다 일반적으로 효율적인 암호화를 위해 작은 크기의 공개키를 선택하면. , d*

e≡1mod l(n) 관계에 의해 비밀 키는 하게 결정된다 결론부터 말하면 이상random . , 17bit

의 공개키를 선택한 후 비밀 키가 N 0.292이상인지 확인한다 만약. d〈 N 0.292인 비밀 키

를 사용하면 이 서명 스킴은 안전하지 않다 그러나 비밀 키가 하게 결정된RSA .[5] random

다면 N 0.292일 확률은 매우 작다.

* 테스트4. Exponents relation

시스템 파라미터간에는 아래의 관계를 만족해야 한다RSA .

이 관계를 만족하는 d를 사용하여 다음과 같이 임의의 메시지를 복호화 할 수 있다 사실.

의 복호화의 수학적 근거는 정리에 기반 한다 그러나 정리는RSA Euler's . Euler's n과 서

로소인 a에 대하여만 을 보장한다 여기서. Z n의 모든 원소에 대해

을 만족함을 보일 필요가 있다.

임으로 a에 일대일 대응되는 가 존재한다.

Page 65: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 65 -

그리고 Z p× Z q= Z*p×Z

*q∪Z

*p×{0}∪{0}×Z

*q∪{0}×{0} 이다.

인 경우 a 1의 위수는 를 나주고p-1 , a 2의 위수는 를 나누므로q-1 a의

위수는 lcm (p - 1,q - 1 )를 나눈다.

경우 a 1의 위수는 를 나주고p-1 , a 2 이므로=0 a의 위수는

lcm (p - 1,q - 1 )를 나눈다.

경우 a 1 이고=0 , a 2의 위수는 를 나누므로q-1 a의 위수는

lcm (p - 1,q - 1 )를 나눈다.

경우 a = 0 이므로 항상 성립한다.

제 절 파라미터 검증을 위한 평가방법2 DSA Off-line

* 테스트1. Primality

와 동일하다RSA .

* 테스트2. Schnorr's relation

가 의 조건. q

으로 하여야 한다 이산대수문제를 계산하는 매우 효율적인.

알고리즘으로서 방법과 방법에서 변형된 방법, pollard-rho pollard-rho pollard-lambda ,

등이 있다 이 방법들의 시간 복잡도는 부분군의 크기에 의존한다parallel collision serch . .

그래서 q의 조건은 이런 공격들에 의해 결정된다 또한 에 대해 강하. , subgroup attack[23]

기 위해선 최소한 비트 이상이 되어야 한다 이런 공격들의 시간 복잡도는, 160 . O( q)이

다 그리고 현재 안전성의 위수가. 2 80 을 요구한다 그래서step . q의 크기는 비트 이160

상이어야 한다 또한 이. q의 크기는 이산 대수 공격에 대해 안정성 보Pohlig - Hellman

장하여 준다 그리고 서브 그룹의 위수는. p - 1을 나누어야 되기 때문에, q | p - 1의 조

건이 필요하다.

Page 66: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 66 -

나 의 조건. p

가 되어야 한다.

이산대수문제를 해결하는 효율적인 방법은 지수계산법을 이용한 알고리즘이Index Calculus

다 이 알고리즘에서는 라는 개념이 쓰이는데 여기서 의 원소들이. factor base , factor base

p의 크기에 의존하기 때문에 왜냐하면 의 집합 안에 원소들이( , factor base Z p의 원소들

이므로 우리는) p의 크기를 알고리즘 에 강하게 하기 위해 제약 조건Index Calculus [25]

을 두는 것이다 사실 현재까지 이산대수문제 해결을 위한 가장 강력한 방법으로 알려진 것.

은 알고리즘이 약간 변형된 형태인 방법이다 이Index Calculus “Number Field Sieve" .

방법의 복잡도는 L p 이다[l/3,1.923] .

여기서 L p [l/3,1.923]= O(exp ((1.923+o(1)) ( ln p)1/3 ( ln ln p) 1 - 1/3 )로서 이러한,

복잡도를 갖는 이산대수공격들에 대해서 알고리즘이 안전하려면, p의 범위가 위와 같이 되

어야 한다.

* 생성자 위수 확인 테스트3.

가 생성자. g의 위수가 q인지 확인하는 방법

인지를 체크하면 된다.

나 생성자. g의 위수가 q가 되어야 하는 이유

Page 67: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 67 -

이산대수문제를 기반으로 한 알고리즘의 안전성은DSA p,q ,g에 의존한다 파라미터. p,q

가 갖추어야 할 조건에 대해서 이미 위에서 언급했듯이 p와 연관지어서 q는 비트 이160

상의 소수여야 한다 이 조건이 의미하는 것은 우리가 서브 그룹의 생성자로 사용 할. g의

위수가 q가 아닌 어떠한 정수, k i( p - 1의 어떤 약수들 중 하나의 값 가 된다면 이 값은)

일반적으로 우리가 원래 의도했던 생성자의 위수인 q보다 작은 수가 될 것이다 그런데 만.

일 k i가 비트보다 작은 수라면 위수가160 , k i인 생성자를 이용하는 서브 그룹 안에서의

이산대수문제는 위수가 q인 생성자를 이용하는 서브 그룹 안에서의 이산대수문제보다 훨씬

쉬워질 것이다 따라서 생성자. g의 위수가 비트 이상의160 q인지 확인하는 과정이 꼭 필

요하다 만일. p-1 = 2×q 와 같이 p - 1보다 작은 p - 1의 약수가 와2 q밖에 없다면,

F *p의 서브 그룹은 위수가 2 , q인 두 개의 서브 그룹 밖에 존재하지 않을 것이다 이런.

경우 생성자 g의 위수가 q가 아니고 이며 어떤 값2 g x≡1 (mod p 이라면 비밀로 유지) ,

되어야 할 x에 관한 정보가 유출된다 왜냐하면 위수가 인 생성자. , 2 g에 대해 g x≡1

(mod p 이라는 등식은) x가 짝수라는 정보를 말해주는 것이기 때문이다 따라서 이러한 비.

밀정보의 유출을 막기 위해서라도 원래 하나의 프로토콜에서 의도했던 생성자에 대해 그것

의 위수가 적당한 크기를 갖는지 확인하는 과정이 꼭 필요하다 이런 관점으로 생성자의 위.

수를 살펴보는 이유는 생성자의 위수가 의도했던 위수가 아니면 발생되는 문제들이 존재하

는 실례가 있기 때문이다[23].

Page 68: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 68 -

* 공개키의 생성자 테스트4. group membership

공개키 생성 자 테스트는 프로토콜이 에 안전하기 위해group membership subgroup attack

서 필요하다 키 공유 스킴을 실행할 때 프로토콜의 참가자 는. A, B GF(q)의 에subgroup

속하는 원소들을 주고받아야 한다 만약 의 위수가 작을 경우 주고받는 값들이. subgroup

에 속하는지는 쉽게 확인할 수 있다 예를 들어 가 로부터 받은 값subgroup . A B x가

의 원소인지를 확인하기 위해서 의 위수가subgroup subgroup q 라고 할 때, x q = 1인지

만 체크하면 된다 그러나 의 위수가 매우 크다면. subgroup x q을 계산하는 것은 상당히

비효율적이다 따라서 이러한 경우 의 원소인 아니지 쉽게 확인하기 위해서 서로. subgroup

주고받는 값에 cofactor h를 곱한다 즉 키 공유시킴에서 전체 그룹을. , DH H , subgroup

을 G 라고 하자. group G 의 위수는 p이고 그것의, subgroup G 의 위수는 q라고 하고

G의 생성원을 라고 놓자g .

와 가 각각 개인키A B k A 와 k B를 갖고 있다.

와 는 각각의 공개키A B① v A = gk A 와 v B = g

k B 를 계산한다.

와 는 서로 계산한A B② v A = gk A 와 v B = g

k B 를 보낸다.

와 는A B③ vk A

B = ( gk B )

k A

, vk B

A = ( gk A )

k B

를 계산한다.

와 는A B④ gk A k B를 공유하게 된다.

그러나 과정 에서 가 계산한A② v A = gk A를 보내는 대신 위수가 가 되는, 2 a∈H\G

를 잡은 후 a⋅ v A 를 보낸다면 결국 는 의 비밀값A B k B에 관한 정보를 알 수 있게

된다 이를 방지하기 위해 에서 는. , B③ vk BA 대신 ( v k

A )k B를 계산한다 이 경우. v A

가 정당한 의 원소인 경우에 한해서subgroup v kA가 에 속하고subgroup

vk k B m od qA = ( v k

A )k B가 성립하게 된다.

따라서 v kA 의 유효성만으로도 v A의 유효성을 판단할 수 있게 되고 , cofactor k의 값

은 의 위수subgroup q에 비해 작기 때문에 속하는지를 보다 효율적으로 확인할subgroup

수가 있게 된다.

Page 69: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 69 -

제 절 파라미터 검증을 위한 평가 방법3 ECDSA Off-line

* 표준 권장 곡선 적합성 테스트1.

타원곡선 기반의 공개키 시스템의 경우엔 현재 일반적인 경향이 표준문서에 명시된 곡선을

사용하도록 권장하고 있다 그러므로 타원곡선 공개키 시스템 파라미터의 검증과정을 수행. ,

하기 이전에 사용된 타원곡선이 표준에 부합하는지 여부를 판정해야 한다. WTLS Version

에 명시된 번 타원곡선에 대해서만 테스트한다 그리고 번 타원곡선은05-Nov-1999 3,5,7 . 3,5,7

표준문서에서 권장하는 와 조건을 모두 만족한다MOV anomalous .

Page 70: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 70 -

표 에 명시된 번의 타원곡선[ 9] WTLS Version 05-Nov-1999 3

Page 71: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 71 -

표 에 명시된 번의 타원곡선[ 10] WTLS Version 05-Nov-1999 5

Page 72: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 72 -

표 에 명시된 번의 타원곡선[ 11] WTLS Version 05-Nov-1999 7

참고로 랜덤한 타원곡선에 대해서는 다음에 언급하는 가지 조건을 반드시 만족해야한다, 2 .

Page 73: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 73 -

가 조건. MOV

그리고 의 공격은Menezes, Okamoto Vanstone[20] reduction F q 위에서의 타원곡선

이산대수 문제를 적당한 B ≥ 에 대한 유한 체1 F q B 에서의 이산대수 문제로 귀결 가

능하다 이 공격은 가 작은 경우에 실제적이다 여기서 를 라고 부른다. B . B MOV threshold .

비트 안정성과 동등한 안정성을 얻기 위해서는RSA 1024 B ≥ 이 요구되어진다 그리고20 .

타원곡선의 경우 공격이 가능하기 때문에 타원곡선supersingular reduction supersingular

의 사용을 지양해야 한다.

나 조건. Anomalous

와 와 는 곡선들에서의 타원곡선 이산대수 문제가 쉽Smart[31] Satoh Araki[32] anomalous

게 플림을 보였다. F q 위에서 정의된 타원곡선 가E # E ( F q ) =q를 만족하면 F q

라고 한다 만약-anomalous . # E ( F q )≠q을 만족하면 조건을 만족했다고 한anomalous

다.

* 공개키 타당성 테스트2.

이 테스트는 네 가지 세부 항목으로 나누어지는데 테스트, trivial point , group membership

테스트 테스트 테스트가 그것이다, group representation , small point .

가. Trivial point Test

Q ≠ 인지 확인 만약 공개키 이면 을 이용해 만든 모든 프로토콜상의 데이터는0 , Q=0 Q

이기 때문에 암호학적 관점에서 의미가 없게 된다trivial point .

Page 74: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 74 -

나 테스트. Gropu representation

Q=( x Q , y Q 의) x Q , y Q가 체 F q의 원소인지 확인,

(1) q = p인 경우, x Q , y Q 가 [0, p - 1 사이의 정수들인지 확인] .

(2) q = 2 m인 경우, x Q , y Q가 m비트 길이의 수열인지 확인.

만약 유한체 F q의 원소의 형식을 따르지 않는 공개키를 사용한다면 공개키를 사용한 프,

로토콜의 결과 값들이 또한 유한 체 F q의 형식을 따르지 않기 때문에 무의미하게 된다.

다 테스트. Group membership

Q=( x Q , y Q 가 곡선 위의 점인지 확인) ,

(1) q = p인 경우, ( y Q )2 ≡ ( x Q )

3+ a x Q+ b ( mod p 확인) .

(2) q = 2 m인 경우, F2 m에서 ( y Q )

2+ x Q y Q ≡ ( x Q )3+ a ( x Q )

2+ b (mod

p 확인) .

만약 공개키가 타원곡선 위의 점이 아니라면 그 공개키를 이용해 프로토콜에서 생성된 다,

른 원소들도 타원곡선 위의 점이 아니게 된다 따라서 타원곡선 위의 점을 이용한 암호시스.

템이 올바른 결과 값을 산출할 수 없게 되어 암호시스템으로서 무의미하게 된다.

Page 75: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 75 -

라 테스트. Small point

nQ 확인 공개키의 위수가 작아진다는 것은 가 커진다는 것을 의미한다 만= 0 , cofactor .

일 cofactor h = E( F q )/ n의 값이 크다면 공격에 대해 약점이 될 수 있다고 알려져 있,

으며 이유는 다음과 같다.

(1) h = E( F q )/ n의 값이 커진다는 것은 n의 값이 작아진다는 것을 의미한다 그런데.

만약 n의 값이 이런 식으로 작아지면 우리가 원래 의도했던 n의 비트수가 줄어들므로 공

격자에 의해 공격될 수 있다 따라서. h = E( F q )/ n의 값은 작아야 한다.

만일(2) h = E( F q )/ n의 값이 커지면 공격에 대한 실마리를 제공할 수 있을subgroup

것이다.

Page 76: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 76 -

제 장 공개키 시스템 파라미터 검증을 위한 평가방6 On-line

제 절 파라미터 검증을 위한 평가방법1 RSA On-line

* 인수분해 기반의 공개키 파라미터 모듈로 에 대한 검증1. n

가 의 소인수분해 정보에 대한 검증 프로토콜. n

가 인수분해 기반의 공개키 파라미터 모듈로P n을 공개했을 때, n이 의 공개키임을 증P

명한다는 의미는 가P n의 소인수 분해 정보 ( n = ∏ p ie i 를 아는 것을 증명하는 것)

이다 위 사실을 증명하기 위하여 년 에서 와. 2000 PKC Guillaume Poupard Jacques Stern

이 제안한 다음과 같은 프로토콜을 소개한다.

(1) n의 소인수분해 정보에 대한 통계적 영지 식 상호 증명 프로토콜

그림[ 4] n에 대한 통계적 영지식 상호 증명 프로토콜

Page 77: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 77 -

* H(⋅) 충돌회피 해쉬 함수:

증명자 는 임의의 정수 값 을 구간 에서 선택하고 개의(prover) P r [0,A[ K commitment

x i= zri m od n를 계산하여

이에 대한 충돌회피 해쉬 함수 값 X = H ( ( z ri m od n ) i = 1 , .., K )를 계산하여 검증 자

에게 보낸다 검증자 는 구간 에서 임의의 정수 값(verifier) V . (verifier) V [0,B[ e

를 선택하여 증명 자 에게 보낸다 증명 자 는(challenge) (prover) . (prover) P

y = r+ (n -Φ (n))×e를 계산하여 그것을 다시 검증 자 에게 보낸다(verifier) V .

검증자 는(verifier) V y의 값이 과 사이의 값인지 확인하고0 A i = 1 , . . . , K 에 대하여

X = H ( ( z ri m od n ) i = 1 , .., K )이 성립하는지 확인하다.

안정성을 위하여 위의 기본적인 프로토콜을 l번 반복하여 는 가 소인수분해 정보를 아V P

는지 판단한다.

위 프로토콜은 스킴의 변형이고 개의 임의의 정수- Schnorr K z i (∈ z*n )에 대하여

z ni ( mod n )의 작은 비밀 지수 (n - Φ (n )) 정보에 대해 아는지를 검증한다.

프로토콜 안전성 증명(2)

위의 스킴 은 통계적 영지 식 상호 증명 시스템이다(scheme) .

완전성- completeness( ) : Theorem 4 [28]

만일 (n - Φ (n ))lB /A 값이 무시할 정도 의 작은 값이라면(negligible) n의 소인수 분해

정보를 아는 증명 자 와 검증 자 사이의 프로토콜 실행은 높은 확률로 성(prover) (verifier)

공한다.

건전성- soundness( ) : Theorem 5 [28]

어떤 공격자 가 높은 확률로 프로토콜을 통과한다고 가정하자PPTM P (non-negligible) .

Page 78: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 78 -

만일 l×logB=θ(k), K=θ(k+ log|n|)이 성립하고 가log(A) k와 |n|에 대하여 다항식

형태 이고(polynomial) A< n 이라면 매우 높은 확률로 n을 소인수 분해할 수 있는 PPTM

이 존재한다.

영지식 성질- zero-knowledge( ) : Theorem 6 [28]

만일 (n - Φ (n ))lB /A 값이 무시할 정도 의 작은 값이고(negligible) l×B가 k에 대하여 다

항식형태 이라면 주어진 프로토콜은 통계적 영지식 성질을 만족한다(polynomial) .

효율성(3)

프로토콜의 실행은 정확히 l×(K×|n|×|B|×|A|)비트들의 전송량이 요구된다 만일.

l× logB=θ(k), K=θ(k+ log|n|)과 |A|=θ(|n|), (A< n 을 가정하면)

θ(l×(k+log|n|)×|n|)의 통신 복잡 도를 얻게 된다 계산적인 관점에서 증명 자. (prover)

와 검증 자 는 비트 모듈로 지수 연산을 번 계산해야 한다P (verifier) V A K .∣ ∣

나 프로토콜의 파라미터 선택과 의 소인수 관계. n

프로토콜의 건전성을 위하여 파라미터 l 는,B l× logB=θ(k)를 만족하도록 선택되어야 한

다 그리고 는 프로토콜의 완전성과 영지 식 성질을 보장해 주기 위하여. A (n - Φ (n ))lB

보다 커야 하지만 건전성을 위해서는 n보다 작게 선택되어야 한다 결국. n은

(n- Φ(n))× 2 k≪ n 이어야 한다 제안된 증명 시스템은 작은 소인수를 같지 않는 모든.

정수들에 대하여 성립되어진다 더 자세히 만일. n =

n∏i = l

qe i

i 라면1q 1<n -Φ ( n )n

=

1 -

n∏i = 1

( 1 -1q i)< ∑

n

i= 1

1q i이다 따라서 만일. (n- Φ(n))× 2 k≪ n 라면 n의 모든

소인수는 ≫ 2 k이어야 한다 만일. n의 모든 소인수가 바운드 F(k) 보다 크다면

(n - Φ ( n ) )/n < η/F(k)을 알 수 있고 그래서 F(k)≫ η× 2 k 가 요구된다.

Page 79: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 79 -

실제적인 응용에서는 형태의 모듈러스RSA n에 대한 지식을 증명하는데 사용되어진다 만.

일 n이 작은 소인수를 갖는다면 증명은 영지식 성질을 만족하지 않게 되고 이에 대한 정보

의 누출이 있게 된다 즉. n이 소인수 분해 되기 어려운 형태인 경우에 위의(intractable)

프로토콜이 정확하고 영지식 성질을 만족한다는 것을 의미한다 따라서 건전성이. A< n에

의하여 보장되어지므로 증명자 는 작은 소인수를 갖는(prover) P n 값을 선택함으로서 검

증자 를 속이려는 시도를 할 수 없게 된다(verifier) V .

다 공개키 파라미터 의 검증. RSA n

증명자 가 올바르게 파라미터(prover) P RSA n을 구성하였다면 즉, ( n을 p와 q 두 개의

큰 소수의 곱으로 구성하였다고 가정하면 위의 프로토콜을 완전하게 통과할 것이다 그리) .

고 p,q가 큰 소수라는 가정에 의해 위의 프로토콜은 영지식 성질을 만족하게 되고 안전하

게 공개키 파라미터RSA n의 검증을 할 수 있게 된다.

파라미터RSA n의 검증을 위한 프로토콜 파라메터 구성의 예.

네 쌍의 정수를 (A ,B ,K , l) = ( n - 1, 2 10 ,1104,8 ) 정의하면 다음 사항을 알 수 있다.

B= 2 10값은 정직하지 못한 증명자 가 성공할 확률을(prover) 1/ 2 10보다 작게 만든다. l

값을 로 택하여 시큐리티 파라미터8 k의 크기를 정도로 한다 그리고 는 완전성 건전80 . A ,

성 영지식 성질을 위해, (n - Φ (n ))lB 보다 매우 크고 n보다 작은 값 Φ(n)을 택한다.

그러면 생성해야할 난수 z i의 개수 는K k+log|n| 정도가 되며 통신 복잡= 80+1024

도는 비트 정도가 된다8×1102×1024 .

Page 80: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 80 -

* 공개키 파라미터 에 대한 검증2. RSA e

가 파라미터P RSA e를 공개했을 때, e가 의 공개키임을 증명한다는 의미는 가P RSA P e

에 대응하는 비밀키 d 값을 알고 있다는 사실을 증명하는 것이다 공개키 파라미터. e에

대한 검증은 파라미터 n에 대한 검증으로 대치할 수 있다 왜냐하면. n의 소인수 분해 정

보를 아는 것과 e에 대응하는 비밀키 값 d를 아는 것은 동치이기 때문이다[34].

제 절 파라미터 검증을 위한 평가방법2 DSA On-line

* 비밀키 에 대한 테스트1. d

다음은 가 이산대수를 알고 있다는 것 즉 주어진 공개키에 해당하는 개인키를 알prover A ,

고 있다는 것을 에게 확신시키는 이다verifier B interactive zero-knowledge proof system .

Page 81: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 81 -

그림 에 대한[ 4] d interactive zero-knowledge proof system

가 완전성. completeness( )

다음의 식에 의해 는 에게 자신이A B d를 알고 있다는 것을 증명할 수 있다.

따라서 가A d를 알고 있다면 는 반드시 받아들이게 된다B .

나 건전성. soundness ( )

공격자 가 를 가장하여C A ε≥1/ 2 k - 1의 확률로 프로토콜을 통과하는 값을 계산할 수 있s

다고 하자 그러면. ε≥1/ 2 k - 1이므로 2 k /ε≥2가 되고, s 1≢ s 2 ( modp) 와

t≡ as 1 e

c 1≡ as 2 e

c 2 ( mod p )를 만족하는 s 1, s 2 그리고 c 1 , c 2를 계산할 수

있다.

따라서 as 1 - s 2≡d ( c 2 - c 1 )(mod q )가 된다. q가 소수이므로 c 2 - c 1과 서로소가

되고 이로부터 는, C d≡ ( s 1 - s 2 ) ( c 2 - c 1 )- 1를 계산할 수 있다.

따라서 작지 않은 확률로 를 가장하여 이 프로토콜을 통과하는 사람은 반드시 의 비밀A A

키 d를 알아야 한다.

Page 82: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 82 -

다. zero-knowledgeness

이 프로토콜은 연속적으로 Θ(poly( logq))번 반복될 때 k=O( log log (q))에 대하여는

비밀키 d를 알고 있다는 것에 대한 이다 따라서 위의 스킴은zero-knowledge proof .

q≈ 2 1024정도인 소수를 사용하는 경우, c의 비트 스트링을 log(log 2 1024)≈10비트 정도

로 하여 poly(log( 2 1024))≈1024번 정도를 반복해야 비밀키d를 알고 있다는 사실에 대한

가 된다zero-knowledge proof .

제 절 파라미터 검증을 위한 평가방법3 ECDSA On-line

의 타원곡선 버전 상기 프로토콜과 동일하다DSA . .

Page 83: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 83 -

제 장 의 검증 기준7 NIST

미국의 에서는 미 연방정부의 전자서NIST(National Institute of standard and Technology)

명 알고리즘 표준인 과 해쉬 알고리즘 표DSS(Digital Signature Standard, FIPS PUB 186)

준인 의 구현 물이 표준을 준수하였는지 여부를SHS(Secure Hash Standard, FIPS 180-1)

테스트하고 있다 테스트를 위해서 의 연구소. NIST CMT(Cryptographic Modules Testing)

에서는 전자서명 표준 검증 시스템(DSSVS: Digital Signature Standard Validation System)

을 개발하여 사용하고 있다 우리는 에 대한 시스템 파라미터 요구조건 분석을 바탕. ECDSA

으로 와 의 구현 물이 표준 와 을 각각 준수하고ECDSA EC-DH (ANSI X.9.62) (ANSI X.9.63)

있는지 여부를 테스트하는 검증 시스템을 연구하고 있다.

제 절 안전한 소수 생성 시 필요한 검증 횟수 근거 제1 (Strong prime)

안전한 소수 p

정의 소수: p가 안전한 소수이기 위해서는 다음의 가지 조건을 만족해야 한다 여기서3 . r

은 p 의 인수이다-1 .

- p 은 큰 소수의 인자를 가져야 한다-1 .

- p 은 큰 소수의 인자를 가져야 한다+1 .

- r 은 큰 소수의 인자를 가져야 한다-1 .

안전한 소수를 생성하는 알고리즘

Page 84: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 84 -

알고리즘Gordon's

비슷한 크기를 갖는 소수- s , t 를 생성한다.

정수- i 0를 선택한다. i = i 0 , i 0+1 , i 0+2 ,⋯ 에 대하여 수열 { 2 i t 중+ 1}

에서 첫 소수를 찾아 r = 2 i t 로 놓는다+ 1 .

- p 0 = ( 2 sr - 2 mod r 를 계산한다)s-1 .

정수- j 0를 선택한다. j = j 0 , j 0+1 , j 0+2 ,⋯ 에 대하여 수열 { p 0 + 2 j r

s 중에서 첫 소수를 찾아} p = p 0 + 2 j r s로 놓는다.

에서는 아직 안정한 소수NIST p를 생성 검증 횟수에 대한 근거가 없다 하지만 에. DSSVS

서 제시한 소수생성 검증 횟수를 이용하여 위 알고리즘을 이용해 안전한 소수를 생성하는데

필요한 검증 횟수를 알아보자 소수 판정 알고리즘은 테스트 방법을 사용하기. Miller-Rabin

로 한다 그리고 테스트 방법에서 비트 길이를 갖는 수를 회 테스트하. Miller-Rabin 512 8

여 판정한 결과에 생길 수 있는 오류는 약 2 - 100이다.

이론적 근거는 p k, t= 2t+ 4 k ( 2 - tk ) k/t 이다 여기서. k는 검증하고자 하는 수의 비트

길이이고, t는 테스트를 반복하는 횟수이다 그리고Miller-Rabin . p k , t는 검증 결과에서

생길 수 있는 오류 확률이다 예를 들어 만약 알고리즘을 이용하여 소수. Gordon's p가

비트 길이를 갖고1024 , p 와-1 p 은 비트+1 768 , r 은 비트를 갖는 안전한 소수를-1 511

생성함에 있어서 필요한 검증횟수의 기준은 에서 제시한 비트 소수를 검증함에NIST 512

있어서 테스트를 번 시행함에 생기는 오류의 확률이 약Miller-Rabin 8 2 - 100이 되도록

잡아야 한다 알고리즘에서는 소수 판정 테스트가 번 필요하게 된다 즉 소수. Gordon's 4 . s

, t 를 생성할 때와 r , p를 생성할 때 필요하다 여기서 시행횟수는 안전한 소수가 가지.

는 소수의 크기에 영향을 받게 된다.

Page 85: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 85 -

제 절 인수분해 문제 기반 암호시스템의 키 쌍 공개키 비밀키 검증2 ( , )

회수 근거제시

에서 제시한 공개키 알고리즘에 대한 파라미터 검증 알고리즘이 아직은 제안된NIST RSA

것이 없다 본 절에서는 공개키 암호에서 공개키. RSA n , e를 생성하는 것과 비밀 키, d

를 검증하는 방법을 살펴보고자 한다.

공개키 n를 생성하기 위해서는 큰 소수 p , q가 필요하다 따라서 소수를 생성하고 판정.

하는 소수 판정 알고리즘인 테스트 방법이 사용된다 여기서도 소수Miller-Rabin . p , q를

생성하는데 사용되는 테스트 사용횟수는 에서 제시한 비트 소수를Miller-Rabin NIST 512

검증함에 있어서 테스트를 번 시행함에 생기는 오류의 확률 약Miller-Rabin 8 2 - 100이

되도록 잡아야 한다 즉 각 비트 길이를 갖는 소수. 512 p , q를 검증하는 횟수를 t 1 ,

t 2라고 하면 오류의 확률은 p 512. t 1* p 512. t 2이고 이 값이 2 - 100를 갖도록 t 1 ,

t 2를 잡는 것이 필요하다.

그리고 공개키 e와 비밀 키 d는 검증과 생성에 있어서 오류의 확률이 없기 때문에 알고리

즘에서 생기는 오류는 고려하지 않아도 되나 만약 소프트웨어로 구성하였을 경우에 생기는,

오류의 확률을 고려하여 검증횟수를 결정하는 것이 필요하다.

제 절 이산대수 문제 기반 암호시스템의 도메인 변수 사용자 변수 메3 , ,

시지 변수 검증 횟수 근거 제시

본 절에서는 의 연구소에서 개발한 전자서명NIST CMT(Cryptographic Modules Testing)

표준 검증 시스템 에서 제시한 검증(DSSVS: Digital Signature Standard Validation System)

횟수의 내용을 살펴본다.

Page 86: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 86 -

* 도메인 변수 검증 근거 제시1. (p,q,g)

표 도메인 변수 검증 횟수[ 12]

Page 87: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 87 -

위 표에서 살펴볼 수 있듯이 도메인 변수 를 생성하고 검증함에 있어서 모듈러의 크p, q, g

기에 따라 횟수가 틀림을 알 수 있다 이것은 각 모듈러의 크기에 대하여 검증하고자 하는.

모듈러와 그 검증 횟수는 전체 검증에서의 오류 확률이 비트 소수를 검증함에 있어서512

테스트를 번 시행함에 생기는 오류의 확률 약Miller-Rabin 8 2 - 100이 되도록 잡혀 있다.

생성원 의 검증 횟수는 알고리즘에서 생기는 오류의 확률은 없지만 소프트웨어로 구현하g

였을 경우에 생기는 오류의 확률을 감안한 검증 횟수로 여겨진다.

* 사용자변수 검증 근거 제시2.

공개키 쌍을 생성하는데 필요한 정보를 가지고 개의 공개키 쌍을 생성하도록 한다 여기10 .

서 개의 공개키 쌍을 생성하도록 하는 이유는 기본적으로 구현되어 있는 소프트웨어가 가10

질 수 있는 오류의 가능성을 고려하여 최소한 개의 공개키 쌍을 생성함으로 오류검증의10

확률을 최소화하기 위함이다.

* 메시지 변수 검증 근거 제시3.

서명생성 과정을 검증하기 위해서는 개의 임의의 메시지에 대하여 서명을 생성하도록 하10

고 서명검증 과정을 검증하기 위해서는 적어도 개의 서명에 대한 검증을 하도록 요구한, 100

다 각 숫자의 근거는 기본적으로 구현되어 있는 소프트웨어가 가질 수 있는 오류의 가능성.

을 최소화하기 위함이다.

Page 88: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 88 -

제 절 타원곡선 암호 프로토콜에 대한 새로운 검증기준 마련 및 근거4

제시

본 절에서는 타원곡선암호시스템 기반의 프로토콜 와 의 구현물이 표준ECDSA EC-DH

와 따라 각각 정확하게 구현되었는지를 테스트하는 방법에 대(ANSI X.9.62) (ANSI X.9.63)

하여 설명한다 프로토콜의 각 단계별 동작원리와 검증방법 및 효과에 대하여 살펴본다 참. .

고로 아직 에서는 에 대한 소프트웨어 검증 툴이 개발되어 있지 않다NIST ECDSA .

제 절1 ECDSA

* 타원곡선 테스트1. domain parameter

가. F p 에서의 타원곡선 검증domain parameter

(1) p가 홀수 소수인가 확인한다.

(2) a , b, x G 와 y G가 과 사이에 있는 정수들인가 확인한다0 p-1 .

만약에 타원곡선이 의 에 의하여 랜덤 하게 생성된 것이라면(3) ANSI X.9.62 Annex A.3.3 ,

시드 가 적어도 비트정도의 길이를 가지고 있는 지와(seed) 160 a , b가 시드로부터 적절하

게 선택된 값인지를 을 바탕으로 확인한다Annex A.3.4.2. .

(4) ( 4 a 3 + 27 b 2 의 값이 법 에 의하여 인지 확인한다) p 0 .

(5) y G 2≡ x G 3+ a x G+ b mod p 인지 확인한다.

(6) n이 소수인지 그리고 n> 2 160 과 n >4 p 인지 확인한다.

(7) n G 인지 확인한다= 0 .

Page 89: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 89 -

(8) (optional) h' =⌊ ( p+ 1)2/n⌋을 계산해서 h = h '인지 확인한다.

와 조건들이 성립하는지 확인한다(9) MOV Anomalous .

나. F2 m 에서의 타원곡선 검증domain parameter

적당한(1) m에 대하여 q = 2 m 인지 확인 만약에 베이시스를 을 사용할 경우. TPB

다항식이 이고reduction trinomial F 2에서 인지 확인 만약 를 사용할irreducible . PPB

경우 차수 m인 이 존재하지 않고 다항식이irreducible trinomial , reduction pentanomial

이고 F 2에서 인지 확인 만약 를 사용할 경우irreducible . GNB , m이 로 나누어지지 않8

는지 확인한다.

(2) a , b , x G 와 y G가 m비트 수열인지 확인한다.

만약에 타원곡선이 의 에 의하여 랜덤 하게 생성된 것이라면(3) ANSI X.9.62 Annex A.3.3 ,

시드 가 적어도 비트정도의 길이를 가지고 있는지와(seed) 160 a , b가 시드로부터 적절하

게 선택된 값인지를 을 바탕으로 확인한다Annex A.3.4.2. .

(4) b≠0 인지 확인한다.

(5) F2 m에서 y G 2+ x G y G≡ x G 3+ a x G 2+ b 인지 확인한다.

(6) n이 소수인지 그리고 n > 2 160 과 n > 4 p 인지 확인한다.

(7) n G 인지 확인한다= 0 .

(8) (optional) h' =⌊ ( p+ 1)2/n⌋을 계산해서 h = h '인지 확인한다.

와 조건들이 성립하는지 확인한다(9) MOV Anomalous .

* 키 쌍 생성 테스트2.

가 비밀 키와 공개키 쌍 생성.

Page 90: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 90 -

난수 생성기를 이용하여 안수 를 생성한다 참조(1) d .(FIPS 186, ANSIX9.30 ).

(2) Q = ( x Q , y Q ) = dG를 계산한다.

키 쌍(3) (Q ,d ) 생성한다.

나 검증 사항.

의 난수 생성기의 사용 여부 점검한다(1) FIPS 186, ANSIX9.30 .

올바른 키 쌍 생성 여부 점검한다(2) .

(3) (Optional)

확인 : Public key Validation Primitive

가( ) Q ≠ 0 확인한다.

나( ) Q = ( x Q , y Q )의 x Q , y Q 가 체 F q의 원소인지 확인한다.

1) q = p인 경우, x Q , y Q가 [0, p - 1 사이의 정수들인지 확인한다] .

2) q = 2 m인 경우, x Q , y Q가 m비트 길이의 수열인지 확인한다.

다( ) Q = ( x Q , y Q )가 곡선 위의 점인지 확인한다.

1) q = p인 경우, ( y Q )2≡ ( x Q )

3+ a x Q+ b ( mod p) 확인한다.

2) q = 2 m인 경우, F2 m에서

( y Q )2+ x Q y Q≡ ( x Q )

3+ a ( x Q )2+ b ( mod p ) 확인한다.

라( ) n Q 확인한다= 0 .

* 서명 생성 테스트3.

가 서명 생성.

(1) Message digesting

을 사용하여 해쉬 값SHA-1 e = H (M ) 계산한다.

타원곡선 위의 점 계산(2)

가 의 난수 생성기를 이용하여 난수( ) FIPS 186, ANSIX9.30 k 생성한다.

Page 91: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 91 -

나 타원곡선 위의 점( ) kG = ( x 1 x 2 ) 계산한다.

법 연산(3)

가 체의 원소( ) x 1을 정수—x 1으로 변환한다.

나( ) r =—x 1

mod n . ( r 인지 판단=0 )

다( ) s = k - 1 (e+ dr) mod n 계산한다. ( s 인지 판단= 0 )

라 메시지 에 대한 서명 생성한다( ) M (r,s) .

메시지 에 대한 서명 생성한다(4) M (r,s) .

나 검증 사항.

해쉬 함수 의 사용 여부 점검한다(1) (SHA-1) .

의 난수 생성기의 사용 여부 점검한다(2) FIPS 186, ANSIX9.30 .

인 경우에 생성된 서명을 버리는지에 대한 점검한다(3) r = 0 .

인 경우에 생성된 서명을 버리는지에 대한 점검한다(4) s = 0 .

서명 를 올바르게 계산해 낼 수 있는가의 여부 점검한다(5) (r,s) .

* 서명 확인 테스트4.

가 서명 확인.

을 사용하여 해쉬 값(1) SHA-1 e = H (M )를 계산한다.

가 폐구간(2) r, s [1, n - 1 사이의 값인가 확인한다] .

만일 나 가 폐구간( r s [1, n - 1 에 있지 않으면 서명을 거부] )

(3) c= s - 1 modn를 계산한다.

(4) u 1 = ec mod n 과 u 2 = rc m od n를 계산한다.

타원곡선 위의 점(5) ( x 1 , x 2 ) = u 1 G + u 2Q 를 계산한다.

체의 원소(6) x 1을 정수—x 1로 변환한다.

Page 92: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 92 -

(7) v =—x 1mod n를 계산한다.

(8) r = v 인지 확인한다.

나 검증 사항.

해쉬 함수 의 사용 여부 점검한다(1) (SHA-1) .

과 가 주어진 구간에 있는지를 확인 하는가 점검한다(2) r s .

또는 의 값이 인지 아니면 의 범위를 넘는지 확인한다(3) r s 0 , n .

(4) ( x 1 , x 2 ) = u 1 G + u 2 Q = 0 인지 확인한다.

서명 의 유효성 확인을 올바르게 수행하는지 여부 점검한다(5) (r,s) .

제 절2 ECDH

* 타원곡선 테스트1. domain parameter* 키 쌍 생성 테스트2.* 와1. * 는 와 동일하다2. ECDSA .* 키 공유 테스트3.

가 키 공유.

입력 : Q B / Keydatalen, SharedData (Optional).

의 비밀 키와 의 공개키를 가지고 공유키를 만드는 과정이다A B .

점 P = ( x p , y p ) = h d A Q B 를 계산한다 여기서. d A는 의 비밀 키이고A Q B 는

의 공개키이다B .

공유된 비밀 값(1) z = x p를 계산한다.

체의 원소(2) z를 진 수열8 Z로 변환한다.

함수를 이용하여 키 값 생성한다(3) kdf .

Page 93: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 93 -

나 검증 사항.

(1)(Optional)

확인 : Public key validation Primitive

가( ) Q e , A ≠ 0 .

나( ) Q e , A = ( x Q , y Q )의 x Q , y Q 가 체 F q의 원소인지 확인한다.

1) q = p인 경우, x Q , y Q가 [0, p - 1 사이의 정수들인지 확인한다] .

2) q = 2 m인 경우, x Q , y Q가 m비트 길이의 수열인지 확인한다.

다( ) Q e , A = ( x Q , y Q )가곡선 위의 점인지 확인한다.

1) q = p인 경우, ( y Q )2≡ ( x Q )

3+ a x Q+ b ( mod p) 확인한다.

2) q = 2 m인 경우, F2 m에서

( y Q )2+ x Q y Q≡ ( x Q )

3+ a ( x Q )2+ b ( mod p ) 확인한다.

라( ) n Q e , A 확인한다= 0 .

키 공유 계산 과정의 정확성을 점검한다(2) .

함수의 사용여부를 점검한다(3) kdf .

Page 94: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 94 -

제 장 공개키 시스템에 대한 영지 식 증명8 Interactive

또는 은 공개키Interactive ( non-interactive) zero-knowledge proof protocol for arithmetic

암호 학이 소개되기 시작한 초창기부터 많은 학자들의 관심을 끌어 왔다 특히 공개키 암호. ,

의 수학적인 기반문제와 관련된 이산대수나 인수분해에 대한 정보를 또는interactive (

을 통해 확신시킬 수 있는 방법론들이 소개되Non-interactive)zeor-knowledeg proof system

고 있다 아래에서는 이와 관련된 현재의 연구 결과들을 간략하게 살펴보기로 하겠다. .

제 절 이산대수에 대한 영지 식 증명1 Interactive(non-interactive)

*1. Schnorr's signature[36]

비밀지수를 알고 있는 사용자를 인증하는 스킴은 해쉬 함수를 이용Schnorr's identification

하여 다음과 같은 서명 스킴으로 변형될 수 있다 그리고 이 스킴은 공개된 값. y(=gx 에 대)

응하는 이산비밀지수(x)를 아는 사용자만이 스킴을 통과할 수 있으므로 이산대수문제에 관

한 검증 스킴으로 이용될 수 있다 이 스킴은 고정된 크기의 첼린지 를 사용하는. (challenge)

경우에 영지 식 증명이 된다.

Page 95: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 95 -

그림[ 5] Schnorr's signature

* 에 대한 영지 식 증명2. DLP1 Interactive [17]

입력 값으로 를 갖는 이산대수문제 는p, g, y (DLP) y≡gx (modp 를 만족하는) x [1,∈ p 를-1]

찾는 것이다 만일 다음과 같이 정의된 프리디킷 쌍. (predicate) (Qε 을 이용하여 문제를 만,H)

든다면 이후 이라 부름 와 다항식으로 동일하다 는 것이( DLPI )DLP (polynomially equivalent)

과 에 의해 증명되어졌다Blum Micali .

아래의 프로토콜은 의 해결 능력에 대한 정직한 증명 자 완전 영지 식 프로토콜DLP1

이다(honest verifier perfect zero-knowledge protocol) .

Page 96: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 96 -

그림[ 6] DLP1 (Goldreich-Kushilevitz)

제 절 인수분해에 대한 영지 식 증명2 Interactive(non-interactive)

인수분해지식에 대한 증명은 오래 전에 알려져 왔지만 통신 복잡 도로 인해 많은 적용에는

실제적이지 못한 것으로 여겨져 왔다 최근 이에 대해 효율적인 프로토콜을 제안한 논문을.

소개하고 몇 가지 관련된 연구결과들을 살펴본다.

*1. Poupard-Stern protocol[27]

에 와 은 의 소인수분해 지식을 검증하는 그림 과 같은 통계PKC2000 G. Poupard J. Stem n 6

적 영지 식 상호 증명 프로토콜을 제안했다 이 프로토콜은 몇 개의 랜덤 하게 선택된. z

mod n에 대해 zn mod n의 작은 지수 n-ø(n 의 지식을 아는지 증명하는 시스템이다 즉 여) .

기서 ø(n 의 값을 알기 위해서) n의 소인수 분해 지식이 필요하게 된다 아래 프로토콜은. n

의 소인수분해 지식을 검증하는 영지 식 상호 증명이다.

Page 97: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 97 -

그림[ 7] DLPl (Goldreich-Kushilevitz)

*2. Proposed protocol

n의 소인수분해 정보를 안다는 것과 Zn의 임의의 원소에 대해 제곱근을 구할 수 있는 능력

은 서로 동치이므로 이를 이용하여 n의 소인수 분해 지식을 검증하는 다음과 같은 영지 식

상호 증명 프로토콜을 구성할 수 있다 아래 프로토콜은. n의 소인수분해 지식을 검증하는

영지 식 상호 증명 프로토콜이다.

그림[ 8] Proposed protocol

Page 98: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 98 -

* 두 개의 의 곱에 대한3. safe primes(or quasi-safe primes) Interactive (non-

영 지식 증명interactive) [18]

은 주어진 수R. Gennaro et al n이 퀘이사의 세이프 소수의 곱으로 만들어 졌- (quasi-safe)

는지 판정하는 통계적 영지 식 증명시스템을 제안하였다 여기서 그들은. n이 개의 언어 클4

래스에 속해 있는지를 판정함으로서 위의 시스템을 구성하였다 각 단계별 언어 성질은 다.

음과 같다 단계 소수의 제곱을 약수로 갖지 않는다 단계. 1 : . 2 : n이 paqβ으로 구성되었다 단. 3

계: n이 서로 다른 두 소수의 곱으로 이루어져 있다 단계 올모스트 세이프. 4 : (almost) (safe)

소수의 곱으로 이루어져 있다.

퀘이사의 세이프 소수( - (quasi-safe) : 2pa 의 형태를 갖는 소수+1 )

* 유한 체 연산에 대한 영지 식 증명4. Interactive(non-interactive) [11]

와 은 모듈라 덧셈 모듈라 곱셈 모듈라 지수승과 같은 유한 체 연J. Camenisch M. Michels , ,

산을 구현하는 영지 식 상호 증명 프로토콜을 제안하였다 여기서 그들은 컴미트 된.

값을 사용하여 대수적 증명이 성립하도록 하였다 여기서는 특히 의 소(commited) . Lehmann

수 판정 테스트를 이용하여 주어진 값 p의 소수 판정을 할 수 있는 스킴 도 제안하(scheme)

였다.

Page 99: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 99 -

제 장 진단 및 적합성 테스트와 관련된 기술9 S/W

(S/W diagnostics and conformance testing by NIST)

제 절 목 적1

소프트웨어 진단 및 적합성 테스트는 민감한 분야에 사용하기 위하여 개발되는 소프트웨어

의 질 표준에 대한 적합성 그리고 구현의 정확성 등을 개선하는데 있다 암호학적인 목적, , .

을 위해 만들어지는 소프트웨어의 경우 이 테스트를 통해 검증된 것만을 사용하도록 권장되

어야 할 것이다.

제 절 테스트 방법에 관한 연구2

표준에 따른 자동화된 소프트웨어 테스트 생성*1.

가 형식화된 표준에 따라 소프트웨어 제품에 관한 테스트를 자동적으로 생성함에 의해서.

소프트웨어의 질을 향상시키는 형식화된 방법들을 이용한다.

나 에서 개발된 테스트방법. NIST [2]

이 방법은 아래와 같은 단계 그림 참조 로 수행된다[ ] .

단계 형식화된 표준으로부터 돌발변수들을 생성한다[ 1] .

단계 반례를 만들기 위해서 모델 확인 기를 가지고 변화하는 항목들을 분석한다[ 2] .

단계 반례로부터 테스트를 생성한다[ 3] .

Page 100: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 100 -

그림 자동화 테스트 흐름도[ 9]

통계학적 방법에 의한 소프트웨어 테스트*2.

가 소프트웨어의 정확성과 질을 측정하는 기준을 정량화 하는 통계학적인 방법을 연구한다. .

나 의 접근방법. NIST [[4]

새로운 접근방법은 추측 통계학적 과정과 통계학적인 측정을 통해서 소프트웨어(stochastic)

의 질을 향상시키고 소프트웨어가 그것의 스펙들에 정확히 충실할 확률을 결정하기 위한 정

량적인 기준을 제공한다.

Page 101: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 101 -

제 장 구현10 S/W

제 절 테스트용 함수 소개1

특별하게 언급하지 않는 한 테스트가 성공하면 을 그렇지 않으면 을 리턴함, 1 0 .

*1. RSA off-line test

가 소수 판정 테스트 테스트. (Miller-Rabin )

* int test_primality(BIGNUM *a,primeconf *pc);

나 테스트. Exponents relation

* int test_exp_equiv(BIGNlUM *e,BIGNUM *d,BIGNUM *p,BIGNUM *q);

다 테스트. Known exponent

* int test_known_exp(BIGNUM *d);

라 테스트. Small exponent

* int test_small_exp(BIGNUM *e);

Page 102: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 102 -

* 2. RSA on-1ine test

참조6.1.1 .

* int test_IP_for_IF-prover(char prover[],char verifier[]);

* int test_IP_for_IF_verifier(char prover[],char verifier[]);

* 3. DSA off_line test

가 소수 판정 테스트 테스트. (Miller-Rabin )

* int test_primality(BIGNUM *a,primeconf *pc);

나 테스트. Schnorr's relation

* int test_group_order(BIGNUM *q,BIGNUM *p,primeconf *pc);

다 생성자 위수 확인 테스트.

* int test_generator(BIGNUM *a,BIGNUM *q,BIGNUM *p):

라 공개키의 생성 자 테스트. group membership

* int test_generator(BIGNUM *a,BIGNUM *q,BIGNUM *p);

* 4. DSA on-line test

참조6.2.1 .

Page 103: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 103 -

* void test_IP_for_DL_stepI(BIGNUM *p,BIGNUM *q,BIGNUM *a,BIGNUM *r,BIGNUM

*t);

* int test_IP_for_DL_step ();Ⅱ

* void test_IP_for_DL_step (BIGNUM *q,BIGNUM *r,BIGNUM *d,intc,BIGNUM *s)7Ⅲ

* int test_IP_for_DL_step (BIGNUM *p,BIGNUM *q,BIGNUM *e,BIGNUM *a,BIGNUMⅣ

* s,int c,BIGNUM *t);

* int test_IP or_DL-prover(char prover[],char verifier[]);」

* int test_IP_for_DL_verifier(char prover[],char verifier[]);

* 5. ECC off-line test

가 공개키 타당성 테스트.

실패하면 을 리턴(1) Trivial point Test - -1 .

테스트 실패하면 를 리턴(2) Group representation - -2 .

테스트 실패하면 을 리턴(3) Group membership - -3 .

테스트 실패하면 를 리턴(4) Small point - -4 .

* int test_ec_public_key_validation(int noc,char *filename);

* 6. ECC on-line test

Page 104: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 104 -

참조6.3 .

* void test_IP_for_EC_step (BIGNUM *r,pECPoints T,pEC ec);Ⅰ

* int test_IP_for_EC_step ();Ⅱ

* void test_IP_for_EC_step (BIGNUM *ord,BIGNUM *r,BIGNUM *d,int c,BIGNUM *s);Ⅲ

* int test_IP_for_EC_step (pECPoints P,BIGNUM *s,int c,pECPoints T,pEC ec);Ⅳ

* int test_IP_for_EC_prover(char prover[],char verifier[]);

미* int test_IP_for_EC_verifier(char prove ,char verifier[]);

제 절 테스트용 자료파일 생성을 위한 자료형식2

이 절에서는 테스트용 파일에 사용되는 가지 자료형식에 대하여 간략히 설명한다3 .

* 1. Big Integer

아래에 십진법으로 표현된 정수가 테스트파일에서 십 육진 법으로 표현된 모습을 보여준다.

로 표현되어야 하며 각 워드는 쉼표로 빈 공간이 없이 표현되Left Significant Word Order ,

어야 한다.

Page 105: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 105 -

가. RSA

* modulus,two primes, public exponent, private exponent,

* challenge, response for RSA on-line test.

나. DSA

* large prime, small prime, generator, private key, public key,

* witness, challenge, response for DSA on-1one test.

다. ECC

* private key,

* witness, challenge, response for ECC on-line test.

* 2. Octet String

으로 빈 공간이 없이 표현한다Little Endian Byte Order .

예) a01ac745ac7d7a7c8910 (hash code, SHA-1)

가. RSA : witness(hash code) for RSA on-line test.

* 3. Point Element

는 두 개의 원소의 쌍으로 표현할 수 있을 것이다 원소는 두 가지 경우로 나point held . field

누어 표현될 수 있다 첫째 지표가 인 경우인데 이 때는 다항식으로 표현할 수 있다 이런. , 2 , .

다항식 표현을 테스트 파일에 적을 때는 아래 예와 같이 십 육진 법의 워드단위로 끊어서

적으며 각 워드는 쉼표로 빈 공간이 없이 표현한다 둘째로 지표가 보다 큰 경우엔, . , 2 Big

와 같다Integer .

예) x161+x35+x341+x+1 -> 2,0,0,0, c,3

Page 106: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 106 -

는 아래와 같이 두 개의 원소로 구성된다point field .

(x161+x35+x34+x+,x123+x90+x34+x) -> 2, 0, 0, 0, c, 3, 0, 0, 8000000, 4000000, 4, 2

가. ECC : generator, public key

제 절 테스트 항목별 테스트 파일 작성3

이 절에서는 가지의 시스템 파라메터 테스트에 대한 항목별 테스트파일 작성 예를 보여준11

다 아래에는 테스트 프로그램을 실행했을 때에 실행화면을 보여준다. .

Page 107: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 107 -

그림 실행화면[ 10]

항목 소수 테스트*1. 1(RSA )

주의 모든 테스트파일의 각 줄의 끝은 엔터 키로 마무리 되어야한다 을 이루* : modulus n

는 두 개의 소수

항목*2. 2(RSA known exponent test)

Page 108: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 108 -

public exponent e

항목* 3. 3(RSA small exponent test)

public exponent e

항목* 4. 4(RSA exponents relationship test)

순으로 적는다P, q, e, d .

항목* 5. 6,7 (RSA on-line test)

를 위해서는 개의 테스트 파일RSA on-line test 3

이 필요하다(sparxcom_kisa.ran, sparxcom_kisa.pub, sparxcom_kisa.pri)

항목 를 실행하면 테스트용 파일이 만들어지므로 참조바람5 .

에는 만큼의 개수의 보다 작은 수를 적어 넣는* ran file RSA modulus bit-length modulus

다.

Page 109: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 109 -

에는 과 의 오일러 함수적용 값을 순서대로 적는다* ph file modulus n n .

에는 을 적는다* pub file modulus n .

항목 소수 테스트* 6. 8 (DSA )

를 순서대로 적는다p,q .

항목 앗* 7. 9 (DSA hnon/s condition test)

를 순서대로 적는다P,q .

Page 110: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 110 -

항목* 8. 10 (DSA group membership test)

생성 자 를 순서대로 적는다p,q,a( ) .

항목* 9. 12 13 (DSA on-line test)˜

를 위해서는 개의 테스트 파일DSA on-line test 3

이 필요하다 항목 을 실행하면(sparxcom_kisa.pbl, sparxcom_kisa.pub/ sparxcom_kisa.pri) 11

테스트용 파일이 만들어지므로 참조바람.

에는 생성 자 가 순서대로 들어 가야한다* pbl file p, q, a( ) .

에는 공개키와 비밀 키가 순서대로 들어 가야한다* pri file .

에는 공개키가 적혀야 한다* pub file .

항목* 10. 14 (ECC public-key validation test)

Page 111: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 111 -

공개키를 적는다.

항목* 11. 16 17 (ECC on-line test)˜

를 위해서는 개의 테스트 파일 이ECC on-line test 2 (sparxcom_kisa.pub, sparxcom_kisa.pri)

필요하다 항목 을 실행하면 테스트용 파일이 만들어지므로 참조바람. 14 .

에는 곡선 번호 중에 하나 비밀 키와 공개키가 순서대로 들어 가야한다* pri file (3,5,7 ), .

에는 곡선 번호 중에 하나 와 공개키가 적혀야 한다* pub file (3,5,7 ) .

제 절 흐름 도와 테스트 파일 예제4 On-line test

1. RSA on-line now

Page 112: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 112 -

그림[ 11] RSA on-line flow

/* RSA on_line test files */

/* public_domain/sparxcom_kisa.ran */

/* sparxcom/sparxcom_kisa.pri */

Page 113: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 113 -

*2. DSA on-line flow

Page 114: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 114 -

그림[ 12] DSA on-line now

Page 115: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 115 -

* 3 ECC on-line test flow

그림[ 13] ECC on-line test now

Page 116: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 116 -

제 절 자료 구조5

* 1. Big Number

* 2. Field Element

Page 117: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 117 -

* 3. Point Element

Page 118: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 118 -

제 절 소프트웨어 실행 예6

* 1. RSA off-line test

그림 용 자료파일[ 14] test1.txt - test #1

예 : TEST #1

그림 테스트 결과[ 15]

Page 119: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 119 -

* 2. RSA on-line test

그림[ 16] RSA on-line test

제 절 기타 함수들7

유한 체 연산* 1.

Page 120: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 120 -

타원곡선 연산* 2.

Page 121: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 121 -

입출력 함수* 3.

Page 122: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 122 -

Page 123: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 123 -

Page 124: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 124 -

제 장 결 론11

본 연구과제는 암호 키 분배 및 사용자인증 프로토콜에서 주로 사용되는 인수분해 문제와

이산대수 문제 기반의 공개키 시스템 파라메터 특성을 연구 분석하여 시스템 파라메터의,

안전성을 검증하는 기술을 마련하였다 우선 인수분해 문제 기반의 공개키 시스템. (RSA,

파라메터를 연구하고 요구조건의 수학적 근거를 설명하였다 그리고 이산대수 문ESIGN) , .

제기반의 공개키 시스템 파라메터와 타원곡선 이산대수 문(DSA/ KCDSA, ElGamal, XTR)

제 기반의 공개키 시스템 파라메터도 다루었다 또한 이 연구를 통하여 공개키 시(ECDSA) . ,

스템 파라메터의 안전성을 평가하는 방법을 제안하였다 특히 파라메터 안전성 검증 연구를. ,

통해 필요한 검증횟수에 대한 근거도 제시하였다 나아가 상에서 공개키 암호시스. on-1ine

템의 파라메터들을 검증하는 이론들을 분석하고 효과적인 방법을 제시하였다 그리고 또. A

타입 타입 타입의 시스템들을 중심으로 파라메터를 검증하는 소프트웨어를, DSA , ECDSA

구현하였다 본 연구를 통해 개발된 평가방법은 안전한 공개키 사용을 위해 매우 중요한 도.

구가 될 것이고 다양한 공개키 시스템 파라메터 요구조건의 수학적 근거에 대한 연구는 공

개키 시스템을 이해하는데 많은 도움을 줄 것이다 그러나 평가방법에 대한 연구는. On-line

초기 단계인 만큼 앞으로 계속적인 연구가 필요하다.

Page 125: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 125 -

참고 문헌

[1] L.M Adleman, K.S. McCurley, "Open Problems in Number Theoretic Complexity,

" Proc. of ANTS-I, LNCS 877, Springer-Verlag, pp. 291-322(1995).Ⅱ

[2] P. E. Ammann, P.E. Black and W. Majurski, Using model checking to generate tests

from specifications ,Proceedings of 2nd IEEE international conference on formal

engineering methods(ICFEM'98), pp. 46-54.

[3] D. Banks, W. Dashiell, L. Gallagher, C. Hagwood, R. Kacker, and L. Posenthal,

Preliminary Success Estimates for Approaches based on Binomial Models, Coverage

Designs, Mutation Testing and Usage Models, NISTIR 6129.

[4] D. Boneh, G. Durfee, N. Howgrave-Graham,"Factoring N=pr q for large r", Proc. of

Crypto'99, LNCS 1666, Springer-Verlag, pp.291-322(1995).

[5] D. Boneh and G. Durfee. New results on cryptanalysis of low private exponent RSA.

Preprint, 1998.

[6] D. Boneh, "Twenty Years of Attacks on the RSA Cryptosystem,"Notices of the

American Mathematical Society (AMS), Vol.46, No.2, pp.203-213, 1999.

Page 126: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 126 -

[7] D. Boneh, G. Durfee, and Y. Frankel. An attack on RSA given a fraction of the

private key bits. In AsiaCrypt'98 volume 1514 of Lecture Notes in Computer Science,

pages 25-34. Springer-Verlag, 1998.

[8] D. Bleichenbacher. Chosen ciphertext attacks against protocols based on the RSA

encryption standard PKCS #1. In CRYPTO '98, volume 1462 of Lecture Notes in

Computer Science, pages 1-12. Springer-Verlag, 1998.

[9] D. Bleichenbacher, "Generating ElGamal signatures without knowing the secret key'',

Advances in Cryptology - EUROCRYPT '96 Proceedings, pp.10-18, Springer Verlag,1996.

[10] Vallee, B., Girault, M. and Toffin, P.: How to Break Okamoto's Cryptosystem by

Reducing Lattice Bases, Proc. of Eurocypt '88, LNCS330, Springer-Verlag,

pp.281-291(1988).

[11] J. Camenisch and M. Michels, Proving in zero-knowledge that a number is the

product of two safe primes, BRIG RS98-29, 1998.

[12] D. Coppersmith, M. Franklin, J.Patarin, and M.Reiter, “Low-exponent RSA with

related messages", Advances in Cryptology-EUROCRYPT`96.

[13] D. Coppersmith, M.Franklin, J.Patarin, and M.Reiter, “Low-exponent RSA with

related messages", Advances in Cryptology-EUROCRYPT`96.

Page 127: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 127 -

[14] J.S. Coron, M.Joye, D. Naccache, and P, Paillier, New Attacks on PKCS#1 v1.5

Encryption, Advances in Cryptology Eurocrypt '2000.

[15] T. ElGamal. “A public key cryptosystem and a signature scheme based on discrete

logarithms"' IEEE Trans. inform. Theory, 31:469-472, 1985.

[16] J. Hastad, “On using RSA with low exponent in a public key network," Lecture

Notes in Computer Science: Advances in Cryptology-CRYPTO '85 Proceedings. New

York: Springer-Verlag, pp. 403-408.

[17] O. Goldreich and E. Kushilevitz, A perfect zero-knowledge proof for a problem

equivalent to discrete logarithm, Crypto'98.

[18] R. Gennaro, D. Micciancio, and T. Rabin, An efficient non-interactive statistical

zero-knowlegde proof system for quasi-safe products, the 5rd ACM conference on

computer and communications security, 1998.

[19] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “HANDBOOK of

APPLIED CRYPTOGRAPHY”, 1997.

[20] A. Menezes, T. Okamoto and S. Vanstone, Reducing elliptic curve logarithms to

logarithms in a finite field, IEEE Transactions on Information Theorey, 39(1993),

1639-1646.

Page 128: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 128 -

[21] H. W. Lenstra, Jr. Factoring integers with elliptic curve.

[22] A. Lenstra, E. Verheul, “The XTR public key system", Advances in Cryptology-

CRYPTO '00 Proceedings, pp.1- 19, Springer Verlag/ 2000.

[23] A. K. Lenstra, E.R. Verheul Fast irreducibility and subgroup membership testing in

XTR, Proceedings of the 2001 Public Key Cryptography conference, LNCS 1992,

Springer-Verlag 2001, 73-867 available from www.ecstr.com.

[24] C.H. Lim, P. J. Lee, A key recovery attack on a discrete log-based schemesusing a

prime order subgroup, Proceedings of Crypto'97, LNCS 1294, Springer-Verlag 1997,

249-263.

[25] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, "HANDBOOK of

APPLIED CRYPTOGRAPHY", 1997.

[26] R. Peralta, E. Okamoto, “Faster Factoring of integers of a special form, IEICE

Trans. Fundamentals, E79-A, pp.489-493 (1996).

[27] G. Poupard and J. Stern, Short proofs of knowledge for factoring. PKC2000.

[28] G. Poupard and J. Stem. Short Proofs of knowledge for Factoring. In PKC '00,

LNCS. Springer-Verlag, Berlin,2000.

[29] Guillaume, P., Jacques, Security Ananlysis of a Practical “on the fly" Authentication

and Signature Generation, In Eurocrypt '98, LNCS 1403, Springer-Verlag, p.422-436,

1998.

Page 129: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 129 -

[30] R. Rivest, B. Silverman “Are 'Strong' Primes Needed for RSA?", Tech Notes(The

technical notes and reports of RSA Labs), Submitted, Dec. 1998.

[31] N. Smart, The discrete logarithm problem on elliptic curves of trace one, to appear

in Journal of Cryptology.

[32] T.Satoh and K.Araki, Fermat quotients and the polynomial time discrete log

algorithm for anomalous elliptic curves, preprint, 1997.

[33] C. P. Schnorr. Efficient Identification and Signatures for Smart Cards. In Crypto

'89, LNCS 435, pages 235-251. Springer-Verlag, 1990.

[34] D.R. Stinson, Cryptography Theory and Practices, CRC Press.

[35] J. F. Traub, Algorithms and Complexity, Academic Press, 1976, 35-36.

[36] C. P. Schnorr, Efficient signature generation for smart cards, J. of Cryptology,

4(3):239-252, 1991.

[37] H. C Williams “A p+1 method of factoring", Mathematics of Computation, 39 (1982),

225-234.

[38] M. J. Wiener, “Cryptanalysis of short RSA secret exponents", IEEE Transaction on

Information Theory, 36 (1990), 553-558.

Page 130: 암호키분배 및 사용자 인증 프로토콜 모듈의 시스템 파라메터 … · -3-요약문 1. 제목 암호 키 분배 및 사용자 인증 프로토콜 모듈의 시스템

- 130 -