스마트카드는 작은 크기의 마이크로 컴퓨터칩을 내장하고 있다. 이 칩은 프로세서, RAM, ROM, 클럭, 버스 그리고 암호전용 코프로세서 등을 포함하고 있다. 따라서 이 칩은 RFID 태그와 비교해서 가격이 비싸고, 복잡하지만 안전한 칩이다. 스마트카드의 주요 응용분야는 전자뱅킹이나 안전한 통신 관련 분야이다. 자바카드는 개방형 플랫폼 중 가장 널리 사용되는데 그 이유는 자바카드의 보안성, 플랫폼 독립성, 그리고 빠른 개발 싸이클 때문이다. 하지만 자바카드는 실행속도가 느리기 때문에 자바 카드의 성능개선은 중요한 연구 분야가 되어왔다. 본 논문에서는 효과적인 트랜잭션버퍼 관리 방법을 제안하여 자바카드의 성능을 개선시켰으며 실험을 통하여 그 성능을 입증하였다.
스마트카드는 작은 크기의 마이크로 컴퓨터칩을 내장하고 있다. 이 칩은 프로세서, RAM, ROM, 클럭, 버스 그리고 암호전용 코프로세서 등을 포함하고 있다. 따라서 이 칩은 RFID 태그와 비교해서 가격이 비싸고, 복잡하지만 안전한 칩이다. 스마트카드의 주요 응용분야는 전자뱅킹이나 안전한 통신 관련 분야이다. 자바카드는 개방형 플랫폼 중 가장 널리 사용되는데 그 이유는 자바카드의 보안성, 플랫폼 독립성, 그리고 빠른 개발 싸이클 때문이다. 하지만 자바카드는 실행속도가 느리기 때문에 자바 카드의 성능개선은 중요한 연구 분야가 되어왔다. 본 논문에서는 효과적인 트랜잭션버퍼 관리 방법을 제안하여 자바카드의 성능을 개선시켰으며 실험을 통하여 그 성능을 입증하였다.
Smart card has a small sized micro computer chip. This chip contains processor, RAM, ROM, clock, bus system and crypto-co-processor. Hence it is more expensive, complicated and secure chip compared with RFID tag. The main application area of smart card is e-banking and secure communications. There a...
Smart card has a small sized micro computer chip. This chip contains processor, RAM, ROM, clock, bus system and crypto-co-processor. Hence it is more expensive, complicated and secure chip compared with RFID tag. The main application area of smart card is e-banking and secure communications. There are two kinds of smart card platforms; open platform and closed one. Java card is the most popular open platform because of its security, platform independency, fast developing cycle. However, the speed of Java card is slower than other ones, hence there have been hot research topics to improve the performance of Java card. In this paper, we propose an efficient transaction buffer management to improve the performance of Java card. The experimental result shows the advantage of our method.
Smart card has a small sized micro computer chip. This chip contains processor, RAM, ROM, clock, bus system and crypto-co-processor. Hence it is more expensive, complicated and secure chip compared with RFID tag. The main application area of smart card is e-banking and secure communications. There are two kinds of smart card platforms; open platform and closed one. Java card is the most popular open platform because of its security, platform independency, fast developing cycle. However, the speed of Java card is slower than other ones, hence there have been hot research topics to improve the performance of Java card. In this paper, we propose an efficient transaction buffer management to improve the performance of Java card. The experimental result shows the advantage of our method.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
1에 따르면 전체 EEPROM 쓰기 횟수 중에서 70% 가량이 과정1에 집중되고 있다. 따라서 본 연구에서는 과정1의 횟수를 줄일 수 있는 새로운 방법을 제시하였다.
본 논문에서는 스마트카드용 자바가상기계의 성능을 높이기 위하여 카드 동작과정에서 병목현상을 일으키고 있는 트랜잭션 버퍼의 기록 시간을 줄일 수 있는 방법으로서 보다 효율적인 트랜잭션 버퍼운용방법을 제시하였고, 실험을 통해서 기존의 연구와 비교하여 그 성능의 우수성을 입증하였다.
본 논문에서는 스마트카드용 자바가상기계의 성능을 높이기 위하여 카드 동작과정에서 병목현상을 일으키고 있는 트랜잭션 버퍼의 기록 시간을 줄일 수 있는 방법을 제시하고, 실험을 통해서 기존의 연구와 비교하였다.
본 연구에서는 EEPROM에 데이터를 기록하는 속도가 RAM에 데이터를 쓰는 속도에 비해 1만 배 이상 느리다는 점에 착안하여, EEPROM에 데이터를 쓰는 횟수를 줄이는 방법을 연구하였다. 이를 위하여 EEPROM을 5개의 세부 구역으로 분류하고, 각 구역별 쓰기 횟수를 정밀 분석한 결과 표 3.
첫 번째 실험은 상기 9가지의 표준 예제 프로그램에 대하여 EEPROM내의 트랜잭션버퍼에 쓰기가 얼마나 집중되는지를 조사하였다. 이 조사의 목적은 자바카드의 성능개선을 위해 EEPROM 쓰기 횟수를 줄이는 것이 중요하고 (3장 1절참조), EEPROM 쓰기 횟수 중에서 트랜잭션 버퍼에 얼마나 많은 쓰기가 집중되는지를 조사하였다.
스마트카드는 현재 전 세계적으로 50억 개가 발매되고 있으며, 스마트카드 제조에는 메모리 비메모리 통합 반도체 기술, 그리고 초소형 운영체제 기술들이 요구되어지며, 우리나라의 삼성전자가 세계 1위의 스마트카드 칩 제조업체이다. 현재 GSM 휴대폰이나 IMT2000, 3세대 휴대폰에 모두 이 칩이 채택되었으며, 따라서 본 연구의 결과는 우리나라의 산업발전에도 기여할 수 있는 기술이다.
가설 설정
(과정1) 객체의 현재 값을 트랜잭션 버퍼에 미리 복사해둔다.
자바 카드 기술은 자바 언어를 기반으로 하고 있으며, 스마트카드 어플리케이션을 개발하는데 필요한 공통적인 API를 제공함으로써 보다 효율적인 개발환경을 제공한다. 넷째, 애플릿의 추가 및 삭제가 용이하다. 다섯째, 다중 어플리케이션을 탑재할 수 있다.
제안 방법
본 논문에서 구현된 개선된 자바카드 트랜잭션 처리 모델의 성능을 평가하기 위하여 자바카드 원천기술 보유사인 썬사의 자바카드와 본 논문에서 제안한 방법을 적용시킨 자바 카드를 비교하였다. 비교를 위한 테스트 데이터로는 Sun Micro Systems에서 제공하는 자바 카드 애플릿 샘플인 ChannelDemo, JavaLoyalty, JavaPurse, ObjDelete, PackageA, PackageB, PackageC, PhotoCard, RMIDemo의 9개 샘플을 이용하였다.
그리고 과정3의 OPageBuffer의 내용을 힙 구역에 저장하는 과정이 일어나기 직전까지 과정2를 늦출수록 트랜잭션 버퍼로의 쓰기 횟수를 줄일 수 있다. 본 논문에서는 하나의 TPageBuffer를 사용하여 설계 및 구현하였다.
이 실험 결과가 본 논문의 동기가 되어, 3장에서 설명한 개선된 트랜잭션 버퍼 처리방법을 제안하였고, 기존의 트랜잭션 버퍼 운용과 새로운 운용방법에 따른 EEPROM 쓰기 횟수를 비교한 결과 표 4.2와 같은 실험 결과를 얻었다.
전술한 바와 같이 여러 개의 로그 항을 모아서 한 번에 트랜잭션 버퍼에 저장하기 위하여 기존의 PageBuffer를 객체를 위한 OPageBuffer로 하고, 트랜잭션의 로그 항들을 저장하는 TPageBuffer를 추가하였다. 객체에 새로운 값을 저장하는 경우에 일어나는 개선된 자바카드 트랜잭션버퍼 처리 모델을 정상적인 상황과 오류가 일어난 상황으로 나누어 보면 다음과 같다.
첫 번째 실험은 상기 9가지의 표준 예제 프로그램에 대하여 EEPROM내의 트랜잭션버퍼에 쓰기가 얼마나 집중되는지를 조사하였다. 이 조사의 목적은 자바카드의 성능개선을 위해 EEPROM 쓰기 횟수를 줄이는 것이 중요하고 (3장 1절참조), EEPROM 쓰기 횟수 중에서 트랜잭션 버퍼에 얼마나 많은 쓰기가 집중되는지를 조사하였다.
대상 데이터
본 논문에서 구현된 개선된 자바카드 트랜잭션 처리 모델의 성능을 평가하기 위하여 자바카드 원천기술 보유사인 썬사의 자바카드와 본 논문에서 제안한 방법을 적용시킨 자바 카드를 비교하였다. 비교를 위한 테스트 데이터로는 Sun Micro Systems에서 제공하는 자바 카드 애플릿 샘플인 ChannelDemo, JavaLoyalty, JavaPurse, ObjDelete, PackageA, PackageB, PackageC, PhotoCard, RMIDemo의 9개 샘플을 이용하였다.
이를 위한 실험환경은 그림 4.1과 같이 OpenICE-C1605 에뮬레이터 장비와 연결된 타겟 보드와 스마트 카드 리더기를 이용하여 실험하였다.
성능/효과
둘째, 개선된 자바카드 트랜잭션 처리 모델에서 과정 1’ 의 추가적 작업이 필요하다.
첫째, 자바 카드 애플릿은 스마트카드 하드웨어 플랫폼에 독립적이므로, 자바 카드 가상기계가 탑재되어 있다면 자바 카드 애플릿의 구동이 가능하다. 둘째, 높은 보안성을 가진다. 자바 카드가 기반하고 있는 자바 언어 자체의 보안적인 특성의 많은 부분을 수용하고 있고, 자바 카드 내부의 독립적인 애플릿들은 방화벽에 의해 보호된다.
따라서 자바카드의 성능을 개선하는 가장 좋은 방법의 하나는 EEPROM에 데이터를 쓰는 횟수를 줄이는 것이고, 이 방법 중에서 가장 효과적인 방법은 EEPROM 중에서 트랜잭션 버퍼에 쓰기 횟수를 줄이는 방법이라는 결론에 도달했다.
따라서, 연속된 4가지 필드로 구성된 로그 항을 네 번에 걸친 기존의 기록 방법을 한 번에 모아서 처리하면 EEPROM 쓰기 횟수를 4분의 1로 줄일 수 있다. 또한 하나의 로그항의 길이가 2 바이트 정수객체인 경우, 총 8 바이트 (헤더 필드 1바이트 + 길이 필드 1바이트 + 주소 필드 4바이트 + 값 필드 2바이트)를 차지하므로, 128 바이트의 페이지 버퍼는 16개의 로그 항을 저장할 수 있다.
자바 카드가 기반하고 있는 자바 언어 자체의 보안적인 특성의 많은 부분을 수용하고 있고, 자바 카드 내부의 독립적인 애플릿들은 방화벽에 의해 보호된다. 셋째, 애플릿의 개발 시간과 비용이 절감된다. 자바 카드 기술은 자바 언어를 기반으로 하고 있으며, 스마트카드 어플리케이션을 개발하는데 필요한 공통적인 API를 제공함으로써 보다 효율적인 개발환경을 제공한다.
본 연구에서는 EEPROM에 데이터를 기록하는 속도가 RAM에 데이터를 쓰는 속도에 비해 1만 배 이상 느리다는 점에 착안하여, EEPROM에 데이터를 쓰는 횟수를 줄이는 방법을 연구하였다. 이를 위하여 EEPROM을 5개의 세부 구역으로 분류하고, 각 구역별 쓰기 횟수를 정밀 분석한 결과 표 3.1에서 보는 바와 같이 EEPROM 의 전체 기록 횟수 중 70%이상이 트랜잭션 버퍼에서 발생한다는 사실을 발견하였다 (진민식, 2006b).
자바카드는 상기의 스마트카드의 운용체제에 자바가상기계와 자바 API를 포함하는 자바플랫폼을 탑재한 것으로서 다음과 같은 장점을 가지고 있다. 첫째, 자바 카드 애플릿은 스마트카드 하드웨어 플랫폼에 독립적이므로, 자바 카드 가상기계가 탑재되어 있다면 자바 카드 애플릿의 구동이 가능하다. 둘째, 높은 보안성을 가진다.
표 4.2에 따르면 본 논문에서 제안한 방법은 기존의 방법에 비해 약 23% 정도의 EEPROM 쓰기를 줄일 수 있었다. 이 결과를 도표로 나타내면 그림 4.
질의응답
핵심어
질문
논문에서 추출한 답변
트랜잭션 버퍼는 무엇인가?
트랜잭션 버퍼는 카드 내부에 영속 객체가 생성되거나 영속 객체가 가지는 값이 변경이 되어서 EEPROM에 값을 저장하고자 할 때에, 데이터를 기록하는 과정 중에 발생할 수 있는 프로그램 상의 오류나 전원 차단 등으로부터 자바 카드의 데이터를 변경 전의 상태로 복구할 수 있도록 해주는 장치이다. EEPROM의 경우, 통상 바이트나 워드 단위가 아닌 수백바이트 크기의 블록단위의 쓰기로 이루어진다.
폐쇄형 카드의 장점은 무엇인가?
스마트카드는 크게 폐쇄형 카드와 개방형 카드로 나누어진다 (탁승호, 2004; 한진희, 2003). 폐쇄형 카드는 카드에 탑재된 CPU전용 기계어 프로그램이 탑재되어 있어 연산 처리 속도가 빠른 장점을 가지는 반면, 특정 분야에만 사용되는 단점이 있다. 반면 개방형 카드는 폐쇄형 카드와 달리 연산 처리 속도는 느리지만 다양한 어플리케이션의 탑재가 가능하다는 장점을 가진다.
스마트카드에 내장된 마이크로 컴퓨터칩에는 무엇을 포함하고 있는가?
스마트카드는 작은 크기의 마이크로 컴퓨터칩을 내장하고 있다. 이 칩은 프로세서, RAM, ROM, 클럭, 버스 그리고 암호전용 코프로세서 등을 포함하고 있다. 따라서 이 칩은 RFID 태그와 비교해서 가격이 비싸고, 복잡하지만 안전한 칩이다.
참고문헌 (27)
알앤디비즈 (2005). , 알앤디비즈 기술 보고서.
알앤디비즈 (2006). , 알앤디비즈 기술 보고서.
진민식 (2006). An enhanced java card system for fast execution of applet. , 경남대학교 대학원.
최원호 (2005). 자바 카드 프로그램 적재 및 실행 속도 개선에 관한 연구. , 경남대학교 대학원.
Baentsch, M., Buhler, P., Eirich, T., Horing, F. and Oestreicher, M. (1999). Java card-from hype to reality. IEEE Concurrency, 36-43.
Beckert, B. and Mostowski, W. (2003). A program logic for handling java card’s transaction mechanism, In Pezze, M., ed.: Fundamental approaches to software engineering. FASE’ 2003, 2621, 246-260
Chen, Z. (2000). Java card technology for smart cards, Addison-Wesley.
Gal, E. and Toledo, S. (2005), Algorithms and data structure for flash memories. ACM Computing Surveys, 37, 138-163.
Hansmann, U., Nicklous, M. S., Schack, T. and Seliger, F. (2002). Smart Card Application Development Using Java, Springer.
Hahnle, R. and Mostowski, W. (2005). Verification of safety properties in the presence of transactions. CASSIS 2005, 3362, 151-171.
Huang, A. J. R. (2007). Dynamic flash-memory allocation for smartcards: how to cope with limited space (in a short life). 2007 5th IEEE International Conference, 2, 835-840.
Hwang, S. Y. and Hahm, J. H. (2003), MDPREF and perceptual map via INDSCAL method. Journal of the Korean Data & Information Science Society, 14, 501-510.
Jin, M. and Jung, M. (2005). A study on how to reduce time and space by redefining new bytecode for java card. RTCSA 2005, 551-554.
John Wiley & Sons (2003). Wolfgang Rankl and Wolfgang Effing, Smart Card Handbook.
Marche, C. and Rousset, N. (2006). Verification of JAVA CARD applets behavior with respect to transactions and card tears. SEFM’06, 137-146.
Oestreicher, M. (1999). Transactions in java card. In 15th Annual Computer Security Applications Conferrence, 291-298.
Qabs, U. M. and Al-Naima, F. M. (2008). Design and implementation of a smart card simulator. Computer and Communication Engineering, ICCCE 2008, 217-220.
Ryu, K. H. and Park, H. C. (2006), Web-based DNA microarray data analysis tool. Journal of the Korean Data & Information Science Society, 17, 1161-1167.
Sharp (2005). Addressing security concerns of flash memory in smart cards. Application Note SMA04036.
Shasha, Nir, Toledo and Sivan (2007). Storing a persistent transactional object heap on flash memory. Software-Science, Technology & Engineering, SwSTE 2007, 66-76.
Spivak, M. and Toledo, S. (2006). Storing a persistent transactional object heap on flash memory. ACM SIGPLAN Notices, 22-33.
Sun Microsystems (2003a). The Java CardTM2.2.1 Virtual Machine Specification, SUN.
Sun Microsystems (2003b). The Java CardTM2.2.1 Runtime Enviroment (JCRE) Specification, SUN.
Venners, B. (1997). Inside the Java Virtual Machine, McGraw-Hill.
Yang, Y., Choi, W., Jin, M., Hwang, C. and Jung, M. (2006). An advanced java card system architecture for smart card based on large RAM memory. Hybrid Information Technology 2006, 2, 646-650.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.