KR100438189B1 - 보조 프로세서를 이용한 스마트 카드 - Google Patents

보조 프로세서를 이용한 스마트 카드 Download PDF

Info

Publication number
KR100438189B1
KR100438189B1 KR10-2000-0080597A KR20000080597A KR100438189B1 KR 100438189 B1 KR100438189 B1 KR 100438189B1 KR 20000080597 A KR20000080597 A KR 20000080597A KR 100438189 B1 KR100438189 B1 KR 100438189B1
Authority
KR
South Korea
Prior art keywords
card
java
java card
processing means
platform
Prior art date
Application number
KR10-2000-0080597A
Other languages
English (en)
Other versions
KR20020051115A (ko
Inventor
김영진
이창욱
손승원
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2000-0080597A priority Critical patent/KR100438189B1/ko
Publication of KR20020051115A publication Critical patent/KR20020051115A/ko
Application granted granted Critical
Publication of KR100438189B1 publication Critical patent/KR100438189B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 보조 프로세서를 이용한 스마트 카드에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 자바 플랫폼을 탑재한 스마트 카드에서 바이트코드를 수행하는 인터프리터에, 바이트코드 수행 및 수행 지원 전용 하드웨어인 보조 프로세서를 사용하여 처리 속도 등의 성능을 향상시킨 보조 프로세서를 이용한 스마트 카드를 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 자바카드 플랫폼을 탑재한 스마트카드에 있어서, 자바카드 가상기계의 사양을 따르는 실행시간 데이터 영역을 분산 할당하여, 자바카드를 지원하는 데이터 및 프로그램을 저장하고 있는 저장수단; 접촉/비접촉식으로 외부 단말과의 통신을 수행하기 위한 입출력 처리수단; 카드의 접근 혹은 삽입시에 발생하는 인터럽트를 처리하기 위한 인터럽트 처리수단; 카드 내부의 데이터를 보호하고, 자바카드 애플릿이 수행될 때 필요로 하는 데이터에 대해 암/복호화를 수행하기 위한 암/복호화수단; 외부로부터의 비정상적 침입에 대한 카드 해킹을 방지하기 위한 해킹방지수단; 자바카드 보조처리수단을 지원하는 객체 지향 연산 소프트웨어(인터프리터)를 지원하고, 카드 전체의 제어 및 필요한 연산을 수행하기 위한 주처리수단; 및 자바카드 응용프로그램 및 자바카드 애플릿들을 구성하는 자바카드 바이트코드(bytecode) 들 중에서 범용 명령어들에 대한 수행방식을 재구성 가능한 하드웨어로 구현하고 있어, 상기 인터프리터와 공동으로 자바카드 바이트코드를 고속 수행하는 상기 자바카드 보조처리수단을 포함하되, 상기 자바카드 보조처리수단은, 필드 프로그래머블 게이트 어레이(FPGA)와 같은 재구성이 가능한(reconfigurable) 소자를 이용하여 구현되어, 자바카드 플랫폼의 향후 개정이나 같은 플랫폼내에서도 여분의 성능개선 혹은 기타의 목적으로 하는 자바카드 바이트코드 개정, 추가, 변경, 삭제의 수정 상황에 대해서 유연성을 갖는 것을 특징으로 함.
4. 발명의 중요한 용도
본 발명은 스마트 카드 시스템 등에 이용됨.

Description

보조 프로세서를 이용한 스마트 카드{The Smart Card using Coprocessor}
본 발명은 보조 프로세서를 이용한 스마트 카드에 관한 것으로, 더욱 상세하게는 자바(Java) 플랫폼을 탑재한 스마트 카드에서 바이트코드(bytecode)를 수행하는 인터프리터(interpreter)로, 바이트코드 수행 및 수행 지원 전용 하드웨어인 보조 프로세서를 사용하여 처리 속도 등의 성능을 향상시킨 보조 프로세서를 이용한 스마트 카드에 관한 것이다.
종래의 자바 기반 스마트 카드에는 크게 두 종류가 있다.
그 중 첫번째는, 자바 칩(Chip)을 이용한 스마트 카드로써, 도 1 은 종래의 자바 칩을 이용한 스마트 카드의 구성예시도이다.
도 1에 도시된 바와 같이, 종래의 자바 칩을 이용한 스마트 카드는, 데이터를 저장하는 RAM(110), 기본적인 작동 프로그램을 저장하고 있는 ROM(120), 갱신이 가능한 작동 데이터를 저장하고 있는 EEPROM(130), 외부로부터 스마트 카드의 데이터를 보호하고 내용을 암호화하는 암호화부(160), 외부와의 통신을 위한 입출력부(170), 주변 장치들과의 조정 역할을 담당하는 제어부(150) 및 각종 연산의 수행을 담당하는 프로세서부(140)를 포함한다.
하지만, 상기와 같은 종래의 자바 칩을 이용한 스마트 카드는, 자바 언어로 작성된 응용 프로그램, 즉 자바 애플릿을 수행하는 자바 프로세서를 CPU로 사용하여 주변 장치들을 제어하므로, 자바 플랫폼의 개정이나 자바 바이트코드의 추가, 변경과 같은 시스템 환경의 변화에 대해 대응할 수 있는 유연성(flexibility)이 없다는 문제점이 있었다.
또한, 전체 자바 바이트코드 수행을 하드웨어로 구현함으로써, 기존의 기계 코드(machine code)에 비해 복잡한 기능을 요하는 바이트코드의 수행으로 인해, 시스템의 복잡성(complexity)이 증가하여, 실제적인 구현에 어려움이 있다는 문제점이 있었다.
상기한 두가지의 자바-기반 스마트 카드 중 그 두번째는, 자바 플랫폼(platform)을 탑재한 스마트 카드로써, 도 2 는 종래의 자바 플랫폼을 탑재한 스마트 카드의 구성예시도이다.
도 2 에 도시된 바와 같이, 종래의 자바 플랫폼을 탑재한 스마트 카드는 데이터를 저장하는 RAM(210), 기본적인 작동 프로그램을 저장하고 있는 ROM(220), 갱신이 가능한 작동 데이터를 저장하고 있는 EEPROM(230), 외부로부터 스마트 카드의 데이터를 보호하고 내용을 암호화하는 암호화부(250), 외부와의 통신을 위한 입출력부(270), 각종 연산의 수행을 담당하는 프로세서부(240) 및 인터럽트(interrupt) 신호의 처리를 위한 인터럽터부(260)를 포함한다.
하지만, 상기한 종래의 자바 플랫폼을 탑재한 스마트 카드는, 자바카드 애플릿을 수행하기 위한 수행 엔진으로 소프트웨어 인터프리터를 사용하고, 저장 소자와 같은 주변 장치와 연동시켜주는 하위의 프로그램을 사용하므로, 연산 스택(operand stack)에 데이터를 저장하는 푸시(push) 및 연산 스택으로부터 데이터를 끄집어내는 팝(pop)과 같은, 계속적이고 동일한 연산의 소프트웨어적인 반복 수행시에는 수행 속도가 크게 저하된다는 문제점이 있었다.
다시 말해, 상기와 같이 종래의 자바 칩을 사용한 스마트 카드는, 각 자바 바이트코드의 하드웨어 구현시의 난이도나 하드웨어 구현시의 성능 개선의 최적성(optimization)에 대한 엄밀한 비교없이 모든 자바 바이트코드를 하드웨어로 구현하여 수행함으로써, 자바 플랫폼의 향후 계속적인 개정 또는 변화에 적응하기 위한 유연성이 없으며, 자바 플랫폼에 대한 스마트 카드 칩의 최적화로 인해 자바 언어가 아닌 C 또는 어셈블리(Assembly) 등의 언어의 수행이 요구되는 I/O를 포함하는 전체 시스템의 제어에서 효율성이 떨어지는 문제점이 있다.
또한, 상기 자바 플랫폼을 탑재한 스마트 카드는, 탑재하고 있는 자바 플랫폼 내의 수행 엔진으로서 인터프리터를 사용하므로, C 언어를 원시 기계 코드(native machine code)로 컴파일하여 수행하는 방식에 비해 최소한 20~40배 이상의 처리 속도 지연 요소가 있다는 문제점이 있고, 또한 스마트 카드의 제한된 메모리(특히 램)로 인해 일반 자바 플랫폼이나 퍼스널(personal) 자바 플랫폼 등을 장착하고 있는 범용적인 내장형 자바 시스템(Embedded Java system)에서 성능 개선을 위해 사용하고 있는 JIT(Just-in-Time) 컴파일러 방식 등은 사용하기 어렵다는 문제점이 있다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 자바 플랫폼을 탑재한 스마트 카드에서 바이트코드를 수행하는 인터프리터에, 바이트코드 수행 및 수행 지원 전용 하드웨어인 보조 프로세서를 사용하여 처리 속도 등의 성능을 향상시킨 보조 프로세서를 이용한 스마트 카드를 제공하는데 그 목적이 있다.
도 1 은 종래의 자바 칩을 이용한 스마트 카드의 구성예시도.
도 2 는 종래의 자바 플랫폼을 탑재한 스마트 카드의 구성예시도.
도 3 은 본 발명에 따른 보조 프로세서를 이용한, 자바 플랫폼을 탑재한 스마트 카드의 일실시예 구성도.
도 4 는 본 발명에 따른 자바카드 보조 프로세서, CPU 및 메모리 사이의 상관 관계 설명도.
도 5 는 본 발명에 따른 스마트 카드의 동작 과정의 일예시 흐름도.
도 6 은 본 발명에 따른 보조 프로세서를 이용한, 자바 플랫폼을 탑재한 스마트 카드의 내부 동작 일예시도.
* 도면의 주요 부분에 대한 부호의 설명
310 : 자바카드 보조 프로세서 320 : RAM
330 : ROM 350 : CPU
상기 목적을 달성하기 위한 본 발명은, 자바카드 플랫폼을 탑재한 스마트카드에 있어서, 자바카드 가상기계의 사양을 따르는 실행시간 데이터 영역을 분산 할당하여, 자바카드를 지원하는 데이터 및 프로그램을 저장하고 있는 저장수단; 접촉/비접촉식으로 외부 단말과의 통신을 수행하기 위한 입출력 처리수단; 카드의 접근 혹은 삽입시에 발생하는 인터럽트를 처리하기 위한 인터럽트 처리수단; 카드 내부의 데이터를 보호하고, 자바카드 애플릿이 수행될 때 필요로 하는 데이터에 대해 암/복호화를 수행하기 위한 암/복호화수단; 외부로부터의 비정상적 침입에 대한 카드 해킹을 방지하기 위한 해킹방지수단; 자바카드 보조처리수단을 지원하는 객체 지향 연산 소프트웨어(인터프리터)를 지원하고, 카드 전체의 제어 및 필요한 연산을 수행하기 위한 주처리수단; 및 자바카드 응용프로그램 및 자바카드 애플릿들을 구성하는 자바카드 바이트코드(bytecode) 들 중에서 범용 명령어들에 대한 수행방식을 재구성 가능한 하드웨어로 구현하고 있어, 상기 인터프리터와 공동으로 자바카드 바이트코드를 고속 수행하는 상기 자바카드 보조처리수단을 포함하되, 상기 자바카드 보조처리수단은, 필드 프로그래머블 게이트 어레이(FPGA)와 같은 재구성이 가능한(reconfigurable) 소자를 이용하여 구현되어, 자바카드 플랫폼의 향후 개정이나 같은 플랫폼내에서도 여분의 성능개선 혹은 기타의 목적으로 하는 자바카드 바이트코드 개정, 추가, 변경, 삭제의 수정 상황에 대해서 유연성을 갖는 것을 특징으로 한다.본 발명은 상기의 문제점을 해결하기 위한 방안으로, 자바카드 플랫폼(JavaCard platform)을 탑재한 스마트카드의 성능 개선 및 유지 관리 측면에서의 편의성을 목적으로 한다. 이 내용을 기술하면 다음과 같다.- 하드웨어 수행에 적합한 자바카드 바이트코드들을 수행하는 자바카드 보조 프로세서(JavaCard co-processor)를 사용함으로써, 자바카드 바이트코드 수행 속도를 높여 이를 사용하는 자바카드 탑재 스마트카드의 성능 향상을 가져오게 된다.- 하드웨어로 구현된 뒤에도 자바카드 플랫폼의 개정(revision) 또는 자바카드 바이트코드의 추가, 변경 및 삭제 등의 조정에 따라 재구성 가능한(reconfigurable) 하드웨어를 포함하므로, 계속적으로 변하는 자바카드 플랫폼에 적응하는 유연성을 제공한다.- 하드웨어로 구현에 적합하며 하드웨어로 구현시에 소프트웨어로 구현된 것보다 명령 수행 속도의 개선이 가능한 자바카드 바이트코드들을 하드웨어로 구현함으로써, 구현시 명령 처리 속도 개선을 위한 소프트웨어 및 하드웨어 담당 부분의 설계가 최적성을 가지게 된다.- 보조 프로세서를 전체 시스템 및 운영 체제를 제어하는 CPU에 부가적으로 설치하므로, 기존에 제공되는 소프트웨어적인 자바카드 바이트코드 수행과의 공존을 가능하게 한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 3 은 본 발명에 따른 보조 프로세서를 이용한 자바 플랫폼을 탑재한 스마트 카드의 일실시예 구성도이다.
도 3에 도시된 바와 같이, 본 발명에 따른 보조 프로세서를 이용한 자바 플랫폼을 탑재한 스마트 카드는, 자바카드 가상기계의 사양을 따르는 실행시간 데이터 영역을 분산 할당하여, 자바카드를 지원하는 데이터 및 프로그램을 저장하고 있는 저장부(301)와, 접촉/비접촉식으로 외부 단말과의 통신을 수행하기 위한 입출력 처리부(370)와, 카드의 접근 혹은 삽입시에 발생하는 인터럽트를 처리하기 위한 인터럽터(360)와, 카드 내부의 데이터를 보호하고, 자바카드 애플릿이 수행될 때 필요로 하는 데이터에 대해 암/복호화를 수행하기 위한 암호화부(303)와, 자바카드 보조 프로세서(310)를 지원하는 객체 지향 연산 소프트웨어(인터프리터)를 지원하고, 카드 전체의 제어 및 필요한 연산을 수행하기 위한 중앙 처리부(302) 및 자바카드 응용프로그램 및 자바카드 애플릿들을 구성하는 자바카드 바이트코드(bytecode)들 중에서 범용 명령어들에 대한 수행방식을 재구성 가능한 하드웨어로 구현하고 있어, 상기 인터프리터와 공동으로 자바카드 바이트코드를 고속 수행하는 자바카드 보조 프로세서(310)를 구비한다.특히, 자바카드 보조 프로세서(310)는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 재구성이 가능한(reconfigurable) 소자를 이용하여 구현되어, 자바카드 플랫폼의 향후 개정이나 같은 플랫폼내에서도 여분의 성능개선 혹은 기타의 목적으로 하는 자바카드 바이트코드 개정, 추가, 변경, 삭제의 수정 상황에 대해서 유연성을 갖는다.따라서, 응용 프로그램 수행시간 단축을 위해 자바카드 보조 프로세서(Java Card용 co-processor)(310)를 중앙 처리부(302)의 CPU(350)에 부가하여, CPU(350)에서는 기존의 C 등의 고급언어로 만드어진 machine code가 수행 가능하며, 자바카드 보조 프로세서(310)를 이용해서는 자바카드 바이트코드가 빨리 수행되도록 하여 C언어 또는 자바카드 언어로 작성되어 탑재(build)된 응용 프로그램이 모두 수행 가능하다.
여기서, 저장부(301)는 자바카드 런타임-스택(JavaCard runtime-stack)을 위한 메모리 할당을 포함하며 I/O를 위한 데이터 및 각종 임시 저장값들을 저장하기 위한 램(RAM)(320)과, 자바카드 API(Application Programming Interface), 자바카드 플랫폼의 시스템 파일들 및 자바카드 보조 프로세서를 지원하는 소프트웨어 등의 기본적인 작동 프로그램을 저장하기 위한 롬(ROM)(330)과, 다양한 용도의 응용 프로그램, 즉 자바카드 애플릿(applet) 및 이의 사용시 생성되거나 필요한 객체 등 갱신이 가능한 작동 데이터를 저장하기 위한 이이피롬(EEPROM)(340)을 구비한다.암호화부(303)는 외부로부터 스마트 카드의 데이터를 보호하고 자바카드 애플릿이 수행될 때 필요로 하는 데이터의 내용을 암호화하기 위한 암호화기(380) 및 외부로부터의 비정상적 침입에 대한 카드 해킹을 방지하기 위한 해킹방지기(390)를 구비한다.
중앙 처리부(302)는 스마트 카드 단말기 접근 또는 삽입시에 발생하는 콜드 리셋(cold reset)을 포함하여 각종 인터럽트(interrupt) 신호를 처리하기 위한 인터럽터(360) 및 각종 연산과 제어 기능의 수행을 담당하는 CPU(350)를 구비한다.자바카드 보조 프로세서(310)는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 재구성이 가능한(reconfigurable) 소자를 이용하여 구현되어, 자바카드 플랫폼의 향후 개정이나 같은 플랫폼내에서도 여분의 성능개선 혹은 기타의 목적으로 하는 자바카드 바이트코드 개정, 추가, 변경, 삭제의 수정 상황에 대해서 유연성을 갖는다.
상기 스마트 카드는 자바 가상-기계(Virtual Machine)의 사양이 적용되므로, 자바 플랫폼이 탑재된 스마트 카드의 개방형 운영체제(Open-platform operating system)의 특징인 다중 응용 프로그램(Multi-application program)을 수행하며, 상기 다중 응용 프로그램 각각의 응용 프로그램들은, 자바카드 애플릿 인스톨러(installer)를 통해 외부 호스트(host) 상의 프로그램과 단말기에 의해 스마트 카드 내부의 이이피롬(EEPROM, 340))에 적재(download)되어, 롬(330)에 마스크(mask)되어 적재되는 자바카드 API(Application Programming Interface), 자바카드 플랫폼 시스템 화일(System File), 보조 프로세서(310)를 지원하는 지원 루틴(supporting routine) 및 주변 장치들과 인터페이스하는 하위의 COS(Chip Operating System)와 연동되어 수행된다.
상기 보조 프로세서(310)를 중심으로 상기 스마트 카드의 동작에 대한 일실시예를 살펴보면 다음과 같다.
자바카드 API 및 자바카드 애플릿을 구성하는 자바카드 바이트코드들 중, 보통의 다른 프로세서에서도 가지는 범용 기능의 명령들, 예를 들면, 상수 연산(constant operations), 스택(stack) 연산, 산술(arithmetic) 연산, 시프트와 논리(shift and logical) 연산, 비교와 분기(comparison and branching), 분기와 귀환(jump and return)과 데이터 로딩과 저장 명령(data loading and storing instructions)과 같은 명령들의 수행 방식은 하드웨어로 구현된 상기 보조 프로세서(310)에 의해 수행된다.
하지만, 객체 데이터 접근(accessing object data), 객체 생성(creating object instances), 객체 메소드 호출(invoking object methods) 및 예외 처리(exception handling) 명령과 같은 객체 지향 연산(Object-oriented operations)들은, 종래와 마찬가지로 소프트웨어로 구현된 인터프리터에 의해 수행된다.
여기서, 상기 보조 프로세서(310)는 필드 프로그래머블 게이트 어레이(FPGA : Field Programmable Gate Array)와 같이 재구성 가능한(reconfigurable) 소자를 이용하여 구현할 수 있으므로, 상기한 바와 같이, 자바카드 플랫폼의 향후 개정이나 동일한 플랫폼 내에서도 여분의 성능 개선 또는 기타의 목적으로 하는 자바카드 바이트코드 추가, 변경 등의 수정 상황에 대해서, 종래의 스마트 카드에 비해, 적응할 수 있는 더 큰 유연성을 제공한다.
도 4 는 본 발명에 따른 자바카드 보조 프로세서, CPU 및 메모리 사이의 상관 관계 설명도이다.
도 4에 도시된 바와 같이, 자바 가상-기계의 사양을 따르는 실행시간 데이터 영역(runtime data area)은, 램, 롬, 이이피롬 등과 같은 전용 수행 메모리 영역(400)에 메소드 영역(method area)(401), 힙(heap)(405), 자바 스택(402), PC 레지스터(403) 및 원시 메소드 스택(native method stack, 404) 등을 분산 할당 받아, 이용하게 된다.
이때, 이러한 상기 실행시간 데이터 영역은, CPU에 의해 설정된 메모리 영역 중에서 COS(Chip Operating System)에 의해 할당되거나, COS에 의해 스마트 카드 전체의 공용 메모리에서 소프트웨어적으로 특정하게 할당받게 된다.
애플릿 및 자바카드 라이브러리(412)와 같은 자바카드 응용 프로그램(411), 즉, 각종 자바카드 API들은 자바카드 보조 프로세서를 통하여, 또는 소프트웨어적으로 수행되어야 할 대상으로, 자바카드 바이트코드 및 실행시간 데이터 영역에 적재되어 수행이 용이한 자료구조로 이루어져 있으며, CPU(450)는 자바카드 보조 프로세서 또는 소프트웨어적인 인터프리터에 의해 수행되는 자바카드 메소드 또는 원시 메소드에 따라, 자바카드 보조 프로세서를 지원하는 소프트웨어와 COS 프로그램(422) 및 이에 연결된 주변 장치들을 제어하여 원하는 명령을 수행하게 된다.
이때, COS는 램에 원시 스택 등(431)의 메모리 공간을 할당하여 이용한다.
도 5 는 본 발명에 따른 스마트 카드의 동작 과정의 일예시 흐름도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 스마트 카드의 동작은 통신 방식에 따른 카드 인식(510), 카드 리셋 및 ATR 생성(520), 카드 및 단말기 상호 인증(530) 및 카드와 단말기 사이의 통신 및 응용 프로그램 수행(540)의 순서를 따르며, 종래의 스마트 카드의 일반적인 동작 순서와 동일하다.
다만, 본 발명은 자바 플랫폼을 탑재하고 있는 스마트 카드만을 대상으로 하고 있으므로, 응용 프로그램 적재, 상호 인증을 위한 세션키(session key) 생성과 저장, 발급용 및 기타 데이터 저장을 위한 파일 사용, 보안 정책(security policy) 등은 API 수준에서, 카드 발급자에 의해 구현되어 사용되는 API에 따라 구체적인 동작에서 차이가 나게 된다.
도 6 은 본 발명에 따른 보조 프로세서를 이용한, 자바 플랫폼을 탑재한 스마트 카드의 내부 동작 일예시도이다.
즉, 본 발명에 따른 자바 플랫폼을 탑재하고 있는 스마트 카드의 내부 동작 흐름은 도 6에 도시된 바와 같다.
종래의 자바 칩을 이용한 스마트 카드에서는 CPU인 자바 프로세서가 하드웨어를 이용하여 단말기와의 통신 및 응용 프로그램을, COS 프로그램을 제어하며 수행하는 것과 달리, 본 발명의 자바 플랫폼을 탑재하고 있는 스마트 카드에서는 하드웨어(610)를 거친 단말기와의 통신 내용 및 응용 프로그램을, CPU에서 COS 프로그램(620)과 보조 프로세서 또는 인터프리터(630)와 인터페이스하여 수행한다.
즉, 도 6에 도시된 동작 일예시도는, 자바 플랫폼을 탑재하고 있는 스마트 카드에 있어서는 모두 동일하지만, 종래의 자바 플랫폼을 탑재하고 있는 스마트 카드에서는 소프트웨어적으로 구현된 인터프리터가 수행하던 기능의 많은 부분을, 본 발명에서는 하드웨어적으로 구현된 보조 프로세서가 수행하게 된다는 것은 상술한 바와 같다.
상기한 본 발명은, 자바 플랫폼을 탑재한 스마트 카드에 한정하여 설명하였으나, 자바 플랫폼 이외의 어떠한 프로그래밍 언어 기반의 스마트 카드에서도 적용될 수 있음은 자명하다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 자바 플랫폼 탑재 스마트 카드에서 자바카드 바이트코드를 전용으로 수행하는 자바카드 보조 프로세서를 사용함으로써, 자바카드 바이트코드의 수행 속도를 높여, 시스템 전체에 성능 향상을 가져올 수 있는 효과가 있다.
또한, 본 발명은 하드웨어로 구현이 되더라도 자바 플랫폼의 개정 또는 자바카드 바이트코드의 추가, 변경 및 삭제 등의 조정에 따라 재구성이 가능한 하드웨어를 포함하므로 계속적으로 변하는 자바 플랫폼에 유연하게 대응할 수 있는 효과가 있다.또한, 본 발명은 하드웨어 구현이 적합하며, 하드웨어로 구현시에 소프트웨어로 구현된 것보다 명령 수행 속도의 개선이 가능한 자바카드 바이트코드들을 하드웨어로 구현함으로써 소프트웨어적인 분할 지원 설계를 폭넓게 할 수 있는 효과가 있다.또한, 본 발명은 기존에 제공되는 소프트웨어적인 자바카드 바이트코 수행과의 공존을 가능하게 하여 자바카드 바이트코드 수행 방법을 카드 발행자가 선택 가능하게 함으로써 최종 사용자의 요구 사항을 반영할 수 있는 효과가 있다.

Claims (3)

  1. 삭제
  2. 삭제
  3. 자바카드 플랫폼을 탑재한 스마트카드에 있어서,
    자바카드 가상기계의 사양을 따르는 실행시간 데이터 영역을 분산 할당하여, 자바카드를 지원하는 데이터 및 프로그램을 저장하고 있는 저장수단;
    접촉/비접촉식으로 외부 단말과의 통신을 수행하기 위한 입출력 처리수단;
    카드의 접근 혹은 삽입시에 발생하는 인터럽트를 처리하기 위한 인터럽트 처리수단;
    카드 내부의 데이터를 보호하고, 자바카드 애플릿이 수행될 때 필요로 하는 데이터에 대해 암/복호화를 수행하기 위한 암/복호화수단;
    외부로부터의 비정상적 침입에 대한 카드 해킹을 방지하기 위한 해킹방지수단;
    자바카드 보조처리수단을 지원하는 객체 지향 연산 소프트웨어(인터프리터)를 지원하고, 카드 전체의 제어 및 필요한 연산을 수행하기 위한 주처리수단; 및
    자바카드 응용프로그램 및 자바카드 애플릿들을 구성하는 자바카드 바이트코드(bytecode) 들 중에서 범용 명령어들에 대한 수행방식을 재구성 가능한 하드웨어로 구현하고 있어, 상기 인터프리터와 공동으로 자바카드 바이트코드를 고속 수행하는 상기 자바카드 보조처리수단을 포함하되,
    상기 자바카드 보조처리수단은, 필드 프로그래머블 게이트 어레이(FPGA)와 같은 재구성이 가능한(reconfigurable) 소자를 이용하여 구현되어, 자바카드 플랫폼의 향후 개정이나 같은 플랫폼내에서도 여분의 성능개선 혹은 기타의 목적으로 하는 자바카드 바이트코드 개정, 추가, 변경, 삭제의 수정 상황에 대해서 유연성을 갖는 것을 특징으로 하는 보조 프로세서를 이용한 스마트카드.
KR10-2000-0080597A 2000-12-22 2000-12-22 보조 프로세서를 이용한 스마트 카드 KR100438189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080597A KR100438189B1 (ko) 2000-12-22 2000-12-22 보조 프로세서를 이용한 스마트 카드

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080597A KR100438189B1 (ko) 2000-12-22 2000-12-22 보조 프로세서를 이용한 스마트 카드

Publications (2)

Publication Number Publication Date
KR20020051115A KR20020051115A (ko) 2002-06-28
KR100438189B1 true KR100438189B1 (ko) 2004-07-02

Family

ID=27684876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0080597A KR100438189B1 (ko) 2000-12-22 2000-12-22 보조 프로세서를 이용한 스마트 카드

Country Status (1)

Country Link
KR (1) KR100438189B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100597413B1 (ko) 2004-09-24 2006-07-05 삼성전자주식회사 자바 바이트코드 변환 방법 및 상기 변환을 수행하는 자바인터프리터

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990038700A (ko) * 1997-11-06 1999-06-05 구본준 자바(java)칩을 이용한 멀티 스마트카드
KR20000004480A (ko) * 1998-06-30 2000-01-25 김영환 아이씨 카드/단말기
EP0991033A2 (en) * 1998-10-02 2000-04-05 International Business Machines Corporation Simplified use of smart cards
JP2000112864A (ja) * 1998-10-02 2000-04-21 Ntt Data Corp Javaアプレットによる周辺装置の制御方法及び装置、記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990038700A (ko) * 1997-11-06 1999-06-05 구본준 자바(java)칩을 이용한 멀티 스마트카드
KR20000004480A (ko) * 1998-06-30 2000-01-25 김영환 아이씨 카드/단말기
EP0991033A2 (en) * 1998-10-02 2000-04-05 International Business Machines Corporation Simplified use of smart cards
JP2000112864A (ja) * 1998-10-02 2000-04-21 Ntt Data Corp Javaアプレットによる周辺装置の制御方法及び装置、記録媒体

Also Published As

Publication number Publication date
KR20020051115A (ko) 2002-06-28

Similar Documents

Publication Publication Date Title
US11620391B2 (en) Data encryption based on immutable pointers
Leroy Bytecode verification on Java smart cards
EP0932865B1 (en) Using a high level programming language with a microcontroller
US8938727B2 (en) Method for preventing software reverse engineering, unauthorized modification, and runtime data interception
US7039904B2 (en) Frameworks for generation of Java macro instructions for storing values into local variables
Leroy On-card bytecode verification for Java card
Baentsch et al. JavaCard-from hype to reality
US7739674B2 (en) Method and apparatus for selectively optimizing interpreted language code
KR100505106B1 (ko) 강화된 보안 기능을 갖춘 스마트 카드
JP4378459B2 (ja) 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化
US10223291B2 (en) Secure execution of native code
JP2000132388A (ja) ソフトウェア・コンポ―ネントを処理および配布するための方法および装置
KR100438189B1 (ko) 보조 프로세서를 이용한 스마트 카드
EP1421475B1 (en) Frameworks for generation of java macro instructions for instantiating java objects
Kato Safe and secure execution mechanisms for mobile objects
Wen et al. BrowserVM: Running unmodified operating systems and applications in browsers
EP3884412A1 (en) Computer implemented method
GB2579072A (en) Computer implemented method
Ploog et al. A two step approach in the development of a Java silicon machine (JSM) for small embedded systems
EP1477877A1 (en) Method of implementing a java card firewall into a smart card controller
Azevedo et al. High performance annotation-aware JVM for Java cards
EP1477878A1 (en) Method of implementing an interpreter language firewall into a controller
Markantonakis Java card technology and security
Farhadi et al. Paper tigers: an endless fight
CN114594929A (zh) 一种基于TrustZone的Solidity语言智能合约可信执行引擎

Legal Events

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

Payment date: 20110609

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee