is a new family of smartcard ICs that addresses this need for higher security. The ST19 series builds on the experience and security aspects of the ST16 smartcard IC family.
Smartcard IC Basics
While a smartcard IC must be capable of sophisticated computations in order to encrypt crucial data, it must do so under conditions unlike those of desktop systems. The IC must be very reliable and robust, since it's carried on one's person. It must consume little power so that transactions can be carried out with battery-powered card readers.
For reliability, the basic communications interface between the smartcard IC and the card reader is starkly simple: It uses just three lines (serial I/O, clock, and a reset synchronization signal). This interface i
s defined by the International Standards Organization (ISO 7816). With two more lines for power and ground, a smartcard IC must make do with just five connections to the outside world (the ST19 has an extra I/O line). However, this makes for a secure interface: Any information access goes only through these lines and requires that the smartcard IC approve it and process the transaction.
The smartcard IC must be a flexible device. A card vendor will configure it for different customers who have varying security requirements. Such configurations might range from a single-application card that runs only a single program to multiapplication cards that have specialized, segregated programs in ROM. A single-program card might act as a bank card, while a multiapplication card could act as an electronic purse (credit/debit) with a loyalty scheme, or as an insurance card that holds medical files.
ST19 Road Map
The ST19 is initially made using a 0.6-micron CMOS process technology. This pr
ovides two capabilities of the smartcard IC: a fast 5- to 10-MHz clock and low-voltage (3-V) operation that allows it to be used with battery-based card readers. This technology also provides high reliability and the high-memory-density EEPROM required for today's multifunction smartcard applications.
The ST19 IC is constructed from predefined logic modules. Together these modules make up the various subsystems of the smartcard IC, as shown in the figure
"The ST19 Microarchitecture"
. Each module has been qualified for its inputs, outputs, operation, and security capability.
The major part of any smartcard IC device is its on-chip memory. The ST19's memory is divided into three distinct areas: system ROM, user ROM, and user EEPROM. Various members of the ST19 have different amounts of RAM and ROM to handle different applications, as shown
in the table
. Each memory area has a user-defined memory-access control logic (MACL), which provides full separation b
etween on-chip application code and the data. Like a memory management unit, the MACL handles the read/write access permissions to the RAM partitions and read/execute/program/erase access to the EEPROM partitions, and it defines whether the EEPROM attributes can or cannot be modified. Thus the security level can easily be set to suit a single application card or a multifunction card.
The system ROM holds basic I/O, test, and security functions. These functions are based on a firmware library that maximizes security. The user ROM holds the operating system code. This code will differ depending upon the requirements of various end applications. Since both the system and the user areas are ROM, their code contents are placed in the device when it is manufactured, so they are fixed for the lifetime of the smartcard IC. The program code in the user ROM area is normally written with the assistance of SGS-Thomson to ensure that security is maintained.
The user ROM is split into two partitions. This allow
s, in conjunction with the MACL, several applications to coexist on the card at the same time. To augment security, each application's code can access only predefined memory areas.
The user EEPROM area stores variable data, such as personal data keys, a purchase history, perhaps your Social Security number, and favorite telephone numbers. It is partitioned into four areas. However, for this user-programmed area, memory access is set by attribute bytes in EEPROM, allowing the access control to be dynamically defined and changed. The address isolation provided by the MACL gives a high security level. In addition, depending on the application's needs, confidentiality of the data can be ensured by encryption.
The on-chip CPU needs its own RAM in order to operate. This again is partitioned into four areas. The card vendor defines these areas during the IC manufacturing stage, and to enhance security, the designer can prohibit code execution from RAM.
The ST19's 8-bit CPU core is object-code-compa
tible with the ST16 family. This allows the ST19 to use a ready-made library of secure functions. The ST19 core also features extended addressing modes and an instruction set that is especially designed for writing high-security applications. These instructions give optimum trade-off between complexity and size so that the software libraries can be very efficient for access control and file management. The ST19 compiler tools provide extra code efficiency by automatically using these new modes and instructions.
For cryptographic applications, the modular arithmetic processor (MAP) provides public-key cryptography (PKC) calculation using up to 512-bit (Level A) or 1024-bit (Level B) keys. When this is used together with the on-chip unpredictable-number generator, the ST19 can perform full public-key generation, digital signatures, and authentication internally. This capability guarantees that the secret key will never be known outside the smartcard and contributes to the overall security of the system.
Software Support
No CPU-based system is ever complete without a firmware development system. This, too, is provided, both as a complete development system and as Crypto-Library support routines. The Crypto-Library can be provided in the system ROM area, leaving 6 to 24 KB (depending on the ST19 family member) of user ROM available for the application software. The library spares the card OS designer from having to write low-level hardware driver functions and be able to concentrate on security algorithms.
The cryptographic library provides firmware functions for:
* Basic math, including modular squaring and multiplication for various- length digits
* Generating long random numbers
* Calculating Montgomery constants, which are required for long-number modular arithmetic
* Modular exponentiation with or without using the Chinese Remainder Theorem, a proven theorem that gives faster calculation of modular exponentiation
* More elaborate
functions such as RSA signatures and authentications for any modulo length up to 1024 or 2048 bits (depending on the required security level), or Digital Signature Algorithm signatures and authentications
* Full internal key generation for signatures and authentications
Toward a Secure Future
As the smartcard market grows globally and the stored value on smartcards increases, attempts at fraud will rise. How secure can a smartcard be? Formal certification schemes, such as the European Information Technology Security Evaluation Criteria (ITSEC), can give the user a high level of confidence in a particular application's security. For example, an ITSEC Certification to Level E3 High, which covers application, chip design, manufacturing, and delivery, has shown the ST16 smartcard ICs to be suited for a banking application. The ST19 builds on this track record using a reliable and proven nonvolatile memory technology. The ST19 also has a configurable architecture t
hat allows flexible designs, and its firmware supports many adaptable security mechanisms.