VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Smart Cards: Towards a Modern Run-Time Platform
Last Updated: 2026-02-05 15:07:01
Abstract
This lecture provides a thorough introduction to smart cards in general and JavaCard in particular. The essential components and programming models of smart cards as a modern run-time platform will be comprehensively discussed with a focus on security aspects. The students further will do practical exercises that illustrate how to implement JavaCard services using a state-of-the-art IDE.
Objective
Firstly, the students will understand the fundamental concepts of secure tokens in general and smart cards in particular, with a focus on the JavaCard. Secondly, they will understand the programming models to be used in smart cards and the intricacies of a resource-constrained platform. Thirdly, they will see and experience a reasonable set of programming examples using the JavaCard run-time environment, all the way from an abstract perspective down to hands-on practical experience.
Content
Smart cards silently have captured the world. Virtually everybody--in the civilized world--nowadays uses smart cards unconsciously for everyday operations such as banking transactions or placing phone calls. Traditionally, smart cards were proprietary, static, single-application, and based on a file system. The industry, however, now is moving towards interoperable, easily programmable, multi-application architectures that turn smart cards into modern run-time platforms. This lecture covers all the required components of smart cards as a modern run-time platform, as well as their interplay, using the most widely accepted JavaCard and Global Platform specifications for case studies throughout. It starts with an introduction that overviews the (soon to be) available smart-card hardware, the communication modes and protocols, and a basic classification of smart-card operating systems in general. Then it moves on to the fundamentals of virtual machines as a means for hardware abstraction, the various memory management models, as well as issues of atomicity and transactions, followed by the effects of resource contraints on object-oriented programming. Afterwards, aspects related to security and cryptography on smart cards are discussed, before turning to the area of card and applet management which opens further security aspects of its own. Each topic will be accompanied by hands-on programming exercises illustrating the particularities of working on a resource-constrained device such as a smart card. For these exercises, IBM provides a JavaCard applet development plugin, the JCOP Tools 3, for the open source Eclipse IDE which is available for a wide range of operating systems including Windows, Linux, and MacOS X. This lecture mainly focuses on the software on top of standard off-the-shelf smartcard processors, yet the need for a close integration of software and hardware due to the severe resource constraints given will necessarily show through. Furthermore, although the lecture is about smart cards as a modern run-time platform, the fundamental principles and techniques presented are equally valid for any resource-constrained environment.
Resources
Literature
Chen. Java Card Technology for Smart Cards. Addison-Wesley, 2000.
General Information
- Language
- English
- Levels
- DS , BSC , MSC
- Frequency
- Yearly recurring
Examination
- Type
- session examination
- Mode
- oral 30 minutes
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture with exercise | Smart Cards: Towards a Modern Run-Time Platform |
|
3 h weekly |