최종결과보고서 simcard 접속운영체제 (simcardoperatingsystem) ·...

126
-1- 정보통신산업 기술개발사업 ' ' 최종결과보고서 접속 운영 체제 SIM Card (SIM Card Operating System) 2002. 5. 31. 주관연구기관 프롬투정보통신 주 : ( ) 정보통신부

Upload: others

Post on 15-Nov-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 1 -

정보통신산업 기술개발사업' '

최종결과보고서

접속 운영 체제SIM Card

(SIM Card Operating System)

2002. 5. 31.

주관연구기관 프롬투정보통신 주: ( )

정 보 통 신 부

Page 2: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 2 -

제 출 문

정보통신부장관 귀하

본 보고서를 정보통신산업기술개발사업' '

접속 운영 체제 과제의 최종결과보고서로 제출합니다SIM Card .

년 월 일2002 5 31

주관연구기관 : 프롬투정보통신 주( )

연구 책임자 : 권환우

참여 연구원 : 이석기 변상구 민병도, , ,

황영원 유형준 김영국, , ,

전용진 박희섭 오장환, , ,

박인원

Page 3: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 3 -

요 약 문

제 목1.

접속 운영 체제SIM Card

기술개발의 목적 및 중요성2.

ㆍ카드 운영체제가 응용 서비스 프로그램과 독립적으로 개방형 구조로 다기능 지원

가능하며 또한 자유로이 새로운 서비스를 수용할 수 있는 개방형구조를 가진다 서비스의, .

응용 프로그램은 또는 메모리에 저장될 수 있도록 개발되었다EEPROM FLASH .

ㆍ 표준 암호 알고리즘을 지원하며 인증키 생성 암호화 키 생성 공유 비 키IMT-2000 , , ,

데이터 생성 검증 기능 구현함으로서 고도의 보안성을 지원한다, .

ㆍ인증관련 프로토콜 처리 기능 구현 및 관련 암호 알고리즘 구현으로RSA, ECC

환경에 적합하도록 카드 기반 프로토콜 설계 및 구현완료 하였다IMT-2000 .

ㆍ결과적으로 낮은 가격에 높은 비도를 제공할 수 있게 되어 카드 사용자에 이르기까SIM

지 안전한 정보교환을 위한 기반을 제공할 수 있다 암호기술의 인식 확산에 따라 국내 암.

호산업은 각계에서 활성화되고 있다 특히 보안과 관련된 여러 가지 암호화 프로그램이나.

암호 전송 프로그램의 경우 각 국에서 자국의 정보보호를 위하여 수출을 규제하고 있어,

외국 기술에 의존하지 않고 독자적인 연구개발이 반드시 이루어져야 하는 분야이다, .

Page 4: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 4 -

연구개발의 내용 및 개발 결과3.

본 과제에서 개발하고자하는 용 다기능 운영체제 는 기본적으로"IMT-2000 SIM Card "

COS(Chip Operating System), Virtual Machine(VM), API(Application Programming

의 개 계층으로 구성 한다 기본 구조는 그림과 같다Interface) 3 . .

용 다기능 운영체제는 의 형태로 카드 의 에IMT-2000 SIM Card ROM code , IC Chip ROM

프로그램 되거나 필요 시 부분적으로 에 프로그램 될 수 있다EEPROM .

Page 5: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 5 -

본 과제에서는 카드 을 에뮬레이션하기 위한 플랫폼을 개발하고 이 플랫폼의IC Chip H/W

에 저장하여 동작을 확인한다RAM .

가 개발 환경 구축. SIM

본 과제에서는 먼저 을 로 하고 를 장착한 운영체제ARM47 CPU Co-Processor SIM Card

개발을 위한 에뮬레이터를 개발하여 용 다기능 운영체제개발을H/W IMT-2000 SIM Card

위한 플랫폼으로 사용한다 추후 에서 개발하고 있는 차세대 카드 의H/W . ETRI IC , ATMEL

의 등에 용이하게 이식할 수 있도록 한다AT91SC, STM Microelectronics SmartJ .

플랫폼 기능 요구사항o H/W

이하ROM : 32 kbytes

이하EEPROM : 24 kbvtes

이하RAM : 1 kbytes

CPU : ARM7(32-bit)

지원이 가능한 모듈러 연산 장치Co-Processor(ECC )

플랫폼 설계 및 구현o H/W

개발 환경 구축o S/W

용 다기능 운영체제는 와 를IMT-2000 SIM Card Assembly Language C, Java Language

활용하여 구현

Page 6: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 6 -

나 개발.COS

규격o COS

용 다기능 운영체제의 구조와 프로토콜 그리고 명령어는 국제- IMT-2000 SIM Card File ,

표준 규격인 중ISO7816 Part 3,4

및 의 규정 및 의 규정을 준용- ISO 7816-3 4 ISO 14443

비동기 반이중 문자 전송 프로토콜- ISO 7816-3 : (T=0)

기본파일 구조 및 형태의 명령어- ISO 7816-4 : APDU(Application Protocol Data Unit)

구조

용 명령어 를 사용- ARM7 CPU core (Assembly Language)

기능o COS

카드의 각 제어 기능- IC H/W

카드의 운용을 위한 계층적 구조 지원 및 제어 기능- IC File

과의 인터페이스를 유지 관리 기능- VM /

통신기능 의 형태- (APDU(Application Protocol Data Unit) )

암호 알고리즘을 이용한 암호 및 복호화 서명 해쉬 기능- , , ,

카드의 기능- SIM

다 개발JAVA Card VM/API

규격분석 및 설계 의 규격o JAVA Card VM/API : Java Card2.1

o JAVA Card VM

의 준수- Virtual Machine Java Card 2.1 Spec.

은 구성요소를 따름- Java Card Virtual Machine(JCVM) Split Virtual Machine

에서는 및 내용을 해석하여 의 단계별 기능 수행 카드 및- VM API Application COS (ATR,

터미널 인증 사용자 인증 등 이 가능, , Application session )

o JAVA Card API

일종의 로서 사용자 요구사항을 반영- API : S/W Library ,

Page 7: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 7 -

의 규격을 준수- Java Card Virtual Machine

규격을 준수- Runtime Environment

암호 및 전자 서명 기능-

구현o JAVA Card VM/API

플랫폼에서 단위시험o H/W

통합시험o

라 시큐리티 특징의 구현.

내 데이터 억세스 제어 구현o SIM

서비스 제공자 억세스 구현o

에 의해 수행되는 정보보호 기능의 구현o SIM

인증 및 암호키 생성 절차 구현o

알고리즘 및 처리기능 구현o

사용자 인증 정보보호 서비스를 수행하기 위하여 인증센타와의 연동기능 필요o ( )

기대 효과4.

에서의 가입자 인증 등의 기능 제공o IMT-2000

기존의 스마트카드를 이용하여 받을 수 있는 다양한 서비스를 이동 환경에서 제공받을o

수 있음

신분 확인 서비스-

네트워크 보안 암호화 서명 및 인증 부인방지- ( , , )

을 이용한 안전한 전자 상거래 서비스- IMT-2000

을 이용한 안전한 사이버 증권 거래- IMT-2000

응용 예o

금융 및 증권 분야 전자 화폐 전자 통장 전자 증권 홈뱅킹 및 각종 전자신분증- : , , , ATM,

서류에 응용

Page 8: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 8 -

유통 및 분야 신용 카드 각종 회원증 상품권 전자전표 물류 관- Credit : , ATM, POS, , , ,

리 분야에 응용

교통 분야 면허증 정기권 주유권 유료 도로 통행권 주차권 등의 분야에 응용- : , , , ,

의료 분야 건강 진단 카드 의료 정보 기록 및 관리 의료 보험증 증명서 자동발급 특- : ( ), , ,

수실 및 데이터베이스 접근 제어 등의 분야에 응용

신분증-

ㆍ기업에서의 신분 증명 및 근태 관리 입, ㆍ퇴실 관리 사내 예금 관리 인사정보 관리, , ,

사내 매점 식당 자동판매기 사용 그리고 각종 정보 검색분야에 응용, , .

ㆍ공장에서의 종업원 증 출입 관리 공장 자동화 로봇에 대한 동작 제어 공정 관리 카드, , , ,

동작 카드 유지 및 보수 관리 카드 등의 분야에 응용,

가정 홈뱅킹 택배 결제 전자 메일 전기 가스 수도 등의 관리- : , , , TV, Videotex, , , ,

보안성 강화 수단 등의 분야에 응용

통신 분야 휴대폰 가입자 식별 및 과금 전자 메일 관리 등의 분야에 응용- : ,

자동차 분야 정비 이력 관리- :

회원증 분야 골프상 레포츠 시설 이용권- : ,

더불어 개인용 와 정보보호처리모듈을 이용하여 군사적인 기 이나 중요 정보를 신속하PC

고 안전하게 전달할 수 있어서 추가적인 노력을 할 필요 없이 업무처리에 소요되는 시간과

비용을 절감할 수 있다.

Page 9: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 9 -

SUMMARY

A SIM Card is used in many industrial fields such as Personal ID, Banking, Credit

card, Transit fare and Network security. However, Each of them depended on the

unique operating system which could not be talked with other system. Basically SIM

card operating system (hereafter COS) was designed by the open architecture that

could be supported multi services. COS have consisted of SIM COS S/W, Security

Algorithm, Java VM/API and H/W platform. The COS can apply to all of applications

for SIM Card. This point is different from the other operating system that use

only one application and cannot change service program. The COS can supports the

multi services, data encryption and service update. SIM COS has many kinds of

applications based on IMT-2000. First of all, it can be integrated multi service such

as Banking, E-commerce, Transit fare, Personal identification and network surfing

through the IMT-2000 by one card. We will be making the COS market with smart

card manufacturer before long.

Page 10: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 10 -

CONTENTS

Chapter 1 Introduction

Chapter 2 Need for Image Encryption System Development

Section 1 Overview of Technology

Section 2 User/Manager Requirement

Section 3 Current Status of Technology

Chapter 3 Design and Implementation

Section 1 Introduction for Java Card

Section 2 S/W, H/W Development

Chapter 4 Results of Technological Development

Section 1 Results

Section 2 Utilization of Development Products

Section 3 Commereializing Plan and Business Target

Chapter 5 Conclusions

References

Page 11: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 11 -

목 차

제 장 서 론1

제 장 기술개발의 필요성2

제 절 기술개발의 개요1

제 절 사용자 관리자 요구사항2 /

제 절 국내외 기술개발 현황3

제 장 설계 및 구현3

제 절 개요1 Java Card Platform

제 절 소프트웨어 하드웨어 개발2 ,

제 장 연구개발 결과4

제 절 연구 결과1

제 절 개발 제품 활용도2

제 절 사업화 계획 및 매출목표3

제 장 결 론5

참고문헌

Page 12: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 12 -

그림목차( )

그림 알고리즘 구조도( 2-1) DES

그림 함수( 2-2) f

그림 분리된 의 구성( 3-1) JCVM

그림 의 구조( 3-2) Java Card 2.l embedded smart card

그림 내장 의 하드웨어 구조( 3-3) Java Card embedded smart card

그림 의 인터프리터 및 주변 루틴( 3-4) JCVM

그림 의 동작 구조( 3-5) JCVM

그림 및 의 할당 예( 3-6) Package Applet AID

그림 자바 카드 내부 구조( 3-7)

그림 암호화시 인터페이스( 3-8) ECC API-VM-OS

그림 복호화시 인터페이스( 3-9) ECC APl-VM-OS

그림 카드내의 모듈 및 인터페이스( 3-10) SIM RSA S/W

그림 카드내의 모듈 및 인터페이스( 3-11) SIM ECC S/W

그림 카드내의 모듈 및 인터페이스( 3-12) SIM ECDSA S/W

그림 비트 곱셈 연산( 3-13) 32

그림 용 곱셈기 모듈 블럭도( 3-14) RSA

그림 곱셈기 블럭도( 3-15) Montgomery

그림 지수승 연산기 블럭도( 3-10) Montgomery

그림 곱셈 연산 순서( 3-17) Polynomial

그림 연산( 3-18) Reduction

그림 타원 곡선 암호 모듈 곱셈 블럭( 3-19) Polynomial Basis

그림 타원 곡선 암호 모듈 역수 연산 블럭( 3-20) Polynomial Basis

Page 13: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 13 -

표목차( )

표 다기능 카드 기능 요구 사항< 2-1> SIM

표 스마트카드 주요 운영 체계< 2-2>

표 대칭 암호화 알고리즘< 2-3>

표 공개키 암호 알고리즘< 2-4>

표 해쉬 함수< 2-5>

표 암복화 수행 시간 측정< 3-1> RSA

표 서명 및 검증 수행 시간 측정< 3-2> ECDSA

Page 14: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 14 -

제 장 서 론1

제 절 기술개발 배경 및 목적1

정보보호 산업의 성공은 회사들이 몇 년에 걸쳐 페이스 투 페이스로 사업을 수행했던 신뢰

와 사업을 쉽게 처리할 수 있도록 도와주는 기술에 의존하고 있다 보안과 스마트카드의 휴.

대성은 안전 신뢰 편리함 그리고 안전한 전자 산업을 보장하고 새로운 응용들을 가능하게, , ,

하는 효율적인 방법을 제공한다.

스마트카드나 신용카드는 실리콘이나 플라스틱에 포함된 전자 회로를 통하여 정보를 저장하

고 처리한다 스마트카드는 간편하고 부정조작이 어려운 컴퓨터이다 마그네틱 스트라이프. .

카드 와는 달리 스마트카드는 정보를 처리할 수 있는 파워와 정보(magnetSIM stripe card)

를 모두 가지고 있다 그 결과 처리 시간에 데이터베이스를 연결하기 위한 접근을 요구하. ,

지 않는다 스마트카드의 중요성은 그것이 제공하는 이익의 결과이다 물론 첫 번째 이익은. .

내장된 계산 파워이다 보안과 이동성 그리고 사용의 쉬움은 스마트카드의 다른 주요한 장. , ,

점이다.

스마트카드가 지원하는 프로세서 메모리 그리고 는 플라스틱 카드에 포함된 하나의, , I/O

안에 패키지화되어 있다 스마트카드는 잠재적으로 취약한 외부 자원에 대한 의존을 필SIM .

요로 하지 않기 때문에 공격에 대한 저항력이 강하다 스마트카드에서 정보를 탐지하는 것.

은 카드의 물리적인 소유 스마트카드 하드웨어와 소프트웨어에 대한 초기 지식 그리고 추, ,

가적인 장비에 대한 지식을 요구한다 스마트카드에서의 보안 특징들은 암호 기능들에 의해.

더욱 강화된다 카드 안에 저장된 데이터는 물리적 메모리의 프라이버시를 보호하기 위해.

암호화 될 수 있다 그리고 카드와 외부의 교환 데이터는 안전을 위해 서명되고 암호화될.

수 있다.

Page 15: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 15 -

암호 알고리즘은 년에 그리고 에 의해 제안된 이후 현RSA 1978 Rivest, Shamir, Adleman ,

재 가장 널리 사용되어지고 있는 공개키 암호 알고리즘 중 하나이다 는 두개의 큰 소. RSA

수를 곱하기는 쉽지만 역으로 큰 수를 소인수 분해하기는 어렵다는 사실을 안전성의 근간,

으로 하고 있다 이러한 암호 알고리즘은 대칭키 암호시스템에 비해 높은 안정성을 제. RSA

공하는 암호화와 전자서명을 구현할 수 있다는 장점이 있지만 기본적으로 비트 이상, 512

되는 큰 수를 취급하기 위해 많은 연산을 요구하므로 구현 속도가 느리다는 단점을 갖고 있

다 기본적으로 암호알고리즘을 구현하기 위해서는 모듈러 연산을 근간으로 하는 덧셈. RSA

과 뺄셈 곱셈과 나눗셈 그리고 모듈러 지수승이 반복적으로 사용되어 지며 모듈러 지수승, ,

의 연산에 효율적인 모듈러 곱셈기가 필요하다 따라서 보다 효율적인 암호 알고리즘. RSA

의 구현을 위해서는 구현의 기본요소인 모듈러 연산의 분석이 필요하다.

또한 타원곡선암호시스템 은 어떤 를 사용하는가에 상관없이 타원곡선의 한 점(ECC) basis P

의 배인 를 어떻게 빠른 시간 안에 구현하느냐가 중요한 문제이다 여기서 는 의n nP . nP P n

번 덧셈으로 정의될 수 있으므로 결국 타원곡선 연산은 타원곡선 상의 두 점의 덧셈연산의

조합으로 정의할 수 있다 여기서 두 점의 덧셈연산은 일반직인 실수체의 연산이 아닌 수학.

적으로 완전한 구조의 유한체 상의 연산이 되도록 타원곡선의 덧셈연산은 새로이 정의하게

되며 이러한 타원곡선의 덧셈연산은 바탕체 원소의 덧셈 연산 곱셈연산 역승산 등의 연산, , ,

으로 구성된다 이중 특히 곱셈 연산과 역승산은 타원곡선 덧셈연산의 대부분을 차지하면서.

많은 연산을 필요로 하므로 고속의 타원곡선 암호시스템 구현을 위해서는 전용의 하드웨어

구현이 필요하다.

Page 16: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 16 -

본 과제에서 개발하고자하는 기술은 카드내 특수화 된 가상머신을 탐재하JAVA IC JAVA

고 카드 에 기반을 두고 있으며 애플랫을 실행하고 실행시간 검증과 메모리 보JAVA API ,

안성을 제공한다 또한 환경에서 다양한 응용 서비스를 수용할 수 있는 개방형. IMT-2000

구조와 고성능 보안성을 갖는 용 개발을 주요 내, SIM Card COS(Card Operating System)

용으로 하였다.

제 절 보고서의 구성2

본 보고서는 용 기술 개발결과에 대해서 기술한다 보고서의 구성은 제 장SIM Card COS . 2

은 기술 개발 배경 목적 및 최적화 요구 사항 및 암호 알고리즘에 대하여 설명하고 제 장, , 3

에서는 각 암호 알고리즘에 대한 설계 및 구현 내용을 설명한다 제 장은 개발 프로그램의. 4

연구 및 시험 결과 등에 대하여 상세히 기술하며 제 장은 결론부이다 그리고 부록 에서, 5 . A

는 본 문서에 사용된 용어에 대한 설명이며 부록 는 약어이다, B .

Page 17: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 17 -

제 장 기술개발의 필요성2

제 절 기술개발의 개요1

카드 개요1. SIM

서비스의 궁극적인 목적은 통신서비스에 이동성 이라는 기능을 결합하여 언제 어(Mobility) ,

디에서나 통신이 가능하도록 하는 데에 있다 그러나 이동성은 사업자의 사업지역에 의하여.

제약을 받게 된다 즉 특정한 사업자에 가입한 이용자는 해당 사업자의 서비스 제공영역을. ,

벗어나게 되면 서비스의 이용에 제한을 받게 된다 이러한 경우에는 이동통신, IMT-2000 .

서비스가 완전한 이동성을 제공하지 못하게 되어 가입자의 불편으로 귀결된다 현재 유럽의.

에서는 카드를 이용하여 로밍 서비스를 비롯한 스마트카드 기반의 부가 서비스GSM SIM

를 제공하고 있으며 에서도 개인의 이동성을 지원하기 위해 카드의 사용을, IMT2000 SIM

제안하고 있다.

에서 카드 적용2. GSM SIM

은GSM MS(Mobile Station), BSS(Base Station Subsystem), NSS(Network & Switching

으로 구성된다 는 단말기와Subsystem), OSS(Operation Subsystem) . MS SIM(Subscriber

로 구성되며 에는 가입자 정보가 저장되어 있다 을 이용하면 자신Identity Module) SIM . SIM

의 단말기가 아니더라도 통화가 가능하게 된다.

을 시킨 은 으로 불리기도 하며 대역에서 운용된다GSM Upbanded PCN DCS1800 1800 .㎒

기본적으로는 방식에 기초하고 있으며 과 프로토콜은 같지만 운용 주파수GSM DCS1800

대역만 다른 도 있다 도 을 사용하므로 이론적으로는 과 로밍DCS1900 . DCS1800 SIM GSM

이 가능하다.

Page 18: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 18 -

단말기는 크게 두 부분으로 구분한다 한 부분은 하드웨어와 인터페이스GSM . IMT-2000

전용의 소프트웨어이고 다른 한 부분은 으로서 가입자에 관한 정보를 보유하고 있는 부SIM

분이다 은 신용카드 크기의 형태 또는 소형 칩 형태의 은 휴. SIM smart card plug-in SIM

대 단말기의 디자인에서의 제약을 없애기 위하여 도입되었다 은 일종의 열쇠와 같은. SIM

기능을 갖는다 일단 단말기에서 이 분리되면 가입자의 과금에 영향을 주지 않는 비상. SIM

전화 등 외에는 사용할 수 없게 된다.

의 이용은 여러 가지 편리한 점을 제공하고 있다 예를 들어 단말기를 수리할 경우 가SIM . ,

입자는 단순히 수리하는 단말기의 을 다른 단말기에 삽입하여 이용할 수 있다 카폰이SIM .

장착된 차량을 렌트하는 경우에도 자신의 을 삽입하여 해당 단말기를 이용하여도 과금SIM

이 자신에게 직접 이루어지므로 편리하다 이외에도 의 용도는 다양하다 은 가입자. SIM . SIM

의 서비스제공에 관련된 각종 정보의 보관소이기도 하다 은. SIM PIN(Personal ldentity

에 의하여 보호된다 은 또한 축약된 다이얼링 번호정보와 그와 관련된 통화자Number) . SIM

혹은 통화의 형태 음성 팩스 등 를 저장할 수도 있다 그리고 짧은 메시지의 기록도 가능( , ) .

하다 앞으로 기대되는 기능 중의 하나는 다수의 네트워크를 이용 가능할 경우 국경을 넘. (

어서 이용할 경우 등 이용자가 선호하는 네트워크를 기록하여 자동적으로 해당 네트워크를)

선택하도록 제시한다 그리고 리얼 타임에 의한 과금정보 제공 서비스가 이루어지며 이러한.

정보를 저장하여 이용자에게 과금 정보를 제공할 수도 있다.

특성 및 기능3. SIM Card

의 정보보호라는 특정 용도를 염두에 두고 스마트카드 특성 및 기술IMT 2000 IMT-2000

적 요소를 분석하여 정보보호 시스템에 적합한 스마트카드의 선택을 위한 고려IMT-2000

사항을 정리한다.

Page 19: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 19 -

망을 이용하여 사용자의 이동성을 보장하는 접속은 이미 현실화되었IMT-2000 IMT-2000

으며 이에 따라 을 이용하는 다양한 응용이 등장할 것으로 예상된다 그 중에서IMT-2000 .

도 계좌이체 등의 금융거래 주식매매 물품주문과 같은 전자상거래 교통편 예약 등은 사용, , ,

자 인증 및 전송 정보의 보안 유지 주문 및 수신의 부인 방지 등의 정보보호 특성을 요구,

할 것은 자명한 사실이다 스마트카드는 독립된 하나의 매체임과 동시에 전체적. IMT-2000

인 정보보호 시스템 차원에서 볼 때 하나의 서브시스템으로 고려될 수 있다 즉IMT-2000 .

스마트카드는 무선 단말기에 삽입되어 동작이 시작되며 기능적으로는 구현된 프로토콜과의,

연계성 공개키 기반 구조에 대한 정책적 지원 무선 단말기와의 인터페이스 제공 암호화, , ,

기능의 처리 및 중요 데이터의 저장을 수행한다 스마트카드의 기능 요구사항은. IMT-2000

표 과 같이 요약할 수 있다< 2-1> .

기능 요구사항

국제규격

스마트카드의 국제규격 준수(e.g. ISO/IEC 7816)

보안관련 국제규격 준수(e.g. f8, f9, KASUMI, PKCS)

관련 국제규격 준수SIM/UIM (e.g. 3GPP TSG-T3)

보안기능

부적절한 사용자의 스마트카드 비 정보에 대한 접근 통제

에서 정의하는 암호 알고리즘 실행기능3GPP TSG-T3

암호화 및 인증을 위한 키 저장 및 생성기능

보안정보 메시지에 대한 해석과 응답

공개키 인증서의 저장 검색 및 검증 기능,

공개키 기반구조 에 대한 정책적 지원PKI( )

표 다기능 카드 기능요구사항< 2-1> SIM

Page 20: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 20 -

카드 요구 특성 및 기능4. SIM

이와 같은 기능 요구사항을 만족하는 스마트카드는 사용자의 편리한 휴대와 안IMT-2000

전한 접속을 보장할 수 있다 즉 무선 단말기를 휴대하는 단말기 관점의 이동성IMT-2000 .

뿐만 아니라 언제 어디서나 호환 가능한 시스템을 사용할 수 있는 사용자 중심의 이동성을

제공하며 접속된 환경에 적합한 보안성을 제공할 수 있는 장점을 지니고 있다, IMT-2000 .

이러한 장점을 유지하며 위의 요구사항을 만족하는 스마트카드 용 다IMT-2000 (IMT-2000

기능 카드 에 구현되어질 특성 및 기능요구사항을 예측 기술한다SIM ) .

인터페이스 방식 접촉식o :

운용체제o : Java API

통신 프로토콜o : T = 0, T = 1

전압공급o : 2.7V 5.5V∼

o Microcontroller :32 bit CPU

이상o ROM : 64 KB

이상o EEPROM : 64 KB

o RAM :3 KB

비트 이상 모듈러 연산용 엔진o Co-processor : ECC 160 , DSA, DES crypto

이상o Internal Clock : 15 ㎒

Page 21: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 21 -

최근 발표되는 카드의 구성 예5. IC H/W

사 제품o AT91SC - ATMEL

- 32bit ARM Core

- SRAM - 3.5KB, ROM - 32KB, EEPROM - 32KB

가능- Triple DES, RSA encryption/decryption

의 제품o SmartJ - STMicroelectronics

- 32bit RISC processing

- SRAM - 4KB, ROM - 96KB, EEPROM - 64KB

의 최적의 실행환경 제공- JavaCard 2.1byte code

- 15sec for DES < 500ms for 1024bit RSA

카드 운영체체 개방형 스마트 카드 플랫폼6. SIM :

스마트카드가 사용하게 되는 카드 운영체제 는IMT-2000 (COS : Card Operating System)

카드의 기능과 표준의 반영 수준을 결정하는 요인으로 작용할 수 있다 컴퓨터와는 다르게.

카드 운영체제는 생산 과정에서 에 장착되고 업그레이드는 불가능하다 따라서 어떠한ROM , .

경우에 있어서 카드 공급업체들은 특정한 카드의 기능을 지원하는 성능을 지닌 카드 운영체

제의 장착을 요청 받기도 한다.

전자서명은 알고리즘과 같은 공개키 및 비 키의 암호화 연산을 지원하는 카드를- RSA

필요로 한다 즉 강력한 암호화 기능을 위한 의 장착 시 이를 제어하기 위한. co-processor

카드 운영체제가 요구된다.

전자지갑 직불카드 신용카드 등의 응용은 와 같- , , EMV(Europay, MasterCard, and Visa)

은 전자지불 표준을 만족시키는 카드 운영체제를 요구한다.

Page 22: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 22 -

대형컴퓨터 제품들과 마찬가지로 스마트카드 운영체제는 소프트웨어 개발업체들이 코드를

실행시키고 실리콘 하드웨어 기능을 활성화시킬 수 있는 공통의 플랫폼을 제공한다, .

전통적인 스마트카드의 운영체제는 고유의 파일 구조를 가진 각각의 어플리케이션으로 카드

내의 동일한 수행 코드를 공유한다 어플리케이션간 을 제공하지 않으며 따라서. isolation ,

모든 어플리케이션이 하나의 단일 수행 프로그램을 공유한다 이에 따라 보안 문제가 발생.

하게 된다.

운영체제 벤더 특징 주 응용분야

전용(proprietary)

각 카드 벤더일반적 응용분야보안 어플리케이션의 솔루션

의료Pay TV, ID

Java cardSun

Microsystems

년 가장 많이 출하된 다기1999능 플랫폼, GSM SIM(Phase에 주로 이용2+) , Visa Cash

전자지갑 등에도 응용

금융GSM SIM, ,네트워크 보안

MULTOSMAOSCOConsortium

의Amex Blue, MYCAL, UKIS프랑스 와EMV, Giesecke

의 솔루션DEvrient CEPS ,의 금융 솔루mobEcom " SIM"

금융GSM SIM, ,네트워크 보안

WFSC Microsoft

한정된 시장점유율 카드 벤더,및 실리콘 벤더들의 지지, MS의 잠재력과 응용프로그램의 호환성 의 의료카드, U.S. Humana에 이용됨

네트워크GSM SIM,보안

표 스마트카드 주요 운영체계< 2-2>

Page 23: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 23 -

전통적으로 카드의 제조와 카드 소프트웨어의 개발은 칩 카드 벤더들이 담당해SIM SIM

왔는데 자바 카드 와 같은 비전, (Java Card), WFSC(Windows for Smart Card), MULTOS

용 칩 카드 운영 시스템이 등장하면서 모바일 오퍼레이터들이 카드 벤더와(nonproprietary)

관계없이 독자적으로 카드 어플리케이션을 개발할 수 있게 되었다 지금까지는 어떠한SIM .

어플리케이션 프로그래밍 인터페이스 또는 인터프리터도 가지고 있지 않은 전용

들이 카드의 시장을 지배해 왔지만 이러한 동향은 변하고 있다(proprietary) OS SIM .

개방형 플랫폼은 카드가 발행된 후 주어진 카드에 추가될 새로운 어플리케이션 기능을 추가

할 수 있도록 허용하므로 표준 언어와 개방형 를 사용하는 새로운 어플리케이션의 개발API

주기를 단축시키는 결과를 가져온다 어플리케이션은 칩으로부터 독립적이므로 새로운 칩.

기술을 사용하기가 용이하다 다중 어플리케이션과 시스템간 격리 분리가 이루어 질 것이다. / .

전용과는 반대되는 개념인 개방형 스마트카드 플랫폼에는 MULTOS, Java API, Microsoft

스마트카드 등과 같은 세 가지의 솔루션이 있다Windows .

Page 24: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 24 -

개발하고자 하는 구성7. SIM COS

기술은 카드 내 특수화된 가상머신을 탑재하고 카드 에 기반을JAVA IC JAVA JAVA API

두고 있으며 애플릿을 실행하고 실행시간 검증과 메모리 보안성을 제공하고 필요할 때 애, ,

플릿을 업로드 다운로드 할 수 있다/ .

Page 25: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 25 -

제 절 사용자 관리자 요구사항2 /

암호화 기본적인 특징1.

카드를 안전하게 보호하기 위한 많은 방법들이 제시되고 있다 암호화는 카드용 응SIM . SIM

용 프로그래머에게 있어서 가장 어렵고 힘든 도구일 수 있다 그러나 카드 암호 를, . SIM API

사용함으로써 더욱 쉽고 편리하게 이러한 작업들을 수행할 수 있을 것이다 암호는 보안을.

위해 다음과 같이 세 가지 기본적인 특징을 반드시 제공하여야 한다.

기 성 비인가된 사람들이 데이터를 볼 수 없도록 보장한다(Confidentiality) : .●

무결성 데이터가 불법적으로 수정되지 않도록 보장한다(Integrity) : .●

인증 상호 통신하는 당사자간 서로 믿을 수 있는 개체임을 보장한(AuthentSIMation) :●

다.

가 기 성.

대부분의 사람들은 자신의 메일을 다른 사람이 읽지 않기를 원하며 이러한 이유 때문에 우

리는 엽서 대신에 편지봉투가 있는 편지지를 사용한다 인터넷상에 있는 모든 대부분의 정.

보는 엽서와 동일하게 전달된다 당신을 은 하게 감시하는 사람이 없어도 전자메일이 잘. ,

못 전달될 수 있다 만일 수취인 주소를 잘못 입력한다면 메일은 다른 시스템 관리자에게. ,

보내질 수 있다 당신이 비 로 생각하는 정보가 인터넷상에서 수십만의 사람들에게 보여진.

다는 것은 놀랍게도 매우 쉬운 일이다 심지어 당신의 컴퓨터 하드디스크에 있는 데이터는. ,

당신의 동료나 사무실을 청소하는 사람 또는 컴퓨터에 물리적으로 접근할 수 있는 어떠한, ,

사람에게든지 노출되어 있다.

Page 26: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 26 -

만약 다른 직장을 구하려고 현재 근무하는 회사의 컴퓨터에 이력서 복사본을 남겨 놓았다

면 조금은 불안할 것이다 왜냐하면 다른 사람이 그것을 발견할 수 있기 때문이다, . , .

정보를 보호하는 일반적인 방법은 송신 측에서 정보를 암호화하고 수신 측에서 복호화 하,

는 것이다 암호화는 평문이라 불리는 데이터를 입력으로 받아서 암호문으로 만들기 위해.

수학적으로 변환시키는 과정이다 복호화는 암호문을 받아서 그것을 다시 평문으로 변환시.

키는 과정이다 이러한 변환을 수행하는 수학적 알고리즘을 암호 라고 부른다 하드. (cipher) .

디스크상의 데이터를 보호하는 특징을 반드시 제공하여야 한다 이 경우에는 암호문을 복호.

화해야 한다.

나 무결성.

인터넷상에서 파일을 다운로드 할 때 사용자가 받은 파일이 확실히 원하는 파일이기를 바,

랄 것이다 즉 파일의 무결성을 확신하고 싶을 것이다 많은 사람들은 서버로부터 파일을. , .

다운로드 할 때 의식적이든 무의식적이든 다음과 같은 가정을 하게 된다, .

파일이 악의적인 파일이 아니다 파일이 악의적인 프로그램에 의해 서버의 관리자가 알지.

못하는 파일로 대체되지 않았다 당신과 서버사이에 다른 컴퓨터는 없다 당신이 원하는 파. .

일이 아닌 다른 파일이 보내지거나 당신에게 보내진 파일은 변조되지 않았다 이러한 유형, .

의 공격을 공격이라고 한다mann-in-the-middle .

이것은 가정의 일부분이며 이 가정은 실행 파일만을 예로 들었지만 다운로드 되는 어떠한, ,

유형의 파일도 위험 할 수 있다 당신은 다운로드 된 파일이 당신이 생각했던 것이기를 바.

랄 것이다 메시지 다이제스트는 데이터 무결성을 검증하기 위해서 사용될 수 있다 메시지. .

다이제스트는 입력된 데이터 집합으로부터 계산된 특별한 수이다.

Page 27: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 27 -

예를 들어 는 기본적으로 연관된 키, MAC(Message AuthentSIMation Code) (associated

를 가진 메시지 다이제스트이다 입력 데이터와 키를 기반으로 짧은 값을 생성한다 이key) . .

론상으로 동일한 키를 가진 사람만이 동일한 입력데이터로부터 동일한 를 만들어낼 수MCA

있다,

다 인증.

사용자는 자신이 대화하기를 원하는 사람이 정말로 그 사람인지를 확인하기를 원할 수 있

다 신원을 증명하는 과정을 인증이라고 부른다. .

예를 들면 전화 통화의 경우에는 자신의 이름을 말함으로써 신분을 증명한다 목소리는 전, .

화를 받는 상대방에게 당신임을 인증시킨다 은행 단말기를 이용할 때 은행카드가 신분을. ,

증명하고 비 번호가 인증을 한다, .

대부분의 컴퓨터 시스템은 신분확인과 인증을 위해서 사용자 와 비 번호를 사용한다 사ID .

용자 를 이용해서 자신임을 증명하고 비 번호를 가지고 신분을 인증 받는다 공개키 암ID , .

호화는 인증을 위해 사용될 수 있다 가 의 파일을 다운로드 할 때 는 의 공. "A" "B" , "B" "A"

개키를 이용하어 파일을 복호화 한다 는 이 파일이 로부터 온 것으로 확신할 수 있. "B" "A"

다 왜냐하면 의 개인키 만이 이 파일을 암호화 할 수 있었기 때문이다 공개기 암호화. , "A" .

는 계산하는데 시간이 많이 소비된다 모든 대화를 위해 비대칭암호화를 사용하는 것은 힘.

들다 일반적으로 비대칭암호화는 대화에 참여하는 사람들이 인증을 위해 사용된다 대화. .

그 자체는 세션 키라고 불리는 일회용 키를 이용하여 대칭암호화로 암호화된다 현재의 문.

제는 다른 사람들이 모르게 세션 키를 교환하는데 있다.

Page 28: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 28 -

대칭 암호 알고리즘2.

블록 암호화 알고리즘은 입력되는 메시지를 일정한 길이의 블록 단위로 암호화하는 방법으

로 를 비롯한 대부분의 대칭키 암호화 알고리즘은 블록 암호화 알고리즘 방법을 사용, DES

한다 블록 암호화 알고리즘은 일반적으로 블록사이를 유기적으로 연결시켜주는 동작 모드.

와 입력 메시지를 블록크기의 정수 배로 만들어주는 패딩기법(Operation mode) (Padding

과 함께 사용된다Scheme) .

블록 암호화 알고리즘은 키 외에도 동작 모드 에 사용되어지는(Operation mode) IV(initial

가 파라메터로 사용되어지기 때문에 키를 해독한다고 하더라도 를 알지 못하면vector) , , IV

암호문을 해독할 수 없다는 장점이 있다 다음의 표 은 대칭 암호화 알고리즘들 중에. < 2-3>

서 블록암호화 알고리즘을 보여준다.

표 대칭 암호화 알고리즘 블록 암호화 알고리즘< 2-3> ( )

대칭 암호화 알고리즘(SymmetrSIM cipher)

블록 암호화 알고리즘(Block Cipher)

알고리즘 특징

DES 키를 사용하는 대칭키 암호화 알고리즘56bit

SEED 키를 사용하는 대칭키 암호화 알고리즘128bit

Page 29: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 29 -

가. DES(Data Encryption Standard)

는 비트의 입출력 크기를 가지며 비트의 키 데이터와 비트의 패리티 비트로 구DES 64 , 56 8

성된 비트의 키 크기를 가진다 입력된 키로부터 개의 비트 라운드키가 생성되어 사64 . 16 48

용된다 입력된 비트 키 데이터는 선택치환 을 통해 비트에서 패리티 검사용 비. 64 (PC1) 64 8

트가 제거된 나머지 비트를 이등분하여 비트의 와 로 된다 라운드 중에서56 28 C D . 16 1, 2,

라운드에서는 비트 나머지 라운드에서는 비트씩 좌측으로 순환한 후 라운드 선9, 16 1 , 2

택치환 을 수행하며 전체 라운드를 반복하어 수행하면 비트의 라운드키가 생성된(PC2) 16 48

다 암호화 및 복호화 알고리즘은 전체 라운드로 구성되며 각 라운드에서는 라 불. 16 S-Box

리는 비트 매핑이 사용된다 암호화 과정에서 입력된 비트 평문은 비트의64 . 64 32 LO와 RO

로 나누어져서 다음과 같은 라운드 연산을 수행한다16 .

여기서, 1 ≤ i 이며16 ,≤ E는 비트 데이터를 비트로 확장 하는 함수32 48 (Expansion) , Ki는

생성된 서브키, S는 그리고S-box, P는 치환 을 나타내는 함수이다 첫 번째(Permutation) .

라운드에서 초기치환 이 이루어지고 마지막 라운드에서는(Initial Permutation, IP) , L16과

R16을 바꾼 후 IP의 역치환 IP-1을 수행한다 복호화 과정은 암호화 과정과 같은 키와 알고.

리즘을 사용하지만 내부적으로 사용되는 라운드키의 순서가 반대이다 그림 과 그. [ 2-1] 「

림 는 각각 전체 알고리즘도와 함수2-2] f를 나타낸다.

Page 30: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 30 -

그림 알고리즘 구조도[ 2-1] DES

Page 31: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 31 -

그림 함수[ 2-2] f

공개키 비대칭 암호 알고리즘3. ( )

대칭 암호화의 단점은 공개키 암호화라고도 불리는 비대칭 암호화에 의해 해결될 수 있다.

이 암호화는 자유롭게 공개된 공개키와 비 스럽게 유지되어야 하는 개인키로 구성된다 이.

키들은 항상 쌍으로 생성된다 공개키는 공개되어 진다. .

Page 32: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 32 -

어떠한 사람도 개인키 없이는 당신의 프라이버시를 침해하거나 흉내낼 수 없다 공개키를, .

이용하여 암호화된 데이터는 개인키를 이용하여 복호화 될 수 있다 다른 키로는 데이터를.

복호화 할 수 없다 아직 짝지어진 공개키를 이용하여 암호화된 데이터만이 개인키로 복호.

화 될 수 있다 어떤 경우에 있어서는 이러한 과정의 역도 성립할 수 있다 즉 비 키로 암. , .

호화된 데이터가 공개키로 복호화 될 수 있다.

표 공개키 암호 알고리즘< 2-4>

공개키 암호 알고리즘

알고리즘 특 징

RSA큰 수의 모듈러 지수승 연산을 이용한 공개키 암호 알고리즘전자 서명 알고리즘으로 사용할 수 있음( )

DSA 이산대수 기반의 메시지 부가형 전자 서명 알고리즘

KCDSA 이산대수 기반의 메시지 부가형 한국형 전자 서명 알고리즘

ECC_ElGamal

타원곡선 위에서 이산대수를 기반으로 한 암호화 알고리즘

ECDSA타원곡선 위에서 이산대수를 기반으로 한 메시지 부가형 전자 서명 알고리즘

ECKCDSA타원곡선 위에서 이산대수를 기반으로 한 메시지 부가형 한국형 전자 서명 알고리즘

가. RSA

암호알고리즘의 안전성은 두 개의 큰 소수를 곱하기는 쉬워도 곱해진 수로부터 역으RSA ,

로 두개의 소수를 추출하기는 어렵다는 소인수분해의 어려움을 기반으로 하고 있으며 다음

과 같이 키생성 암호화 및 복호화로 구분할 수 있다, .

Page 33: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 33 -

키생성(1)

키 생성 알고리즘을 보면 다음과 같은 순서로 수행된다.

두 개의 서로 다른 큰 소수(prime)① p와 q를 하게 생성한다random .

② n = pㆍq와 φ= (p - 1)ㆍ(q 을 계산한다- 1) .

gcd(③ e,φ 인 정수) = 1 e(1<e<φ 를 임의로 계산한다) .

알고리즘을 이용하여Extended Euclidean④ eㆍd = 1(mod φ 인 유일한 정수) d(1<d<φ)

를 계산한다.

계산된⑤ n, e는 공개하고, d는 비 키로 보관한다.

메시지 암호화(2)

가 메시지를 에게 보내려는 경우 암호화 과정은 다음과 같다B A .

는 의 공개키B A① n과 e를 얻는다.

전송하려는 메시지② m을 [0, n 사이의 정수로 표현한다-1] .

암호문③ c = memod n을 계산한다.

생성된 암호문④ c를 에게 전송한다A .

메시지 복호화(3)

가 보낸 메시지를 는 다음과 같은 복호화 과정으로 확인한다B A .

에서 전송된 메시지를 비 키B① d를 이용하여 m = cdmod n을 계산한다.

Page 34: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 34 -

나 모듈러 연산. RSA

전술한 바와 같이 암호 알고리즘은 모듈러 연산이 주를 이루며 암호화를 위해서는 반RSA ,

복적인 지수승 연산을 수행하게 된다 그러나 는 키의 길이가 늘어날수록 의. RSA bandwidth

한계 데이터의 처리 및 저장 소비 전력의 증가 등과 같은 문제점이 발생한다 이러한 문제, , .

점을 해결하기 위해 모듈러 연산을 더욱 효율적으로 수행하기 위한 많은 알고리즘들이 개발

되고 있으며 이러한 알고리즘을 어떻게 구현하느냐에 따라 시스템의 성능도 달라지게 된,

다 본 절에서는 이러한 모듈러 연산의 개념 및 모듈러 곱셈 알고리즘 중 몽고메리모듈러.

곱셈 알고리즘을 분석하였다.

모듈러 연산(1)

만일 z가 정수일 때, zmod m을 모듈러스(modulus) m대한 모듈러 리덕션(modular

이라 하며reduction) , zmod m는 z가 m에 의해 나누어진 후의 [0, m 에 있는 정수의- 1]

나머지를 의미한다 이를 수식으로 표현하면 다음과 같이 나타낼 수 있다. .

고전적인 모듈러 곱셈 알고리즘은 보통의 다정도 정(classSIMal modular multiplSIMation)

수 의 곱셈에 위에서 본 모듈러 리덕션을 추가적으로 사용하는데 리덕(multiple-precision) ,

션을 취하는 가장 직접적인 방법은 다정도 나눗셈 알고리즘을 사용하여 m에 의한 나눗셈에

서의 나머지를 구하는 것이다.

[고전적인 모듈러 곱셈 알고리즘]

Page 35: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 35 -

입력 를 갖는 양의 정수를: base b● x, y 그리고 모듈러스 m.

출력 :● xㆍy mod m

step 1. xㆍy를 계산

step 2. xㆍy를 m에 의해 나누었을 때의 나머지 계산

나머지step 3. m을 결과값으로 return.

이러한 고전적인 모듈러 곱셈을 수행하는 시스템의 레지스터가 기본적으로 한계를 갖고 있

으므로 이상 되는 값1024bit x, y를 곱셈 연산에 바로 사용할 수가 없다 또한 각 곱셈연.

산에서 발생하는 중간 결과가 x 또는 y의 배에 가까운 크기의 수이므로 구현에서 발생하2

는 면적 또한 문제가 된다.

몽고메리 모듈러 리덕션 알고리즘(2) (Montgomery Modular Reduction)

몽고메리 리덕션은 고전적인 모듈러 리덕션을 수행하지 않고 모듈러 곱셈에 대한 효율적인

실행을 제공하는 알고리즘이다 몽고메리 알고리즘에서는 새로운 방법으로 를. residue class

표시하며 새로이 표시되는 내에서 모듈러 연산을 새로이 정의하였다, class .

먼저 새로운 을 정의하기 위해 정수, residue class N을 모듈러스라 하고, N과 소수인 R을

정의하였다 즉. , gcd(N, R 인) = 1 R을 정의하면, residue class "A mod N 은" "AR mod

N 으로 새롭게 정의할 수 있다" .

새롭게 정의된 에서 모듈러 곱셈은 다음과 같이 새롭게 정의된다residue class .

Page 36: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 36 -

이렇게 새롭게 정의된 모듈러 곱셈이 새로운 에서 동일한가의 검증은 곱셈을residue class ,

수행 할 데이터 A와 B를 새로운 로 치환 후 위의 수식에 대입했을 때 그 결residue class ,

과 역시 새로운 에서 성립이 됨을 보임으로써 검증을 할 수 있다residue class .

위의 수식에서 알 수 있듯이 새로 정의된 모듈러 곱셈은 새로운 에서 동일하residue class

다는 것을 알 수 있다.

[Montgomery Theorem]

N과 R이 gcd(N,R 인 정수이고) = 1 , N' = -N-1mod R로 두면 모든, T에 대해서

T + MNR

은 다음을 만족하는 정수이다.

여기서 M = TN'mod R 이다.

위의 이론을 증명하려면, (T + MN)R-1가 정수임을 보이면 된다.

먼저, M = TN'mod R은 M = TN' + kR로 볼 수 있다 또한. N' = -N-1mod R은 N'N =

-1 + lR로 다시 쓸 수 있다 이 두개의 수식을. (T + MN)/R에 대입하면,

이 되어 정수임을 증명할 수 있다.

은 크게 두 가지의 함축적인 의미를 내포하고 있다 하나는Montgomery Theorem . , (T +

MN)/R는 TR-lmod N 대한 어떤 값의 추정이다 즉. T< NR <R이므로 (T + MN)/R <

(NR + NR)/R = 2N 이 되므로A , (T + MN)/R 이든가 TR-lmod N아니면 TR-lmod N +N

이다 즉 최종 결과값이 값의 추정에 의한 값이므로 값을 보정해 줄 필요가 있다. , .

Page 37: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 37 -

나머지는 구현에 관련된 내용으로 모든 정수들이 의 형태로 표현되고, base b , R = bn이면,

나머지는 단순 연산으로 해결되므로shift TR-lmod N은 두 개의 다정도 곱셈 (M = TㆍN'

과 MㆍN 으로 계산 될 수 있다) .

모듈러 곱셈기(3) Montgomery

위에서 정의한 에 의해 제안된 몽고메리 곱셈 알고리즘은 다음과 같Montgomery Theorem

다.

[ 곱셈 알고리즘Montgomery ]

step 1. N' = -N-1mod R

step 2. T = AㆍB

step 3. M = TN'mod R

step 4. T = T + MN

step 5. return T/R

위의 알고리즘은 모듈러 곱셈을 수행하는데 고전적인 모듈러 곱셈 알고리즘에 비해 연산 시

간이 많이 걸리는 나눗셈을 사용하지 않고 모듈러 곱셈을 수행한다는 장점은 있으나 여전,

히 하드웨어에서 구현하기에는 한계가 있다 에서. Step 1 N'을 구하기 위해서는 의1024 bit

데이터의 를 계산해야 하며 다시 뺄셈을 수행해야 한다 또한 에서 보면inverse , . step 2 n

의 두 수 와 의 곱은 의 결과를 가지게 된다 만일 를 위한 모bit A B 2n 2 bit . 1024 bit RSA

듈러 곱셈이라면 이렇게 생성되는 중간값을 저장하기 위해 많은 레지스터가 필요하므로 하,

드웨어 관점에서 본다면 매우 비효율적일 수밖에 없다.

Page 38: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 38 -

과 역시 큰 데이터 값을 연산에 사용하고 있으므로 전체적으로 비효율적이Step 3 step 4

다 따라서 다음과 같이 원래의 몽고메리 곱셈 알고리즘을 개선할 수 있다. .

[ 곱셈 알고리즘Modified Montgomery 1]

몽고메리 곱셈에서 모든 M에 대해 연산이 수행되는 반면 아래와 같이 단지 한개의 에, digit

의해서 연산을 수행한다면 좀 더 개선된 효과를 가져올 수 있다.

step 1. n0 = -n0modb

step 2. T = AㆍB

step 3. for i = 0, to n-1

step 4. do mi = tin0modb

step 5. T = T + miNbi

step 6. return T/R

개선된 몽고메리 알고리즘 에서 보면 알고리즘 수행에서 발생하는 값은 원래의 몽고메리1 T

곱셈 알고리즘에서의 T값과는 다른 값을 가진다 그러나. T에 miNri을 계속해서 더해 줌으

로써 결국 같은 값을 갖게 한다 이에 대한 수학적 증명은 조금 미루기로 하고 먼저 개선된.

몽고메리 알고리즘 이 갖는 의미를 파악해 보자1 .

먼저 하드웨어에서 구현을 위한 관점에서 접근하기 위해 로 생각한다 몽고메리 알고리b=2 .

즘에서 제안한대로 gcd(N,R 이며) = 1 , N은 홀수이고 R = 2n으로 생각하자.

에서Step 1 n0 = -n0modb = -N-1mod b를 살펴보면 먼저, N 을 취한 후(n bit) inverse ,

를 취한다 이 홀수이므로mod b . N N의 최하위 는 이다 따라서bit 1 . N-1mod b는 이고1 ,

-N-1mod b 역시 이 된다 따라서1 . n0의 값은 항상 이 된다1 .

Page 39: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 39 -

에서step2 T = AㆍB보면 한 끼리의 곱이므로normal n-bit T는 2n 의 수이다 이제bit .

에서 까지의 를 살펴보면 일 때step 3 step 5 loop , i=O , m0 = t0n0modb에 7 n0는 항상 이1

므로 m0 = t0가 된다 또. , T = T + m0Nb0는 결국 T = T + n0Nb

0가 되어 다음 그럼과

같은 덧셈이 된다 그림에서 보인. T0는 에서 계산된step 2 T에 결국 t0N을 더한 값이 되고

결과적으로 보면 최하위 는bit t0의 합이 되어 결국 으로 채워진다0 .

i 일 때= 1 , m1 = t1n0modb에서 n0는 항상 이므로1 m1 = t1이 되며, T1 = T0 + t1Nb1이

된다 여기서. t1Nb1는 t1N한 값을 만큼 한 값이다 이 값을 더하는 과정을1 bit left shift .

그림으로 나타내면 다음과 같다.

Page 40: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 40 -

덧셈 결과에서 알 수 있듯이 T1은 다시 새로운 값으로 바뀌며, t0와 t1은 으로 채워진다0 .

이렇게 계속해서 를 반복하면 최종적으로 하위 는 으로 채워진 다음과 같은 결loop n-bit 0

과값을 얻을 수 있다.

에서는 위에서 구한step 6 T에서 상위 값을 하게 된다 지금까지 본 바와 같n-bit return .

이 개선된 몽고메리 알고리즘 은 전체1 N에 대해서 한 씩 연산을 수행함으로써 하드웨digit

어에서 수행되는 효율을 개선하였다.

앞에서 언급하였듯이 개선된 몽고메리 곱셈 알고리즘 의1 T값은 원래의 몽고메리 알고리즘

에서의 T값과는 다른 값을 가지게 된다 이제 이렇게 다른 값들이 과연 동일한 결과를 가.

지는지 수학적으로 검증해 볼 필요가 있다 원래의 몽고메리 곱셈 알고리즘에서 구하려고.

하는 값 TR-1modN에서 먼저 TmodN을 고려 해 보자 개선된 몽고메리 알고리즘 이. 1

TmodN과 동일한 결과를 나타낸다면 최종적으로 원하는 TR-1modN값 역시 개선된 몽고메

리 알고리즘 과 동일하다는 결론을 얻을 수 있다1 .

Page 41: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 41 -

따라서 먼저 개선된 몽고메리 알고리즘 이1 TmodN과 동일한 결과를 나타낸다는 것을 먼

저 보이도록 하겠다.

먼저 를 수행하면서 얻을 수 있는loop T값들을 다음과 같이 나타낼 수 있다.

위에 나타낸 수식을 살펴보면 에서 발생하는loop Ti값들은 최초의 값 T = AㆍB에 N의 배

수를 계속해서 더한다는 사실을 알 수 있다 즉 최종적으로 나오는. , Tn-1을 N에 대해서 모

듈러를 취하면 원래의 T값이 나온다 결국. modular N에 대해서 보면 개선된 몽고메리 알

고리즘 은1 TmodN = ABmodN의 양변에 R-1를 취하면 결국 원래의 몽고메리 알고리즘,

TR-1modN = ABR-1modN과 동일한 결과를 갖는다는 것을 알 수 있다. R-1을 취하는 것의

타당성은 다음 예를 통해서 학인 할 수 있다.

이다 의 에 대한 는 이다3 8mod5 . 2 mod 5 inverse 3 . 2≡ -1 이므로 원래 식의 양변3mod5≡

에 2-1를 취하면, 3ㆍ2-1 8≡ ㆍ2-1 이며 다시 로 나타낼 수 있다 따라서mod5 9 24mod5 .≡

위에서 양면에 R-1를 취하는 과정은 증명이 된다.

개선된 몽고메리 알고리즘 은 전체1 M에 대해서 연산을 수행하지 않고 한개의 에 대digit

해 연산을 수행함으로써 연산의 효율은 증가하지만 에서 계산하는, step 2 T값들은 여전히

많은 데이터량을 요구하므로 여전히 개선의 여지가 남아 있다.

Page 42: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 42 -

[ 곱셈 알고리즘Modified Montgomery 2]

개선된 몽고메리 알고리즘 를 살펴보면 몽고메리 리덕션은 방향으로 수행됨2 , right-to-left

을 알 수 있다 즉 각 의. , loop mi값 ti값에 의존함을 알 수 있다 따라서 전체. T를 계산하는

방식을 T에 a1B의 값들을 계속 더해주는 방식으로 변환 할 수 있다.

step 1. n0 = -n0modb

step 2. T = 0

step 3. for i = 0, to n-1

step 4. do T = T + a1Bbi

step 5. mi = tin0modb

step 6. T = T + miNbi

step 7. return T/R

새로 개선된 알고리즘에서는 앞의 두 알고리즘에 비해서 곱셈과 리덕션을 번갈아 수행함을

알 수 있다 그리고 곱셈의 횟수는 원래의 알고리즘에 비해 증가하나 구현에서 필요한 레지.

스터는 많이 개선되어 있음을 알 수 있다.

다. ECC_ElGamal

암호 시스템은 유한체 위에서의 이산 대수 문제를 이용하는 공개키 암호 시스템이ElGamal

다 공개키 암호 시스템을 타원 곡선에 적용하면 다음과 같다. ElGamal .

키 분배 방식과 비슷하게 유한체 Fq 위에서의 타원 곡선 와 의 원소 를 공개한다 각E E P .

사용자는 임의의 정수 를 선택하여 이를 비 키로 하고 공개키는 로 공개한다 사용자k kP .

가 에게 메시지 을 보내고자 한다면 먼저 에 대응되는 의 원소 을 구하고 임의A B M M E PM

의 정수 을 선택하여 에게 를 보낸다 그러면 는 자신의 비 키1 B (1P, PM + 1(kBP)) . B

를 사용하여 를 구하여 을 알 수 있게 된다kB kB(1P) = 1(kBP) PM .

Page 43: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 43 -

따라서 에 대응하는 메시지 을 복원할 수 있다PM M .

각 사용자 는 다음의 공개키를 생성하여 공개Alice : Alice .

는 자신의 공개키로 타원곡선 솟수 기저점 를 공개Alice E, p, P .

난수 를 선택하여 를 계산하여 공개a aP .

다른 사용자 이 에게 비 메시지Bob : Bob Alice

암호화의 경우(1)

와 를 이용하여 를 계산k dP k(dP) = d(kP) = (x,y)

를 이용하여 암호문 를 만들어 출력으로 한다M = (M1, M2) C = (kP, M1x, M2y) .

복호화의 경우(2)

비 키인 를 이용하여 를 계산d d(kP) = (x,y)

를 계산하여 평문을 얻는다M1x / x = M1, M2y / y = M2 .

라. ECDSA

서명 생성의 경우(1)

과 을 계산한다 은 정수로 간주kP = (x1, yl) r = x1 mod n .(x1 )

을 계산한다inv(k) mod n .

을 계산한다 함수s = inv(k) {h(m) + dr} mod n .(h() : SHA-1 )

서명 를 출력으로 한다(r,s) .

Page 44: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 44 -

해쉬 함수4.

해쉬함수는 입력으로 다양한 크기의 메시지를 받고 출력으로 메시지 다이제스트(Message

라는 고정된 크기의 해쉬코드를 만든다 해쉬코드는 메시지의 모든 비트들에 대한Digest) .

함수이고 에러 탐색 기능을 제공한다 즉 메시지에 있어서 하나의 비트 또는 비트들의 변, .

화는 해쉬코드의 변화를 가져온다.

일반적으로 사용되는 해쉬함수들은 단방향 해쉬함수를 말하며 단방향 해쉬함수 알고리즘에

있어서 다른 메시지가 같은 해쉬결과를 낼 가능성은 극히 적어 거의 불가능하다 메시지 다.

이제스트 알고리즘은 표 와 같다< 2-5> .

해쉬함수

알고리즘 특 징

MD5 데이터 생성16byte

SHA1 데이터 생성20byte

RIPEMD60 데이터 생성20byte

표 해쉬함수< 2-5>

Page 45: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 45 -

제 절 국내외 기술 동향3

세계적 기술현황 및 전망1.

모든 정보통신 분야의 기술이 그러하듯이 스마트카드 역시 사용자의 편의와 이IMT-2000

동성을 보장하기 위한 발전 방향을 추구할 것이다 뿐만 아니라 디지털 정보의 가치가 높아.

지고 개인의 중요 정보의 안전한 저장과 신뢰할 수 있는 정보처리의 요구가 높아지면서

시스템에서 스마트카드의 사용은 더욱 활성화될 것이다IMT-2000 .

추후에 예상되는 용 스마트카드 시장 구성의 커다란 두 축은 단말기에 사IMT-2000 GSM

용하는 스마트카드 시장과 시스템용 스마트카드 시장이며 접속의 정보CDMA , IMT-2000

보호를 담당할 카드 내장 모듈은 이러한 스마트카드에 멀티 응용으로 부가될 가능성이 높

다 년부터 년까지는 스마트카드가 및 과 같은 제 세대 무선. 2000 2004 UMTS IMT-2000 3

단말기에 장착되어 사용됨에 따라 높은 증가세를 보일 것으로 예상된다 스마트카드 기술의.

발전과 대량 생산에 따른 비용의 절감 등으로 전체 판매액의 변동은 유동적이지만 판매되,

어질 스마트카드의 수량은 꾸준한 증가가 계속될 것이다 또한 향후 무선 단말기의 브라우.

징에 의한 인터넷 및 인트라넷의 이용이 가능해지고 그에 따른 안전한 신원확인 및 인증,

등 정보보호 특성이 강화됨에 따라 스마트카드 시장은 제 세대 이동통신 및IMT-2000 3

유선망의 서비스와 연계되어 폭발적으로 증가할 것으로 예측된다.

미래 신문 예측지인 미국의 퓨처리스트는 년대 유망 상품으로 스마트카드를 선정하였2000

으며 특히 이동통신 시스템에서의 스마트카드는 사용자의 편리성을 강조하기 위해 중요한

부분을 차지하게 될 것으로 예측하였다 유럽의 이동통신 시스템인 은 사용자의 이동. GSM

성을 보장하고 정보의 안전한 저장을 보장하기 위해 카드를 사용하고 있다SIM .

Page 46: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 46 -

에서는 데이터 서비스의 일환으로 일반 신용카드 기능을 무선 단말기에 장GSM IMT-2000

착하여 뱅킹 거래를 할 수 있도록 하는 규격과 카드용 신용카드용 각각을 위한 두개SIM ,

슬롯을 가진 단말기가 등장하여 환경에서의 뱅킹 및 지불 서비스를 하고 있다IMT-2000 .

그리나 현재 스마트카드 산업은 과거의 단일 응용을 위한 스마트카드에서 탈피하여 여러 개

의 응용을 하나의 카드로 지원하는 멀티 응용 카드를 선보이고 있다 따라서 두개 슬롯을.

가지고 서비스되고 있는 시스템의 신용카드 서비스는 멀티 응용 스마트카드의 발전과GSM

더불어 하나의 스마트가드를 사용하는 시스템으로 발전하게 될 것이다 시스템에서. CDMA

스마트카드의 사용은 국내외를 통틀어 전무한 상태이며 향후 멀티 응용 스마트가드의 사용

이 일반화됨에 따라 데이터 통신에서의 사용자 편리성을 강조하기 위하여IMT-2000

시스템에서도 스마트카드를 사용하게 될 것으로 예견된다CDMA .

무선 단말기만으로 인터넷을 사용하여 유선망에서 제공하는 다양한 서비스를 이용하고자

하는 움직임이 포럼의 중심의WAP WAP(Wireless Application Protocol), IETF WTCP

일본 의 모드 그리고 마이크로소프트사의(Wireless TCP), NTT DoCoMo i- , Mobile

등의 형태로 나타나고 있다 모드 등의 데이터Explorer . WAP, WTCP, i , ME IMT-2000

서비스용 규격들이 지향하는 것은 무선 단말기의 데이터 통신 능력을 향상시켜 유선에서 제

공되는 데이터 서비스를 환경까지 확장하여 진정한 의미의 데이터IMT-2000 IMT-2000

통신을 실현하는 것이다 따라서 유선망에서 중요한 사항으로 대두되고 있는 안전한 신원. ,

확인 및 접근 제어는 에서도 똑같이 필요한 사항이라 할 수 있다 스마트카드는IMT-2000 .

정보를 안전하게 저장하면서 개인의 신분을 확인할 수 있게 하는 가장 안전한 매체로 인정

받고 있으므로 유선망의 서비스를 에서 제공하기 위해 스마트카드를 사용하는 것IMT-2000

은 사업자와 사용자의 측면에서 필연적으로 요구되는 사항이라 하겠다.

Page 47: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 47 -

현재 산업체 표준으로 자리잡아 가고 있는 규격에서는 데이터 통신을 위WAP IMT-2000

한 스마트카드에 탑재될 모듈의 규격을 이라는 이름으로 제안WIM(WAP Identity Module)

하며 스마트카드 사용에 적극성을 띄고 있다 카드는 기존의 카드처럼. WIM SIM

전용 스마트카드를 사용하여 구현될 수 있으며 멀티 응용 스마트카드에 포함되IMT-2000 ,

는 하나의 응용으로도 포함될 수 있다 이것은 멀티 응용 스마트카드의 일반화를 겨냥[16].

한 것으로써 데이터 통신이 유선에서 사용하는 모든 서비스를 제공하기 위한 방IMT-2000

법이며 또한 사용자의 편리성을 지원하기 위한 유연한 방법이다, .

국내 기술현황 및 전망2.

우리나라는 선진국보다 다소 늦게 카드 산업에 참여하였으며 운송카드 버스요금체계 개IC , ( ),

인인식 신분확인 위성방송수신 전화카드 등의 분야에서 널리 활용되고 있으나 시장구조가( ), ,

취약하고 특히 해외시장에서의 경쟁력은 매우 취약한 상태이다, .

국내 업체는 원천기술이 없기 때문에 해외 선진업체에 의하여 표준 특허조사 분석이 주도, ,

되고 있으므로 많은 국내업체가 카드 등 카드 핵심기술 연구그룹에 적극MULTOS, JAVA IC

참여함으로써 선진기술을 조기 확보하여 국제 표준화 작업에 적극 참여하는 것이 필요하다.

현대 는 세계에서 두 번째로 신용카드 기술을 비자공식 인증기관 으로부터 공인을ST IC (CAA)

받고 년 월부터 비자코리아가 서울의 여의도 지역에 실시하는 시범사업에1999 12 EMV IC

신용카드를 공급한다.

국내 산업체에서는 카드 구현 기술에 대한 기술력을 갖추고 있다 학계에서는 카드를IC . IC

기반으로 하는 응용 시스템에 관한 구현 연구와 이론적인 연구를 수행한 바 있으며 한국전,

자통신연구원에서는 위성 수신기용 카드와 카드의 핵심 기술인 암호프로세서 설계 기IC IC

술을 연구하고 있다 하지만 설계 기술 기술 카드 해독 방지 기술 등과 같은. , IC , COS , IC

핵심기술 개발은 부진한 상황이다.

Page 48: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 48 -

국외의 선진 업체들은 그 동안 카드 부문에 많은 투자를 해왔으며 고도의 기술력을 갖추IC ,

고 있다 카드 칩 부문을 보면 현재 활용되는 카드의 제품은 대부분 비트 프로세서를. IC , IC 8

기반으로 하는 제품이지만 성능 개선을 위해 일부 암호프로세서를 별도로 내장하여 생산하

고 있으며 다중 응용 서비스 및 개방형 구조를 지원할 수 있도록 하기 위해서 비트 및, , 16

비트 카드에 대한 연구를 수행하고 있다32 IC .

Page 49: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 49 -

제 장 설계 및 구현3

제 절 개요1 Java Card platform

은 언어와 가상기계를 기반으로 하여 내장형 시스템Java Card platform Java Java Card

중 중에서 메모리 계산 처리 능력 이 가장 작은 규모(embedded system) , (computing power)

에 속하는 에 대해 적용된 시스템이다 따라서 은 모태가smart card . , Java Card platform

되는 에 비해 많은 제약 사항과 수정 및 추가 사항을 내포하고 있다 본 장에Java platform .

서는 먼저 의 간단한 발전 과정을 기술하고 과Java Card , Java platform Java Card

의 전반적인 사항을 비교하여 살펴본다 또 각 에서의 중추를 담당하는platform . , platform

가상기계의 구성 및 내용에 대해 비교한다.

1. Java Card 2.1

년에 표준이 발표된 이후 는 여전히 다른1996 Java Card , Java Card Java Card platform

간의 의 이식성이나 상호 운용성이 보장되지 않았는데 특히 다양한 판Applet , smart card

매업자들의 전용 파일 시스템을 수용하기 위한 일반적인 파일 시스템 API(Application

구축이 불가 했다 또 암호 의 기능 및 유연성이 결여 되는Programming Interface) . , API

문제가 있었다 년 월에 발표된 에서는 이러한 내용이 수정 보완되어. 1999 3 Java Card 2.1

소프트웨어적인 방화벽이 도입되었으며 파일 시스템 에 대한 내용이 삭제되었고 암호API

가다양한 로 확장되었다 본 보고서에서 기술하는 에 관련된 내용은API class . Java Card

을 기준으로 기술된다Java Card 2.1 platform .

Page 50: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 50 -

2. Java platform

는 등에 의해 개발되어 년에 발표되었는데 처음에는 내Java language James Gosling 1994

장형 시스템을 겨냥한 간결한 의 객체 지향 프로그래밍code (OOP, Object Oriented

언어로서 개발되었다 그러나 이러한 간결성 및 호환성 보안성이 인터넷상Programming) . , ,

의 통신에 적합하여 인터넷을 위한 프로그래밍언어로서 널리 사용되게 되었다.

가상기계 가 원천 코드를 한 결과인 화일 내의 바이트코드를Java (JVM) Java compile class

수행하는 엔진으로서 하위의 운영체제의 상위의 로 존재하며 수행엔진은 명령어Layer ,

를 하나씩 수행하는 인터프리터 수행 중 특정 기계 언어로 변화(instruction) (interpreter),

하도록 동적 컴파일 을 수행하는 컴파일러 및 명(dynamically compile) JIT(Just-in Time)

령어 수행을 하드웨어를 이용하여 처리하는 프로세서로 분류된다Java .[3]

3. Java Card platform

메모리 및 처리 속도 등의 제약된 자원의 를 겨냥하여 년에 탄생한CPU smart card 1996

으로 언어는 언어의 이다 개방형 플랫폼platform Java Card Java subset . (Open-platform)

을 지원하는 다중 응용 프로그램 를 구현하는 운영체제의 상(Multi-application) smart card

위 로 가상기계 를 가진다 은 수행엔진으로 바이Layer Java Card (JCVM) . JCVM Java Card

트코드를 수행하는 인터프리터를 기본적으로 사용하며 메모리의 제한으로 인해 특히( , RAM

으로 현재최고 정도이며 은 을 사용하는 으4k bytes Java Ring Java Card Applet platform

로서 의 을 사용하는 것으로 알려져 있다 동적 컴파일러인 컴파일러는6K bytes RAM .) JIT

실시간 수행시 각 메소드를 처음 수행할 때 이를 컴파일한 특정 기계 코드를 임시 저장처,

에 보관하였다가 각 명령어 수행 대신 기계어 코드를 수행하기 때문에 많은 메모리를 요구

하므로 사용이 불가하다.

Page 51: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 51 -

과4. JVM JCVM

언어는 언어의 인데 바이트 코드를 수행하는 수행 엔진Java Card Java subset Java Card

인 은 에 비해 에 적합하도록 최적화되어 간의 방화벽 최적화JCVM JVM smart card Applet ,

된 명령어 등 개념이라기보다는 지원 내용은 작지만 별도의 새로운 수행환경을 구subset

성한다 이 지원하는 내용을 에 대해 나타내면 다음과 같다. JCVM JVM . [4][5][8] smart

상에서의 최적화를 위한 작업 내용이 에 반영되어 있음을 알 수 있다card JCVM .

JVM JCVM

- Dynamic loading allocation → Pre-loading and Dynamic

- Class Loader ↔Off-card Installer(CAP : Convert APplet

loader)

- Security Manager ↔ 간의Applet Firewall(context)

- Multi-thread ↔ single-thread

- Multi-dimensional array ↔ 1 dimensional array

- Gabage Collector → not supported

- char, String type support → not supported

- float, double support → not supported

- integer → optionally supported

Page 52: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 52 -

의 구조5. JCVM

은 크게 과 으로 나뉘는 분할 가상기계로 이루어지며 좁JCVM Off-card VM On-card VM ,

은 개념으로는 수행 엔진인 인터프리터를 지칭하며 넓은 개념으로는 가 중심이framework

되는 와 인터프리터 메모리 관리 루틴 예외처리 루틴 및 운영체제와의system class API , ,

등을 포함하는 수행 환경 을interface Java Card (JCRE, Java Card Runtime Environment)

의미한다 분리된 의 구성은 그림 에 보이고 있으며 각각의 의 기능을 간략. JCVM [ 3-1] VM

히 기술하면 다음과 같다.

그림 분리된 의 구성[ 3-1] JCVM

off-card VM●

및 변환- Java class loading, linking, name resolution package

사양에 대한 및 결과에 대한 포함- verification (JCVM check resolution check )

Page 53: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 53 -

바이트코드 최적화-

파일 형식인 파일 실행을 위한 바이너리 파일 및 파일 및- Java Card CAP ( ) EXP (linking

을 위한 바이너리 파일 생성verification interface )

on-card VM●

바이트코드 수행 및 수행시 메모리 관리 을 에뮬레이트 함- (stack-machine )

방화벽 루틴 수행-

의 바이너리 형식6. Java Card

에서는 에의 적재와 상에서의 메모리 적재 및 링킹 등Java Card platform smart card card

운용의 편의를 위해 컴파일러에 의해 생성된 파일을 그림 에서 보는 것처럼, Java class 1

컨버터에 의해 여러 개의 컴포넌트 로 구성된 파일로 변환하여 다운로드(Component) CAP

한다 컨버터는 및 들을 및 파일로 변환하는데(download) . Applet class library CAP EXP ,

은 실행하고자 하는 바이너리 파일이며 는 내에서 이용하는 들을 연결CAP EXP CAP library

하여 위치를 알려주는데 이용되는 인터페이스 바이너리이다

파일은 일반 파일과 거의 유사한 반면 파일은 메소드 정적 변수 등EXP class CAP class, ,

의 분리된 개의 컴포넌트로 구성되며 기존의 파일내의 스트링 기반의 링킹11 class (String)

이 아닌 컨버터에 의해 지정되는 토큰 과 오프셋에 의해 파일 내 바이트코드들(token) CAP

의 내외부의 참조 에 대한 링킹을 수행한다 파일의 각 컴포넌트에 대한 간(reference) . CAP

단한 기술을 하면 다음과 같다.

Page 54: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 54 -

컴포넌트o Header

이 화일 및 이 화일내에 정의된 에 대한 일반적인 정보를 가지고 있다- CAP package .

화일을 나타내는 값 버전 의 길이- Java Card CAP magic , , package , AID(Applet

등을 포함한다IDentifier) .

컴포넌트o Directory

이 화일내의 각 컴포넌트의 크기 정보를 가지고 있다- CAP .

컴포넌트o Applet

이 에 정의된 에 대한 정보를 가지고 있다- package applet .

정의된 의 을 포함한다- applet AID, install method offset .

컴포넌트o Import

이 내에 정의된 각 들에 의해 되는 외부 에 대한 정보를 가- package class import package

지고 있다.

컴포넌트o Constant Pool

이 화일의 컴포넌트의 내용들 중 의 또는- CAP Method method instruction exception

의 에서 참조되는 및 에handler table exception handler catch type class, field method

대한 연결 정보를 가지고 있다.

연결 정보는 및- class, instance field, virtual method, super method, static field

에 대하여 나타난다static method .

컴포넌트o Class

이 에 정의된 와 에 대한 정보를 가지고 있다- package class interface .

정보는 와 로의 을 각 원소- class super class, instance size Method Component offset

로 하는 등을 포함한다virtual method table .

Page 55: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 55 -

컴포넌트o Method

이 에 정의된 와 각 를 기술한다- package exception handler method .

는 기술 내용에 나타난다- Java Card bytecode method .

컴포넌트o Static Field

이 에 정의된 모든 를 생성하고 초기화 하는데 필요한 정보를 가지고- package static field

있다.

컴포넌트o ReferenceLocation

내의 중 에 따르는 에 대한 를- Method Component bytecode opcode operand offset list

가지고 있다.

컴포넌트o Export

외부 의 가 하는 이 의 모든 요소의 정보를 가지고- package class import , package static

있다.

또는 및 가 대상이 된다- public class, public protected static field method .

컴포넌트o Descriptor

선택적인 컴포넌트이며 이 에 정의된 또는 에 대한 정보를 가지- , package class( interface)

고 있다.

를 위한 및 에 대한 정보를 가지고 있다- verify class, field method type description .

Page 56: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 56 -

제 절 소프트웨어 하드웨어 개발2 ,

의 구현1. Java Card 2.1

개발 플랫폼으로 설계된 보드는 인 를 사용하며32 bit RICS chip ARM7 TDMI RAM 4k

로 구현되었으며 운영체제로서bytes, ROM 64k bytes, EEPROM 48k bytes Java Card

과 이를 인터페이스 하는 를 가진다 이 하드웨어 플랫폼은2.1 platform OS . 8051 CPU,

나RAM 1.2k, ROM 32k, EEPROM 16k , H8 series CPU, RAM 2k, ROM 32k, EEPROM

에 비해 메모리가 크며 연산성능이 뛰어나도록 설계되어 있다 이 구조는 그림16k . card [

에서 보는 바와 같으며 는 하드웨어에 의존하게 되며 과는 직접 또는32] OS JCVM Native

를 통하여 인터페이스하게 된다 은 소프트웨어로 구현되며 은method . JCVM JCVM Java

및 와 이를 이용하여 프로그래밍 된 을 수행하게Card 2.1 core API extended API Applet

된다 는 암호 나 등의 사용자. Custom Framework API API VOP(Visa Open Platform) API

나 산업 규격용 를 포함하는데 구현할 암호 는 공개키 암호 알고리즘인 와API API , API RSA

을 구현한 와 대칭키 알고리즘인 및ECC(Elliptic Curve Cryptography) API DES, T-DES

를 포함한다 하드웨어는 와 용 전용 보조 프로세서를 포함한다SEED . RSA ECC .

Page 57: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 57 -

그림 의 구조[ 3-2] Java Card 2.1

이 절에서는 먼저 구현 및 개발 단계에 대해 언급하고 결과물을 개발 플랫폼 하드웨COS

어와 소프트웨어 측면 및 즉 측면에서 각각 기술하고자 한다off-card, host .

의 개발 단계2. smart card

개발된 플랫폼은 그림 에서 보는 바와 같이 카드에 가까운 동작을 취하smart card [ 3-3]

는 상태에 따라 대략 단계에 따라 개발되었다 초반 단계에서는 개발에 있어서의 하드웨4 .

어에 대한 의존성이 적으므로 기능 및 동작에 대한 각종 환경이 쉽게 구성되고 디버깅에 대

한 유연성이 크고 비용면에서 유리한 반면에 제한된 문제를 가지며 실시간 조건과 실제I/O

메모리 등에 대한 검증이 이루어지지 않는다 이와 반대로 아래 단계들에서는 카드에서의.

동작 조건이 반영된 시험 및 검증이 가능하나 디버깅 환경 구축에 대한 작업이 많이 필요하

다.

Page 58: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 58 -

첫번째 단계는 또는 상에서 을 포함한 수행 환경을 소프트웨어적PC S/W JCVM Java Card

으로 구성하고 및 을 수행하는 시뮬레이션 과정으로서 바이트 코드API Applet Java Card

수행 환경 및 동작에 대한 시험 검증을 할 수 있다, .

두번째 단계는 를 사용하는 상용 보드에 및ARM7 TDMI core JCVM COS(Chip Operating

를 포팅 하고 에System) (porting) UART(Universal Asynchronous Receiver/Transmitter)

를 연결하여 와의 를 구성함으로써 실시간 기능 시험이 가능하card adapter card reader I/O

다 인터럽트 처리 및 레지스터 설정사용 등에 대한 펌웨어 는 보드에서 제공되는. (firmware)

것을 이용하여 암호 처리 전용 프로세서와 같은 사용자 모듈을 통합 사용하게 된다 실제, .

카드와 같은 가 아니므로 에서 부가적인 작업이 필요하며 에서의 강IC I/O card adapter PC

력한 디버깅을 지원하는 환경을 위한 불필요한 보드상의 자원 할당으로 인해 원하는 자원, ,

할당이 제한되는 단점이 있다.

세번째 단계는 를 제외한 모듈을 자체 개발한 보드상에 과ARM 7 TDMI core JCVM COS

를 포팅하고 에서와 같은 를 이용하여 실시간 기능 시험을 수행하는 단계이smart card I/O

다 의 동작에 근접하도록 하기 위해서 자체 부팅 코드와 개발된 운영체제의 연. smart card

결이 필요하며 인터럽트 처리 내부 레지스터 운용 등에서의 모든 처리가 필요하다 또 각, . ,

제어 모듈 및 암호 전용프로세서 모듈 등의 최적화가 필요하며 실제 메모리 사용EEPROM

등을 통한 실제적인 실시간 기능 시험을 할 수 있게 된다 그러나 여전히 보드 연동통합. ,

개발 환경도구를 이용해서 수행시 필요한 데이터와 코드 전체를 하나의 이미지 파일로 업로

드해서 사용하므로 및 에 대한 논리적인 메모리 구분으로 인해 실제ROM, EEPROM RAM

읽기 쓰기 등에 대한 운용 시험은 불가하다 또한 에서 지원하는 비휘발성ROM / . , Java Card ,

메모리에서의 데이터 인 트랜잭션 수행시에 전원 상실 때의update (transaction) smart

의 데이터 복구동작 과 같은 운용 시험이 불가하다 현재 개발된 단계는 세번card (rollback) .

째 단계이며 메모리 및 칩 면적 최적화 문제는 상용화 단계에서 필요하다.

Page 59: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 59 -

의 하드웨어 부분3. Card

개발된 의 하드웨어 플랫폼은 현재 에뮬레이터 수준으로 와 메모리 부분은Smart Card , CPU

개별 소자를 사용하였고 이외의 메모리 인터페이스 등의 기본 모듈 리더기와의Decoder, ,

접촉 및 비접촉 통신을 위한 모듈 그리고 암호 연산을 위한 전용 보조 프로I/O Interface

세서 모듈 등은 로 구현하였다 는 사의 를 사용하고 있으며 이FPGA . CPU ARM ARM7TDMI

외의 하드웨어 모듈은 에 적합하도록 구현하였으며 전체구성은 그림 과Smart Card [ 3-3]

같다.

그림 내장 의 하드웨어 구조[ 3-3] Java Card smart card

Page 60: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 60 -

가 부. IC card Emulator

의 하드웨어 시스템 구성은 와 연결된 모듈과Card System Bus ASB Bus Peripheral Bus

와 연결된 모듈로 나눌 수 있다 모듈은 주로 빠른 연산이 필요한 기APB Bus . ASB Bus

능을 가지는 것으로서 암호모memory interface(SMI), random number generator(RNG),

듈 등이 여기에 속한다 는 카드에 사용되는 을 관리하는 모듈. SMI IC ROM, EEPROM, RAM

로서 메모리의 단위의 를 가능하게 해주며 제한된byte, halfword, word access memory

기능을 제공하고 있다 난수 발생 모듈로서 의 난수를 발생시킨다protection . RNG 32bit .

모듈은 주로 빠른 연산이 필요하지 않은 것으로서 외부와의 통신을 위한APB Bus Timer,

모듈 등이 여기에 속한다 현재 개발 중인 카드는 접촉 통신이 가능한I/O . SIM smart card

로서 접촉 통신 기능을 위해 프로토콜을 지원하는 접촉 모듈 을ISO 7816 Interface (SCI)

구현하였다.

나 암호 전용 프로세서.

카드에서는 대칭키 및 비대칭키 서명 해쉬 등의 암호 방식을 지원하기 때문에 높은SIM , ,

보안성을 가진다 지원하는 암호 알고리즘으로는 및 와 같은 대칭키 암호. SEED triple-DES

알고리즘 및 타원 곡선 암호 알고리즘과 같은 비대칭키 암호 알고리즘 과 같, RSA , SHA-1

은 해쉬 함수 와 같은 서명 함수를 지원한다, DSA .

와 타원곡선 암호는 매우 큰 비트 값을 가지는 정수 연산을 필요로 하므로 수행 시에RSA ,

많은 시간과 높은 계산 능력을 필요로 한다 이 때문에 카드에서는 암호 처리 전용 보조. , IC

프로세서를 사용하여 와 타원 곡선 암호 를 고속으로 처리한다 의 경우, RSA (ECC) . RSA

연산이 가능한 코프로세서를 설계하였다1024bit RSA Encryption, Decryption .

Page 61: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 61 -

또한 의 경우 에서는 키 길이가 길기 때문에 연산 시간과 연산에 필요한 하드웨ECC , RSA

어가 늘어나는 단점을 극복하기 위해 타원곡선 암호연산이 가능한 코프로세서를 설163bit

계하였다.

의 소프트웨어 부분4. Card

의 소프트웨어 부분은 크게 및 응용 프로그램인 으로 나눌Card COS, JCVM, API Applet

수 있다.

가. JCVM

은 동적 자료 구조 측면에서 보면 파일내의 바이트 코드를 수행시키JCVM , CAP Java Card

는 인터프리터를 중심으로 스택 메모리 관리 루틴 명령어가 저장된 데이터 공간이 유Java ,

기적으로 연결되어 그림 에서 보는 바와 같이 도시적으로 나타낼 수 있다 이외에 방[ 3-4] .

화벽 처리를 위한 컨텍스트 처리 루틴 및 인터페이스가 포함된다(context) Native method .

Page 62: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 62 -

그림 의 인터프리터 및 주변 루틴 동적 자료구조 중심[ 3-4] JCVM ( )

및Method area Heap●

는 에 존재하며 또는 에 탑재되는 들의Method area ROM API class library ROM Applet

파일 저장 구조에서 와 메소드 내의 각 바이트코드에서 필요한 변수 또CAP class class,

는 메소드에 대한 참조들을 주어진 토큰을 이용하여 레졸루션한 내용들을 포함한다.

에 대한 전역 레지스터로서 를 두고 있다Method area PC(Program Counter) .

은 에 존재하며 바이트코드 수행시 필요한 또는 의 객체를 생성Heap EEPROM class array

한다 또 의 도 에 생성되고 로 관리된다 객체는 구별을 일반 타. , Applet instance heap table .

입 기본 배열 타입 또는 참조배열 타입 을 구별하기 위한, (primitive type) (reference type)

헤더 를 가지며 에 대한 포인터 컨텍스트 객체 소유의 데이터 크기 등이 포(header) class , ,

함된다.

Page 63: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 63 -

Java stack●

은 단일 쓰레드 이므로 하나의 을 가진다 내부에서Java Card platform (thread) Java stack .

는 그림 에 보는 바와 같이 각 메소드 호출시에 넘겨받는 파라미터를 가지고서 새로운 프4 ,

레임 을 만들고 내부의 피연산자 스택과 로컬 변수에 초기값 및 연산 결과를 저장한(frame)

다 등의 외부와의 가 필요한 경우는 인터페이스를 이용하여. COS I/O Native method

이 볼 수 있는 메모리 주소내의 예를 들면 버퍼 등 값을 읽고JCVM ( , Java stack, APDU )

쓴다 프레임에 대한 포인터로서 를 두며 피연산자 스택에 대한 포인터. FP(Frame Pointer)

로서 등의 가상 레지스터를 이용하고 있다SP(Stack Pointer) .

수행 엔진●

에서의 수행엔진은 소프트웨어 인터프리터로서 에서의 에 대응Java Card , method area PC

하는 하나의 바이트코드를 가져와서 수행하면서 필요한 스택 연산을 수행한다 각 메(fetch) .

소드 간의 연결은 명령어를 사용하며 타입에 따라 달라진다 메소드 내는 각 명_invokeXX .

령어들이 연속적으로 연결되어 수행된다 메소드는 앞에서 기술한 바와 같이 프레임을. Java

내에 새로 만들고 수행에 필요한 파라미터와 내용을 프레임내의 스택에 두고 이를 이stack

용하여 명령어들을 수행한다.

인더럽트 핸들러●

인터럽트는 에서처럼 필요한 시점에서 새로이 인터럽트 처리 의 객체를 생성하는JVM class

것이 아니라 초기화 시에 미리 필요한 객체들을 생성 시켜둔 뒤에 적절한 인터럽트JCVM ,

타입에 따라 각 객체의 처리 함수를 호출한다.

방화벽●

방화벽은 각각의 간의 분리된 저장 공간에 대한 접근 제어인 컨텍Java Card Applet data

스트 변환 및 관리에 의해 구현되며 컨텍스트는 각 패키지 와 패키지 내의(package) Applet

에 대한 정보를 결합하여 구성한다.

Page 64: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 64 -

인터페이스Native method●

에서 수행되는 외부 또는 메모리 사용 함수에 대한 를Java Card API I/O Native method

에 구현하여 수행한다JCVM .

동작의 측면에서 처리와 관련하여 살펴보면 은 내부적으로 크게 초기화 부분APDU , JCVM

과 및 을 수행하는 루프 로 구성되며 는 호스트의 터미날Java Card API Applet (loop) API

프로그램 과 맞물러 명령 를 받아들이고 처리하여 응답 를(terminal program) APDU APDU

내보내는 내부 루프를 크게 구성한다 이 과정을 도식적으로 표현한 것이 그림 이다. [ 3-5] .

그림 의 동작 구조[ 3-5] JCVM

나. COS

는 계층적으로는 와 사이에 존재하며 기능상으로는 에서 요구하는 가COS H/W JCVM JCVM

상 메모리의 실제 메모리 입출력 및 관리를 담당하며 시스템 함수 및 와의 통Card reader

신과 같은 드라이버를 포함한다I/O .

Page 65: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 65 -

또 전원이 공급될 때 초기화 인터럽트 처리 벡터 처리 및 자체 스택 메모리 설정 루, , H/W ,

틴 등을 포함한 부팅 코드를 포함하여 구현하였다.

측면에서 생각하면 에 연결된 호스트 프로그램과의 통신 프로토콜인I/O , Card Reader

의 내용 분석 및 처리는 을 포함한APDU(Application Protocol Data Unit) API, JCVM

에 의해 이루어지며 에 인터페이스하여 를 구성하는 데이터를 직접 송수신JCRE H/W APDU

하는 것은 에서 담당한다 또한 는 전원 공급시의 리셋 신호에 대한 응답인COS . , COS

송신 루틴을 구현하고 있다ATR(Answer-To-Reset) .

다. API

구현된 는 크게 들을 포함하는 와Java Card API lang, framework, security class core API

암호 와 같은 사용자 로 나뉜다 의 안전한 적재 및 관리를 위한 는API API . Applet VOP API

구현 중에 있으며 이에 대해서는 장에서 언급한다 는 언어 기능을 구현하4 . core API Java

는 기본 기능 시스템 와 예외처리 등으로 구성되며 구현된API, Java Card API, API API

암호 는 및 키 와 해시 함수 이API DES, 3-DES RSA(1024bit ) MD5, SHA-1, RIPEMD160

며 암호 모듈과의 인터페이스를 고려하여 타원 곡선 암호알고리즘 구현을 진행하고, (ECC)

있다.

라. Applet

은 를 반드시 계승하여야 하므로 기본적으로Applet Applet API class install(), select(),

및 메소드를 가지며 메소드가 에 대한 대외적인 창구process() deselect() install() Applet

함수가 된다 에 화 되거나 파일 형태로 탑재되는 은 사용될 응용 서. Card ROM CAP Applet

비스에 의존하게 된다.

Page 66: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 66 -

모든 는 고유한 식별 이름인 가 할당되어 에 적재되며 각 내의package AID Card package

도 역시 고유한 식별 이름인 가 할당되며 선택되어 사용시에 반드시 로서 접Applet AID AID

근된다 에서 사용되는 는 바이트의 와 바이트. Java Card AID 5 RID(Resource Identifier) 11

이하의 로 구성 된다 상의PIX(Proprietary Identifier eXtension) . IESA Java Card platform

에 서 적재되어 사용되는 및 에 대한 할당 예는 그림 에서 보는package Applet AID [ 3-6]

바와 같으며 는 해시함수 시험용 파일 이름이다Md Applet .

그림 및 의 할당 예[ 3-6] package Applet AID

Page 67: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 67 -

마. VOP(Visa Open Platform)

탑재 에서의 의 안전한 적재 및 이의 효율적인 관리를 위해Java Card smart card Applet

에 의해 개발된 는 현재 에 의해 관리되고 있으며 로 공식명이Visa VOP Global Platform OP

바뀌었다 는 다중 응용 프로그램용 의 관리에 대한 표준으로서 자리 매김을. OP smart card

하고 있어 에서는 필수적이다 는 구현측면에서 상의 적재 및Java Card .[2] OP Card Applet

관리를 포함한 를 담당하는 와content management, security management Card Manager

암호화 서비스를 위한 응용 프로그램인 이 주축을 이루key management Security Domain

어 와 결합하여 구현할 수 있는데 와 호스트간의 상호 인증Java Card API Card (mutual

을 위해 또는 에서의 난수 발생기authenticate) API COS (RNG, Random Number

와 암호 알고리즘의 사용이 요구된다 를 구현하기 위해서Generator) 3-DES . Applet delete

는 에서 관리하는 에서의 상태 를JCRE Applet table Applet (state)

로 설정한다 실제 에서의 사용시는 인스톨APPLET_LOGICALLY_DELETED . Card Applet

시에 객체 및 인스턴스 변수의 생성이 상에서 이루어지(install) Applet (instance) EEPROM

므로 완전한 삭제 기능의 구현을 위해서는 가 의 메모리 관리 루틴에 이들, Applet JCRE COS

에 대한 삭제 정보 등을 제공하여 메모리의 재사용이 가능하도록 해야 하는 점을EEPROM

염두에 두어야 한다 이것은 결국 가비지 콜렉션 의 간단한 기능이라고. (garbage collection)

볼 수 있으며 제한된 자원에 대해 효율적인 메모리의 사용을 위해서는 추후에 smart card

에 적합한 효율적인 가비지 콜렉션 기법에 대한 연구도 필요할 것이다.

Page 68: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 68 -

자바 카드 구조5. API

자바 카드 구조에서 가장 상위에 위치하는 애플릿은 API(ApplSIMation Programming

를 통해서 이나 에 구현된Interface) VM(Virtual Machine) COS(Card Operating System)

함수를 호출하여 사용자가 요구하는 명령을 수행하며 애플릿이 의 하위에 위치한, VM COS

에 구현된 암호 알고리즘 및 하드웨어 상에 구현된 암호 모듈을 이용하기 위해서는 의VM

를 이용하여 및 에 구현된 기능을 호출해야 한다 이 경우 애플native methods COS H/W . ,

릿 와 과 상에 이러한 기능을 수행하기 위한 인터페이스 설계가 요구되는, API VM, VM COS

데 본 문서에서는 애플릿 와 상에서 고려해야 할 암호 및 암호 모듈을 위한, , API VM API

인터페이스에 대해 기술하고자 한다.

아래 그림 은 를 구성하는 내부 구조를 보여주고 있으며 각 간에 주[ 3-7] Java Card , Layer

고받는 입출력의 내용을 간략히 설명하고 있다.

Page 69: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 69 -

그림 자바 카드 내부구조[ 3-7]

Page 70: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 70 -

인터페이스 설계6. DES

가 애플릿 와의 인터페이스. , API

상에 구현된 및 알고리즘을 애플릿이 이용하기 위한 인터페이스 구COS DES Triple-DES

조는 다음과 같다.

애플릿(1)

아래와 같이 자바 카드에서 기본적으로 제공되는 를 하여 각 에서 지원해주API import API

는 함수들을 이용하여 사용자의 요구사항을 처리해준다.

자바 카드상에 탑재되는 애플릿은 기본적으로 제공되는 를 재 정의하여 사용해야 하method

는데 이러한 애플릿의 기본 구조는 애플릿 상위 설계서에 자세히 기술되어 있다, . DES,

알고리즘을 이용하기 위해서는 우선 및 바이트의 값을 입력으Triple-DES , 8, 16 24 KEY

로 받은 후 를 생성해야 하고 생성이 완료되면 입력 데이터와 출력 데이터, subkey subkey ,

가 저장될 주소와 가 저장된 주소를 인자로 사용하는 암호화 함수를 호출한다 지subkey .

금까지 설명한 내용은 애플릿 상에서 아래와 같은 함수 호출로 요약된다.

값 수신 및 생성Key subkey♣

Page 71: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 71 -

여기서 사용되는 배열의 정의는 아래와 같다.

입력 데이터 암호화 복호화 수행,♣

Page 72: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 72 -

Page 73: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 73 -

(2) API

애플릿에서 호출하는 함수들은 자바 카드에서 규정한 를 통해 하위 및 에 구현API VM COS

된 함수들을 이용할 수 있게 된다 애플릿 상에서 수행하는 가지 기능은 와 다음과 같. 3 API

이 연결되어 있다.

값 설정 생성 함수 호출Key , subkey♣

여기서 사용되는 배열은 아래와 같이 정의된다.

Page 74: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 74 -

생성Subkey♣

입력 데이터 암호화 복호화 수행,♣

Page 75: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 75 -

Page 76: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 76 -

에 구현된 함수를 사용해야 하기 때문에 는 에 선언된 함수를 호출COS API native methods

하게 되며 에 정의된 및 관련 함수는 아래와 같다, native methods DES T-DES .

나 과의 인터페이스. API, VM

(1) VM

에 선언된 함수들의 실제 코드는 과 상에 구현되어 있으며 는Native methods VM COS , API

에 선언된 함수를 호출하면서 과 에서 해당 명령어를 처리할 수 있native methods VM COS

는 파라미터 값을 넘겨주게 된다 일례로 상의 에 구현된 및. , VM Native interface.c DES

코드를 나타내면 다음과 같다Triple-DES .

생성Subkey♣

Page 77: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 77 -

암호화DES♣

복호화DES♣

앞서 열거한 함수들은 상의 와 실질적인 함수를 연결시켜NativeInterface.c function index

주는 메소드를 통해 호출되게 되며 이러한 역할을 담당해주는 함수가 이다 즉, callnative . ,

새로운 함수를 생성하게 되면 반드시 이 함수에 등록시켜야 한다native , .

Page 78: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 78 -

등은 의 파일에 정의SetKeyset_NM, DESENC_NM, DESDEC_NM mask generator config

하며 새롭게 만들어진 함수는 이 파일에 정의해서 를 통과해야 한, native mask generator

다 그렇지 않으면 상에서 함수 호출 시 어떤 함수와 연결시켜 주어야 하는지를 알지. , VM

못하게 되기 때문이다.

아래는 파일내에 선언한 관련 함수들이다mask.cfg DES native

에 정의된 다섯 개의 함수는 에서 처리하기 위해 필요한 인자를 생성하NativeInterface OS

고 에 존재하는 함수를 호출하기 위해OS OCAPI(Open Chip Architecture Platform

를 이용한다 현재 과 는 에서 제공하는 인터페이스로 연결된다Interface) . , VM COS OCAPI .

아래 함수들은 인터페이스에서 의 함수를 직접 호출하며 에 정의되OCAPI OS , ocapi_api.c

어 있다.

Page 79: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 79 -

Page 80: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 80 -

인터페이스 설계8. RSA

가 애플릿 와의 인터페이스. , API

하드웨어적으로 구현된 모듈을 애플릿이 이용하기 위한 인터페이스 구조는 다음과 같RSA

다 에 기능이 모두 구현된 경우와 달리 는 하드웨어 모듈 형태로. COS DES RSA ARM

상에 연결되어 있다 하지만 에서 제어해야 하기 때문에 처리 방식은 와Emulator . , COS DES

동일하다.

애플릿(1)

하드웨어 모듈을 이용하기 위해서는 앞서 설명한 와 같이 애플릿 상에RSA DES , API, VM

인터페이스가 구현되어야 한다 하드웨어 모듈은 입력으로 메시지. RSA , , exponent,

를 받고 암호화된 데이터 값을 출력으로 내보낸다 복호화 시에는 와 대modulus . exponent

응되는 값 과 복호화 할 메시지 값을 입력으로 받아 원본 메시지(e d = 1 mod n) , modulus

를 출력으로 내보낸다 이러한 기능을 이용하기 위해서 애플릿에서는 메시지와. , exponent,

값을 키 값으로 받아서 에게 인자로 넘겨주어야 한다 지금까지 설명한 내용은modulus VM .

아래와 같은 함수 호출로 요약된다.

메시지 값 수신, exponent. modulus♣

Page 81: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 81 -

Page 82: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 82 -

Page 83: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 83 -

Page 84: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 84 -

값 생성Key♣

입력 데이터 암호화 복호화 수행,♣

(2) API

애플릿에서 호출하는 함수들은 자바 카드에서 규정한 를 통해 하위 및 에 구현API VM COS

된 함수들을 이용하게 되며 앞서 애플릿에서 사용하는 함수들과 연관된 가 처리하는 기, API

능은 다음과 같다.

Page 85: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 85 -

값 생성Key♣

입력 데이타 암호화 복호화 수행,♣

Page 86: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 86 -

나 과의 인터페이스. API, VM

(1) VM

에 선언된 함수들의 실제 코드는 과 상에 구현되어있으며 는Native methods VM COS , API

에 선언된 함수를 호출하면서 과 에서 해당 명령어를 처리할 수 있native methods VM COS

는 파라미터 값을 넘겨주게 된다 일례로 상의 에 구현된 코드를. , VM Nativeinterface.c RSA

나타내면 다음과 같다.

암호화 복호화RSA ,♣

이 함수 역시 상의 함수에 의해 로부터 호출되게NativeInterface.c callnative function index

되며 아래와 같이 등록시키면 된다, .

Page 87: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 87 -

은 의 파일에 다음과 같이 정의하며RSAENC_NM, RSADEC_NM mask generator config ,

상에서 함수 호출 시 와 연결되게 된다VM RSA() .

아래는 파일내에 선언한 관련 함수들이다mask.cfg RSA native .

인터페이스에서 의 함수를 직접 호출하게 되는데 에 정의된 관OCAPI OS , ocapi_api.c RSA

련 함수는 다음과 같이 정의된다.

Page 88: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 88 -

인터페이스 설계9. ECC

가. API

는 애플릿과 의 중간에 위치하며 이들 사이에서 인터페이스를 제공해 주는 중ECC API VM

요한 역할을 담당한다 현재 구현된 암호 알고리즘은 아래와 같은 방법을 통해 수행된. ECC

다.

우선 암호화의 경우 카드는 상대방의 공개키 를 가져와서 자신이 생성한 난수, ECC , (kBP)

를 이용하여 를 계산한다 여기서 은 암호 모듈이kA kAkBP . , scalar multiplSIMation ECC

담당한다 는 좌표로 이루어진 이므로 입력 메시지를 와 더하기 위해서는. P x, y point , kAkBP

입력 메시지도 타원곡선상의 한 점으로 매핑시켜 주어야 한다 즉 이러한 모든 작업은. , OS

상에서 발생되며 모든 암호화 연산이 끝난 후 는 암호화 메시지로, OS (kAP,

를 반환해준다 그림 은 암호화 시 사이에 주고받는PM+kA(kBP)) . [ 3-8] ECC API-VM-OS

를 나타내고 있다argument .

암호화와 달리 복호화의 경우는 입력메시지가 이기 때문에 카드는 입(kBP, PM+kB(kAP))

력메시지의 를 추출해내어 비 키 를 사용하여 를 계산해낸다 계산된kBP kA kAkBP .

값을 입력 메시지에서 감소시킨 후 으로부터 실제 입력 메시지 을 계산해 낸kAkBP , PM M

다 여기서도 와 가 각각의 기능을 담당한다 모든 복호화 연산이 끝난 후 는 입. OS H/W . OS

력 메시지 을 반환해준다 물론 여기서 타원 곡선을 결정해주는 상수 값 위수 기약다항M . , , ,

식 등도 로 필요하다 하지만 현재 개발된 암호 모듈은 타원곡선을 결정해argument . , ECC

놓은 상태에서 사용되기 때문에 타원 곡선 결정 상수 값과 위수는 에서 제외된다argument .

그림 은 암호화 시 사이에 주고받는 를 나타내고 있다[ 3-8] ECC API-VM-OS argument .

Page 89: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 89 -

그림 암호화 시 인터페이스[ 3-8] ECC API-VM-OS

Page 90: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 90 -

그림 복호화 시 인터페이스[ 3-9] ECC API-VM-OS

나 알고리즘 구현. ECC scheme

알고리즘은 암ECC ㆍ복호화를 위한 알고리즘과 서명을 위한 로 나ECC ElGamal ECDSA

뉘며 둘 다를 구현하기 위한 를 설계한다 먼저 그림 은 이미 구현된 카interface . , [ 3-3] , SIM

드내의 암호 모듈 및 이와 연동하는 간의 를 보여 주고 있다 여기에서RSA S/W interface .

는 크게 부분과 부분으로 나누어 입출력 관계를 나타내고 있다 에Off-card Card . Off-card

서는 암호화 또는 복호화에 필요한 키 데이터를 발생하여 형태로 통신하게 되며 내, APDU

부적인 동작에 따른 각 모듈간의 는 그림에서 도시한 바와 같다interface .

및 는 의 를 바탕으로 유사한 입출력 를 가지ECC ElGamal ECDSA RSA interface interface

도록 설계한다.

Page 91: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 91 -

기본 가정은 첫째 공개되어야 하는 값들 중에서 즉 선택한 타원 곡선을 결정하는 곡선, E, ,

계수는 에 의해 이미 선택되어 있으므로 무시한다 둘째 및 각H/W . , Card Off-card(=Host)

각의 비 키 및 공개키가 아닌 하나의 비 키와 공개키를 가지고서 암ㆍ복호화 및 서명을

수행한다 셋째 비 키나 값과 같이 난수 발생기에 의해 제공되어야 할 값들은 일단 현. , k

재 에서는 에서 제공 받는 것으로 한다 물론 실제 구현에 따라 두번째interface Off-card .

와 세번째 가정은 수정의 필요가 있다.

(1) ECC ElGamal

그림 은 카드내의 알고리즘을 구현하기 위해 암호 모듈 및[ 3-10] SIM ECC ElGamal ECC

이에 연동하는 간의 를 나타낸다S/W interface .

Page 92: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 92 -

그림 카드내의 암호 모듈 및[ 3-10] SIM RSA S/W interface

Page 93: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 93 -

그림 카드내의 암호 모듈 및[ 3-11] SIM ECC S/W interface(ECC ElGamal)

Page 94: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 94 -

(2) ECDSA

그림 는 카드내의 를 구현하기 위해 암호 모듈 및 이에 연동하는[ 3-12] SIM ECDSA ECC

간의 를 나타나는데 서명용 키 전달 및 서명 생성을 위한 이다S/W interface , interface .

Page 95: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 95 -

그림 카드내의 암호 모듈 및[ 3-12] SIM ECC S/W interface(ECDSA)

Page 96: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 96 -

암호 모듈10. RSA

가 용 곱셈 모듈. RSA

효율적인 알고리즘을 구현하기 위해서는 공개키 에 의해 반복적으로 수행되는 지수RSA , e

승 연산을 수행하기 위한 고속의 설계가 필요하다Multiplier .

곱셈 모듈은 의 긴 데이터를 처리하기 위한 모듈로써 데이터를 기본으로 구1024bit 32bit

성되어 있다.

(1) Multiplication block

입력 데이터를 받아서 곱셈 연산을 수행하는 부분으로 곱셈연산은 다시 상위32bit , 16bit

와 하위 로 구분해서 수행된다16bit .

간의 곱셈은 새로운 의 결과를 생성하며 이때 생성된 데이터중 상위16bit 32bit 32bit 16bit

는 다음 곱셈 연산의 결과와 더해지는 를 의미한다carry .

Page 97: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 97 -

그림 비트 곱셈 연산[ 3-13] 32

(2) Adder Block

곱셈을 수행하는 경우 하위단에서 발생하는 를 고려해서 현재의 곱셈 결과와 연32bit carry

산해줘야 한다 이렇게 연산되어진 결과는 하나의 를 생성하게 된다. partial product .

Page 98: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 98 -

(3) Partial product adder block

곱셈과 덧셈의 결과로 생성되어 나오는 들을 시키면서 최종 결과를partial product shift

시키는 부분이다 여기서도 마찬가지로 간의 덧셈에서 발생하는update . partial product

를 고려해서 연산이 이루어져야 한다carry .

그림 용 곱셈기 모듈 블럭도[ 3-14] RSA

Page 99: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 99 -

나 용 모듈러 곱셈기. RSA

에 사용되는 의 구현에는 많은 방법이 제안되고 있으나RSA modular multiplier hardware ,

하드웨어 구현의 편리성과 효율성으로 몽고메리 곱셈기가 가장 많이 적용되(Montgomery)

고 있다 본 절에서는 몽고메리 모듈러 곱셈기의 구현적 측면에서 살펴보기로 하겠다. .

곱셈 알고리즘(1) Montgomery

곱셈 알고리즘은 다음과 같은 순서로 행해진다Montgomery .

T = A*B①

M = T*N mod R②

T = T + M*N③

return T/R④

Page 100: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 100 -

그림 곱셈기 블럭도[ 3-15] Montgomery

(2) Interface block

인터페이스 블록은 모드로 동작하면서 카드 프로세서인 프로세서 메ASB slave , SIM ARM ,

모리 입출력 장치 등과 통신한다 이 블록을 통하여 처리해야할 데이터 및 처리한 데이터, . , ,

명령어 인터럽트 신호 등을 송수신한다, .

Page 101: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 101 -

(3) Control block

곱셈을 시작하여 끝날 때까지 이루어지는 모든 데이터 신호를 발생하Montgomery control

는 블럭으로 연산이 끝난 경우 신호를 발생하여 연산이 종료되었음을 나타낸다, interrupt .

(4) Comparator and Subtractor

곱셈의 결과가 나왔을 때 그 결과값이 모듈러 값보다 큰 경우에는 다시 결과Montgomery ,

값에서 모듈러를 빼줘야 한다 뺄셈기 블럭은 기본 단위로 연산이 수행되며 실제로. 32bit ,

대용으로 사용되고 있다comparator .

다 지수승 연산기. Montgomery

암호 알고리즘의 암호화 및 복호화는 앞에서 언급했듯이 반복적인 곱셈과 지수승 연RSA

산을 필요로 한다 승산기는 설계된 곱셈기를 이용한 지수승 연. Montgomery Montgomery

산을 수행한다.

Page 102: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 102 -

그림 지수승 연산기 블럭도[ 3-16] Montgomery

지수승 연산기 알고리즘(1) Montgomery

입력 :⇒ Modulus m = (ml-1.....m0)

R = bl

m = -m - 1 mod R

Page 103: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 103 -

e = (et......e0)2

메시지 x

출력 :⇒ out = xe mod m

알고리즘⇒

을 계산x = xR mod m①

을 계산A = R mod m②

상위 에서 하위 로 진행하면서 다음을 계산한다bit bit .③

(1) A = Mont_Pro(A,A)

만약 해당하는 지수 가 이면 을 수행(2) bit 1 A = Mont_Pro(A,x)

을 수행 과정임A = Mont_Pro(A,1) Montgomery Reduction ...④

결과값으로 를A return⑤

실질적으로 승산기에서 및 는 내부 회로 구현시 성능에 비해 너무 큰 면Montgomery x A

적을 차지하므로 입력으로 주어지는 경우가 많다.

나. Interface block

인터페이스 블록은 모드로 동작하면서 카드 프로세서인 프로세서 메ASB slave , SIM ARM ,

모리 입출력 장치 등과 통신한다 이 블록을 통하여 처리해야할 데이터 및 처리한 데이터, . , ,

명령어 인터럽트 신호 등을 송수신한다, .

다. Control logSIM

값을 입력 받아서 유효 를 결정하고 지수승 연산을 수행하는key , key bit size Montgomery

데이터 신호를 발생 및 데이터 등에 필요한 신호를 발생한다control load .

Page 104: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 104 -

타원곡선 암호 모듈11.

가 타원곡선 암호 알고리즘 모듈. Polynomial Basis

상에서의 타원곡선 암호 모듈은 에 제한된 비트와 비트 두Polynomial basis SEC2 163 193

가지를 구현하도록 한다 이들은 기본적으로 비트 길이와 최소 다항식만 다를 뿐 구현 방법.

은 거의 동일하다 본 절에서는 비트 타원 곡선용 암호 모듈에 대한 곱셈 및 역수 연산. 163

블록 구조도와 이에 대한 시뮬레이션 결과를 보인다.

상에서의 타원곡선 암호 모듈 구조도Polynomial Basis

곱셈 연산 블록

상에서의 타원곡선 암호 모듈의 곱셈을 위한 연산 블록은 곱Polynomial Basis polynomial

셈 연산 블록과 부분으로 나뉠 수 있다 곱셈 연산 블록은 병렬구reduction . Polynomial

조로 설계되었다 기본 연산 단위는 사이즈인 비트로 하였다 따라서 곱셈의. AMBA bus 32 .

두 입력은 각각 로 표현되며 연산 순서는 그림 과 같다 과정은6word [ 3-17] . Reduction

그림 에서 보는 바와 같이 곱셈 연산과 동시에 수행된다 이러한 방식으[ 3-11] polynomial .

로 승수 를 상위 부터 연산을 해 주면 총 수인 에 최종 출력 값을 얻(b) word , word 6 cycle

을 수 있다 하드웨어 사이즈를 줄이기 위해서는 기본 비트 곱셈 블록 하나만 이용하는. 32

구조를 택할 수 있다 하지만 이 경우 하드웨어는 약 로 줄일 수 있으나 그에 따른 연산. 1/5

소요시간은 약 배 정도 증가하게 된다10 .

Page 105: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 105 -

그림 곱셈 연산 순서[ 3-17] polynomial

Page 106: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 106 -

그림 연산[ 3-18] Reduction

그림 은 전체적인 곱셈 연산 블록의 블록도 이다 블록은 곱셈 블록[ 3-18] . , add_reduction

블록 제어 블록 입출력 레지스터로 구성된다, , .

Page 107: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 107 -

그림 타원 곡선 암호모듈 곱셈 블록[ 3-19] Polynomial Basis

곱셈 블록

곱셈 블록은 곱셈 연산을 수행하는 블록이다 기본적으로 비트 연산기 개로polynomial . 32 6

구성되어 입력 레지스터 의 모든 값과 의 한 값의 곱을 동시에 수행한다 이 때 각a b word .

비트 곱셈기의 출력 값들은 상하위 곱셈기의 출력 값과 더하는 연산이 필요하며 그림32 , [

이러한 연산은 블록에서 수행된다3-19] add_reduction .

Page 108: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 108 -

블록Add_reduction

블록은 각 비트 곱셈기 들의 상하위 들을 더하는 연산과Add_reduction 32 , word reduction

연산을 위한 블록이다 은 비트 단위로 수행되지 않고 해야 할 모든. Reduction reduction

데이터 값들이 병렬로 동시에 된다 이때 해야 하는 값은 비트의reduction . reduction 163

표현 범위보다 큰 비트 값들로 비트 곱셈기로부터 전달되는 값과 레지스터32 accumulator

로 동작하는 출력 레지스터로부터 전달되는 값 두 종류가 존재한다, .

입출력 레지스터

타원곡선 암호 알고리즘의 곱셈을 수행하는데 필요한 레지스터로 입출력 데이터를 저장한,

다 각자 고유 주소 값이 할당되어 있으며 출력 를 통하여 출력된다 값이 출력되지 않. , mux .

는 동안에는 상태를 유지한다high impedance .

제어 블록

곱셈 블록의 데이터 패스 관리 및 입출력 레지스터로의 데이터 로드 그리고 인터페이, ASB

스를 제어 한다 블록의 동작은 제어 블록의 의 값에 따라서 수행된다. control register .

Page 109: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 109 -

역수 연산 블록

그림 타원 곡선 암호모듈 역수 연산 블록[ 3-20] Polynomial Basis

그림 은 타원 곡선 암호 모듈의 역수 연산 블록이다 구현 알고리[ 3-20] Polynomial basis .

즘은 다음과 같은 알고리즘이다AIA .

입력 최소다항Initialize integer k = 0, and polynomials B = 1, C =0, F = A( ), G = M(

식)

Loop1 Wile F is even, do F = F/x, C = C*x, k = k+1.

If F = 1, then return B, k

If deg(F) < deg(G), then exchange F, G and exchange B, C.

F = F + G, B = B + C

Goto Loopl

Page 110: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 110 -

Loop 2

:(reduction)

B = B * M

B = B/x, k = k+1.

If k = 0, then return B

Goto Loop2.

알고리즘에서와 같이 하드웨어 동작도 크게 두 단계로 수행된다.

동작Loop1

동작은 값이 이 될 때까지 줄여 가면서 와 값을 계산하는Loop1 F register 1 B C register

과정으로 크게 제어 블록 입출력 레지스터 블록 연산 블록 비교기 블록 입력 블록, , , , mux

으로 구성된다.

제어 블록

역수 연산 블록을 제어하며 인터페이스도 담당하고 있다 구체적으로 각 레지스터 제, ASB .

어 신호 및 입력 의 제어 신호를 생성하고 내부적으로 레지스터 값을 판단하는 동작mux F

을 수행한다.

입출력 레지스터

입력값과 연산에 필요한 값을 저장하기 위한 레지스터이다 레지스터와 레지스터는 입. F G

력 레지스터로 사용되기 위한 신호가 별도로 있고 레지스터는 연산 시작 시 로 세load , G 1

팅하기 위한 신호를 별도로 가지고 있다 레지스터는 출력 레지스터로 사용된다set . B .

연산 블록

연산 블록은 와 레지스터의 합 와 레지스터 합을 연산하기 위한 블록이다F G , C B .

에서 더하기 연산은 가 없으므로 단순히 비트 별로 연산만 해주Polynomial basis carry xor

면 된다.

Page 111: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 111 -

비교기 블록

레지스터의 값과 레지스터 값의 크기 비교와 레지스터의 값이 인가 판단하기 위한F G F 1

블록이다 이 블록의 출력 값에 따라서 연산의 데이터 가 수정된다. path .

입력 블록mux

각 레지스터들의 입력 값을 결정하기 위한 블록으로 이 를 제어함으로서 레지스mux F, G

터 값 또는 레지스터 값의 동작을 수행한다 또한 동작도 이C, B switching . shifting mux

에 의해 수행되는데 비트부티 비트까지 가능하다1 4 shift .

동작Loop2

동작은 곱셈에서와 같은 동작을 수행하는 데 곱셈에서는 달리 최소 다항Loop2 reduction ,

식을 더하면서 을 수행한다 이러한 동작을 레지스터의 값만큼 반복하는데 하reduction . K ,

드웨어에서는 비트 단위로 처리하지 않고 비트 단위로 동작이32, 16, 8, 4, 2, 1 reduction

수행될 수 있도록 설계되었다 을 위한 블록은 에서 사용된 레지스터 및. Reduction loop1 B

연산 블록과 제어 블록 레지스터 및 연산 블록 등으로 구성된다, K .

제어 블록

레지스터 값에 따라서 비트 비트 비트 비트 비트 또는 비트 동K 32 , 16 , 8 , 4 , 2 1 reduction

작을 수행할 수 있도록 제어한다.

레지스터 및 연산 블록K

레지스터는 정보를 담고 있는 레지스터로 이 값을 비교하여 몇 비트 병렬K reduction

을 수행할 지 결정하게 된다 에 사용된 값은 자동으로 빼지도록 되어reduction . Reduction

있다.

레지스터 및 연산 블록B

레지스터는 실제 을 수행해야 하는 값을 저장하는 레지스터로 제어 값에 따라B reduction

서 을 수행한다reduction .

Page 112: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 112 -

수행 시간 측정12.

가 암호 함수 수행 시간. RSA

분주(1) Timer 분주 를 분주함: 256 (main clock 13 256 )㎒

계산 공식elapsed time :(0xFFFF counter value) × 256/(13×106)→

키 및 모듈러 값 수(2) bit

입력(M) : 1024 bits

키 키encryption (E) :32 bits, decryption (D) : 1024 bits,

모듈러 값(N) : 1024 bits

수행 시간(3)

counter value elapsed time(s)

encryption(total) 0x6D6E 0.738875

decryption(total) 0x54B6 0.863488

전처리Encryption(S/W ) 0x6DE9 0.736453

전처리Decryption(S/W ) 0x6DE9 0.736453

encryption(H/W+a) 0xFF89 0.00232369

decryption(H/W+a) 0xE6D1 0.126937

표 암복화 수행 시간 측정< 3-1> RSA

소요 예상 시간 요약(4) H/W

ㆍ 수행 시간encryption

곱셈 수행 시간 곱셈 수행 횟수: 120us( ) × 18( ) = 0.00216 s = 2.16 ms

ㆍ 수행 시간decryption

내의 의 개수: 120us × (1023 + key bit 1 )

정도120 US × (1023 + 500) = 180 ms

Page 113: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 113 -

나 암호 함수 수행 시간. ECDSA

사용 분주(1) timer 분주 를 분주함: 256 (main clock 13 256 )㎒

계산 공식elapsed time :(0xFFFF counter value) × 256/(13×106)→

입력 키 기저점 수(2) , , byte

입력 기저점 공개키는 좌표이며 각 좌표의 수를 더한 값임* , , byte

측정시 사용한 실제 값은 내용 에 있음** ECCTest 010719.txt file

입력(M) :48 bytes

비 키(d) :24 bytes

기저점(P) : 48 bytes

공개키(Q) : 48 bytes

난수(k) : 24 bytes

수행 시간(3)

counter value elapsed time(s)

encryption(total) 0xF79E 0.04224

decryption(total) 0xF6DB 0.04608

encryption(H/W+a) 0xF83E 0.039089

decryption(H/W+a) 0xFC16 0.019712

표 서명 및 검증 수행시간 측정< 3-2> ECDSA

Page 114: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 114 -

라 소요 시간 요약. H/W

은 상수 연산 수행 시간Scalar MultiplSIMation(nP, n )

kP : 19.4923 ms

kdP = kQ = 19.5092 ms

dkP = 19.6661 rns

의 경우 와 연산을 하며 의 경우 의 연산을 수행한다* encryption kP kdP decryption dkP .

Page 115: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 115 -

제 장 연구개발 결과4

제 절 연구 결과1

추진 계획 및 실적1.

목표 세부 계획 실적차이

달성도( (%))

개방형-구 조 의

개발COS

- SIM COS규격 수립 및분석

선정 및 도입- VM구현- API, VM, COS, Applet

작성 및 기능 검증 보- Test Program안

상의 통합 운영 시험 수행- H/W 없음(100%)

개발- SIM환경 구축

규격 수립- H/W개발환경 구축- S/W

보안기술-개발

암호 체계-선정

에서 권고하는 암호 알고리즘 선- SEC2정비대칭키 암호 구- : RSA, ECC(H/W

현)대칭키 암호 알고리즘- : DES3, SEED구현(S/W ) 없음(100%)

암호 모듈-설계

비대칭키 암호 알고리즘 대상-ㆍ 비트RSA : 1024ㆍ 비트EC :Polynomial basis, 163

시험용-규격H/W

및 구조 개발

규격- H/W수립

시험용 시스템 규격- H/Wㆍ규격 수립을 위한 구성TFTㆍ시스템에서의 보안성 및 취약성 검토

시스템 형상 수립- H/Wㆍ기능 구현을 위한 모듈 정의ㆍ형상 관리 및 기술 검토 회의

없음(100%)

규- Emulator격수립 및 구조설계

구조 수립 및 구조 설계- Emulatorㆍ시스템 요구 규격 및 회의ㆍ 비트 데이터 구조 설계32 BUSㆍ칩 구조상의 모듈 설계VHDL code

Page 116: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 116 -

결과물2.

년 도 내용 및 결과물

차년도1년(2001 -년2002 )

개방형 구조의 개발- COSㆍ개방형 및 비트 마이크로프로세서 기반의 개발32 SIM COS

ㆍ 테스트용 구현SIM COS JCVM, API

암호 모듈 설계-ㆍ 비트 이상의 모듈 설계1024 RSA : FPGA

ㆍ 비트 이상의 타원 곡선 암호 모듈 설계160 : FPGA

시험용 규격 및 구조 개발- H/Wㆍ 규격 수립 시스템 규격서H/W :

ㆍ 규격 수립 및 구조 설계Emulator

ㆍ 에뮬레이터 개발ARM

제 절 개발 제품 활용도2

이번 제안의 카드 운영체제에 있어서의 독창적인 점들은 다음과 같이 정리 할 수 있SIM

다.

카드 운영체제를 응용 서비스 프로그램과 독립적으로 개방형 구조로 다기능 지원하1) SIM

며 또한 자유로이 새로운 서비스를 수용할 수 있는 개방형 구조이다, .

Page 117: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 117 -

서비스의 응용 프로그램은 또는 메모리에 저장한다EEPROM FLASH .

표준 암호 알고리즘을 지원하며 인증키 생성 암호화 키 생성 공유 비 키2) IMT-2000 , , ,

데이터 생성 검증 기능을 구현함으로서 고도의 보안성을 지원한다, .

인증관련 프로토콜 처리 기능 구현 및 관련 암호 알고리즘 구현 및3) RSA, ECC

환경에 적합하도록 카드 기반 프로토콜 설계 및 구현하였다IMT-2000 .

결과적으로 낮은 가격에 높은 비도를 제공할 수 있게 되어 카드 사용자에 이르기까4) SIM

지 안전한 정보교환을 위한 기반을 제공할 수 있다.

이러한 특징들을 바탕으로 할 때 여러 응용분야를 생각할 수 있다 개발된 프로그램 자체, .

적인 내용 이외에 웹 브라우져와 같은 프로그램이나 소프트웨어의 플러그인 형태의 소CAD

프트웨어로 공급할 수 있으며 이를 이용하면 여러 분야의 영상 관련 소프트웨어에서 보안,

성 있는 통신을 할 수 있다.

개인 정보의 교환에 대한 안전성과 기 성을 보장하여 결과적으로 용 다기능, IMT-2000

등의 활성화에 기여할 수 있다SIM Card .

보안이 필요로 되는 비 문서 도면 청사진 등 서식화 된 개인정보( , ), (Signature,

등 를 필요로 하는 전자상거래상의 정보보호에 좀 더 안전한 상거래를Identification Image )

보상해 줄 수 있으며 군사목적으로는 전시 작전지령 작전지도 등의 노출이 되어서는 안, , ,

되는 중요정보의 전송에 사용할 수 있다.

Page 118: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 118 -

제 절 사업화 계획 및 매출목표3

시장진입을 위한 사업화계획1.

가 사업화 계획.

국내는 최근 정보보호 서비스 분야의 급속한 발전 및 요구사항이 증대되면서 매우 많은 분,

야에서 요구되고 있다 무선 인터넷 및 관련 시장의 경우 정보보안 시장에서 새. IMT-2000

로운 파생 시장을 예측하고 있다.

이에 본 개발 제품은 안전한 인증 및 통신을 요구하는 은행이나 산업분야 의료분야나 출입,

제어시스템 등에 응용이 가능한 상품으로 상용화하여 카드생산판매 전문업체와 제휴하여 사

업화 하고자 한다.

나 소요자금 규모.

사업화 차년도 년 상용화 작업 인건비1 (2002 ) :

사업화 차년도 년 소프트웨어로 홍보 영업 비용 소요예상 약 억 원2 (2003 ) : , A/S ( 6 )

다 소요자금 조달방법.

자체자본금 백만원: 556

개발에서 축적된 억원 활용예정LANverter, WireLAN, MyBDM 2

라 시장진입 장애요인 및 해소방안.

기술개발에 주력하여 제품의 소프트웨어기술성평가기준 의 적용 부분은 제품화 추진시 기" "

준을 적용하여 보완 예정

Page 119: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 119 -

최종 과제결과물에 대한 매출목표2.

가 최종 과제결과물의 사업화시기 및 소요기간.

년 월경 년 월 일 넌 월 일- 2003 3 (2002 7 1 - 2003 2 28 )

나 최종 과제결과물의 시장성숙시기 및 예상가격.

시장성숙시기 년- : 2004

예상가격 스마트카드 단가에 포함 런닝로얄티- : ( )

다 연도별 매출목표.

차년도 년o 1 (2003 ) : 100,000 copy, 천원500,000

차년도 년o 2 (2004 ) : 500,000 copy, 천원2,500,000

차년도 년o 3 (2005 ) : 1,000,000 copy, 천원5,000,000

Page 120: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 120 -

제 장 결 론5

용 다기능 운영체제는 의 형대로 카드 의 에IMT-2000 SIM Card ROM Code IC Chip ROM

프로그램 되거나 필요시 부분적으로 에 프로그램 될 수 있다 본 보고서에서는EEPROM .

을 에뮬레이션하기 위한 플랫폼을 개발하였으며 이 플랫폼에 에 저장하여COS H/W , RAM

동작을 확인하였다.

암호 알고리즘을 구현하기 위해 필요한 모듈러 곱셈 알고리즘 중 가상 효율적이라고RSA

알려진 몽고메리 모듈러 곱셈 알고리즘에 대해 살펴보았다 개선된 몽고메리 알고리즘들에.

서 볼 수 있듯이 몽고메리 알고리즘은 하드웨어 구현에서 연산 시간이 많이 소요되는 나눗

셈 연산을 단순 로 처리하여 구현의 효율성을 제공하고 있다는 장점을 제공하고 있다shift .

이러한 몽고메리 알고리즘의 구현 시에는 적용 목적에 따라 다양한 구현 방법이 제안 될 수

있다 따라서 보다 효율적인 암호 알고리즘을 구현하기 위해서는 몽고메리 알고리즘의. RSA

정확한 분석을 포함하여 성능 개선을 위한 구현 방법의 계속적인 연구가 필요하다.

는 소인수 분해 난제를 이용하는 암호 기법과는ECC(ElliptSIM Curve Cryptography) RSA

달리 타원 곡선에서의 이산 대수 해결 난제를 이용한 암호 기법으로 에 비해 적은 키, RSA

길이로서 동등한 안전도를 제공한다 따라서 적은 메모리 및 빠른 처리속도를 필요로 하는.

카드의 응용에서 매우 유용할 것이다 암호 알고리즘을 수행하는데 필요한SIM . ECC ECC

암호 설계 방법에 대해 자세히 다루었으며 인터페이스에 대해 살펴보았API , API VM-OS

다 본 문서에서 기술한 내용 중 암호화 복호화 부분은 현재 개발된 암호 모듈. , ECC / ECC

이 제대로 동작하는지를 테스트 해보기 위해 임시직으로 설계한 것이며 추후 전달되는,

나 기타 사항 등은 변경될 수도 있다argument .

Page 121: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 121 -

카드에서는 알고리즘을 구현하기 위해 암호 모듈을 로 구현하고 있는SIM ECC - ECC H/W

데 각각 키의 와 에 대해 구현하였으며 이, 163 bit polynomial base optimal normal base ,

미 구현된 같은 공개키 알고리즘인 와의 비교를 통해 에 대해, RSA , polynomial base ECC

암호 모듈 및 및 또는 간의 를 설계하였다 하드웨어로 구COS, COS JCVM( API) interface .

현된 암호모듈이나 상에 구현된 암호알고리즘을 애플릿에서COS(Card Operating System)

이용하기 위해서는 상의 를 이용해야 한다 즉 을 통해서 인JCVM native methods . , API, VM

자를 전달 받아 나 에 구현된 암호모듈이나 암호 알고리즘을 수행시켜야 한다OS H/W .

Page 122: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 122 -

참고문헌

[1] Peter L. Montgomery. Modular multiplSIMation without trial division.

MathematSIMs of Computation, vol. 44, No.170, Apr. 1985, pp.519 521.∼

[2] S. R. Dusse and B. S. Kaliski, Jr., A CryptographSIM Library for the Motorola

DSP56000, Advances in Cryptology Eurocrypt 90, Lecture Notes in Computer

Science, No.473, Springer-Verlag, New York, 1990, pp.230~244.

[3] D. E. Knuth, The Art of the Computer Programming : SeminumerSIMal

Algorithms, Vol.2, Addison-Wesley, 3rd ed., 1998.

[4] Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, Handbook of

Applied Cryptography, CRC Press, 1997.

[5] S. C. Coutinho, The MathematSIMs of Ciphers : Number Theory and RSA

Cryptography, A. K. Peters, Ltd., 1999.

[6] Stephen E. Eldridge and Colin D, Walter, Hardware Implementation of

Montgomery's Modular MultiplSIMation Algorithm, IEEE Transactions On Computers

Vol.42, No.6, June 1993, pp.693~699.

[7] Jean-Francois DHEM, Design of an effSIMient publSIM-key crypgraphSIM

library for RISC-based smart cards, Louvain-la Neuve, 1998.

[8] Chen, Java Card Technology for Smart Card, Addison-Wesley, 2000.

[9] Java Card 2.1 Development Kit Users Guide, SUN MSIMrosystems, 1999.

[10] Aleksander JurisSIM and Alfred J. Menezes, "ElliptSIM Curves and

Cryptography", 1997

[11] CertSIMom whitepaper, "Remarks On The Security of The ElliptSIM Curve

Cryptosystem", September 1997.

Page 123: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 123 -

[12] CertSIMom whitepaper, "Current PublSIM-Key CryptographSIM system", April

1997.

[13] Don B. Johnson and Alfred J. Menezes, "ElliptSIM Curve DSA(ECDSA) : An

Enhanced DSA"

[14] MSIMhael Rosing, "Implementing ElliptSIM Curve Cryptography", 1999.

[15] CertSIMom research, "SEC 2 : Recommended ElliptSIM Curve Domain

Parameters", October 1999.

[16] C. Paar, P. Fleischman and P. Soria-Rodriquez, "Fast ArithmetSIM for

PublSIM- Key Algorithms in Galois Field with Composite Exponents", IEEE

Transactions on Computers, pp.1025-1034, 1999.

[17] A.Schroeppel, H.Orman, S.O'Malley and O.S patschek, "Fast key Exchange with

EllipSIM Curve System", Advance in Cryptology-CRYPTO'95, 1995.

[18] A. J. Menzes, P.C van Oorschot, S.A. Vanstone, Handbook of Applied

cryptography CRC, 1997.

[19] Bruce Schneier, Applied Cryptography, John Wiely & Sons, Inc, 1996.

[20] http://java.sun.com/products/javacard

Page 124: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 124 -

부록 용어 정의A.

DES(Data Encryption Standard)●

에 정의된 대칭형 암호 알고리즘FIPS 46-2

HAS-160●

을 따르는 한국표준 해쉬 알고리즘TTA.IS-10118

KCDSA●

이산대수 문제에 기반을 둔 에 따르는 한국표준 전자서명 알고리즘TTA.KO-12.0001

LDAP●

를 준용하는 인터넷 디렉토리 접근 프로토콜RFC 2559

RSA●

에 기술된 공개키 서명 알고리즘PKCS #1

개인키(private key)●

공개키 암호 시스템에서 전자서명을 하거나 복호화를 하는 데 사용하기 위해 개인만이 보유

하는 비 키

공개키(publSIM key)●

공개키 암호 시스템에서 사용자의 전자서명을 검증하거나 암호화를 하는 데 쓰이는 키

메시지 다이제스트(Message Digest)●

메시지를 해쉬한 고정길이의 결과 값

메시지 인증 코드(MAC : Message AuthentSIMation Code)●

암호 기술들을 이용하여 메시지로부터 생성되고 데이터 무결성 검증시 요구되는 증거값,

해쉬 함수●

가변 길이의 비트를 일정 길이의 비트로 대응시켜주는 함수

Page 125: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 125 -

부록 약어B.

API ApplSIMation Programming Interface

APDU ApplSIMation Protocol Data Unit

CAPI CryptographSIM ApplSIMation Programming Interface

DES Data Encryption Standard

CBC Cipher Block Chaining

COS Card Operating System

DSA Digital Signature Algorithm

DSS Digital Signature Standard

FPKI Federal PublSIM Key Infrastructure

HAS Hash Algorithm Standard

SIM Integrated Circuit

IDEA International Data Encryption Algorithm

IDUP Independent Data Unit Protection

JCVM Java Card Virtual Machine

KCDSA Korean CertifSIMate-based Digital Signature Algorithm

MAC Message AuthentSIMation Code

MAPI Messaging ApplSIMations Programming Interface

MD2 Message Digest 2

MD5 Message Digest 5

PIN Personal IdentifSIMation Number

PKCS PublSIM Key Cryptography Standards

PKI PublSIM Key Infrastructure

RC4 Rivests Code number 4

RC5 Rivests Code number 5

RSA Rivest, Shamir, and Adelman

ECC ElliptSIM Curve Cryptosystem

ECDSA ElliptSIM Curve Cryptosystem Digital Signature Algorithm

ECDH EllipSIM Curve Diffie Hellman

SHA Secure Hash Algorithm

SHS Secure Hash Standard

VM (Java Card) Virtual Machine

Page 126: 최종결과보고서 SIMCard 접속운영체제 (SIMCardOperatingSystem) · 은카드의물리적인소유 스마트카드하드웨어와소프트웨어에대한초기지식 그리고추,,

- 126 -

기술개발결과 요약표

기술개발결과 내역○

구문

총참여인력(M/Y)

국내특허 국제특허 논 문

시제품 S/W

기타(기술문서 :TM,TD

출원 등록 출원 등록SCI,SSCI

국제학술

국내학술

차1년도

3.6 - - - - - - - 1 3 10

총계 명11 건 건 건 건 건 건 건 건1 건3 건10

지적재산권 명세○

구분 제목/ 성명 국명 출원번호 출원일 등록번호 등록일 비고

<S/W>보안 알고리즘ECC

프로그램

김영국외 2

대한민국2002.5.30

.등록예정

<S/W>대칭키 비대칭키를/이용한 데이터 및키 암복호 프로그램

김영국외 2

대한민국 2002.5.30등록예정

<S/W>프로그램COS

김영국외 2

대한민국2002.5.30

.등록예정