Java Card Performance Optimization of Secure Transaction Atomicity Based on Increasing the Class Field Locality

Java Cards are embedded systems, very often implemented as smart cards. They are used in banking, e-government, telecommunication, and ticketing. Due to these use cases they have to provide a wide range of security mechanisms and a high performance in relation to the available hardware cost. One of these security features is the transaction mechanism. It ensures that data in persistent memory stays consistent in case of the execution of the application is interrupted unexpectedly by e.g. loss of power. Such transaction mechanisms are very time consuming. Therefore, we propose a caching mechanism for transactions. The mechanism uses a buffer located in RAM and reduces costly write cycles into persistent memory without any loss of security. In order to further increase the performance of this caching mechanism, we additionally introduce a concept to maximize the locality of selected Java fields which are written very often.

[1]  Mike O'Connor,et al.  PicoJava: A Direct Execution Engine For Java Bytecode , 1998, Computer.

[2]  Alexander V. Veidenbaum,et al.  High performance annotation-aware JVM for Java cards , 2005, EMSOFT.

[3]  Mourad Debbabi,et al.  Accelerating embedded Java for mobile devices , 2005, IEEE Communications Magazine.

[4]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[5]  Z. Chen Java Card Technology for Smart Cards: Architecture and Programmer''s Guide. The Java Series. Addis , 2000 .

[6]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[7]  Marcus Oestreicher Transactions in Java Card , 1999, Proceedings 15th Annual Computer Security Applications Conference (ACSAC'99).

[8]  Ge Yuanqing,et al.  A Java processor suitable for applications of smart card , 2001, ASICON 2001. 2001 4th International Conference on ASIC Proceedings (Cat. No.01TH8549).