KR100490899B1 - 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법 - Google Patents

자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법 Download PDF

Info

Publication number
KR100490899B1
KR100490899B1 KR10-2002-0071287A KR20020071287A KR100490899B1 KR 100490899 B1 KR100490899 B1 KR 100490899B1 KR 20020071287 A KR20020071287 A KR 20020071287A KR 100490899 B1 KR100490899 B1 KR 100490899B1
Authority
KR
South Korea
Prior art keywords
cryptographic algorithm
algorithm package
file
package
java
Prior art date
Application number
KR10-2002-0071287A
Other languages
English (en)
Other versions
KR20040042701A (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-2002-0071287A priority Critical patent/KR100490899B1/ko
Publication of KR20040042701A publication Critical patent/KR20040042701A/ko
Application granted granted Critical
Publication of KR100490899B1 publication Critical patent/KR100490899B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Abstract

본 발명은 응용 프로그램 개발자가 암호 알고리즘 패키지를 직접 설계하여 테스트 할 수 있도록 암호 알고리즘 패키지 추가 기능을 카드 환경과 동일한 개발 환경에 구현하는 방법에 관한 것이다. 이를 위하여 본 발명은, 자바 컴파일러, 자바 카드 컨버터(converter) 및 마스크 생성기(mask generator)를 구비하여 응용 프로그램의 개발 및 테스트를 수행하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법에 있어서, 암호 알고리즘 패키지 생성 및 파일 작성에 필요한 암호 알고리즘 패키지 소스파일 템플릿을 제공하여, 설계하고자 하는 암호 알고리즘 패키지를 생성하고, 암호 알고리즘 패키지 자바 파일을 작성하는 제1 단계; 상기 암호 알고리즘 패키지를 자바 카드 컨버터에 입력시킬 때 필요한 암호 알고리즘 패키지 컨버터 옵션 파일을 생성하는 제2 단계; 및 상기 암호 알고리즘 패키지를 마스크 생성기에 입력시킬 때 필요한 암호 알고리즘 패키지 옵션 파일 및 상기 마스크 생성기의 구성 파일을 생성하는 제3 단계를 포함한다.

Description

자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법{An Implementation Method for Adding Cryptographic Algorithm Package for Java Card Development Environment}
본 발명은 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법에 관한 것으로서 보다 상세하게는, 응용 프로그램 개발자가 암호 알고리즘 패키지를 직접 설계하여 테스트 할 수 있도록 암호 알고리즘 패키지 추가 기능을 카드 환경과 동일한 개발 환경에 구현하는 방법에 관한 것이다.
종래에 개발된 자바 카드 개발 환경은 응용 프로그램 에디터, 응용 프로그램 테스트, 응용 프로그램 디버깅, 응용 프로그램 다운로드, 카드와 단말기간의 상호 통신 등과 같은 기능들을 개발자에게 제공하는 반면, 암호 알고리즘 패키지와 관련된 암호 알고리즘 패키지 작성, 암호 알고리즘 패키지 테스트 및 디버깅 기능은 제공되지 않았다.
특히, 종래의 개발 환경은 국가마다 혹은 업체마다 다른 암호 알고리즘을 채용하여 카드에 탑재할 때, 이를 시험할 수단을 개발자에게 제공해 주지 않아 카드 제작 시 번거로운 점이 있었고, 암호 알고리즘 패키지가 내장되지 않은 카드에서는 암호 알고리즘을 이용하는 응용 프로그램 개발이 불가능하였다. 이러한 문제점은 다양한 암호 알고리즘 패키지를 탑재한 카드 개발의 활성화, 다양한 카드 응용 프로그램의 생산성 향상 및 암호 알고리즘의 개발에 제약사항으로 작용하였다.
하지만 국가마다 혹은 업체마다 각자의 고유한 암호 알고리즘을 선정하여 선정된 암호 알고리즘을 이용하는 응용 프로그램을 개발한 후, 카드에 탑재하여 사용하는 현 시점에서 본다면 카드마다 고유하게 구현될 수 있는 암호 알고리즘 패키지 설계와 테스트 및 디버깅 단계는 응용 프로그램 개발자에게 반드시 필요하며, 카드 개발 환경을 통해 개발자에게 반드시 제공되어야 하는 기능이다.
따라서, 카드 개발 환경에서 응용 프로그램을 설계하여 개발할 때, 개발 환경이 지원해 주는 암호 알고리즘 패키지만을 사용하던 종래의 개발 환경의 취약성을 보완해 주고, 개발자 고유의 암호 알고리즘 패키지를 설계할 수 있는 개발자 관점의 개발 환경을 제공해 줄 수 있는 카드 개발 환경에 암호 알고리즘 패키지 추가 기능의 구현 메커니즘이 요구된다.
본 발명은 상기한 문제점을 해결하기 위해 제안된 것으로, 응용 프로그램 개발자가 암호 알고리즘 패키지를 직접 설계하여 테스트 할 수 있는 암호 알고리즘 패키지 설계 및 테스트 기능을 자바 카드 개발 환경에 추가적으로 구현할 수 있는 자바 카드 개발 환경에 암호 알고리즘 패키지 추가 기능 구현방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현방법은, 자바 컴파일러, 자바 카드 컨버터(converter) 및 마스크 생성기(mask generator)를 구비하여 응용 프로그램의 개발 및 테스트를 수행하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법에 있어서, 설계하고자 하는 암호 알고리즘 패키지를 생성하고, 암호 알고리즘 패키지 자바 파일을 작성하는 제1 단계; 상기 암호 알고리즘 패키지를 자바 카드 컨버터에 입력시킬 때 필요한 암호 알고리즘 패키지 컨버터 옵션 파일을 생성하는 제2 단계; 및 상기 암호 알고리즘 패키지를 마스크 생성기에 입력시킬 때 필요한 암호 알고리즘 패키지 옵션 파일 및 상기 마스크 생성기의 구성 파일을 생성하는 제3 단계를 포함한다.
이때, 상기 제1 단계는 상기 암호 알고리즘 패키지 생성 및 파일 작성에 필요한 암호 알고리즘 패키지 소스파일 템플릿을 제공하는 단계를 갖는다. 여기서, 상기 소스파일 템플릿은 자바 카드 애플릿, 대칭 키 암호 알고리즘, 비대칭 키 암호 알고리즘, 서명 알고리즘 및 해쉬 알고리즘으로 분류되어 제공되며, 바람직하게는 상기 암호 알고리즘 패키지 자바 파일의 패키지 경로, 파일명, 작성자, 파일 버전을 코딩할 수 있도록 설정된다.
또한, 상기 암호 알고리즘 패키지 컨버터 옵션 파일은 사용자가 선택적으로 옵션 사항을 수정할 수 있는 형태로 제공되며, 상기 마스크 생성기 구성 파일 역시 사용자가 선택적으로 수정할 수 있는 형태로 제공된다.
본 발명은 기존의 카드 개발 환경에서 지원되지 않았던 암호 알고리즘 패키지 추가 기능을 개발 환경에 구현하는 방법으로, 암호 알고리즘 패키지 추가 기능은 응용 프로그램 개발자가 카드 환경과 동일한 개발 환경에서 암호 알고리즘 패키지나 암호 알고리즘을 이용하는 응용 프로그램을 설계하여 테스트 할 수 있는 수단을 제공해 줄 수 있다.
본 발명이 구현된 자바 카드 개발 환경을 이용함으로써 개발자는 암호 알고리즘 패키지 개발 시간을 단축할 수 있고, 이로 인해 자바 카드 응용 프로그램의 생산성 역시 향상될 수 있다. 더불어 본 발명이 구현된 자바 카드 개발 환경은 자바 카드 용 암호 알고리즘 패키지 개발에 효과적이며, 추후 교통카드, 전자화폐, 출입 통제 등 다양한 스마트 카드 응용 프로그램 개발에 활용될 수 있다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 자바 카드 개발 환경에 암호 알고리즘 패키지 추가 기능 구현 방법을 상세히 설명한다.
도 1은 본 발명이 적용되는 일반적인 자바 카드 개발 환경에서 응용 프로그램의 개발 및 테스트 과정을 보이는 도면으로서, 자바 카드 개발 환경에서 응용 프로그램이 어떠한 절차를 통해 개발되고 테스트되는지를 보여주고 있다. 도 1에 도시된 바와 같이, 자바 카드 개발 환경에서의 응용 프로그램 개발 및 테스트를 위한 일반적인 구성은, 자바 바이트 코드로 구성되는 클래스 파일 생성부(10), 표준 자바 가상 기계부(11), 자바 카드 컨버터부(12), CAP (Converted Applet)파일(13), 자바 카드(14) 및 JCRE (Java Card Runtime Environment) 시뮬레이터(15)로 나누어 볼 수 있다.
도 1을 참조하여 일반적인 자바 카드 개발 환경에서 수행되는 응용 프로그램 개발 절차를 상세하게 기술하면 다음과 같다. 개발자가 작성한 응용 프로그램 소스 파일(1a)은 표준 자바 컴파일러(1b)를 통해 자바 바이트 코드(1c)로 변환되고, 상기 자바 바이트 코드인 클래스 파일(1c)은 JCWDE(Java Card Workstation Development Environment)환경에서 표준 자바 가상 기계부(11)를 이용하여 테스트하거나 실제 자바 카드 또는 시뮬레이터에서 테스트할 수 있다. 자바 카드 환경이나 시뮬레이터 환경에서 테스트하기 위해서는 자바 카드 컨버터부(12)를 통해 자바 카드 환경에 맞게 상기 클래스 파일(1c)을 CAP 파일(13)로 변환시킨 후, 상기 CAP 파일(13)을 실제 자바 카드(14)나 JCRE 시뮬레이터(15)에 탑재하여 테스트하면 된다.
도 2는 본 발명에 적용되는 호스트 응용 프로그램과 자바 카드의 내부 구조도이다. 도 2는 자바 카드의 일례로서 상기한 시뮬레이터 환경에서 스마트 카드 내부 구조와 그 수행 과정을 도시하고 있다. 특히 도 2에서는 시뮬레이터 환경에서 스마트 카드(30)와 APDU 툴(tool)(20)의 APDU(Application Protocol Data Unit) 메시지 송수신 절차에 초점을 두고 있다. 도 2에 도시된 바와 같이, 스마트 카드(30) 내부는 복수의 애플릿(31)과, 상기 복수의 애플릿(31) 중 선택된 애플릿에 명령 APDU를 송신하고 상기 카드의 응답 APDU를 수신하는 APDU 라우팅 모듈(32)과, 상기 카드 API(Application Programming Interface)로 명명되는 카드 클래스 라이브러리 (Card class library)(33)와, 플랫폼 독립성을 제공하는 VM(Virtual Machine)(34)과, APDU 통신을 담당하는 I/O(Input/Output)(35)와, 암호 알고리즘 관련 모듈(37)과, 그 밖의 메모리 및 기타 모듈(Other)(36)과, 마지막으로 스마트 카드 하드웨어(Smart card hardware)(38)로 구성되어 있다. 일례로 도 2의 스마트 카드(30)에 탑재된 애플릿 5(31)의 테스트 절차를 살펴보면 다음과 같다. 상기 테스트 할 애플릿 5(31)를 AID(Application Identifier)를 이용하여 선택한 후, APDU 툴(20)에서 상기 선택된 애플릿 5(31)에 처리하고자 하는 명령 APDU를 송신한다. 카드로 송신되는 상기 명령 APDU는 스마트 카드(30)의 I/O(35)모듈로 수신되어 APDU 라우팅 모듈(32)을 통해 현재 선택되어 있는 애플릿 5(31)에게 전달한다. 상기 애플릿 5(31) 내에 구현된 해당 명령어는 내부에 구현된 해당 함수를 호출한 후, 처리 결과를 I/O(35)를 통해 APDU 툴(20)에 전송한다. 암호 알고리즘 처리와 관련된 특정 명령어를 단말기 응용 프로그램(20)으로부터 송신하는 경우 역시, 앞서 설명한 방식과 동일하게 진행되며 이 경우 특정 명령어는 상기 카드 클래스 라이브러리(33)상의 특정 함수나, VM(34), 암호 알고리즘 관련 모듈(37)에 구현된 함수 또는 하드웨어(38)에 구현된 암호 모듈 등을 호출하여 해당 함수를 처리하게 된다.
도 3은 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현과정을 보이는 흐름도이다. 상술한 카드 개발 환경에 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현방법을 도 3을 참조하여 보다 상세하게 설명하기로 한다. 일반적으로 자바 카드 응용 프로그램은 도 1과 같은 개발 단계를 거쳐 테스트 할 수 있지만, 암호 알고리즘 패키지 개발을 위해서는 도 3과 같은 개발 단계가 추가되어야 한다. 도 3은 자바 카드 개발 환경에 암호 알고리즘 패키지 추가 기능을 구현하기 위해 도 1에 도시된 응용 프로그램 개발 단계에 구현되어야 하는 3개의 개발 모듈을 보여주고 있다. 이러한 본 발명에 따른 3개의 개발 모듈에 대해 각각 살펴보면 하기와 같다.
첫 번째 추가 모듈(40)에 구현되는 암호 알고리즘 패키지 추가 기능(1)에서는 암호 알고리즘 패키지의 생성 및 암호 알고리즘 파일의 작성 기능을 제공한다. 즉, 상기 암호 알고리즘 패키지 추가 기능(1)에서는 개발자가 설계하고자 하는 새로운 암호 알고리즘 패키지를 생성하고 암호 알고리즘 설계를 위해 필요한 암호 알고리즘 패키지 소스파일 템플릿을 제공한다. 소스파일 템플릿은 크게 자바 카드 애플릿, 대칭 키 암호 알고리즘, 비대칭 키 암호 알고리즘, 서명 알고리즘 및 해쉬 함수 알고리즘으로 분류되어 제공될 수 있으며, 상기 템플릿 제공 시 상기 템플릿 파일을 선택한 후, 개발자가 직접 템플릿 파일의 패키지 경로를 지정하여 사용할 수 있도록 하며, 파일 작성자, 클래스 이름 및 파일 버전 등을 설정할 수 있도록 한다. 또한, 자바 카드 API에 국한되지 않는 개발자만의 API개발도 가능하도록 구성한다. 상기 첫 번째 추가 모듈(40)에서의 추가 기능 수행 후 컴파일러(41)를 거쳐 하기에서 설명하는 두 번째 추가 모듈(42)에서의 추가 기능을 수행한다.
두 번째 추가 모듈(42)에 구현되는 암호 알고리즘 패키지 추가 기능(2)에서는 암호 알고리즘 패키지를 컨버터(43)에 입력시킬 때 필요한 암호 알고리즘 패키지 컨버터 옵션 파일을 자동으로 생성한다. 각각의 패키지마다 자신의 컨버터 옵션 파일이 필요하기 때문에 상기한 첫 번째 추가모듈(40)에서 패키지 생성시, 생성된 패키지에 필요한 컨버터 옵션 파일을 자동으로 생성시킬 수 있는 방법을 제공하고, 개발 환경에서 자동으로 생성된 옵션 파일을 사용자가 선택하여 옵션 사항을 수시로 수정할 수 있는 형태로 제공해주어야 한다. 암호 알고리즘 패키지 컨버터 파라미터는 컨버터의 출력으로 어떠한 종류의 파일을 생성할 것이며, integer 타입을 지원해야 하는지, 디버그 정보를 포함시킬 것인지, mask 파일에 패키지 내용을 포함시킬 것인지 등등에 대한 옵션이다. 상기 컨버터(43)의 출력 파일 종류로는 CAP(Converted Applet), JCA(Java Card Assembly), EXP(Export)가 있는데, CAP 파일은 패키지나 응용 프로그램을 발급된 카드에 다운로딩 할 때 사용되는 파일 형태이고, JCA 파일은 마스크 생성기(mask generator)(45)에 입력되는 파일 형태이다. 마지막으로, EXP 파일은 링크 정보를 포함하고 있는 파일로서 컨버터의 입력으로 사용되기도 하며 컨버터의 출력을 통해 새롭게 생성되기도 한다.
세 번째 추가 모듈(44)에 구현되는 암호 알고리즘 패키지 추가 기능(3)에서는 암호 알고리즘 패키지 추가 기능을 위한 마지막 단계로 암호 알고리즘 패키지를 상기 마스크 생성기(45)에 입력시킬 때 필요한 암호 알고리즘 패키지 옵션 파일을 생성하고 수정할 수 있는 환경을 구현한다. 세 번째 추가 모듈(44)에서 언급되는 마스크 파일은 도 2에 도시한 개발 환경에서 실제로 APDU 툴(20)과 함께 수행될 테스트 파일을 의미한다. 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현 방법은 카드 개발 환경에 따라 상기한 3가지 추가 모듈(40,42,44)이 모두 구현되거나 세 가지 모듈 중 한가지, 혹은 두 가지만이 구현될 수도 있을 것이다. 상기 세 번째 추가 모듈(44)에서 구현되는 암호 알고리즘 패키지 추가 기능(3)에서 생성되는 옵션 파일이나 마스크 생성기 구성(mask generator configuration) 설정 파일을 통해 암호 알고리즘 패키지 개발자는 메모리의 크기를 재차 정의할 수 있으며, 개발한 암호 알고리즘 패키지 테스트를 위한 다양한 옵션 사항을 재차 정의할 수 있게 된다.
암호 알고리즘 패키지 개발이 모두 완료되면, 암호 알고리즘 패키지를 이용하는 테스트 애플릿을 작성하여 개발 환경에서 개발한 암호 알고리즘 패키지를 개발 환경의 다양한 테스트 및 디버깅 기능을 사용하여 시험해 볼 수 있으며, 시험 중간 중간에 암호 알고리즘 패키지의 오류 및 에러를 수정할 수 있다.
도 4는 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현을 위한 개발과정을 보이는 흐름도로서, 상기에서 설명한 암호 알고리즘 추가 및 삭제 기능을 자바 카드 개발 환경에 구현하여 테스트하기 위한 절차를 나타낸다. 도 4(a)는 암호 알고리즘 패키지와 애플릿 개발 및 테스트 절차에 대해 간략히 나타내고 있으며, 도 4(b)는 도 4(a)의 블록 다이어그램을 좀 더 세분화하여 개발 환경에서 암호 알고리즘 패키지나 암호 알고리즘 패키지를 이용하는 응용 프로그램을 작성하여 테스트하는 순서를 구체적으로 보여주고 있다.
먼저, 도 4(a)를 참조하면, 개발자가 설계하고자 하는 새로운 암호 알고리즘 패키지 및 상기 암호 알고리즘 패키지를 이용하는 테스트 애플릿을 작성한다(41). 상기 작성된 암호 알고리즘 패키지 및 테스트 애플릿 소스파일은 컴파일러를 통해 클래스 파일로 변환되고(42), 자바 카드 환경에서 테스트하기 위해 또 한번 컨버터를 통해 상기 카드 환경에 맞는 JCA, CAP 파일로 변환된다(43). 이어, 마스크(mask) 파일 및 스크립트(script) 파일을 생성하고(44,45) 상기 작성된 애플릿 및 암호 알고리즘 패키지를 테스트한다(46). 이하, 도 4(b)를 참조하여 상기 애플릿 및 암호 알고리즘 패키지의 테스트 과정을 상세하게 설명한다.
도 4(b)에 도시된 바와 같이, 먼저 테스트 애플릿 및 암호 알고리즘 패키지에 대한 자바 파일을 작성한다(47). 이 때, 상기 자바 파일 작성 시 바람직하게는 템플릿이 제공된다. 상기 작성된 테스트 애플릿 및 암호 알고리즘 패키지 자바 파일을 컴파일러를 이용하여 자바 바이트 코드인 클래스 파일로 변환한다(48). 이어, 상기 암호 알고리즘 패키지를 컨버터에 입력시킬 때 필요한 암호 알고리즘 패키지 컨버터 옵션 파일을 자동 생성하고(49), 컨버터를 통해 상기 테스트 애플릿 및 암호 알고리즘 패키지 클래스 파일을 CAP 파일, JCA 파일, Exp 파일의 형태로 컨버팅한다(50). 상기 암호 알고리즘 패키지를 마스크 생성기(mask generator)에 입력시킬 때 필요한 암호 알고리즘 패키지 옵션 파일 및 구성(configuration) 파일을 자동 생성한다(51). 계속하여, 마스크를 생성하고 상기 마스크 파일 및 스크립트 파일을 선택하여 브레이크 포인트 및 테스트 파라미터를 설정한다(52~54). 명령어를 송신하고 상기 송신한 명령어의 종류의 종류를 판단한 후 각 명령어에 대한 APDU 명령어 처리 결과 및 카드 응답을 수신한다(55~58). 이어, 애플릿, 암호 알고리즘 패키지 디버깅 및 테스트를 실시하고, 모든 스크립트(script)의 성능에 대한 측정이 완료되면 테스트를 종료한다(59,60).
도 4(b)에서의 47, 49 및 51 단계가 도 3에서 언급한 바 있는 본 발명에 따른 암호 알고리즘 패키지를 개발 환경에 구현하기 위해 추가된 모듈(40,42,44)이며, 이 세 가지 모듈을 개발 환경에 구현함으로써 암호 알고리즘 패키지 추가 기능이 개발자에게 편리하게 제공될 수 있다. 도 4(b)의 52 단계 이후의 테스트 과정은 카드 개발 환경에서 일반적으로 사용되고 있는 방법이다.
본 발명의 상세한 설명 및 도면에는 본 발명의 이해를 돕기 위한 바람직한 일례를 개시한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리의 범위는 상기한 상세한 설명에 의해 결정되는 것이 아니라 첨부한 청구범위에 결정되어야만 할 것이다. 또한, 상술한 상세한 설명 및 도면에 개시된 내용은 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게는 본 발명의 정신을 벗어나지 않는 범위 내에서 다양한 수정 및 변경이 가능함은 명백한 것이다.
본 발명에 의하면, 암호 알고리즘 패키지 추가 기능을 카드 개발 환경에 구현함으로써 이미 개발된 카드나 개발 환경에서 지원해주는 암호 알고리즘을 이용하던 기존의 방식에서 벗어나 개발자가 암호 알고리즘 패키지를 직접 설계하여 테스트하고, 개발자가 구현한 암호 알고리즘 패키지를 이용하는 응용 프로그램을 개발하여 테스트 할 수 있는 개발자 관점의 응용 프로그램 개발 환경이 제공될 수 있다.
또한, 본 발명이 적용된 카드 개발 환경은 개발자에게 응용 프로그램 및 암호 알고리즘 패키지 개발 시 소요되는 개발 시간을 단축시켜주며, 다양한 카드 응용 프로그램이 생산되어 활성화 될 수 있도록 도와준다. 이로써, 다양한 암호 알고리즘을 이용한 카드 응용 프로그램의 생산성 향상, 암호 알고리즘 패키지 개발 속도의 향상을 가져 올 수 있다.
도 1은 본 발명이 적용되는 일반적인 자바 카드 개발 환경에서 응용 프로그램 개발 및 테스트 과정을 보이는 도면이다.
도 2는 본 발명에 적용되는 호스트 응용 프로그램과 자바 카드의 내부 구조도이다.
도 3은 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현과정을 보이는 흐름도이다.
도 4는 본 발명에 따른 암호 알고리즘 패키지 추가 기능 구현을 위한 개발과정을 보이는 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
1a : 응용 프로그램 소스 파일 1b : 표준 자바 컴파일러
1c : 자바 바이트 코드(클래스 파일) 10 : 클래스 파일 생성부
11 : 표준 자바 기계부 12 : 자바 카드 컨버터
13 : CAP 파일 14 : 자바 카드
15 : JCRE 시뮬레이터 20 : APDU 툴
30 : 스마트 카드 31 : 애플릿
32 : APDU 라우팅 모듈 35 : I/O

Claims (6)

  1. 자바 컴파일러, 자바 카드 컨버터(converter) 및 마스크 생성기(mask generator)를 구비하여 응용 프로그램의 개발 및 테스트를 수행하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법에 있어서,
    암호 알고리즘 패키지 생성 및 파일 작성에 필요한 암호 알고리즘 패키지 소스파일 템플릿을 제공하여, 설계하고자 하는 암호 알고리즘 패키지를 생성하고 암호 알고리즘 패키지 자바 파일을 작성하는 제 1 단계;
    상기 암호 알고리즘 패키지를 상기 자바 카드 컨버터에 입력시킬 때 필요한 암호 알고리즘 패키지 컨버터 옵션 파일을 생성하는 제 2 단계; 및
    상기 암호 알고리즘 패키지를 상기 마스크 생성기에 입력시킬 때 필요한 상기 마스크 생성기의 구성 파일을 생성하는 제 3 단계를 포함하는 것을 특징으로 하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법.
  2. 삭제
  3. 제 1항에 있어서, 상기 소스파일 템플릿은,
    자바 카드 애플릿, 대칭 키 암호 알고리즘, 비대칭 키 암호 알고리즘, 서명 알고리즘 및 해쉬 알고리즘으로 분류되어 제공되는 것을 특징으로 하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법.
  4. 제 1항에 있어서, 상기 소스파일 템플릿은,
    상기 암호 알고리즘 패키지 경로, 알고리즘을 구현할 자바 파일명, 작성자, 파일 버전을 사용자가 설정할 수 있도록 하는 것을 특징으로 하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법.
  5. 제 1항에 있어서,
    상기 암호 알고리즘 패키지 컨버터 옵션 파일은 사용자가 선택적으로 옵션 사항을 수정할 수 있는 형태로 제공되는 것을 특징으로 하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법.
  6. 제 1항에 있어서,
    상기 마스크 생성기 구성 파일은 사용자가 선택적으로 수정할 수 있는 형태로 제공되는 것을 특징으로 하는 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현방법.
KR10-2002-0071287A 2002-11-15 2002-11-15 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법 KR100490899B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0071287A KR100490899B1 (ko) 2002-11-15 2002-11-15 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0071287A KR100490899B1 (ko) 2002-11-15 2002-11-15 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법

Publications (2)

Publication Number Publication Date
KR20040042701A KR20040042701A (ko) 2004-05-20
KR100490899B1 true KR100490899B1 (ko) 2005-05-24

Family

ID=37339464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0071287A KR100490899B1 (ko) 2002-11-15 2002-11-15 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법

Country Status (1)

Country Link
KR (1) KR100490899B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102442280B1 (ko) * 2019-12-24 2022-09-13 한전케이디엔주식회사 배전 지능화 시스템 보안 서비스 제공 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016922A (ko) * 1998-08-26 2000-03-25 포만 제프리 엘 통신아키텍쳐및가상소프트웨어스마트카드구현방법
KR20020031008A (ko) * 2000-10-20 2002-04-26 오길록 온라인 스마트 카드 응용 설치 시스템 및 그 방법
KR20030089843A (ko) * 2002-05-20 2003-11-28 삼성전자주식회사 기능 라이브러리를 내재한 칩 개발 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016922A (ko) * 1998-08-26 2000-03-25 포만 제프리 엘 통신아키텍쳐및가상소프트웨어스마트카드구현방법
KR20020031008A (ko) * 2000-10-20 2002-04-26 오길록 온라인 스마트 카드 응용 설치 시스템 및 그 방법
KR20030089843A (ko) * 2002-05-20 2003-11-28 삼성전자주식회사 기능 라이브러리를 내재한 칩 개발 시스템

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
TENCON 2000 3권(2000.09) *
요약, 상세설명3쪽, 청구1,7,8,9항, 도면2 *
한국정보처리학회논문지 제9-C권 제2호, pp.163-172 *
한국정보처리학회논문지 제9권-C호(2002.04) *

Also Published As

Publication number Publication date
KR20040042701A (ko) 2004-05-20

Similar Documents

Publication Publication Date Title
EP1074911B1 (en) Aspect-oriented programming
CN102402427B (zh) 一种Java应用程序的更新方法及装置
US7426717B1 (en) System and method for debugging files in a runtime environment
US7131111B2 (en) Development of manifest for java embedded server bundle
CN100492387C (zh) 基于Keil C51的软件保护开发的方法和系统
US7319948B2 (en) Blocking access to selected APIs
CN113704706B (zh) 代码加固方法、装置
Groher et al. Generating aspect code from UML models
CN111985055A (zh) 一种模型封装方法、装置及电子设备
US20080127061A1 (en) Method and system for editing code
CN112965731B (zh) 基于Tinker的Flutter热更新方法、装置、设备及存储介质
US7296187B1 (en) Hardware debug device having script-based host interface
KR100490899B1 (ko) 자바 카드 개발 환경을 위한 암호 알고리즘 패키지 추가 기능 구현 방법
KR100790470B1 (ko) 디바이스 드라이버 테스트를 위한 테스트 케이스 자동 생성방법 및 장치
US8010955B2 (en) Reducing the run-time cost of incorporating custom tags in a server page
US20110321009A1 (en) Implementing encryption via aspect oriented programming
CN110688099B (zh) 远距离无线电集成可编程片上系统的微处理器开发方法
CN112543104A (zh) 应用程序打包方法、装置、电子设备及存储介质
Debbabi et al. Embedded Java security: security for mobile devices
CN110457209A (zh) 用于调试应用的方法和系统
KR100503429B1 (ko) 실시간 디버깅 방법
Osborne The postroom computer
KR950012113B1 (ko) 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법
Zhang et al. Programming smart contract with solidity
Gunadi et al. Formal certification of android bytecode

Legal Events

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

Payment date: 20110511

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee