오늘날 대부분의 스마트카드는 자바카드 플랫폼을 채택한 자바카드가 표준안으로 자리매김 하고 있다. 자바카드는 전원이 차단되면 작업 중이던 데이터가 손실되는 문제점을 가지고 있다. 데이터 손실의 해결책으로 트랜잭션 개념이 사용되지만, 한 번에 하나의 트랜잭션 처리만을 허용하므로, 트랜잭션이 필요한 작업들은 이전에 작업 중인 트랜잭션이 끝날 때까지 대기해야 하고, 이는 자바 카드의 성능을 저하시키는 요인이다. 본 논문에서는 자바 카드의 수행 성능을 향상시키기 위한 방안으로 다중 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 이중 잠금 규칙을 규정하고, 이 규칙에 따라 트랜잭션을 처리함으로써 트랜잭션 처리 성능을 개선시키고자 한다. 이러한 연구 결과를 통해 데이터의 안전성을 놀이고 트랜잭션이 필요한 데이터의 대기 시간을 줄이고 자바 카드의 수행 속도를 증가 시킬 수 있다.
오늘날 대부분의 스마트카드는 자바카드 플랫폼을 채택한 자바카드가 표준안으로 자리매김 하고 있다. 자바카드는 전원이 차단되면 작업 중이던 데이터가 손실되는 문제점을 가지고 있다. 데이터 손실의 해결책으로 트랜잭션 개념이 사용되지만, 한 번에 하나의 트랜잭션 처리만을 허용하므로, 트랜잭션이 필요한 작업들은 이전에 작업 중인 트랜잭션이 끝날 때까지 대기해야 하고, 이는 자바 카드의 성능을 저하시키는 요인이다. 본 논문에서는 자바 카드의 수행 성능을 향상시키기 위한 방안으로 다중 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 이중 잠금 규칙을 규정하고, 이 규칙에 따라 트랜잭션을 처리함으로써 트랜잭션 처리 성능을 개선시키고자 한다. 이러한 연구 결과를 통해 데이터의 안전성을 놀이고 트랜잭션이 필요한 데이터의 대기 시간을 줄이고 자바 카드의 수행 속도를 증가 시킬 수 있다.
Smart Card is currently more popular in mobile communication, and smart card with java card platform becomes a standard choice. Java card has a problem that it gets lost working data when power is off. Transaction is the idea to solve a problem of data loss, but it accepts only one transaction proce...
Smart Card is currently more popular in mobile communication, and smart card with java card platform becomes a standard choice. Java card has a problem that it gets lost working data when power is off. Transaction is the idea to solve a problem of data loss, but it accepts only one transaction process, and other transaction process need to hold until the current working transaction is finished. This might be a factor to drop the Java card's performance. In this paper, we define a rule of dual-lock which can run transaction at multiple transaction buffer as a method for a better java card performance, and we suggest this rule to improve a capability of transaction process. From this research, we are able to improve the data stability, reduce the java card transaction delay time, and get a higher processing speed of java card.
Smart Card is currently more popular in mobile communication, and smart card with java card platform becomes a standard choice. Java card has a problem that it gets lost working data when power is off. Transaction is the idea to solve a problem of data loss, but it accepts only one transaction process, and other transaction process need to hold until the current working transaction is finished. This might be a factor to drop the Java card's performance. In this paper, we define a rule of dual-lock which can run transaction at multiple transaction buffer as a method for a better java card performance, and we suggest this rule to improve a capability of transaction process. From this research, we are able to improve the data stability, reduce the java card transaction delay time, and get a higher processing speed of java card.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 자바 카드가 가지는 하드웨어와 소프트웨어 기능상의 문제점들을 해결하기 위해서 최근 개발되고 있는 향상된 하드웨어 자원을 가지는 스마트카드에 기존의 자바 카드 가상 기계가 새로운 하드웨어 환경에 최적화 될 수 있도록 데이터의 무결성을 유지하는데 사용되는 버퍼 영역을 확장하고, 확장한 버퍼 영역을 두 단으로 분리하여 메모리 구조를 변경한다. 분리된 버퍼 영역을 활용하여 데이터를 기록하기 위한 대기 시간을 줄임으로써 자바 카드의 수행 성능을 향상 시키고자 한다.
본 논문에서는 자바 카드에서 트랜잭션을 빠르게 처리하기 위해 다중 트랜잭션 버퍼를 이용할 수 있는 트랜잭션 기법을 연구하였다. 이는 자바 카드에서 데이터 추가나 삭제, 변경되는 모든 데이터를 EEPROM의 트랜잭션 버퍼에 기록하고 있고, 그 데이터 기록 빈도가 전체 EEPROM의 70% 이상 트랜잭션 버퍼에서 발생하는데 비해 그 기록 방법이 단일트랜잭션 기법만을 이용함으로써 자바 카드의 수행속도를 저하시키는데 영향을 주고 있다는 점을 개선하기 위한 것이다.
분리된 버퍼 영역을 활용하여 데이터를 기록하기 위한 대기 시간을 줄임으로써 자바 카드의 수행 성능을 향상 시키고자 한다.
요인이 되었다[9]. 이 문제점의 해결책으로 본 논문에서는 다중 트랜잭션 버퍼를 이용하여 트랜잭션의 처리 시간을 감소시킴으로써 자바 카드의 수행성능을 향상 시키고자 한다.
제안 방법
여 Transaction Buffer」)과 Transaction Buffer_l 의 두 개의 트랜잭션 버퍼를 사용한다. 그리고 각각의 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 구현하였다.
그림 9에서 보는 바와 같이 호스트 시스템 상에 설치된 CalmSHINE16 개발 도구를 이용하여 다중트랜잭션 버퍼를 이용하는 트랜잭션 기법을 구현하고, 자바 카드를 타겟 보드 상의 ROM과 EEPROM에 탑재할 수 있는 형태인 이미지 파일로 변환한 후, 시리얼(RS-232C) 통신을 통해 이미지 파일을 타겟 보드에 적재시킨다. 그리고 CalmSHINE16 개발 도구를 사용하여 자바 카드 프로그램의 테스트 및 오류수정을 한다.
기존의 자바 카드에서는 하나의 트랜잭션 버퍼를 사용하지만 본 논문에서 제안하는 다중 트랜잭션 버퍼를 이용하는 트랜잭션 기법은 트랜잭션을 위한 영역인 트랜잭션 버퍼가 두 개 필요하다. 일반적으로 자바 카드에서 트랜잭션 버퍼의 크기는 2K 바이트를 할당하지만, 본 논문에서는 두 개의 트랜잭션 버퍼를 할당하기 위해 전체 트랜잭션 버퍼의 크기를 3Kbytes로 할당하고, 그것을 1.
본 논문에서 구현된 디중 트랜잭션 버퍼를 이용하는 트랜잭션 기법을 적용시킨 자바 카드와 기존 자바 카드의 테스트 공정성을 위하여 자바 카드 패키지에서 제공하는 Sun사의 기본 샘플들을 이용하여 애플릿의 설치부터 메소드 실행까지의 시간을 비교한다.
본 논문에서 제시한 다중 트랜잭션 버퍼를 이용하는 트랜잭션 기법에 대한 실험결과를 기존의 트랜잭션 기법을 사용하는 자바 카드에서의 애플릿 설치부터 메소드 실행까지의 수행 시간과 비교하였다. 그리고 측정에 이용된 시간 단위는 ms(l/1000s)를 사용한다.
실험 결과인 애플릿 수행 시간의 측정 방법은 데스크 탑에서 카드 리더기를 통해 자바 카드에 APDU를 전송하고 응답 받는 시간을 측정한 것이다.
일반적으로 자바 카드에서 트랜잭션 버퍼의 크기는 2K 바이트를 할당하지만, 본 논문에서는 두 개의 트랜잭션 버퍼를 할당하기 위해 전체 트랜잭션 버퍼의 크기를 3Kbytes로 할당하고, 그것을 1.5K 바이트씩 두 개로 분리하였다. 트랜잭션 버퍼를 두 개로 분리하더라도 기존 2K 바이트 크기의 트랜잭션 버퍼에 기록하던 로그 데이터를 1.
대상 데이터
이를 위한 실험 환경은 그림 11 과 같이 OpenlCE-C1605 에뮬레이터 장비와 연결된 S3CC9P9 스마트카드 개발 보드와 스마트카드 리더기를 이용하여 실험하였다. 실험 결과인 애플릿 수행 시간의 측정 방법은 데스크 탑에서 카드 리더기를 통해 자바 카드에 APDU를 전송하고 응답 받는 시간을 측정한 것이다.
이론/모형
적재시킨다. 그리고 CalmSHINE16 개발 도구를 사용하여 자바 카드 프로그램의 테스트 및 오류수정을 한다.
본 논문에서 설계된 다중 트랜잭션 버퍼를 이용한 트랜잭션 기법을 구현하기 위해 그림 9와 같이 16비트의 마이크로컨트롤러와 160KB 의 ROM, 32KB 의 EEPROM, 6KB 의 RAMdmf 가지는 스마트카드 개발 보드인 S3CC9P9 모델을 이용한다.
기법에 관한 알고리즘을 나타낸다. 본 논문의 알고리즘은 이 중 잠금 규칙에 의해서 제어된다.
스케줄에 따라 트랜잭션을 수행하기 위해서는 beginTransactionO이 호출될 때 변경될 데이터의 길이, 주소, 값을 매개 변수로 받아와야 하고, 트랜잭션을 제어할 수 있는 규칙이 필요하다. 본 논문의 트랜잭션 스케줄은 표 3의 이 중 잠금 (Double Lock) 규칙에 의해 제어된다.
성능/효과
이는 자바 카드에서 데이터 추가나 삭제, 변경되는 모든 데이터를 EEPROM의 트랜잭션 버퍼에 기록하고 있고, 그 데이터 기록 빈도가 전체 EEPROM의 70% 이상 트랜잭션 버퍼에서 발생하는데 비해 그 기록 방법이 단일트랜잭션 기법만을 이용함으로써 자바 카드의 수행속도를 저하시키는데 영향을 주고 있다는 점을 개선하기 위한 것이다. 그리고 다중 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 이 중 잠금(Double Lock) 규칙을 규정하고, 이 규칙 에 따라 트랜잭션을 처리함으로써 트랜잭션 처리 성능을 개선시킬 수 있었고, 또한 자바 카드의 수행 성능을 향상 시킬 수 있었다. 이러한 연구결과를 통해 다목적으로 사용되는 스마트카드 환경에 보다 빠르고 안정적인 자바 카드 기술을 제공할 수 있고, 적은 하드웨 어 자원을 기반으로 하고 트랜잭션을 제공하는 시스템 환경에서 데이터의 안전성을 높이고, 응용 프로그램을 수행하는 속도를 개선할 수 있는 방안을 제시할 수 있을 것이다.
본 논문에서 제시한 다중 트랜잭션 버퍼를 이용하여 트랜잭션을 처리하는 방법을 통한 자바 카드의 실험 결과를 살펴보면 기존의 방법보다 응용 프로그램의 수행 시간이 감소하였고, 그에 따라 자바 카드의 전체적인 수행 성능이 향상되었음을 알 수 있다.
기법을 연구하였다. 이는 자바 카드에서 데이터 추가나 삭제, 변경되는 모든 데이터를 EEPROM의 트랜잭션 버퍼에 기록하고 있고, 그 데이터 기록 빈도가 전체 EEPROM의 70% 이상 트랜잭션 버퍼에서 발생하는데 비해 그 기록 방법이 단일트랜잭션 기법만을 이용함으로써 자바 카드의 수행속도를 저하시키는데 영향을 주고 있다는 점을 개선하기 위한 것이다. 그리고 다중 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 이 중 잠금(Double Lock) 규칙을 규정하고, 이 규칙 에 따라 트랜잭션을 처리함으로써 트랜잭션 처리 성능을 개선시킬 수 있었고, 또한 자바 카드의 수행 성능을 향상 시킬 수 있었다.
표 4에 제시된 결과에서 보는 바와 같이 본 논문에서 제시한 다중 트랜잭션 버퍼를 이용하여 트랜잭션을 처리하는 방법이 자바 카드에 프로그램을 적재하고 실행하는데 약 33% 정도 기존 방식보다 효과적인 것으로 나타났다.
후속연구
것이다. 그리고 테스트 샘플에 있는 메소드들이 트랜잭션을 이용하여 데이터를 갱신하는 빈도가 많으면 많아질수록 더욱 효과 적일 것이다.
본 논문에서 제안한 알고리즘의 단점으로는 트랜잭션 버퍼의 크기가 증가하고 두 개로 분리되었기 때문에 카드에 전원이 차단되고 재인가 될 때 데이터를 복구하는 과정에서 기존의 자바 카드보다 시간이 더 소비하게 된다는 문제점이 있다.
그리고 다중 트랜잭션 버퍼에서 트랜잭션을 수행할 수 있도록 이 중 잠금(Double Lock) 규칙을 규정하고, 이 규칙 에 따라 트랜잭션을 처리함으로써 트랜잭션 처리 성능을 개선시킬 수 있었고, 또한 자바 카드의 수행 성능을 향상 시킬 수 있었다. 이러한 연구결과를 통해 다목적으로 사용되는 스마트카드 환경에 보다 빠르고 안정적인 자바 카드 기술을 제공할 수 있고, 적은 하드웨 어 자원을 기반으로 하고 트랜잭션을 제공하는 시스템 환경에서 데이터의 안전성을 높이고, 응용 프로그램을 수행하는 속도를 개선할 수 있는 방안을 제시할 수 있을 것이다.
Sun Microsystems, Inc., The Java $Card^{TM}$ 2.2.1 Virtual Machine Specification, SUN, 2003.
Xavier Leroy, "On-Card Bytecode Verification for Java Card," E-smart 2001, LNCS 2140, pp. 150-164, 2001.
Sun Microsystems, Inc., The Java $Card^{TM}$ 2.2 Runtime Environment Specification, SUN, 2003.
Min-Sik Jin and Min-Sao Jung, "A study on fast JCVM by moving object from EEPROM to RAM," Proceedings of the 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Application, RTCSA'05, pp, 84-88, 2005.
Yoon-sim Yang, Won-He Choi, Min-Sik Jin, Cheul-Jun Hwang, and Min-Soo Jung, "An Advanced Java Card System Architecture for Smart Card Based on RAM Memory," 2006 International Conference on Hybrid Information Technology, ICHIT2006, Vol.2, pp. 646-650, 2006.
이동욱, 황철준, 양윤심, 정민수, "전원 공급이 지속적인 대용량 스마트카드를 위한 JCVM 시스템 구조 개선," 멀티미디어학회논문지, Vol.10, No.8, pp. 1029-1038, 2007.
M. Oestreicher and K. Ksheeradbhi, "object lifetimes in javacard," Proc. Usenix Work-shop Smart Card Technology, Usenix Assoc, Berkeley, Calif., pp. 129-137, 1999.
SUN Korea Developer Network, http://kr.sun. com/developers, 2003.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.