1. Smart card system requirements.
i) Purpose:
Enabling authentication and verification of card and card holder
by a host.
Enabling GUI at host machine to interact with the card
holder/user for the required transactions, for example, financial
transactions with a bank or credit card transactions.
ii) Inputs:
Received header and messages at IO port Port_IO from host
through the antenna.
iii) Internal Signals, Events and Notifications Notifications:
On power up, radiation-powered charge-pump supply of the card
activated and a signal to start the system boot program at
resetTask.
Card start requestHeader message to task_ReadPort from
resetTask.
Host authentication request requestStart message to
task_ReadPort from resetTask to enable requests for Port_IO.
UserPW verification message (notification) through Port_IO from
host.
Card application close request requestApplClose message to
Port_IO.
iv) Outputs:
Transmitted headers and messages at Port_IO through antenna
Control panel:
No control panel is at the card. The control panel and GUIs
activate at the host machine (for example, at ATM or credit card
reader)
v) Functions of the system:
The card inserts at a host machine.
The radiations from the host activate a charge pump at the card.
The charge pump powers the SoC circuit consisting of card
processor, memory, timer, interrupt handler and IO port, Port_IO.
On power up, system reset signals resetTask to start.
The resetTask sends the messages requestHeader and
requestStart for waiting task task_ReadPort.
task_ReadPort sends requests for host identification and reads
through the Port_IO the host-identification message and request
for card identification.
task_PW sends through Port_IO the requested card identification
after system receives the host identity through Port_IO.
task_Appl then runs required API. The requestApplClose message
closes the application.
The card can now be withdrawn All transactions between
cardholder/user now takes place through GUIs using at the host
control panel (screen or touch screen or LCD display panel).
vi) Design metrics:
Power Source and Dissipation: Radiation powered contact less.
Code size: optimum. card system memory needs should not
exceed 64 kB memory.
Limited use of data types; multidimensional arrays, long 64-bit
integer and floating points and very limited use of the error
handlers, exceptions, signals, serialization, debugging and
profiling.
Microcontroller hardware: Generates distinct coded physical
addresses for the program and data logical addresses. Protected
once writable memory space.
Validity: System is embedded with expiry date, after which the
card authorization through the hosts disables.
Extendibility: The system expiry date is extendable by
transactions and authorization of master control unit (for
example, bank server).
Performance: Less than 1s for transferring control from the card
to host machine.
Process Deadlines: None.
User Interfaces: At host machine, graphic at LCD or touch screen
display on LCD and commands for card holder (card user)
transactions.
vii) Test and validation conditions:
Tested on different host machine versions for fail proof card-host
communication.
2. Classes and class diagram
Classes:
Task_CardCommunication is an abstract class from which
extended to class (es) derive to read port and authenticate.
The tasks (objects) are the instances of the classes Task_Appl,
Task_Reset, Task_ReadPort and Task_PW.
ISR1_Port_IO, ISR2_Port_IO and ISR3_Port_IO are interfaces to the
tasks
3. Hardware Architecture
Smart card hardware:
A plastic card in ISO standard dimensions, 85.60 mm x 53.98 x
0.80 mm. It is an embedded SoC (System-OnChip). [ISO standards
- ISO7816 (1 to 4) for host-machine contact based card and
ISO14443 (Part A or B) for the contactless cards.]
Microcontroller MC68HC11D0 or PIC16C84 or a smart card
processor Philips Smart XA or an ASIP Processor. Needs 8 kB+
internal RAM and 32 kB EPROM and 2/3 wire protected memory.
CPU special features, for example, a security lock.
CPU locks certain section of memory - protect 1 kB or more data
from modification and access by any external source or
instruction outside that memory.
Other way of protecting - CPU access through the physical
addresses, which are different from logical address used in the
program.
Standard ROM 8 kB for usual or 64 kB when using advanced
cryptographic features.
Full or part of ROM bus activates take place after a security check
only.
Chip-supply system using charge pump.
I/O system.
4. Software Architecture
Smart Card Software:
Needs cryptographic software, needs special features in its
operating system over and above the MS DOS or UNIX system
features.
Protected environment -OS stored in the protected part of ROM.
A restricted run-time environment.
OS, every method, class and run time library should be scalable.
Optimum Code-size.
Limited use of data types; multidimensional arrays, long 64-bit
integer and floating points and very limited use of the error
handlers, exceptions, signals, serialization, debugging and
profiling.
Three-layered file system for the data.
Master file to store all file headers (file status, access conditions
and the file lock).
A header means file status, access conditions and the file lock.
Dedicated file ─ second file to hold a file grouping and headers of
the immediate successor
Elementary file ─ third file to hold the file header and its file data.
Either a fixed length file management or a variable file length
management with each file with a predefined offset.