US5293029A - System for mutually certifying an IC card and an IC card terminal - Google Patents

System for mutually certifying an IC card and an IC card terminal Download PDF

Info

Publication number
US5293029A
US5293029A US07/942,337 US94233792A US5293029A US 5293029 A US5293029 A US 5293029A US 94233792 A US94233792 A US 94233792A US 5293029 A US5293029 A US 5293029A
Authority
US
United States
Prior art keywords
data
card
encryption
output
key data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US07/942,337
Inventor
Yasuo Iijima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP1008010A external-priority patent/JPH02187888A/en
Priority claimed from JP1008011A external-priority patent/JPH02187785A/en
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to US07/942,337 priority Critical patent/US5293029A/en
Application granted granted Critical
Publication of US5293029A publication Critical patent/US5293029A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption

Definitions

  • the present invention relates to a certification system and method for verifying data to be written in, e.g., a memory in an IC card.
  • IC card incorporating an IC chip having an erasable non-volatile memory and a control element, such as a CPU, for controlling the respective components including the memory.
  • the write data is encrypted within the IC card by using predetermined key data and encryption algorithm. Part of the encrypted data is supplied to the terminal. The terminal then supplies the encrypted data and the write data to the center. The write data is verified in the center by using these data.
  • a certification system comprising a first electronic device having at least one key data, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data and designation data for designating key data for encrypting the first data from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data from the at least one key data in accordance with the received designation data, and encrypting the received first data by using the selected key data, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
  • a certification system comprising a first electronic device having at least one key data and at least one encryption algorithm, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data, key data for encrypting the first data, and designation data for designating an encryption algorithm from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data and one encryption algorithm from the at least one key data and the at least one encryption algorithm in accordance with the received designation data, and encrypting the received first data by using the selected key data and encryption algorithm, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
  • a certification system comprising a first electronic device having key data and an encryption algorithm, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data and second data whose contents vary in each operation from the second electronic device to the first electronic device, means for, when the first and second data are received by the first electronic device, encrypting the received first data by using the received second data, the key data, and the encryption algorithm, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
  • a certification system comprising a first electronic device having at least one key data and at least one encryption algorithm, a second electronic device capable of performing communication with the first electronic device; means for transmitting first data, key data for encrypting the first data, and designation data for designating an encryption algorithm from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data and one encryption algorithm from the at least one key data and the at least one encryption algorithm in accordance with the received designation data, encrypting the received first data by using the selected key data and encryption algorithm, and transmitting the encrypted data to the second electronic device, means for, when the encrypted data is received by the second electronic device, verifying the first electronic device on the basis of contents of the received encrypted data, means for transmitting second data from the second electronic device to the first electronic device, means for, when the second data is received by the first electronic device, encrypting the received second data by using the key data and encryption algorithm selected on the
  • one of a plurality of key data held in the IC card is designate by the terminal, and write data is encrypted by using the designated key data. Therefore, even if the IC card is used in a plurality of applications, verification key data can be selectively used for each application, and security between the applications can be ensured.
  • one key data and one encryption algorithm of a plurality of key data and encryption algorithms held in the IC card are designated by the terminal, and write data is encrypted by using the designated key data and encryption algorithm. Therefore, even if the IC card is used in a plurality of applications, verification key data can be selectively used for each application, and security between the applications can be ensured.
  • FIG. 1 is a block diagram showing a system arrangement of an IC card, a terminal, and a center, to which a certification system of the present invention is applied;
  • FIG. 2 is a view showing an arrangement of a memory 3 within the IC card in FIG. 1;
  • FIGS. 3A, 3B-I, 3B-II, and 3C are views showing a procedure for a mutual certification operation between the IC card and the terminal, and a procedure for writing data from the terminal to the IC card;
  • FIGS. 4A through 4G are flow charts for explaining an operation of the IC card
  • FIG. 5 is a view showing a format of a certificate preparation command
  • FIG. 6 is a view showing a format of a certificate command
  • FIG. 7 is a view showing a format of an encryption preparation command.
  • FIGS. 8A and 8B are views showing formats of a write command.
  • FIG. 1 shows an arrangement of a system constituted by an IC card (first electronic device), a terminal (second electronic device) as a host device, and a center (host computer) according to the present invention.
  • An IC card 1 comprises a memory 3 for storing various data, a random number generator 5 for generating random number data, an encrypter 7 for encrypting data, a contactor 9 for communicating with a terminal 21 (to be described later), and a control element 11 such as a CPU (Central Processing Unit) for controlling these components.
  • the memory 3, the random number generator 5, and the control element 11 are integrated into, e.g., one IC chip (or a plurality of IC chips), and are embedded in an IC card body.
  • the memory 3 is constituted by a nonvolatile memory, such as an EEPROM (Electrically Erasable Programmable Read Only Memory), and is divided into an area definition table (area) 13 and a data file (area) 15, as shown in FIG. 2.
  • the data file 15 is divided into a plurality of areas 17.
  • the areas 17 are respectively defined by area definition data 19 in the area definition table 13.
  • the area definition data 19 is a data string in which an area number (AID) as identification data for designating an area, start address data of the memory at which an area is assigned, size data for defining the capacity of an area, and attribute data are arranged to correspond to each other.
  • Each attribute data consists of, e.g., one byte. If the MSB of attribute data is "0", it represents an encrypted data write area. If the MSB is "1", it represents an input data write area.
  • the terminal (second electronic device) 21 has a function of handling the IC card 1.
  • the terminal 21 comprises a memory 23 for storing various data, a random number generator 25 for generating random number data, an encrypter 27 for encrypting data, a keyboard 29 for inputting data, a display 31 for displaying data, a contactor 33 for communicating with the IC card 1, a communication controller 35 for performing on-line communication through a center (host computer) 39 and a communication line 41, and a control section 37, such as a CPU, for controlling these components.
  • a certification system and method of the present invention will be described in detail below with reference to FIGS. 3A through 3C.
  • a key data list and a key data number (KID) list shown in FIG. 3A are stored in the memory 23 of the terminal 21.
  • a key data list is a list in which key data numbers and key data are arranged in correspondence with each other.
  • a KID list lists only key data numbers for designating key data.
  • the IC card 1 has its own key data list which is registered (stored) in the memory 3 in the IC card when the card is issued.
  • step 43 the terminal 21 generates random number data Rl by using the random number generator 25, and transmits it to the IC card 1 using a certificate preparation command EXCH.
  • a key data number KID-M of key data which is used by the terminal 21 to certify the IC card, and data for designating an encryption algorithm ALG which is supported by the terminal 21 are also transmitted to the IC card 1.
  • step 45 when the IC card 1 receives the certificate preparation command EXCH, it generates random number data R2 by using the random number generator 5, and transmits it to the terminal 21 as a response exch to the certificate preparation command EXCH.
  • the IC card 1 finds a key data number KID-N of key data used for certifying the terminal 21 from its own key data number list, checks whether it supports the designated encryption algorithm (ALG), and transmits this checking result as "alg" to the terminal 21 together with the random number data R2.
  • ALG designated encryption algorithm
  • the IC card 1 If the key data number KID-M designated by the terminal 21 or the key data number KID-N which is used by the IC card 1 to certify the terminal 21 is not present in the key data number list, or the designated encryption algorithm is not supported, the IC card 1 notifies this to the terminal 21.
  • step 47 the terminal 21 finds a key data number KID-N of the encryption key data designated by the IC card 1 from its own key data number list, and extracts corresponding key data NNNNN.
  • the encrypter 7 then encrypts the random number data R2 by using the key data NNNNN in accordance with the encryption algorithm ALG designated by the certificate preparation command EXCH, thus obtaining encrypted data C2.
  • step 51 the IC card 1 compares the encrypted data C2 obtained from step 47 with encrypted data C2X which is obtained by encrypting the previously-sent random number R2 using key NNNNN.
  • step 53 the IC card 1 extracts a key data number MMMMM corresponding to the key data number KID-M of the encryption key data designated by the certificate preparation command EXCH from the terminal 21.
  • the encrypter 7 then encrypts the random number data R1 by using the key data MMMMM in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1.
  • the IC card 1 transmits the encrypted data C1 and the comparison result Y/N in step 51, as a response auth to the certificate command AUTH, to the terminal 21.
  • step 55 when the terminal 21 receives the response auth, it extracts key data MMMMM corresponding to the key data number KID-M of the previously-transmitted encryption key data.
  • the encrypter 2 then encrypts the random number data R1 generated in step 43 by using the key data MMMMM in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1X.
  • step 57 the terminal 21 compares the encrypted data C1 received as the response auth with the encrypted data C1X generated in step 55, and determines the subsequent system processing on the basis of the comparison result and the comparison result which is received from the IC card 1 in step 51 using the response auth.
  • step 59 the terminal 21 transmits a data write request to the IC card using a write command WRITE, including an area number AID-A of a target area of the memory 3 in the IC card 1, a byte count L-1 of write data, and first data M1-1 of write data M1 which is divided into a plurality of data in units of bytes which can be received, as input data, by the IC card 1.
  • step 61 the IC card 1 finds an area to which the area number AID-A received using the write command WRITE is appended from the area definition table 13.
  • the IC card 1 transmits a status representing that the area number is not defined to the terminal 21, using a response "write" to the write command WRITE. If such an area is found, the IC card 1 checks whether the previous certificate preparation command EXCH or an encryption preparation command SRND (to be described later) is properly completed.
  • the IC card 1 transmits an execution condition incompletion error status to the terminal 21, using the response "write". If it is determined that a corresponding command is properly completed, the IC card 1 generates initial data R1a on the basis of the random number data R1 previously notified by the certificate preparation command EXCH and the card unique value held in the IC card 1 by, e.g., an exclusive OR operation.
  • step 63 the IC card 1 encrypts the write data M1-1 using the initial data R1a and the key data MMMMM corresponding to the key data number KID-M previously notified by the certificate preparation command EXCH in accordance with the encryption algorithm ALG previously designated by the certificate preparation command EXCH, thus obtaining encrypted data C1-1.
  • encryption is performed in CBC (Cypher Block Chaining) mode. In a normal encryption mode, encryption can be performed only in units of 8 bytes. Therefore, when data larger than 8 bytes is to be encrypted, the data is divided in units of 8 bytes, and the encryption result of the first divided data is fed back for encryption of the next divided data. Since no feedback value is available when the first divided data is encrypted, the initial data R1a is used as a feedback value.
  • an access target designated by the area number AID-A, it is determined whether the input data M1-1 or the encrypted data C1-1 is written in the memory 3, and a write operation is performed. Thereafter, the IC card 1 transmits a response nb to the terminal 21 so as to request the next write data.
  • the terminal 21 Upon reception of the response nb, the terminal 21 transmits next write data M1-2 to the IC card 1 in step 65.
  • the IC card 1 receives the next write data M1-2, it encrypts the write data M1-2 by using the last 8-byte data of the previously-generated encrypted data C1-1 and the key data MMMMM corresponding to the key data number KID-M in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1-2.
  • the last 8-byte data is used in this case, because encryption is performed in the CBC mode, and the encryption result of the first 8-byte data is reflected in the last 8-byte data.
  • step 63 it is determined whether the input data M1-2 or the encrypted data C1-2 is written in the memory 3, and corresponding data is selectively written in the area. Thereafter, the IC card 1 transmits a response "nb" to the terminal 21 so as to request the next write data.
  • the IC card 1 When the terminal 21 transmits the last data M1-n of the divided data to the IC card 1 in step 69, the IC card 1 performs the same operation as described above in step 71. As described above, since the encryption result of the first 8-byte data is reflected in the last data, verification of all the data can be performed by transmitting the last data. The IC card 1 transmits the last 8-byte data of the last encrypted data C1-n, as verification data AC1, to the terminal 21 through a response "write" to the write command WRITE.
  • the terminal 21 in order to certify the IC card 1 in accordance with the mutual certification procedure, the terminal 21 obtains the verification data AC1 with respect to the write data M1 in advance by using the key data MMMMM for designating the IC card 1, the encryption algorithm ALG, and the random number data R1.
  • step 73 the terminal 21 generates new random data R3 by using the random number generator 25, and transmits it to the IC card 1 as an encryption preparation command SRND together with a key data number KID-A of key data which is used by the IC card 1 to generate verification data, and an encryption algorithm ALGa.
  • step 75 when the IC card 1 receives the encryption preparation command SRND, it finds a key data number KID-A from its own key list so as to obtain corresponding key data AAAAA, and transmits a response srnd to the terminal 21.
  • step 77 the terminal 21 transmits a data write request to the IC card 1 using a write command WRITE. At this time, the terminal 21 transmits an area number AID-B of a target area of the memory 3 in the IC card 1, a byte count L-2 of write data, and write data M2. Note that in step 77, the byte count of the write data M2 is a byte count which can be received by the IC card 1 as input data.
  • step 79 the IC card 1 finds an area to which the area number AID-B is appended from the area definition table 13 in FIG. 2 in the same manner as in step 61. If the previous encryption preparation command SRND (or the certificate preparation command EXCH) is properly completed, the IC card 1 generates initial data R3a on the basis of the random data R3 notified by the encryption preparation command SRND and the card unique value held in the IC card 1. In step 81, the IC card 1 encrypts the write data M2 by using the initial data R3a and the key data AAAAA corresponding to the key data number KID-A previously notified by the encryption preparation command SRND in accordance with the encryption algorithm previously designated by the encryption preparation command SRND, thus obtaining encrypted data C2.
  • the IC card 1 transmits the last 8-byte data of the encrypted data C2, as verification data AC2, to the terminal 21 using a response "write" to the write command WRITE.
  • IC card 1 recognizes the physical position of a target area in the memory 3 in accordance with start address data and size data in the area definition table 13 in FIG. 2.
  • Start address data is the start address value of the corresponding area
  • size data defines the capacity of the area from the start address value.
  • attribute data consists of one byte. If the MSB of attribute data is "0", it represents an encrypted data write area. If it is "1", it represents an input data write area.
  • step 83 when the data write operation in the IC card 1 is completed, the terminal 21 prepares a data write processing list on the basis of the random number data R1 and R3 corresponding to the write data M1 an M2, key data numbers KID-M and KID-A, verification data AC1 and AC2, and the algorithm designation values ALG and ALGa.
  • the prepared list is then transmitted to the center 39.
  • step 85 upon reception of the list from the terminal 21, the center 39 extracts the write data M1 from the list, finds key data MMMMM from its own key list by using the corresponding key data number KID-M, and generates verification data ACIX on the basis of corresponding random number data R1 and encryption algorithm ALG in its own transaction list.
  • step 87 the center 39 compares corresponding verification data AC1 in its own list with the verification data AC1X generated in step 85. If they coincide with each other, the center 39 verifies the write operation for the write data M1.
  • the CPU 11 After the CPU 11 is electrically activated by a control signal from the terminal 21, it outputs initial response data called "answer to reset" to the terminal 21 in step 91. In step 93, the CPU 11 turns off a certificate preparation command completion flag and an encryption preparation command completion flag, and is set in a standby state in step 95.
  • step 95 If the CPU 11 receives instruction data in step 95, it checks in step 97 whether the instruction data is the certificate preparation command EXCH shown in FIG. 5. If NO in step 97, the flow advances to step 131.
  • step 97 the CPU 11 picks up the contents of a key data number (KID) field in the certificate preparation command and finds an identical key data number from the key list registered in the memory 3 in step 99.
  • KID key data number
  • step 101 the CPU 11 outputs a key data designation error status in step 103, and returns to the standby state. If the key data number is found, the CPU 11 saves corresponding key data in a first key buffer in the internal RAM in step 105.
  • step 107 the CPU 11 refers to an encryption algorithm designation data ALG field in the certificate preparation command so as to check the presence/absence of an encryption algorithm resistered in the memory. If the CPU determines in step 109 that no registered encryption algorithm is present, the CPU 11 outputs a designated algorithm error status in step 111 and returns to the standby state in step 95.
  • step 109 the CPU 11 saves the number of the encryption algorithm in step 113.
  • step 115 the CPU 11 saves the random number R1 of the certificate preparation command, and subsequently finds a key data number KIDa of IC card certificate key data from the key list. If the key data number is not found in step 119, the CPU 11 outputs a key data unregistered error status in step 121 and returns to the standby status. If the key data number is found in step 119, the CPU 11 saves corresponding key data in a second key buffer in the internal RAM in step 123.
  • step 125 the CPU 11 generates random number data R2 by using the random number generator 5 and saves it in a second random number buffer in the internal RAM.
  • step 127 the CPU 11 turns on the certificate preparation command completion flag.
  • step 129 the CPU 11 outputs the random number data R2, as a response exch to the certificate preparation command, to the terminal 21 together with the key data number KIDa and the contents of the encryption algorithm designation data ALG field in the certificate preparation command. The CPU 11 then returns to the standby state in step 95
  • step 97 the CPU 11 checks in step 131 whether the command is the certificate command AUTH shown in FIG. 6. If NO in step 131, the flow advances to step 151.
  • step 131 the CPU 11 checks in step 133 whether the certificate preparation command completion flag is turned on. If NO in step 133, the CPU 11 outputs an execution condition incompletion error status in step 135, and returns to the standby state in step 95
  • step 133 the CPU 11 causes the encrypter 7 to encrypt the contents of the second random number buffer by using the contents of the second key buffer as encryption key data in step 137.
  • an encryption algorithm corresponding to the saved encryption algorithm number is used.
  • step 139 the CPU 11 compares the encryption result with input data in the certificate command AUTH, and turns on or off a coincidence flag in accordance with the comparison result in step 141 or 145.
  • step 147 the CPU 11 causes the encrypter 7 to encrypt the contents of the first random number buffer by using the contents of the first key buffer as encryption key data. In this case, the same encryption algorithm as in step 137 is used.
  • step 149 the CPU 11 outputs the encryption result, as a response auth to the certificate command AUTH, to the terminal 21 together with the contents of the coincidence flag, and returns to the standby state in step 95.
  • step 131 the CPU 11 checks in step 151 whether the command is the encryption preparation command SRND shown in FIG. 7. If NO in step 151, the flow advances to step 175.
  • step 151 the CPU 11 picks up the contents of a key data number (KID) field in the encryption preparation command and finds an identical key data number from the key list registered in the memory 3 in step 153.
  • KID key data number
  • step 155 If the key data number is not found in step 155, the CPU 11 outputs a key data designation error status in step 157, and returns to the standby state. If the key data number is found in step 155, the CPU 11 saves corresponding key data in the first key buffer in the internal RAM in step 159.
  • step 161 the CPU 11 refers to an encryption algorithm designation data (ALG) field in the encryption preparation command so as to check the presence/absence of an encryption algorithm registered in the memory. If the CPU determines in step 163 that no registered encryption algorithm is present, it outputs a designated algorithm error status in step 165, and returns to the standby state. If the CPU determines in step 163 that a registered encryption algorithm is present, it saves the number of the encryption algorithm in step 167.
  • ALG encryption algorithm designation data
  • step 169 the CPU 11 saves the random number data R3 of the encryption preparation command in the first random number buffer in the internal RAM.
  • step 171 the CPU 11 turns on the encryption preparation command completion flag.
  • step 173 the CPU 11 outputs an encryption preparation command completion status to the terminal 21, and returns to the standby state in step 95.
  • step 151 the CPU 11 checks in step 175 whether the command is the write command WRITE shown in FIG. 8A or 8B. If NO in step 175, the CPU 11 checks whether the command is, e.g., a read command, and advances to a corresponding step. If YES in step 175, the CPU 11 checks in step 177 whether the write command has a format shown in FIG. 8A or 8B. If it has the format shown in FIG. 8A, the CPU 11 refers to the certificate preparation command completion flag or the encryption preparation command completion flag in step 179. The CPU 11 then checks in step 181 whether any one of the flags is turned on. If NO in step 181, the CPU 11 outputs a condition incompletion status in step 183, and returns to the standby state. If YES in step 181, the CPU 11 saves the contents of the data portion of the write command in a second write buffer of the RAM in step 185.
  • step 177 If it is determined in step 177 that the write command has the format shown in FIG. 8B, the CPU 11 checks in step 187 whether a write command continuation flag held therein is ON. If NO in step 187, the CPU 11 outputs a request error status in step 189, and returns to the standby state in step 95. If YES in step 187, the CPU 11 appends the contents (input data) of the data portion of the write command to the contents of a data save buffer in the internal RAM and saves it in the second write buffer in the internal RAM in step 191.
  • step 193 the CPU 11 saves only the contents (input data) of the data portion of the write command in a first write buffer in the internal RAM.
  • step 195 the CPU 11 checks whether succeeding data to be written is present in the input data sent using the write command shown in FIG. 8A or 8B. If YES in step 195, the CPU 11 turns on a continuation flag in step 197. If NO in step 195, the CPU 11 turns off the continuation flag in step 199.
  • step 201 the CPU 11 checks whether the number of bytes in the second write buffer in the internal RAM is, e.g., a multiple of 8. If YES in step 201, the flow shifts to step 213. If NO in step 201, the CPU 11 performs padding processing for the data in the second write buffer in the internal RAM (for example, appending "20" Hex data to the end of the data) so as to generate data corresponding to a multiple of 8 in step 205, and the flow shifts to step 213.
  • padding processing for the data in the second write buffer in the internal RAM for example, appending "20" Hex data to the end of the data
  • step 203 the CPU 11 leaves data corresponding to a multiple of 8 and saves the rest of the data in the data save buffer in the internal RAM in step 209. That is, if 18-byte data is present in the second write buffer, only 16-byte data is left while the remaining 2-byte data is saved in the data save buffer. If it is determined in step 209 that the second write buffer in the internal RAM is empty, the flow shifts to step 213.
  • step 209 the CPU 11 checks in step 211 whether the currently accessed area is to be encrypted during a write operation. If NO in step 211, the flow advances to step 215. If YES in step 211, the flow advances to step 213.
  • step 213 the CPU 11 causes the encrypter 7 to encrypt the data in the second write buffer in the internal RAM in accordance with the CBC mode. If the continuation flag is OFF in this case, a value obtained by an exclusive OR of the contents of the first random number buffer in the internal RAM with the card unique value is used as an initial value for the encryption operation using the CBC mode. If the continuation flag is ON, the last 8-byte data of the data encrypted in the previous write operation is used as an initial value. In addition, in this case, the contents of the first key buffer are used as key data, and an encryption algorithm is selectively used in accordance with a held encryption algorithm number. When this processing is completed, the flow advances to step 215.
  • step 215 the CPU 11 checks whether the continuation flag is ON. If NO in step 215, the CPU 11 checks in step 217 whether the access target area is an area to be encrypted. If NO in step 217, the CPU 11 appends a byte count LX of the write data in the write command to the contents of the first write buffer in the internal RAM and writes it in the access target area in the memory 3 in step 219. If YES in step 217, the CPU 11 sets the minimum value of a multiple of 8 larger than the byte count LX of the write data as a value LXa, and writes it in the target area by appending it to the contents in the second write buffer in step 221.
  • step 215 the CPU 11 checks in step 223 whether the access target area is an area to be encrypted. If NO in step 223, the CPU 11 writes the contents of the first write buffer of the internal RAM in the target area by appending it to the previously-written data in step 225. If YES in step 223, the CPU 11 writes the contents of the second write buffer of the internal RAM in the access target area in the same manner a described above in step 227.
  • step 229 the CPU 11 checks in step 229 whether the continuation flag is ON. If YES in step 229, the CPU 11 turns on the continuation flag and outputs a response nb in step 231, and returns to the standby state. If NO in step 229, the CPU 11 outputs the last 8-byte of the contents of the second write buffer in the internal RAM and turns off the continuation flag in step 233, and returns to the standby state.
  • one key data and one encryption algorithm of a plurality of key data and a plurality of encryption algorithms held in the IC card are designated by the terminal, and data to be written is encrypted by using the designated key data and encryption algorithm. Therefore, even if the IC card is used in a plurality of applications, verification key data and encryption algorithms can be selectively used for the respective applications, and security between the applications can be ensured.
  • the random number data R1 and R3 to be transmitted from the terminal 21 to the IC card 1 may have the same contents in each operation. However, if they are changed in each operation, different encrypted data are output as long as write operations are performed at different points of time, even if identical write data, key data, and encryption algorithms are used. Hence, verification of data is facilitated.

Abstract

A mutual certification method includes an IC card having a random number generator, a plurality of key data and a plurality of encryption algorithms, and an IC card terminal which also has a random number generator, a plurality of key data and a plurality of encryption algorithms. The key data and encryption algorithm to be used are designated, and a random number may be transmitted for encryption and return, so that mutual certification may be performed.

Description

This is a continuation of application Ser. No. 07/747,420, filed Aug. 19, 1991, the filing hereof; which is a continuation of application Ser. No. 07/463,601, filed Jan. 11, 1990, both now abandoned.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a certification system and method for verifying data to be written in, e.g., a memory in an IC card.
2. Description of the Related Art
As a new portable data storage medium, a great deal of attention has recently been paid to a so-called IC card incorporating an IC chip having an erasable non-volatile memory and a control element, such as a CPU, for controlling the respective components including the memory.
In a conventional IC card system using such IC cards, e.g., a shopping system or a credit system, when a data write operation is to be performed with respect to an IC card (a memory in the IC card), especially, transaction data is to be written, the transaction data sent to a center (host computer) cannot be verified on the center side.
For this reason, the following certification system and method are proposed.
When an IC card receives a data write instruction from a terminal, the write data is encrypted within the IC card by using predetermined key data and encryption algorithm. Part of the encrypted data is supplied to the terminal. The terminal then supplies the encrypted data and the write data to the center. The write data is verified in the center by using these data.
In such a certification method, however, if IC cards are used in a plurality of applications as they are increasingly used for various purposes, in order to ensure security between the respective applications, it is effective to use different key data for verification which are saved in the applications for verification.
In the above-described certification method, if identical write data, key data, and encryption algorithms are used, the same encrypted data is output from an IC card. Therefore, verification of transaction data becomes difficult.
Furthermore, in such a certification method, special instructions for designating key data and encryption algorithms which are used to encrypt write data within an IC card must be supported.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a certification system and method of a portable electronic device in which even if an IC card is used in a plurality of applications, key data and encryption algorithms for verification can be selectively used for each application so as to ensure security between the applications.
It is another object of the present invention to provide a certification system and method in which even if identical write data, key data, and encryption algorithms are used, different encrypted data are output as long as the time at which a write operation is performed varies, thereby facilitating verification.
It is still another object of the present invention to provide a certification system in which no special instructions for designating key data and encryption algorithms used for encrypting data are required, and hence the load of an IC card can be reduced.
According to a first aspect of the present invention, there is provided a certification system, comprising a first electronic device having at least one key data, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data and designation data for designating key data for encrypting the first data from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data from the at least one key data in accordance with the received designation data, and encrypting the received first data by using the selected key data, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
According to a second aspect of the present invention, there is provided a certification system, comprising a first electronic device having at least one key data and at least one encryption algorithm, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data, key data for encrypting the first data, and designation data for designating an encryption algorithm from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data and one encryption algorithm from the at least one key data and the at least one encryption algorithm in accordance with the received designation data, and encrypting the received first data by using the selected key data and encryption algorithm, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
According to a third aspect of the present invention, there is provided a certification system, comprising a first electronic device having key data and an encryption algorithm, a second electronic device capable of performing communication with the first electronic device, means for transmitting first data and second data whose contents vary in each operation from the second electronic device to the first electronic device, means for, when the first and second data are received by the first electronic device, encrypting the received first data by using the received second data, the key data, and the encryption algorithm, and means for transmitting part of the encrypted data to the second electronic device after the first data is entirely received by the first electronic device.
According to a fourth aspect of the present invention, there is provided a certification system, comprising a first electronic device having at least one key data and at least one encryption algorithm, a second electronic device capable of performing communication with the first electronic device; means for transmitting first data, key data for encrypting the first data, and designation data for designating an encryption algorithm from the second electronic device to the first electronic device, means for, when the first data and the designation data are received by the first electronic device, selecting one key data and one encryption algorithm from the at least one key data and the at least one encryption algorithm in accordance with the received designation data, encrypting the received first data by using the selected key data and encryption algorithm, and transmitting the encrypted data to the second electronic device, means for, when the encrypted data is received by the second electronic device, verifying the first electronic device on the basis of contents of the received encrypted data, means for transmitting second data from the second electronic device to the first electronic device, means for, when the second data is received by the first electronic device, encrypting the received second data by using the key data and encryption algorithm selected on the basis of the designation data; and means for transmitting part of the encrypted data from the first electronic device to the second electronic device.
According to the present invention, one of a plurality of key data held in the IC card is designate by the terminal, and write data is encrypted by using the designated key data. Therefore, even if the IC card is used in a plurality of applications, verification key data can be selectively used for each application, and security between the applications can be ensured.
In addition, one key data and one encryption algorithm of a plurality of key data and encryption algorithms held in the IC card are designated by the terminal, and write data is encrypted by using the designated key data and encryption algorithm. Therefore, even if the IC card is used in a plurality of applications, verification key data can be selectively used for each application, and security between the applications can be ensured.
Furthermore, by encrypting write data by using data which varies in content in each operation and is transmitted from the terminal to the IC card, different encrypted data are output as long as write operations are performed at different points of time, even if identical write data, key data, and encryption algorithms are used. Therefore, verification can be facilitated.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing a system arrangement of an IC card, a terminal, and a center, to which a certification system of the present invention is applied;
FIG. 2 is a view showing an arrangement of a memory 3 within the IC card in FIG. 1;
FIGS. 3A, 3B-I, 3B-II, and 3C are views showing a procedure for a mutual certification operation between the IC card and the terminal, and a procedure for writing data from the terminal to the IC card;
FIGS. 4A through 4G are flow charts for explaining an operation of the IC card;
FIG. 5 is a view showing a format of a certificate preparation command;
FIG. 6 is a view showing a format of a certificate command;
FIG. 7 is a view showing a format of an encryption preparation command; and
FIGS. 8A and 8B are views showing formats of a write command.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows an arrangement of a system constituted by an IC card (first electronic device), a terminal (second electronic device) as a host device, and a center (host computer) according to the present invention.
An IC card 1 comprises a memory 3 for storing various data, a random number generator 5 for generating random number data, an encrypter 7 for encrypting data, a contactor 9 for communicating with a terminal 21 (to be described later), and a control element 11 such as a CPU (Central Processing Unit) for controlling these components. The memory 3, the random number generator 5, and the control element 11 are integrated into, e.g., one IC chip (or a plurality of IC chips), and are embedded in an IC card body.
The memory 3 is constituted by a nonvolatile memory, such as an EEPROM (Electrically Erasable Programmable Read Only Memory), and is divided into an area definition table (area) 13 and a data file (area) 15, as shown in FIG. 2. The data file 15 is divided into a plurality of areas 17. The areas 17 are respectively defined by area definition data 19 in the area definition table 13.
The area definition data 19 is a data string in which an area number (AID) as identification data for designating an area, start address data of the memory at which an area is assigned, size data for defining the capacity of an area, and attribute data are arranged to correspond to each other. Each attribute data consists of, e.g., one byte. If the MSB of attribute data is "0", it represents an encrypted data write area. If the MSB is "1", it represents an input data write area.
The terminal (second electronic device) 21 has a function of handling the IC card 1. The terminal 21 comprises a memory 23 for storing various data, a random number generator 25 for generating random number data, an encrypter 27 for encrypting data, a keyboard 29 for inputting data, a display 31 for displaying data, a contactor 33 for communicating with the IC card 1, a communication controller 35 for performing on-line communication through a center (host computer) 39 and a communication line 41, and a control section 37, such as a CPU, for controlling these components.
A certification system and method of the present invention will be described in detail below with reference to FIGS. 3A through 3C. Assume that a key data list and a key data number (KID) list shown in FIG. 3A are stored in the memory 23 of the terminal 21. A key data list is a list in which key data numbers and key data are arranged in correspondence with each other. A KID list lists only key data numbers for designating key data. The IC card 1 has its own key data list which is registered (stored) in the memory 3 in the IC card when the card is issued.
A process of mutual certification between the IC card 1 and the terminal 21 will be described below with reference to steps 43 through 57. In step 43, the terminal 21 generates random number data Rl by using the random number generator 25, and transmits it to the IC card 1 using a certificate preparation command EXCH. At this time, a key data number KID-M of key data which is used by the terminal 21 to certify the IC card, and data for designating an encryption algorithm ALG which is supported by the terminal 21 are also transmitted to the IC card 1.
In step 45, when the IC card 1 receives the certificate preparation command EXCH, it generates random number data R2 by using the random number generator 5, and transmits it to the terminal 21 as a response exch to the certificate preparation command EXCH. At this time, the IC card 1 finds a key data number KID-N of key data used for certifying the terminal 21 from its own key data number list, checks whether it supports the designated encryption algorithm (ALG), and transmits this checking result as "alg" to the terminal 21 together with the random number data R2.
If the key data number KID-M designated by the terminal 21 or the key data number KID-N which is used by the IC card 1 to certify the terminal 21 is not present in the key data number list, or the designated encryption algorithm is not supported, the IC card 1 notifies this to the terminal 21.
In step 47, the terminal 21 finds a key data number KID-N of the encryption key data designated by the IC card 1 from its own key data number list, and extracts corresponding key data NNNNN. The encrypter 7 then encrypts the random number data R2 by using the key data NNNNN in accordance with the encryption algorithm ALG designated by the certificate preparation command EXCH, thus obtaining encrypted data C2.
In step 51, the IC card 1 compares the encrypted data C2 obtained from step 47 with encrypted data C2X which is obtained by encrypting the previously-sent random number R2 using key NNNNN.
In step 53, the IC card 1 extracts a key data number MMMMM corresponding to the key data number KID-M of the encryption key data designated by the certificate preparation command EXCH from the terminal 21. The encrypter 7 then encrypts the random number data R1 by using the key data MMMMM in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1. The IC card 1 transmits the encrypted data C1 and the comparison result Y/N in step 51, as a response auth to the certificate command AUTH, to the terminal 21.
In step 55, when the terminal 21 receives the response auth, it extracts key data MMMMM corresponding to the key data number KID-M of the previously-transmitted encryption key data. The encrypter 2 then encrypts the random number data R1 generated in step 43 by using the key data MMMMM in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1X.
In step 57, the terminal 21 compares the encrypted data C1 received as the response auth with the encrypted data C1X generated in step 55, and determines the subsequent system processing on the basis of the comparison result and the comparison result which is received from the IC card 1 in step 51 using the response auth.
A process of writing data from the terminal 21 to the IC card 1 and verifying the write process will be described below with reference to steps 59 through 87. In step 59, the terminal 21 transmits a data write request to the IC card using a write command WRITE, including an area number AID-A of a target area of the memory 3 in the IC card 1, a byte count L-1 of write data, and first data M1-1 of write data M1 which is divided into a plurality of data in units of bytes which can be received, as input data, by the IC card 1. In step 61, the IC card 1 finds an area to which the area number AID-A received using the write command WRITE is appended from the area definition table 13. If no corresponding area is found, the IC card 1 transmits a status representing that the area number is not defined to the terminal 21, using a response "write" to the write command WRITE. If such an area is found, the IC card 1 checks whether the previous certificate preparation command EXCH or an encryption preparation command SRND (to be described later) is properly completed.
If it is not properly completed, the IC card 1 transmits an execution condition incompletion error status to the terminal 21, using the response "write". If it is determined that a corresponding command is properly completed, the IC card 1 generates initial data R1a on the basis of the random number data R1 previously notified by the certificate preparation command EXCH and the card unique value held in the IC card 1 by, e.g., an exclusive OR operation.
In step 63, the IC card 1 encrypts the write data M1-1 using the initial data R1a and the key data MMMMM corresponding to the key data number KID-M previously notified by the certificate preparation command EXCH in accordance with the encryption algorithm ALG previously designated by the certificate preparation command EXCH, thus obtaining encrypted data C1-1. In this embodiment, encryption is performed in CBC (Cypher Block Chaining) mode. In a normal encryption mode, encryption can be performed only in units of 8 bytes. Therefore, when data larger than 8 bytes is to be encrypted, the data is divided in units of 8 bytes, and the encryption result of the first divided data is fed back for encryption of the next divided data. Since no feedback value is available when the first divided data is encrypted, the initial data R1a is used as a feedback value.
By referring to the attribute data of the area, an access target, designated by the area number AID-A, it is determined whether the input data M1-1 or the encrypted data C1-1 is written in the memory 3, and a write operation is performed. Thereafter, the IC card 1 transmits a response nb to the terminal 21 so as to request the next write data.
Upon reception of the response nb, the terminal 21 transmits next write data M1-2 to the IC card 1 in step 65. In step 67, when the IC card 1 receives the next write data M1-2, it encrypts the write data M1-2 by using the last 8-byte data of the previously-generated encrypted data C1-1 and the key data MMMMM corresponding to the key data number KID-M in accordance with the encryption algorithm ALG, thus obtaining encrypted data C1-2. The last 8-byte data is used in this case, because encryption is performed in the CBC mode, and the encryption result of the first 8-byte data is reflected in the last 8-byte data. Similar to step 63, it is determined whether the input data M1-2 or the encrypted data C1-2 is written in the memory 3, and corresponding data is selectively written in the area. Thereafter, the IC card 1 transmits a response "nb" to the terminal 21 so as to request the next write data.
Subsequently, the same operation as in steps 65 and 67 is repeated.
When the terminal 21 transmits the last data M1-n of the divided data to the IC card 1 in step 69, the IC card 1 performs the same operation as described above in step 71. As described above, since the encryption result of the first 8-byte data is reflected in the last data, verification of all the data can be performed by transmitting the last data. The IC card 1 transmits the last 8-byte data of the last encrypted data C1-n, as verification data AC1, to the terminal 21 through a response "write" to the write command WRITE.
That is, in the above-described operation, in order to certify the IC card 1 in accordance with the mutual certification procedure, the terminal 21 obtains the verification data AC1 with respect to the write data M1 in advance by using the key data MMMMM for designating the IC card 1, the encryption algorithm ALG, and the random number data R1.
A process of obtaining verification data using key data, an encryption algorithm, and random data which are different from those in the above embodiment will be described below with reference to steps 73 through 81. In step 73, the terminal 21 generates new random data R3 by using the random number generator 25, and transmits it to the IC card 1 as an encryption preparation command SRND together with a key data number KID-A of key data which is used by the IC card 1 to generate verification data, and an encryption algorithm ALGa.
In step 75, when the IC card 1 receives the encryption preparation command SRND, it finds a key data number KID-A from its own key list so as to obtain corresponding key data AAAAA, and transmits a response srnd to the terminal 21.
In step 77, the terminal 21 transmits a data write request to the IC card 1 using a write command WRITE. At this time, the terminal 21 transmits an area number AID-B of a target area of the memory 3 in the IC card 1, a byte count L-2 of write data, and write data M2. Note that in step 77, the byte count of the write data M2 is a byte count which can be received by the IC card 1 as input data.
In step 79, the IC card 1 finds an area to which the area number AID-B is appended from the area definition table 13 in FIG. 2 in the same manner as in step 61. If the previous encryption preparation command SRND (or the certificate preparation command EXCH) is properly completed, the IC card 1 generates initial data R3a on the basis of the random data R3 notified by the encryption preparation command SRND and the card unique value held in the IC card 1. In step 81, the IC card 1 encrypts the write data M2 by using the initial data R3a and the key data AAAAA corresponding to the key data number KID-A previously notified by the encryption preparation command SRND in accordance with the encryption algorithm previously designated by the encryption preparation command SRND, thus obtaining encrypted data C2. By referring to the attribute data of the area, as an access target, designated by the area number AID-B, it is determined whether the input data M2 or the encrypted data C2 is written in the memory 3, and a write operation is performed. Thereafter, the IC card 1 transmits the last 8-byte data of the encrypted data C2, as verification data AC2, to the terminal 21 using a response "write" to the write command WRITE.
Note that IC card 1 recognizes the physical position of a target area in the memory 3 in accordance with start address data and size data in the area definition table 13 in FIG. 2. Start address data is the start address value of the corresponding area, and size data defines the capacity of the area from the start address value. In addition, attribute data consists of one byte. If the MSB of attribute data is "0", it represents an encrypted data write area. If it is "1", it represents an input data write area.
In step 83, when the data write operation in the IC card 1 is completed, the terminal 21 prepares a data write processing list on the basis of the random number data R1 and R3 corresponding to the write data M1 an M2, key data numbers KID-M and KID-A, verification data AC1 and AC2, and the algorithm designation values ALG and ALGa. The prepared list is then transmitted to the center 39.
In step 85, upon reception of the list from the terminal 21, the center 39 extracts the write data M1 from the list, finds key data MMMMM from its own key list by using the corresponding key data number KID-M, and generates verification data ACIX on the basis of corresponding random number data R1 and encryption algorithm ALG in its own transaction list.
In step 87, the center 39 compares corresponding verification data AC1 in its own list with the verification data AC1X generated in step 85. If they coincide with each other, the center 39 verifies the write operation for the write data M1.
Write operations for data after the write data M2 are verified in the same manner as in steps 85 and 87.
An operation of the IC card will be described with reference to FIGS. 4A through 4G.
After the CPU 11 is electrically activated by a control signal from the terminal 21, it outputs initial response data called "answer to reset" to the terminal 21 in step 91. In step 93, the CPU 11 turns off a certificate preparation command completion flag and an encryption preparation command completion flag, and is set in a standby state in step 95.
If the CPU 11 receives instruction data in step 95, it checks in step 97 whether the instruction data is the certificate preparation command EXCH shown in FIG. 5. If NO in step 97, the flow advances to step 131.
If YES in step 97, the CPU 11 picks up the contents of a key data number (KID) field in the certificate preparation command and finds an identical key data number from the key list registered in the memory 3 in step 99.
If the key data number is not found in step 101, the CPU 11 outputs a key data designation error status in step 103, and returns to the standby state. If the key data number is found, the CPU 11 saves corresponding key data in a first key buffer in the internal RAM in step 105.
In step 107, the CPU 11 refers to an encryption algorithm designation data ALG field in the certificate preparation command so as to check the presence/absence of an encryption algorithm resistered in the memory. If the CPU determines in step 109 that no registered encryption algorithm is present, the CPU 11 outputs a designated algorithm error status in step 111 and returns to the standby state in step 95.
If YES in step 109, the CPU 11 saves the number of the encryption algorithm in step 113.
In step 115, the CPU 11 saves the random number R1 of the certificate preparation command, and subsequently finds a key data number KIDa of IC card certificate key data from the key list. If the key data number is not found in step 119, the CPU 11 outputs a key data unregistered error status in step 121 and returns to the standby status. If the key data number is found in step 119, the CPU 11 saves corresponding key data in a second key buffer in the internal RAM in step 123.
In step 125, the CPU 11 generates random number data R2 by using the random number generator 5 and saves it in a second random number buffer in the internal RAM. In step 127, the CPU 11 turns on the certificate preparation command completion flag. In step 129, the CPU 11 outputs the random number data R2, as a response exch to the certificate preparation command, to the terminal 21 together with the key data number KIDa and the contents of the encryption algorithm designation data ALG field in the certificate preparation command. The CPU 11 then returns to the standby state in step 95
If NO in step 97, the CPU 11 checks in step 131 whether the command is the certificate command AUTH shown in FIG. 6. If NO in step 131, the flow advances to step 151.
If YES in step 131, the CPU 11 checks in step 133 whether the certificate preparation command completion flag is turned on. If NO in step 133, the CPU 11 outputs an execution condition incompletion error status in step 135, and returns to the standby state in step 95
If YES in step 133, the CPU 11 causes the encrypter 7 to encrypt the contents of the second random number buffer by using the contents of the second key buffer as encryption key data in step 137. In this case, an encryption algorithm corresponding to the saved encryption algorithm number is used.
In step 139, the CPU 11 compares the encryption result with input data in the certificate command AUTH, and turns on or off a coincidence flag in accordance with the comparison result in step 141 or 145.
In step 147, the CPU 11 causes the encrypter 7 to encrypt the contents of the first random number buffer by using the contents of the first key buffer as encryption key data. In this case, the same encryption algorithm as in step 137 is used. In step 149, the CPU 11 outputs the encryption result, as a response auth to the certificate command AUTH, to the terminal 21 together with the contents of the coincidence flag, and returns to the standby state in step 95.
If NO in step 131, the CPU 11 checks in step 151 whether the command is the encryption preparation command SRND shown in FIG. 7. If NO in step 151, the flow advances to step 175.
If YES in step 151, the CPU 11 picks up the contents of a key data number (KID) field in the encryption preparation command and finds an identical key data number from the key list registered in the memory 3 in step 153.
If the key data number is not found in step 155, the CPU 11 outputs a key data designation error status in step 157, and returns to the standby state. If the key data number is found in step 155, the CPU 11 saves corresponding key data in the first key buffer in the internal RAM in step 159.
In step 161, the CPU 11 refers to an encryption algorithm designation data (ALG) field in the encryption preparation command so as to check the presence/absence of an encryption algorithm registered in the memory. If the CPU determines in step 163 that no registered encryption algorithm is present, it outputs a designated algorithm error status in step 165, and returns to the standby state. If the CPU determines in step 163 that a registered encryption algorithm is present, it saves the number of the encryption algorithm in step 167.
In step 169, the CPU 11 saves the random number data R3 of the encryption preparation command in the first random number buffer in the internal RAM. In step 171, the CPU 11 turns on the encryption preparation command completion flag. In step 173, the CPU 11 outputs an encryption preparation command completion status to the terminal 21, and returns to the standby state in step 95.
If NO in step 151, the CPU 11 checks in step 175 whether the command is the write command WRITE shown in FIG. 8A or 8B. If NO in step 175, the CPU 11 checks whether the command is, e.g., a read command, and advances to a corresponding step. If YES in step 175, the CPU 11 checks in step 177 whether the write command has a format shown in FIG. 8A or 8B. If it has the format shown in FIG. 8A, the CPU 11 refers to the certificate preparation command completion flag or the encryption preparation command completion flag in step 179. The CPU 11 then checks in step 181 whether any one of the flags is turned on. If NO in step 181, the CPU 11 outputs a condition incompletion status in step 183, and returns to the standby state. If YES in step 181, the CPU 11 saves the contents of the data portion of the write command in a second write buffer of the RAM in step 185.
If it is determined in step 177 that the write command has the format shown in FIG. 8B, the CPU 11 checks in step 187 whether a write command continuation flag held therein is ON. If NO in step 187, the CPU 11 outputs a request error status in step 189, and returns to the standby state in step 95. If YES in step 187, the CPU 11 appends the contents (input data) of the data portion of the write command to the contents of a data save buffer in the internal RAM and saves it in the second write buffer in the internal RAM in step 191.
In step 193, the CPU 11 saves only the contents (input data) of the data portion of the write command in a first write buffer in the internal RAM.
In step 195, the CPU 11 checks whether succeeding data to be written is present in the input data sent using the write command shown in FIG. 8A or 8B. If YES in step 195, the CPU 11 turns on a continuation flag in step 197. If NO in step 195, the CPU 11 turns off the continuation flag in step 199.
In step 201, the CPU 11 checks whether the number of bytes in the second write buffer in the internal RAM is, e.g., a multiple of 8. If YES in step 201, the flow shifts to step 213. If NO in step 201, the CPU 11 performs padding processing for the data in the second write buffer in the internal RAM (for example, appending "20" Hex data to the end of the data) so as to generate data corresponding to a multiple of 8 in step 205, and the flow shifts to step 213.
If YES in step 203, the CPU 11 leaves data corresponding to a multiple of 8 and saves the rest of the data in the data save buffer in the internal RAM in step 209. That is, if 18-byte data is present in the second write buffer, only 16-byte data is left while the remaining 2-byte data is saved in the data save buffer. If it is determined in step 209 that the second write buffer in the internal RAM is empty, the flow shifts to step 213.
If the second write buffer in the internal RAM is empty (for example, if 7-byte data is stored in the second write buffer, all the data in the buffer is transferred to the data save buffer. As result, the second write buffer becomes empty) in step 209, the CPU 11 checks in step 211 whether the currently accessed area is to be encrypted during a write operation. If NO in step 211, the flow advances to step 215. If YES in step 211, the flow advances to step 213.
In step 213, the CPU 11 causes the encrypter 7 to encrypt the data in the second write buffer in the internal RAM in accordance with the CBC mode. If the continuation flag is OFF in this case, a value obtained by an exclusive OR of the contents of the first random number buffer in the internal RAM with the card unique value is used as an initial value for the encryption operation using the CBC mode. If the continuation flag is ON, the last 8-byte data of the data encrypted in the previous write operation is used as an initial value. In addition, in this case, the contents of the first key buffer are used as key data, and an encryption algorithm is selectively used in accordance with a held encryption algorithm number. When this processing is completed, the flow advances to step 215.
In step 215, the CPU 11 checks whether the continuation flag is ON. If NO in step 215, the CPU 11 checks in step 217 whether the access target area is an area to be encrypted. If NO in step 217, the CPU 11 appends a byte count LX of the write data in the write command to the contents of the first write buffer in the internal RAM and writes it in the access target area in the memory 3 in step 219. If YES in step 217, the CPU 11 sets the minimum value of a multiple of 8 larger than the byte count LX of the write data as a value LXa, and writes it in the target area by appending it to the contents in the second write buffer in step 221.
If YES in step 215, the CPU 11 checks in step 223 whether the access target area is an area to be encrypted. If NO in step 223, the CPU 11 writes the contents of the first write buffer of the internal RAM in the target area by appending it to the previously-written data in step 225. If YES in step 223, the CPU 11 writes the contents of the second write buffer of the internal RAM in the access target area in the same manner a described above in step 227.
After the data is written, the CPU 11 checks in step 229 whether the continuation flag is ON. If YES in step 229, the CPU 11 turns on the continuation flag and outputs a response nb in step 231, and returns to the standby state. If NO in step 229, the CPU 11 outputs the last 8-byte of the contents of the second write buffer in the internal RAM and turns off the continuation flag in step 233, and returns to the standby state.
In this manner, one key data and one encryption algorithm of a plurality of key data and a plurality of encryption algorithms held in the IC card are designated by the terminal, and data to be written is encrypted by using the designated key data and encryption algorithm. Therefore, even if the IC card is used in a plurality of applications, verification key data and encryption algorithms can be selectively used for the respective applications, and security between the applications can be ensured.
Note that the random number data R1 and R3 to be transmitted from the terminal 21 to the IC card 1 may have the same contents in each operation. However, if they are changed in each operation, different encrypted data are output as long as write operations are performed at different points of time, even if identical write data, key data, and encryption algorithms are used. Hence, verification of data is facilitated.
In this case, if, for example, a clock circuit is arranged in the terminal 21, and random number data R1 and R3 are generated by using time data generated by the clock circuit, different data can be easily obtained in each operation.

Claims (2)

What is claimed is:
1. An IC card system having an IC card and an external device which exchange certification data to certify each other, comprising:
an IC card including:
data storage means for storing a plurality of data used by the IC card; including
a first storage section for storing a plurality of key data;
a second storage section for storing a plurality of encryption algorithms; and
a third storage section for storing a command to be executed by the IC card, the command being sent from said external device;
a first contractor for communicating with the external device;
first designation means for designating a first pair of key data and an encryption algorithm stored in said data storage means of said IC card, and said external device, respectively;
data generating means for generating first and second certification data;
first encryption means for encrypting the first certification data by using the first pair of key data and the encryption algorithm read out from said data storage means in said IC card to deliver a first encryption output;
first comparison means for comparing the first encryption output from said first encryption means in said IC card and a second encryption output obtained in said external device to deliver a first coincidence output;
reading means for reading out a second pair of key data and an encryption algorithm from said data storing means in accordance with second designation data sent from the external device;
second encryption means for encrypting the second certification data by using the second pair of key data and the encryption algorithm designated by the external device to deliver a second encryption output in response to the first coincidence output delivered from the first comparison means; and
said external device including:
data storage means for storing a plurality of data including:
a fourth storage second for storing a plurality of key data; and
a fifth storage section for storing a plurality of encryption algorithms;
a second contractor including means for connecting with the first contactor for communicating with the IC card;
third encryption means for encrypting the first certification data to deliver a second encryption output by using the first pair of key data and the encryption algorithm read out from the fourth and fifth storage sections in accordance with the first designation data sent from the IC card;
second designation means for designating a second pair of key data from said fourth storage section, and designating the encryption algorithm stored in said IC card, respectively;
fourth encryption means for encrypting the second certification data by using the second pair of key data and the encryption algorithm read out from the third and fourth storing means to deliver a fourth encryption output when the first coincidence output is delivered from the first comparison means;
second comparison means for comparing the fourth encryption output with the second encryption output to deliver a second coincidence output;
means for delivering an output representing that the IC card is valid when the second coincidence output is delivered from said comparison means; and
means for sending the command to the IC card when the output is delivered from the output delivering means.
2. A certification method for an IC card system utilizing an IC card having a plurality of key data and a plurality of encryption algorithms and an external device having a plurality of key data and a plurality of encryption algorithms, the external device and the IC card exchanging certification data to certify each other, the method comprising the steps of:
sending from the IC card to the external device a first designation data for designating a first pair of key data and an encryption algorithm stored in said external device;
reading out the first pair of key data and the encryption algorithm stored in said IC card;
generating first and second certification data;
encrypting the first certification data using the first pair of key data and the encryption algorithm read out from said IC card, to deliver a first encryption output;
comparing the first encryption output obtained in said IC card and a second encryption output obtained in said external device to deliver a first coincidence output;
reading out a second pair of key data and an encryption algorithm from said IC card in accordance with a second designation data sent from the external device;
encrypting the second certification data by using the second pair of key data and the encryption algorithm designated by the external device to deliver a second encryption algorithm output in response to the first coincidence output;
encrypting the first cerification data to deliver a second encryption output by using the first pair of key data and the encryption algorithm read out from the external device in accordance with the first designation data sent from the IC card;
designating a second pair of key data and the encryption algorithm stored in said external device;
encrypting the second certification data by using the second pair of key data and the encryption algorithm read out from the external device to deliver a fourth encryption output when the first coincidence output is delivered;
comparing the fourth encryption output with the second encryption output to deliver a second coincidence output;
producing a valid output signal signifying that the IC card is valid when the second coincidence output is obtained; and
sending a command from the external device to the IC card requesting further processing when the valid output signal is delivered at the output delivering step.
US07/942,337 1989-01-17 1992-09-09 System for mutually certifying an IC card and an IC card terminal Expired - Lifetime US5293029A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US07/942,337 US5293029A (en) 1989-01-17 1992-09-09 System for mutually certifying an IC card and an IC card terminal

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP1008010A JPH02187888A (en) 1989-01-17 1989-01-17 Certification system
JP1008011A JPH02187785A (en) 1989-01-17 1989-01-17 Authenticating system
JP1-8010 1989-01-17
JP1-8011 1989-01-17
US46360190A 1990-01-11 1990-01-11
US74742091A 1991-08-19 1991-08-19
US07/942,337 US5293029A (en) 1989-01-17 1992-09-09 System for mutually certifying an IC card and an IC card terminal

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US74742091A Continuation 1989-01-17 1991-08-19

Publications (1)

Publication Number Publication Date
US5293029A true US5293029A (en) 1994-03-08

Family

ID=27518878

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/942,337 Expired - Lifetime US5293029A (en) 1989-01-17 1992-09-09 System for mutually certifying an IC card and an IC card terminal

Country Status (1)

Country Link
US (1) US5293029A (en)

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559887A (en) * 1994-09-30 1996-09-24 Electronic Payment Service Collection of value from stored value systems
US5577121A (en) * 1994-06-09 1996-11-19 Electronic Payment Services, Inc. Transaction system for integrated circuit cards
US5608800A (en) * 1992-04-09 1997-03-04 Siemens Aktiengesellschaft Process for detecting unauthorized introduction of any data transmitted by a transmitter to a receiver
US5633930A (en) * 1994-09-30 1997-05-27 Electronic Payment Services, Inc. Common cryptographic key verification in a transaction network
US5739511A (en) * 1995-05-11 1998-04-14 Koninklijke Ptt Nederland N.V. Method for effecting an electronic payment transaction having a variable number of payment units, as well as payment means and system for applying the method
EP0856820A2 (en) * 1997-01-31 1998-08-05 Toshiba Corporation IC card, IC card processing system, and IC card authentication method
EP0867843A2 (en) * 1997-03-26 1998-09-30 Sony Corporation System and method for authentication, and device and method for autentication
US5862402A (en) * 1995-03-22 1999-01-19 Kabushiki Kaisha Toshiba System for rapidly issuing IC cards by proving an association between stored issue data and discrimination data then issuing IC cards pursuant to the issue data
US6076162A (en) * 1997-01-22 2000-06-13 International Business Machines Corporation Certification of cryptographic keys for chipcards
US6126071A (en) * 1998-05-25 2000-10-03 Mitsubishi Denki Kabushiki Kaisha IC memory card system for authenticating an IC memory card, and IC memory card used for the same
WO2000067214A1 (en) * 1999-04-28 2000-11-09 Gift Pd Corporation Method of issuing pre-paid card and method of authorizing pre-paid card and supervising balance thereof
US6163612A (en) * 1996-07-08 2000-12-19 Kanekichi Corporation Coding device, decoding device and IC circuit
US6247129B1 (en) 1997-03-12 2001-06-12 Visa International Service Association Secure electronic commerce employing integrated circuit cards
WO2001053915A1 (en) * 2000-01-19 2001-07-26 Codex Technologies Incorporated Security system involving creation and auto-burning of a digital signature in an electronic device and intelligent token device
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
US6363148B1 (en) * 1996-11-29 2002-03-26 Sony Corporation Method, apparatus and computer program for activating an alternate encryption using an identifier embedded in data
US6422461B1 (en) * 1996-10-23 2002-07-23 Dsc Communications A/S Method and system for ensuring connection of a module to an electronic apparatus
US20020190130A1 (en) * 2001-06-13 2002-12-19 Mitsubishi Denki Kabushiki Kaisha Portable storage device with function for preventing illegal access thereto
US6510514B1 (en) * 1997-08-06 2003-01-21 Infineon Technologies Ag Device for reliability creating electronic signatures
US20030028771A1 (en) * 1998-01-02 2003-02-06 Cryptography Research, Inc. Leak-resistant cryptographic payment smartcard
US20030075601A1 (en) * 2001-10-24 2003-04-24 Kabushiki Kaisha Semiconductor integrated circuit, memory card having the semiconductor integrated circuit and method of using the memory card
US20030106935A1 (en) * 2001-11-19 2003-06-12 Burchette Robert L. Transaction card system having security against unauthorized usage
US20030118190A1 (en) * 1998-05-29 2003-06-26 Siemens Aktiengesellschaft Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit
US20030188158A1 (en) * 1998-07-02 2003-10-02 Kocher Paul C. Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks
US20040065730A1 (en) * 2002-10-03 2004-04-08 Winbond Electronics Corp. Contactless and intelligence-wise code identification chip system
US6739504B2 (en) * 1999-06-23 2004-05-25 Tellabs Denmark A/S Method and system for ensuring connection of a module to an electronic apparatus
US20040178912A1 (en) * 1999-09-02 2004-09-16 Smith Freddie W. Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
US6893268B1 (en) 1993-09-01 2005-05-17 Sandisk Corporation Removable mother/daughter peripheral card
US20050120216A1 (en) * 2003-12-01 2005-06-02 Samsung Electronics Co., Ltd. System and method for building home domain using smart card which contains information of home network member device
US20050141444A1 (en) * 2003-12-19 2005-06-30 Fujitsu Limited Communication device management program
US20060118621A1 (en) * 2001-11-19 2006-06-08 Burchette Robert L Jr Transaction card system having security against unauthorized usage
US20060163365A1 (en) * 2002-11-19 2006-07-27 Futoshi Nakabe Contactless ic card
US7097107B1 (en) * 2003-04-09 2006-08-29 Mobile-Mind, Inc. Pseudo-random number sequence file for an integrated circuit card
US20060206677A1 (en) * 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US20070038864A1 (en) * 2005-08-15 2007-02-15 Felica Networks, Inc. Information processing apparatus, information processing method, and program
US20070273473A1 (en) * 1997-08-14 2007-11-29 Bates Benjamin G Wireless communications devices, wireless communications systems, and methods of performing wireless communications with a portable device
US20080022146A1 (en) * 1998-01-02 2008-01-24 Kocher Paul C Differential power analysis
US20090119759A1 (en) * 2005-10-03 2009-05-07 Petter Taugbol Method and Arrangement for Secure Authentication
EP2131336A1 (en) * 2008-06-06 2009-12-09 Sony Corporation Information processing device, information processing method, program and communication system
US20100169559A1 (en) * 1993-09-01 2010-07-01 Eliyahou Harari Removable Mother/Daughter Peripheral Card
US7805611B1 (en) * 2004-12-03 2010-09-28 Oracle America, Inc. Method for secure communication from chip card and system for performing the same
CN101872507A (en) * 2010-06-12 2010-10-27 武汉天喻信息产业股份有限公司 Data safe transmission method for mobile payment
US8311834B1 (en) 1999-06-10 2012-11-13 Gazdzinski Robert F Computerized information selection and download apparatus and methods
CN102904664A (en) * 2011-07-27 2013-01-30 国民技术股份有限公司 Anti-interference communication system and anti-interference method
US8371503B2 (en) 2003-12-17 2013-02-12 Robert F. Gazdzinski Portable computerized wireless payment apparatus and methods
US8812368B1 (en) 1999-03-01 2014-08-19 West View Research, Llc Computerized information collection and processing apparatus
US9861296B2 (en) 1999-03-01 2018-01-09 West View Research, Llc Ingestible probe with agent delivery
US20180367698A1 (en) * 2017-06-15 2018-12-20 Xerox Corporation Method and apparatus for instant secure scanning of a document
US20210266147A1 (en) * 2020-02-26 2021-08-26 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11310036B2 (en) 2020-02-26 2022-04-19 International Business Machines Corporation Generation of a secure key exchange authentication request in a computing environment
US11405215B2 (en) * 2020-02-26 2022-08-02 International Business Machines Corporation Generation of a secure key exchange authentication response in a computing environment
US11489821B2 (en) 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
US11546137B2 (en) 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11824974B2 (en) 2020-02-26 2023-11-21 International Business Machines Corporation Channel key loading in a computing environment

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4074079A (en) * 1976-06-02 1978-02-14 Bell Telephone Laboratories, Incorporated Coin telephone antifraud system
EP0119707A1 (en) * 1983-02-22 1984-09-26 BRITISH TELECOMMUNICATIONS public limited company Automatic verification
GB2144564A (en) * 1983-07-29 1985-03-06 Philips Nv Authentication system between a card reader and a card exchanger data
US4630201A (en) * 1984-02-14 1986-12-16 International Security Note & Computer Corporation On-line and off-line transaction security system using a code generated from a transaction parameter and a random number
US4665396A (en) * 1982-03-16 1987-05-12 U.S. Philips Corporation Validation check for remote digital station
EP0223122A2 (en) * 1985-11-18 1987-05-27 International Business Machines Corporation Secure component authentication system
US4746788A (en) * 1985-09-17 1988-05-24 Casio Computer Co., Ltd. Identification system for authenticating both IC card and terminal
US4757534A (en) * 1984-12-18 1988-07-12 International Business Machines Corporation Code protection using cryptography
US4799635A (en) * 1985-06-24 1989-01-24 Nintendo Co., Ltd. System for determining authenticity of an external memory used in an information processing apparatus
US4823388A (en) * 1984-06-25 1989-04-18 Kabushiki Kaisha Toshiba Communications network using an enciphering and deciphering device
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
US4862501A (en) * 1985-03-08 1989-08-29 Kabushiki Kaisha Toshiba Communications network using IC cards
US4910774A (en) * 1987-07-10 1990-03-20 Schlumberger Industries Method and system for suthenticating electronic memory cards
US4935962A (en) * 1988-05-19 1990-06-19 Ncr Corporation Method and system for authentication
US4961142A (en) * 1988-06-29 1990-10-02 Mastercard International, Inc. Multi-issuer transaction device with individual identification verification plug-in application modules for each issuer
US5109152A (en) * 1988-07-13 1992-04-28 Matsushita Electric Industrial Co., Ltd. Communication apparatus

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4074079A (en) * 1976-06-02 1978-02-14 Bell Telephone Laboratories, Incorporated Coin telephone antifraud system
US4665396A (en) * 1982-03-16 1987-05-12 U.S. Philips Corporation Validation check for remote digital station
EP0119707A1 (en) * 1983-02-22 1984-09-26 BRITISH TELECOMMUNICATIONS public limited company Automatic verification
GB2144564A (en) * 1983-07-29 1985-03-06 Philips Nv Authentication system between a card reader and a card exchanger data
US4630201A (en) * 1984-02-14 1986-12-16 International Security Note & Computer Corporation On-line and off-line transaction security system using a code generated from a transaction parameter and a random number
US4823388A (en) * 1984-06-25 1989-04-18 Kabushiki Kaisha Toshiba Communications network using an enciphering and deciphering device
US4757534A (en) * 1984-12-18 1988-07-12 International Business Machines Corporation Code protection using cryptography
US4862501A (en) * 1985-03-08 1989-08-29 Kabushiki Kaisha Toshiba Communications network using IC cards
US4799635A (en) * 1985-06-24 1989-01-24 Nintendo Co., Ltd. System for determining authenticity of an external memory used in an information processing apparatus
US4746788A (en) * 1985-09-17 1988-05-24 Casio Computer Co., Ltd. Identification system for authenticating both IC card and terminal
EP0223122A2 (en) * 1985-11-18 1987-05-27 International Business Machines Corporation Secure component authentication system
US4910774A (en) * 1987-07-10 1990-03-20 Schlumberger Industries Method and system for suthenticating electronic memory cards
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
US4935962A (en) * 1988-05-19 1990-06-19 Ncr Corporation Method and system for authentication
US4961142A (en) * 1988-06-29 1990-10-02 Mastercard International, Inc. Multi-issuer transaction device with individual identification verification plug-in application modules for each issuer
US5109152A (en) * 1988-07-13 1992-04-28 Matsushita Electric Industrial Co., Ltd. Communication apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Takaragi, K. et al., "Certification System for Electronic Transaction Using IC Cards", Institute of Electric Engineering of Japan, Transaction, 1987, vol. 107-C, No. 1, pp. 46-53.
Takaragi, K. et al., Certification System for Electronic Transaction Using IC Cards , Institute of Electric Engineering of Japan, Transaction, 1987, vol. 107 C, No. 1, pp. 46 53. *

Cited By (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608800A (en) * 1992-04-09 1997-03-04 Siemens Aktiengesellschaft Process for detecting unauthorized introduction of any data transmitted by a transmitter to a receiver
US6981068B1 (en) 1993-09-01 2005-12-27 Sandisk Corporation Removable mother/daughter peripheral card
US20100205360A1 (en) * 1993-09-01 2010-08-12 Eliyahou Harari Removable Mother/Daughter Peripheral Card
US7137011B1 (en) 1993-09-01 2006-11-14 Sandisk Corporation Removable mother/daughter peripheral card
US20100169559A1 (en) * 1993-09-01 2010-07-01 Eliyahou Harari Removable Mother/Daughter Peripheral Card
US20070016704A1 (en) * 1993-09-01 2007-01-18 Eliyahou Harari Removable Mother/Daughter Peripheral Card
US6893268B1 (en) 1993-09-01 2005-05-17 Sandisk Corporation Removable mother/daughter peripheral card
US5577121A (en) * 1994-06-09 1996-11-19 Electronic Payment Services, Inc. Transaction system for integrated circuit cards
US5559887A (en) * 1994-09-30 1996-09-24 Electronic Payment Service Collection of value from stored value systems
US5633930A (en) * 1994-09-30 1997-05-27 Electronic Payment Services, Inc. Common cryptographic key verification in a transaction network
US5862402A (en) * 1995-03-22 1999-01-19 Kabushiki Kaisha Toshiba System for rapidly issuing IC cards by proving an association between stored issue data and discrimination data then issuing IC cards pursuant to the issue data
US5739511A (en) * 1995-05-11 1998-04-14 Koninklijke Ptt Nederland N.V. Method for effecting an electronic payment transaction having a variable number of payment units, as well as payment means and system for applying the method
US6163612A (en) * 1996-07-08 2000-12-19 Kanekichi Corporation Coding device, decoding device and IC circuit
US6422461B1 (en) * 1996-10-23 2002-07-23 Dsc Communications A/S Method and system for ensuring connection of a module to an electronic apparatus
US6363148B1 (en) * 1996-11-29 2002-03-26 Sony Corporation Method, apparatus and computer program for activating an alternate encryption using an identifier embedded in data
US6076162A (en) * 1997-01-22 2000-06-13 International Business Machines Corporation Certification of cryptographic keys for chipcards
EP0856820A2 (en) * 1997-01-31 1998-08-05 Toshiba Corporation IC card, IC card processing system, and IC card authentication method
US6240517B1 (en) 1997-01-31 2001-05-29 Kabushiki Kaisha Toshiba Integrated circuit card, integrated circuit card processing system, and integrated circuit card authentication method
EP0856820A3 (en) * 1997-01-31 1999-08-11 Kabushiki Kaisha Toshiba IC card, IC card processing system, and IC card authentication method
US6247129B1 (en) 1997-03-12 2001-06-12 Visa International Service Association Secure electronic commerce employing integrated circuit cards
EP1339028A3 (en) * 1997-03-26 2009-06-24 Sony Corporation Device and method for authentication
EP1339028A2 (en) * 1997-03-26 2003-08-27 Sony Corporation Device and method for authentication
EP0867843A2 (en) * 1997-03-26 1998-09-30 Sony Corporation System and method for authentication, and device and method for autentication
EP0867843A3 (en) * 1997-03-26 2000-09-20 Sony Corporation System and method for authentication, and device and method for autentication
USRE39622E1 (en) 1997-03-26 2007-05-08 Sony Corporation System and method for authentication, and device and method for authentication
US6510514B1 (en) * 1997-08-06 2003-01-21 Infineon Technologies Ag Device for reliability creating electronic signatures
US20070285213A1 (en) * 1997-08-14 2007-12-13 Keystone Technology Solutions, Llc Secure Cargo Transportation System
US20070285208A1 (en) * 1997-08-14 2007-12-13 Keystone Technology Solutions, Llc Secure Cargo Transportation System
US20070273473A1 (en) * 1997-08-14 2007-11-29 Bates Benjamin G Wireless communications devices, wireless communications systems, and methods of performing wireless communications with a portable device
US7920047B2 (en) * 1997-08-14 2011-04-05 Round Rock Research, Llc Wireless communications devices, wireless communications systems, and methods of performing wireless communications with a portable device
US8130077B2 (en) 1997-08-14 2012-03-06 Round Rock Research, Llc Wireless communications devices
US8232865B2 (en) 1997-08-14 2012-07-31 Round Rock Research, Llc Wireless communication devices
US8633800B2 (en) 1997-08-14 2014-01-21 Round Rock Research, Llc Methods of configuring and using a wireless communications device
US7777608B2 (en) 1997-08-14 2010-08-17 Round Rock Research, Llc Secure cargo transportation system
US20100091982A1 (en) * 1998-01-02 2010-04-15 Kocher Paul C Differential power analysis - resistant cryptographic processing
US20080022146A1 (en) * 1998-01-02 2008-01-24 Kocher Paul C Differential power analysis
US8879724B2 (en) 1998-01-02 2014-11-04 Rambus Inc. Differential power analysis—resistant cryptographic processing
US7506165B2 (en) 1998-01-02 2009-03-17 Cryptography Research, Inc. Leak-resistant cryptographic payment smartcard
US9419790B2 (en) 1998-01-02 2016-08-16 Cryptography Research, Inc. Differential power analysis—resistant cryptographic processing
US7634083B2 (en) 1998-01-02 2009-12-15 Cryptography Research, Inc. Differential power analysis
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US20030028771A1 (en) * 1998-01-02 2003-02-06 Cryptography Research, Inc. Leak-resistant cryptographic payment smartcard
US6126071A (en) * 1998-05-25 2000-10-03 Mitsubishi Denki Kabushiki Kaisha IC memory card system for authenticating an IC memory card, and IC memory card used for the same
US20030118190A1 (en) * 1998-05-29 2003-06-26 Siemens Aktiengesellschaft Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
US7787620B2 (en) 1998-06-03 2010-08-31 Cryptography Research, Inc. Prevention of side channel attacks against block cipher implementations and other cryptographic systems
US7668310B2 (en) 1998-06-03 2010-02-23 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
US20060045264A1 (en) * 1998-06-03 2006-03-02 Kocher Paul C Prevention of side channel attacks against block cipher implementations and other cryptographic systems
US7941666B2 (en) 1998-07-02 2011-05-10 Cryptography Research, Inc. Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks
US20030188158A1 (en) * 1998-07-02 2003-10-02 Kocher Paul C. Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks
US9852572B2 (en) 1998-07-02 2017-12-26 Cryptography Research, Inc. Cryptographic token with leak-resistant key derivation
US9913575B2 (en) 1999-03-01 2018-03-13 West View Research, Llc Methods of processing data obtained from medical device
US10973397B2 (en) 1999-03-01 2021-04-13 West View Research, Llc Computerized information collection and processing apparatus
US9861268B2 (en) 1999-03-01 2018-01-09 West View Research, Llc Methods of processing data obtained from medical device
US8812368B1 (en) 1999-03-01 2014-08-19 West View Research, Llc Computerized information collection and processing apparatus
US9861296B2 (en) 1999-03-01 2018-01-09 West View Research, Llc Ingestible probe with agent delivery
US10154777B2 (en) 1999-03-01 2018-12-18 West View Research, Llc Computerized information collection and processing apparatus and methods
US10098568B2 (en) 1999-03-01 2018-10-16 West View Research, Llc Computerized apparatus with ingestible probe
US10028646B2 (en) 1999-03-01 2018-07-24 West View Research, Llc Computerized information collection and processing apparatus
US10028645B2 (en) 1999-03-01 2018-07-24 West View Research, Llc Computerized information collection and processing apparatus
WO2000067214A1 (en) * 1999-04-28 2000-11-09 Gift Pd Corporation Method of issuing pre-paid card and method of authorizing pre-paid card and supervising balance thereof
US9709972B2 (en) 1999-06-10 2017-07-18 West View Research, Llc Computerized information and display apparatus with remote environment control
US8676587B1 (en) 1999-06-10 2014-03-18 West View Research, Llc Computerized information and display apparatus and methods
US8311834B1 (en) 1999-06-10 2012-11-13 Gazdzinski Robert F Computerized information selection and download apparatus and methods
US9710225B2 (en) 1999-06-10 2017-07-18 West View Research, Llc Computerized information and display apparatus with automatic context determination
US8719038B1 (en) 1999-06-10 2014-05-06 West View Research, Llc Computerized information and display apparatus
US8781839B1 (en) 1999-06-10 2014-07-15 West View Research, Llc Computerized information and display apparatus
US9715368B2 (en) 1999-06-10 2017-07-25 West View Research, Llc Computerized information and display apparatus with rapid convergence algorithm
US6739504B2 (en) * 1999-06-23 2004-05-25 Tellabs Denmark A/S Method and system for ensuring connection of a module to an electronic apparatus
US20040178912A1 (en) * 1999-09-02 2004-09-16 Smith Freddie W. Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
US20110025506A1 (en) * 1999-09-02 2011-02-03 Round Rock Research, Llc Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
US20070290807A1 (en) * 1999-09-02 2007-12-20 Smith Freddie W Remote Communication Devices, Radio Frequency Identification Devices, Wireless Communication Systems, Wireless Communication Methods, Radio Frequency Identification Device Communication Methods, and Methods of Forming a Remote Communication Device
US7969313B2 (en) 1999-09-02 2011-06-28 Round Rock Research, Llc Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
US7710273B2 (en) 1999-09-02 2010-05-04 Round Rock Research, Llc Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
US7786872B2 (en) 1999-09-02 2010-08-31 Round Rock Research, Llc Remote communication devices, radio frequency identification devices, wireless communication systems, wireless communication methods, radio frequency identification device communication methods, and methods of forming a remote communication device
WO2001053915A1 (en) * 2000-01-19 2001-07-26 Codex Technologies Incorporated Security system involving creation and auto-burning of a digital signature in an electronic device and intelligent token device
US20020190130A1 (en) * 2001-06-13 2002-12-19 Mitsubishi Denki Kabushiki Kaisha Portable storage device with function for preventing illegal access thereto
US20030075601A1 (en) * 2001-10-24 2003-04-24 Kabushiki Kaisha Semiconductor integrated circuit, memory card having the semiconductor integrated circuit and method of using the memory card
US20060118621A1 (en) * 2001-11-19 2006-06-08 Burchette Robert L Jr Transaction card system having security against unauthorized usage
US6991155B2 (en) * 2001-11-19 2006-01-31 Laser Card, Llc Transaction card system having security against unauthorized usage
US20030106935A1 (en) * 2001-11-19 2003-06-12 Burchette Robert L. Transaction card system having security against unauthorized usage
US6837440B2 (en) * 2002-10-03 2005-01-04 Winbond Electronics Corp Contactless and intelligence-wise code identification chip system
US20040065730A1 (en) * 2002-10-03 2004-04-08 Winbond Electronics Corp. Contactless and intelligence-wise code identification chip system
CN100356382C (en) * 2002-11-19 2007-12-19 松下电器产业株式会社 Non-contact IC card
US20060163365A1 (en) * 2002-11-19 2006-07-27 Futoshi Nakabe Contactless ic card
US7152799B2 (en) * 2002-11-19 2006-12-26 Matsushita Electric Industrial Co., Ltd. Contactless IC card
US7097107B1 (en) * 2003-04-09 2006-08-29 Mobile-Mind, Inc. Pseudo-random number sequence file for an integrated circuit card
US20060206677A1 (en) * 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US20050120216A1 (en) * 2003-12-01 2005-06-02 Samsung Electronics Co., Ltd. System and method for building home domain using smart card which contains information of home network member device
US8347076B2 (en) * 2003-12-01 2013-01-01 Samsung Electronics Co., Ltd. System and method for building home domain using smart card which contains information of home network member device
US10686784B2 (en) 2003-12-17 2020-06-16 West View Research, Llc Computerized apparatus and methods for location-based service provision
US9396450B2 (en) 2003-12-17 2016-07-19 West View Research, Llc Computerized apparatus and methods for transfer between locations
US11240238B2 (en) 2003-12-17 2022-02-01 West View Research, Llc Computerized apparatus and methods for location-based service provision
US11870778B2 (en) 2003-12-17 2024-01-09 West View Research, Llc Computerized apparatus and methods for user authentication and object handling
US8640944B1 (en) 2003-12-17 2014-02-04 West View Research, Llc Portable computerized wireless payment apparatus and methods
US8622286B2 (en) 2003-12-17 2014-01-07 West View Research, Llc Portable computerized wireless payment apparatus and methods
US9033226B1 (en) 2003-12-17 2015-05-19 West View Research, Llc Portable computerized wireless apparatus
US9299053B2 (en) 2003-12-17 2016-03-29 West View Research, Llc Portable computerized wireless apparatus
US9349112B2 (en) 2003-12-17 2016-05-24 West View Research, Llc Computerized apparatus for transfer between locations
US8690050B2 (en) 2003-12-17 2014-04-08 West View Research, Llc Computerized information and display apparatus
US10057265B2 (en) 2003-12-17 2018-08-21 West View Research, Llc Computerized vehicular apparatus for location-based service provision
US9424547B2 (en) 2003-12-17 2016-08-23 West View Research, Llc Methods of transport of one or more items between locations
US9607280B2 (en) 2003-12-17 2017-03-28 West View Research, Llc Methods for shipping element processing
US8613390B2 (en) 2003-12-17 2013-12-24 West View Research, Llc Computerized wireless payment methods
US8579189B2 (en) 2003-12-17 2013-11-12 West View Research, Llc Portable computerized wireless payment apparatus and methods
US8413887B1 (en) 2003-12-17 2013-04-09 West View Research, Llc Portable computerized wireless information apparatus and methods
US9781110B2 (en) 2003-12-17 2017-10-03 West View Research, Llc Computerized methods for location-based service provision
US8371503B2 (en) 2003-12-17 2013-02-12 Robert F. Gazdzinski Portable computerized wireless payment apparatus and methods
US8180842B2 (en) * 2003-12-19 2012-05-15 Fujitsu Limited Communication device management program
US20050141444A1 (en) * 2003-12-19 2005-06-30 Fujitsu Limited Communication device management program
US7805611B1 (en) * 2004-12-03 2010-09-28 Oracle America, Inc. Method for secure communication from chip card and system for performing the same
US8117448B2 (en) * 2005-08-15 2012-02-14 Felica Networks, Inc. Information processing apparatus, information processing method, and program
US20070038864A1 (en) * 2005-08-15 2007-02-15 Felica Networks, Inc. Information processing apparatus, information processing method, and program
US8335925B2 (en) * 2005-10-03 2012-12-18 Encap As Method and arrangement for secure authentication
US20090119759A1 (en) * 2005-10-03 2009-05-07 Petter Taugbol Method and Arrangement for Secure Authentication
EP2131336A1 (en) * 2008-06-06 2009-12-09 Sony Corporation Information processing device, information processing method, program and communication system
US20090307491A1 (en) * 2008-06-06 2009-12-10 Sony Corporation Information processing device, information processing method, program and communication system
CN101872507A (en) * 2010-06-12 2010-10-27 武汉天喻信息产业股份有限公司 Data safe transmission method for mobile payment
CN101872507B (en) * 2010-06-12 2012-10-10 武汉天喻信息产业股份有限公司 Data safe transmission method for mobile payment
CN102904664A (en) * 2011-07-27 2013-01-30 国民技术股份有限公司 Anti-interference communication system and anti-interference method
US20180367698A1 (en) * 2017-06-15 2018-12-20 Xerox Corporation Method and apparatus for instant secure scanning of a document
US20210266147A1 (en) * 2020-02-26 2021-08-26 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11405215B2 (en) * 2020-02-26 2022-08-02 International Business Machines Corporation Generation of a secure key exchange authentication response in a computing environment
US11489821B2 (en) 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
US11546137B2 (en) 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11652616B2 (en) * 2020-02-26 2023-05-16 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11824974B2 (en) 2020-02-26 2023-11-21 International Business Machines Corporation Channel key loading in a computing environment
US11310036B2 (en) 2020-02-26 2022-04-19 International Business Machines Corporation Generation of a secure key exchange authentication request in a computing environment

Similar Documents

Publication Publication Date Title
US5293029A (en) System for mutually certifying an IC card and an IC card terminal
US7469837B2 (en) Storage device
US7469339B2 (en) Secure multiple application card system and process
US6659354B2 (en) Secure multi-application IC card system having selective loading and deleting capability
EP0666550B1 (en) Data exchange system comprising portable data processing units
GB2227111A (en) Certification system
JPS63201748A (en) Portable electronic equipment
WO2002067169A1 (en) Communication system, card, management server, communication method, program, recorded medium on which program is recorded
US7296289B2 (en) Setting or changing an access condition for an access management apparatus and method of a portable electronic device
JPH02187888A (en) Certification system
JP3526287B2 (en) Portable electronic device and data writing method thereof
JP2856415B2 (en) Portable electronic devices
JPS60160492A (en) Ic card
JP3545045B2 (en) Creating a pattern file for IC card access
JPH09179949A (en) Portable information recording medium and its reader/ writer device
JPS63184853A (en) Portable electronic apparatus
JP2537200B2 (en) Portable electronic devices
JPS63211046A (en) Portable electronic equipment
JP4899499B2 (en) IC card issuing method, IC card issuing system, and IC card
JPH02187785A (en) Authenticating system
JP3209994B2 (en) Portable electronic devices
JPH03224083A (en) Portable electronic device
JP3015376B2 (en) IC card
JPH03224047A (en) Portable electronic device
JPH03224082A (en) Portable electronic device

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12