You have a privilege to create a quiz (QnA) related to this subject and obtain creativity score...
JavaCard Technology Introduction Nothing is more powerful than an idea whose time has come.
–Victor Hugo
This chapter turns the smallest Java Virtual Machine (JVM) running on a smart card into a powerful key that can open all doors.
What Is a Smart Card? Imagine a regular plastic card (often called “plastic”) with either a microprocessor and/or a memory chip embedded into the card. The microprocessor can manipulate information on the card, whereas a memory chip (e.g., the one in a prepaid phone card) can undertake only a predefined operation performed by a card reader.
Smart cards, unlike magnetic-stripe cards, do not require remote access at the time of the transaction; they can carry all the necessary functions and information right on the card. Today, there are three categories of smart cards: microprocessor, memory, and optical memory.
Microprocessor cards have an 8-bit processor, 16 KB of read-only memory, and 512 bytes of random access memory. Their processing power is similar to the first personal computers. These cards can perform cryptography algorithms and are used to access, hold, and otherwise manage digital money; provide secure access to computer and phone networks; secure set-top boxes; and perform other functions.
Memory cards, which can hold up to 1 to 4 KB of data, represent the bulk of the 600 million smart cards sold last year, primarily for prepaid, disposable card applications like prepaid phone cards.
Card readers (also known as card-accepting devices) perform fixed operations (e.g., add, subtract, delete) on memory cards.
Optical memory cards have a piece of (optical) compact disc glued on their surface. Up to 4 MB of data can be stored on the card, once and forever. Optical memory cards can be used to store rarely changed data like driving records and medical files. The number of related applications will grow in the future, when these cards include a processor.
While regular strip cards cost about $0.20 each, memory cards cost about $1. Prices for microprocessor and optical cards are around $10 each. Card readers are more expensive – around $500 – and even higher for optical memory card readers – about $3,000.
What Is a JavaCard? A tiny member of the J2ME family, the JavaCard (the smallest and one of the most successful of Java’s children) is probably the closest to the original idea of Java as an engine for tiny programs running on multiple appliances. JavaCard specifications enable Java technology to run on smart cards and other devices with limited memory.
The JavaCard application program interface (API) provides an application environment compatible with international standards for smart cards, such as ISO 7816 and EMV, that define physical, electronic, and operating features of the card. For example, according to the specification, the size of a smart card is 85 x 54 x 0.76 millimeters.
More than 90 percent of the worldwide smart card manufacturers have licensed the JavaCard Application Environment. This technology is not new for most of them. For example, the leading smart card manufacturer, Gemplus, early recognized the unique benefits of JavaCard and when I trained their development team in Montreal, Canada, in 2000 they already started working with this technology.
Was it clear so far?
JavaCard technology inherits the interoperability and security of the Java language. Java applets developed with JavaCard technology can run on any JavaCard technology–based smart card, independently of the card vendor and hardware. Multiple applets can coexist securely on a single smart card, and new applets can be dynamically installed after a card has been issued. Multiple applets can belong to the same package and pass control among one another; these are called multiselectable applets.
Why Do We Use Multiple Keys?
I have a key for the door at home, one for my sister’s house (to feed her cat when she is on vacation), two for my workplace, one for the car, and one for another car. In my pocket, I also keep handy a couple of credit cards, a medical insurance card, a pay phone card, a library card, and a video rental card. (Sorry, I almost forgot my driver’s license!)
All these objects in my pocket (sometimes I have cash there too) serve as identity and access keys.
Can We Have a Single ‘Identity Key’? JavaCard technology is going to simplify our lives in many ways. First of all, it will decrease or eliminate a number of keys and cards we currently keep handy in our pockets.
The illustration below shows this identity key as a single JavaCard that works with a card reader at any door or for any service. The same card can also help identify a driver, rent a movie, order dinner, or use distributed knowledge and service networks. The card can exchange data with a card reader and provide you with secure access to any computerized services where your identity data are important.
The service may require an interactive interface, which may be provided by a terminal application – for example, one running on a Tablet PC geared to a pen and voice interface. A card reader on a Tablet PC may be placed on any wall in a store, hotel, or airport, or in a car or on public transportation.
The single identity key would provide access to the world of all public services paid for by digital money and to the world of distributed private services owned by groups and ruled by group memberships, roles, and virtual currency (contribution/consumption score) data.
A single Identity Key will serve us to illustrate JavaCard programming.
We will write VirtualCurrency and DigitalMoney JavaCard applets.
Assignments 1. Read and answer a QnA
2. Create two more QnA on a subject (strictly follow the format but do not repeat existing QnAs) and email to dean@ituniversity.us