A method for manufacturing a personalizable portable electronic device having a 0.libraries as well as a corresponding portable electronic device and personalization system. The method includes a step of storing a plurality of compressed application code libraries in the non-volatile memory a step of determining which application code libraries are not required for applications used on the personalizable portable electronic device, a step of deleting from the non-volatile memory any compressed application code libraries determined to not be required for applications used on the personalizable portable electronic device, and a step of decompressing an application code library required by an application used on the personalizable portable electronic device. Other systems and methods are disclosed.
|
1. A method for readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries for the loading of at least one application, the non-volatile memory having a plurality of compressed application code libraries in the non-volatile memory, the method comprising:
determining, by a personalisation machine having a computer and a connection to a personalizable portable electronic device having a processor, which of the plurality of application code libraries are required for the at least one application to be loaded on the personalizable portable electronic device;
transmitting from the personalization machine to the portable electronic device a message informing the portable electronic device which application code libraries have been determined to be required by the at least one application to be loaded on the personalizable portable electronic device;
receiving by the portable electronic device the message informing the portable electronic device which application code libraries have been determined to be required by the at least one application used on the personalizable portable electronic device;
in response to receiving the message informing the personalizable portable electronic device which code libraries have been determined to be required, deleting, by the portable device, from the non-volatile memory any compressed application code libraries not indicated to be determined to be required for the at least one application to be loaded on the personalizable portable electronic device; and
decompressing, by the personalizable portable device, each application code library determined to be required by the at least one application to be loaded on the personalizable portable electronic device.
2. The method of readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries of
deleting a decompression program used to decompress an application code library from the non-volatile memory subsequent to the step of decompressing an application code library.
3. The method of readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries of
4. The method of readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries of
5. The method of readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries of
6. The method of readying a personalizable portable electronic device having a reprogrammable non-volatile memory for storage of application programs and libraries of
|
The present invention relates generally to manufacture of portable electronic devices, and more particularly to provisioning of multiple application code libraries in a compressed form for subsequent decompression for use by applications activated on the portable electronic devices, for example, integrated circuit cards primarily using non-volatile memory for program storage.
The present technology is described herein as related to smart cards (also known as integrated circuit cards, UICC, SIM, chip cards), which are small card-like electronic devices with embedded integrated circuits and memory. Smart cards have evolved significantly over time. One recent development is the increased use of flash memory, in lieu of Read-Only Memory (ROM), for program and data storage. Herein, the term non-volatile memory is used to describe memory systems that retain their stored content through power cycles and which may be reprogrammed Examples, include Electrically Erasable Programmable ROM (EEPROM) and flash memory.
The life of a smart card, from initial manufacture to ultimate disposal, is often described as the smart card life cycle. While there is no fixed life cycle model that applies to all cards and all deployments, there are certain common aspects. In a first phase, manufacturing, the smart cards are manufactured in bulk. This includes production of a card body, production of chips and contacts, and assembly of these into one structure. The production phase may also include pre-loading of operating systems, application code libraries, and certain static applications common to all cards of a family. Thus, the manufacturing phase involves several sub-steps; these include manufacturing of chip modules, printing of card bodies, and assembly of cards by embedding the chip modules into the card bodies. The chip module manufacturer and the card manufacturer may be separate entities.
Smart cards are in a sense the most personal of computers. A smart card may, for example, have embossed a user's name and likeness thereon and may contain personal information relating only to the user, e.g., the user's account information. Thus, a second phase in the life cycle is the personalization, also known as individualization, stage. During personalization, specific applications used by an individual user may be loaded onto the smart card. Such applications may require particular application code libraries to have been pre-loaded onto the smart card.
After personalization, the card may be issued to an end-user.
Let's consider an example including an issuing bank. The bank (issuer) would purchase a large number of cards from a card manufacturer. The issuer may use these cards with many applications; for example, in the banking context there may be applications for payment service companies such as VISA, Master Card, Eurocard, JCB Card, etc., specific financial institutions such as American Express, or payment applications provided by card manufactures such as the PURE payment application from Gemalto, N.V., Amsterdam, The Netherlands. Each of these applications requires a particular application code library, e.g., VISA application code library, Amex application code library, and so on. A card family is a card that contains a particular combination of code libraries.
Typically a given card is not used for all different applications, e.g., a VISA application may not co-exist on a card with a JCB Card application. Therefore, in the interest of cost savings achieved by having smaller NVM, it is not necessary to provide memory space to include all application code libraries. However, a drawback to that is that an issuer, e.g., the bank issuing cards to its customers, must order and maintain multiple card families, e.g., one card family for each of its applications. Managing multiple card families is expensive and cumbersome for the issuer; for example, if the issuer orders too many cards of one family, those cards may not be used with an incompatible application.
From the foregoing it will be apparent that there is still a need for an improved method to provide smart cards that provide for multiple application code libraries without requiring excessively large non-volatile memories that include code libraries not used after personalization of the cards.
In the following detailed description, reference is made to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that the various embodiments of the invention, although different, are not necessarily mutually exclusive. For example, a particular feature, structure, or characteristic described herein in connection with one embodiment may be implemented within other embodiments without departing from the spirit and scope of the invention. In addition, it is to be understood that the location or arrangement of individual elements within each disclosed embodiment may be modified without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, appropriately interpreted, along with the full range of equivalents to which the claims are entitled. In the drawings, like numerals refer to the same or similar functionality throughout the several views.
A technology is presented herein that provides an improved method for distributing application code libraries on integrated circuit cards. The improved method provides for compression of multiple application code libraries during manufacturing of the integrated circuit cards and a subsequent decompression of the compressed application code libraries that are used by applications loaded during personalization thereby allowing for one card family to support many more applications than would be possible otherwise.
During personalization of the integrated circuit card 101, physical identifying information may be added to the card, e.g., the issuer's logo 201, a photograph 203 of the customer to which the integrated circuit card is issued to, and the customer's name 207. While these are mere visual manifestations of the personal nature of the integrated circuit card 101, they are indicative of the personal nature of each individual card. The issuer also personalizes the specific integrated circuit card 101 assigned to a customer by storing information pertinent to that customer and with applications that the user can execute using the card 101 in non-volatile memory of the card.
The ROM 304 may or may not be present. Herein is described a technology in which much of the functionality that has hitherto been placed in ROM is now located in the NVM 305. However, that does not preclude that the integrated circuit card 101 has a ROM for some other purpose.
The NVM 305 may include computer programs 401 as is illustrated in
The integrated circuit card 101 programs 401 may include the operating system OS 219 and a decompression module 213b (the role of which is described in greater detail below) as well as other system programs 213a, e.g., cryptography, user authentication, and communications modules. The system programs 213a may include functionality of the integrated circuit card 101 required to perform the methods described herein.
The integrated circuit card 101 programs 401 may further include one or more applications 221 (e.g., 221a and 221b) for causing the integrated circuit card 101 to perform various tasks associated with the integrated circuit card 101. These applications may be applications associated with particular payment products, e.g., as provided by financial service corporations such as Visa Inc. of Foster City, Calif., MasterCard Incorporated of Purchase, N.Y., American Express Company of New York, N.Y., or Japan Credit Bureau (JCB) of Tokyo, Japan. The application programs 221 may also include custom application 221c provided by the card issuer, e.g., the PURE payment application provided by GEMALTO, N.V., Amsterdam, The Netherlands.
The applications 221 may be loaded onto the integrated circuit card 101 when the issuer personalizes the integrated circuit card 101 for a specific customer. Typically the applications 221 make calls to functions stored in application code libraries 223. In
Thus, the personalization stage, introduced in conjunction with
The stages of card manufacturing and personalization are stages of the overall life cycle of an integrated circuit card 101.
The manufacturing stage 401 also includes installing in the card system programs such as the operating system 219, code libraries 223, and system programs such as the decompression module 213b as well as other system programs 213a, e.g., cryptography and authentication. Typically these steps are performed as part of the chip-module manufacturing step 401a. The chip-module 105 may then be provided to a card manufacturer for embedding into a printed card stock, step 401c. At the conclusion of the manufacturing stage, all cards in a card family are similar to one another; differences may include serial numbers, unique cryptographic keys associated with a particular card. However, system programs such as OS 219 and code libraries 223 would typically be the same over one manufacturing run.
The next stage of the integrated circuit card life cycle is personalization stage 403. As discussed hereinabove the personalization stage (also known as individualization) involves personalizing the visual aspects of the integrated circuit card 101 by printing names, logos, photographs, etc. on the exterior surfaces of the integrated circuit card 101. During the personalization stage 403, the memory of the integrated circuit card 101, e.g., the NVM 305, is loaded with data associated with a particular individual, e.g., name, account numbers, keys, personal data, as well as any applications 221 that the customer associated with the integrated circuit card 101 will execute on the integrated circuit card 101. Further, the personalization stage 403 may include cleaning up the memory, e.g., the NVM 305, by removing any programs or data that are not needed during the use of the integrated circuit card 101.
The present technology particularly pertains to the manufacturing stage 401 and personalization stage 403 of the integrated circuit card 101 life cycle 400. The remaining the integrated circuit card 101 life cycle 400 stages are the utilization stage 405—in which the integrated circuit card 101 is issued to a customer and during which the customer makes use of the card—and the end of life stage 407 in which the card is taken out of use.
While the present technology is primarily intended for execution during the manufacturing 401 and personalization 403 stages, certain customization of an integrated circuit card 101 could be performed after issuance of an integrated circuit card 101 to a customer. Thus, it is possible that the techniques described below would be performed during an early part of the utilization stage 405, for example, as part of activating a card after issuance to a customer.
Historically, integrated circuit cards would have relatively large read-only memories 304, e.g., as illustrated in
Recently it has become increasingly common that integrated circuit cards rely on NVM 305 for storing programs and data. Non-volatile memory has the advantage vis-à-vis ROM of providing increased flexibility in terms of the data stored thereon; it is possible to add programs, delete programs, update programs, update data stored etc. However, NVM is more expensive than ROM. Therefore, it is often the case that the total storage provided is not as large or not large enough to store application code libraries 223 for all applications that an issuer would be issuing cards for.
The reduced address space of an NVM 305 that fails to include sufficient storage space for all application code libraries 223 can be solved by a manufacturer and issuer by having multiple integrated circuit card families, also known as variants, as is illustrated in
In a preferred embodiment, illustrated in
In a preferred embodiment, a corresponding decompressor 213b is also loaded into the NVM 305 of the chip-module 105 during the chip-module manufacturing stage 401a.
Step 801, performed during the manufacturing stage 401: the code libraries are compressed. The compression should be performed using a compression technique suitable for use with integrated circuit cards. One criteria in selecting a compression technique is to ensure that the compression is sufficiently effective that the size difference between the compressed code and the uncompressed code is sufficiently large to make up for the size of the decompressor 213b. Conversely, the compression technique should be simple enough that the decompressor 213b can be small enough to not offset the amount of compression achieved. In an alternative embodiment, the decompressor 213b is not stored on the integrated circuit card 101 but is uploaded to the integrated circuit card 101 during personalization 403.
Step 803, performed during the chip-module manufacturing stage 401a: the compressed code libraries 223 are loaded into the NVM of the chip-module 105.
Step 804: Next the manufacturer releases the chip-module 105 to a card manufacturer for integration into card stock, step 817. The card manufacturer then releases the cards to the issuer (e.g., a bank), step 819. The issuer personalizes the cards: personalization stage 403.
Step 805: the integrated circuit card 101 is entered into a personalization machine (illustrated in
Step 807: as a card is personalized for a customer, the applications 221 to be loaded onto the card is determined.
Step 809: based on the applications that are determined to be required for a customer, the required corresponding application code libraries 223 are determined.
Step 811: the personalization equipment, having determined which code libraries are required, signals the integrated circuit card 101 which code libraries to decompress and the integrated circuit card 101 decompresses the required code libraries. Specifically, the processor 301 executes instructions of the decompressor 213b to decompress the compressed code libraries 227 into decompressed code libraries 229 (
Step 813: the personalization equipment also signals the integrated circuit card 101 to delete compressed code libraries 227. The deletion of compressed code libraries 227 includes deleting the compressed versions of the code libraries that have been decompressed. The deletion may also be implicit in that the decompressed code libraries 229 may be written into space used to store compressed code libraries 227.
Step 815: Finally, the decompressor 213b may be deleted. Thus, the personalization equipment transmits an instruction to the integrated circuit card 101 to delete the decompressor 213b.
The method described hereinabove is advantageously performed by a personalization machine in conjunction with a manufacturing machine.
The personalization computer 153 transmits a list of code libraries to be decompressed. Typically, if the integrated circuit card 101 will only be used with one application, e.g., it is a VISA card and not an American Express. MasterCard, or JCB card, the list will only contain one code library, namely, the code library corresponding to the
The card decompresses the pertinent application code libraries, step 165, and cleans up the NVM 305 by deleting the compressed code libraries, step 167, and the decompressor, step 169.
The personalization computer 153 loads the application program(s) 221, step 171, and transmits the application program(s) 221 to the integrated circuit card 101, step 173. The integrated circuit card 101 receives the application(s) 221 and loads these into the NVM 305, step 175.
While the present technology has been described herein in the context of integrated circuit cards, the technology is applicable to other devices that are personalizable and which have constraints on memory size, for example, devices with non-volatile memory such as flash memory or EEPROM for program and data storage.
From the foregoing it is apparent that a technology is described which allows for distribution of multiple application code libraries on one integrated circuit card family that supports multiple applications thereby obviating the necessity for having multiple integrated circuit card families that support different applications. The hereinabove described technology provides for significant cost savings for manufacturers and card issuers alike in that one card family may support many more applications; perhaps all applications provided by an issuer thereby removing the need for maintaining and inventorying multiple card families.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. For example, many of the manufacturing steps are described hereinabove as part of particular stages of an integrated circuit card life cycle. A person skilled in the art would appreciate that many alternative scenarios are possible that all utilize the basic technology described herein. The invention is limited only by the claims.
Laurence, Sterling, Jeffreys, Antony
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
8149148, | Oct 08 2010 | Microsoft Technology Licensing, LLC | Local binary XML string compression |
20070150891, | |||
20080134043, | |||
20090222473, | |||
20100223342, | |||
20130066443, | |||
20130138718, | |||
20140025839, | |||
20150126142, | |||
20150326518, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 03 2014 | THALES DIS FRANCE SA | (assignment on the face of the patent) | / | |||
Jun 16 2016 | STERLING, LAURENCE | GEMALTO SA | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039004 | /0098 | |
Jun 16 2016 | STERLING, LAURENCE | MULTOS LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039004 | /0098 | |
Jun 20 2016 | JEFFREYS, ANTONY | GEMALTO SA | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039004 | /0098 | |
Jun 20 2016 | JEFFREYS, ANTONY | MULTOS LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039004 | /0098 |
Date | Maintenance Fee Events |
May 23 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Dec 17 2022 | 4 years fee payment window open |
Jun 17 2023 | 6 months grace period start (w surcharge) |
Dec 17 2023 | patent expiry (for year 4) |
Dec 17 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 17 2026 | 8 years fee payment window open |
Jun 17 2027 | 6 months grace period start (w surcharge) |
Dec 17 2027 | patent expiry (for year 8) |
Dec 17 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 17 2030 | 12 years fee payment window open |
Jun 17 2031 | 6 months grace period start (w surcharge) |
Dec 17 2031 | patent expiry (for year 12) |
Dec 17 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |