Microprocessor

Development Kit

includes:

  • 1 x CyberMouse - PC/SC Smartcard reader/writer - serial version
  • 1 x Balance Reader
  • 1 x Software Development Kit (SDK) for Windows ®
  • 1 x Documentation on CD-ROM
  • 1 x Technical manual in printed form
  • 1 x Enhanced Microprocessor ZC3.7 (2 kByte E²Prom)
  • 2 x Enhanced Microprocessor ZC3.9 (8 kByte E²Prom)

 

Overview

Like most computer hardware, the price of smart cards is steadily decreasing, while performance and capacity are improving all the time. You can now buy a fully-functional computer, the size of your thumb-nail, for just a euro or two. However, before the Microprocessor arrived, the cost of developing software for smart cards was out of all proportion to the cost of the hardware. A typical development project might take six months and cost a quarter of a million euros. This was a major barrier to the widespread use and acceptance of smart cards.

But now you can program your own smart card in an afternoon, with no previous experience required. If you can program in Basic, you can design and implement a custom smart card application. With ZeitControl’s Microprocessor, the development cycle of writing code, downloading, and testing takes a few minutes instead of weeks.

The Smart Card Environment

Obviously, programming a smart card is not the same as programming a desktop computer. It has no keyboard or screen, for a start. So how does a smart card receive its input and communicate its output? It talks to the outside world through its bi-directional I/O contact. Communication takes place at 9600 baud or more, according to the T=0 and T=1 protocols defined in ISO/IEC standards 7816-3 and 7816-4. But this is completely invisible to the Basic programmer – all you have to do is define a command in the card, and program it like an ordinary Basic procedure. Then you can call this command from a ZC-Basic program running on the PC. Again, the command is called as if it was an ordinary procedure.

The Microprocessor operating system takes care of all the communications for you. It will even encrypt and decrypt the commands and responds if you ask it to. All you have to do is specify a different two-byte ID for each command that you define. (If you are familiar with ISO/IEC 7816-4: Interindustry commands for interchange, you will know these two bytes as CLA and INS, for Class and Instruction.)

Here is a simple example. Suppose you run a discount warehouse, and you are issuing the Microprocessor to members to store pre-paid credits. You will want a command that returns the number of credits left in the card. So you might define the command GetCustomerCredits, and give it an ID of &H20 &H01 (&H is the hexadecimal prefix):

  • Eeprom CustomerCredits ' Declare a permanent Integer variable

    Command &H20 &H01 GetCustomerCredits (Credits)

    Credits = CustomerCredits

    End Command

  • You can call this command from the PC with the following code:

  • Const swCommandOK = &H9000

    Declare Command &H20 &H01 GetCustomerCredits (Credits)

    Status = GetCustomerCredits (Credits)

    If Status <> swCommandOK Then GoTo CancelTransaction

  • The value &H9000 is defined in ISO/IEC 7816-4 as the status code for a successful command. This value is automatically returned to the caller unless the ZC-Basic code specifies otherwise. The return value from a command should always be checked, even if the command itself has no error conditions – for instance, the card may have been removed from the reader.

    It’s as simple as that. Of course, there is a lot more going on below the surface, but you don’t have to know about it to write a Microprocessor application.

    Technical Summary

    All Microprocessor families (Compact, Enhanced, and Professional) contain:

    • a full implementation of the T=1 block-level communications protocol defined in ISO/IEC 7816-3: Electronic signals and transmission protocols, including chaining, retries, and WTX requests;
    • a command dispatcher built around the structures defined in ISO/IEC 7816-4: Interindustry commands for interchange (CLA INS P1 P2 [Lc IDATA] [Le] );
    • built-in commands for loading EEPROM, enabling encryption, etc.;
    • a Virtual Machine for the execution of ZeitControl’s P-Code;
    • code for the automatic encryption and decryption of commands and responses, using the AES, DES, or SG-LFSR symmetric-key algorithm.

    Enhanced and Professional Microprocessors contain in addition:

    • a directory-based, DOS-like file system;
    • IEEE-compatible floating-point arithmetic.

    The functionality of the Enhanced Microprocessor family can be further extended using Plug-In Libraries.

    Professional Microprocessors contain in addition:

    • a Public-Key algorithm (RSA or EC);
    • a full implementation of the T=0 byte-level communications protocol defined in ISO/IEC 7816-3: Electronic signals and transmission protocols;
    • the SHA-1 Secure Hash Algorithm.

    The data sheet on the next page contains details of available Microprocessors versions, and the cryptographic algorithms that they support.

    Development Software

    The ZeitControl MultiDebugger software support package consists of:

    • ZCPDE, the Professional Development Environment;
    • ZCMDTERM and ZCMDCARD, debuggers for Terminal programs and Microprocessor programs;
    • ZCMBASIC, the compiler for the ZC-Basic language;
    • ZCMSIM, for low-level simulation of Terminal and Microprocessor programs;
    • BCLOAD, for downloading P-Code to the Microprocessor;
    • KEYGEN, a program that generates random keys for use in encryption;
    • BCKEYS, for downloading cryptographic keys to the Compact and Enhanced Microprocessors.

    Compact Microprocessor

    Version

    EEPROM

    RAM

    Protocol

    Encryption

    Floating-Point Support

    File System

    ZC1.1

    1K

    256 bytes

    T=1

    SG-LFSR

    None

    No

    Enhanced Microprocessor

    Version

    EEPROM

    RAM

    Protocol

    Encryption

    Extras

    FP Support

    File System

    ZC3.1

    2K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.2

    4K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.3

    8K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.4

    16K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.5

    6K

    256 bytes

    T=1

    DES

    EC-FSA1

    Full

    Yes

    ZC3.6

    14K

    256 bytes

    T=1

    DES

    EC-FSA1

    Full

    Yes

    ZC3.7

    2K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.8

    4K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    ZC3.9

    8K

    256 bytes

    T=1

    DES

     

    Full

    Yes

    1 EC-FSA: Fast Signature Algorithm for Elliptic Curve Cryptography

    Plug-In Libraries for the Enhanced Microprocessor: EC-161, AES, SHA-1, IDEA

    Professional Microprocessor

    Version

    PK Algorithm

    EEPROM

    RAM

    Protocol

    Encryption

    Extras

    FP Support

    File System

    ZC4.5A

    RSA

    30K

    1K

    T=0, T=1

    AES

    SHA-1

    Partial1

    Yes

    ZC4.5D

    RSA

    30K

    1K

    T=0, T=1

    DES

    SHA-1

    Partial1

    Yes

    ZC5.4

    EC-167

    16K

    1K

    T=0, T=1

    AES & DES

    SHA-1

    Full

    Yes

    ZC5.5

    EC-167

    31K

    1.7K

    T=0, T=1

    EAX/OMAC/
    AES/ DES

    SHA-1

    Full

    Yes

    1 Single-to-String conversion not supported

    MultiApplication Microprocessor

    Version

    PK Algorithm

    EEPROM

    RAM

    Protocol

    Encryption

    Extras

    FP Support

    File System

    ZC6.5

    EC-167

    31K

    1.7K

    T=0, T=1

    EAX/OMAC/
    AES/ DES

    SHA-1

    Full

    Yes

    Public-Key Algorithms

    Name Description Key size Reference
    RSA Rivest-Shamir-Adleman algorithm 1024 bits IEEE P1363: Standard Specifications for Public Key Cryptography
    EC-167 Elliptic Curve Cryptography over the field
    GF(2167 )
    167 bits
    EC-161 Elliptic Curve Cryptography over the field
    GF(2168 )
    161 bits

    Symmetric-Key Algorithms

    Name Description Key size Reference
    EAX Encryption with Authentication for Transfer (using AES) 128/192/
    256 bits
    EAX: A Conventional Authenticated-Encryption Mode1
    M. Bellare, P. Rogaway, D. Wagner
    OMAC One-Key CBC-MAC (using AES) 128/192/
    256 bits
    OMAC: One-Key CBC MAC1
    Tetsu Iwata and Kaoru Kurosawa
    Department of Computer and Information Sciences, Ibaraki University
    4–12–1 Nakanarusawa, Hitachi,
    Ibaraki 316-8511, Japan
    AES Advanced Encryption Standard 128/192/
    256 bits
    Federal Information Processing Standard FIPS 197
    DES Data Encryption Standard 56/112 bits ANSI X3.92-1981: Data Encryption Algorithm
    SG-LFSR Shrinking Generator – Linear Feedback Shift Register 64 bits D. Coppersmith, H. Krawczyk, and Y. Mansour, The Shrinking Generator, Advances in Cryptology – CRYPTO ’93 Proceedings, Springer-Verlag, 1994
    IDEA International Data Encryption Algorithm 128 bits X. Lai, On the Design and Security of Block Ciphers, ETH Series in Information Processing, v. 1, Konstanz: Hartung-Gorre Verlag, 1992


    Data Hashing Algorithms

    Name Description Reference
    SHA-1 Secure Hash Algorithm,
    revision 1
    Federal Information Processing Standard FIPS 180-1

    Communication Protocols

    Name Description Reference
    T=0 Byte-level transmission protocol ISO/IEC 7816-3: Electronic signals and transmission protocols
    T=1 Block-level transmission protocol

     

    All You Need To Know About Magstripe Guide to Magnetic Encoding on Cards


    Magnetic Track Specifications



    California Driver License's Format (DMV)

    Driver License's Format Recommended by (AAMVA)

    Credit Card Format






    © Copyright 1989 To Present Escan Technologies Corp. All Rights Reserved