On the dictionary compression for Java card environment

  • Authors:
  • Massimiliano Zilli;Wolfgang Raschke;Johannes Loinig;Reinhold Weiss;Christian Steger

  • Affiliations:
  • Graz University of Technology, Graz, Austria;Graz University of Technology, Graz, Austria;NXP Semiconductors Austria GmbH, Gratkorn, Austria;Graz University of Technology, Graz, Austria;Graz University of Technology, Graz, Austria

  • Venue:
  • Proceedings of the 16th International Workshop on Software and Compilers for Embedded Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java Card is a Java running environment developed for low-end embedded systems such as smart cards. In this context of scarce resources, ROM size plays a very important role and compression techniques help reducing program sizes as much as possible. Dictionary compression is the most promising technique and has been taken in consideration in this field by several authors. Java Card can adopt a dictionary compression scheme, substituting repeated sequences of bytecodes with new macros stored into a dictionary. This approach does not break the Java Card standard, but requires the use of an ad hoc Java virtual machine and an additional custom component in the converted applet (CAP) file. This paper presents two derived compaction techniques and discusses two scenarios: the first adopts an adaptive (dynamic) dictionary, while the second uses a static one. Although the base dictionary compression technique performs better with an adaptive dictionary, the two proposed techniques perform very close to the base one with a static dictionary. Moreover, we present a different compression mechanism based on re-engineering the CAP file through subroutines. This last technique achieves a higher compression rate, but it is fully compliant with the existing Java Card environments.