First MultiApplication BasicCard ZC6.5: - Up to 128 applications
in a card; ZeitControl's MultiApplication
BasicCard ZC6.5 will Now ready to order |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 BasicCard 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 ZeitControls BasicCard, 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 BasicCard operating system takes care of all the communications for you. It will even encrypt and decrypt the commands and responses 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 BasicCard 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): Command &H20 &H01 GetCustomerCredits (Credits) Credits = CustomerCredits End Command You can call this command from the PC with the following code: 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. Its as simple as that. Of course, there is a lot more going on below the surface, but you dont have to know about it to write a BasicCard application. Technical Summary All BasicCard families (Compact, Enhanced, and Professional) contain:
Enhanced and Professional BasicCards contain in addition:
The functionality of the Enhanced BasicCard family can be further extended using Plug-In Libraries. Professional BasicCards contain in addition:
The data sheet on the next page contains details of available BasicCards versions, and the cryptographic algorithms that they support. Development Software The ZeitControl MultiDebugger software support package consists of:
Compact BasicCard
Enhanced BasicCard
1 EC-FSA: Fast Signature Algorithm for Elliptic Curve Cryptography Plug-In Libraries for the Enhanced BasicCard: EC-161, AES, SHA-1, IDEA Professional BasicCard
1 Single-to-String conversion not supported Public-Key Algorithms
Symmetric-Key Algorithms
Data Hashing Algorithms
Communication Protocols For more detailed information and software downloads visit our basiccard website www.basiccard.com. last changed: 18. June 2002 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||