Smart cards have been utilized excessively during the last couple of decades. In recent years though, a new generation of smart cards evolved: programmable smart cards. In this paper the authors give an overview of the current state of the technology and compare the cards on the market. They will also examine the trends of development, thus extrapolating their experiences about the present to the future. They also compare the predicted smart card to the ideal one, and try to describe the theoretical and practical boundaries that separate these two.
The ideal smart card
Having examined many of the possible applications of a smart card, the authors now try to collect the possible requirements for the ideal smart card, which would suit all of the needs.
Security was the main purpose of smart cards from the early days. In case of the ideal smart card tamper-resistance has utmost priority. The card manufacturer provides the card’s physical and the OS’s logical security. This is necessary to preserve the application’s logical security.
The ideal smart card has large storage capacity. It is in the region of megabytes, so even photographs and multimedia information can be stored on it (to be used in e.g. facial recognition). High storage capacity is also necessary to enable the use of more complex applications.
The ideal card is capable of real-time speech and video encryption. This requires three things: fast computation, fast communication with the outside world and fast cryptographic functions. For the latter purpose it contains a cryptographic co-processor for accelerating both symmetric and asymmetric cryptography.
In case of cryptographic protocols random number generation is vital. This card can generate good quality random numbers. If a random number generator can be predicted, whole security protocols can be corrupted. (A good example for this danger is the Fiat-Shamir algorithm, which would be suitable for a smart card due to its relatively low processor requirements on the card side.) It is theoretically proven that the generation of random data is not possible in an algorithmic way. In such cases a human factor is often used. Mobile phones can use disturbances in the ether as random seeds.
The ideal card has an own power supply and a timer. Equipping a security-oriented microcomputer with timers increases its cryptographic potential. The own power supply enables it to run without the support of a reader. Programmers do not have to keep in mind that the attacker may remove the card from the reader and so cut off its power supply thus trying to leave the card in an inconsistent state. To avoid such problems, transaction management should have been implemented. The own power supply not only makes transaction management unnecessary, but provides the possibility for an application to run on the card continuously. Moreover, more applications can run simultaneously in the ideal card’s multithreaded environment.
The ideal smart card is a compromise between two philosophies. The upper layer of the software architecture is flexible and replaceable whereas the operating system is strongly connected to the hardware.
The ideal smart card has a long lifetime (measured in decades). This, and the fact of storing precious information on the card gives robustness even more importance. The increase of the number of smart card based applications will definitely increase the number of smart cards held by one person. To solve this problem the ideal smart card runs multiple applications. These may change dynamically so that new applications can be downloaded to the card and deleted when they are not used. It is vital that these applications are separated so that they cannot tamper with each other’s data. However, due to lack of storage space and reasons of consistency, it is also vital that they can interact with each other and share data (e. g. cardholder name) or even code.
The card is programmed in a high-level platform- (and vendor-) independent programming language so that the source code can be easily transferred from one card to another.
Smart card of the future
Now let’s examine, what is realistic from the features of the ideal smart card, and what capabilities exist in the cards on the market today.
Today’s cards have 8-32 kilobytes of memory. This is likely to increase in the future in parallel with the development of IC technology. Computational power has a closer limit though. Controlling overheating has always been a problem in case of microelectronics but it case of cards the problem is even larger. The card’s shape is restricted and plastic may not melt. The authors believe that computational power will increase in the future, but will not increase dramatically. Neither will smart cards’ speed nor their storage capacity increase over that of PCs’.
Real-time encryption of speech or video is far beyond the capabilities of today’s cards, and the authors believe that it will not be possible in the near future. Supplying cards with cryptographic hardware is a question of price thus it is a question of mass production. Security and portability are the two areas where cards can be better used than PCs. This is why the author suppose that the smart card of the future will be equipped with cryptographic hardware. The production of good quality random numbers is a problem yet to be solved. The documentation of today’s cards contains no information on the ways of random number generation.
The possession of an own power supply probably has technical limitations, so cards are not likely to have one in the near future. This implies the absence of a timer too. However, non-card-shaped devices such as iButton do have such possibilities. Transaction management and power supply are two alternatives. On Java Cards the previous one is supported by the programming environment.
Although the Java Card API seems to be a well designed, clear and card-independent programming environment, this part of the technology is still in an infant stage today. Though the language of Java Cards is object oriented, this feature cannot be practically used due to limited hardware resources. This specification has changed a lot in the past and it is likely to change in the future in parallel with the improvement of the hardware.
The lifetime of cards is not measured in decades nowadays. However, iButton is a device designed for hard circumstances (rock climbing, swimming), and its estimated lifetime is much larger than that of smart card. However, the technology of programmable smart cards is new so no long-term experience is available.
Smart cards are not likely to have an own user interface in the future. However, their future is closely connected with that of mobile phones. Mobile telephony already gave a boost to the improvement of smart cards, and this rapidly developing area is where programmable smart cards are mostly used in practice today. Combining the power of smart cards with the user interface and network connection of mobile telephones new possibilities may arise. SIM cards already offered the users various applications in the past, and there is more to come.