This paper dwells greatly on the smart card technology focusing on Java Card as the case study.
Merriam-Webster online dictionary defines a smart card as “a small plastic card that has a built-in microprocessor to store and process data and records1.” In 1968, two great German scientists first mooted the idea of incorporating an integrated circuit into a plastic card. Many other people worked on this technology with no notable progress until 1974-1979 when Roland Moreno filed patents on smart cards in 11 different countries. Late 1970 saw the first commercialization of the smart card and the introduction of the microprocessor smart card through the work of CII-Honeywell Bull.
Initial trials on the smart card took place in France and Germany in the early 1980 where they were used as prepaid phone cards and secure debit/credit bank cards2. Currently, the power of smart cards has greatly advanced consequent of the existence of improved modern chip and cryptography technologies. They have diverse commercial applications such as banking, identification, ticketing as well as telecommunication applications where they are used as SIM cards on cell phones.
Traditionally, the development of smart card applications is subject to a lengthy, rigorous and difficult process. Development tools are built by smart card manufacturers using generic assembly language tools and dedicated hardware emulators obtained from silicon chip vendors. These facilities are not readily available to third party application developers making the development of these applications exclusive to a few highly skilled developers who have specialized in a particular smart card hardware and software. Until recently there existed no standard high-level application interface thus compelling developers to deal with the always technical low-level programming of modules such as communication ...