|
|
|
|
|
Now Only $10.00
|
|
|
|
|
BasicCard -The first smart card you can program in Basic!
Smart card applications are increasingly successful.
The Basic Cards were developed with the aim of making
the programming of smart card applications as simple
and inexpensive as possible. For the year 2000, economy
researchers predict that more than
two billion smart cards will be in use world-wide. In the
course of this development, smart card programming will
become even easier. Please contact us for pricing and availability
NEW CombiBasicCard V1.0
This CombiBasicCard support the contact interface ISO 7816 and the
contactless RFID interface
ISO 14443/B in one Smart Card. The
first development tools (card and reader) will be available in the
september of 1999. The CombiBasicCard is full compatible to the
Enhanced BasicCard ZC2.3
Ready Application Programming Interface for 32 bit
Windows™
- API for programming using C/C++
- OCX (beta) for programming using Microsoft™
Visual Basic™
Easy Tool to use the BasicCard
with PC/SC or CHIPI reader under C/C++ or Visual Basic
Download the newest version
here
BasicCard -
The
first smart card you can program in Basic!
Smart card applications are
increasingly successful. The BasicCards were developed with
the aim of making the programming of smart card
applications as simple and
inexpensive as possible. For the year 2000, economy researchers predict that
more than
two billion smart cards
will be in use world-wide. In the course of this development,
smart card programming will become even
easier.
BASIC is a much-denigrated language. It is proven to be
perfectly adequate for smart card
applications, and free of all
the implementation headaches associated with JavaCards®. Therefore
Softwaregigant Microsoft® has good reasons to launch a
so-called "Smart Card for Windows®", a
smart card that can be
programmed in BASIC. For quite a long time now, we are already providing
these BASIC programmable smart cards.
BASIC is a programming language that is easy to learn and to
handle. Without any knowledge of
smart cards, BASIC permits to
program smart card applications on a single day - provided that one
knows the main principles of BASIC programming. In this way,
modern development tools permit
easy access to the development
of smart card applications. All this helps to reduce the time
required for programming, linking and testing the smart card to a few hours. A
comparison: With
conventional methods, this cycle lasts several
months.
Technology
The BasicCard comes in
two versions: the Compact BasicCard and the Enhanced BasicCard. Both
BasicCards contain 256 bytes of RAM, plus user-programmable
E²Prom: 1 kByte in the Compact
BasicCard, and 8 or 16 kByte in
the Enhanced BasicCard. The E²Prom contains the user's
ZC-Basic
code, compiled into a virtual machine language known as P-Code (the Java®
programming language uses the same technology). The user's
permanent data is also stored in
E²Prom – in the Compact
BasicCard, permanent data takes the form of BASIC variables, but the
Enhanced BasicCard contains a directory-based DOS-type file
system as well. The RAM contains
run-time data and the P-Code
stack.
Storage Facilities
While no exact
figure can be given, our experience suggests a ratio of about 10-20 bytes of
P-Code
to every statement of BASIC code. Assuming on average
one statement every two lines (for
comments and blank lines),
this works out at 1.000 - 1.600 lines of source code in an 8 kByte
E²Prom.
Basic better than... ?
The most important difference between a BasicCard and a
Java® or MultOS® card is not the
programming language, but the
price – the bigger the chip, the higher the price. Java® and
MultOS® are resource-hungry. Without 1 kByte RAM, 16 kByte ROM, and 16 kByte
E²Prom, they
simply won't run. But the BasicCard is happy with
256 bytes RAM, 8 kByte ROM, and 1 kByte
E²Prom.
Development Tools
To create P-Code and download it to the BasicCard, you need
ZeitControl's BasicCard support
software. This software is free
of charge, and can be downloaded at any time from the Internet page
Download
(with the "Free Download" button on the left). The support
software runs under
MS-DOS® and Microsoft® Windows® 95/98/NT.
These support packages let you test your software
even if you
don't have a card reader, by simulating the BasicCard and the card reader in the
PC.
The Windows® 95/98/NT software package contains a
fully-functional symbolic double debugger to
step through the
source code from the BasicCard and the PC simultaneously. So you can try out
your idea for a smartcard application without it costing you a
pfennig.
The Development Environment
Obviously, programming a smartcard is not the same as
programming a desktop computer. It has
no keyboard or screen,
for a start. So how does a smartcard 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, according to the T=1 protocol 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 as if it was 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, using the built-in 3DES algorithm, or
ECC for maximum security. All you have to do is specify a
different two-byte ID for each command
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:
Eeprom CustomerCredits ' Declare a
permanent Integer variable
' (Integer is the default in ZC-BASIC)
Rem Command GetCustomerCredits:
CLA = &H20, INS = &H01.
Rem Parameters: Credits (Integer) The result of the command
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.
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 BasicCard application. The return value from the command should
always be checked – the customer may have removed the card from
the reader, or the card may
have been issued by another
developer and not recognise your command.
The Software Support Package
ZCBASIC, a compiler for the
ZC-Basic programming language;
ZCDD, a split-screen 'Double Debugger' that runs under Windows® 95, for
debugging
Terminal code and
BasicCard code simultaneously;
ZCDOS, a P-Code interpreter that runs compiled ZC-Basic programs under MS-DOS®.
ZCDOS runs your Terminal program,
and can either run your BasicCard program
simultaneously in a simulated
BasicCard, or communicate over the serial port with a
genuine BasicCard;
BCLOAD, for downloading P-Code to
the BasicCard;
KEYGEN, a program
that generates random keys and primitive polynomials for use in
encryption;
BCKEYS, for downloading keys to
the BasicCard.
Technical Summary
The Compact BasicCard
contains 9K of ROM code, 1K of EEProm, and 256 bytes of RAM. The
ROM code contains:
a full implementation of the T=1
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 E²Prom, 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
Shrinking Generator algorithm
designed by D. Coppersmith, H. Krawczyk, and Y. Mansour
("The Shrinking Generator",
Advances in Cryptology – CRYPTO '93 Proceedings,
Springer-Verlag, 1994), with an
encrypted CRC for authentication.
The Enhanced BasicCard
contains 17K of ROM
code, 8 or 16 KByte of E²Prom, and 256 bytes of RAM. As well as the
components listed above for the Compact BasicCard, the ROM code
in the Enhanced BasicCard
contains:
code for the encryption and
decryption of commands and responses using DES, the
internationally recognised Data
Encryption Standard (SingleDES and TripleDES are
supported);
downloadable Ellipticle Curve
Cryptology (proposed IEEE standard P1363);
downloadable IDEA Cryptology;
a directory-based, DOS-like file
system;
IEEE-compatible
floating-point arithmetic.
Outlook
Programming smartcards has become
fairly easy. To develop an ISO-compatible application the
programmer no longer has to know complex transmission protocols such as T=1 or
must have had
sufficient knowledge of cryptologies, e.g. the
DES algorithm. These functions are already performed
by the
development tools.
In septemper of 1999, the first contactless BasicCard samples
will be available. The card, available
under the name
CombiBasicCard, can operate both ways - with contact interface ISO 7816 or
contactless interface with ISO 14443/B.
A further project focuses on a "BasicCard mask developer kit"
where you can download the mask
for the smartcard on your own
desk. For this we will use a new generation of microprocessors with
Flash-ROM instead of mask-ROM.
Prices: Please call For pricing and availabality
Compact BasicCard ZC1.1 , 1kbyte
E²Prom, in small qty.:
Enhanced
BasicCard ZC2.3, 8kbyte E²Prom, in small qty.:
Enhanced BasicCard ZC2.4, 16kbyte
E²Prom, in small qty.:
Smart Card Reader/Writer
Description
The SM5 is an intelligent smart card reader/writer which is controlled from a
PC serial port. It can communicate with both asynchronous processor based
cards and synchronous memory cards. The SM5 incorporates an 8-bit CMOS
microcontroller, which controls all the internal reader functions. This
reduces
the workload of the PC allowing it to concentrate on higher-level
operations. It
can be easily incorporated into existing systems or used as a
development tool.
An application is in progress for Mondex type approval for
the SM5. Possible
PC/smart card applications include:
Secure access to databases or networks by means of
access codes on
smart cards.
Provision of a secure storage medium for ID cards,
training records or
user profiles.
An electronic payment mechanism with either tokens
or actual stored
value.
The reader is member of the GIS Smart Mouse product range, and is
supported by comprehensive 'C' libraries under Win32. A specially designed
low-profile case allows the reader to be placed conveniently next to the PC.
Alternatively, the product can be supplied as naked board assemblies or in
PC
disk slot housings. Power is supplied either from the keyboard port or by
means
of an auxiliary power supply. An onboard LED indicates when the device
is
processing commands. Due to its robust design, the card insertion unit in
the
reader is guaranteed for over 100,000 insertions.