AT88SC0104CA_11 ATMEL [ATMEL Corporation], AT88SC0104CA_11 Datasheet
![no-image](/images/no-image-200.jpg)
AT88SC0104CA_11
Related parts for AT88SC0104CA_11
AT88SC0104CA_11 Summary of contents
Page 1
... AT88SC0104CA, AT88SC0204CA, Atmel CryptoMemory Specification Datasheet Features • One of a family of devices with user memories from 1Kbit to 8Kbit • EEPROM user memory • Four or eight zones • Self-timed write cycles • Single-byte or multiple-byte page-write modes • Programmable access rights for each zone • ...
Page 2
... Random Read: $B1 .......................................................................................... 32 8.9 Read User Zone: $B2 ....................................................................................... 33 8.10 System Write: $B4 ............................................................................................ 34 8.11 System Read: $B6 ............................................................................................ 36 8.12 Verify Crypto: $B8 ............................................................................................. 38 8.13 Verify Password: $BA ....................................................................................... 40 9. Initialization Example ..................................................................................... 41 9.1 Write Data to User Zones ................................................................................. 41 9.2 Unlock the Configuration Memory ..................................................................... 41 9.3 Write Data to the Configuration Memory ........................................................... 41 9.4 Set Security Fuses ............................................................................................ 41 Atmel AT88SC0104CA/0204CA/0404CA/0808CA [Datasheet] 2 8664E−CRYPTO−12/11 ...
Page 3
... Verify CRYPTO: $B8 ........................................................................................ 53 10.10 Verify Password: $BA ..................................................................................... 55 11. Initialization Example ..................................................................................... 56 11.1 Write Data to User Zones ................................................................................. 56 11.2 Unlock the Configuration Memory ..................................................................... 56 11.3 Write Data to the Configuration Memory ........................................................... 56 11.4 Set Security Fuses ............................................................................................ 56 12. Absolute Maximum Ratings* ......................................................................... 59 12.1 DC and AC Characteristics ............................................................................... 59 12.2 Timing Diagrams for Synchronous Communications ........................................ 60 13. POR and Tamper Conditions ........................................................................ 62 13 ...
Page 4
... Package Pin Configuration Pad Description V Supply Voltage CC GND Ground SCL/CLK Serial Clock Input SDA/IO Serial Data Input/Output RST Reset Input 1.2 Package Information Figure 1-1. Atmel CryptoMemory Packages Smart Card Module RST = C2 SCL/CLK = 8-lead TSSOP GND 8-Lead TSSOP SDA 3 NC ...
Page 5
... In addition, AT88SCxxxxCA offers a random read command, whereby given a starting address, the user can clock unlimited number of bytes from the device up to the memory capacity. Last but not least, the AT88SCxxxxCA family of devices specifically targets low voltage and low power applications. ...
Page 6
Block Diagram Figure 3-1. Block Diagram V Power CC GND Management Synchronous Interface SCL/CLK Asynchronous SDA/IO ISO Interface RST Reset Block Authentication, Encryption and Certification Unit Data Transfer EEPROM Password Verification Answer to Reset Atmel AT88SC0104CA/0204CA/0404CA/0808CA [Datasheet] 6 8664E−CRYPTO−12/11 ...
Page 7
... RST input pad allows the device to be used in synchronous mode without bonding RST. For synchronous only smart card applications an external pull-up on RST is recommended to ensure synchronous operation under any system timings or conditions. CryptoMemory does not support a synchronous answer to reset sequence. The RST input is not available in the plastic package options for CryptoMemory. ...
Page 8
... The configuration memory consists of 2048 bits of EEPROM memory used for storing passwords, keys, codes, and defining security levels to be used for each user zone. The control logic defines access rights to the configuration memory and the user may not alter these rights. The access rights include the ability to program certain portions of the configuration memory and then lock the data written through use of security fuses ...
Page 9
... Table 5-1. Atmel AT88SC0104CA/0204CA/0404CA Configuration Memory $ $00 $08 Fab Code MTZ $10 $18 DCR $20 AR0 PR0 AR1 $28 $30 $38 $40 $48 $50 AAC0 $58 Session Encryption Key S $60 AAC1 $68 Session Encryption Key S $70 AAC2 $78 Session Encryption Key S $80 AAC3 $88 Session Encryption Key S $90 $98 $A0 $A8 $B0 PAC ...
Page 10
... Table 5-2. Atmel AT88SC0808CA Configuration Memory $ $00 $08 Fab Code MTZ $10 $18 DCR $20 AR0 PR0 AR1 $28 AR4 PR4 AR5 $30 $38 $40 $48 $50 AAC0 $58 Session Encryption Key S $60 AAC1 $68 Session Encryption Key S $70 AAC2 $78 Session Encryption Key S $80 AAC3 $88 Session Encryption Key S $90 $98 $A0 ...
Page 11
... User Memory The EEPROM user memory is divided into four (AT88SC0104CA/0204CA/0404CA) or eight (AT88SC0808CA) user zones. Multiple zones allow for the storage of different data types or files in different zones. Access to user zones is possible only after meeting security requirements. The customer defines these security requirements in the configuration zone during device personalization ...
Page 12
... Table 5-4. Atmel AT88SC0204CA User Memory Zone $0 $00 ─ User 0 ─ $38 $00 ─ User 1 ─ $38 $00 ─ User 2 ─ $38 $00 ─ User 3 ─ $38 Note: Page size = 16 bytes $ bytes 64 bytes 64 bytes 64 bytes Atmel AT88SC0104CA/0204CA/0404CA/0808CA [Datasheet 8664E−CRYPTO−12/11 ...
Page 13
... User 0 ─ $78 $00 ─ User 1 ─ $78 $00 ─ User 2 ─ $78 $00 ─ User 3 ─ $78 Note: Page size = 16 bytes Table 5-6. Atmel AT88SC0808CA User Memory Zone $0 $00 ─ User 0 ─ $78 $00 User 1 ─ ─ ─ ─ ─ User 6 $78 $00 ─ User 7 ─ $78 ...
Page 14
... The use of passwords protects read and write accesses to the user zones. Any one of eight password sets is available for assignment to any user zone through configuration of access registers. CryptoMemory provides separate 24-bit passwords for read and write operations. Read passwords grant only read accesses to zones under password protection, while write passwords grant both read and write accesses ...
Page 15
... Decrementing AAC to $00 permanently disables the corresponding key set and permanently renders the corresponding user zone(s) under protection inaccessible. Entry into authentication mode is a process through which the host and CryptoMemory device mutually authenticate one another. First, the host generates a 64-bit random number, reads a current cryptogram and identification information from the device, and uses this information in conjunction with the corresponding secret seed to generate a 64-bit challenge for the device ...
Page 16
... Encrypted Checksum (Message Authentication Code, MAC) CryptoMemory implements a data validity check function in the form of an encrypted checksum. This checksum provides a bi- directional data integrity check and data origin authentication capability in the form of a Message Authentication Code (MAC): only the host/device that carried out a valid authentication is capable of computing a valid MAC. When writing data to the CryptoMemory device in authentication or encryption communication modes, the host must send a valid checksum immediately following the write command ...
Page 17
... If this write cycle is interrupted the original data remains intact in the user zone or configuration zone. The data is then written in the required memory location. If this second write cycle is interrupted the device will automatically recover the data from the system buffer zone at the next power-up and write it to the intended destination address ...
Page 18
... Atmel programs certain fields of the system zone at the factory. The customer may elect to change the content of all of these fields except for the lot history code field, which is permanently locked. Atmel programs the remainder of the fields, including all of the configuration memory and user zones to ones prior to releasing the device from the factory. Programmed Fields,” ...
Page 19
... Four (AT88SC0104CA/0204CA/0404CA) or eight (AT88SC0808CA) 8-bit access registers allow personalization of the device. Each access register works in conjunction with a password/key register to define the security settings for each individual zone of the user memory. Values in the access registers take immediate effect after programming. The default value for each bit is “1”. ...
Page 20
PM(1:0) Password Mode Table 6-6. Password Mode PM0 PM1 Access password required 1 0 Write password required 0 * Read and write passwords required When PM = “11”, the user zone under protection requires no password. ...
Page 21
WLM – Write Lock Mode Asserting this bit (WLM = “0”) divides the user zone into 8-byte pages. The first byte of each page becomes the write lock byte and defines the locked/unlocked status for each byte in the ...
Page 22
... Security Fuses CryptoMemory uses four fuses. The status of these fuses is given in a ‘fuse byte.’ A value of ‘0’ indicates that the fuse has been blown. Bits four to seven of this byte are not used as security fuses and are reserved for Atmel use. ...
Page 23
... To lock the card manufacturer code of the configuration memory • PER To lock the remainder of the configuration memory Any attempt to blow a fuse out of sequence will be unsuccessful. Table 6-10 provides a summary of access rights for all portions of the memory for each fuse condition. Table 6-10. Configuration Memory Access Control by Security Fuses Zone Operation Read ...
Page 24
... Two-wire serial communication for embedded applications • ISO 7816 asynchronous T=0 smart card interface The power-up sequence of CryptoMemory determines what mode it shall operate in. A brief description of each of these modes follows. 7.1 Synchronous Mode for Embedded Applications The two-wire serial interface is used for fast and efficient communication with logic and controllers. The synchronous mode is ...
Page 25
... RST goes high after 400 clock cycles The device will respond with a 64-bit ATR code, including historical bytes to indicate the memory density within the CryptoMemory family. Once the asynchronous mode has been selected not possible to switch to the synchronous mode without powering off the device ...
Page 26
... Synchronous Protocol Communication with the CryptoMemory using the synchronous protocol is very similar to communication with AT24Cxxx Serial EEPROM devices using a two-wire protocol (TWI). Basic command structure and timing are the same. However, a significant difference exists when reading the CryptoMemory device that will be described below. ...
Page 27
... Address 1, Address 2, and N. The last byte, N, defines the number of any additional data bytes to be sent or received from the CryptoMemory device. In addition, the random read command is available the only one byte command but must be preceded by an aborted write command in order to set up the read address. ...
Page 28
... Normal Read: $B2 or $B6 (Read User Zone or System Read) The CryptoMemory normal read command looks like a TWI write command (LSB of the fist byte = 0) but after the fourth byte of the command the CryptoMemory device will begin to send data back on the bus. The number of bytes sent by CryptoMemory will be equal to the value of N ...
Page 29
... C K CryptoMemory will NACK the N parameter of the dummy write operation if the write were issued to an illegal write location. The NACK response, however, does not affect the loading of the read address. The random read command works for both configuration and user memory important to implement the CryptoMemory read commands as specified; otherwise CryptoMemory responses will cause contention on the bus with a host using standard TWI protocol ...
Page 30
... A specific device may be set to respond to another value ($0 to $F) in addition setting this value in the second nibble of the Device Configuration Register (DCR) in the configuration memory. The DCR is set to $FF at the Atmel factory and thus will respond to device address $B and $F unless the DCR is modified. For a device to respond only to $B the DCR should be set to $B also ...
Page 31
... The host must send the checksum it has computed immediately after the write user zone command. If the checksum is valid, CryptoMemory writes the data; if the checksum is incorrect, the data is discarded and the cryptographic engine is reset. If the host is not allowed to write in the zone, the device will not acknowledge the N byte. After this command the host must perform ACK polling ...
Page 32
... The random read command provides the host ability to sequentially clock data from the device starting from a specified address. The host needs to first specify the start address to read from in the memory by executing a “dummy” operation. The host does this by clocking in the four bytes of the write command and then follows them with a start condition instead of a data byte. At this point, the device’ ...
Page 33
... The data byte address to be read is defined by Address 1 and Address 2 in the command and is internally incremented following the transmission of each data byte. The value N defines how many bytes CryptoMemory will read, a value of zero will result in 256 bytes read. The host however, may cease clocking the device and end the transmission with a NACK and stop at any time prior to receiving all N bytes. During a read operation the address will " ...
Page 34
System Write: $B4 Figure 8-11. System Write Command Functional Description Host Command Address 1 Address 2 Number of bytes N Data N data bytes … Data The system write command allows writing of configuration data to the device. Depending ...
Page 35
... To write data to user zones that require authentication or encryption for write access (ER = “0”, AM[1:0] = “00”, “01”, or “10” in the access register), the host should first carry out the write command $B0. At this point the memory is unchanged and the device is waiting for the host to provide a valid checksum before initiating the write cycle. The host immediately sends the checksum it has computed using the system write command with P1 = $02 ...
Page 36
... The data byte address to be read is defined by Address 2 in the command and is internally incremented following the transmission of each data byte. The value N defines how many bytes CryptoMemory will read, a value of zero will result in 256 bytes read. If the address provided is an unauthorized address, the device will not ACK the N byte and will not return any data. ...
Page 37
Read Checksum The checksum consists of two bytes, and the read checksum command must be sent with parameter Figure 8-14. System Read Command Address 1 T 1011 0110 0000 xxxx A C ...
Page 38
Verify Crypto: $B8 8.12.1 Functional Figure 8-15. Verify Crypto Command Functional Description Host Command Key Index random bytes CH1 CH2 CH3 CH4 8 challenge bytes CH5 CH6 CH7 CH8 When ...
Page 39
Figure 8-16. Verify Crypto Command Key Index Parameter 2 T 1011 1000 000e 00nn xxxx xxxx Once the sequence has been carried out, the device requires the host to perform ...
Page 40
Verify Password: $BA 8.13.1 Functional Figure 8-17. Verify Password Command Functional Description Host Command Password Index PW1 3 password bytes PW2 PW3 Read password indices: $10 to $17 for passwords and 7. Write password indices: $00 ...
Page 41
... Initialization Example The first step in initializing CryptoMemory is to determine what data stored in the device and what the security settings need protect this data. Once defined, determine the proper settings for CryptoMemory registers and select values for passwords. To initialize the CryptoMemory device, the following sequence is recommended to take place in a secure location to protect sensitive data and passwords that may be loaded into the device ...
Page 42
... The following shows the two-wire commands sent to the CryptoMemory device for the purpose of initializing the device. The flow is consistent with the steps described above; comments have been added as indicated with an asterisk (*). *Atmel AT88SC0104CA Initialization Example *WRITE DATA TO USER ZONES *Set User Zone 0 ...
Page 43
Response ...
Page 44
... Asynchronous T=0 Protocol 10.1 Character Format The CryptoMemory complies with the asynchronous T=0 protocol defined in ISO 7816-3. The character format is shown in the following figure. Note that the byte is transmitted with the least significant bit first. Figure 10-1. Character Format Start bit Z I ...
Page 45
... Verify BA Password Read Password 10.3.1 Status Words Table 10-2. Asynchronous Mode Return Status Words Definitions SW1 SW2 Meaning $62 $00 The memory is unchanged (waiting for checksum) $67 $00 The length is incorrect $69 $00 The command is unauthorized $6B $00 The address is incorrect $6D $00 The instruction code is invalid $90 $00 ...
Page 46
... P2 P3 INS Data Data Data Data Write Cycle SW1 SW2 Finish Val Note ** Class (ignored by CryptoMemory) $B0 Write instruction ** Address byte A1 (ignored by 0104C - 1616C) $02 Address byte A2 = $02 $04 Four data bytes $B0 Device responds with INS code $04 Byte to be written at start address $02 $09 Byte to be written at address $03 ...
Page 47
... The host must send the checksum it has computed immediately after the write user zone command. If the checksum is valid, CryptoMemory writes the data; if the checksum is incorrect the data is discarded and the cryptographic engine is reset." ...
Page 48
Read User Zone: $B2 10.6.1 Functional Figure 10-3. Read User Zone Command Functional Description Host Read Command Address 1 Address 2 Number of bytes N The read user zone command $B2 allows reading of data from the device's currently ...
Page 49
... Data The system write command allows writing of system data to the device. Depending on the value of the P1 parameter, the host may write data in the configuration memory, program the fuses, send a checksum or set the user zone. Table 10-5. System Write Command Detail Command Write Config Zone ...
Page 50
... At this point the memory is unchanged and the device is waiting for the host to provide a valid checksum before initiating the write cycle. The host immediately sends the checksum it has computed using the system write command with P1 = $02 ...
Page 51
... Address 2 Number of bytes N The System Read command allows reading of the system data from the device. Depending on the value of the P1 parameter, the host may read the data in the configuration memory, the fuses checksum. Table 10-9. System READ Command Detail Command Read Config Zone ...
Page 52
System Read Command Structure Table 10-11. System Read CLA INS : Command ** $B6 10.8.5 Read Checksum The checksum consists of two bytes, and the read checksum command must be sent with parameter Table 10-12. System ...
Page 53
Verify CRYPTO: $B8 10.9.1 Functional Figure 10-6. Verify Crypto Command Functional Description Host Command Key Index random bytes CH1 CH2 CH3 CH4 8 challenge bytes CH5 CH6 CH7 CH8 When ...
Page 54
Table 10-13. Verify Crypto Verify Crypto CLA INS : Command P1 ** $B8 000e 00nn The device increments the associated attempts counter each time prior to verifying the challenge, to prevent attacks. If the authentication succeeds, the device memorizes this ...
Page 55
Verify Password: $BA 10.10.1 Functional Figure 10-7. Verify Password Command Functional Description Host Command Password Index PW1 3 password bytes PW2 PW3 Read password indices: $10 to $17 for passwords and 7. Write password indices: $00 ...
Page 56
... Initialization Example The first step in initializing CryptoMemory is to determine what data stored in the device and what the security settings need protect this data. Once defined, determine the proper settings for CryptoMemory registers and select values for passwords. To initialize the CryptoMemory device, the following sequence is recommended to take place in a secure location to protect sensitive data and passwords that may be loaded into the device ...
Page 57
... The following shows the TPDU commands sent to the CryptoMemory device for the purpose of initializing the device. The flow is consistent with the steps described above; comments have been added as indicated with an asterisk (*). *Atmel AT88SC0104CA Initialization Example *WRITE DATA TO USER ZONES *Set User Zone 0 ...
Page 58
Response ...
Page 59
Absolute Maximum Ratings* Operating temperature .................... −40°C to +85°C Storage temperature ................... −65° 150°C Voltage on any pin with respect to ground ............... − 0 Maximum operating voltage ............................. 6.0V DC output current ......................................... 5.0mA ...
Page 60
Table 12-2. AC Characteristics Symbol Parameter f Async Clock Frequency CLK f Synch Clock Frequency CLK Clock Duty cycle t Rise Time - SDA/IO, RST R t Fall Time - SDA/IO, RST F t Rise Time – SCL/CLK R t ...
Page 61
Figure 12-2. Write Cycle Timing SCL: Serial Clock, SDA: Serial Data I/O SCL SDA ACK 8th BIT WORDn Note: The write cycle time t is the time from a valid stop condition of a write sequence to the end of ...
Page 62
... Tamper Detection CryptoMemory contains tamper detection sensors to detect operation outside of specified limits. These sensors monitor the internal supply voltage and clock frequency. An additional sensor detects high intensity light attacks. The die is disabled and will not function when tampering is detected. ...
Page 63
Ordering Information Atmel Ordering Code AT88SCxxxxCA-MJ AT88SCxxxxCA-MP AT88SCxxxxCA-MJTG AT88SCxxxxCA-MPTG AT88SCxxxxCA-PU AT88SCxxxxCA-SH AT88SCxxxxCA-TH AT88SCxxxxCA-Y6H-T AT88SCxxxxCA-WI Note: Ordering Codes are valid for all devices covered by this datasheet. (See P.1 for a complete list) (1) (2) Package Type M2 – J ...
Page 64
... The host must send the checksum it has computed immediately after the write user zone command. If the checksum is valid, CryptoMemory writes the data; if the checksum is incorrect the data is discarded and the cryptographic engine is reset. ...
Page 65
... Comments Update template Add ordering information Table 8-1, Atmel CryptoMemory Synchronous Command Set Correct value in “Verify Password, Addr 1, from $0X to $1X Convert to MS Word Update document Initial document release Atmel AT88SC0104CA/0204CA/0404CA/0808CA [Datasheet] 65 8664E−CRYPTO−12/11 ...
Page 66
Atmel Corporation Atmel Asia Limited 2325 Orchard Parkway Unit 01-5 & 16, 19F San Jose, CA 95131 BEA Tower, Millennium City 5 USA 418 Kwun Tong Road Tel: (+1)(408) 441-0311 Kwun Tong, Kowloon Fax: (+1)(408) 487-2600 HONG KONG www.atmel.com Tel: ...