Atmel 8760 CryptoAuth ATAES132 Datasheet

ATAES132
32K AES Serial EEPROM Specification
NOT RECOMMENDED
FOR NEW DESIGNS
Replaced by
ATAES132A
DATASHEET
Features
 32Kb Standard Serial EEPROM User Memory
o Compatible with the Atmel® AT24C32D and the Atmel AT2530B
o 16 User Zones of 2Kb Each
 High-security features
o AES Algorithm with 128-bit Keys
o AES-CCM for Authentication
o Message Authentication Code for Cryptographic Operations
o Secure Storage for Sixteen 128 bit Keys
o Encrypted User Memory Read and Write
o FIPS Random Number Generator
o 16 High-Endurance Monotonic EEPROM Counters
 Flexible User Configured Security
o User Zone Access Rights Independently Configured
o Authentication Prior to Zone Access
 Read/Write, Encrypted, or Read-only User Zone Options
 High-speed Serial Interface Options
o 10MHz SPI (Mode 0 and 3)
o 1MHz I2C
 2.5V to 5.5V Supply, <250nA Sleep
 Serial EEPROM Compatible Pinout Packages: SOIC, SOP, or UDFN
 Operating Temperature Range: -40°C to +85°C
Description
The Atmel ATAES132 is a high-security, Serial Electrically-Erasable and Programmable
Read-Only Memory (EEPROM) providing both authentication and confidential nonvolatile
data storage capabilities. Access restrictions for the 16 user zones are independently
configured and any key can be used with any zone. Keys can also be used for standalone
authentication. This flexibility permits the ATAES132 to be used in a wide range of
applications.
The AES-128 cryptographic engine operates in AES-CCM mode to provide authentication,
stored data encryption/decryption, and Message Authentication Codes. Data
encryption/decryption can be performed for internally stored data or for small external data
packets, depending upon the configuration. Data encrypted by one ATAES132 device can
be decrypted by another, and vice versa.
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
The ATAES132 pinout is compatible with standard SPI and I2C Serial EEPROMs to allow
placement on existing PC boards. The SPI and I2C instruction sets are identical to Atmel
Serial EEPROMs. The extended security functions are accessed by sending command
packets to the ATAES132 using standard Write instructions and reading responses using
standard Read instructions. The ATAES132 Secure Serial EEPROM architecture allows it
to be inserted into existing applications.
The ATAES132 device incorporates multiple physical security mechanisms to prevent
release of the internally stored secrets. Secure personalization features are provided to
facilitate third-party product manufacturing.
2
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table of Contents
1.
Introduction ......................................................................................................................................................... 7
1.1
1.2
1.3
1.4
2.
Memory ........................................................................................................................................................... 11
2.1
2.2
2.3
2.4
3.
Architecture ............................................................................................................................................................... 15
Authentication ............................................................................................................................................................ 15
Encrypted Memory Read/Write ................................................................................................................................. 16
Data Encryption/Decryption ....................................................................................................................................... 16
Keys .......................................................................................................................................................................... 16
Random Numbers ..................................................................................................................................................... 17
Security Configuration Registers ...................................................................................................................... 19
4.1
4.2
4.3
4.4
5.
User Memory ............................................................................................................................................................. 11
Key Memory .............................................................................................................................................................. 11
Configuration Memory ............................................................................................................................................... 12
SRAM Memory .......................................................................................................................................................... 12
Security Features .............................................................................................................................................. 15
3.1
3.2
3.3
3.4
3.5
3.6
4.
Scope .......................................................................................................................................................................... 7
Conventions ................................................................................................................................................................ 7
Abbreviations ............................................................................................................................................................... 8
Communication ........................................................................................................................................................... 9
User Zone Configuration ........................................................................................................................................... 19
Key Configuration ...................................................................................................................................................... 20
VolatileKey Configuration .......................................................................................................................................... 22
Counter Configuration ............................................................................................................................................... 23
Standard Serial EEPROM Read and Write Commands................................................................................... 24
5.1 Read .......................................................................................................................................................................... 24
5.2 Write .......................................................................................................................................................................... 25
6.
Commands ....................................................................................................................................................... 27
6.1 Command Block and Packet ..................................................................................................................................... 27
6.2 Command Summary.................................................................................................................................................. 28
6.3 ReturnCode ............................................................................................................................................................... 30
7.
Command Definitions ....................................................................................................................................... 31
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16
7.17
Auth Command ......................................................................................................................................................... 31
AuthCheck Command ............................................................................................................................................... 34
AuthCompute Command ........................................................................................................................................... 35
BlockRead Command................................................................................................................................................ 36
Counter Command .................................................................................................................................................... 37
Crunch Command ..................................................................................................................................................... 39
DecRead Command .................................................................................................................................................. 40
Decrypt Command..................................................................................................................................................... 41
EncRead Command .................................................................................................................................................. 43
Encrypt Command ..................................................................................................................................................... 45
EncWrite Command .................................................................................................................................................. 46
INFO Command ........................................................................................................................................................ 48
KeyCreate Command ................................................................................................................................................ 49
KeyImport Command................................................................................................................................................. 51
KeyLoad Command ................................................................................................................................................... 53
KeyTransfer Command ............................................................................................................................................. 54
Legacy Command ..................................................................................................................................................... 56
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
3
7.18
7.19
7.20
7.21
7.22
7.23
7.24
8.
Lock Command ......................................................................................................................................................... 57
Nonce Command ...................................................................................................................................................... 59
NonceCompute Command ........................................................................................................................................ 61
Random Command ................................................................................................................................................... 63
Reset Command ....................................................................................................................................................... 65
Sleep Command ........................................................................................................................................................ 66
WriteCompute Command .......................................................................................................................................... 67
Pin Lists ........................................................................................................................................................... 68
8.1 Package Pin List (SOIC and UDFN) .......................................................................................................................... 68
8.2 Pin Descriptions ........................................................................................................................................................ 68
9.
Electrical Characteristics .................................................................................................................................. 69
9.1
9.2
9.3
9.4
Absolute Maximum Ratings ....................................................................................................................................... 69
Reliability ................................................................................................................................................................... 69
DC Characteristics..................................................................................................................................................... 70
AC Characteristics ..................................................................................................................................................... 71
Appendix A. Standards and Reference Documents .............................................................................................. 75
A.1 National and International Standards ........................................................................................................................ 75
A.2 References ................................................................................................................................................................ 75
Appendix B. Memory Map ..................................................................................................................................... 76
B.1 Memory Map ............................................................................................................................................................. 76
B.2 EEPROM Page Boundary ......................................................................................................................................... 77
Appendix C. User Memory Map ............................................................................................................................. 78
Appendix D. Command Memory Map .................................................................................................................... 79
D.1
D.2
D.3
D.4
Command Memory Buffer ......................................................................................................................................... 79
Response Memory Buffer .......................................................................................................................................... 80
IO Address Reset Register ........................................................................................................................................ 81
Device Status Register (STATUS)............................................................................................................................. 81
Appendix E. Configuration Memory Map ............................................................................................................... 82
E.1 Configuration Memory Map ....................................................................................................................................... 82
E.2 Configuration Register Descriptions .......................................................................................................................... 84
Appendix F. Key Memory Map .............................................................................................................................. 93
Appendix G. Understanding the STATUS Register ............................................................................................... 94
G.1 Device Status Register (STATUS) Definition ............................................................................................................. 94
G.2 STATUS Register Behavior in the I2C Interface Mode .............................................................................................. 96
G.3 STATUS Register Behavior in the SPI Interface Mode............................................................................................ 102
Appendix H. Understanding Counters ................................................................................................................. 108
H.1 Counter Registers.................................................................................................................................................... 108
H.2 Reading the Counter ............................................................................................................................................... 109
H.3 Personalizing the Counters ..................................................................................................................................... 110
Appendix I.
I.1
I.2
I.3
I.4
I.5
I.6
I.7
4
Cryptographic Computations ........................................................................................................... 111
MacCount ................................................................................................................................................................ 111
MacFlag................................................................................................................................................................... 112
MAC Generation ...................................................................................................................................................... 112
Data Encryption ....................................................................................................................................................... 113
Data Decryption ....................................................................................................................................................... 114
Auth Command MAC............................................................................................................................................... 115
AuthCheck Command – Auth MAC ......................................................................................................................... 115
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.8
I.9
I.10
I.11
I.12
I.13
I.14
I.15
I.16
I.17
I.18
I.19
I.20
I.21
I.22
I.23
I.24
I.25
I.26
I.27
I.28
I.29
I.30
I.31
I.32
I.33
AuthCheck Command – Counter MAC .................................................................................................................... 116
AuthCompute Command – Auth MAC ..................................................................................................................... 116
AuthCompute Command – Counter MAC ............................................................................................................... 117
BlockRead Command.............................................................................................................................................. 117
Counter Command MAC ......................................................................................................................................... 117
Crunch Command ................................................................................................................................................... 118
DecRead Command ................................................................................................................................................ 118
Decrypt Command MAC .......................................................................................................................................... 119
EncRead Command MAC ....................................................................................................................................... 120
EncRead Command Configuration Memory Signature MAC ................................................................................... 120
EncRead Command Key Memory Signature MAC .................................................................................................. 121
Encrypt Command MAC .......................................................................................................................................... 122
EncWrite Command MAC ....................................................................................................................................... 122
INFO command ....................................................................................................................................................... 122
KeyCreate Command MAC ..................................................................................................................................... 123
KeyImport Command — KeyCreate MAC ............................................................................................................... 123
KeyLoad Command MAC ........................................................................................................................................ 124
KeyTransfer Command ........................................................................................................................................... 124
Legacy Command ................................................................................................................................................... 124
Lock Command MAC .............................................................................................................................................. 124
Nonce Command .................................................................................................................................................... 125
NonceCompute Command ...................................................................................................................................... 125
Random Command ................................................................................................................................................. 125
Reset Command ..................................................................................................................................................... 125
Sleep Command ...................................................................................................................................................... 125
WriteCompute Command ........................................................................................................................................ 126
Appendix J.
J.1
J.2
J.3
J.4
J.5
J.6
J.7
I2C Interface .................................................................................................................................... 127
I2C Serial Interface Description................................................................................................................................ 127
Pin Descriptions ...................................................................................................................................................... 129
I2C Instruction Set.................................................................................................................................................... 130
I2C Interface Synchronization Procedure ................................................................................................................. 134
I2C Auth Signaling ................................................................................................................................................... 134
I2C Compatibility ...................................................................................................................................................... 135
Timing Diagrams ..................................................................................................................................................... 136
Appendix K. SPI Interface.................................................................................................................................... 137
K.1
K.2
K.3
K.4
SPI Serial Interface Description ............................................................................................................................... 137
SPI Communication Mode Pin Descriptions ............................................................................................................ 138
SPI Instruction Set ................................................................................................................................................... 139
Timing Diagram ....................................................................................................................................................... 143
Appendix L. Power Management ........................................................................................................................ 144
L.1 Power State Descriptions ........................................................................................................................................ 144
L.2 Power State Transitions .......................................................................................................................................... 145
L.3 Understanding the ChipState Register .................................................................................................................... 148
Appendix M. Block Checksum.............................................................................................................................. 151
M.1 Checksum Function ................................................................................................................................................. 152
M.2 Checksum Examples ............................................................................................................................................... 152
Appendix N. ATAES132 Command Response Time........................................................................................... 153
Appendix O. Default Configuration ...................................................................................................................... 157
O.1 Configuration Memory Contents .............................................................................................................................. 158
O.2 Key Memory Contents ............................................................................................................................................. 160
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
5
Appendix P. Serial Memory Backward Compatibility .......................................................................................... 161
P.1 I2C Serial EEPROM Compatibility ........................................................................................................................... 161
P.2 SPI Serial EEPROM Compatibility........................................................................................................................... 162
Appendix Q. Ordering Information ....................................................................................................................... 166
Q.1 Atmel Ordering Codes ............................................................................................................................................. 166
Q.2 Mechanical Information ........................................................................................................................................... 167
Appendix R. Errata ............................................................................................................................................... 169
R.1 KeyCreate Command Executed with Usage Counter .............................................................................................. 169
Appendix S. Revision History .............................................................................................................................. 170
6
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
1.
Introduction
ATAES132 is the first device in a family of high-security Serial EEPROMs using the Advanced Encryption
Standard (AES) cryptographic algorithm. ATAES132 provides 32Kb of EEPROM user data memory, sixteen
128-bit Key Registers, sixteen high-endurance monotonic EEPROM Counters, factory unique Die Identification
Numbers, and a Configuration Memory. The Configuration Memory registers control access to the User Memory,
as well as the restrictions on Key and Counter functionality.
The User Memory can be accessed directly with standard SPI or I2C commands if a user zone is configured for
open or read-only access. If the user zone security is activated, then the extended ATAES132 command set is
used to access the contents of a user zone. The extended ATAES132 commands are executed by writing the
command packet to the virtual memory using standard SPI or I2C Write commands. The response packet is
retrieved by reading it from the virtual memory using standard SPI or I2C Read commands.
The ATAES132 packages are compatible with standard SPI and I2C EEPROM footprints. This allows the
ATAES132 to be inserted into many existing Serial EEPROM applications.
1.1
Scope
This Specification provides all specifications for configuration and operation of the ATAES132.
1.2
Conventions
Table 1-1.
Nomenclatures
Nomenclature
Definition
Notes
Host
The SPI or I2C Master
Device
The Host initiates all communications with slave devices on the
serial interface bus.
Client
The ATAES132 Secure
Serial EEPROM Defined by
this Specification
Operates as a SPI or I2C slave.
nnb
Binary Number
Denotes a binary number “nn” (most-significant bit on the left).
0xZZZZ
Hexadecimal Number
Denotes hex number ZZZZ (most-significant bit on the left).
ZZZZh
Hexadecimal Number
Denotes hex number ZZZZ (most-significant bit on the left).
RegName.FieldName
Field Name
Reference to bit field FieldName in register RegName.
RegArray[xx].FieldName
Field Name
Reference to bit field FieldName in register RegArray[xx],
where xx is the array index.
UZ
User Zone
Reference to a User Zone number.
CntID
Counter ID
Reference to a Counter number.
KeyID
Key ID
Reference to a Key Register number.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7
1.2.1
Byte Order
The ATAES132 device uses a big-endian coding scheme and utilizes the same bit and byte orders as a standard
Serial EEPROM. The byte order is identical to the NIST AES specifications (see Appendix A, Standards and
Reference Documents):
1.3

The most significant bit of each byte is transmitted first on the bus.

The most significant byte of multi-byte integers is transmitted prior to the least significant byte. This applies
to the CRC, address, and other 16-bit command parameters.

All arrays are transmitted in index order, with byte index 0 first.

Configuration fields that are more than eight bits appear on the bus during a Read or Write in the index
order in which they appear in this specification. The top byte in the input parameters table is byte[0] and
appears first on the bus. These fields are arrays of bytes, not multi-byte integers.
Abbreviations
Table 1-2.
Abbreviations
Abbreviation
Phrase
Definition
AES
Advanced Encryption Standard
Block cipher algorithm standardized by NIST with 128-bit block size.
AES-CCM
AES Cipher Chaining Message
AES mode using the Counter with Cipher Block Chaining-Message
Authentication Code Algorithm.
AES-ECB
AES Electronic Code Book
AES mode using the Electronic Code Book Algorithm.
Ciphertext
Data communicated after it has been encrypted.
Cleartext
Data communicated in a nonencrypted state.
MAC
Message Authentication Code
A 128-bit value used to validate the authenticity of ciphertext.
Nonce
Number Used Once
A value used in cryptographic operations.
Data which is either the input to an encryption operation or the output of
a decryption operation.
Plaintext
8
RFU
Reserved For Future Use
Any feature, memory location, or bit that is held as reserved for future
use by Atmel.
RNG
Random Number Generator
Produces high-quality pseudo-random numbers.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
1.4
Communication
The ATAES132 is designed to interface directly with SPI and I2C microcontrollers. The Read and Write
commands are similar to the standard Atmel Serial EEPROM commands for ease of use. Since the ATAES132
pinout is also similar to standard Serial EEPROMs, it is possible to use the ATAES132 on existing PC boards in
some cases.
When Read and/or Write access to a user zone is unrestricted, the memory is accessed using the standard I2C or
SPI Read and Write commands. Similarly, if Authentication Only is required and the authentication requirement
has been satisfied, then the memory is accessed directly by the Host using standard I2C or SPI Read and Write
commands.
If the Host begins a Read operation in an open user zone but continues reading until a prohibited section of
memory is reached, the ATAES132 will continue to increment the address and will return 0xFF for each byte in
the restricted user zone. If the Host begins a Read operation in an open user zone but continues reading beyond
the end of the User Memory, the ATAES132 will return 0xFF for each byte requested, but will stop incrementing
the address.
All other operations, including execution of the extended commands, are performed by using the standard I2C or
SPI Read and Write commands to exchange data packets via the command and response memory buffers. The
Device Status Register reports the state of the device and is used for handshaking between the Host and the
ATAES132.
1.4.1
Sending ATAES132 Commands
The ATAES132 commands described in Section 7, Command Definitions, are executed by writing the command
block to virtual memory (Appendix D, Command Memory Map) using standard SPI or I2C Write commands. The
response block is retrieved by reading it from virtual memory using standard SPI or I2C Read commands.
1.4.1.1 Command Memory Buffer
The Command Memory Buffer is a write-only memory buffer that is used by writing a command block to the buffer
at the base address of 0xFE00. After the Host completes its Write operation to the buffer, the ATAES132 verifies
the integrity of the block by checking the 16-bit checksum, and then executes the requested operation. See
Section 6.1, Command Block and Packet for a description of the command packet. See Appendix D for additional
Command Memory Buffer information.
Table 1-3.
Command Memory Buffer Map
Base
Address
Base
+1
Base
+2
Base
+3
......
......
......
......
Base
+ N-2
Base
+ N-1
Count
Opcode
Mode
Param1
Param1
Param2
.......
DataX
CRC1
CRC2
1.4.1.2 Response Memory Buffer
The Response Memory Buffer is a read-only memory buffer that is used by reading a response from the buffer at
the base address of 0xFE00. The base address of the Response Memory Buffer contains the first byte of the
response packet after an ATAES132 command is processed. See Section 6.1 for a description of the response
packet. See Appendix D for additional Response Memory Buffer information.
Table 1-4.
Response Memory Buffer Map Following a Crypto Command
Base
Address
Base
+1
Base
+2
Base
+3
......
......
......
......
Base
+ N-2
Base
+ N-1
Count
ReturnCode
Data1
Data2
Data3
.......
.......
DataX
CRC1
CRC2
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
9
The Response Memory Buffer is also used to report errors which occur during execution of standard I2C or SPI
Write commands. When the I2C or SPI command execution is complete (as indicated by the STATUS Register),
the Response Memory Buffer contains a block containing an error code (ReturnCode) if an error occurred;
otherwise, it contains a block with ReturnCode = 0x00. See Section 6.3, ReturnCode, for the error descriptions.
1.4.2 Device Status Register (STATUS)
The Device Status Register is used for handshaking between the Host microcontroller and the ATAES132. The
Host microcontroller is expected to read the STATUS Register before sending a command or reading a response.
The read-only Device Status Register at address 0xFFF0 reports the current status of the ATAES132 device. This
register can be read with the standard I2C or SPI Read Memory commands. The SPI Read Status Register
command can also be used to read the STATUS Register, as described in Appendix K.3.5, Read Status Register
Command (RDSR).
Reading the STATUS Register does not increment the Memory Read Address, and so a Host microcontroller can
easily monitor the ATAES132 device status by repeatedly reading the STATUS Register. See Appendix G,
Understanding the STATUS Register for a detailed description of the STATUS Register bits and Status Bit
behavior.
Table 1-5.
Device Status Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EERR
RRDY
Reserved
CRCE
Reserved
WAKEb
WEN
WIP
The Device Status Register can always be read when the ATAES132 is configured for SPI interface mode, even if
the ATAES132 is processing a command or writing the EEPROM. When the ATAES132 is configured for I2C
interface mode, the Host can read the STATUS Register only when the I2C Device Address is ACKed.
If the ATAES132 is in the Sleep or Standby power state, reading the STATUS Register forces the ATAES132 to
wake- up; the STATUS Register is 0xFF until the wake-up process is complete.
10
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
2.
Memory
The ATAES132 EEPROM is a nonvolatile memory which is divided into several sections with each section having
a different function. The User Memory section contains 32Kb for data storage. The Configuration Memory section
contains the configuration information, security control registers, and counters. The Key Memory stores the 16
secret keys used to perform cryptographic functions. The EEPROM page length is 32 bytes. The ATAES132
SRAM buffers and registers are located near the top of the memory address space and are accessed using
standard EEPROM Read/Write commands.
The complete memory map is shown in Appendix B, Memory Map. Each portion of the memory is described
briefly in the following sections.
2.1
User Memory
The 32Kb User Memory is organized as 16 user zones of 2Kb each. Each user zone has an associated user zone
configuration register in the Configuration Memory. A user zone can only be accessed when the security
requirements specified in the associated user zone configuration register have been satisfied. All bytes within a
user zone have the same access restrictions. Since the user zone access restrictions are independently
configured, the security requirements for each user zone can be unique. Any key can be used with any user zone.
Each user zone can be configured to require authentication, Read Encryption, Write Encryption, a combination of
these, or no security. The User Memory can be accessed directly with standard SPI or I2C commands if a user
zone is configured for open or read-only access. If the user zone security is activated, then the extended
ATAES132 command set is used to access the contents of a user zone.
2.1.1
Automatic Post Write Data Verification
The Write and EncWrite commands include an automatic data verification function. After the EEPROM Write is
complete, the Data Verification Logic reads the new EEPROM contents and compares it to the data received from
the Host. If the data does not match, the ATAES132 sets the EERR bit in the STATUS Register and returns a
DataMatch error code. If the data is correct, then the ReturnCode indicates success.
2.2
Key Memory
The Key Memory securely stores 16 keys which are each 128 bits long. Each key has an associated Key
Configuration Register in the Configuration Memory. Keys can only be used for the cryptographic functions
enabled in the Key Configuration Register. Individual keys can be configured to require a successful
authentication prior to use. Key values can never be read from the ATAES132 under any circumstances. See
Appendix F, Key Memory Map.
Key Memory can be written prior to locking with either encrypted or cleartext data. Encrypted writes are
performed using the EncWrite command (see Section 7.11, EncWrite Command). Cleartext writes are performed
using the standard SPI or I2C Write commands (see Section 5.2, Write). After locking, the Key Registers are
managed with the KeyCreate, KeyImport, KeyLoad, and KeyTransfer commands. The KeyTransfer command
allows the User Memory to be used as the Extended Key Memory; eight keys can be stored in each user zone
(see Section 7.16, KeyTransfer Command).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
11
2.3
Configuration Memory
The Configuration Memory contains all of the registers which control user zone access requirements, the Key
usage restrictions, and the Counter usage restrictions. Device-level Configuration Option Registers are also
located in Configuration Memory.
The ATAES132 Configuration Memory includes a register programmed with unique, read-only die identification
data at the factory. The Configuration Memory also contains several registers for customer information. The
Configuration Memory registers can always be read using the BlockRead command (see Section 7.4, BlockRead
Command). The Lock command is used to permanently lock the contents of the Configuration Memory after
personalization (see Section 7.18, Lock Command).
See Table 2-1 for a summary of the Configuration Memory registers sorted by register name. See Appendix E for
the Configuration Memory Map.
2.3.1
Counters
The ATAES132 includes 16 high-endurance EEPROM Counters. Each Counter has or can:

An associated Counter Configuration Register in the Configuration Memory,

Only be incremented,

Never be decremented or reset,

Be used to track system usage or to store small values.
A key can be configured to prevent exhaustive attacks by limiting key usage with a Counter.
Each counter can increment up to a value of 2,097,134 using the Count Command; after which they can be no
longer changed. Counters attached to keys are incremented each time the key is used; when the Usage Counter
reaches its limit, the key is disabled. The Counters include a power interruption protection feature to prevent
corruption of the Count value if power is removed during the increment operation.
On shipment from Atmel, the EEPROM locations are initialized to their lowest value. The initial value of each
Counter may be written to a different value prior to personalization and prior to locking the configuration. See
Appendix H, Understanding Counters.
2.4
SRAM Memory
The ATAES132 SRAM is used to store volatile data and status information. The ATAES132 SRAM buffers and
registers are mapped into the top of the memory address space and are accessed using the standard EEPROM
Read/Write commands.

2.4.1
The Command Memory Buffer is used to send extended commands to the device.

The Response Memory Buffer is used to read responses to the extended commands from the device.

An IO Address Reset Register is used to reset the buffer address pointers.

The STATUS Register reports the state of the device.

The VolatileKey register and the Authentication Status Register are stored in the SRAM and are managed
by the internal logic. These registers cannot be directly written or read by the user.
Nonce
The SRAM is used to store the Nonce and Random Number Generator (RNG) Seed. The RNG Seed is
generated automatically by ATAES132, as described in Section 3.6, Random Numbers. The Nonce is generated
using the Nonce command or the NonceCompute command. The Nonce and RNG Seed Register are erased
when the device loses power, enters the Sleep state, or is reset.
12
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
2.4.2
VolatileKey
The SRAM contains a session key register named VolatileKey. This key location can be written with the
KeyCreate, KeyImport, KeyLoad, or KeyTransfer commands. The VolatileKey register is erased when the device
loses power, enters the Sleep state, or is reset. Restrictions on VolatileKey are established when the register is
created/loaded and persist until the power is lost or the key is reloaded.
VolatileKey can never be used to read or write the User Memory or to increment the Counters. VolatileKey can
only be used to perform authentication operations and to encrypt or decrypt external data. See Section 4.3,
VolatileKey Configuration for the VolatileKey usage restrictions.
2.4.3
Command Memory Buffer
The Host executes extended ATAES132 commands by writing a command block to the Command Memory Buffer
using a standard SPI or I2C Write command. After the Host completes its Write operation to the SRAM buffer,
ATAES132 verifies the integrity of the block by checking the 16-bit Checksum and then executes the requested
operation.
2.4.4
Response Memory Buffer
The Host receives responses to the extended ATAES132 commands by reading a response block from the
Response Memory Buffer using a standard SPI or I2C Read command. The base address of the Response
Memory Buffer contains the first byte of the response packet after an ATAES132 command is processed.
2.4.5
IO Address Reset Register
Writing the IO Address Reset Register causes the address pointers in the Command Memory Buffer and the
Response Memory Buffer to be reset to the base address of the buffers. Writing the IO Address Reset Register
does not alter the contents of the Response Memory Buffer or the value of the STATUS Register.
2.4.6
Device Status Register (STATUS)
The Device Status Register is used for handshaking between the Host microcontroller and ATAES132. The Host
is expected to read the STATUS Register before sending a command or reading a response. Reading the
STATUS Register does not alter the contents of the Command Memory Buffer, the Response Memory Buffer, or
the value of the STATUS Register. See Appendix G, Understanding the STATUS Register for the definition and
behavior of the STATUS Register.
2.4.7
Authentication Status Register
The ATAES132 Authentication Status Register stores the result of most recent authentication attempt. The
Authentication Status Register contains the Authentication KeyID, the AuthComplete status flag, and the
authentication usage restriction bits. Prior to executing the Auth command, the AuthComplete status flag is set to
NoAuth. After successful Inbound Only or Mutual Authentication, the AuthComplete status flag is set to YesAuth.
Table 2-1.
Summary of the Configuration Memory Registers Sorted by Register Name(1)
Name
Description
Write
Read
Bytes
Algorithm
Algorithm ID code (0x0000).
Never
Always
2
ChipConfig
Device-level cryptographic and power-up configuration options.
If LockConfig =
Unlocked
Always
1
16 high-endurance counters, each capable of counting to 2M.
If LockConfig =
Unlocked
Always
128
Configuration information for each counter.
If LockConfig =
Unlocked
Always
32
Counters
CounterConfig
See Appendix H, Understanding Counters.
See Section 4.4, Counter Configuration.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
13
Name
Description
Write
Read
Bytes
DeviceNum
Atmel device number code.
Never
Always
1
EEPageSize
Length in bytes of physical EEPROM page (32, 0x20).
Never
Always
1
EncReadSize
Maximum data length in bytes for EncRead (32, 0x20).
Never
Always
1
EncWriteSize
Maximum data length in bytes for EncWrite (32, 0x20).
Never
Always
1
FreeSpace
Free memory for customer data storage.
If LockConfig =
Unlocked
Always
96
JEDEC
Atmel JEDEC manufacturer code (0x001F).
Never
Always
2
If LockConfig =
Unlocked
Always
64
Configuration information for each key. See Section 4.2, Key
KeyConfig
Configuration.
LockConfig
Controls Configuration Memory Write access, except SmallZone.
Default is the Unlocked state. (2)
Via Lock
Command
Only
Always
1
LockKeys
Controls Key Memory Write access.
Default is the Unlocked state. (2)
Via Lock
Command
Only
Always
1
LockSmall
Controls SmallZone Register Write access.
Default is the Unlocked state. (2)
Via Lock
Command
Only
Always
1
LotHistory
Atmel proprietary manufacturing information.
Never
Always
8
ManufacturingID
Two byte manufacturing ID code.
Never
Always
2
PermConfig
Atmel factory device configuration options.
Never
Always
1
SerialNum
Guaranteed unique die serial number. SerialNum is optionally
included in cryptographic calculations. See Appendix E.2.1, SerialNum
Never
Always
8
Register.
SmallZone
32 byte value. The first four bytes are optionally included in
cryptographic calculations. See Appendix E.2.23, SmallZone Register.
If LockSmall =
Unlocked
Always
32
I2C Addr
Selects the serial interface mode and stores the I2C Device Address.
If LockConfig =
Unlocked
Always
1
If LockConfig =
Unlocked
Always
64
ZoneConfig
Access and usage permissions for each user zone. See Section 4.1,
User Zone Configuration.
Notes: 1.
Changes to most of the configuration registers take effect immediately which allows the
functionality to be tested during the personalization process. Changes to the I2C Addr register take
effect at the next Reset, Power Up, or Wake-Up from the Sleep state.
2.
The LockConfig, LockKeys, and LockSmall bytes can only be changed with the Lock command
(see Section 7.18.1, User Zone ReadOnly Activation). Warning: ATAES132 must always be locked
by the customer prior to shipment to the end user to protect the customer secrets.
14
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
3.
Security Features
All ATAES132 security features are optional. Each feature is enabled or disabled by programming configuration
bits in the EEPROM Configuration Memory. Each user zone, Key, and Counter is separately and independently
configured.
This section describes the ATAES132 security features and cryptographic capabilities. The functionality
associated with each portion of the memory is described in Section 2, Memory.
3.1
Architecture
ATAES132 contains all circuitry for performing authentication, encryption, and decryption using keys stored
securely in the internal EEPROM. Since the secrets are stored securely in the ATAES132, they do not have to be
exchanged prior to executing cryptographic operations.
ATAES132 has fixed cryptographic functionality; it is not a microcontroller and cannot accept customer firmware.
ATAES132 contains a hardware AES cryptographic engine and has a fixed command set. Although the
functionality is fixed, it is also flexible because each feature is enabled or disabled by the customer by
programming registers in the EEPROM Configuration Memory. After personalization is complete, fuses lock the
configuration so that it cannot be changed.
3.1.1
AES
The ATAES132 cryptographic functions are implemented with a hardware cryptographic engine using AES in
CCM mode with a 128-bit key. AES-CCM mode provides both confidentiality and integrity checking with a single
key. The integrity MAC includes both the encrypted data and additional authenticate-only data bytes, as
described in each command definition. Each MAC is unique due to inclusion of a Nonce and an incrementing
MacCount Register in the MAC calculation.
See Appendix I, Cryptographic Computations for information about how the AES computations are performed.
Hyperlinks to the AES standard are provided in Appendix A, Standards and Reference Documents.
3.1.2
Hardware Security Features
The ATAES132 device contains physical security features to prevent an attacker from determining the internal
secrets. ATAES132 includes tamper detectors for voltage, temperature, frequency, and light, as well as an active
metal shield over the circuitry, internal memory encryption, and other various features. The ATAES132 physical
design and cryptographic protocol are designed to prevent or significantly complicate most algorithmic, timing,
and side-channel attacks.
3.2
Authentication
The authentication commands utilize AES-CCM to generate or validate a MAC value computed using an
internally stored key. The command set supports both one-way and mutual authentication. One ATAES132
device can generate packets for authentication of a second ATAES132 device containing the same key. The
internal authentication status register remembers only the most recent authentication attempt. A user zone can be
configured to require prior authentication of a designated key before access to the user zone is permitted.
3.2.1
Key Authentication
Individual keys can be configured to require a successful authentication prior to use. This requirement can be
used to prevent some kinds of exhaustive attacks on the keys. The authentication requirement can be chained to
require authentication of several keys prior to allowing a particular operation. The internal Authentication Status
Registers remember only the most recent authentication attempt.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
15
3.3
Encrypted Memory Read/Write
A user zone can be configured to require AES-CCM encryption for EEPROM Read or Write operations. If
encryption is required for Write access, then the MAC is validated before the received (encrypted) data are written
to the EEPROM. If encryption is required for Read access, then ATAES132 encrypts data when they are read
from the internal EEPROM, and generates an associated integrity MAC.
3.4
Data Encryption/Decryption
A key can be configured to allow encryption/decryption of small packets of data using AES-CCM with an internally
stored key. The Encrypt command encrypts 16 or 32 bytes of plaintext data provided by the Host; the encrypted
data and MAC are returned to the Host. The Decrypt command decrypts 16 or 32 bytes of encrypted data after
verifying the MAC; the data is returned to the Host only if the MAC is valid. When these commands are used,
none of the data is stored in the internal EEPROM.
3.4.1
AES-ECB Encryption/Decryption
A key can be configured to allow AES-ECB mode operations using the Legacy command. A single AES-ECB
operation is performed using an internally stored key and the 16-byte input packet received with the AES-ECB
command. The 16-byte result is returned to the Host. No input or output formatting is performed by this command,
and no data is stored in the internal EEPROM.
3.5
Keys
ATAES132 securely stores sixteen 128-bit keys in the EEPROM. Keys can only be used for the cryptographic
functions enabled in the ZoneConfig, CounterConfig, or KeyConfig Register bits in the Configuration Memory. Key
values can never be read from ATAES132 under any circumstances. Any key can be used with any user zone.
A seventeenth key register in the internal SRAM can be used for session keys.
See Section 7.11, Encrypted Key Writes, for the EncWrite command. See Section 7.18, User Zone ReadOnly
Activation, for the Lock command.
3.5.1
Key Management
The key registers can be written with plaintext data or with encrypted data before the Key Memory is locked. After
the Key Memory is locked, a key register can only be updated only if the corresponding KeyConfig Register
allows updates.
Several key management commands are available for updating or generating the keys:
1. An encrypted key provided by the Host can be written to an internal key register after validating the MAC.
The KeyImport command and KeyLoad command perform this function.
2. The internal random number generator can be used to create a key for use as a session key or for storage
in an internal Key Register. The new key can also be encrypted and returned to the Host for use as the
encrypted key input to another ATAES132 device. The KeyCreate command performs this function.
3. Keys stored in User Memory can be transferred to an internal key register or used as a session key. A user
zone configured as extended Key Memory can be used to store eight keys. The KeyTransfer command
performs this function.
16
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
3.5.2
Limited Use Keys
To prevent exhaustive attacks on the keys, ATAES132 can be configured to limit key usage with a Counter. If a
key is configured with a Usage Counter, then the following steps are performed for any command using that key:
1. Read the Counter from memory to check if the count has reached the maximum count value.
2. If the maximum count has been reached, then the command is not executed and an error code is returned.
3. If the maximum count has not been reached, then the Counter is incremented and the command is
executed.
By default, the Counters are configured to allow two million counts, allowing two million operations using a key
with the usage limits enabled. Atmel recommends that the customer configure Key Usage Counters to a smaller
number at personalization; the appropriate key usage limit is dependent on the application. See Appendix H,
Understanding Counters for additional information.
3.5.3
Secure Personalization
The ATAES132 is designed to allow personalization of keys using encryption so that the secret key values cannot
be determined by a third party. AES encryption of the keys prevents them from being determined by observation
of data communicated to or from ATAES132.
A Transport Key is programmed into the KeyID 00 Register by Atmel during the device manufacturing process.
This Transport Key is securely exchanged between the customer and Atmel. During personalization, the secret
keys are encrypted using the Transport Key before being written to ATAES132.
Atmel also offers a secure personalization service at additional cost which uses a Hardware Security Module
(HSM) to store the customer secrets.
3.5.3.1 Key Diversification
Atmel recommends that each unit should contain one or more unique keys to minimize the potential impact of
cloning. The keys stored in the ATAES132 should be a cryptographic combination of a root secret not stored in
the device along with the unique ATAES132 SerialNum Register value. The Host must have a secure place to
store the root secret to protect the integrity of the diversified keys.
It may also be beneficial for the ATAES132 devices to contain secrets for validating the authenticity of the Host.
These secrets may need to be the same on all ATAES132 devices for a particular application to permit any Client
to validate any Host. See Section 7.13, KeyCreate Command, Mode bit 2.
3.6
Random Numbers
ATAES132 includes a high-quality Random Number Generator (RNG) for Nonce generation, child key creation,
and general random number generation. The ATAES132 commands can generate random numbers for internal
or external use. Sixteen byte random numbers for external use are generated using the internal RNG and the
AES engine, as described in NIST SP800-90.
The RNG can be used to generate the Nonce for cryptographic operations. A mechanism is also provided to
synchronize the Nonces in two ATAES132 devices using random numbers generated by both devices. A key can
be configured to require that cryptographic operations using the key use a Nonce generated with the internal
RNG.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
17
3.6.1
Random Number Generation
The RNG architecture includes both a hardware random number generator and a stored random seed. On
power-up, the stored seed is read from the EEPROM, cryptographically combined with the hardware random
number generator output, and then stored in SRAM. Whenever a random number is required, this SRAM Seed is
cryptographically combined with the hardware random number generator output and the optional input seed to
create both a new SRAM Seed and the random number.
For the highest security, the EEPROM Seed should be updated every power cycle in which the RNG is used;
however, the EEPROM Seed Register has a maximum life expectancy of 100,000 writes per unit. The Host
system is expected to manage the EEPROM Seed by using the command mode option to suppress automatic
EEPROM Seed updates.
18
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
4.
Security Configuration Registers
4.1
User Zone Configuration
Access permissions to each user zone are controlled by the ZoneConfig Registers in the Configuration Memory.
There is one ZoneConfig Register for each User Memory zone.
Table 4-1.
Definition of the ZoneConfig Register Bits(1)(2)
ZoneConfig Field
Byte
Bit
Description
AuthRead
0
0
1b = Authentication is required to read data.
0b = Authentication is not required to read data.
AuthWrite
0
1
1b = Authentication is required to write data.
0b = Authentication is not required to write data.
EncRead
0
2
1b = Encryption is required to read data.
0b = Encryption is not required to read data.
EncWrite
0
3
1b = Encryption is required to write data.
0b = Encryption is not required to write data.
00b = Zone is permanently read/write.
01b = Zone is permanently read-only.
10b = The ReadOnly byte determines if writes are permitted.
11b = The ReadOnly byte determines if writes are permitted, and the Lock command
must include an authenticating MAC calculated using the KeyID stored in
ZoneConfig[UZ].WriteID .
WriteMode
0
4 to 5
UseSerial
0
6
UseSerial = 1b and EncWrite = 1b, then SerialNum must be included in
EncWrite operations.
EncWrite = 0b, then this bit is ignored.
UseSmall
0
7
UseSmall = 1b and EncWrite = 1b, the first four bytes of SmallZone must be included
in EncWrite operations.
EncWrite = 0b, this bit is ignored.
ReadID
1
0 to 3
KeyID which is used to encrypt data read from this zone. The same key is used to
generate the MAC.
AuthID
1
4 to 7
KeyID which is used for inbound authentication before access is permitted.
Reserved
2
0 to 3
Reserved for future use. All bits must be 0b.
WriteID
2
4 to7
KeyID that is used to decrypt data written to this zone. The same key is used to verify
the MAC.
0 to 7
The contents of this byte are ignored unless WriteMode contains 10b or 11b.
If 0x55, then the user zone is Read/Write.
If any other value, then the user zone is read-only.
This byte can be updated after the Configuration Memory is locked using the Lock
command (See Section 7.18, Lock Command).
ReadOnly
Note:
1.
3
Most changes to the ZoneConfig Registers take effect immediately. Changes to the AuthRead and
EncRead bits do not affect the SPI or I2C Read command until the next reset or power-up.
Warning: ATAES132 must always be locked by the customer prior to shipment to the end user to
protect the customer secrets. See Section 7.18.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
19
4.2
Key Configuration
Restrictions on key usage are controlled by the KeyConfig Registers in the Configuration Memory. There is one
KeyConfig Register for each key.
Table 4-2.
Definition of the KeyConfig Register Bits(1)(2)(4)
KeyConfig Field
ExternalCrypto
20
Byte
Bit
Description
0
0
1b = The key can be used with the Encrypt and Decrypt commands.(3)
0b = The Encrypt and Decrypt commands are prohibited.
InboundAuth
0
1
1b = The key can only be used by the Auth command for Inbound Only or Mutual
Authentication. The key cannot be used by any other command, but KeyID can be
the target of a key management command.
0b = The key can be used for any purpose not prohibited by another KeyConfig bit,
including Outbound Only authentication.
RandomNonce
0
2
1b = Operations using this key requires a random Nonce (see Section 7.19).
0b = The Nonce is not required to be random.
LegacyOK
0
3
1b = The key can be used with the Legacy command.
0b = The key cannot be used with the Legacy command.
AuthKey
0
4
1b = The key requires prior authentication using the KeyID stored in LinkPointer.
0b = Prior authentication is not required.
Child
0
5
1b = The key is permitted to be the target of a KeyCreate or KeyLoad command.
0b = This use is prohibited.
Parent
0
6
1b = This key can be used as the parent when writing VolatileKey via KeyCreate,
KeyImport, or KeyLoad (see Section 4.3).
0b = This use is prohibited.
ChangeKeys
0
7
1b = Key updates are permitted after locking. The new key is written using the
EncWrite command with a MAC generated with the current value of key.
(see Section 7.11).
0b = Key updates with EncWrite command are prohibited.
CounterLimit
1
0
1b = Usage count limits are enabled for this key (see CounterNum).
0b = No usage limits.
ChildMac
1
1
1b = An input MAC is required to modify this key using the KeyCreate command.
0b = The KeyCreate command does not require an input MAC (it will be ignored, if
provided).
AuthOut
1
2
1b = I2C Auth signaling is enabled for this key (see Appendix J.5).
0b = I2C Auth signaling is disabled for this key.
AuthOutHold
1
3
1b = The I2C AuthO output state is unchanged when an authentication reset is
executed using this key.
0b = Then the I2C AuthO output is reset when an authentication reset is executed
using this key (see Appendix J.5).
ImportOK
1
4
1b = The key is permitted to be the target of a KeyImport command.
0b = KeyImport command is prohibited.
ChildAuth
1
5
1b = The KeyCreate command requires prior authentication using the KeyID stored in
LinkPointer.
0b = Prior authentication is not required.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
KeyConfig Field
Byte
Bit
TransferOK
1
6
1b = The key is permitted to be the target of a KeyTransfer command (see
Section 7.16).
0b = KeyTransfer command is prohibited.
AuthCompute
1
7
1b = The key can be used with the AuthCompute command.
0b = The key cannot be used with the AuthCompute command.
LinkPointer
2
0 to 3
For child keys; stores the ParentKeyID.
For all other keys; the KeyID of the authorizing key (see AuthKey).
CounterNum
2
4 to 7
Stores the CntID of the Monotonic Counter attached to this key for usage limits or for
MAC calculation. MAC calculations will include the Counter if Command Mode bit 5 is
1b even if key usage limits are disabled.
Reserved
3
0 to 7
Reserved for future use. All bits must be 0b.
Notes: 1.
2.
3.
4.
Description
Changes to the KeyConfig Registers take effect immediately which allows the functionality to be
verified during the personalization process.
Warning: ATAES132 must always be locked by the customer prior to shipment to the end user to
protect the customer secrets. See Section 7.18, Lock Command.
Warning: Since the Encrypt command does not include an input MAC, the Encrypt command can
exhaustively be run with selected input data to attack the key. Requiring authentication prior to
allowing encryption makes these attacks more difficult. To require prior authentication, the AuthKey
and RandomNonce bits must be set to 1b.
A key can be disabled by setting KeyConfig[KeyN].AuthKey to 1b, and KeyConfig[KeyN].LinkPointer
to contain “KeyN”, where KeyN = KeyID of the key being configured.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
21
4.3
VolatileKey Configuration
There is a seventeenth key register, named VolatileKey, which has a KeyID of 0xFF and is stored in the internal
SRAM. This key location can be written with the KeyCreate (see Section 7.13, KeyCreate Command), KeyImport
(see Section 7.14, KeyImport Command), KeyLoad (see Section 7.15, KeyLoad Command), or KeyTransfer (see
Section 7.16, KeyTransfer Command) commands. The contents of the VolatileKey Register are erased when the
device is powered down, enters the Sleep state, or is reset.
When the VolatileKey Register is loaded, restrictions are placed on its usage which persists until the power is lost
or the key is reloaded. The definition of the VolUsage field is shown in Table 4-3.
Table 4-3.
VolUsage Field Bit Definitions in the KeyCreate or KeyLoad Command at VolatileKey Creation
VolUsage Field Name
AuthOK
Bit
0
0
Description
1b = Auth command can be run using this key.
0b = Auth command is prohibited.
00b = Encrypt command is prohibited.
01b = Encrypt command can be run using this key without a prior
authentication.(1)
10b or 11b = Encrypt command can be run using this key only with a prior
authentication.(1)
EncryptOK
0
1 to 2
DecryptOK
0
3
1b = Decrypt command can be run using this key.
0b = Decrypt command is prohibited.
RandomNonce
0
4
1b = Operations using this key require a random Nonce (see Section 7.19,
Nonce Command).
0b = A fixed (input-only) Nonce is permitted.
AuthCompute
0
5
1b = AuthCompute command can be run using this key.
0b = AuthCompute command is prohibited.
LegacyOK
0
6
1b = Legacy command can be run using this key.
0b = Legacy command is prohibited.
Reserved
0
7
Reserved for future use. All bits must be 0b.
WriteCompute
1
0
1b = WriteCompute command can be run using this key.
0b = WriteCompute command is prohibited.
DecRead
1
1
1b = DecRead command can be run using this key.
0b = DecRead command is prohibited.
Reserved
1
2 to 7
Note:
22
Byte
1.
Reserved for future use. All bits must be 0b.
Warning: Since the Encrypt command does not include an input MAC, the Encrypt command can be
exhaustively run with selected input data to attack VolatileKey. Requiring authentication prior to
allowing encryption makes these attacks more difficult. To implement this, the Auth and
RandomNonce bits must be set to 1b, and the Encrypt bits must be set to 10b or 11b when the
VolatileKey is created.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
4.4
Counter Configuration
The CounterConfig Registers impose restrictions on the usage of the Counter command with a Counter (see
Section 7.5, Counter Command). There is one CounterConfig Register for each Counter. Each Counter can
increment up to a value of 2,097,134 using the Count command, after which they can no longer be changed. See
Appendix H, Understanding Counters for additional Counter information.
The CounterConfig bits have no impact on the functionality of a Key Usage Counter. If a Counter is identified in a
KeyConfig Register (see Section 4.2, Key Configuration) as a Key Usage Counter, then the Counter will
increment each time the key is used. The CounterConfig[CntID].IncrementOK bit is typically set to 0b to prohibit
the Counter command from incrementing a Key Usage Counter.
Table 4-4.
CounterConfig Register Bit Definitions (1)(2)
CounterConfig Field
Byte
Bit
IncrementOK
0
0
1b = Increments using the Counter command are permitted.
0b = Increments using the Counter command are prohibited.
RequireMAC
0
1
1b = The increment operation requires an input MAC.
0b = An input MAC is prohibited.
Reserved
0
2 to 7
Reserved for future use. All bits must be 0b.
IncrID
1
0 to 3
KeyID of the key used to generate the Counter command input MAC for increment
operations.
MacID
1
4 to7
KeyID of the key used to generate the Counter command output MAC for Counter
Read operations.
Notes: 1.
2.
Description
Changes to the CounterConfig Registers take effect immediately, allowing the functionality to be
verified during the personalization process.
Warning: ATAES132 must always be locked by the customer prior to shipment to the end user to
protect the customer secrets. See Section 7.18, Lock Command.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
23
5.
Standard Serial EEPROM Read and Write Commands
This section provides a summary of the operations that can be performed using the standard Serial EEPROM
Read and Write commands. For detailed information, see the specification sections that are referenced below.
Table 5-1.
5.1
Standard Serial EEPROM Read and Write Commands
Name
Description
Read
The Read command is used to read cleartext from the user zones, to retrieve a response by reading the
Response Memory Buffer, or to read the STATUS Register.
Write
The Write command is used to write cleartext to unrestricted memory or to send a command by writing the
command packet to the Command Memory Buffer. The Write command is also used to write the IO Address
Reset Register.
Read
ATAES132 supports the standard Serial EEPROM commands to read from the User Memory. All bytes in the
User Memory address space may be read; however, only bytes in the user zones in which neither authentication
nor encryption is required will return the actual data from the memory. All other locations will return the value
0xFF. See Appendix J, I2C Interface for I2C Read command information and Appendix K, SPI Interface for SPI
Read command information.
When a Read command is received, the device looks at the AuthRead and EncRead bits in the ZoneConfig
Register for the user zone to determine whether to return 0xFF or the EEPROM data. If the EncRead bit is 1b or
the AuthRead bit is 1b, then 0xFF will always be returned.
If the ZoneConfig AuthRead bit is 1b and the EncRead is 0b, then the BlockRead command must be used to read
the user zone (see Section 7.4, BlockRead Command). If the EncRead bit is 1b, then the EncRead command
must be used to read the user zone (see Section 7.9, EncRead Command).
The standard SPI and I2C Read commands can be used to read any number of bytes in a single operation. Read
operations can cross EEPROM page boundaries.
5.1.1
Read the Response Memory Buffer
The Host sends ATAES132 commands to the device by writing the command packet to the Command Memory
Buffer using a standard SPI or I2C Write command. ATAES132 processes the command packet and places the
response in the Response Memory Buffer. The Host retrieves the response by reading the response packet using
a standard SPI or I2C Read command. See Appendix D, Command Memory Map for additional information. See
Appendix G, Understanding the STATUS Register for examples.
When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error. See Appendix
G.1, Device Status Register (STATUS) Definition for more information.
24
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
5.1.2
Read the Key Memory or Configuration Memory
Reading the Key Memory is never allowed.
The Read command can never be used to read data from the Configuration Memory. The BlockRead command is
used to access the Configuration Memory (see Section 7.4, BlockRead Command).
If a standard SPI or I2C Read command is used within the Configuration Memory or Key Memory address space,
then 0xFF will be returned for each byte. 0xFF is also returned for address locations that do not physically exist.
The
EERR bit of the STATUS Register is set to 1b if 0xFF was substituted for any byte returned by a Read command.
See Appednix G.1, Device Status Register (STATUS) Definition for more information.
5.1.3
Read the STATUS Register
The Host reads the STATUS Register by reading address 0xFFF0. In SPI interface mode, the Host can also read
STATUS using the RDSR command. See Appendix G, Understanding the STATUS Register, for detailed
information and examples.
5.2
Write
ATAES132 supports the standard Serial EEPROM commands to write to unrestricted User Memory (AuthWrite
and EncWrite are both 0b). See Appendix J, I2C Interface for I2C Write command information and Appendix K,
SPI Interface for SPI Write command information. The ATAES132 is capable of writing 1 to 32 bytes on a single
physical page with each Write operation.
The Write command can only write data to a single user zone; the data cannot span multiple user zones. The
Write command can write data only to a single EEPROM page; the data cannot cross page boundaries. The
EERR bit of the STATUS Register is set to 1b to indicate an error if a prohibited Write is attempted. See Appendix
G.1, Device Status Register (STATUS) Definition for more information.
5.2.1
Write the Command Memory Buffer
The Host sends ATAES132 commands to the device by writing the command packet to the Command Memory
Buffer using a standard SPI or I2C Write command. The ATAES132 processes the command packet and places
the response in the Response Memory Buffer. The Host retrieves the response by reading the response packet
using a standard SPI or I2C read command. See Appendix D, Command Memory Map for additional information.
See Appendix G, for examples.
When any error occurs, either the EERR or CRCE bit of the STATUS Register is set to 1b to indicate an error.
See Appendix G.1 for more information.
5.2.2
Write the IO Address Reset Register
The Host can reset the pointer in the Command Memory Buffer and the Response Memory Buffer by writing to
address 0xFFFE. See Appendix D.3, IO Address Reset Register for additional information.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
25
5.2.3
Write the Key Memory or Configuration Memory
ATAES132 supports standard Serial EEPROM commands to write the Configuration Memory or the Key Memory
prior to locking. ATAES132 is capable of writing 1 to 32 bytes on a single physical page with each Write
operation.
Note:
Partial writes to key registers are prohibited.
If LockKeys has a value of 0x55 (unlocked) and the address points to Key Memory, then the starting address
must be the first byte of a key register, and 16 bytes of cleartext data must be sent. If these conditions are not
satisfied, then an error response will be generated and the EEPROM will remain unchanged.
If LockConfig has a value of 0x00 (locked) and the address points to the Configuration Memory, then a Write
command will generate an error and the EEPROM will be unchanged.
If LockConfig has a value of 0x55 (unlocked), then the User Zone write restrictions imposed by ZoneConfig are
enforced, but can be changed.
Atmel does not recommend writing secret data into the User Zones prior to locking the
Configuration Memory due to the fact an attacker can change the ZoneConfig bits to allow
a read of the User Zone if the Configuration Memory is unlocked.
When any error occurs, either the EERR bit or the CRCE bit of the STATUS Register is set to 1b to indicate an
error. See Appenidx G.1 for more information. See the Lock command (Section 7.18.1, User Zone ReadOnly
Activation) for additional information.
26
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
6.
Commands
6.1
Command Block and Packet
The Host sends ATAES132 extended commands to the device in a block of at least nine bytes. The ATAES132
responses are returned to the Host in a block of at least four bytes. The command and response blocks are
constructed in the following manner:
Table 6-1.
Command and Response Blocks Descriptions
Byte
Name
Meaning
0
Count
Number of bytes to be transferred to the device in the block, including Count, Packet, and
Checksum. This byte will always have a value of N.
1 to (N-3)
Packet
Command, parameters, and data or response. Data is transmitted in the byte order shown in
the command definitions.
N-2, N-1
Checksum
Atmel CRC-16 verification of the Count and Packet bytes. See Appendix M, Block Checksum
for additional information and examples.
Table 6-2.
Byte
Input Command Packet Descriptions within the Command Block
Name
Meaning
1
Opcode
Command Code
2
Mode
Command Modifier
3, 4
Param1
First Command Parameter
5, 6
Param2
Second Command Parameter
7+
Data
Optional Input Data
Table 6-3.
Byte
Response Packet Descriptions within the Response Block
Name
Meaning
1
ReturnCode
Command Return Code (See Section 6.3, ReturnCode)
2+
Data
Optional Output Data
Table 6-4.
Byte
1
Response Packet Descriptions Contains when an Error Occurs
Name
Meaning
ReturnCode
Error Code (See Section 6.3, ReturnCode)
The Host sends ATAES132 commands to the device by writing the command block to the Command Memory
Buffer using a standard SPI or I2C Write command. ATAES132 processes the Command Packet and places the
response block in the Response Memory Buffer. The Host retrieves the response by reading the response block
using a standard SPI or I2C Read command. If the Host reads beyond the end of the block, then 0xFF is returned.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
27
6.2
Command Summary
Table 6-5 shows the command set sorted by the opcode value. Table 6-6 shows the command set in alphabetical
order by command name. See Section 7, Command Definitions for the ATAES132 command definitions.
Table 6-5.
Opcode(1)
Name
Description
0x00
Reset
Resets the device, clearing the cryptographic status.
0x01
Nonce
Generates a 128-bit Nonce from the internal random number generator for use by the
cryptographic commands. This command can also be used to write a Host Nonce directly
into the Nonce Register.
0x02
Random
Returns a 128-bit random number from the internal random number generator.
0x03
Auth
Performs one-way or mutual authentication using the specified key.
0x04
EncRead
Encrypts 1 to 32 bytes of data from User Memory and returns the encrypted data and
integrity MAC.
0x05
EncWrite
Writes 1 to 32 bytes of encrypted data into the User Memory or Key Memory after verifying
the integrity MAC.
0x06
Encrypt
Encrypts 16 or 32 bytes of plaintext data provided by the Host.
0x07
Decrypt
Decrypts 16 or 32 bytes of data provided by the Host after verifying the integrity MAC.
0x08
KeyCreate
Generates a random number, stores it in Key Memory, and returns the encrypted key to
the Host.
0x09
KeyLoad
Writes an encrypted key to Key Memory after verifying the integrity MAC.
0x0A
Counter
Increments a High Endurance Counter and/or returns the Counter value.
0x0B
Crunch
Processes a seed value through the internal crunch engine. This function is used to detect
clones.
0x0C
Info
Returns device information: MacCount, Authentication status, or hardware revision code.
0x0D
Lock
Permanently locks the Configuration Memory or Key Memory. Locked memory can never
be unlocked.
0x0F
Legacy
Performs a single AES-ECB mode operation on 16 bytes of data provided by the Host.
0x10
BlockRead
Reads 1 to 32 bytes of data from User Memory or the Configuration Memory. Returns
cleartext data.
0x11
Sleep
Places the device in the Sleep state or Standby state to reduce power consumption.
0x13
NonceCompute
Generates a Nonce in a manner that allows two ATAES132 devices to have identical
Nonce values.
0x14
AuthCompute
Computes the input MAC required to execute the Auth command or to increment a counter
using the Counter command on a second ATAES132 device.
0x15
AuthCheck
Checks the output MAC generated by the Auth command or by reading a counter using the
Counter command on a second ATAES132 device.
0x16
WriteCompute
Encrypts data and generates the input MAC required to execute the EncWrite command.
0x17
DecRead
Checks the output MAC and decrypts data that was encrypted by the EncRead command.
0x19
KeyImport
Decrypts and writes a key that was output by the KeyCreate command.
0x1A
KeyTransfer
Transfers a key from User Memory into the Key Memory or into the VolatileKey Register.
Note:
28
Extended ATAES132 Command Set Sorted by Opcode Value
1.
The most-significant three bits of the command opcode may contain any value; they are ignored by
the ATAES132 command decoder.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table 6-6.
Opcode(1)
Extended ATAES132 Command Set Sorted by Command Name
Name
Description
0x03
Auth
Performs one-way or mutual authentication using the specified key.
0x15
AuthCheck
Checks the output MAC generated by the Auth command or by reading a counter using
the Counter command on a second ATAES132 device.
0x14
AuthCompute
Computes the input MAC required to execute the Auth command or to increment a counter
using the Counter command on a second ATAES132 device.
0x10
BlockRead
Reads 1 to 32 bytes of data from User Memory or the Configuration Memory. Returns
cleartext data.
0x0A
Counter
Increments a high endurance Counter and/or returns the counter value.
0x0B
Crunch
Processes a seed value through the internal crunch engine. This function is used to detect
clones.
0x17
DecRead
Checks the output MAC and decrypts data that was encrypted by the EncRead command.
0x07
Decrypt
Decrypts 16 or 32 bytes of data provided by the Host after verifying the integrity MAC.
0x04
EncRead
Encrypts 1 to 32 bytes of data from User Memory and returns the encrypted data and
integrity MAC.
0x06
Encrypt
Encrypts 16 or 32 bytes of plaintext data provided by the Host.
0x05
EncWrite
Writes 1 to 32 bytes of encrypted data into the User Memory or Key Memory after verifying
the integrity MAC.
0x0C
Info
Returns device information: MacCount, Authentication status, or hardware revision code.
0x08
KeyCreate
Generates a random number, stores it in Key Memory, and returns the encrypted key to
the Host.
0x19
KeyImport
Decrypts and writes a key that was output by the KeyCreate command.
0x09
KeyLoad
Writes an encrypted key to Key Memory after verifying the integrity MAC.
0x1A
KeyTransfer
Transfers a key from User Memory into the Key Memory or into the VolatileKey Register.
0x0F
Legacy
Performs a single AES-ECB mode operation on 16 bytes of data provided by the Host.
0x0D
Lock
Permanently locks the Configuration Memory or Key Memory. Locked memory can never
be unlocked.
0x01
Nonce
Generates a 128-bit Nonce from the internal random number generator for use by the
cryptographic commands. This command can also be used to write a Host Nonce directly
into the Nonce Register.
0x13
NonceCompute
Generates a Nonce in a manner that allows two ATAES132 devices to have identical
Nonce values.
0x02
Random
Returns a 128-bit random number from the internal random number generator.
0x00
Reset
Resets the device, clearing the cryptographic status.
0x11
Sleep
Places the device in the Sleep state or Standby state to reduce power consumption.
0x16
WriteCompute
Encrypts data and generates the input MAC required to execute the EncWrite command.
Note:
1.
The most-significant three bits of the command opcode may contain any value; they are ignored by
the ATAES132 command decoder.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
29
6.3
ReturnCode
The response packet for each ATAES132 command includes a ReturnCode to report success or failure to the
Host.
The Reset command and the Sleep command do not generate a ReturnCode because they do not generate a
response packet. All other ATAES132 commands generate a ReturnCode.
Table 6-7.
ReturnCode Field Sorted By Value
Value
Name
Notes
0x00
Success
No errors.
0x02
BoundaryError
Crossed a page boundary for a Write, BlockRead, or EncRead; crossed a Key Register
boundary for a Write or EncWrite.
0x04
RWConfig
Access to the specified user zone is not permitted due to the configuration or internal state.
0x08
BadAddr
Attempted to Write Locked Memory, address is not implemented, or address is illegal for this
command.
0x10
CountErr
Counter limit reached, count usage error, or restricted key error.
0x20
NonceError
Nonce invalid or not available, Nonce not generated with internal RNG.
MacCount limit has been reached.
0x40
MacError
Missing input MAC, or MAC compare failed.
0x50
ParseError
Bad opcode, bad mode, bad param, invalid length, or other encoding failure.
0x60
DataMatch
EEPROM post-write automatic data verification failed due to data mismatch.
0x70
LockError
Lock command contained bad Checksum or bad MAC.
0x80
KeyErr
Key not permitted to be used for this operation or wrong key was used for operation.
Prior authentication has not been performed.
Other authentication error or other key error.
If ReturnCode has any value other than 0x00, no additional data will be returned by the ATAES132. If the
ReturnCode is greater than zero for any command that performs cryptographic operations, then the Nonce will be
invalidated. A non-zero ReturnCode only reports the first error encountered; although, multiple errors might exist.
30
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.
Command Definitions
The ATAES132 extended command definitions are described in this section. The commands are presented in
alphabetical order by command name. The standard Serial EEPROM Read and Write commands are in
Section 5, Standard Serial EEPROM Read and Write Commands and are not included in this section. The
cryptographic operations performed by the ATAES132 extended commands are described in Appendix I,
Cryptographic Computations.
7.1
Auth Command
The Auth command performs a one-way or mutual authentication using AES-CCM. The Auth command options
are shown in Table 7-1. The Nonce Register value is used as the CCM Nonce for all Auth command MAC
calculations.




Mutual Authentication
The InMAC is verified, and upon success, an OutMAC is calculated and returned to the Host. The
AuthComplete status flag is set to YesAuth if the InMAC is verified.
Outbound Only Authentication
The OutMAC is calculated and output to the Host. The AuthComplete status flag is set to NoAuth.
Outbound-only Authentication is also known as Challenge-Response Authentication.
Inbound Only Authentication
The InMAC value is verified, and the success or failure is reported to the Host. The AuthComplete status
flag is set to YesAuth if the InMAC is verified.
Authentication Reset
The AuthComplete status flag is set to NoAuth.
Table 7-1.
Auth Command Options
Mode Bit 1
Mode Bit 0
1b
1b
1b
Description
InMAC
OutMAC
Mutual Authentication
Required
Generated
0b
Outbound Only Authentication
Prohibited
Generated
0b
1b
Inbound Only Authentication
Required
No
0b
0b
Authentication Reset
Prohibited
No
If a MAC is required or will be generated by the Auth command, then a valid Nonce is required. If the
KeyConfig[AKeyID].RandomNonce bit is 1b, then the Nonce must be random.
The AuthCompute command can be used to generate the InMac required for Inbound Only Authentication, or
Mutual Authentication (see Section 7.3,AuthCompute Command). The AuthCheck command can be used to
validate the OutMac (see Section 7.2, AuthCheck Command).
In the I2C interface mode, the Auth command can also used for Auth signaling. See Appendix J.5, I2C Auth
Signaling.
7.1.1
Authentication Status Register
The Authentication Status Register contains the AKeyID, the AuthComplete status flag, and the usage bits. Prior
to executing the Auth command, the AuthComplete status flag is set to NoAuth. If the InMAC is successfully
verified in the Inbound Only or Mutual Authentication mode, then the AuthComplete status flag is set to YesAuth.
The ATAES132 Authentication Status Register only stores the result of the most recent authentication attempt. If
there is a parsing or execution error, then the prior Authentication status will be lost.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
31
7.1.2
Authentication Usage
The usage field (Param2) controls which operations are permitted with a successful Inbound-only or Mutual
Authentication (see Table 7-2). If Param2 is 0x0000, the AuthComplete flag is set to NoAuth, but the
authentication outputs are generated. Param2 is ignored if outbound-only authentication is performed.
Table 7-2.
Byte
0
0
Auth Command Usage Field Definition (Param2)
Bit
0
1
Name
Notes
ReadOK
1b = Read and EncRead commands are enabled for user zone reads after
successful authentication.
0b = Read and EncRead commands are prohibited for user zone reads if
authentication is required in ZoneConfig[UZ] (see Section 4.1, User Zone
Configuration).
WriteOK
1b = Write and EncWrite commands are enabled for user zone writes after
successful authentication.
0b = Write and EncWrite commands are prohibited for user zone writes if
authentication is required in ZoneConfig[UZ] (see Section 4.1).
KeyUse
1b = If a key requires authentication (KeyConfig[AKeyID].AuthKey is 1b), the
Encrypt, Decrypt, Legacy, KeyCreate, and KeyLoad commands are enabled
after successful authentication.
0b = EncRead, EncWrite, Encrypt, Decrypt, Legacy, KeyCreate, and KeyLoad
commands using the authenticated key are prohibited after authentication (see
Section 4.2, Key Configuration).
0
2
0
3–7
Zero
Reserved. Must be 0b.
1
0:7
Zero
Reserved. Must be 0x00.
If the AKeyID is VolatileKey, then VolUsage.AuthOK must be 1b when the key is loaded or authentication will fail.
Table 7-3.
Input Parameters
Name
Opcode
Mode
32
Auth
Mode
Size
(bytes)
Notes
1
0x03
1
Bit 0 and Bit 1 if:
11b = Perform mutual authentication.
10b = Perform Outbound Only authentication.
01b = Perform Inbound Only authentication.
00b = Perform authentication reset.
Bits 2, 3, and 4: Reserved. Must be 0b.
Bit 5: 1b = Include the associated Usage Counter in the authentication.
Bit 6: 1b = Include SerialNum in the authentication.
Bit 7: 1b = Include the first four bytes of SmallZone in the authentication.
Param1
AKeyID
2
Upper byte is always 0x00.
Lower byte is the pointer to the key.
Legal values: 0x00 to 0x0F, 0xFF.
Param2
Usage
2
Authentication usage restrictions. Ignored if Mode bits 0 and 1 are 00b or 10b.
Data
InMac
0 or 16
ATAES132 [Datasheet]
Input MAC to be verified (see Appendix I.3, MAC Generation).
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table 7-4.
Name
ReturnCode
OutMac
Output parameters
Size
(bytes)
Notes
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
0 or 16
If an output MAC generation was required (and any optional input MAC verification succeeded),
then a 16-byte MAC will be returned.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
33
7.2
AuthCheck Command
The AuthCheck command is used to check the OutMAC generated by the Auth command or the Counter
command on a second ATAES132 device. This command cannot check MACs created by other commands.
To use this command, the Nonce must be identical on both devices (see Section 7.20.1, Nonce Synchronization)
and the MacCount must have the same value. Both devices must also contain identical key values, but it is not
necessary for the KeyID on the origin device to match the KeyID on the destination device. In this section, the
device that generates the MAC is referred to as the origin device, and the device that checks the MAC is referred
to as the destination device.
If Mode bit 5, 6, or 7 is 1b, then the associated Usage Counter, SerialNum Register value, or the first four bytes of
the SmallZone Register in the SecondBlock field must match the values on the origin device. The
ManufacturingID Register must be identical on both devices, since it is always included in the MAC calculation.
A valid Nonce is required to run the AuthCheck command. If the KeyConfig[MacKeyID].RandomNonce bit is 1b,
then the Nonce must be random.
The AuthCheck command always sets the AuthComplete status flag to NoAuth.
Table 7-5.
Input Parameters
Size
(bytes)
Name
Notes
Opcode
AuthCheck
1
0x15
Mode
Mode
1
Always 0x0000.
Param1
MacKeyID
2
Upper byte is always 0x00. Lower byte is the pointer to the key.
Legal values: 0x00 to 0x0F, 0xFF.
Param2
Zero
2
Always 0x0000.
Data1
FirstBlock
11
The value of this field must match the first authenticate-only block used to
calculate the MAC on the origin device.
Data2
SecondBlock
16
The value of this field must match the second authenticate-only block used to
calculate the MAC being checked on the origin device. If Mode bits 5, 6, and 7 are
0b, then this field must be present, but is ignored.
Data3
InMac
16
MAC to be checked.
Table 7-6.
Name
ReturnCode
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
34
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.3
AuthCompute Command
The AuthCompute command is used to compute a MAC that will be used to execute the Auth command or the
Counter command on a second ATAES132 device.
To use this command, the Nonce must be identical on both devices (see Section 7.20.1, Nonce Synchronization)
and the MacCount must have the same value. Both devices must also contain identical key values, but it is not
necessary for the KeyID on the origin device to match the KeyID on the destination device. In this section, the
device that generates the MAC is referred to as the origin device, and the device that checks the MAC is referred
to as the destination device.
If Mode bit 5, 6, or 7 is 1b, then the associated Usage Counter, SerialNum Register value, or the first four bytes of
the SmallZone Register in the SecondBlock field must match the values on the destination device. The
ManufacturingID Register must be identical on both devices, since it is always included in the MAC calculation.
A valid Nonce is required to run the AuthCompute command. If the KeyConfig[MacKeyID].RandomNonce bit is
1b, then the Nonce must be random.
The AuthCompute command always sets the AuthComplete status flag to NoAuth.
Table 7-7.
Input Parameters
Size
(bytes)
Name
Notes
Opcode
AuthCompute
1
0x14
Mode
Mode
1
Always 0x0000.
Param1
MacKeyID
2
Upper byte is always 0x00. Lower byte is the pointer to the key.
Legal values: 0x00 to 0x0F, 0xFF.
Param2
Zero
2
Always 0x0000.
Data1
FirstBlock
11
The value of this field must match the first authenticate-only block to be used when
executing the Auth command or the Counter command on the destination device.
16
The value of this field must match the second authenticate-only block to be used
when executing the Auth command or Counter command on the destination
device. If Mode bits 5, 6, and 7 are 0b, then this field must be present, but is
ignored.
Data2
SecondBlock
Table 7-8.
Name
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
OutMac
16
The 16-byte MAC.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
35
7.4
BlockRead Command
The BlockRead command reads 1 to 32 bytes of plaintext data from a User Zone or the Configuration Memory.
This command differs from the standard Serial EEPROM Read commands, since it can read the Configuration
Memory. In addition, this command returns an error code if the Read is unsuccessful. No encryption is performed
by the BlockRead command; the EncRead command must be used for encrypted reads (see Section 7.9,
EncRead Command).
The BlockRead command can only read data from a single EEPROM page; the requested data cannot cross
page boundaries (see Appendix B.2, EEPROM Page Boundary). All bytes within the Configuration Memory can
be read with the BlockRead command. If any part of the requested data lies in unimplemented or illegal memory,
the command will generate an error code. The Key Memory can never be read under any circumstances; any
attempt to read the Key Memory will generate an error code.
User Zone access is dependent upon the value of the EncRead and AuthRead bits of the ZoneConfig[UZ]
register. If ZoneConfig[UZ].AuthRead is 0b, then BlockRead can read the user zone. If ZoneConfig[UZ].AuthRead
is 1b, then BlockRead can only be used to access the user zone if the authentication requirement has been
satisfied. If ZoneConfig[UZ].EncRead is 1b, then BlockRead can never be used to access the user zone. A single
BlockRead command can read data from only a single User Zone; the requested data cannot span multiple user
zones or multiple EEPROM pages.
Table 7-9.
Input Parameters
Name
Size
(bytes)
Notes
Opcode
BlockRead
1
0x10
Mode
Mode
1
Must be 0x00.
Param1
Address
2
The address of data to read.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of bytes to read.
Table 7-10.
Name
ReturnCode
OutData
Output Parameters
Size
(bytes)
1
0 – 32
Notes
Upon success, 0x00 will be returned.
Any command execution or validation failure generates a nonzero error code, per Section 6.3,
ReturnCode.
Output data (cleartext).
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
36
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.5
Counter Command
The Counter command reads or increments the internal, high endurance counters. Each counter can increment
up to a value of 2,097,151 using the Count command, after which they can no longer be changed. See
Appendix H, Understanding Counters for additional counter information.
Table 7-11.
Counter command options
Mode bit 1
Mode bit 0
1b
1b
0b
Description
InMAC
OutMAC
Read Counter with MAC
Prohibited
Generated
1b
Read Counter, No MAC
Prohibited
No
1b
0b
Increment Counter with MAC
Required
No
0b
0b
Increment Counter, No MAC
Prohibited
No
The CounterConfig[CntID].RequireMAC Register bit determines if InMAC is required when incrementing the
counter (see Section 4.4, Counter Configuration). If CounterConfig[CntID].RequireMAC = 1b, then InMAC is
required, and so Mode bit 1 must be set to 1b when incrementing the counter. If
CounterConfig[CntID].RequireMAC is 0b, then InMAC is prohibited, and Mode bit 1 must be set to 0b.
If a MAC is required or generated, then a valid Nonce is required to run the Counter command. If the
KeyConfig[KeyID].RandomNonce bit is set for the authorizing key, then the Nonce must be random.
The AuthCompute command can be used to generate InMac (see Section 7.3, AuthCompute Command). The
AuthCheck command can be used to validate OutMac (see Section 7.2, AuthCheck Command).
Table 7-12.
Input Parameters
Name
Opcode
Counter
Size
(bytes)
Notes
1
0x0A
Mode
Mode
1
Bit 0: 1b = Read the Counter.
0b = Increment the Counter.
Bit 1: 1b = InMAC is included in the input packet if bit 0 is 0b, or OutMAC is
generated if bit 0 is 1b.
0b = Neither the input nor output packets include a MAC.
Bits 2 to 4: Reserved. Must be 0b.
Bit 5: 1b = Include the Usage Counter associated with the key(1) used to generate the
MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Param1
CountID
2
Upper byte is always 0x00. Upper nibble of lower byte is always 0x0.
Lower nibble of lower byte is the counter to be queried.
Param2
Zero
2
Always 0x0000.
Data
InMac
Note:
1.
0 or 16
Integrity MAC for the counter increment operation.
The MAC is generated using the key identified by the KeyID in CounterConfig[CountID].IncrID for
increment operations, or the KeyID in CounterConfig[CountID].MacID for Counter Read operations.
The Usage Counter included in the MAC when Mode bit 5 is 1b is identified by the CntID stored in
KeyConfig[KeyID].CounterNum for the key used to generate the MAC.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
37
Table 7-13.
Name
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned.
Any command execution or validation failure generates a nonzero error code, per Section 6.3,
ReturnCode.
CountValue
4
The current value of the Counter.
OutMac
0 or 16
Integrity MAC for the Counter Read operation.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
The equivalent decimal value of the Counter can be determined using the following equation:
CountValue = (BinCount*32) + (CountFlag/2)*8 + Lin2Bin(LinCount)
Here, Lin2Bin defines a function that converts a linear counter value to corresponding binary value.0xFFFF
converts to 0, 0xFFFE converts to one, and so on, up to 0x8000 which converts to 15.
38
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.6
Crunch Command
The Crunch command processes a seed value and returns the result within a specified time. The command
provides a 16-byte input seed, which is combined with the ManufacturingID Register and processed with the
internal hardware crunch calculator. The calculation is performed within a specified time period.
The Host system should read the response within a few milliseconds after the response is specified to be
available and compare the returned value to the expected result to determine if authentic Atmel hardware is
present. The crunch algorithm is proprietary, and is available only in authentic Atmel hardware.
The Crunch command does not use the AES engine or the Nonce. Executing the Crunch command does not
change the authentication status or cryptographic state of the device.
7.6.1
Crunch Response Time
The response to the Crunch command is available after a period of time that is dependent on the Count field
value. A large Count value requires more time to process than a small Count value. The expected response time
for the Crunch command is computed using the following equation:
((count × 256) + 600)) × 1.25 microseconds
Table 7-14.
Input Parameters
Name
Size
(bytes)
Notes
Opcode
Crunch
1
0x0B
Mode
Mode
1
Must be 0x00.
Param1
Count
2
Upper byte is always 0x00.
Lower byte is the iteration count for the crunch engine.
Param2
Zero
2
Always 0x0000.
Data
Seed
16
Input seed.
Table 7-15.
Name
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned.
Any command execution or validation failure generates a nonzero error code, per Section 6.3,
ReturnCode.
Result
16
Result out.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
39
7.7
DecRead Command
The DecRead command is used to check the OutMAC generated by an EncRead command on a second
ATAES132 device. If the MAC matches, then the 1 to 16 bytes of data is returned to the Host in the DecRead
response.
To use this command, the Nonce must be identical on both devices (see Section 7.20.1, Nonce Synchronization)
and the MacCount must have the same value. Both devices must also contain identical key values, but it is not
necessary for the KeyID on the origin device to match the KeyID on the destination device. In this section, the
device that encrypts the data and generates the MAC is referred to as the origin device, and the device that
checks the MAC is referred to as the destination device.
If Mode bit 5, 6, or 7 is 1b, then the associated Usage Counter, SerialNum Register value, or the first four bytes of
the SmallZone Register in the SecondBlock field, must match the values on the origin device. The
ManufacturingID Register must be identical on both devices, since it is always included in the MAC calculation.
A valid Nonce is required to run the DecRead command. If the KeyConfig[DKeyID].RandomNonce bit is 1b, then
the Nonce must be random.
Table 7-16.
Input Parameters
Size
(bytes)
Name
Notes
Opcode
DecRead
1
0x17
Mode
Mode
1
Always 0x0000.
Param1
DKeyID
2
Upper byte is always 0x00. Lower byte is the pointer to the decrypt key.
Legal values: 0x00 to 0x0F, 0xFF.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of data bytes to be
decrypted.
Data1
FirstBlock
6
The value of this field must match the first authenticate-only block used when
executing the EncRead command on the origin device.
Data2
SecondBlock
16
The value of this field must match the second authenticate-only block used when
executing the EncRead command on the origin device. If Mode bits 5, 6, and 7
are 0b, then this field must be present, but is ignored.
Data3
InMac
16
Integrity MAC for the input data.
Data4
InData
16
Input data (ciphertext) to be decrypted.
Table 7-17.
Name
ReturnCode
OutData
Output Parameters
Size
(bytes)
1
1 to 16
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
Decrypted (plaintext) output data.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
40
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.8
Decrypt Command
The Decrypt command accepts 16 or 32 bytes of ciphertext, decrypts the data, verifies the MAC, and returns the
decrypted data if the MAC matches. If the MAC does not match, then an error code is returned.
The Decrypt command has two operating modes:

Normal Decryption Mode

Client Decryption Mode
The Client Decryption mode decrypts packets encrypted by an ATAES132 device. The Normal Decryption mode
decrypts packets generated by a cryptographic Host. It cannot decrypt packets encrypted by an ATAES132
device.

If the DKeyID is VolatileKey (see Section 4.3, VolatileKey Configuration), the VolUsage.DecryptOK must be
1b when VolatileKey was loaded.

If the DKeyID is not VolatileKey, the KeyConfig[DKeyID].ExternalCrypto bit must be 1b.

If the KeyConfig[DKeyID].AuthKey bit is 1b, prior authentication must be performed using the KeyID stored
in KeyConfig[DKeyID].LinkPointer.
A valid Nonce is required to run the Decrypt command. If the KeyConfig[DKeyID].RandomNonce bit is 1b, then
the Nonce must be random.
7.8.1
Client Decryption Mode
In the Client Decryption mode, the Decrypt command can be used to decrypt packets encrypted by the
ATAES132 (either another device, or by the same device at a later time) using the Encrypt command (see
Section 7.10, Encrypt Command). All of the following requirements must be satisfied:
1. The device performing the Encrypt operation (the Encrypt Device) and the device performing the Decrypt
operation (the Decrypt Device) must contain identical keys.
2. The KeyID of the key used by the Encrypt Device (called EKeyID) must be known. EKeyID is passed to the
Decrypt Device in the upper byte of Decrypt Param1 for use in the MAC calculation.
3. The Nonce used by the Encrypt Device must be known. The Nonce is passed to the Decrypt Device using
the Nonce command with Mode bit 0 = 0b (see Section 7.19, Nonce Command), or is synchronized with the
Encrypt Device using the procedure in Section 7.20.1, Nonce Synchronization.
4. The lower byte of the Count (Encrypt Param2) used by the Encrypt Device must identical to the value used
in the lower byte of Decrypt Param2 by the Decrypt Device. (This is used in the MAC calculation.)
5. The MacCount of the Encrypt Device (called EMacCount) must be known. EMacCount is passed to the
Decrypt Device in the upper byte of Decrypt Param2 for use in the Data Decryption operation.
6. The Encrypt/Decrypt command mode bits on both devices must be identical. Mode bit 5 must be 0b. Mode
bit 6 must be 0b, unless a single device is performing both the Encrypt and the Decrypt operations. Mode
bit 7 can be 1b if the first four bytes of SmallZone are identical on both the Encrypt and the Decrypt Devices.
7. The Decrypt Device KeyConfig[DKeyID] must have ExternalCrypto = 1b and RandomNonce = 0b for the
KeyID used for decryption if the Nonce is passed using the Nonce command with Mode bit 0 = 0b.
8. The Encrypt Device KeyConfig[EKeyID] must have ExternalCrypto = 1b and RandomNonce = 1b for the
KeyID used for encryption (the EKeyID).
If these conditions are satisfied, then packets encrypted on the Encrypt Device can be decrypted on the Decrypt
Device. If a single ATAES132 will be used to encrypt packets for later decryption, then the same key value must
be stored in two appropriately configured key registers to allow all of the requirements above to be satisfied.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
41
Table 7-18.
Input Parameters
Size
(bytes)
Name
Opcode
Mode
Decrypt
Mode
Notes
1
0x07
1
Bits 0 to 4: Reserved. Must be 0b.
Bit 5: 1b = Include the Usage Counter associated with the encryption key in the
MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Normal Decryption Mode:
Param1
DKeyID
2


Upper byte is always 0x00.
Lower byte is the KeyID of the decrypt key.
Client Decryption Mode:


Upper byte is the EKeyID.
Lower byte is the KeyID of the decrypt key.
Normal Decryption Mode:


Param2
Count
2
InMac
16
Data2
InData
16 or 32
Table 7-19.
Name
ReturnCode
OutData
Lower byte is the number of bytes to be returned after decryption.
Client Decryption Mode:


Data1
Upper byte is always 0x00.
Upper byte is the EMacCount.
Lower byte is the number of bytes to be returned after decryption (see Section
7.8.1, Client Decryption Mode).
Integrity MAC for the input data.
Input data (ciphertext) to be decrypted.
Output Parameters
Size
(bytes)
1
1 – 32
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
Decrypted (plaintext) output data.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
42
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.9
EncRead Command
EncRead reads 1 to 32 bytes of encrypted data from User Memory, along with an integrity MAC. The EncRead
command only performs encrypted reads; the BlockRead command is used for unencrypted reads (see Section
7.4, BlockRead Command).
The ZoneConfig[UZ].EncRead bit determines if a user zone can be accessed with the EncRead command. If the
ZoneConfig[UZ].EncRead bit is 1b, then the EncRead command can read the user zone if the access
requirements have been satisfied. A single EncRead command reads data from a single user zone; the requested
data cannot span multiple user zones. A single EncRead command reads data from a single EEPROM page; the
requested data cannot cross page boundaries (see Appendix B.2, EEPROM Page Boundary).
If ZoneConfig[UZ].Auth is 1b, then prior authentication is required with the following restrictions:

The Auth command Usage.ReadOK bit must be 1b.

The Authentication Key AKeyID must match ZoneConfig[UZ].AuthID.

The Auth command must be run in Inbound Only Authentication or Mutual Authentication mode.

A valid Nonce is required to run the EncRead command. If KeyConfig[KeyID].RandomNonce for the read
key is 1b, then the Nonce must be random.
The DecRead command can be used to validate OutMac and decrypt up to 16 bytes of data (see Section 7.7,
DecRead Command).
7.9.1
Configuration Memory Signature
The EncRead command cannot be used to read the Configuration Memory. Only the BlockRead command can
be used to read the Configuration Memory. Any attempt to read any address in the Configuration Memory with the
EncRead command will activate the Configuration Memory Signature Generation mode.
The Configuration Memory Signature is an AES-CCM MAC generated over the entire Configuration Memory, as
described in Appendix I.17, EncRead Command Configuration Memory Signature MAC. A valid Nonce is required
to run the EncRead command in Configuration Memory Signature Generation mode. If
KeyConfig[00].RandomNonce is 1b, then the Nonce must be random. KeyID 00 is always used to generate the
Configuration Memory Signature.
The Configuration Memory Signature Generation mode is intended to be used during secure personalization of
the ATAES132 device. The signature can be used to validate the contents of the Configuration Memory prior to
programming secret data into other portions of the EEPROM.
7.9.2
Key Memory Signature
The EncRead command cannot be used to read the Key Memory. The Key Memory can never be read. Any
attempt to read any address in the Key Memory with the EncRead command will activate the Key Memory
Signature Generation mode; however, this signature can be generated only once per unit.
The Key Memory Signature is an AES-CCM MAC generated over all 16 key registers, as described in Appendix
I.18, EncRead Command Key Memory Signature MAC
. A valid Nonce is required to run the EncRead command in Key Memory Signature Generation mode. If
KeyConfig[00].RandomNonce is 1b, then the Nonce must be random. KeyID 00 is always used to generate the
Key Memory Signature.
The Key Memory Signature Generation mode is intended to be used during secure personalization of the
ATAES132. The signature can be used to validate the contents of the Key Memory before locking the Key
Memory.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
43
Table 7-20.
Input Parameters
Name
Opcode
EncRead
Size
(bytes)
Notes
1
0x04
Mode
Mode
1
Bits 0 to 4: Reserved. Must be 0b.
Bit 5: 1b = Include the Usage Counter associated with the
ZoneConfig[UZ].ReadID key in the MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Param1
Address
2
The address of data to be read.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of bytes to read.
Data
—
0
Table 7-21.
Name
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
OutMac
16
Integrity MAC for the output data.
OutData
16 or 32
Encrypted output data (ciphertext).
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
44
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.10
Encrypt Command
The Encrypt command accepts 1 to 32 bytes of plaintext, encrypts the data, and generates an integrity MAC. The
encrypted data and OutMAC are returned to the system.
The Encrypt command can be used to encrypt packets for decryption by the same or another ATAES132, if the
requirements described in Section 7.8.1, Client Decryption Mode are satisfied.

If the EKeyID specifies a key in the Key Memory, the KeyConfig[EKeyID].ExternalCrypto bit must be 1b.

If the KeyConfig[EKeyID].AuthKey bit is 1b, then prior authentication is required using the KeyID stored in
KeyConfig[EKeyID].LinkPointer.

If the EKeyID specifies the VolatileKey (see Section 4.3, VolatileKey Configuration), the
VolUsage.EncryptOK must be set to 01b, 10b, or 11b.

If the VolUsage.EncryptOK bits are set to 10b or 11b, then prior authentication is required using VolatileKey
prior to execution of the Encrypt command.
A valid Nonce command is required to run the Encrypt command. If the KeyConfig[EKeyID].RandomNonce bit is
set for the encryption key, then the Nonce must be random.
Table 7-22.
Input Parameters
Name
Opcode
Encrypt
Size
(bytes)
Notes
1
0x06
Mode
Mode
1
Bits 0 to 4: Reserved. Must be 0b.
Bit 5: 1b = Include the Usage Counter associated with the encryption key in the
MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Param1
EKeyID
2
Upper byte is always 0x00. Lower byte is the KeyID of the encrypt key.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of bytes to be encrypted.
Data
InData
1 – 32
Table 7-23.
Name
Input data to be encrypted (plaintext).
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates
a nonzero error code, per Section 6.3, ReturnCode.
OutMac
16
Integrity MAC for the output data.
OutData
16 or 32
Encrypted data (ciphertext).
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
45
7.11
EncWrite Command
The EncWrite command decrypts the ciphertext input data, verifies the input MAC, and then writes 1 to 32 bytes
to a User Zone or 16 bytes to Key Memory.
The ZoneConfig[UZ].EncWrite bit determines if a User Zone must be accessed with the EncWrite command. If
the ZoneConfig[UZ].EncWrite bit is 1b, then the EncWrite command must be used to write the user zone if the
access requirements have been satisfied. If the ZoneConfig[UZ].EncWrite bit is 0b, then a Write command or
EncWrite command can be used to write the User Zone. A single EncWrite command writes data to a single User
Zone; the data cannot span multiple User Zones. A single EncWrite command writes data to a single EEPROM
page; the data cannot cross page boundaries (see Appendix B.2, EEPROM Page Boundary).
If ZoneConfig[UZ].Auth is 1b, then prior authentication is required with the following restrictions:

The Auth command Usage.WriteOK bit must be 1b.

The Authentication Key (AKeyID) must match ZoneConfig[UZ].AuthID.

The Auth command must be run in Inbound-Only Authentication or Mutual Authentication mode.

A valid Nonce is required to run the EncWrite command. If KeyConfig[KeyID].RandomNonce for the write
key is 1b, then the Nonce must be random.
7.11.1 Encrypted Key Writes
When EncWrite is used to write the Key Memory prior to locking, the key data must be encrypted using KeyID 00.
The input MAC is also calculated using KeyID 00. Writes to Key Memory must be 16 bytes in length and begin at
the starting address of the key.
If LockKeys has a value of 0x55 and the EncWrite address points to Key Memory, then Key Personalization mode
is selected. In key Personalization mode, the following requirements are in effect:

The Count field value must be 16.

The address must match the starting address of the Key Register.

The input data must be encrypted with the current value in KeyID 00. If KeyConfig[WriteID].RandomNonce
is 1b, then the Nonce must be random (See Section 7.19, Nonce Command).

The input MAC must be generated with the current value in KeyID 00. The input MAC will be verified.
If the Key Memory is locked, then the new key data is encrypted with the current value of the key being written.
The key can be updated only if all of the following requirements are satisfied:
46

The corresponding KeyConfig[KeyID].ChangeKeys bit is set to 1b (see Section 4.2, Key Configuration).

The Count field value must be 16.

The address must match the starting address of the Key Register.

The input data must be encrypted with the current value of the Key. If KeyConfig[WriteID].RandomNonce is
1b then Nonce be random (See Section 7.19, Nonce Command).

The input MAC must be generated with the current value of the Key. The input MAC will be verified (See
Section7.18, Lock Command).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table 7-24.
Input Parameters
Name
Opcode
Size
(bytes)
EncWrite
Notes
1
0x05
Mode
Mode
1
Bits 0 to 4: Reserved. Must be 0b.
Bit 5: 1b =Include the Usage Counter associated with the encryption key in the
MAC.
Bit 6: 1b =Include SerialNum in the MAC.
Bit 7: 1b =Include the first four bytes of SmallZone in the MAC.
Param1
Address
2
The starting address of memory to be written.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of bytes to be written.
Data1
InMac
16
Input MAC to be verified.
Data2
InData
16 or 32
Table 7-25.
Name
ReturnCode
Encrypted Data (ciphertext).
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
47
7.12
INFO Command
The INFO command reads various information about the device from the internal registers. Param1 selects the
information to read. Operation of this command does not require knowledge of any secrets.
Table 7-26.
Selector Field Coding (Param1)
Selector
Name
Description
0x0000
MacCount
Read the MacCount Register. The first byte is always 0x00; the second byte is the
MacCount value.
0x0005
AuthStatus
Read the Authentication Status Register. Returns 0xFFFF to indicate that the
AuthComplete status flag = NoAuth. If the AuthComplete status flag = YesAuth, then the
info returns the AKeyID as 0x00KK, where KK is the Authentication Key ID.
0x0006
DeviceNum
Read the DeviceNum Register. The first byte is the Atmel device code, which is unique
to this Atmel catalog number. The second byte provides the device revision number
See Table 7-29 for DeviceNum codes.
Read the ChipState Device State Register:
0x000C



ChipState
0x0000 indicates ChipState = Active
0xFFFF indicates ChipState = Power-Up
0x5555 indicates ChipState = Wake-up from Sleep
See Appendix L.3, Understanding the ChipState Register.
All Other
Table 7-27.
Reserved
Reserved for future use.
Input Parameters
Name
Size
(bytes)
Notes
Opcode
Info
1
0x0C
Mode
Mode
1
Must be 0x00
Param1
Selector
2
Selects the register to read.
Param2
Zero
2
Always 0x0000
Data
—
0
Table 7-28.
Output Parameters
Size
(bytes)
Name
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
Result
2
Current value of the register.
The command and response packet is transmitted as a block, beginning with the count and ending with a packet
checksum. This block format is described in Section 6.1, Command Block and Packet.
Table 7-29.
DeviceNum Coding for INFO Response and DeviceNum in the Configuration Memory Register
Description
Production Parts
48
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
INFO DeviceNum
DeviceNum Register
0x0A05
0x0A
7.13
KeyCreate Command
The KeyCreate command generates a 16-byte random number, and stores it in either the Key Memory or in the
VolatileKey Register. The newly generated key is then encrypted with the parent key and returned to the Host
along with a MAC.
If Mode bit 0 is 1b, then the target key is in the Key Memory:

KeyConfig[ChildKeyID].Child must be 1b.

The KeyCreate command KeyID field contains the ChildKeyID.

KeyConfig[ChildKeyID].LinkPointer contains the ParentKeyID.
If Mode bit 0 is 0b, then the target key is VolatileKey:

KeyConfig[ParentKeyID].Parent must be 1b.

The KeyCreate command KeyID field contains the ParentKeyID.

The VolUsage field specifies VolatileKey usage restrictions, as defined in Section 4.3, VolatileKey
Configuration.
If KeyConfig[ParentKeyID].AuthKey bit is 1b or the KeyConfig[EKeyID].ChildAuth bit is 1b, then prior
authentication is required using the KeyID stored in KeyConfig[ParentKeyID].LinkPointer.
InMAC and OutMAC are both calculated using the parent key (ParentKeyID). If KeyConfig[ChildKeyID].ChildMac
is 1b, then an InMAC must be provided; otherwise, InMAC will be ignored.
A valid Nonce is required to run the KeyCreate command. If the KeyConfig[ParentKeyID].RandomNonce bit is 1b,
then the Nonce must be random.
If the LockConfig Register is unlocked (0x55), then the random number generator is latched in Test mode, and
the KeyCreate command will generate nonrandom key values. If the LockConfig Register is locked (0x00), then
the RNG generates random numbers and the KeyCreate command functions normally.
The KeyImport command can be used to load a key generated by the KeyCreate command (see Section 7.14,
KeyImport Command).
There is one Random Number Generator (RNG) Seed Register in the EEPROM memory,
which is used by the KeyCreate, Nonce, and Random commands. The RNG Seed
Register is subject to the same Write endurance limitations as the other bytes in the
EEPROM (see Section 9.2, Reliability for the EEPROM specifications). The application
developer must not exceed the Write endurance limit.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
49
Table 7-30.
Input Parameters
Name
Opcode
Size
(bytes)
KeyCreate
Notes
1
0x08
Mode
Mode
1
Bit 0: 1b = Key load target is Key Memory.
0b = Target is VolatileKey (see Section 4.3, VolatileKey Configuration).
Bit 1: 0b = Update the EEPROM RNG Seed Register prior to key
generation.(1)
1b = Generate the key using the existing RNG Seed.
Bit 2: 1b = A key equivalent to what the KeyCreate InMac would be is
generated. Including an InMac with the KeyCreate command is
not required.
Bits 3-4:
Reserved. Must be zero.
Bit 5: 1b = Include the Usage Counter associated with the ParentKeyID in the
MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Param1
KeyID
2
Upper byte is always 0x00. Lower byte is the ChildKeyID for Key Memory
loads or the ParentKeyID for VolatileKey loads.
Param2
VolUsage
2
Usage restrictions for VolatileKey if Mode bit 0 is 0b (see Section 4.3).
Data
InMac
Note:
1.
Table 7-31.
Name
0 or 16
Optional input MAC (see above).
The RNG Seed Register in the EEPROM will be updated automatically if Mode bit 1 = 0b, unless the
Seed Register was previously updated after the most recent Power-On Reset, Wake from the Sleep
state, Reset command, or Tamper Event. Updating the RNG Seed Register increases the
randomness of the keys generated by the KeyCreate command; however, the EEPROM Write
Endurance specification must be respected.
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code (see Section 6.3, ReturnCode).
OutMac
16
Output MAC for the encrypted key.
OutData
16
Encrypted key value (ciphertext).
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
50
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.14
KeyImport Command
The KeyImport command accepts 16 bytes of ciphertext, decrypts the key, verifies the MAC, and stores the key in
the Key Memory or in the VolatileKey Register. The source of the encrypted key is the KeyCreate command.

If TargetKeyID specifies that the target key is stored in the Key Memory:
o
The KeyConfig[TargetKeyID].ImportOK bit must be 1b.
o
KeyConfig[TargetKeyID].LinkPointer contains the decrypt KeyID.
o
The KeyImport command DKeyID field value is ignored.

If the KeyConfig[decrypt KeyID].AuthKey bit is 1b, then prior authentication is required using the KeyID
stored in KeyConfig[decrypt KeyID].LinkPointer.

If TargetKeyID specifies that the target key is VolatileKey (see Section 4.3, VolatileKey Configuration):

o
The KeyConfig[DKeyID].Parent bit must be 1b.
o
The KeyImport command DKeyID field contains the decrypt KeyID.
If the KeyConfig[DKeyID].AuthKey bit is 1b, then prior authentication is required using the KeyID stored in
KeyConfig[DKeyID].LinkPointer.
To use this command, the Nonce must be identical on both devices (see Section 7.20.1, Nonce Synchronization)
and the MacCount must have the same value. Both devices must also contain identical key values, but it is not
necessary for the encrypt KeyID on the origin device to match the decrypt KeyID on the destination device. In this
section, the device that encrypts the key and generates the MAC is referred to as the origin device, and the
device that checks the MAC is referred to as the destination device.
If Mode bit 5, 6, or 7 is 1b, then the associated Usage Counter, SerialNum Register value, or the first four bytes of
the SmallZone Register in the SecondBlock field must match the values on the origin device. The
ManufacturingID Register must be identical on both devices since it is always included in the MAC calculation.
A valid Nonce is required to run the KeyImport command. If the KeyConfig[KeyID].RandomNonce bit is 1b for the
Decrypt Key, then the Nonce must be random.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
51
Table 7-32.
Input Parameters
Size
(bytes)
Name
Opcode
KeyImport
Notes
1
0x19
Mode
Mode
1
Bit 0:
Reserved. Must be 1b.
Bits 1 to 4: Reserved. Must be 0b.
Bits 5 to 7: This value must match Mode bits 5, 6, and 7 value used when
executing the KeyCreate command on the origin device.
Param1
TargetKeyID
2
Upper byte is always 0x00. Lower byte is the location where the decrypted key
will be stored. Legal values: 0x00 to 0x0F (standard keys), 0xFF (volatile key).
Param2
DKeyID
2
Upper byte is always 0x00. If TargetKeyID = 0xFF, then lower byte is the pointer
to the decrypt key. Legal values: 0x00 to 0x0F. If TargetKeyID = 0x00 to 0x0F,
then this field must be present, but is ignored (see above).
Data1
FirstBlock
6
The value of this field must match the first authenticate-only block used when
executing the KeyCreate command on the origin device.
Data2
SecondBlock
16
The value of this field must match the second authenticate-only block used when
executing the KeyCreate command on the origin device. If Mode bits 5, 6, and 7
are 0b, then this field must be present, but is ignored.
Data3
InMac
16
MAC for the encrypted key.
Data4
InData
16
Input key (ciphertext) to be decrypted.
Table 7-33.
Name
ReturnCode
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
52
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.15
KeyLoad Command
The KeyLoad command decrypts 16 bytes of ciphertext data, verifies the MAC, and then writes the Key Memory
or the VolatileKey Register.

If Mode bit 0 specifies that the target key is stored in the Key Memory:
o
KeyConfig[ChildKeyID].Child bit must be 1b.
o
KeyLoad command KeyID field contains the ChildKeyID.
o
KeyConfig[ChildKeyID].LinkPointer contains the ParentKeyID.

If the KeyConfig[ParentKeyID].AuthKey bit is 1b, then prior authentication is required using the KeyID stored
in KeyConfig[ParentKeyID].LinkPointer.

If Mode bit 0 specifies that the target key is VolatileKey (see Section 4.3, VolatileKey Configuration):

o
KeyConfig[ParentKeyID].Parent bit must be 1b.
o
KeyLoad command KeyID field contains the ParentKeyID.
o
VolUsage field specifies VolatileKey usage restrictions, as defined in Section 4.3.
If the KeyConfig[ParentKeyID].AuthKey bit is 1b, then prior authentication is required using the KeyID stored
in KeyConfig[ParentKeyID].LinkPointer.
A valid Nonce is required to run the KeyLoad command. If the appropriate KeyConfig[KeyID].RandomNonce bit is
1b, then the Nonce must be random.
Table 7-34.
Input Parameters
Size
(bytes)
Name
Opcode
KeyLoad
Notes
1
0x09
Mode
Mode
1
Bit 0: 1b = The key load target is Key Memory. If 0b, target is VolatileKey (see
Section 4.3).
Bits 1 to 4: Reserved. Must be 0b.
Bit 5: 1b = Include the Usage Counter associated with ParentKeyID in the MAC.
Bit 6: 1b = Include SerialNum in the MAC.
Bit 7: 1b = Include the first four bytes of SmallZone in the MAC.
Param1
KeyID
2
Upper byte is always 0x00. Lower byte is the ChildKeyID for the Key Memory
loads or the ParentKeyID for VolatileKey loads.
Param2
VolUsage
2
Usage restrictions for VolatileKey if Mode bit 0 is 0b (see Section 4.3).
Data1
InMac
16
Integrity MAC for the input data.
Data2
InData
16
Encrypted key value (ciphertext).
Table 7-35.
Name
ReturnCode
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates
a nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
53
7.16
KeyTransfer Command
The KeyTransfer command copies key data from the User Memory into the VolatileKey Register or into a Key
Register in the Key Memory. The KeyTransfer command allows a user zone to be utilized as an Extended Key
Memory.
Keys stored in the User Memory cannot be utilized directly by the cryptographic commands; the keys must be
transferred into either the VolatileKey Register or into a Key Register in the Key Memory EEPROM prior to use.
The usage restrictions for keys transferred into the VolatileKey Register are transferred from the Key Data
Structure when the KeyTransfer command is executed. Usage restrictions for keys transferred into the Key
Memory are stored in the KeyConfig[TargetKeyID] Register; the KeyTransfer command does not alter the
KeyConfig[TargetKeyID] Register.

If KeyConfig[TargetKeyID].TransferOK is 0b, then the Key Register cannot be updated with the KeyTransfer
command.

If KeyConfig[TargetKeyID].TransferOK is 1b, then the KeyTransfer command can be used to update the Key
register; the KeyConfig[TargetKeyID].LinkPointer contains the user zone number of the extended Key
Memory.

If ZoneConfig[UZ].AuthRead is 1b for the user zone number containing the Key Data Structure, then prior
authentication is required using the KeyID stored in ZoneConfig[UZ].AuthID before a key can be transferred
to either the VolatileKey Register or into a Key Register in the Key Memory EEPROM.
7.16.1 Extended Key Memory Data Structure
When a user zone is utilized as the Extended Key Memory, the keys are stored in the 32-byte Key Data Structure,
as shown in Table 7-36. The first 16 bytes contain the key value, two bytes store the VolUsage restrictions, and
the remaining bytes should contain all zeros. The starting address of each Key Data Structure is required to be
the first byte of a 32-byte physical page (see Appendix B.2, EEPROM Page Boundary).
Table 7-36.
Key Data Structure in User Memory
Address
0h
1h
2h
3h
4h
5h
Table 7-37.
VolUsage
8h
9h
Ah
Bh
Ch
Dh
Eh
Reserved (All bytes 0x00)
Input Parameters
Name
54
7h
Key
XX00h  XX0Fh
XX10h  XX1Fh
6h
Size
(bytes)
Notes
Opcode
KeyTransfer
1
0x1A
Mode
Mode
1
Must be 0x00.
Param1
TargetKeyID
2
Upper byte is always 0x00. Lower byte is the location where the key will be
stored. Legal values: 0x00 to 0x0F (standard keys), 0xFF (volatile key).
Param2
Address
2
Starting address of the key data structure in User Memory.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Fh
Table 7-38.
Name
ReturnCode
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
55
7.17
Legacy Command
The Legacy command executes a single block of the AES engine in the Electronic Code Book mode, with no
input or output formatting. This is known as AES-ECB mode, and can be used to perform primitive AES
encryption or decryption operations. This command does not use the Nonce Register value in the computation
since the entire 16-byte AES input value comes from the input packet.
This command can be executed only if it is enabled for the device by setting ChipConfig.LegacyE to 1b and for
the key by setting KeyConfig[LKeyID].LegacyOK is 1b.
Atmel recommends that any key with KeyConfig[LKeyID].LegacyOK = 1b should never be used with any other
command; the Legacy command can be used to exhaustively attack the key. If the KeyConfig[LKeyID].AuthKey
bit is 1b, then prior authentication is required using the KeyID stored in KeyConfig[LKeyID].LinkPointer.
Key usage limits are enforced if KeyConfig[LKeyID].CounterLimit is 1b (see Section 4.2, Key Configuration). See
Appendix E.2.16, ChipConfig Register for the ChipConfig Register definition.
Table 7-39.
Input Parameters
Name
Size
(bytes)
Notes
Opcode
Legacy
1
0x0F
Mode
Mode
1
Must be 0x00.
Param1
LKeyID
2
Upper byte is always 0x00. Lower byte is the KeyID for the AES key.
Param2
Zero
2
Always 0x0000.
Data
InData
16
Input to the AES block (plaintext).
Table 7-40.
Name
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
OutData
16
The output of the AES block (ciphertext).
The command and response packet is transmitted as a block beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
56
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.18
Lock Command
The Lock command permanently locks various segments of the EEPROM, including the Configuration Memory,
the Key Memory, and the SmallZone register. Key, Counter, and User Memory access restrictions are locked
when the Configuration Memory is locked. SmallZone is locked independently of the other Configuration Memory
registers.
The Atmel recommendation is the Key Memory be locked immediately after loading the
keys.
The Configuration Memory must be locked before locking the Key Memory. Trying to lock
the Key Memory before the Configuration Memory is locked will result in the Lock
command failing.
Three registers in the Configuration Memory control the Lock/Unlock status of the memory segments:
1. The Configuration Memory is controlled by the LockConfig Register (see Appendix E.2.11, LockConfig
Register).
2. The Key Memory is controlled by the LockKeys Register (see Appendix E.2.9, LockKeys Register).
3. The SmallZone Register is controlled by the LockSmall Register (see Appendix E.2.10, LockSmall
Register).
If a Lock Control Register contains 0x55, then the memory segment is unlocked. The Lock command writes 0x00
to the specified lock register to lock the segment. The Lock Control Registers can be written only with the Lock
command, but they can always be read with the BlockRead command. (See Section 7.4, BlockRead Command).
The Lock command Param2 is an optional checksum (CRC-16) generated over the memory segment being
locked. The value in the Checksum field must match the CRC-16 calculated within the device for the lock
operation to succeed. If the Lock command returns a LockError ReturnCode, then the Host system should rewrite
the memory segment and try the lock operation again.
7.18.1 User Zone ReadOnly Activation
After the Configuration Memory is locked, the Lock command can be used to activate the ReadOnly user zone
feature on appropriately configured user zones. The Lock command changes the user zone from Read/Write to
read-only if the following requirements are satisfied:

ZoneConfig[Zone].WriteMode must be 10b or 11b.

Lock command Mode bits 0 and 1 must be set to 11b.

The Lock command zone field contains the target user zone number (Zone).
If Lock command Mode bit 2 is 1b, then the Checksum field contains the CRC-16 of the user zone contents.
If ZoneConfig[Zone].WriteMode is 11b, then the command must include an InMAC generated using the KeyID
stored in ZoneConfig[Zone].WriteID; otherwise, the MAC is ignored.
The Lock command changes the ZoneConfig[Zone].ReadOnly byte from 0x55 (Read/Write) to 0x00 when the
ReadOnly feature is activated. It is not possible to change a read-only user zone to read/write after Configuration
Memory is locked.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
57
Table 7-41.
Input Parameters
Name
Opcode
Size
(bytes)
Notes
1
0x0D
Lock
Mode
Mode
1
Bit 0-1: 00b = Lock the SmallZone Register.
01b = Lock the Key Memory.
10b = Lock the Configuration Memory, excluding SmallZone.
11b = Set the ZoneConfig[Zone].ReadOnly byte to ReadOnly.
Bit 2: 1b = Validate the memory checksum in Param2.
0b = Suppress the Checksum validation (not recommended by Atmel).
Bits 3-4: Reserved. Must be 0x00.
Bit 5: 1b = Include the Usage Counter associated with the
ZoneConfig[Zone].WriteID key in the MAC
(ignored unless Mode[0:1] is 11b).
Bit 6: 1b = Include SerialNum in the MAC
(ignored unless Mode[0:1] is 11b).
Bit 7: 1
= Include the first four bytes of SmallZone in the MAC
(ignored unless Mode[0:1] is 11b).
Param1
Zone
2
Upper byte is always 0x00. If Mode[0:1] is 11b, the lower byte is the user zone to
be locked (see Section 7.18.1, User Zone ReadOnly Activation). For any other
values of Mode[0:1], this field must be 0x0000.
Param2
Checksum
2
If Mode bit 2 is 1b, contains the CRC-16 checksum generated over the memory
segment being locked. If Mode bit 2 is 0b, this parameter must be 0x0000.
Data
InMAC
Table 7-42.
Name
ReturnCode
0 or 16
If Mode[0:1] is 11b, contains the MAC authorizing update of
ZoneConfig[Zone].ReadOnly, as described in Section 7.18.1. For all other
modes, this field is ignored.
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
58
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.19
Nonce Command
The Nonce command generates and/or stores a 96-bit Nonce in the SRAM Nonce Register for use by
subsequent cryptographic commands. It is not necessary to generate a new Nonce before each cryptographic
operation because the ATAES132 includes the MacCount in the MAC calculations (see Appendix I.1, MacCount)
to guarantee uniqueness.
There are two Nonce command options:

Inbound Nonce
The InSeed value is written directly to the Nonce Register. No random number generation or cryptographic
Nonce calculation is performed.
Note:

This option provides no defense against replay attacks or known plaintext attacks.
Random Nonce
The InSeed value is cryptographically combined with the new output of the random number generator and
stored in the Nonce Register. The random number used for the Nonce calculation is returned to the Host in
the response. See Appendix I.28, Nonce Command for the Nonce algorithm.
If the LockConfig Register is unlocked (0x55), then the random number generator is latched in the Test mode,
and executing the Nonce command with Mode bit 0 = 1b will generate nonrandom values. If the LockConfig
Register is locked (0x00), then the RNG generates random numbers and the Nonce command functions normally.
The Nonce remains valid until one of the following events occurs:

A MAC compare operation fails.

MacCount reaches the maximum count (see Appendix I.1, MacCount).

The cryptographic state machine is reset due to either receipt of a Reset command, power cycling (POR), or
activation of the initialization sequence due to Wake-up from the Sleep power state (see Appendix G.2.2,
Wake-Up from Sleep).

Execution of the Nonce command resets MacCount to zero (see Appendix I.1, MacCount).
If a cryptographic operation involves two ATAES132 devices and a synchronized Nonce is required, then the
Nonce synchronization procedure in Section 7.20.1, Nonce Synchronization must be used. The Nonce command
cannot be used to generate a synchronized random Nonce.
There is one Random Number Generator (RNG) Seed Register in the EEPROM memory,
which is used by the KeyCreate, Nonce, and Random Commands. The RNG Seed
Register is subject to the same Write endurance limitations as the other bytes in the
EEPROM (see Section 9.2, Reliability for the EEPROM specifications). The application
developer must not exceed the Write endurance limit.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
59
Table 7-43.
Opcode
Input Parameters
Name
Size
(bytes)
Nonce
1
0x01
Notes
Mode
Mode
1
Bit 0: 1b = Generate a random Nonce using the RNG.
0b = Use the InSeed as the Nonce (Inbound Nonce mode), Mode bit 1 is
ignored.
Bit 1: 0b = Update the EEPROM RNG seed prior to Nonce generation.(1)
1b = Generate a random Nonce using the existing RNG Seed.
Bits 2-7:
Reserved. Must be 0b.
Param1
Zero
2
Always 0x0000.
Param2
Zero
2
Always 0x0000.
Data
InSeed
12
Input seed (required).
Note:
1.
Table 7-44.
Name
ReturnCode
Random
The RNG Seed Register in the EEPROM will be updated automatically if Mode bit 1 = 0b, unless the
Seed Register was previously updated after the most recent Power-On Reset, Wake from the Sleep
state, Reset command, or Tamper Event. Updating the RNG Seed Register increases the
randomness of the Nonce; however, the EEPROM Write endurance specification must be respected.
Output Parameters
Size
(bytes)
Notes
1
Upon success, 0x00 will be returned. Any command execution failure or validation failure
generates a nonzero error code, per Section 6.3, ReturnCode.
0 or 16
In Random Nonce mode, the random number used to generate the Nonce is returned. In
Inbound Nonce mode, no data is returned.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
60
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.20
NonceCompute Command
The NonceCompute command generates the Nonce in a manner that allows two ATAES132 devices to have
identical random Nonces based on random numbers generated by both devices. The identical Nonce values and
identical MacCount values are required to encrypt data on one device for decryption by the other device.
The Random Command must be executed with Mode bit 2 = 1b prior to execution of the NonceCompute
command. The Random Command generates a random number, which the NonceCompute command combines
with the RandomSeed provided by the second ATAES132 to generate the random Nonce.
The Nonce remains valid until one of the following events occurs:

A MAC compare operation fails.

MacCount reaches the maximum count (see Appendix I.1, MacCount).

Cryptographic state machine is reset due to:
o
Receipt of a Reset command,
o
Power Cycling (POR), or
o
Activation of the initialization sequence due to Wake-Up from the Sleep power state (see Appendix
G.2.2, Wake-Up from Sleep).
This command resets MacCount to zero only if the operation succeeds (see Appendix I.1). If an error occurs, the
contents of the Nonce Register and the MacCount Register remained unchanged. The NonceValid flag also
remains unchanged.
7.20.1 Nonce Synchronization
The following procedure synchronizes the Nonce and the MacCount Register on two ATAES132 devices. In this
procedure, the device where the procedure begins is referred to as “A”, and the device it is synchronized with is
referred to as “B”.
1. The Random Command is executed on Device A with Mode bit 2 set to 1b. The first 12 bytes of the random
field value in the response are stored for use in step 2.
2. The Nonce command is executed on Device B with Mode bit 1 set to 1b. The 12-byte random number
generated in step 1 is used as the Nonce command InSeed field value. The 12-byte random field value in
the response is stored for use in step 3.
3. The NonceCompute command is executed on Device A using the 12-byte random number generated in
step 2 as the RandomSeed field value.
4. Successful execution of this procedure sets the Nonce status flags on both devices to:
o
NonceValid = YesNonce
o
NonceRandom = Random
o
NonceCompute = No
o
MacCount is zero on both devices.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
61
Table 7-45.
Input Parameters
Size
(bytes)
Name
Notes
Opcode
NonceCompute
1
0x13
Mode
Mode
1
The value of this field must match the Mode field value used when executing
the Nonce command on the origin device.
Param1
Zero
2
Always 0x0000.
Param2
Zero
2
Always 0x0000.
Data
RandomSeed
12
First 12 bytes output by the Nonce command on the origin device.
Table 7-46.
Name
ReturnCode
Output Parameters
Size
(bytes)
1
Notes
Upon success, 0x00 will be returned. Any command execution failure or validation failure
generates a nonzero error code, per Section 6.3, ReturnCode.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
62
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.21
Random Command
The Random command generates a random number using the internal high-quality random number generator
and the random number generation procedure recommended by NIST in SP800-90 (see Appendix A, Standards
and Reference Documents). The Random Command returns the generated random number to the Host.
There are two Random command options:

Random Number Generation:
If Mode bit 2 = 0b, the 16-byte random number is returned only to the Host; it is not stored internally. This
option does not affect the cryptographic state of the device.

Nonce Synchronization:
If Mode bit 2 = 1b, then the first 12 bytes of the random number are stored in the Nonce Register for later
use by the NonceCompute command. The 16-byte random number is returned to the Host. The Nonce
status flags are changed to:
o
NonceValid = YesNonce
o
NonceRandom = Fixed
o
NonceCompute = Yes (See Section 7.20, NonceCompute Command for the NonceCompute
command and the Nonce synchronization procedure.)
If the LockConfig Register is unlocked (0x55), then the random number generator is latched in the test mode, and
the Random Command will always return 16 bytes of 0xA5. If the LockConfig register is locked (0x00), then the
RNG generates random numbers.
There is one Random Number Generator (RNG) Seed Register in the EEPROM
memory, which is used by the KeyCreate, Nonce, and Random Commands. The RNG
Seed Register is subject to the same Write endurance limitations as the other bytes in
the EEPROM (see Section 9.2, Reliability for the EEPROM specifications). The
application developer must not exceed the write endurance limit.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
63
Table 7-47.
Input Parameters
Size
(bytes)
Name
Opcode
Random
Notes
1
0x02
Mode
Mode
1
Bit 0:
Reserved. Must be 0b.
Bit 1: 0b = Update the EEPROM RNG Seed Register prior to random
number generation(1)
1b = Generate random number using the existing RNG Seed.
Bit 2: 0b = Then return the random number. Do not change the Nonce.
1b = Then store the first 12 bytes of the random number in the Nonce
Register, and return the 16-byte random number.
Bits 3 to 7: Reserved. Must be 0b.
Param1
Zero
2
Always 0x0000.
Param2
Zero
2
Always 0x0000.
Data
-
0
Note:
1.
Table 7-48.
Name
The RNG Seed Register in the EEPROM will be updated automatically if Mode bit 1 = 0b, unless the
Seed Register was previously updated after the most recent Power On Reset, Wake from the Sleep
state, Reset command, or Tamper Event. Updating the RNG Seed Register increases the
randomness of the Random Command output; however, the EEPROM Write endurance specification
must be respected.
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution failure or validation failure
generates a nonzero error code, per Section 6.3, ReturnCode.
Random
16
The random number.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
64
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.22
Reset Command
The Reset command forces ATAES132 to reset the logic, including the AES engine, Nonce, and Authentication
status flag. This command does not return a response.
When a Reset command is received, ATAES132 performs the same power-up reset sequence that occurs during
Wake from the Sleep state. The reset is complete after the WakeUp Ready time, tWupSL.RDY (see Section 9.4.1,
Power-Up, Sleep, Standby, and Wake-Up Timing).
7.22.1 SPI Reset
During the reset of an ATAES132 configured for SPI interface mode, the device will answer the SPI Read Status
Register command with 0xFF to indicate it is busy. When reset is complete, the WIP Status bit changes to 0b to
indicate the device is in the Active state. The ATAES132 will only accept the SPI Read Status Register command
while it is resetting; all other commands will be ignored. The SPI Read Status Register command is described in
Appendix K.3.5, Read Status Register Command (RDSR).
7.22.2 I2C Reset
During the reset of an ATAES132 configured for I2C interface mode, the Host is required to perform ACK polling
using the matching I2C Device Address. The ATAES132 will answer the ACK poll with an I2C NAK to indicate the
device is busy during reset. The ACK poll reply will change to ACK when the device is in the Active state.
ATAES132 will not accept any I2C commands while it is busy. ACK polling is described in Appendix J.3.7,
Acknowledge Polling.
Table 7-49.
Input Parameters
Name
Size
(bytes)
Opcode
Reset
1
0x00
Mode
Mode
1
This byte can be any value.
Param1
Zero
2
Always 0x0000.
Param2
Zero
2
Always 0x0000.
Data
-
0
Table 7-50.
Name
Notes
Output Parameters
Size
(bytes)
Notes
No response packet is returned by the Reset command.
The command packet is transmitted as a block, beginning with the Count and ending with a packet Checksum.
This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
65
7.23
Sleep Command
The Sleep command forces the ATAES132 into one of two Low-Power states; Sleep or Standby. This command
does not return a response.
The Sleep state can be used to extend battery life in portable systems by powering down the ATAES132 internal
circuitry when the device is sleeping. The Standby state puts the internal circuitry in a low-power state to reduce
power consumption while preserving the volatile memory contents and the security state.
A device in the Sleep state will not retain any volatile memory contents or security states. A device in the Sleep
state goes through a full power-up sequence upon Wake-Up.
A device in the Standby state will retain all volatile memory contents. A device in the Standby state does not go
through a power-up sequence upon Wake-Up.
The ATAES132 exits the Sleep or Standby state if a Wake-Up event occurs on the I/O pins. Wakeup is discussed
in Appendix L.2, Power State Transitions.
See Appendix L, Power Management for a detailed description of the ATAES132 sleep, standby, wake-up, and
power management functions.
Table 7-51.
Opcode
Input Parameters
Name
Size
(bytes)
Sleep
1
0x11
Notes
Mode
Mode
1
Bit 0 to 5:
Bit 6: 0b =
1b =
Bits7:
Param1
Zero
2
Always 0x0000.
Param2
Zero
2
Always 0x0000.
Data
-
0
Table 7-52.
Name
Reserved. Must be 0b.
Activate the Sleep state.
Activate the Standby state.
Reserved. Must be 0b.
Output Parameters
Size
(bytes)
Notes
No response packet is returned by the Reset command.
The command packet is transmitted as a block, beginning with the Count and ending with a packet Checksum.
This block format is described in Section 6.1, Command Block and Packet.
66
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
7.24
WriteCompute Command
The WriteCompute command encrypts data and computes the MAC required to execute the EncWrite command
on a second ATAES132 device.
To use this command, the Nonce must be identical on both devices (see Section 7.20.1, Nonce Synchronization)
and MacCount must have the same value on each device. Both devices must also contain identical key values,
but it is not necessary for the KeyID on the origin device to match the KeyID on the Destination device. In this
section, the device that encrypts data and generates the MAC is referred to as the Origin device. The device that
checks the MAC is referred to as the Destination device.
If Mode bit 5, 6, or 7 is 1b, then the associated Usage Counter, SerialNum Register value, or the first four bytes of
the SmallZone Register must be identical on both devices. The ManufacturingID Register must be identical on
both devices, since it is always included in the MAC calculation.
A valid Nonce is required to run the WriteCompute command. If the KeyConfig[EKeyID].RandomNonce bit is 1b,
then the Nonce must be random.
The value of Param2 in the FirstBlock field must match the Count field value.
Table 7-53.
Input Parameters
Size
(bytes)
Name
Notes
Opcode
WriteCompute
1
0x16
Mode
Mode
1
Always 0x0000.
Param1
EKeyID
2
Upper byte is always 0x00. Lower byte is the pointer to the encrypt key.
Legal values: 0x00 to 0x0F, 0xFF.
Param2
Count
2
Upper byte is always 0x00. Lower byte is the number of Data bytes to be
encrypted.
Data1
FirstBlock
6
The value of this field must match the first authenticate-only block to be
used when executing the EncWrite command on the Destination device.
Data2
SecondBlock
16
The value of this field must match the second authenticate-only block to be
used when executing the EncWrite command on the Destination device. If
Mode bits 5, 6, and 7 are 0b, then this field must be present, but is ignored.
Data3
InData
Table 7-54.
Name
1 to 32
Input data to be encrypted (plaintext).
Output Parameters
Size
(bytes)
Notes
ReturnCode
1
Upon success, 0x00 will be returned. Any command execution or validation failure generates a
nonzero error code, per Section 6.3, ReturnCode.
OutMac
16
The input MAC for the EncWrite command on the destination device.
OutData
16 or 32
The encrypted data (ciphertext) to be written to the destination device using the EncWrite
command.
The command and response packet is transmitted as a block, beginning with the Count and ending with a packet
Checksum. This block format is described in Section 6.1, Command Block and Packet.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
67
8.
Pin Lists
8.1
Package Pin List (SOIC and UDFN)
Table 8-1.
Pin
8.2
Package Pin List
Name
Description
Type
1
CS
SPI Mode = CS
I2C Mode = Not used
Input
2
SO
SPI Mode = Serial Data Out
I2C Mode = Not used or AuthO Out
3
NC
No Connect
4
VSS
Ground
5
SI/SDA
SPI Mode = Serial Data In
I2C Mode = Serial Data I/O
6
SCK
Serial Data Clock
7
NC
No Connect
8
VCC
Power Supply
NC
Ground
Input/Output
Input
NC
Power
Pin Descriptions
Table 8-2.
Pin
1
2
68
Output
Pin Descriptions
Name
Description
CS
SPI Chip Select Bar Input pin. In the SPI communication mode, this pin functions as the slave select
input. In the I2C communication mode, this pin is not used, and should be tied to VCC or VSS.
SO
Serial Data Out pin. In the SPI communication mode, this pin functions as the serial data output. In
the I2C communication mode, this pin is not used in the default configuration. It is always in the
high-impedance state. If Auth signaling is enabled, then this pin functions as the AuthO output (see
Appendix J.5, I2C Auth Signaling).
3
NC
No Connect pin. This package pin is not used, and can be left open by the user.
4
VSS
Ground.
5
SI/SDA
Serial Data In pin. In SPI communication mode, this pin functions as the serial data input. In I2C
communication mode, this pin functions as the serial data I/O.
6
SCK
Serial Clock Input pin. In both SPI and I2C serial communication modes, this pin is used as the serial
interface clock.
7
NC
No Connect pin. This package pin is not used, and can be left open by the user.
8
VCC
Supply Voltage. To insure a stable VCC level, it is recommended that VCC be decoupled with a a high
quality capacitor, in the order of 0.01µF, positioned close to the VCC and VSS pins of the ATAES132.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
9.
Electrical Characteristics
9.1
Absolute Maximum Ratings*
Operating Temperature ...................... −40°C to +85°C
Storage Temperature........................ −65°C to +150°C
Maximum Operating Voltage ................................ 6.0V
DC Output Current ............................................. 5.0mA
Voltage on any pin ...................... -0.7V to (VCC + 0.7V)
HBM ESD ...............................................3kV minimum
9.2
Notice*: Stresses beyond those listed under “Absolute
Maximum Ratings” may cause permanent damage to
the device. This is a stress rating only, and the
functional operation of the device at these or any
other condition beyond those indicated in the
operational sections of this specification is not
implied. Exposure to absolute maximum rating
conditions for extended periods may affect device
reliability.
Reliability
The ATAES132 is fabricated with the Atmel high reliability CMOS EEPROM manufacturing technology. The
reliability ratings in Table 9-1 apply to each byte of the EEPROM memory.
Table 9-1.
EEPROM Reliability(1)
Parameter
Min
Write Endurance (each byte)
Typical
Max
Units
100,000
Write Cycles
Data Retention (at 55°C)
10
Years
Data Retention (at 35°C)
30
Read Endurance
Note:
1.
50
Years
Unlimited
Read Cycles
These specifications apply to every byte of the User Memory, Configuration Memory, and Key
Memory. The Write Endurance specification also applies to the Random Number Generator
EEPROM Seed Register.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
69
9.3
DC Characteristics
9.3.1
Supply Characteristics
Table 9-2.
Supply Voltage and Current Characteristics
Applicable over recommended operating range from TA = −40°C to +85°C, VCC = +2.5V to +5.5V (unless
otherwise noted). (1)
Symbol
Parameter
VCC (1)
Supply Voltage
Min
Typ
2.50
fmax(4)
Max
Units
5.50
V
ICC1
Supply Current
VCC = 3.3V at
SO = Open(3), Read, Write, or AES operation.
6
mA
ICC2
Supply Current
VCC = 5.5V at fmax (4)
SO = Open(3), Read, Write, or AES operation.
10
mA
ICC3
Idle Current
VCC = 3.3V or 5.5V at fmax(4)
SO = Open(3), Waiting for a command.
600
800
µA
ISL1
Sleep Current
0.10
0.25
µA
ISL2
Sleep Current
0.25
0.50
µA
ISB1
Standby Current
15
30
µA
ISB2
Standby Current
20
40
µA
Notes: 1.
70
Test Conditions
VCC = 3.3V
CS = VCC(3), Sleep State(5)
VCC = 5.5V
CS = VCC(3), Sleep State(5)
VCC = 3.3V
CS = VCC(3), Standby State(5)
VCC = 5.5V
CS = VCC(3), Standby State(5)
Typical values are at 25°C, and are for reference only. Typical values are not tested or guaranteed.
2.
On power-up, VCC must rise continuously from VSS to the operating voltage, with a rise time no faster
than 1V/µs.
3.
All input pins must be held at either Vss or Vcc during this measurement. In SPI interface mode, the
CS pin must be at VCC. In I2C interface mode, the CS pin may be in either state.
4.
Measurement is performed at the maximum serial clock frequency. In the I2C interface mode, fmax is
1MHz. In the SPI interface mode, fmax is 10MHz.
5.
See Appendix L, Power Management for Sleep and Standby state information. The Sleep command
is described in Section 7.23,Sleep Command.
6.
The ATAES132 does not support hot swapping or hot plugging. Connecting or disconnecting this
device to a system while power is energized can cause permanent damage to the ATAES132.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
9.3.2
I/O Characteristics
Table 9-3.
DC Characteristics
Applicable over recommended operating range from TA = −40°C to +85°C, VCC = +2.5V to +5.5V (unless
otherwise noted).
Symbol
Parameter
Test conditions
Min
Max
Units
ILI
Input Current
VIN = 0V or VCC
−3.0
3.0
µA
ILO
Output Leakage
VOUT = 0V or VCC
−3.0
3.0
µA
VIL(1)
Input Low-Voltage
−0.5
VCC x 0.3
V
VIH (1)
Input High-Voltage
VCC x 0.7
VCC + 0.5
V
VOL1(2)
Output Low-Voltage,
Except SI/SDA in I2C Mode
IOL = 3.0mA
0
0.4
V
VOH1(2)
Output High-voltage,
Except SI/SDA in I2C Mode
IOH = −3.0mA
VCC − 0.8
VCC
V
VOL2
Output Low-voltage,
SI/SDA Pin in the I2C Mode Only
IOL = 3.0mA
0
0.4
V
Notes: 1.
2.
9.4
VIL min and VIH max are for reference only, and are not tested.
In the I2C interface mode, if Auth signaling is enabled, the SO pin functions as the AuthO output (see
Appendix J.5, I2C Interface). When AuthO is high, the VOH1 specification applies. When AuthO is not
high, the pin is in the high-impedance state; the VOL1 specification is not applicable.
AC Characteristics
Table 9-4.
AC Characteristics
Applicable over recommended operating range from TA = −40°C to + 85°C, VCC = +2.5V to +5.5V.
Symbol
tWC1
Parameter
User Zone Write Cycle
tWC2
Key Zone Write Cycle
Time(1)
Time(1)
Command Response Time
Note:
1.
Min
Max
Units
6.0
9.0
ms
12.0
16.0
ms
See Appendix N.
The write cycle time includes the EEPROM Erase, Write, and Automatic Data Write verification
operations.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
71
9.4.1
Power-Up, Sleep, Standby, and Wake-Up Timing
Table 9-5.
Power-Up, Sleep, and Wake-Up Timing Characteristics(1)(2)
Applicable over recommended operating range from TA = −40°C to + 85°C, VCC = +2.5V to +5.5V.
72
Symbol
Parameter
tPU.STATUS
Min
Typ
Max
Units
Power-Up Time, Status
500
600
µs
tPU.RDY
Power-Up Ready Time
1200
1500
µs
tSB
Sleep Time, Entering the Standby State
65
100
µs
tSL
Sleep Time, Entering the Sleep State
55
90
µs
tWupSB.STATUS
Wake-Up Status Time, Standby State
50
100
µs
tWupSB.RDY
Wake-Up Ready Time, Standby State
200
240
µs
tWupSL.STATUS
Wake-Up Status, Sleep State
500
600
µs
tWupSL.RDY
Wake-Up Ready Time, Sleep State
1200
1500
µs
Notes: 1.
All values are based on characterization and are not tested. Typical values are at 25°C and are for
reference only.
2.
See Appendix L, Power Management for Power-Up, Sleep, Standby, and Wake-Up specifications.
The Sleep command is described in Section 7.23,Sleep Command.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
9.4.2
I2C Interface Timing
Table 9-6.
AC Characteristics of I2C Interface
Applicable over recommended operating range from TA = −40°C to + 85°C, VCC = +2.5V to +5.5V, CL = 1 TTL
Gate and 100pF (unless otherwise noted).
Symbol
Parameter
Min
fSCK
SCK Clock Frequency
Max
Units
1
MHz
70
percent
SCK Clock Duty Cycle
30
tHIGH
SCK High Time
400
ns
tLOW
SCK Low Time
400
ns
tSU.STA
Start Setup Time
250
ns
tHD.STA
Start Hold Time
250
ns
tSU.STO
Stop Setup Time
250
ns
tSU.DAT
Data in Setup Time
100
ns
tHD.DAT
Data in Hold Time
0
ns
tR
Input Rise Time(1)
300
ns
100
ns
550
ns
tF
Input Fall
tAA
Clock Low to Data Out Valid
50
tDH
Data Out Hold Time
50
ns
tBUF
Time bus must be free before a new transmission can start.(1)
500
ns
Notes: 1.
2.
Time(1)
Values are based on characterization, and are not tested.
AC measurement conditions:

RL (connects between SDA and VCC): 2.0kΩ (for VCC +2.5V to +5.0V)

Input pulse voltages: 0.3VCC to 0.7VCC

Input rise and fall times: ≤ 50ns

Input and output timing reference voltage: 0.5VCC
Figure 1-1. I2C Synchronous Data Timing
tHIGH
tF
tR
tLOW
SCL
tSU.STA
tLOW
tHD.STA
tHD.DAT
tSU.DAT
tSU.STO
SDA IN
tAA
tDH
tBUF
SDA OUT
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
73
9.4.3
SPI Interface Timing
Table 9-7.
AC Characteristics of SPI Interface
Applicable over recommended operating range from TA = −40°C to + 85°C, VCC = +2.5V to +5.5V,
CL = 1 TTL Gate and 30pF (unless otherwise noted).
Symbol
Parameter
Min
Max
Units
fSCK
SCK Clock Frequency
0
10
MHz
SCK Clock Duty Cycle
30
70
percent
tWH
SCK High Time
40
ns
tWL
SCK Low Time
40
ns
tCS
CS High Time
50
ns
tCSS
CS Setup Time
50
ns
tCSH
CS Hold Time
50
ns
tSU
Data In Setup Time
10
ns
tH
Data In Hold Time
10
ns
tRI
Time(1)
Input Rise
tFI
Input Fall
tV
Output Valid
0
tHO
Output Hold Time
0
tDIS
Output Disable Time
Note:
1.
Time(1)
2
µs
2
µs
40
ns
ns
50
ns
Values are based on characterization, and are not tested.
Figure 1-2. SPI Synchronous Data Timing
tCS
VIH
CS
VIL
tCSH
tCSS
SCK
VIH
tWH
tWL
VIL
tH
tSU
SI
VIH
VALID IN
VIL
tV
SO
74
VOH
HI-Z
VOL
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
tHO
tDIS
HI-Z
Appendix A. Standards and Reference Documents
A.1
National and International Standards
The ATAES132 is designed to comply with the requirements of the AES Standard.
FIPS-197
A.2
Specification for the Advanced Encryption Standard (AES). 26 November 2001.
Available at: http://csrc.nist.gov/groups/ST/toolkit/block_ciphers.html.
References
SP800-38A
NIST Special Publication 800-38A. Recommendation for Block Cipher Modes of Operation:
Methods and Techniques. December 2001.
Available at: http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html.
SP800-38C
NIST Special Publication 800-38C. Recommendation for Block Cipher Modes of Operation:
The CCM Mode for Authentication and Confidentiality. May 2004.
Available at: http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html.
SP800-90
NIST Special Publication 800-90. Recommendation for Random Number Generation Using
Deterministic Random Bit Generators. (Revised) March 2007.
Available at: http://csrc.nist.gov/groups/ST/toolkit/random_number.html.
JEP106xx
JEDEC Standard. Standard Manufacturer's Identification Code. JEDEC Solid State
Technology Association. Updated periodically. JEP106AA April 2009.
Available at http://www.jedec.org.
ISO/IEC7816-1:1998 Identification Cards – Integrated Circuit(s) Cards with Contacts – Part 1:
Physical Characteristics. October 1998.
Available at: http://www.iso.org or http://www.ansi.org or from National Standards Body.
ISO/IEC7816-2:2007 Identification Cards – Integrated Circuit(s) Cards with Contacts – Part 2: Dimension and
Location of the Contacts. October 2007.
Available at: http://www.iso.org or http://www.ansi.org or from National Standards Body.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
75
Appendix B. Memory Map
B.1
Memory Map
Reserved memory cannot be written or read.
Table B-1.
76
ATAES132 Memory Map
Byte Address
Description
0000h-0FFFh
User Memory
1000h-EFFFh
Reserved
F000h-F05Fh
Configuration Memory – Device Config (See Appendix E, Configuration Memory Map)
F060h-F07Fh
Configuration Memory – CounterConfig (See Appendix E)
F080h-F0BFh
Configuration Memory – KeyConfig
(See Appendix E)
F0C0h-F0FFh
Configuration Memory – ZoneConfig
(See Appendix E)
F100h-F17Fh
Configuration Memory - Counters
(See Appendix E)
F180h-F1DFh
Configuration Memory – FreeSpace
(See Appendix E)
F1E0h-F1FFh
Configuration Memory – SmallZone
(See Appendix E)
F200h-F2FFh
Key Memory
(See Appendix F, Key Memory Map)
F300h-FDFFh
Reserved
FE00h
Command / Response Memory Buffer (See Appendix D, Command Memory Map)
FE01h-FFDFh
Reserved
FFE0h
I/O Address Reset
FFE1h-FFEFh
Reserved
FFF0h
STATUS Register
FFF1h-FFFFh
Reserved
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
(See Appendix C, User Memory Map)
B.2
EEPROM Page Boundary
The ATAES132 EEPROM has 32-byte physical pages. An EEPROM Write can never cross the boundary
between two physical pages. BlockRead and EncRead operations cannot cross the boundary between two
physical pages. Table B-2 illustrates the page boundary locations for the ATAES132.
Table B-2.
ATAES132 EEPROM Page Boundary Locations
Address
XX00h-XX0Fh
XX10h-XX1Fh
XX20h-XX2Fh
XX30h-XX3Fh
XX40h-XX4Fh
XX50h-XX5Fh
XX60h-XX6Fh
XX70h-XX7Fh
XX80h-XX8Fh
XX90h-XX9Fh
XXA0h-XXAFh
XXB0h-XXBFh
XXC0h-XXCFh
XXD0h-XXDFh
XXE0h-XXEFh
XXF0h-XXFFh
0h
1h
2h
3h
4h
5h
6h
7h
8h
9h
Ah
Bh
Ch
Dh
Eh
Fh
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
32-byte EEPROM Page
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
77
Appendix C. User Memory Map
The 32Kb User Memory consists of 16 user zones, each containing 2Kb (256 bytes) of memory. The physical
page size is 32 bytes; Write operations cannot cross page boundaries.
Every Memory Zone has an independent set of access restrictions, and all bytes within a zone have the same
access restrictions. The Configuration Memory (Appendix E, Configuration Memory Map) contains an access
register for each Memory Zone that defines the access requirements for the User Zone.
Table C-1.
78
User Memory Map
Byte Address
Description
0000h-00FFh
User Zone 0
0100h-01FFh
User Zone 1
0200h-02FFh
User Zone 2
0300h-03FFh
User Zone 3
0400h-04FFh
User Zone 4
0500h-05FFh
User Zone 5
0600h-06FFh
User Zone 6
0700h-07FFh
User Zone 7
0800h-08FFh
User Zone 8
0900h-09FFh
User Zone 9
0A00h-0AFFh
User Zone A
0B00h-0BFFh
User Zone B
0C00h-0CFFh
User Zone C
0D00h-0DFFh
User Zone D
0E00h-0EFFh
User Zone E
0F00h-0FFFh
User Zone F
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix D. Command Memory Map
The ATAES132 commands are executed by writing the command packet to the virtual memory using standard
SPI or I2C Write commands. The response packet is retrieved by reading it from the virtual memory using
standard SPI or I2C Read commands. The Command/Response Memory Buffer is 64 bytes.
The ATAES132 commands are executed by writing the command packet to virtual memory at starting address
0xFE00 using standard Write commands (see Appendix J, I2C Interface and Appendix K, SPI Interface). The
response packet is retrieved by reading from the virtual memory at starting address 0xFE00 using standard Read
commands. The Device Status Register (STATUS) is located at 0xFFF0 (see Appendix G, Understanding the
STATUS Register).
To reset the address pointer in the Command/Response Memory Buffer to the base address of the buffer, the
Host writes one or more bytes to the IO Address Reset Register at address 0xFFE0 using the standard Write
command. Any value can be written to the IO Address Reset Register to reset the buffer address pointer.
Table D-1.
D.1
Command/Response Virtual Memory Map
Byte Address
Description
FE00h
Command/Response Memory Buffer
FE01h-FFDFh
Reserved
FFE0h
I/O Address Reset
FFE1h-FFEFh
Reserved
FFF0h
STATUS Register
FFF1h-FFFFh
Reserved
Command Memory Buffer
The Command Memory Buffer is a write-only buffer memory that is used by writing a command block to the buffer
at the base address of 0xFE00. After the Host completes its Write operation to the buffer, the ATAES132 verifies
the integrity of the block by checking the 16-bit Checksum, and then executes the requested operation. See
Section 6.1, Command Block and Packet for a description of the crypto command block.
Write operations that begin at any other location within the buffer are invalid and will not be processed by the
ATAES132.
Table D-2.
Command Memory Buffer Map
Base
Address
Base
+1
Base
+2
Base
+3
.......
.......
.......
.......
Base
+ N-2
Base
+ N-1
Count
Opcode
Mode
Param1
Param1
Param2
.......
DataX
CRC1
CRC2
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
79
D.1.1
Using the Command Memory Buffer
The Host should write a single byte to the IO Address Reset Register before writing a new command block to the
Command Memory Buffer. This resets the buffer address pointer to the base address. The Host then writes the
ATAES132 command block to the buffer using one or more standard SPI or I2C Write commands. After the entire
command block is written by the Host microcontroller, the ATAES132 checks the 16-bit Checksum and executes
the command. The Host should read the STATUS Register to determine if an error occurred or if the response is
ready to be read.
If a Checksum error occurs, then the buffer address pointer must be reset by the Host before the command block
is retransmitted. If no errors occur, then the response can be read from the Response Memory Buffer, as
described in Appendix D.2.10, Using the Response Memory Buffer (see Appendix G, Understanding the STATUS
Register for examples).
The Command Memory Buffer size is 64 bytes. If the Host writes more than 64 bytes to the buffer, it will cause a
buffer overflow error. If the Host hardware must send more bytes to the ATAES132 than are required to transmit a
command block (due to Host hardware limitations), then all bytes transmitted after the block Checksum must
contain 0xFF.
D.2
Response Memory Buffer
The Response Memory Buffer is a read-only memory buffer that is used by reading a response from the buffer at
the base address of 0xFE00. The base address of the Response Memory Buffer contains the first byte of the
response packet after a Crypto command is processed. See Section 6.1, Command Block and Packet for a
description of the crypto response packet.
Read operations that begin at any location above the base address are invalid and will either be NAKed (in I2C
mode) or ignored (output will tri-state in SPI mode).
Table D-3.
Response Memory Buffer Map Following a Crypto Command
Base
Address
Base
+1
Base
+2
Base
+3
......
......
......
......
Base
+ N-2
Base
+ N-1
Count
ReturnCode
Data1
Data2
Data3
.......
.......
DataX
CRC1
CRC2
The Response Memory Buffer is also used to report errors that occur during execution of standard I2C or SPI
Write commands. When the I2C or SPI command execution is complete (as indicated by the STATUS Register),
the Response Memory Buffer contains a block containing an error code (ReturnCode) if an error occurred;
otherwise, it contains a block containing ReturnCode = 0x00. Reading the Response Memory Buffer does not
alter the contents of the Response Memory Buffer or the STATUS Register (see Appendix G). See Section 6.3,
ReturnCode for the error descriptions.
Table D-4.
80
Response Memory Buffer Map Following a Standard I2C or SPI Write Operation
Base
Address
Base
+1
Base
+ N-2
Base
+ N-1
......
......
......
......
......
......
Count
ReturnCode
CRC1
CRC2
FFh
FFh
FFh
FFh
FFh
FFh
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
D.2.1
Using the Response Memory Buffer
After an ATAES132 command is executed, the RRDY bit of the STATUS Register is set to 1b to indicate that a
new response is available in the Response Memory Buffer. The Host reads the response block from the buffer
using one or more standard SPI or I2C Read commands. After the entire response block is read, the Host
microcontroller checks the 16-bit Checksum.
If a Checksum error occurs, then the buffer address pointer must be reset by the Host before the response block
is reread. If the Host reads more bytes from the response buffer than necessary to retrieve the block, then all
bytes after the block Checksum will contain 0xFF (see Appendix G for examples). The Response Memory Buffer
size is 64 bytes.
D.3
IO Address Reset Register
Writing the IO Address Reset Register (address 0xFFE0) with any value causes the address pointers in the
Command Memory Buffer and the Response Memory Buffer to be reset to the base address of the buffer. The IO
Address Reset Register can be written with 1 to 32 bytes of data without generating an error; the data bytes will
be ignored.
Writing the IO Address Reset Register does not alter the contents of the Response Memory Buffer or the value of
the STATUS Register. Writing the IO Address Reset Register clears the Command Memory Buffer (see Appendix
G, Understanding the STATUS Register for examples).
D.4
Device Status Register (STATUS)
The Device Status Register is used for handshaking between the Host microcontroller and the ATAES132. The
Host is expected to read the STATUS Register before sending a command or reading a response. See Appendix
G for the definition and behavior of the STATUS Register. If the ATAES132 is configured in SPI interface mode,
the STATUS Register can also be read using the SPI RDSR command, as described in Appendix K.3.5, Read
Status Register Command (RDSR).
Reading the STATUS Register does not alter the contents of the Command Memory Buffer, the contents of the
Response Memory Buffer, or the value of the STATUS Register.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
81
Appendix E. Configuration Memory Map
The ATAES132 Configuration Memory is located from address 0xF000 to address 0xF1FF. The Configuration
Memory can always be read using the BlockRead command (see Section 7.4, BlockRead Command). See
Appendix E.2, Configuration Register Descriptions for descriptions of each configuration register. A memory map
showing the default register values appears in Appendix O, Default Configuration.
E.1
Configuration Memory Map
Table E-1.
Address
ATAES132 Configuration Memory Map
0h / 8h
1h / 9h
2h / Ah
3h / Bh
F000h-F007h
SerialNum
F008h-F00Fh
LotHistory
F010h-F017h
JEDEC
Reserved
5h / Dh
EncReadSize
EncWrtSize
DeviceNum
Reserved
F020h-F027h
LockKeys
LockSmall
LockConfig
Reserved
Reserved
ManufacturingID
F030h-F037h
7h / Fh
EEPageSize
PermConfig
Reserved
Reserved
F038h-F03Fh
F040h-F047h
6h / Eh
Algorithm
F018h-F01Fh
F028h-F02Fh
I2CAddr
F048h-F04Fh
ChipConfig
RFU
RFU
Reserved
RFU
F050h-F057h
RFU
F058h-F05Fh
82
4h / Ch
F060h-F067h
CounterConfig 00
CounterConfig 01
CounterConfig 02
CounterConfig 03
F068h-F06Fh
CounterConfig 04
CounterConfig 05
CounterConfig 06
CounterConfig 07
F070h-F077h
CounterConfig 08
CounterConfig 09
CounterConfig 0A
CounterConfig 0B
F078h-F07Fh
CounterConfig 0C
CounterConfig 0D
CounterConfig 0E
CounterConfig 0F
F080h-F087h
KeyConfig 00
KeyConfig 01
F088h-F08Fh
KeyConfig 02
KeyConfig 03
F090h-F097h
KeyConfig 04
KeyConfig 05
F098h-F09Fh
KeyConfig 06
KeyConfig 07
F0A0h-F0A7h
KeyConfig 08
KeyConfig 09
F0A8h-F0AFh
KeyConfig 0A
KeyConfig 0B
F0B0h-F0B7h
KeyConfig 0C
KeyConfig 0D
F0B8h-F0BFh
KeyConfig 0E
KeyConfig 0F
F0C0h-F0C7h
ZoneConfig 00
ZoneConfig 01
F0C8h-F0CFh
ZoneConfig 02
ZoneConfig 03
F0D0h-F0D7h
ZoneConfig 04
ZoneConfig 05
F0D8h-F0DFh
ZoneConfig 06
ZoneConfig 07
F0E0h-F0E7h
ZoneConfig 08
ZoneConfig 09
F0E8h-F0EFh
ZoneConfig 0A
ZoneConfig 0B
F0F0h-F0F7h
ZoneConfig 0C
ZoneConfig 0D
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Address
F0F8h-F0FFh
0h / 8h
1h / 9h
2h / Ah
3h / Bh
ZoneConfig 0E
4h / Ch
5h / Dh
6h / Eh
7h / Fh
ZoneConfig 0F
F100h-F107h
Counter 00
F108h-F10Fh
Counter 01
F110h-F117h
Counter 02
F118h-F11Fh
Counter 03
F120h-F127h
Counter 04
F128h-F12Fh
Counter 05
F130h-F137h
Counter 06
F138h-F13Fh
Counter 07
F140h-F147h
Counter 08
F148h-F14Fh
Counter 09
F150h-F157h
Counter 0A
F158h-F15Fh
Counter 0B
F160h-F167h
Counter 0C
F168h-F16Fh
Counter 0D
F170h-F177h
Counter 0E
F178h-F17Fh
Counter 0F
F180h-F187h
F188h-F18Fh
F190h-F197h
F198h-F19Fh
F1A0h-F1A7h
F1A8h-F1AFh
F1B0h-F1B7h
FreeSpace
F1B8h-F1BFh
F1C0h-F1C7h
F1C8h-F1CFh
F1D0h-F1D7h
F1D8h-F1DFh
F1E0h-F1E7h
F1E8h-F1EFh
F1F0h-F1F7h
SmallZone
F1F8h-F1FFh
Notes: 1.
Orange registers = Locked at the factory and cannot be changed by the customer.
2.
Blue registers = Lock registers can be changed only by using the Lock command (see Section 7.18,
EncRead Command).
3.
Green registers = Configuration registers can be written by the customer prior to locking (by setting
LockConfig to 0x00 using the Lock command).
4.
Yellow registers = The SmallZone Register can be written by the customer prior to locking (by setting
LockSmall to 0x00 using the Lock command). SmallZone is locked separately from the remainder of
the Configuration Memory.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
83
E.2
Configuration Register Descriptions
Each register in the Configuration Memory is briefly described in this section. References are provided to detailed
information in other sections of this specification. The registers are described in the same order in which they
occur in the memory map in Appendix E.1, Configuration Memory Map.
E.2.1
SerialNum Register
SerialNum is an 8-byte, read-only register that is programmed by Atmel at the factory. The contents of this
register are guaranteed to be unique on each unit over the production life of the ATAES132 product family. The
contents of this register can optionally be included in cryptographic calculations by setting Mode bit 6 to 1b, as
described in the command definitions in Section 7,Command Definitions. This register cannot be changed by the
customer.
It is recommended that the SerialNum Register value be used to perform key diversification.
E.2.2
LotHistory Register
LotHistory is an 8-byte, read-only register that is programmed by Atmel at the factory. This register contains
proprietary data that is not intended for customer use. This register cannot be changed by the customer.
E.2.3
JEDEC Register
JEDEC is a 2-byte, read-only register that is programmed by Atmel at the factory. The JEDEC register always
contains 0x001F, which is the JEDEC Manufacturing Identification Code assigned to Atmel. This register cannot
be changed by the customer.
E.2.4
Algorithm Register
Algorithm is a 2-byte, read-only register that is programmed by Atmel at the factory. The default value of 0x0000
indicates 128-bit AES-CCM mode. This register cannot be changed by the customer.
E.2.5
EEPageSize Register
EEPageSize is a 1-byte, read-only register that is programmed by Atmel at the factory. The default value of 0x20
indicates a 32-byte physical EEPROM page size. This register cannot be changed by the customer.
E.2.6
EncReadSize Register
EncReadSize is a one-byte, read-only register that is programmed by Atmel at the factory. The default value of
0x20 indicates that 32 bytes is the maximum data length that can be returned by the EncRead command. This
register cannot be changed by the customer.
E.2.7
EncWrtSize Register
EncWrtSize is a 1-byte, read-only register that is programmed by Atmel at the factory. The default value of 0x20
indicates that 32 bytes is the maximum data length that can be written using the EncWrite command. This register
cannot be changed by the customer.
84
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
E.2.8
DeviceNum Register
DeviceNum is a 1-byte, read-only register that is programmed by Atmel at the factory. This byte indicates the
device type (32Kb, ATAES1xx family). The INFO command returns this byte, along with a hardware revision byte,
as shown in Table 7-29. This register cannot be changed by the customer.
Table E-2.
DeviceNum Coding for INFO Command Response and DeviceNum in Configuration Memory Register
Description
Production Parts
INFO DeviceNum
DeviceNum Register
0x0A05
0x0A
See Section 7.12, INFO Command for the INFO command description.
E.2.9
LockKeys Register
LockKeys is a 1-byte register that controls write access to Key Memory. The default value of LockKeys is the
unlocked state (0x55). The LockKeys Register can be changed only by using the Lock command (see Section
7.18, Lock Command). After the Lock command is run, this register will contain 0x00, and the Key Memory will be
locked. It is impossible to unlock memory that has been locked.
E.2.10 LockSmall Register
LockSmall is a 1-byte register that controls write access to the SmallZone Register. The default value of
LockSmall is the unlocked state (0x55). The LockSmall Register can be changed only by using the Lock
command (see Section 7.18). After the Lock command is run, this register will contain 0x00, and the SmallZone
Register will be locked. It is impossible to unlock memory that has been locked.
E.2.11 LockConfig Register
LockConfig is a 1-byte register that controls write access to Configuration Memory except the SmallZone
Register. The default value of LockConfig is the unlocked state (0x55). The LockConfig Register can be changed
only by using the Lock command (see Section 7.18). After the Lock command is run, this register will contain
0x00, and the Configuration Memory will be locked except for the SmallZone Register, which is controlled by the
LockSmall Register. It is impossible to unlock memory that has been locked.
If the LockConfig register is unlocked (0x55), then the random number generator is latched in Test mode, and the
Random Command will always return 16 bytes of 0xA5. The KeyCreate and Nonce commands will create
nonrandom results when the RNG is in Test mode. If the LockConfig Register is locked (0x00), then the RNG
generates random numbers, and the random KeyCreate and Nonce commands function normally.
E.2.12 Reserved Registers
Any Configuration Memory locations that are identified as reserved in Table E-1, the Configuration Memory map,
are reserved by Atmel for future use. All reserved registers are read-only registers that are programmed by Atmel
at the factory. These memory locations are programmed with Atmel proprietary data. The contents of the
reserved registers will vary and are not intended for any customer use. These registers cannot be changed by the
customer.
E.2.13 ManufacturingID Register
ManufacturingID is a 2-byte, read-only register that is programmed by Atmel at the factory. This register contains
a customer-specific value. The default ManufacturingID Register contains 0x0000. This register cannot be
changed by the customer.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
85
E.2.14 PermConfig Register
PermConfig is a 1-byte read-only register that is programmed by Atmel at the factory. This register cannot be
changed by the customer. The default value of 0x01 enables all cryptographic commands.
Table E-3.
PermConfig Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Reserved for Future Use
Bit 0
EncryptE
If the EncryptE bit is 1b, then the Encrypt, Decrypt, and Legacy command availability is determined by the
ChipConfig.EncDecrE and ChipConfig.LegacyE bits. If the EncryptE bit is 0b, then the Encrypt, Decrypt, and
Legacy commands are disabled. See the ChipConfig Register definition in Appendix E.2.16, ChipConfig Register
for additional information.
E.2.15 I2CAddr Register
I2CAddr is a 1-byte register that controls the ATAES132 serial interface. The customer can write the I2CAddr
Register using standard I2C or SPI Write commands, unless the Configuration Memory has been locked (see
Appendix E.2.11, LockConfig Register).
Table E-4.
Bit 7
I2CAddr Register Definition
Bit 6
Bit 5
Bit 4
I2 C
Bit 3
Bit 2
Bit 1
Device Address
Bit 0
SPI/I2C
Bit 0 selects the serial interface mode, 0b selects SPI interface mode, and 1b selects I2C interface mode. If bit 0 is
0b, then the contents of bits one to seven are ignored.
The default value of the I2CAddr Register depends on the ordering code (see Appendix Q, Ordering Information):
I2CAddr is 0xA1 (the I2C Device Address is 0xA0) for catalog numbers with an I2C interface configuration, and
I2CAddr is 0x00 for catalog numbers with a SPI interface configuration. See Appendix J, I2C Interface for the I2C
interface specifications. See Appendix K, SPI Interface for the SPI interface specifications.
E.2.16 ChipConfig Register
ChipConfig is a 1-byte register that controls device-level functionality of the ATAES132. The customer can write
the ChipConfig register using standard I2C or SPI Write commands, unless the Configuration Memory has been
locked (see the LockConfig Register definition in Section E.2.11).
Table E-5.
Bit 7
ChipConfig Register Definition
Bit 6
Bit 5
PowerUpState
Bit 4
Bit 3
Reserved for Future Use
Bit 2
Bit 1
Bit 0
EncDecrE
LegacyE
If the ChipConfig.LegacyE bit is 1b, then the Legacy command (Section 7.17, Legacy Command) is enabled. If
ChipConfig.LegacyE is 0b, then a parse error ReturnCode will be returned in response to a Legacy command. If
the ChipConfig.EncDecrE bit is 1b, then the Encrypt command (Section 7.10, Encrypt Command) and Decrypt
command (Section 7.8, Decrypt Command) are enabled. If ChipConfig.EncDecrE is 0b, then a parse error
ReturnCode will be returned in response to an Encrypt command or Decrypt command.
86
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
The default configuration of the PermConfig Register allows the customer to control the availability of the Encrypt,
Decrypt, and Legacy commands using the ChipConfig Register; however, the ChipConfig.EncDecrE bit and
ChipConfig.LegacyE bit will be ignored if the ATAES132 is configured at the factory to disable external encryption
(see the PermConfig Register definition in Appendix E.2.14, PermConfig Register).
Table E-6.
Coding of the Power-UpState Bits in the ChipConfig Register
Bit 7
Bit 6
Description
1
1
1
0
0
1
Device goes to the Standby state at Power-Up.
0
0
Device goes to the Sleep state at Power-Up.
Device goes to the Active state at Power-Up.
The ChipConfig.PowerUpState bits are used to configure the behavior of the ATAES132 at initial power-up. Table
E-6 shows the definition of the ChipConfig.PowerUpState bits. See Appendix L, Power Management for detailed
information regarding the ATAES132 power management functions.
The default value of the ChipConfig Register is 0xC3. In this configuration, the ATAES132 goes to the Active
state at Power-Up, and the Encrypt, Decrypt, and Legacy commands are enabled.
E.2.17 RFU Registers
Any Configuration Memory locations that are identified as RFU in Table E-1, the Configuration Memory map, are
registers in customer-writable memory that are reserved by Atmel for future use (in a future ATAES family product
or in a major product revision). The default value of the RFU registers is 0xFF.
The customer can write the RFU registers using standard I2C or SPI Write commands, unless the Configuration
Memory has been locked (see the LockConfig Register definition in Appednix E.2.11, LockConfig Register). The
RFU registers should be programmed to 0xFF only; all other values are prohibited.
E.2.18 CounterConfig Registers
The 16 CounterConfig Registers are used to individually configure the 16 Counters. Each CounterConfig Register
controls one Counter. CounterConfig 00 controls Counter 00, CounterConfig 01 controls Counter 01, etc.
Each CounterConfig register is a 2-byte array that is stored as shown in Table E-7. The customer can write the
CounterConfig Registers using standard I2C or SPI Write commands unless the Configuration Memory has been
locked (see the LockConfig Register definition in Section E.2.11). See Appendix H, Understanding Counters for
additional Counter information.
Table E-7.
Address
F060h-F067h
Partial Configuration Memory Map Showing CounterConfig Register Byte Locations for Four Registers
0h
1h
CounterConfig 0
Byte 0
Byte 1
2h
3h
CounterConfig 1
Byte 0
Byte 1
4h
5h
CounterConfig 2
Byte 0
Byte 1
6h
7h
CounterConfig 3
Byte 0
Byte 1
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
87
The CounterConfig Register imposes restrictions on the usage of the Counter command (see Section 7.5) with a
Counter. The CounterConfig bits have no impact on the functionality of a Key Usage Counter. If a Counter is
identified in a KeyConfig Register (see Appendix E.2.19) as a Key Usage Counter, then the Counter will
increment each time the Key is used. The CounterConfig[CntID].IncrementOK is typically set to 0b to prohibit the
Counter Command from incrementing a Key Usage Counter.
Table E-8.
Definition of the CounterConfig Register Bits(1)
CounterConfig Field
Byte
Bit
IncrementOK
0
0
1b = Increments using the Counter command are permitted.
0b = Increments using the Counter command are prohibited.
RequireMAC
0
1
1b = Increment operation requires an input MAC.
0b = An input MAC is prohibited.
Reserved
0
2 to 7
Reserved for future use. All bits must be 0b.
IncrID
1
0 to 3
KeyID of the key used to generate the Counter command input MAC for
increment operations.
MacID
1
4 to7
KeyID of the key used to generate the Counter command output MAC for
counter Read operations.
Note:
1.
Description
Changes to the CounterConfig Registers take effect immediately, which allows the functionality to be
verified during the personalization process.
E.2.19 KeyConfig Registers
The 16 KeyConfig Registers are used to individually configure the 16 keys. Each KeyConfig Register controls one
key. KeyConfig 00 controls Key 00, KeyConfig 01 controls Key 01, etc.
Each KeyConfig Register is a 4-byte array that is stored as shown in Table E-9. The customer can write the
KeyConfig Registers using standard I2C or SPI Write commands, unless the Configuration Memory has been
locked (see the LockConfig Register definition in Appendix E.2.11, LockConfig Register).
Table E-9.
Address
Partial Configuration Memory Map Showing KeyConfig Register Byte Locations for Two Registers
0h
F080h-F087h
1h
2h
3h
4h
KeyConfig 0
Byte 0
Byte 1
Byte 2
5h
6h
7h
KeyConfig 1
Byte 3
Byte 0
Byte 1
Byte 2
Byte 3
A key can be disabled by setting KeyConfig[KeyN].AuthKey to 1b and KeyConfig[KeyN].LinkPointer to contain
“KeyN,” where the KeyN = KeyID of the key being configured.
88
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table E-10.
Definition of the KeyConfig Register Bits (1)(3)
CounterConfig Field
Byte
Bit
Description
ExternalCrypto
0
0
1b = Key can be used with the Encrypt and Decrypt commands.(2)
0b = Encrypt and Decrypt commands are prohibited.
InboundAuth
0
1
1b = Key can be used only by the Auth command for inbound-only or mutual
authentication. Key cannot be used by any other command, but KeyID can
be the target of a Key Management command.
0b = Key can be used for any purpose not prohibited by another KeyConfig bit,
including outbound-only authentication.
RandomNonce
0
2
1b = Operations using this key require a random Nonce (see Section 7.19).
0b = The Nonce is not required to be random.
LegacyOK
0
3
1b = Key can be used with the Legacy command.
0b = Key cannot be used with the Legacy command.
AuthKey
0
4
1b = Key requires prior authentication using the KeyID stored in LinkPointer.
0b = Prior authentication is not required.
Child
0
5
1b = Key is permitted to be the target of a KeyCreate for Child and Parent and/or
KeyLoad command.
0b = This use is prohibited.
Parent
0
6
1b = Key may be used as the VolatileKey parent by the Key Create or KeyLoad
commands. The key may also be used as the Decrypt Key by the KeyImport
command when the target key is VolatileKey (see Section 4.3).
0b = This use is prohibited.
ChangeKeys
0
7
1b = Key updates are permitted after locking. The new key is written using the
EncWrite command with a MAC generated with the current value of key (see
Section 7.11).
0b = Key updates with the EncWrite command are prohibited.
CounterLimit
1
0
1b = Usage count limits are enabled for this key (see CounterNum).
0b = There are no usage limits.
ChildMac
1
1
1b = An input MAC is required to modify this key using the KeyCreate command.
0b = KeyCreate command does not require an input MAC (it will be ignored if
provided).
AuthOut
1
2
1b = I2C Auth signaling is enabled for this key (see Appendix J.5).
0b = I2C Auth signaling is disabled for this key.
AuthOutHold
1
3
1b = I2C AuthO output state is unchanged when an Authentication Reset is
executed using this key.
0b = I2C AuthO output is reset when an Authentication Reset is executed using
this key (see Appendix J.5).
ImportOK
1
4
1b = Key is permitted to be the target of a KeyImport command.
0b = KeyImport command is prohibited.
ChildAuth
1
5
1b = The KeyCreate command requires prior authentication using the KeyID
stored in LinkPointer.
0b = Prior authentication is not required.
TransferOK
1
6
1b = Key is permitted to be the target of a KeyTransfer command (see Section
7.16).
0b = The KeyTransfer command is prohibited.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
89
CounterConfig Field
Byte
Bit
AuthCompute
1
7
LinkPointer
2
0 to 3
For child keys, stores the ParentKeyID.
For all other keys, the KeyID of the authorizing key (see AuthKey).
CounterNum
2
4 to 7
Stores the CntID of the counter attached to this key for usage limits and/or for
MAC calculation. MAC calculations will include the counter if Command Mode
bit 5 is 1b, even if key usage limits are disabled.
Reserved
3
0 to 7
Reserved for future use. All bits must be 0b.
Notes: 1.
2.
3.
Description
1b = Key can be used with the AuthCompute command.
0b = Key cannot be used with the AuthCompute command.
Changes to the KeyConfig Registers take effect immediately, which allows the functionality to be
verified during the personalization process.
Warning: Since the Encrypt command does not include an input MAC, the Encrypt command can be
exhaustively run with selected input data to attack the Key. Requiring authentication prior to allowing
encryption makes these attacks more difficult. To require prior authentication, the AuthKey and
RandomNonce bits must be set to 1b.
A Key can be disabled by setting KeyConfig[KeyN].AuthKey to 1b and KeyConfig[KeyN].LinkPointer
to contain “KeyN”, where KeyN = KeyID of the key being configured.
E.2.20 ZoneConfig Registers
The 16 ZoneConfig Registers are used to individually configure the 16 user zones. Each ZoneConfig Register
controls one user zone. ZoneConfig 00 controls User Zone 00, ZoneConfig 01 controls User Zone 01, etc.
Each ZoneConfig Register is a 4-byte array that is stored as shown in Table E-11. The customer can write the
ZoneConfig Registers using standard I2C or SPI Write commands, unless the Configuration Memory has been
locked (see the LockConfig Register definition in Appendix E.2.11, LockConfig Register).
Table E-11.
Address
Partial Configuration Memory Map Showing ZoneConfig Register Byte Locations for the Two Registers
0h
F0C0hF0C7h
2h
3h
4h
ZoneConfig 0
Byte 0
90
1h
ATAES132 [Datasheet]
Byte 1
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Byte 2
5h
6h
7h
ZoneConfig 1
Byte 3
Byte 0
Byte 1
Byte 2
Byte 3
Table E-12.
Definition of the ZoneConfig Register Bits (1)
CounterConfig Field
Byte
Bit
Description
AuthRead
0
0
1b = Authentication is required to read data.
0b = Authentication is not required to read data.
AuthWrite
0
1
1b = Authentication is required to write data.
0b = Authentication is not required to write data.
EncRead
0
2
1b = Encryption is required to read data.
0b = Encryption is not required to read data.
EncWrite
0
3
1b = Encryption is required to write data.
0b = Encryption is not required to write data.
00b = Zone is permanently Read/Write.
01b = Zone is permanently Read-only.
10b = The ReadOnly byte determines if writes are permitted.
11b = The ReadOnly byte determines if writes are permitted, and the Lock
command must include an authenticating MAC calculated using the KeyID
stored in ZoneConfig[UZ].WriteID.
WriteMode
0
4 to 5
UseSerial
0
6
UseSerial = 1b and EncWrite = 1b, then SerialNum must be included in EncWrite
operations.
EncWrite = 0b, then this bit is ignored.
UseSmall
0
7
UseSmall = 1b and EncWrite = 1b, the first four bytes of SmallZone must be
included in EncWrite operations.
EncWrite = 0b, then this bit is ignored.
ReadID
1
0 to 3
KeyID that is used to encrypt data read from this zone.
The same key is used to generate the MAC.
AuthID
1
4 to 7
KeyID that is used for inbound authentication before access is permitted.
Reserved
2
0 to 3
Reserved for future use. All bits must be 0b.
WriteID
2
4 to 7
KeyID that is used to decrypt data written to this zone.
The same key is used to verify the MAC.
0 to 7
The contents of this byte are ignored unless WriteMode contains 10b or 11b.
0x55 = User zone is Read/Write.
If any other value = User zone is Read-only.
This byte can be updated after the Configuration Memory is locked by using the
Lock command (see Section 7.18, Lock Command).
ReadOnly
Note:
1.
3
Most changes to the ZoneConfig Registers take effect immediately. Changes to the AuthRead and
EncRead bits do not affect the SPI or I2C Read command until the next reset or power-up.
E.2.21 Counter Registers
The 16 Counter Registers are used to store the Counter values. The default value of the Counters is equivalent to
a count value of zero. See Appendix H, Understanding Counters for Counter information.
The customer can write the Counter Registers using standard I2C or SPI Write commands, unless the
Configuration Memory has been locked (see the LockConfig register definition in Appendix E.2.11, LockConfig
Register).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
91
E.2.22 FreeSpace Register
The FreeSpace Register is 96 bytes of memory for storage of customer data. The customer can write the
FreeSpace Register using standard I2C or SPI Write commands, unless the Configuration Memory has been
locked (see the LockConfig register definition in Appendix E.2.11).
The default value of the FreeSpace Register is 0xFF in all bytes. The FreeSpace Register can be programmed
with any value; the contents will not change the behavior of the ATAES132.
E.2.23 SmallZone Register
The SmallZone Register is 32 bytes of memory for storage of customer data. Optionally, the first four bytes of the
SmallZone Register may be included in cryptographic calculations by setting Mode bit 7 to 1b, as described in the
command definitions in Section 7, Command Definitions. The customer can write the SmallZone Register using
standard I2C or SPI Write commands, unless the SmallZone Register has been locked (see the LockSmall
Register definition in Appendix E.2.10, LockSmall Register).
The default value of the SmallZone Register is 0xFF in all bytes. The SmallZone Register can be programmed
with any value; the contents will not change the behavior of the ATAES132.
92
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix F. Key Memory Map
Table F-1.
Address
F200h-F207h
F208h-F20Fh
F210h-F217h
F218h-F21Fh
F220h-F227h
F228h-F22Fh
F230h-F237h
F238h-F23Fh
F240h-F247h
F248h-F24Fh
F250h-F257h
F258h-F25Fh
F260h-F267h
F268h-F26Fh
F270h-F277h
F278h-F27Fh
F280h-F287h
F288h-F28Fh
F290h-F297h
F298h-F29Fh
F2A0h-F2A7h
F2A8h-F2AFh
F2B0h-F2B7h
F2B8h-F2BFh
F2C0h-F2C7h
F2C8h-F2CFh
F2D0h-F2D7h
F2D8h-F2DFh
F2E0h-F2E7h
F2E8h-F2EFh
F2F0h-F2F7h
F2F8h-F2FFh
ATAES132 Key Memory Map; Starts at Address 0xF200
0h / 8h
1h / 9h
2h / Ah
3h / Bh
4h / Ch
5h / Dh
6h / Eh
7h / Fh
Key 00
Key 01
Key 02
Key 03
Key 04
Key 05
Key 06
Key 07
Key 08
Key 09
Key 0A
Key 0B
Key 0C
Key 0D
Key 0E
Key 0F
VolatileKey (KeyID = 0xFF) does not exist in EEPROM. It is a temporary key that resides in the internal SRAM memory.
The internal SRAM cannot be accessed directly. See Section 4.3, VolatileKey Configuration for VolatileKey information.
Prior to locking the Key Memory, it can be written with either encrypted or cleartext data. Encrypted writes are
performed using the EncWrite command (see Section 7.11, Encrypted Key Writes). Cleartext writes are performed
using standard SPI or I2C Write commands (see Section 5.2, Write). The Key Memory can never be read with the
BlockRead command or the EncRead command, or with standard I2C or SPI Read commands.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
93
Appendix G. Understanding the STATUS Register
The 8-bit Device Status Register is used for handshaking between the Host microcontroller and the ATAES132.
The Host microcontroller is expected to read the STATUS Register before sending a command or reading a
response.
G.1
Device Status Register (STATUS) Definition
Address 0xFFF0 contains the read-only Device Status Register, which indicates the current status of the
ATAES132 device. The SPI Read Status Register command can be used to read the STATUS Register, as
described in Appendix K.3.5, Read Status Register Command (RDSR).
This register can also be read with the standard I2C or SPI Read Memory commands. Reading the STATUS
Register does not increment the memory read address, and so a Host microcontroller can easily monitor the
ATAES132 device status by repeatedly reading the STATUS Register.
Table G-1.
Device Status Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EERR
RRDY
Reserved
CRCE
Reserved
WAKEb
WEN
WIP
Table G-2.
Bit
Definition
Bit 0 (WIP)
0b = The device is ready, waiting for a command.
1b = A Write cycle or a cryptographic operation is in progress.
Bit 1 (WEN)
0b = The device is not SPI Write enabled or is in I2C interface mode.
1b = The device is SPI Write enabled.
Bit 2 (WAKEb)
0b = The device is not in the Sleep or Standby power state.
1b = Tthe device is in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b. This bit is reserved for future use. (1)
Bit 4 (CRCE)
0b = The most recent command block contained a correct Checksum (CRC).
1b = The most recent command block contained an error.
Bit 5 (Reserved)
Always 0b. This bit is reserved for future use. (1)
Bit 6 (RRDY)
0b = The Response Memory Buffer is empty.
1b = The Response Memory Buffer is ready to read.
Bit 7 (EERR)
0b = The most recent command did not generate an error during execution.
1b = The most recent command generated an execution error.
Note:
94
Definition of the STATUS Register Bits(1)(2)
1.
When the SPI RDSR command is used to read the STATUS Register during an EEPROM Write or
during execution of any ATAES132 command, then Status bits 0  7 are 1b (see Appendix K.3.5,
Read Status Register Command (RDSR). When the STATUS Register is read from address 0xFFF0
under the same circumstances, the reserved bits will read as 0b.
2.
STATUS Register bits 0  7 are 1b during wake-up. During the first phase of wake-up and power-up.
See Appendix L, Power Management for additional information.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
The Device Status Register can always be read when the ATAES132 is configured for SPI interface mode, even if
ATAES132 is processing a command or writing the EEPROM. When the ATAES132 is configured for I2C
interface mode, the Random Read command can only be used to read the STATUS Register only when the
device address is ACKed.
If the ATAES132 is in the Sleep or Standby power state, reading the STATUS Register forces the ATAES132 to
wake-up; the STATUS Register is 0xFF until the wake-up process is complete.
G.1.1
WIP Status Bit [0]
The WIP status bit is used to indicate the device is busy or there is a “Write in progress.” If WIP = 0b, then the
ATAES132 is in the Active state and is waiting to receive a command. If WIP = 1b, then ATAES132 is in the
Active state and is performing an EEPROM Write or processing an ATAES132 command.
G.1.2
WEN Status Bit [1]
If ATAES132 is configured in I2C interface mode, then the WEN Status bit is always 0b (see Appendix J, I2C
Interface for I2C information).
If the ATAES132 is configured in SPI interface mode, then the WEN status bit is 0b after the device initially
powers up or exits the Sleep state (see Appendix K, SPI Interface for SPI interface information). When
WEN = 0b, the User Memory is Write protected and any attempt to write the User Memory using the SPI Write
command will fail. The Host must send a SPI WREN command to the device to set WEN = 1b prior to each SPI
Write command.
If the ATAES132 is configured in SPI interface mode, then the WEN Status bit will return to 0b when any Write
instruction is received. The WEN Status bit can be forced to 0b by sending a SPI WRDI command (See Appendix
K.3.2, Write Disable Command (WRDI)), by sending a RESET command (See Section 7.22, Reset Command), or
by putting the device in the Sleep state. Powering the device off will reset the WEN bit to 0b. The SPI Read
command and SPI RDSR command do not affect the state of the WEN bit.
It is not necessary to set WEN = 1b prior to writing to the Command Memory Buffer or the IO Address Reset
Register (see Appendix D, Command Memory Map). Writing the Command Memory Buffer or the IO Address
Reset Register forces WEN to 0b.
G.1.3
WAKEb Status Bit [2]
The WAKEb status bit is 0b when the ATAES132 has completed a power-up sequence and is in the active state.
WAKEb is 1b when the ATAES132 is in the Sleep or Standby state, or is in the process of waking up.
Note:
G.1.4
Reading the STATUS Register will cause a device in the Sleep state or Standby state to wake-up. (See
Appendix L, Power Management for power state and power management information.)
CRCE Status Bit [4]
The CRCE status bit is set to 1b if a block is received with a short Count or bad Checksum or if the block causes
a buffer overrun. If only the Checksum (CRC) was incorrect, then the block may be resent without change. If the
Command Memory Buffer contains a partial command block, then the CRCE status bit is 1b and all other status
bits are 0b. This indicates that the correct Checksum has not yet been received. If the CRCE Status bit is 1b and
all the other Status bits are 0b after the entire block has been sent, the IO Address Reset Register should be
written before resending the block (see Appendix D.2, Response Memory Buffer for more information on the IO
Address Reset Register).
The EERR bit will remain 0b when a Checksum error occurs, and the Response Memory Buffer will remain empty
because these errors do not result in a ReturnCode being generated. If a buffer overrun occurs, then the CRCE
and EERR bits will be set to 1b.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
95
G.1.5
RRDY Status Bit [6]
The RRDY Status bit is 0b when the Response Memory Buffer is empty. If RRDY = 1b, then the Response
Memory Buffer contains a response block or a ReturnCode resulting from the most recent command or command
block received (see Appendix D.2, Response Memory Buffer for Response Memory Buffer information).
G.1.6
EERR Status Bit [7]
If the command is processed without error, the EERR bit is set to 0b. When any error other than a Checksum
error occurs, the EERR Status bit is set to 1b to indicate an error. The Host can read the error code (ReturnCode)
from the Response Memory Buffer (address 0xFE00) using a Read command if the RRDY Status bit is 1b.
Reading the STATUS Register does not reset the Status Register bits or alter the Response Memory Buffer
contents. Reading the Response Memory Buffer does not alter the contents of the Response Memory Buffer or
the STATUS Register. Reading beyond the end of the Response Memory Buffer will not cause the STATUS
Register bits to change.
The EERR status bit will be set to 1b if a SPI or I2C Read is attempted using an invalid address or an address
pointing to a protected portion of the memory. EERR will also be set to 1b if a SPI or I2C read begins at an
authorized address but continues into protected memory. In both of these cases, the RRDY status bit is 0b and
the Response Memory Buffer will remain empty because these errors do not generate a ReturnCode. Reading
beyond the end of user zone F will not cause the EERR bit to be set to 1b.
Note:
G.1.7
If a SPI or I2C Read begins at an authorized address and continues into protected memory, the EERR bit
will be set to 1b.
Reserved Status Bits [3, 5]
The Reserved Status bits are always 0b when the ATAES132 is capable of accepting a command. The Reserved
Status bits are 1b during Power-Up and during Wake-Up from the Sleep state or the Standby state.
G.2
STATUS Register Behavior in the I2C Interface Mode
The following sections describe the device behavior and expected STATUS Register values during commonly
performed operations. In the I2C interface mode, the ATAES132 will always NAK instructions containing a
nonmatching I2C Device Address. The ATAES132 will ACK instructions with a matching I2C Device Address if the
device is capable of accepting an instruction. See Appendix J, I2C Interface for the I2C interface specifications.
When the ATAES132 is busy or unable to respond for any reason, it will NAK a matching I2C Device Address.
The ACK/NAK response to the I2C Device Address operates similar to the way the WIP status bit changes value
in the SPI interface mode.
G.2.1
Power-Up
The ATAES132 will NAK all instructions received during Power-Up to indicate that it is not ready to accept a
command from the Host. When the Power-Up process is complete (after time tPU.RDY), then the ATAES132 will
enter the state specified by ChipConfig Register bits 6 and 7; the Active state, the Standby state, or the Sleep
state (see Appendix L.2.1, Power-Up). In I2C interface mode, it is impossible to read the STATUS Register until
the completion of Power-Up.
Upon completion of Power-Up, the Command Memory Buffer is empty, the Response Memory Buffer is all 0xFFs,
and ChipState = 0xFFFF. The default EEPROM address is set to 0x0000, and the command and Response
Memory Buffer pointers are set to the base address of the buffers. If the device is configured to enter the Active
state at Power-Up, then STATUS will be 0x00, as shown in Table G-3.
96
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table G-3.
Contents of the STATUS Register After Power-up to the Active State
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby Power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is empty.
Bit 7 (EERR)
0b = No errors during execution.
If the device is configured to enter the Sleep state, then the ATAES132 will NAK any attempt to read the STATUS
Register at the completion of Power-Up, as described in Appendix G.2.2, Wake-Up from Sleep. If the device is
configured to enter the Standby state, then the ATAES132 will NAK any attempt to read the STATUS Register at
the completion of Power-Up, as described in Appendix G.2.3, Wake-Up from Standby; ChipState will remain
0xFFFF in the Standby state.
Note:
G.2.2
ACK polling or attempting to read the STATUS Register after Power-Up is completed will cause the
device to Wake-Up.
Wake-Up from Sleep
The ATAES132 will NAK all instructions received during Wake-Up from the Sleep Power state to indicate that it is
not ready to accept a command from the Host. When the Wake-Up process is complete (after time tWupSL.RDY),
then the ATAES132 will enter the Active state. In I2C interface mode, it is impossible to read the STATUS
Register until the Wake-Up is complete.
Upon completion of Wake-Up from Sleep, the Command Memory Buffer is empty, the Response Memory Buffer
is all 0xFFs, and ChipState = 0x5555. The default EEPROM address is set to 0x0000, and the command and
Response Memory Buffer pointers are set to the base address of the buffers. Upon completion of Wake-Up, the
STATUS Register will be 0x00, as shown in Table G-3.
G.2.3
Wake-Up from Standby
The ATAES132 will NAK all instructions received during Wake-Up from the Standby Power state to indicate that it
is not ready to accept a command from the Host. When the Wake-Up process is complete (after time tWupSB.RDY),
the ATAES132 will enter the Active state. In I2C interface mode, it is impossible to read the STATUS Register
until the Wake-Up is complete.
Upon completion of Wake-Up from Standby, the Command Memory Buffer is empty, and the Response Memory
Buffer is all 0xFFs. ChipState will have the value it had prior to entering the Standby state. Upon completion of
Wake-Up, the STATUS Register will be 0x00, as shown in Table G-3.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
97
G.2.4
Read STATUS Register
To read the STATUS Register, the Host sends a Random Read Instruction (RREAD) with a starting address of
0xFFF0 when ATAES132 ACKs the I2C Device Address. Reading the STATUS Register does not increment the
Read address, so the Host can poll the STATUS by reading any number of bytes, beginning with address
0xFFF0.
Reading the STATUS Register does not change the Command Memory Buffer contents or the Response Memory
Buffer contents. Reading the STATUS Register does not change the Command Memory Buffer pointer or the
Response Memory Buffer pointer. Reading the STATUS Register does not change the STATUS Register.
G.2.5
Read User Memory
The ATAES132 instructions for directly reading the User Memory are identical to the standard Atmel Serial
EEPROM instructions. The Host can send a read memory instruction (READ, RREAD, SREAD) whenever the
ATAES132 ACKs the I2C Device Address. If the address being read is valid and access is not prohibited, then the
contents of that byte will be returned to the Host. If the address is invalid, or access is prohibited for any reason,
then 0xFF will be returned to the Host in place of the prohibited byte.
A Read operation begins with an I2C Start condition and ends with an I2C NAK by the Host. If one or more bytes
are accessed during the Read operation at an invalid or protected address, then the EERR bit will be set to 1b
(see Table G-4). If all bytes accessed by the Read operation are valid and the Host satisfied the required access
conditions, then the EERR bit will be set to 0b. The contents of the Command Memory Buffer and the Response
Memory Buffer will remain unchanged.
Note:
If an I2C Read begins at an authorized address and continues into protected memory, the EERR bit will
be set to 1b.
Table G-4.
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.(1)
Bit 7 (EERR)
0b = No errors during execution of the Read operation.
1b = 0xFF was returned in place of one or more invalid or prohibited bytes read.
Note:
98
Contents of the STATUS Register After an I2C Read Memory Operation
1.
A Read Memory operation does not change the contents of the Response Memory Buffer. The EERR
status bit is used to indicate success or an error. No ReturnCode is generated by a memory read
error.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
G.2.6
Write User Memory
The ATAES132 instructions for directly writing the User Memory are identical to the standard Atmel Serial
EEPROM. The Host can send a Write Memory instruction (BWRITE, PWRITE) whenever the ATAES132 ACKs
the I2C Device Address. If the address being written is valid, access requirements have been satisfied and no
page boundaries are crossed, then the data provided by the Host will be written after the Host generates an I2C
Stop condition. If the address is invalid or access is prohibited for any reason, then the ATAES132 will discard the
data and no EEPROM Write will occur.
A Memory Write operation begins with an I2C Start condition and ends with an I2C Stop condition by the Host. If
the Host does not provide an I2C Stop condition, then no Write will occur, no ReturnCode will be generated, and
the STATUS Register is 0x00 to indicate the ATAES132 is waiting for a command.
If the Host provides the required I2C Stop condition, then the ATAES132 will NAK the I2C Device Address during
the EEPROM Write operation. When the Write operation is complete, then ATAES132 will ACK the I2C Device
Address.
Upon completion of a Memory Write operation, the Command Memory Buffer is empty, and the Response
Memory Buffer contains a ReturnCode. The command and the Response Memory Buffer pointers are set to the
base address of the buffers. The STATUS will be as shown in Table G-5.
Table G-5.
G.2.7
STATUS Register Contents After an I2C Write Memory Operation
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
1b = Response Memory Buffer contains a response block.
Bit 7 (EERR)
0b = No errors during execution of the Write operation.
1b = Write operation generated an error; see the ReturnCode for the cause.
Write Command Memory Buffer
To write the Command Memory Buffer, the Host sends a Write Memory instruction (BWRITE, PWRITE) with a
starting address of 0xFE00 when the ATAES132 ACKs the I2C Device Address. As each byte is written, the
Command Memory Buffer pointer increments by one.
A command block begins with the COUNT byte and ends with the 2-byte Checksum (see Section 6.1, Command
Block and Packet). If the entire command block is not received, then the device will not attempt to process the
command and will not generate a response block. The STATUS Register will have CRCE = 1b until the entire
command block is received (as shown in Table G-6).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
99
Table G-6.
Contents of the STATUS Register if the Command Memory Buffer Contains a Partial Command Block
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
1b = Checksum error (the Checksum has not yet been received).
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.
Bit 7 (EERR)
0b = No errors during execution of the command block (it was not executed yet).
If the Host provides a complete command block, then the ATAES132 will NAK the I2C Device Address during
command processing. When command processing is complete, then the ATAES132 will ACK the I2C Device
Address.
If the command block contains a bad Checksum or a short Count or if the block causes a buffer overrun, then the
CRCE bit of the STATUS Register will be set to 1b, as shown in Table G-7. The Response Memory Buffer will be
unchanged because no ReturnCode is generated by these error conditions. The EERR bit is 1b if a buffer overrun
error occurs. The EERR bit is 0b if a bad Checksum or short Count error occurs.
If the command block contains a good Checksum, then the ATAES132 will process the command and load the
response in the Response Memory Buffer. Upon completion of command processing, the RRDY bit of the
STATUS Register is set to 1b, as shown in Table G-7.
Table G-7.
100
Contents of the STATUS Register After an I2C Write Command Memory Buffer Resulting in CRCE = 1b
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
1b = Checksum, Short Count, or command buffer overrun error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.
Bit 7 (EERR)
0b = No errors during execution of the command block (it was not executed).
1b = Command buffer overrun error.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table G-8.
Contents of the STATUS Register After an I2C Write Command Memory Buffer Resulting in CRCE = 0b
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is in I2C interface mode.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
1b = Response Memory Buffer contains a response block.
Bit 7 (EERR)
0b = No errors during execution of the command block.
1b = Command block generated an error; see the ReturnCode for the cause.
Writing the Command Memory Buffer resets the Response Memory Buffer pointer to the base address. Writing
the Command Memory Buffer does not change the Response Memory Buffer contents until the entire command
block is received and processed.
The Host can rewrite the contents of the Command Memory Buffer by resetting the buffer pointer (by writing the
IO Address Reset Register) and sending a Write Memory instruction (BWRITE, PWRITE) with a starting address
of 0xFE00.
Note:
G.2.8
If the Host must write the Command Memory Buffer with more bytes than is required to send the
command block due to hardware limitations, then the Host should transmit 0xFF bytes after the
checksum. The extra bytes will be discarded by the ATAES132 and will not result in a buffer overrun or
any other error.
Read Response Memory Buffer
To read the Response Memory Buffer, the Host sends a Random Read Memory instruction (RREAD) with a
starting address of 0xFE00 when the ATAES132 ACKs the I2C Device Address. The Host can read any number
of bytes from the Response Memory Buffer without causing an error. As each byte is read, the Response Memory
Buffer pointer increments by one. If the Host reads beyond the end of the response block, then 0xFF will be
returned for any byte after the Checksum.
Reading the Response Memory Buffer does not change the Command Memory Buffer contents or the Response
Memory Buffer contents. Reading the Response Memory Buffer resets the Command Memory Buffer pointer to
the base address. Reading the Response Memory Buffer does not change the STATUS Register.
The Host can reread the contents of the Response Memory Buffer by resetting the buffer pointer (by writing the
IO Address Reset Register) and sending a Random Read Memory instruction (RREAD) with a starting address of
0xFE00.
G.2.9
Write IO Address Reset Register
To reset the pointer for the Command Memory Buffer and the pointer for the Response Memory Buffer, the Host
sends a Write Memory instruction (BWRITE, or PWRITE) with a starting address of 0xFFE0. The IO Address
Reset Register can be written with 1 to 32 bytes of data without generating an error; the data bytes will be
ignored. The command and the Response Memory Buffer pointers are set to the base address of the buffers. The
Command Memory Buffer is empty, and the Response Memory Buffer contents are unchanged. Writing the IO
Address Reset Register changes the CRCE Status bit to 0b; all of the other status bits are unchanged.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
101
G.3
STATUS Register Behavior in the SPI Interface Mode
The following sections describe the device behavior and expected STATUS Register values during commonly
performed operations. See Appendix K, SPI Interface for the SPI interface specifications. In SPI interface mode,
there are two ways to read the STATUS Register:

Using the SPI RDSR command, or

Reading STATUS from address 0xFFF0.
When the ATAES132 is busy or unable to respond for any reason, the WIP Status bit is 1b.
G.3.1
Power-Up
ATAES132 will return 0xFF in response to a SPI RDSR command during Power-Up to indicate that it is not ready
to accept a command from the Host. When the power-up process is complete (after time tPU.RDY), the ATAES132
will enter the state specified by ChipConfig Register bits 6 and 7 (see Appendix L.2.1, Power-Up): the Active
state, the Standby state, or the Sleep state.
Upon completion of Power-Up, the Command Memory Buffer is empty, the Response Memory Buffer is all 0xFFs,
and ChipState = 0xFFFF. The default EEPROM address is set to 0x0000, and the command and Response
Memory Buffer pointers are set to the base address of the buffers. If the device is configured to enter the Active
state, then the STATUS will be 0x00, as shown in Table G-9.
Table G-9.
Contents of the STATUS Register After Power-up to the Active State
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is empty.
Bit 7 (EERR)
0b = No errors during execution.
If the device is configured to enter the Standby or Sleep mode after power-up, then the STATUS will be 0xFF at
the completion of the power-up process as described in this section. STATUS will remain 0xFF while the device is
in Standby or Sleep mode.
Note:
102
Reading the STATUS Register after Power-Up is completed will cause the device to Wake-Up.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
G.3.2
Wake-Up State from Sleep State
ATAES132 will return 0xFF in response to a SPI RDSR command during Wake-Up from the Sleep Power state to
indicate it is not ready to accept a command from the Host. When the wake-up process is complete (after time
tWupSL.RDY), ATAES132 will enter the Active state. After time tWupSL.STATUS, it is possible to read the STATUS
Register.
Upon completion of Wake-Up state from Sleep state, the following occurs:

Command Memory Buffer is empty,

Response Memory Buffer is all 0xFFs,

ChipState = 0x5555,

Default EEPROM address is set to 0x0000,

Command and Response Memory buffer pointers are set to the base address of the buffers.
Upon completion of Wake-Up the STATUS will be 0x00 as shown in Table G-3.
G.3.3
Wake-Up State from Standby State
ATAES132 will return 0xFF in response to a SPI RDSR command during Wake-Up state from the Standby Power
state to indicate that it is not ready to accept a command from the Host. When the wake-up process is complete
(after time tWupSB.RDY), ATAES132 will enter the Active state. After time tWupSB.STATUS, it is possible to read the
STATUS Register.
Upon completion of the Wake-Up state from the Standby state, the

Command Memory Buffer is empty,

Response Memory Buffer is all 0xFFs,

ChipState will be the value it had prior to entering the Standby state.
Upon completion of the wake-up process, the STATUS will be 0x00 as shown in Table G-3.
G.3.4
Read STATUS Register
To read the STATUS Register, the Host sends a Read Memory Instruction (READ) with a starting address of
0xFFF0.
Reading the STATUS Register does not change the Command Memory Buffer contents or the Response Memory
Buffer contents. Reading the STATUS Register does not change the Command Memory Buffer pointer or the
Response Memory Buffer pointer. Reading the STATUS Register does not change the STATUS Register.
G.3.5
Read User Memory
The ATAES132 instructions for directly reading the User Memory are identical to standard Atmel Serial EEPROM
instructions. The Host can send a Read whenever WIP is 0b.

If the address being read is valid and access is not prohibited, the contents of that byte will be returned to
the Host.

If the address is invalid or access is prohibited for any reason, 0xFF will be returned to the Host in place of
the prohibited byte.

If one or more bytes are accessed during the Read operation at an invalid or protected address, then the
EERR bit will be set to 1b (see Table G-10).

If all bytes accessed by the Read operation are valid and the Host satisfied the required access conditions,
the EERR bit will be set to 0b.
The contents of the Command Memory Buffer and the Response Memory Buffer will remain unchanged.
Table G-10.
STATUS Register Contents After a SPI Read Memory Operation
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
103
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby Power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.(1)
Bit 7 (EERR)
0b = No errors during the execution of the Read operation.
1b = 0xFF was returned in place of one or more invalid or prohibited bytes read.
Note:
G.3.6
1.
A Read memory operation does not change the contents of the Response Memory Buffer. The
EERR Status bit is used to indicate success or to indicate an error. No ReturnCode is generated by a
memory Read error.
Write User Memory
The ATAES132 instructions for directly writing the User Memory are identical to standard Atmel Serial EEPROMs.
The Host can send a Write Memory Instruction (WRITE) whenever WIP is 0b.


Data provided by the Host will be written if:
o
The address being written is valid,
o
Access requirements have been satisfied, and
o
No page boundaries are crossed.
ATAES132 will discard the data and no EEPROM Write will occur if:
o
o
The address is invalid or
Access is prohibited for any reason.
Upon completion of a Memory Write operation:
104

Command Memory Buffer is empty,

Response Memory Buffer contains a ReturnCode,

Command and Response Memory buffer pointers are set to the base address of the buffers,

STATUS will be as shown in Table G-11.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Table G-11.
G.3.7
STATUS Register Contents After a SPI Write Memory Operation
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer contains a response block.(1)
Bit 7 (EERR)
0b = No errors during the execution of the Write operation.
1b = Write operation generated an error. See the ReturnCode for the cause.
Write Command Memory Buffer
To write the Command Memory Buffer, the Host sends a Write Memory Instruction (WRITE) with a starting
address of 0xFE00 whenever WIP is 0b. The Command Memory Buffer pointer increments by one as each byte is
written.
A Command Block begins with the COUNT byte and ends with the two byte Checksum (see Section 6.1,
Command Block and Packet). If the entire Command Block is not received, then the device will not attempt to
process the command; it will not generate a Response Block. The STATUS Register will have the CRCE bit = 1b
until the entire Command block is received (as shown in Table G-12).
Table G-12.
STATUS Register Contents If the Command Memory Buffer Contains a Partial Command Block
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error (The checksum has not yet been received).
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.
Bit 7 (EERR)
0b = No errors during the execution of the Command Block (It was not executed yet).
If the Host provides a complete Command Block, then WIP will be 1b during command processing. When
command processing is complete, then WIP will be 0b.
If the Command Block contains a bad Checksum and a short COUNT or the block causes a buffer overrun, then
the CRCE bit of the STATUS Register will be set to 1b as shown in Table G-13. The Response Memory Buffer
will be unchanged because no ReturnCode is generated by these error conditions. The EERR Status bit is 1b if a
buffer overrun error occurs; the EERR bit is 0b if a bad Checksum or short COUNT error occurs.
If the Command Block contains a good Checksum, then ATAES132 will process the command and load the
response in the Response Memory Buffer. Upon completion, command processing the RRDY bit of the STATUS
Register is set to 1b as shown in Table G-14.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
105
Table G-13.
STATUS Register Contents After a SPI Write Command Memory Buffer Resulting in CRCE = 1b
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
1b = Checksum error, short COUNT, or command buffer overrun error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
0b = Response Memory Buffer is unchanged.
Bit 7 (EERR)
0b = No errors during the execution of the Command Block. (It was not executed yet.)
1b = Command buffer overrun error.
Table G-14.
STATUS Register Contents After a SPI Write Command Memory Buffer Resulting in CRCE = 0b
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
Bit 1 (WEN)
0b = Device is not Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b.
Bit 4 (CRCE)
0b = No Checksum error.
Bit 5 (Reserved)
Always 0b.
Bit 6 (RRDY)
1b = Response Memory Buffer contains a Response block.
Bit 7 (EERR)
0b = No errors during the execution of the Command Block. (It was not executed yet.)
1b = Command buffer generated an error. See the ReturnCode for the cause.
Writing the Command Memory Buffer resets the Response Memory Buffer pointer to the base address. Writing
the Command Memory Buffer does not change the Response Memory Buffer contents until the entire Command
block is received and processed.
The Host can rewrite the contents of the Command Memory Buffer by resetting the buffer pointer (by writing the
IO Address Reset Register) and sending a Write Memory Instruction (WRITE) with a starting address of 0xFE00.
Note:
106
If the Host must write the Command Memory Buffer with more bytes than is required to send the
Command Block due to hardware limitations, then the Host should transmit 0xFF bytes after the
Checksum. The extra bytes will be discarded by ATAES132 and will not result in a buffer overrun or any
other error.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
G.3.8
Read Response Memory Buffer
To read the Response Memory Buffer, the Host sends a Read Memory Instruction (READ) with a starting address
of 0xFE00. The Host can read any number of bytes from the Response Memory Buffer without causing an error.
As each byte is read, the Response Memory Buffer pointer increments by one. If the Host reads beyond the end
of the Response Block, then 0xFF will be returned for any byte after the Checksum.
Reading the Response Memory Buffer does not change the Command Memory Buffer contents or the Response
Memory Buffer contents. Reading the Response Memory Buffer resets the Command Memory Buffer pointer to
the base address. Reading the Response Memory Buffer does not change the STATUS Register.
The Host can reread the contents of the Response Memory Buffer by resetting the buffer pointer (by writing the
IO Address Reset Register) and sending a Random Read Memory Instruction (RREAD) with a starting address of
0xFE00.
G.3.9
Write IO Address Reset Register
To reset the pointer for the Command Memory Buffer and the pointer for the Response Memory Buffer, the Host
sends a Write Memory Instruction (WRITE) with a starting address of 0xFFE0. The IO Address Reset Register
can be written with 1 to 32 bytes of data without generating an error; the data bytes will be ignored. The
Command and Response Memory buffer pointers are set to the base address of the buffers. The Command
Memory Buffer is empty, and the Response Memory Buffer contents are unchanged. Writing the IO Address
Reset Register changes the CRCE Status bit to 0b; all of the other STATUS bits are unchanged.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
107
Appendix H. Understanding Counters
Each Counter can increment up to a value of 2,097,151 using the Count command, after which, the Counter can
no longer be changed. Counters attached to keys are incremented each time the key is used when the Usage
Counter reaches its limit; the key is disabled. Counters can also be incremented using the Count Command. The
value in the Counter can never be reset or lowered. The Counters include a power interruption protection feature
to prevent corruption of the Count value if power is removed during the increment operation.
On shipment from Atmel, the Counter Registers are initialized to their lowest value. The initial value of each
Counter may be written to a different value at personalization prior to locking the configuration.
H.1
Counter Registers
Each Counter Register contains two Count values to prevent the Count value from being corrupted if power is
interrupted during a Counter increment operation. Each Count value is stored as a combination of two Count
fields:

Counter A is stored in LinCountA and BinCountA.

Counter B is stored in LinCountB and BinCountB.
Table H-1 shows the location of the Count fields within the Counter register in Configuration Memory.
Table H-1.
Address
Partial Configuration Memory Map Showing Counter Register Field Locations
0h
1h
2h
3h
F100h-F107h
4h
5h
6h
7h
Counter 00
LinCountA
LinCountB
BinCountB
BinCountA
Counter Registers can always be read from the Configuration Memory using the BlockRead command; however,
the Count command is the preferred method of reading the Counters. When the Counter is read using the Count
command, ATAES132 automatically selects the appropriate Counter register fields and returns them to the Host
in the Response Packet. See Section 7.5, Counter Command.
108
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
H.2
Reading the Counter
The Counter command is the recommended method for reading a Counter. The Counter command returns a four
byte CountValue field which is formatted as shown in Figure H-1. Optionally, the Counter command can also
return a MAC for cryptographic authentication of the CountValue. The definition of the CountValue field is shown
in Table H-2. See Section 7.5, Counter Command.
Figure H-1.
CountValue Field
Byte 0
Byte 1
LinCount
CountFlag
Byte 2
Byte 3
BinCount
The CountValue contains a Linear Counter Field (LinCount), a Binary Counter field (BinCount), and the
CountFlag field. The CountFlag field indicates if the Counter value was read from the Counter A or Counter B
EEPROM location. CountFlag also indicates if the 8 bit LinCount field is the Most Significant Byte (MSB) or Least
Significant Byte (LSB) of the 16 bit LinCount field in EEPROM. If the LSB of LinCount has been returned, then the
LinCount field value is 1 to 8; if the MSB of LinCount has been returned, then the LinCount field value is 9 to 16.
Table H-2.
Definition of the CountValue field in the Response to the Counter Command
Byte
Name
0
LinCount
Description
Contains the 8 bit linear Counter value identified in the CountFlag field.
0x00 = LinCount contains the LSB of LinCountA. BinCount contains the BinCountA value.
0x02 = LinCount contains the MSB of LinCountA. BinCount contains the BinCountA value.
0x04 = LinCount contains the LSB of LinCountB. BinCount contains the BinCountB value.
0x06 = LinCount contains the MSB of LinCountB. BinCount contains the BinCountB value.
All other values are reserved for future use.
1
CountFlag
2
BinCount (MSB)
Contains the Most Significant Byte of the binary counter identified in the CountFlag field.
3
BinCount (LSB)
Contains the Least Significant Byte of the binary counter identified in the CountFlag field.
The equivalent decimal value of the Counter can be determined using the following equation:
CountValue = (BinCount*32) + (CountFlag/2)*8 + Lin2Bin(LinCount)
Here, Lin2Bin defines a function that converts a linear Counter value to corresponding binary value. 0xFFFF
converts to zero; 0xFFFE converts to one; and so on; up to 0x8000 which converts to 15.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
109
H.3
Personalizing the Counters
The Counter registers are personalized with initial values prior to locking the Configuration Memory. The
standard Serial EEPROM Write commands are used to write Configuration Memory (see Section 5.1.3, Read the
STATUS Register). The Lock command is used to lock the Configuration Memory (see Section 7.18, Lock
Command).
The initial value of the Counter registers can be determined using the following procedure:
Divide the Counter preset value by 32. The quotient is the value of BinCountA.
o
o
If the remainder is less than 0.5, then:

BinCountB is one less than BinCountA

The remainder x 32 = the number of zeros in LinCountA

LinCountB = 0x0000
If the remainder is equal or greater than 0.5, then:

BinCountB is equal to BinCountA

(The remainder – 0.5) x 32 = the number of zeros in LinCountB

LinCountA = 0x0000
Example 1: Preset to 8,159
o
8,159/32 = 254.96875

Binary Counter A = 254 or 0x00fe

Binary Counter B = 0x00fe (remainder is greater than 0.5)

Linear Counter B = 0x8000 (0.46875 x 32 = 15, Linear Counter B has 15 zeros)

Linear Counter A = 0x0000
Example 2: Preset to 1,000,000
o
110
1,000,000/32 = 31250.0

Binary Counter A = 31250 or 0x7a12

Binary Counter B = 0x7a11 (remainder is less than 0.5)

Linear Counter A = 0xFFFF (remainder is zero, Linear Counter A has no zeros)

Linear Counter B = 0x0000
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix I.
Cryptographic Computations
ATAES132 implements all of its cryptographic commands using AES in CCM mode with a 128-bit key length per
NIST SP800-38C. CCM mode provides both confidentiality and integrity checking with a single key. The integrity
MAC includes both the encrypted data and additional authenticate-only data bytes. The particular information
authenticated with each command is described within the command descriptions in Section 7, Command
Definitions.
The device construction ensures that the Nonce will be unique for each MAC calculated.
I.1
MacCount
The one byte MacCount is stored in an internal register, and is used in the AES-CCM computations. Since
MacCount changes, it speeds up computation by eliminating the need to generate a new random Nonce for every
crypto computation. This register is incremented prior to performing each MAC calculation.
The MacCount Register is set to zero when the Nonce command is executed, and is subsequently incremented
prior to any MAC computation being performed. Because of this, the value that will be used for calculating the first
MAC of the first command after the Nonce command is MAC = 1.
There are two commands (Auth and KeyCreate) which can be configured to both verify an input MAC and
calculate an output MAC. When either of these two commands is run in mutual-authentication mode, MacCount
will be incremented twice.
The value of MacCount for a particular MAC calculation is always one greater than that used for the previous
MAC calculation. After 255 MAC calculations, the device will invalidate the internal Nonce, and commands that
require a valid Nonce will fail. At this point, a new Nonce command must be run to generate a new Nonce.
The MacCount is set to zero if any of the following events occurs:

The Nonce command is executed.

A MAC compare operation fails.

MacCount reaches the maximum count.

A Reset event occurs: Power-Up (see Appendix L.3.1, ChipState = Power-Up), Wake-Up from Sleep (see
Appendix L.3.2, ChipState = Wake-Up from Sleep), the Reset command (see Section 7.22, Reset
Command), or a Security Tamper is activated, causing the hardware to reset.
If a CRC error occurs on the incoming command packet, then MacCount will not be incremented. If the device
receives any command that does not involve MAC computation, the MacCount will not be incremented.
If a cryptographic command is received that involves MAC computation, then the MacCount will be incremented
regardless of whether or not there is a subsequent success or failure of the command. The MacCount will also be
incremented regardless of whether or not the particular instance of the command uses the cryptographic engine.
If a command fails due to a MAC comparison failure, then the Nonce is invalidated and the MacCount Register is
set to zero.
The current value of this register should be known by the system; however, it may also be read out of the device
at any time using the INFO command (See Section 7.12, INFO Command).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
111
I.2
MacFlag
To prevent spoofing of the MAC value, a flag byte is included in each MAC calculation. MacFlag provides
information about the state of the device during the MAC calculation.
Table I-1.
Bit
I.3
Definition of the MacFlag bits
Name
Notes
1b = The Nonce command was run with the RNG enabled, and the Nonce is guaranteed to be
unique.
0b = The Nonce value has been sent to the device by the system and may not be unique.
0
Random
1
Input
1b = For MAC values that are sent to the device as inputs.
0b = For MAC values output by the ATAES132.
3–7
Zero
All bits must be 0b.
MAC Generation
The following example shows how the integrity MAC is calculated for an authentication operation requiring up to
14 bytes of authenticate-only data. This operation involves three passes through the AES crypto engine; all three
using the same key. If there are more than 14 bytes of authenticate-only data, then another pass through the AES
crypto engine is required.
There are two passes through the AES crypto engine in CBC mode to create the cleartext MAC. The inputs to the
crypto engine for those blocks are labeled B0 and B1, and the outputs are B’0 and B’1, respectively.

B0 is composed of the following 128 bits:
o
1 byte flag, a fixed value of b0111 1001.
o
12 byte Nonce, as generated by the Nonce command.
o
1 byte MacCount, 1 for first MAC generation.
2 byte length field, always 0x00 00 for authentication only.
B1 is the XOR of B’0 with the following 128 bits:
o

o
2 byte length field, size of authenticate-only data.
14 byte data to be authenticated only.
B’1 is the cleartext MAC, which must be encrypted before being sent to the system.
o

There is one additional pass through the AES crypto engine in CTR mode to create the key block that is used to
encrypt the MAC. The input to the crypto engine for this block is labeled A0 and the output is A’0. A’0 is the MAC
sent to the system as the output parameter of the Auth command.

A0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by ATAES132 during Nonce command.
o
1 byte MacCount – one for first MAC generation.
2 byte counter field – always 0x00 00 for A0.
A’0 is XOR’d with the cleartext MAC (B’1) and sent to the system.
o

Input integrity MACs for Auth, Counter, KeyCreate, and Lock are also calculated using this procedure. If the input
MAC does not match A’0, then the command returns an AUTH error.
112
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.4
Data Encryption
The following example shows how the encrypted data and integrity MAC are calculated for a 128 bit data read
from the device with up to 14 bytes of authenticate-only data. This operation involves five passes through the
AES crypto engine; all five using the same key. If there are more than 14 bytes of authenticate-only data and/or
more than 128 bits of data being read, then one, two, or three more passes through the AES crypto engine are
required.
There are three passes through the AES crypto engine in CBC mode to create the cleartext MAC. The inputs to
the crypto engine for those blocks are labeled B0, B1, and B2, and the outputs are B’0, B’1 and B’2, respectively.

B0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0111 1001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – 1 for first MAC generation.
2 byte length field – max 0x00 20 if 256 bits of encrypted data, min 0x00 01 for one byte.
B1 is the XOR of B’0 with the following 128 bits:
o

o
2 byte length field – size of authenticate-only data.

14 byte data to be authenticated only.
B2 is the XOR of B’1 with the following 128 bits:

o 16 bytes cleartext data.
B’2 is the cleartext MAC – which must be encrypted before being sent to the system.
o
There are two passes through the AES crypto engine in CTR mode to create the key block that is used to encrypt
the data and the MAC. The inputs to the crypto engine for those blocks are labeled A0 and A1, and the outputs
are A’0 and A’1, respectively. A’0 and A’1 are the blocks sent to the system as the output parameters of the
EncRead and Decrypt commands.

A0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.

2 byte counter field – always 0x00 00 for A0.
A’0 is XOR’d with the cleartext MAC and sent to the system.

A1 is composed of the following 128 bits:
o
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by ATAES132 during Nonce command.
o
1 byte MacCount – one for first MAC generation.
2 byte counter field – always 0x00 01 for A1.
A’1 is XOR’d with the cleartext data and sent to the system.
o

This sequence is also used for the Encrypt command, in addition to EncRead.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
113
I.5
Data Decryption
The following example shows how the encrypted data and integrity MAC are calculated for a 128 bit data block
write to the device with up to 14 bytes of authenticate-only data. This operation involves five passes through the
AES crypto engine; all five using the same key. If there are more than 14 bytes of authenticate-only data and/or
more than 128 bits of data being written, then one, two, or three more passes through the AES crypto engine are
required.
There are two passes through the AES crypto engine in CTR mode to create the key block that is used to decrypt
the data and the MAC. The inputs to the crypto engine for those blocks are labeled A0 and A1, and the outputs
are A’0 and A’1, respectively. A’0 and A’1 are the blocks sent to the system as the output parameters of the
EncRead and Decrypt commands.

A0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.

2 byte counter field – always 0x00 00 for A0.
A’0 is XOR’d with the encrypted input MAC and stored in the internal SRAM as the MAC T.

A1 is composed of the following 128 bits:
o
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by ATAES132 during Nonce command.
o
1 byte MacCount – one for first MAC generation.
2 byte counter field – always 0x00 01 for A1.
A’1 is XOR’d with the encrypted input data and stored in the internal SRAM as the message M.
o

There are three passes through the AES crypto engine in CBC mode to create the expected MAC value. The
inputs to the crypto engine for those blocks are labeled B0, B1, and B2, and the outputs are B’0, B’1, and B’2,
respectively.

B0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0111 1001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.
2 byte length field – max 0x00 20 if 256 bits of encrypted data, min 0x00 01 for one byte.
B1 is the XOR of B’0 with the following 128 bits:
o

o
2 byte length field – size of authenticate-only data.
14 byte data to be authenticated only.
B2 is the XOR of B’1 with the following 128 bits:
o


o 16 bytes of cleartext message M.
B’2 is the cleartext MAC. If this matches the stored T value, then the write to memory proceeds. If there is
no match, the device returns an error flag and does not modify memory.
This sequence is also used for the Decrypt and KeyLoad commands, in addition to EncWrite.
114
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.6
Auth Command MAC
The MACs are calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
11 bytes
1 byte
ManufacturingID
FirstBlock field containing:
1 byte
Auth Opcode (0x03)
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
0x00
Padding of value 0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
4 bytes
8 bytes
4 bytes
I.7
Usage Counter value, or 0x00 if not selected.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
AuthCheck Command – Auth MAC
The Auth command MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
11 bytes
1 byte
ManufacturingID
FirstBlock field containing:
1 byte
Auth Opcode (0x03)
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
0x00
Padding of value 0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
16 bytes
SecondBlock field containing:
4 bytes
Usage counter value, or 0x00 if not selected.
8 bytes
SerialNum[0:7], or 0x00 if not selected.
4 bytes
SmallZone[0:3], or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
115
I.8
AuthCheck Command – Counter MAC
The Counter command MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
11 bytes
1 byte
ManufacturingID
FirstBlock field containing:
1 byte
Counter Opcode (0x0A)
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
CountValue, the output parameter
Padding of value 0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
16 bytes
I.9
SecondBlock field containing:
4 bytes
Usage counter value, or 0x00 if not selected.
8 bytes
SerialNum[0:7], or 0x00 if not selected.
4 bytes
SmallZone[0:3], or 0x00 if not selected.
AuthCompute Command – Auth MAC
The Auth command MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
11 bytes
1 byte
ManufacturingID
FirstBlock field containing:
1 byte
Auth Opcode (0x03)
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
0x00
Padding of value 0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
16 bytes
116
SecondBlock field containing:
4 bytes
Usage counter value, or 0x00 if not selected.
8 bytes
SerialNum[0:7], or 0x00 if not selected.
4 bytes
SmallZone[0:3], or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.10
AuthCompute Command – Counter MAC
The Counter command MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
11 bytes
1 byte
ManufacturingID
FirstBlock field containing:
1 byte
Counter Opcode (0x0A)
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
0x00
Padding of value 0x00.
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
16 bytes
I.11
SecondBlock field containing:
4 bytes
Usage counter value, or 0x00 if not selected.
8 bytes
SerialNum[0:7], or 0x00 if not selected.
4 bytes
SmallZone[0:3], or 0x00 if not selected.
BlockRead Command
The BlockRead command does not perform a cryptographic operation, and does not use or generate a MAC.
I.12
Counter Command MAC
The InMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
11 bytes
ManufacturingID
Counter Opcode (0x0A)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
4 bytes
CountValue
1 byte
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the InMAC calculation:
4 bytes
8 bytes
4 bytes
Usage counter value for MAC generation key, or 0x00 if not selected.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
117
The OutMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
1 byte
2 bytes
2 bytes
1 byte
4 bytes
1 byte
ManufacturingID
Counter Opcode (0x0A)
Mode
Param1
Param2
MacFlag
CountValue, the output parameter
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the OutMAC calculation:
4 bytes
8 bytes
4 bytes
I.13
Usage counter value for MAC generation key, or 0x00 if not selected.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
Crunch Command
The Crunch command does not perform a cryptographic operation, and does not use or generate a MAC.
I.14
DecRead Command
The MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
EncRead Opcode (0x04)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
16 bytes
118
SecondBlock field containing:
4 bytes
Usage counter value, or 0x00 if not selected.
8 bytes
SerialNum[0:7], or 0x00 if not selected.
4 bytes
SmallZone[0:3], or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.15
Decrypt Command MAC
In Normal Decryption mode, the InMAC is calculated using the following 14 bytes in the default authenticate-only
block:
2 bytes
1 byte
1 byte
2 bytes
2 bytes
1 byte
5 bytes
ManufacturingID
Decrypt Opcode (0x07)
Mode
Param1
Param2
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
I.15.1
Usage counter value, or 0x00 if not selected or if KeyID is VolatileKey.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
Client Decrypt MAC
In Client Decryption mode, the InMAC is calculated using the following 14 bytes in the default authenticate-only
block:
2 bytes
1 byte
1 byte
2 bytes
2 bytes
1 byte
5 bytes
ManufacturingID
Encrypt Opcode (0x06)
Mode
Upper byte = 0x00, lower byte = EKeyID
Upper byte = 0x00, lower byte = lower byte of Param2
MacFlag = 0x01
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
0x00 if Usage Counter value is not selected, or 0x00 if KeyID is VolatileKey.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
The Device MacCount will be changed to the EMacCount value when a Decrypt command is received with the
Client Decryption mode is selected. The EMacCount will be used when decrypting the data and the MacCount will
be incremented by the Decrypt operation. (After processing the command, the device MacCount will equal
EMacCount plus one.)
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
119
I.16
EncRead Command MAC
The OutMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
EncRead opcode (0x05)
FirstBlock field containing
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
I.17
Usage counter value, or 0x00 if not selected.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
EncRead Command Configuration Memory Signature MAC
The following example shows how the integrity MAC is calculated for a 512 byte (32 block) certification of the data
from the Configuration Memory. This operation involves multiple passes through the AES crypto engine; all using
the same key, KeyID 00. If the mode parameter indicates that there is an additional block of authenticate-only
data, then another pass through the AES crypto engine is required.
There are 35 passes through the AES crypto engine in CBC mode to create the cleartext MAC. The inputs to the
crypto engine for those blocks are labeled B0, B1, B2 …, and the outputs are B’0, B’1, B’2 …, respectively.


B0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0111 1001
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.
o 2 byte length field – always 0x00 00.
B1 is the XOR of B’0 with the following 128 bits:
o
2 byte length field – value of 528 or 544.

14 byte ManufacturingID – Opcode, etc.
B2 is the XOR of B’1 with the following 128 bits:

16 bytes counter+serial+small, if mode indicates; otherwise, this block does not exist.
B3 is the XOR of B’2 with the following 128 bits:

First 16 bytes of Config – in the clear.
B4 is the XOR of B’3 with the following 128 bits:
o
o
o
o
Second 16 bytes of Config – in the clear.
… and so on …
B’34 is the clear text MAC which must be encrypted before being sent to the system.
o

120
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
There is one pass through the AES crypto engine in CTR mode to encrypt the MAC.


I.18
A0 is composed of the following 128 bits:
o
1 byte flag – a fixed value of b0000 0001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.
o 2 byte counter field – always 0x00 00.
A’0 is XOR’d with the clear text MAC and sent to the system.
EncRead Command Key Memory Signature MAC
The following example shows how the integrity MAC is calculated for a 256 byte (16 block) certification of the data
from the Key Memory. This operation involves multiple passes through the AES crypto engine; all using the same
key, KeyID 00. If the mode parameter indicates that there is an additional block of authenticate-only data, then
another pass through the AES crypto engine is required.
There are 19 passes through the AES crypto engine in CBC mode to create the cleartext MAC. The inputs to the
crypto engine for those blocks are labeled B0, B1, B2 …, and the outputs are B’0, B’1, B’2 …, respectively.


B0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0111 1001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – 1 for first MAC generation.
o 2 byte length field – always 0x00 00.
B1 is the XOR of B’0 with the following 128 bits:
o
2 byte length field – value of 272 or 288.

14 byte ManufacturingID – Opcode, etc.
B2 is the XOR of B’1 with the following 128 bits:

16 bytes counter+serial+small, if mode indicates; otherwise, this block does not exist.
B3 is the XOR of B’2 with the following 128 bits:

First 16 bytes of config – in the clear.
B4 is the XOR of B’3 with the following 128 bits:
o
o
o
o
Second 16 bytes of config – in the clear.
… and so on …
B’18 is the clear text MAC which must be encrypted before being sent to the system.
o

There is one pass through the AES crypto engine in CTR mode to encrypt the MAC.


A0 is composed of the following 128 bits:
o
1 byte flag – fixed value of b0000 0001.
o
12 byte Nonce – as generated by the Nonce command.
o
1 byte MacCount – one for first MAC generation.
o 2 byte counter field – always 0x00 00.
A’0 is XOR’d with the clear text MAC and sent to the system.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
121
I.19
Encrypt Command MAC
The OutMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
1 byte
2 bytes
2 bytes
1 byte
5 bytes
ManufacturingID
Encrypt Opcode (0x06)
Mode
Param1
Param2
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
I.20
Usage counter value or 0x00 if not selected or if KeyID is VolatileKey.
SerialNum[0:7] or 0x00 if not selected.
SmallZone[0:3] or 0x00 if not selected.
EncWrite Command MAC
The InMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
EncWrite Opcode (0x05)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
I.21
Usage counter value or 0x00 if not selected.
SerialNum[0:7] or 0x00 if not selected.
SmallZone[0:3] or 0x00 if not selected.
INFO command
The INFO command does not perform a cryptographic operation, and does not use or generate a MAC.
122
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.22
KeyCreate Command MAC
The input and output MACs are both calculated using the parent key.
Both MACs are calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
KeyCreate Opcode (0x08)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
4 bytes
8 bytes
4 bytes
I.23
Usage counter value or 0x00 if not selected.
SerialNum[0:7] or 0x00 if not selected.
SmallZone[0:3] or 0x00 if not selected.
KeyImport Command — KeyCreate MAC
The MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
KeyCreate Opcode (0x08)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculations:
16 bytes
SecondBlock field containing:
4 bytes
Usage counter value or 0x00 if not selected.
8 bytes
SerialNum[0:7] or 0x00 if not selected.
4 bytes
SmallZone[0:3] or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
123
I.24
KeyLoad Command MAC
The InMAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
KeyLoad opcode (0x09)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
I.25
Usage counter value, or 0x00 if not selected.
SerialNum[0:7], or 0x00 if not selected.
SmallZone[0:3], or 0x00 if not selected.
KeyTransfer Command
The KeyTransfer command does not perform a cryptographic operation and does not use or generate a MAC.
I.26
Legacy Command
The Legacy command executes a single block of the AES engine with no input or output formatting. This is known
as ECB mode and can be used to perform various AES encryption and/or authentication operations. This
command does not use the Nonce Register value in the computation since the entire 16 byte AES engine input
value comes from the input packet.
I.27
Lock Command MAC
If required, due to the value of the mode parameter and ZoneConfig[UZ].WriteMode, the MAC is calculated using
the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
1 byte
2 bytes
2 bytes
1 byte
5 bytes
ManufacturingID
Lock Opcode (0x0D)
Mode
Param1
Param2
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
4 bytes
8 bytes
4 bytes
Usage counter value or 0x00 if not selected.
SerialNum[0:7] or 0x00 if not selected.
SmallZone[0:3] or 0x00 if not selected.
The AES key used for the MAC calculation is that specified in ZoneConfig[Zone].WriteID.
124
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
I.28
Nonce Command
If the Random Nonce option is selected, then the internal Random Nonce is generated using the following
function:
Block A is:
1 byte
1 byte
2 bytes
12 bytes
Nonce Opcode (0x01)
Mode
0x00
Input Seed
Block B is:
2 bytes
2 bytes
12 bytes
ManufacturingID
0x00
Internally generated random number
AES is executed in ECB mode with an input value of Block A and a key of Block B. The output of the AES crypto
engine is XOR’d with Block A, and the first 12 bytes of the result are stored in the internal Nonce Register.
If the LockConfig Register is unlocked (0x55), then the random number generator is latched in test mode, and the
Nonce command will generate nonrandom values. If the LockConfig Register is locked (0x00), then the random
number generator generates random numbers and the Nonce command functions normally.
I.29
NonceCompute Command
The random Nonce is generated using the following function:
Block A is:
1 byte
1 byte
2 bytes
12 bytes
Nonce opcode (0x01)
Mode
0x00
Nonce Register
Block B is:
2 bytes
2 bytes
12 bytes
ManufacturingID
0x00
Random Seed
AES is executed in ECB mode with an input value of Block A and a key of Block B. The output of the AES crypto
engine is XOR’d with Block A, and the first 12 bytes of the result are stored in the internal Nonce Register.
I.30
Random Command
Generates a random number using the internal high-quality random number generator and the random number
generation procedure recommended by NIST in SP800-90 (see Appendix A, Standards and Reference
Documents).
I.31
Reset Command
The Reset command does not perform a cryptographic operation and does not use or generate a MAC.
I.32
Sleep Command
The Sleep command does not perform a cryptographic operation and does not use or generate a MAC.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
125
I.33
WriteCompute Command
The MAC is calculated using the following 14 bytes in the default authenticate-only block:
2 bytes
1 byte
6 bytes
5 bytes
ManufacturingID
EncWrite Opcode (0x05)
FirstBlock field containing:
1 byte
Mode
2 bytes
Param1
2 bytes
Param2
1 byte
MacFlag
0x00
If any of the optional authenticate fields are selected in the mode parameter, then a second authenticate-only
block is included in the MAC calculation:
16 bytes
126
SecondBlock field containing:
4 bytes
Usage counter value or 0x00 if not selected.
8 bytes
SerialNum[0:7] or 0x00 if not selected.
4 bytes
SmallZone[0:3] or 0x00 if not selected.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix J. I2C Interface
The ATAES132 2-Wire Serial Interface is designed to interface directly to microcontrollers with I2C interface ports.
The serial interface and cleartext Read/Write operations operate similar to those of the Atmel I2C Serial
EEPROM.
The Host sends ATAES132 extended commands to the device by writing the command packet to the Command
Memory Buffer at address 0xFE00. The ATAES132 processes the command packet and places the response in
the Response Memory Buffer. The Host retrieves the response by reading the response packet from address
0xFE00.
See Appendix G.2, STATUS Register Behavior in the I2C Interface Mode for additional information regarding the
ATAES132 behavior in I2C interface mode. See Appendix J.6, I2C Compatibility for I2C compatibility information.
J.1
I2C Serial Interface Description
When ATAES132 is configured in I2C serial communication mode, the serial interface operates as an I2C
compatible standard-mode I2C slave device as described in this appendix. I2C is a synchronous serial interface
protocol that is a de facto industry standard and is not formally documented or controlled. Multiple I2C devices can
share the data bus; however, each I2C slave must have a unique I2C Device Address to prevent bus contention.
SCK clock frequencies up to 1MHz are supported by the ATAES132.
The serial interface communication mode is selected by programming the I2CAddr Register in the Configuration
Memory as described in Appendix E.2.15, I2CAddr Register. The I2C Device Address is also located in the
I2CAddr Register. The ATAES132 will only respond to I2C instructions that have a matching I2C Device Address.
J.1.1
I2C Master
The I2C master device generates the serial clock and sends instructions to the I2C slave devices. In this
specification, the I2C master is usually referred to as the Host or the Host microcontroller.
J.1.2
I2C Slave
I2C slave devices receive the serial clock as an input and receive instructions from the I2C master. I2C slaves can
never generate traffic on the I2C interface. Slaves can only respond to instructions provided by the I2C master.
The ATAES132 always operates as a slave. In this specification, the slave is usually referred to as the Client or
the device.
J.1.3
I2C Device Address
Each ATAES132 has a seven bit I2C Device Address (stored in the I2CAddr Register, as described in Appendix
E.2.15) which is used by the Host to direct commands to a specific device on the I2C interface. I2C devices will
only respond to instructions with a matching I2C Device Address. When the ATAES132 is in the Standby state or
Sleep state, a matching I2C Device Address will cause the device to wake-up (see Appendix L, Power
Management for power management specifications).
The LSB of the I2C Device Address byte is the Read/Write operation select bit. A Read operation is initiated if the
R/W bit is high, and a Write operation is initiated if the R/W bit is low.
J.1.4 Relationship of Clock to Data
Data on the SDA pin may change only during SCK low time periods. Data changes during SCK high periods indicate an
I2C Start or Stop condition. The SDA pin is pulled high by an external resistor when no devices are driving the I2C data
bus. The timing requirements for the clock and data signals are illustrated in Appendix 0,
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
127
Timing Diagrams.
J.1.5
I2C Start Condition
A high-to-low transition of SDA with SCK high is an I2C Start condition. An I2C Start condition must precede the
I2C Device Address for any instruction. I2C Start conditions are generated only when the Host is driving the bus;
slaves are not allowed to generate an I2C Start condition.
The slave will reset its serial interface immediately when an I2C Start condition is received. An I2C Start condition
cannot be followed immediately with an I2C Stop condition. Figure J-1 illustrates an I2C Start condition.
J.1.6
I2C Stop Condition
A low-to-high transition of SDA with SCK high is an I2C Stop condition. I2C Stop conditions are only generated
when the Host is driving the bus; slaves are not allowed to generate an I2C Stop condition. Figure J-1 illustrates
an I2C Stop condition.
Figure J-1.
J.1.7
I2C Start Condition and I2C Stop Condition Definitions
I2C ACK
All addresses and data words are serially transmitted to and from ATAES132 in 8-bit words. The receiving I2C
device sends a zero (ACK) during the ninth clock cycle to acknowledge receipt of each byte.
An I2C Host can use acknowledge polling to monitor the progress of an EEPROM Write and to determine if the
slave is ready to accept a new instruction. See Appendix J.3.7, Acknowledge Polling for a discussion of ACK
polling.
J.1.8
I2C NAK
When the receiving I2C device fails to send a zero during the ninth clock cycle to acknowledge that it has received
a byte, then SDA remains high due to the external pull-up resistor. This generates a NO ACK (NAK) signal to the
device sending the byte.
J.1.9
Data Format
All instructions and data on the I2C bus must be formatted as 8-bit bytes, followed by a ninth bit (ACK or NAK)
generated by the receiving device. The MSB is the first bit of each byte transmitted and received.
128
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
J.2
Pin Descriptions
When the ATAES132 is configured in the I2C interface communication mode, the package pins are assigned the
functionality described in this section.
Note:
The pin numbers listed here are the SOIC and UDFN package pin numbers.
Table 9-8.
Pin
1
2
I2C Communication Mode Pin Descriptions
Name
CS
SO
Description
SPI Chip Select Bar Input pin. In the I2C Communication mode, this pin is not used, and should be
tied to VCC or VSS. The state of this pin does not affect the functionality or Active state power
consumption of the ATAES132 when I2C Communication mode is selected.
Serial Data Out pin. In the I2C Communication mode, this pin is not used in the default configuration.
It is always in the high-impedance state. In this configuration, the pin can be tied to V CC or VSS. The
state of this pin does not affect the functionality or Active state power consumption of the ATAES132
when I2C Communication mode is selected.
If Auth signaling is enabled, then the SO pin functions as the AuthO signal output. In this
configuration, the AuthO signal is high after a specified key is authenticated. The AuthO output is in
the high-impedance state when the device has not authenticated. (See Appendix J.5, I2C Auth
Signaling).
3
NC
No Connect pin. This package pin is not used, and can be left open by the user. The state of this pin
does not affect the functionality or power consumption of the ATAES132.
4
VSS
Ground.
SI/SDA
Bidirectional Serial Data I/O pin. In the I2C communication mode, this pin functions as the Serial
Data I/O (SDA). This pin is an open-drain buffer and may be wire-ORed with any number of other
open-drain or open-collector devices. The SDA pin must be pulled high with an external resistor for
the I2C bus to operate correctly.
Data on the SDA pin may change only during the SCK low time periods. Data changes during SCK
high periods indicate an I2C Start or Stop condition. Data transfer on the SDA line is half-duplex, as
described by the I2C command definitions in Appendix J.3, I2C Instruction Set; the Host and Client
cannot simultaneously drive the SDA line.
6
SCK
Serial Clock Input pin. In the I2C Communication mode, this pin is used as the Serial Interface Clock
(SCK). The SCK input is used to transfer data into the ATAES132 on the rising edge of clock and to
transfer data out on the falling edge of clock. The ATAES132 never drives SCK because it is a
standard-mode I2C slave device. Slave device clock stretching is not supported. The SCK line is high
when the bus is idle.
If the I2C master uses a normal totem pole output to drive SCK, then no pull-up resistor is required on
the SCK line. If the I2C master uses an open-drain or open-collector output to drive SCK, then an
external pull-up resistor is required.
7
NC
No Connect pin. This package pin is not used, and can be left open by the user. The state of this pin
does not affect the functionality or power consumption of the ATAES132.
8
VCC
Supply Voltage. Power cannot be removed from the ATAES132 when the I2C interface is active. The
device may be permanently damaged if the requirements in Section 9.1, Absolute Maximum Ratings*
and Section 9.3, DC Characteristics are exceeded..
5
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
129
J.3
I2C Instruction Set
The ATAES132 utilizes the Atmel AT24C32C Serial EEPROM instruction set. The ATAES132 I2C instruction set
is shown in Table J-1.
Table J-1.
ATAES132 I2C Instruction Set
Instruction Name
Operation
BWRITE
Byte Write
Writes one byte to memory.
PWRITE
Page Write
Writes 2 to 32 bytes to memory.
READ
Read
Reads data from memory starting at the current address.
RREAD
Random Read
Reads data from memory starting at the specified address.
SREAD
Sequential Read
Reads additional data from memory.
SRESET
Software Reset
Resets the internal memory address counter to 0000h.
If ATAES132 receives an invalid or undefined instruction code, it will be ignored and the associated data bytes
will be discarded. When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error.
The Host can read the error code from the Response Memory Buffer at address 0xFE00 using the READ
command.
J.3.1
Byte Write (BWRITE)
A Byte Write operation requires two 8-bit data word addresses following the I2C Device Address byte. Upon
receipt of the Start condition and device address, the ATAES132 will respond with I2C ACK and then clock in the
two address bytes (ACKing each byte). The ATAES132 will ACK the receipt of the data byte from the Host. The
Host microcontroller must terminate the write sequence with a Stop condition to initiate the Write operation.
At this time, the EEPROM enters an internally-timed write cycle to the nonvolatile memory. All inputs are disabled
during this write cycle, and the EEPROM will NAK the device address until the write is complete.
If the Host transmits an invalid address, the EEPROM will NAK the second address byte and any data bytes.
When any error occurs, the RRDY and EERR bits of the STATUS Register are set to 1b to indicate an error. The
Host can read the error code from the Response Memory Buffer (address 0xFE00) using the RREAD command.
If the command is processed without error, the EERR bit is set to 0b. Reading the Response Memory Buffer does
not reset the error code or the STATUS Register.
Figure J-2.
Byte Write
S
T
A
R
T
DEVICE
ADDRESS
W
R
I
T
E
FIRST
WORDADDRESS
SECOND
WORDADDRESS
S
T
O
P
DATA
SDA LINE
M
S
B
130
ATAES132 [Datasheet]
LR A
S / C
BW K
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
M
S
B
A
C
K
L A
SC
BK
A
C
K
J.3.2
Page Write (PWRITE)
The ATAES132 is capable of 32-byte Page Writes. A Page Write is initiated in the same way as a Byte Write, but
the Host microcontroller does not send a Stop condition after the first data byte is clocked in. Instead, after the
device ACKs receipt of the first data byte, the Host microcontroller can transmit up to 31 more data bytes (each
byte will be ACKed by the ATAES132). The EEPROM will respond with an I2C ACK after each data byte is
received. The Host must terminate the Page Write sequence with a Stop condition. The data address is internally
incremented following the receipt of each data byte.
If more than 32 bytes of data are transmitted or the page boundary is crossed, then no data will be written.
If the Host transmits an invalid word address, the EEPROM will NAK the second address byte and all data bytes.
When any error occurs, the RRDY and EERR bits of the STATUS Register are set to 1b to indicate an error. The
Host can read the error code from the Response Memory Buffer (address 0xFE00) using the RREAD command.
If the command is processed without error, the EERR bit is set to 0b. Reading the Response Memory Buffer does
not reset the error code or the STATUS Register.
Figure J-3.
Page Write
S
T
A
R
T
DEVICE
ADDRESS
W
R
I
FIRST
SECOND
T
E WORDADDRESS (n) WORDADDRESS (n)
DATA (n + x)
t
SDA LINE
M
S
B
J.3.3
DATA (n)
S
T
O
P
LR A
S / C
BW K
A
C
K
A
C
K
A
C
K
A
C
K
Current Address Read (READ)
The internal data byte address Counter maintains the last address accessed during the last Read or Write
operation incremented by one. This address stays valid between operations as long as the device power is
maintained.
To perform a Current Address Read, the Host sends the device address with the Read/Write Select bit set to one
(READ), and this byte is ACKed by the EEPROM. Then, the Host clocks out the data byte located at the current
address. After the byte is received, the Host responds with an I2C NAK and a following Stop condition to
terminate the Read operation.
When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error. If the command is
processed without error, the EERR bit is set to 0b.
Figure J-4.
Current Address Read of One Data Byte
S
T
A
R
T
DEVICE
ADDRESS
R
E
A
D
S
T
O
P
SDA LINE
M
S
B
LR A
S / C
BW K
DATA
N
O
A
C
K
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
131
J.3.4
Random Read (RREAD)
A Random Read requires a dummy Byte Write sequence to load in the data byte address. Once the device
address and data byte address are clocked in and acknowledged by the ATAES132, the Host microcontroller
must generate another Start condition. The microcontroller then initiates a Current Address Read by sending the
device address with the Read/Write Select bit high (READ). The ATAES132 I2C ACKs the device address, and
serially clocks out the data byte. After the byte is received, the Host responds with an I2C NAK and a following
Stop condition to terminate the Read operation.
If the Host transmits an invalid word address, the EEPROM will NAK the second address byte.
When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error. If the command is
processed without error, the EERR bit is set to 0b.
Figure J-5.
Random Read
S
T
A
R
T
DEVICE
ADDRESS
W
R
I
T
E
S
T
A
R
T
1st, 2nd WORD
ADDRESS n
DEVICE
ADDRESS
R
E
A
D
S
T
O
P
SDA LINE
M
S
B
LR A
S / C
BW K
A
C
K
A
C
K
DATA n
A
C
K
DUMMY WRITE
J.3.5
N
O
Sequential Read (SREAD)
Sequential Reads are initiated by either a Current Address Read or a Random Read. After the Host
microcontroller receives a data byte, it responds with an I2C ACK. As long as the EEPROM receives an
acknowledge, it will continue to increment the data byte address and serially clock out sequential data bytes. The
Sequential Read operation is terminated when the microcontroller responds with an I2C NAK and a following Stop
condition.
When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error. If the command is
processed without error, the EERR bit is set to 0b.
Note:
If an I2C Read begins at an authorized address and continues into protected memory, the EERR bit will
be set to 1b. Attempting to read protected memory will result in 0xFF data returned to the Host for each
protected byte address.
Figure J-6.
Sequential Read
DEVICE
ADDRESS
R
E
A
D
A
C
K
A
C
K
S
T
O
P
A
C
K
SDA LINE
R A
/ C
WK
132
ATAES132 [Datasheet]
DATA n
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
DATA n + 1
DATA n + 2
DATA n + 3
N
O
A
C
K
J.3.6
Software Reset (SRESET)
After an interruption in protocol, powerloss, or system reset, the ATAES132 in I2C interface mode can be protocol
reset by following these steps:

Send a Start condition,

Clock nine cycles,

Send another Start condition followed by Stop condition, as shown below.
The device is ready for the next communication after these steps have been completed. The internal data
address is also reset to 0000h by this procedure.
Figure J-7.
Software Reset
Dummy Clock Cycles
Start bit
SCL
1
2
3
Start bit
8
Stop bit
9
SDA
The ATAES132 requires that the clock be pulled low between the Start condition and the Stop condition at the
end of the sequence, as illustrated in Figure J-7. It will not reset if this clock transition is omitted. See Appendix
J.4, I2C Interface Synchronization Procedure for detailed I2C interface resynchronization instructions.
J.3.7
Acknowledge Polling
The Host can initiate Acknowledge (ACK) Polling immediately after a Write command or the ATAES132 extended
Crypto command is transmitted. Acknowledge polling involves sending a Start condition followed by the I2C
Device Address. The Read/Write bit of the I2C Device Address is representative of the operation desired by the
Host.
During an EEPROM Write operation, the ATAES132 will NAK the I2C Device Address, indicating the device is
busy. When the internal write cycle has completed, the ATAES132 will ACK the I2C Device Address, allowing the
Read or Write sequence to continue. The ATAES132 also NAKs during the processing of Crypto commands, and
so Acknowledge Polling can also be used to determine when processing of the ATAES132 extended commands
is complete.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
133
Figure J-8.
Output Acknowledge (I2C ACK)
1
SCL
8
9
DATA IN
DATA OUT
START
J.4
ACKNOWLEDGE
I2C Interface Synchronization Procedure
If the Host and Client I2C interfaces lose synchronization for any reason, the Host should send clocks until SDA
goes high followed by the SRESET command to reset the ATAES132 interface. See Appendix J.3.6, Software
Reset (SRESET).
J.5
I2C Auth Signaling
The Auth signaling option allows an Authentication Signal (AuthO) to be output by ATAES132. Auth signaling is
available only in the I2C interface mode in standard plastic packages.
The Auth signaling option is controlled by two bits in the KeyConfig Registers: the KeyConfig[KeyID].AuthOut bit
and the KeyConfig[KeyID].AuthOutHold bit (see Table J-2). By default, the KeyConfig[KeyID].AuthOut bit is 0b for
all keys disabling the Auth signaling option.
Table J-2.
Auth Signaling KeyConfig Bit Functions
AuthOut
Bit
AuthOutHold
Bit
1b
X
First successful Auth command forces AuthO high. Additional Auth commands do not
change AuthO and the AuthO output remains latched high.
0b
X
Successful or unsuccessful Auth commands cause no AuthO change.
X
1b
Authentication Reset does not change the AuthO output state.
X
0b
Authentication Reset forces AuthO to the high-impedance state.
Operation
If the KeyConfig[AKeyID].AuthOut bit is 1b for the Authentication Key (AKeyID), then Auth signaling is enabled for
that key and the AuthO signal is output on the SO pin. AuthO is latched high after a successful Inbound-Only
Authentication or Mutual Authentication using the Auth command (see Section 7.1, Auth Command). AuthO will
remain high until the device is powered off, unless an Authentication Reset is received.
If the KeyConfig[AKeyID].AuthOutHold bit is 0b for the key (AKeyID) used to execute an Authentication Reset,
then the AuthO signal latch will be latched in the high-impedance state when the command is received (with a
correct Checksum). If the KeyConfig[AKeyID].AuthOutHold bit is 1b, then AuthO will be unchanged by execution
of an Authentication Reset sequence.
134
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
An Authentication Reset is an Auth command with Mode bits 0 and 1 set to 00b. Knowledge of the key value is
not required to execute an Authentication Reset (see Section 7.1). The ATAES132 does not memorize the KeyID
used to activate Auth signaling. Each Auth command is processed using the KeyConfig[AKeyID] bits of the
AKeyID in the command packet.
Auth signaling is not a security feature. The AuthO signal does not reflect the real-time state of the AuthComplete
status flag. The Reset command, the Sleep command, and the Tamper detectors will not change the state of
AuthO. The state of the AuthO latch is determined only by success or failure of the Auth command and the
configuration of the KeyConfig bits. The INFO command should be used to determine the authentication status of
the device (see Section 7.12, INFO Command).
The KeyConfig[AKeyID].AuthOut bit and the KeyConfig[AKeyID].AuthOutHold bit are ignored when the
ATAES132 is configured in SPI Interface mode.
J.5.1
Using the AuthO Output
When Auth signaling is enabled, the AuthO signal output is either a Logic high or in the high-impedance state.
AuthO can be used to drive an LED or as a control signal to other circuitry. When AuthO is used as a control
signal, a pull-down resistor should be used to transform the high-impedance state into a logic low.
J.6
I2C Compatibility
ATAES132 is design to operate on a bus with other I2C-compatible devices. ATAES132 is a standard-mode
Client device capable of operating at clock speeds up to 1MHz (with bus timing scaled accordingly). The
ATAES132 is not a Fast-Mode or High-Speed mode device.
This section lists the I2C options or features that are not supported by the ATAES132. Any feature that differs
from the I2C specification is also listed.

ATAES132 does not perform Client clock stretching.

ATAES132 will not respond to an I2C general call command.

ATAES132 may be damaged if the clock or data signal levels are above VCC. The power supply to the
ATAES132 cannot be switched off while the bus is active. All of the voltage limits in Section 9.1, Absolute
Maximum Ratings* must be respected.

ATAES132 inputs include Schmitt Triggers and spike suppression; however, the outputs do not include
falling edge slope control.

On I2C devices, a Start condition followed immediately by a Stop condition is never permitted. On the
ATAES132, this sequence is permitted only as part of the SRESET command sequence (see Appendix
J.3.6, Software Reset (SRESET)).
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
135
J.7
Timing Diagrams
Figure J-9.
I2C Synchronous Data Timing (see Section 9.4.1 for PC Timing Specifications)
tHIGH
tF
tR
tLOW
SCL
tSU.STA
tLOW
tHD.STA
tHD.DAT
tSU.DAT
tSU.STO
SDA IN
tAA
tDH
tBUF
SDA OUT
Figure J-10.
I2C Write Cycle Timing
SCL
SDA
8th BIT
ACK
WORDn
(1)
twr
STOP
CONDITION
136
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
START
CONDITION
Appendix K. SPI Interface
The ATAES132 Serial Peripheral Interface (SPI) is designed to interface directly to microcontrollers using SPI
Mode 0 or Mode 3. I/O and Cleartext Read/Write operations operate similarly to those of the Atmel SPI Serial
EEPROM.
The Host sends ATAES132 commands to the device by writing the command packet to the Command Memory
Buffer at address 0xFE00. The ATAES132 processes the command packet and places the response in the
Response Memory Buffer. The Host retrieves the response by reading the response packet from address
0xFE00.
See Appendix G.3, STATUS Register Behavior in the SPI Interface Mode for additional information on the
ATAES132 behavior in SPI interface mode.
K.1
SPI Serial Interface Description
When ATAES132 is configured in the SPI communication mode, the serial interface operates as a Mode 0 and
Mode 3 slave device as described in this appendix. Serial Peripheral Interface (SPI) is a synchronous serial
interface protocol that is a de facto industry standard and is not formally documented or controlled. Multiple SPI
devices can share the data bus; however, each SPI slave must have a separate CS control line to prevent bus
contention.
The serial interface communication mode is selected by programming the I2CAddr Register in the Configuration
Memory as described in Section E.2.15.
K.1.1
SPI Master
The SPI bus master device generates the serial clock and sends instructions to the SPI slave devices. In this
specification, the bus master is usually referred to as the Host or the Host microcontroller.
K.1.2
SPI Slave
SPI slave devices receive the serial clock as an input and receive instructions from the bus master. SPI slaves
can never generate traffic on the SPI bus, and slaves can only respond to instructions provided by the bus
master. The ATAES132 always operates as a slave. In this specification the slave is usually referred to as the
Client.
K.1.3
Relationship of Clock to Data
The ATAES132 supports two of the four standard SPI interface modes; Mode 0 and Mode 3.


In Mode 0:
o
The default state of SCK is low.
o
The data is clocked in (SI) on the rising edge of the clock.
o
Data out (SO) changes on the falling edge of the clock.
In Mode 3:
o
The default state of SCK is high.
o
The data is clocked in (SI) on the rising edge of the clock.
o
Data out (SO) changes on the falling edge of the clock.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
137
K.1.4
SPI Instruction Code
Each SPI command begins with the SPI master bringing the CS input low to select the device followed by
transmission of an eight bit SPI instruction code to the SI input of the SPI slave. Following the instruction code,
additional bytes may be clocked into SI or out of SO as required by the SPI command (see Appendix K.3, SPI
Instruction Set). When the exchange of data bytes related to the SPI instruction code is complete, the CS input is
brought high to deactivate the SPI slave interface.
If an invalid instruction code is received, then the ATAES132 will ignore any data received on the Data Input pin
(SI), and the Data Output pin (SO) will remain in a high-impedance state.
K.1.5
Data Format
All instructions and data on the SPI bus must be formatted as eight bit bytes. The Most-Significant bit (MSB) is
the first bit of each byte transmitted and received.
K.2
SPI Communication Mode Pin Descriptions
When ATAES132 is configured in SPI communication mode, the package pins are assigned the functionality
described in this section.
Table K-1.
Pin
Pin Descriptions
Name
Description
SPI Chip Select Bar Input pin. In SPI communication mode, this pin functions as the slave select
1
CS
input. The ATAES132 is selected when the CS pin is low, allowing instructions and data to be
accepted on the Serial Data Input pin (SI), and allowing data to be transmitted on the Serial Data
Output pin (SO). When the device is not selected, data will not be accepted via the SI pin, and the
Serial Output pin (SO) will remain in a high-impedance state.
When the ATAES132 is in the Standby state or Sleep state, a high-to-low transition on the CS pin will
cause the device to wake-up (see Appendix L, Power Management for power management
specifications). It is recommended that the (CS) pin be connected to VCC with a pull-up resistor so that
the CS pin follows VCC during power-up and power-down.
2
138
SO
Serial Data Out pin. In the SPI communication mode, this pin functions as the Serial Data output.
When the CS pin is high, the SO pin will always be in a high-impedance state because the SPI
interface is disabled.
3
NC
No Connect pin. This package pin is not used, and can be left open by the user. The state of this pin
does not affect the functionality or power consumption of the ATAES132.
4
VSS
Ground.
5
SI/SDA
6
SCK
Serial Clock Input pin. In the SPI communication mode, this pin is used as the serial interface clock.
All data on the SI and SO pins is synchronized by SCK, as described in Appendix K.1.3, Relationship
of Clock to Data.
7
NC
No Connect pin. This package pin is not used, and can be left open by the user. The state of this pin
does not affect the functionality or power consumption of the ATAES132.
8
VCC
Supply Voltage. Power cannot be removed from the ATAES132 when the SPI bus is active. The
device may be permanently damaged if the requirements in Section 9.1, Absolute Maximum Ratings*
and Section 9.3, DC Characteristics are exceeded.
Serial Data Input pin. In the SPI communication mode, this pin functions as the serial data input.
When the CS pin is high, the SI pin will not accepted data because the SPI interface is disabled.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
K.3
SPI Instruction Set
ATAES132 utilizes an 8-bit SPI instruction register. The SPI instruction set is listed in Table K-2.
Table K-2.
ATAES132 SPI Instruction Set
Instruction Name
Instruction Code
Operation
WRITE
0000 0010 b
Write data to memory.
READ
0000 0011 b
Read data from memory.
WRDI
0000 0100 b
Reset Write Enable Register
RDSR
0000 0101 b
Read Status Register
WREN
0000 0110 b
Set Write Enable Latch
If the ATAES132 receives an invalid instruction code or an invalid memory address, then no response will be
sent; the SO output will remain in the high-impedance state. When any error occurs, the EERR bit of the STATUS
Register is set to 1b to indicate an error. The Host can read the error code from the Response Memory Buffer at
address 0xFE00 using the READ command. Reading the Response Memory Buffer does not reset the error code
or change the STATUS.
K.3.1
Write Enable Command (WREN)
The device will power-up in the Write Disable state when VCC is applied. All EEPROM Write instructions must
therefore be preceded by a Write Enable instruction. It is not necessary to send the Write Enable instruction prior
to sending command packets to the Command Memory Buffer.
Figure K-1.
SPI Write Enable (WREN) Timing
CS
SCK
SI
SO
WREN OP-CODE
HI-Z
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
139
K.3.2
Write Disable Command (WRDI)
The Write Enable flag can be disabled by sending the Write Disable instruction.
Figure K-2.
SPI Write Disable (WRDI) Timing
CS
SCK
SI
WRDI OP-CODE
HI-Z
SO
K.3.3
Read Memory Command (READ)
Reading data from the ATAES132 requires the following sequence:
1. The Host drives the CS line low to select a device,
2. Then transmits the Read instruction code on the SI line,
3. Then followed by the address of the byte to be read.
4. The Client ignores any data on the SI line that follows a Read Memory instruction.
The Client shifts out the data at the specified address on the SO line. If only one byte is to be read, the CS line
must be driven high after the data byte comes out. If multiple bytes are to be read, the Host can sequentially clock
the data out of the ATAES132 since the byte address is automatically incremented. The CS line must be driven
high by the Host after the last data byte is read. If the highest address is reached, the Address Counter will not
roll over.
Figure K-3.
SPI READ Memory Timing
CS
0
1
2
3
4
5
6
7
8
9 10 11 20 21 22 23 24 25 26 27 28 29 30 31
SCK
BYTE ADDRESS
SI
INSTRUCTION
SO
HIGH IMPEDANCE
15 14 13 ... 3
2
1
0
DATA OUT
7
6
5
4
3
2
1
0
MSB
When any error occurs, the EERR bit of the STATUS Register is set to 1b to indicate an error. If the command is
processed without error, the EERR bit is set to 0b.
Note:
140
If an SPI Read begins at an authorized address but continues into protected memory; the EERR bit will
be set to 1b.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
K.3.4
Write Memory Command (WRITE)
In order to write to the ATAES132, two separate instructions must be executed. First, the device must be write
enabled via the Write Enable (WREN) instruction. Then a Write Memory instruction may be executed. All
commands received while a write cycle is in progress will be ignored, except the Read Status Register (RDSR)
instruction.
A Write Memory command requires the following sequence:
1. The Host drives the CS line low to select a device,
2. Then transmits the Write instruction code on the SI line,
3. Then followed by the address of the byte to write and the 1 to 32 data bytes to be written.
The byte address is automatically incremented as each byte is clocked in. The CS line must be driven high by the
Host during the SCK low time immediately after clocking in the last data bit. The low-to-high transition of the CS
pin initiates the EEPROM Write process. The SO pin remains in the high-impedance state during the entire Write
sequence.
The Ready/Busy Status of the device can be determined by initiating a Read Status Register (RDSR) instruction.
If the WIP status bit is 1b, the write cycle is still in progress. If the WIP Status bit is 0b, the write cycle has ended,
and the ATAES132 is ready to accept a new command. Only the Read Status Register (RDSR) instruction is
enabled during the EEPROM Write cycle.
The ATAES132 is capable of a 32-byte Page Write operation. After each byte of data is received, the data
address is internally incremented by one. If more than 32 bytes of data are transmitted or if the page boundary is
crossed, then no data will be written. The ATAES132 is automatically returned to the write disable state at the
completion of a write cycle.
Figure K-4.
SPI Write Memory Timing
CS
0
1
2
3
4
5
6
7
8
9
10 11 20 21 22 23 24 25 26 27 28 29 30 31
SCK
BYTE ADDRESS
SI
INSTRUCTION
SO
HIGH IMPEDANCE
DATA IN
When any error occurs, the RRDY and EERR bits of the STATUS Register are set to 1b to indicate an error. The
Host can read the error code from the Response Memory Buffer (address 0xFE00) using the Read command. If
the command is processed without error, the EERR bit is set to 0b. Reading the Response Memory Buffer does
not reset the error code or the STATUS Register.
If the device is not Write Enabled (WREN), the device will ignore the Write instruction and will return to the waiting
for a command. A new CS falling edge is required prior to the new instruction code.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
141
K.3.5
Read Status Register Command (RDSR)
The Read Status Register instruction provides access to the STATUS Register. The Ready/Busy status of the
device can be determined using the RDSR instruction. Alternately, the STATUS Register can be read directly
from memory, as described in Appendix G.2.4, Read STATUS Register.
If the ATAES132 is performing an EEPROM Memory Write or is processing a command when the STATUS read
is performed, then all eight bits are ones if the RDSR command is used to read the STATUS Register, emulating
the behavior of Atmel Serial EEPROM. See Appendix G, Understanding the STATUS Register for a detailed
description of the STATUS Register bits and Status bit behavior.
Table K-3.
Device Status Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EERR
RRDY
Reserved
CRCE
Reserved
WAKEb
WEN
WIP
The Device Status Register can always be read even if the the ATAES132 is processing a command or writing
the EEPROM. The SPI RDSR command is the preferred method for reading the STATUS in SPI interface mode.
If the ATAES132 is in the Sleep or Standby power state, reading the STATUS Register forces the ATAES132 to
wake-up; the STATUS Register is 0xFF until the wake-up process is complete.
Table K-4.
Bit
Definition
Bit 0 (WIP)
0b = Device is ready, waiting for a command.
1b = Write cycle or a cryptographic operation is in progress.
Bit 1 (WEN)
0b = Device is not SPI Write enabled.
1b = Device is SPI Write enabled.
Bit 2 (WAKEb)
0b = Device is not in the Sleep or Standby power state.
1b = Device is in the Sleep or Standby power state.
Bit 3 (Reserved)
Always 0b. This bit is reserved for future use.(1)
Bit 4 (CRCE)
0b = The most recent command block contained a correct Checksum (CRC).
1b = The most recent command block contained an error.
Bit 5 (Reserved)
Always 0b. This bit is reserved for future use.(1)
Bit 6 (RRDY)
0b = Response Memory Buffer is empty.
1b = Response Memory Buffer is ready to read.
Bit 7 (EERR)
0b = Most recent command did not generate an error during execution.
1b = Most recent command generated an execution error.
Notes: 1.
2.
142
Read Status Register Bit Definition Using the SPI RDSR Command(1)(2)
When the SPI RDSR command is used to read the STATUS Register during an EEPROM Write or
during execution of any ATAES132 command, then status bits 0 – 7 are 1b. The reserved bits will
read as 0b if the STATUS Register is read directly from memory during an EEPROM Write or during
execution of an ATAES132 command.
STATUS Register bits 0 – 7 are 1b during wake-up and power-up. See for Appendix L, Power
Management additional information.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Figure K-5.
SPI Read Status Register (RDSR) Timing
CS
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
0
SCK
INSTRUCTION
SI
DATA OUT
HIGH IMPEDANCE
SO
7
6
5
4
3
2
MSB
Reading the STATUS Register does not change the contents STATUS Register or the contents of the Response
Memory Buffer.
K.4
Timing Diagram
Figure K-6.
SPI Synchronous Data Timing (see Section 9.4.3, SPI Interface Timing)
tCS
VIH
CS
VIL
tCSH
tCSS
SCK
VIH
tWH
tWL
VIL
tH
tSU
SI
VIH
VALID IN
VIL
tV
SO
VOH
HI-Z
tHO
tDIS
HI-Z
VOL
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
143
Appendix L. Power Management
The ATAES132 contains several features that facilitate power management. This appendix describes the various
power states and features.
L.1
Power State Descriptions
The ATAES132 has three powered states and the Off state. Two low-power states are available to reduce power
consumption when the system is not using the ATAES132.
L.1.1
Active State
The ATAES132 is in the Active state after it has completed the power-up process and is fully powered. The WIP
Status bit is 0b when the ATAES132 is in the Active state and waiting for a command. The WIP Status bit is 1b
when the ATAES132 is in the Active state and processing a command or performing an EEPROM Write. (See
Appendix G.1.1, WIP Status Bit [0] for WIP status bit information)
The supply current of the ATAES132 in the Active state is several milliamps (see Section 9.3.1, Supply
Characteristics for ICC specifications).
An ATAES132 in the Active state is capable of accepting a command immediately if the WIP Status bit is 0b. The
I2C timing specifications for the Active state are in Section 9.4.1, Power-Up, Sleep, Standby, and Wake-Up
Timing. The SPI timing specifications for the Active state are in Section 9.4.3, SPI Interface Timing.
L.1.2
Standby State
ATAES132 can enter the Standby state in two ways:

The Host can send a Sleep command to place the ATAES132 into Standby, or

The ATAES132 will automatically enter the Standby state at power-up if configured to do so (see Appendix
L.2.1, Power-Up). The Standby state preserves the ATAES132 volatile memory contents and the security
state.
All eight status bits are 1b when the ATAES132 is in the Standby state and during the wake-up process (see
Appendix G, Understanding the STATUS Register for Status bit information).
The supply current of ATAES132 in the Standby state is several microamperes (see Section 9.3.1 for ISB
specifications).
An ATAES132 in the Standby state is capable of reporting the device status immediately, but cannot accept a
command until the wake-up process is complete. The timing specifications for exiting the Standby state are in
Section 9.4.1, Power-Up, Sleep, Standby, and Wake-Up Timing.
144
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
L.1.3
Sleep State
The ATAES132 can enter the Sleep state in two ways:

The Host can send a Sleep command to place the ATAES132 into Standby, or

The ATAES132 will automatically enter the Sleep state at power-up if configured to do so (see Appendix
L.2.1).
The Sleep state clears the ATAES132 volatile memory contents and the security state.
All eight Status bits are 1b when the ATAES132 is in the Sleep state and during the wake-up process (see
Appendix G for Status bit information).
The supply current of the ATAES132 in the Standby state is less than one microampere (see Section 9.3.1 for ISB
specifications).
An ATAES132 in the Sleep state is capable of reporting the device STATUS immediately but cannot accept a
command until the wake-up process is complete. The timing specifications for exiting the Sleep state are in
Section 9.4.1, Power-Up, Sleep, Standby, and Wake-Up Timing.
L.1.4
Off State
When the ATAES132 device is unpowered or when VCC is significantly below the minimum VCC voltage, the
device is in the Off state. A device in the Off state cannot respond to any commands.
L.2
Power State Transitions
Power-Up is a transition from the Off state to one of the three powered states. Power-down is the transition from a
powered state to the Off state. Wake-up is the transition from one of the two low-power states to the Active state.
L.2.1
Power-Up
Power-Up begins when the power supply is turned on, causing the VCC voltage to rise continuously from VSS to
the operating voltage. Power-Up occurs in three stages.
1. First Stage: The voltage regulator and other analog circuitry are activated.
2. Second Stage: The serial interface logic is activated so that the ATAES132 can report the device status to
the Host.
3. Third Stage: The ATAES132 enters the state specified by the ChipConfig Register.
During the power-up process, the device is unable to accept commands. In the SPI interface mode, the device is
ready to receive a Read Status Register command after the Power-Up Time, tPU.STATUS. The Power-Up Ready
Time (tPU.RDY) specifies the time required to complete the power-up process. In the I2C interface mode, the device
will NAK all instructions prior to the completion of Power-Up (time tPU.RDY).
The last stage of the power-up procedure is to enter the Active, Standby, or Sleep state specified by bits 6 and 7
of the ChipConfig Register. The ChipState Register is set to 0xFFFF at power-up (see Appendix L.3,
Understanding the ChipState Register).
Table L-1.
Coding of the ChipConfig.PowerUpState bits in the ChipConfig Register
Bit 7
Bit 6
Description
1
1
1
0
0
1
Device goes to the Standby state at power-up.
0
0
Device goes to the Sleep state at power-up.
Device goes to the Active state at power-up.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
145
During power-up, the SPI Chip Select should follow the VCC voltage. It is recommended that the CS pin be
connected to VCC with a pull-up resistor if the ATAES132 is configured in the SPI interface mode. The ATAES132
does not support hot swapping or hot plugging. Connecting or disconnecting this device to a system while power
is energized can cause permanent damage to the ATAES132.
L.2.2
Power-Down
Before power-down, the device must be deselected (if configured for SPI) and placed in the Active, Standby, or
Sleep state. During power-down, the SPI Chip Select should be allowed to follow the VCC voltage if the
ATAES132 is configured in SPI interface mode.
The ATAES132 should not be powered down when the WIP status bit indicates that an EEPROM Write or
cryptographic operation is in progress. If the WIP status bit is 0b, then it is safe to power-down the device.
L.2.3
Entering the Standby State
If the ATAES132 is in the Active state, the Host can send a Sleep command to place the ATAES132 in the
Standby state (see Section 7.23, Sleep Command). It is not possible to transition the device directly from the
Sleep state to the Standby state. The Host must wake-up the device and then send a Sleep command to place
the device in standby.
The device can also be configured to enter the Standby state at power-up as described in Appendix L.2.1,
Power-Up.
The ATAES132 exits Standby state only if a Wake-Up event occurs on the I/O pins. Wake-Up is discussed in
Appendix L.2.5, SPI Wake-Up and L.2.6, I2C Wake-Up. The ChipState Register does not change when the
ATAES132 enters or leaves the Standby state (see see Appendix L.3, Understanding the ChipState Register).
L.2.4
Entering the Sleep State
If the ATAES132 is in the Active state, the Host can send a Sleep command to place the ATAES132 in the Sleep
state (see Section 7.23). It is not possible to transition the device directly from the Standby state to the Sleep
state. The Host must wake-up the device and then send a Sleep command to place the device in the Sleep state.
The device can also be configured to enter the Sleep state at power-up, as described in Section L.2.1.
The ATAES132 exits Sleep mode only if a Wake-Up event occurs on the I/O pins. Wake-up is discussed in
Sections L.2.5 and L.2.6. The ChipState Register changes to 0x5555 when the ATAES132 leaves the Sleep state
(see Appendix Appendix L.3).
L.2.5
SPI Wake-Up
To wake-up the ATAES132 configured for SPI interface mode, the Host is required to read the Status Register
using the SPI Read Status Register command. The ATAES132 will answer the SPI Read Status Register
command with the device status if the Host has not violated the 100ns minimum tCSS.Wup setup time requirement.
The ATAES132 status will indicate the device is busy (status = 0xFF) during wake-up. When wake-up is
complete, the ATAES132 status changes to indicate the device is in the Active state.
The ATAES132 will accept the SPI Read Status Register command only while it is busy. All other commands will
be ignored. The SPI Read Status Register command is described in Appendix K.3.5, Read Status Register
Command (RDSR).
146
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Figure L-1.
SPI Interface Timing, CS Setup Time at Wake-Up
The wake-up process begins when a device in the Standby or Sleep state experiences a high-to-low transition of
the CS pin. The device is ready to receive a Read Status Register command from the Host after Wake-Up Time
tWupSB.STATUS for the Standby state, or tWupSL.STATUS for the Sleep state. The wake-up is complete after the Wake-Up
Ready Time of tWupSB.RDY for the Standby state or tWupSL.RDY for the Sleep state; tWupSB.RDY and tWupSL.RDY begin when
the CS pin high-to-low transition occurs and end when the device enters the Active state. The Wake-Up timing
specifications are in Table 9-5.
L.2.6
I2C Wake-Up
To wake-up an ATAES132 configured for I2C interface mode, the Host is required to perform ACK polling using
the matching I2C Device Address. The ATAES132 will answer the ACK poll with an I2C NAK to indicate the device
is busy during wake-up. The ACK poll reply will change to ACK when the device is in the Active state.
The ATAES132 will not accept any commands while it is busy. The ATAES132 will NAK the I2C Device Address
if it does not match the internal I2C Device Address and will not wake-up if a nonmatching I2C Device Address is
received.
The wake-up process begins when a device in the Standby or Sleep state receives an I2C start signal, followed
immediately by an I2C Device Address that matches the ATAES132 I2CAddr Register. The device is ready to
receive an ACK poll from the Host after Wake-Up Time tWupSB.STATUS for the Standby state or tWupSL.STATUS for the
Sleep state. The wake-up is complete after the Wake-Up Ready Time of tWupSB.RDY for the Standby state or
tWupSL.RDY for the Sleep state; tWupSB.RDY and tWupSL.RDY begin when a matching I2C Address is received, and end
when the device enters the Active state. The wake-up timing specifications are in Table 9-5.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
147
L.3
Understanding the ChipState Register
The INFO command (see Section 7.12, INFO Command) provides access to the ChipState Register. The
ChipState Register value indicates if the device has recently experienced a power-up event or wake-up from the
Sleep Power state. This information can be useful for determining how to recover from an unexpected transaction
error.
Table L-2.
Description of the ChipState Register Value Returned by the INFO command
ChipState
0x0000
ChipState = Active.
Device has remained active since the previous Crypto command was processed.(1)
0x5555
ChipState = Wake-up from sleep.
Device has experienced a wake-up from the Sleep Power state since the previous Crypto command was
processed.(1)
0xFFFF
ChipState = Power-up.
Device has experienced a power up event since the previous Crypto command was processed.(1)
Note:
L.3.1
Description
1.
The following subsections describe the events that cause ChipState to change values and events
that do not change ChipState.
ChipState = Power-Up
The following events cause the ChipState Register to be set to the Power-Up state (0xFFFF). The events in this
table cause the device to be initialized and placed in the power state specified in the ChipConfig Register (see
Appendix L.2.1, Power-Up).
Table L-3.
L.3.2
Description of Events Causing the ChipState Register to be Set to 0xFFFF
Event
Event description
Power-up
Power-up of the device (Appendix L.2.1, Power-Up).
Power Interruption
Power interruption or brownout resulting in device reset.
ChipState = Wake-Up from Sleep
The following events cause the ChipState Register to be set to the wake-up from Sleep state (0x5555). The
events in this table cause the security registers to be cleared, the logic reinitialized, and the device returned to the
Active Power state (ready to receive a command).
Table L-4.
148
Description of Events Causing the ChipState Register to be Set to 0x5555
Event
Event Description
Wake-up from Sleep
Wake-up from the Sleep power state. (Appendix L.1.3, Sleep State)
Reset Command
Device receives a valid Reset command block. (Section 7.22, Reset Command)
Tamper
Device reset initiated by the tamper sensors. (Section 3.1.2, Hardware Security Features)
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
L.3.3
Events that Do Not Change ChipState
The following events cause no change in the ChipState Register value. These events do not modify the security
state of the ATAES132; therefore, do not cause the ChipState to change.
Table L-5.
Description of Events Causing No Change in the ChipState Register
Event
Event Description
Wake-Up from Standby
Wake-Up from the Standby Power state. (Appendix L.1.2, Standby State)
Reading STATUS
Reading the STATUS Register with SPI RDSR or standard Read commands.
(Appendix G, Understanding the STATUS Register)
Writing IO Address Reset
Writing the IO Address Reset Register. (Appendix D.3, IO Address Reset Register)
Reading a Response
Reading the Response Memory Buffer. (Appendix D.2, Response Memory Buffer)
Command CRC Error
Device receives any command block which results in a CRCE error. (1)
(Appendix G.1.4, CRCE Status Bit [4])
Command Invalid
Device receives a command block containing an undefined/invalid opcode.
(Section 6.2, Command Summary).
ACK Polling
I2C Acknowledge Polling. (Appendix J.3.7, Acknowledge Polling)
I2C Read
I2C Standard Read (READ, RREAD, SREAD instructions) (Appendix J.3, I2C Instruction Set).
Invalid I2C Write
I2C standard Write beginning at any address from 0x1000 to 0xEFFF or above 0xF300, except
address 0xFE00 (BWRITE, PWRITE instructions)(2) (Appendix J.3).
I2C SRESET
I2C SRESET instruction (Appendix J.3.6, Software Reset (SRESET)).
SPI Read
SPI standard read [READ instruction] (Appendix K.3.3, Read Memory Command (READ)).
Invalid SPI Write
SPI standard write beginning at any address from 0x1000 to 0xEFFF or above 0xF300, except
address 0xFE00 (WREN, WRITE, WRDI instructions)(2) (Appendix K.3, SPI Instruction Set).
INFO command
Device receives a valid INFO command block (Section 7.12, INFO Command).
Notes: 1.
2.
A CRCE error results from a command block with a short count, bad checksum, or buffer overrun.
Writing the Command Memory Buffer (address 0xFE00) may or may not change ChipState,
depending on which command is written to the buffer.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
149
L.3.4
ChipState = Active
The following events cause the ChipState Register to be set to the Active state (0x0000). The events in this table
may result in a change in the security state of the device.
Table L-6.
Description of Events Causing the ChipState Register to be Set to 0x0000
Event
Event Description
Auth Command
Device receives a valid Auth command block.
7.1
AuthCheck Command
Device receives a valid AuthCheck command block.
7.2
AuthCompute Command
Device receives a valid AuthCompute command block.
7.3
BlockRead Command
Device receives a valid BlockRead command block.
7.4
Counter Command
Device receives a valid Counter command block.
7.5
Crunch Command
Device receives a valid Crunch command block.
7.6
DecRead
Device receives a valid DecRead command block.
7.7
Decrypt Command
Device receives a valid Decrypt command block.
7.8
EncRead Command
Device receives a valid EncRead command block.
7.9
Encrypt Command
Device receives a valid Encrypt command block.
7.10
EncWrite Command
Device receives a valid EncWrite command block.
7.11
KeyCreate Command
Device receives a valid KeyCreate command block.
7.13
KeyImport Command
Device receives a valid KeyImport command block.
7.14
KeyLoad Command
Device receives a valid KeyLoad command block.
7.15
KeyTransfer Command
Device receives a valid KeyTransfer command block.
7.16
Legacy Command
Device receives a valid Legacy command block.
7.17
Lock Command
Device receives a valid Lock command block.
7.18
Nonce Command
Device receives a valid Nonce command block.
7.19
NonceCompute Command
Device receives a valid NonceCompute command block.
7.20
Random Command
Device receives a valid Random Command block.
7.21
Sleep Command
Device receives a valid Sleep command block.
7.23
WriteCompute Command
Device receives a valid WriteCompute command block.
7.24
I2C Write
SPI Write
150
ATAES132 [Datasheet]
I2 C
Section
standard Write beginning at any user zone address, any Configuration
Memory address, or any Key Memory address (BWRITE, PWRITE
instructions).
J.3
SPI standard Write beginning at any user zone address, any Configuration
Memory address, or any Key Memory address (WREN, WRITE, WRDI
instructions).
K.3
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix M. Block Checksum
An Atmel CRC-16 Checksum is used to verify the integrity of blocks communicated to and from the ATAES132.
The Host sends ATAES132 extended commands to the device in a block of at least four bytes. The ATAES132
responses are returned to the Host in a block of at least four bytes. The command and response blocks are
constructed in the following manner:
Byte #
Name
Meaning
0
Count
Number of bytes to be transferred to the device in the block, including count, packet, and
checksum. This byte will always have a value of N.
1 to (N-3)
Packet
Command, parameters and data, or response. Data are transmitted in the byte order shown in
command definitions in Section 7, Command Definitions.
N-2, N-1
Checksum
Atmel CRC-16 verification of the Count and packet bytes.
The Atmel CRC-16 polynomial is 0x8005. The initial register value should be 0x0000. After the last bit of the
Count and packet has been transmitted, the internal CRC Register should have a value that matches that in the
block. The first Checksum byte transmitted (N-2) is the most-significant byte of the CRC value, and the last byte
of the block is the least-significant byte of the CRC.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
151
M.1
Checksum Function
/** \This function calculates a 16-bit CRC.
* \param[in] count number of bytes in data buffer
* \param[in] data pointer to data
* \param[out] crc pointer to calculated CRC (high byte at crc[0])
*/
void CalculateCrc(uint8_t length, uint8_t *data, uint8_t *crc)
{
uint8_t counter;
uint8_t crcLow = 0, crcHigh = 0, crcCarry;
uint8_t polyLow = 0x05, polyHigh = 0x80;
uint8_t shiftRegister;
uint8_t dataBit, crcBit;
for (counter = 0; counter < length; counter++) {
for (shiftRegister = 0x80; shiftRegister > 0x00; shiftRegister >>= 1) {
dataBit = (data[counter] & shiftRegister) ? 1 : 0;
crcBit = crcHigh >> 7;
// Shift CRC to the left by 1.
crcCarry = crcLow >> 7;
crcLow <<= 1;
crcHigh <<= 1;
crcHigh |= crcCarry;
if ((dataBit ^ crcBit) != 0) {
crcLow ^= polyLow;
crcHigh ^= polyHigh;
}
}
}
crc[0] = crcHigh;
crc[1] = crcLow;
}
M.2
Checksum Examples
DATA = 09 02 02 00 00 00 00 CRC = 0xF960
152
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix N. ATAES132 Command Response Time
The typical and maximum time required for the ATAES132 to process an extended command is shown in Table
N-1. The response time is the time from sending the last bit of the last byte of the command block to the
Command Memory Buffer until the STATUS Register (or I2C ACK) indicates the response block is available. The
typical response time is the average time required for an error-free command to be processed on a typical device
at room temperature. The maximum response time is the worst-case time for the command to be processed over
the specified temperature range (with or without an error condition, whichever results in the worst response time).
Table N-1.
ATAES132 Extended Commands Typical and Maximum Response Times (1)
Typical (2)
ms
Maximum (3)
ms
Auth, Reset (Mode [0:1] = 00b)
0.5
0.7
Auth, Inbound-Only (Mode [5:7] = 000b)
1.7
2.4
Auth, Inbound-Only (Mode [5:7] not 000b)
2.0
2.8
Auth, Inbound-Only (Mode [5:7] not 000b), with Key Usage. (5)
5.3
21.0
Auth, Outbound-Only (Mode [5:7] = 000b)
1.7
2.4
Auth, Outbound-Only (Mode [5:7] not 000b)
2.0
2.8
Auth, Outbound-Only (Mode [5:7] not 000b), with Key Usage. (5)
5.3
21.0
Auth, Mutual (Mode [5:7] = 000b)
2.6
3.6
Auth, Mutual (Mode [5:7] not 000b)
3.1
4.3
Auth, Mutual (Mode [5:7] not 000b), with Key Usage. (5)
6.4
22.6
AuthCheck
1.9
2.7
AuthChec, with Key Usage. (5)
5.2
20.9
AuthCompute
2.0
2.7
AuthCompute, with Key Usage. (5)
5.3
20.9
BlockRead, 32 bytes
0.9
1.3
Counter, Read, without MAC
0.6
0.8
Counter, Read, with OutMAC (Mode [5:7] = 000b)
1.8
2.5
Counter, Read, with OutMAC (Mode [5:7] not 000b)
2.1
2.9
Counter, Read, with OutMAC (Mode [5:7] not 000b), with Key Usage. (5)
5.4
21.1
Counter, Increment, without MAC
3.9
4.4
Counter, Increment, with InMAC (Mode [5:7] = 000b)
5.1
6.2
Counter, Increment, with InMAC (Mode [5:7] not 000b)
5.4
6.5
Counter, Increment, with InMAC (Mode [5:7] not 000b), with Key Usage. (5)
8.7
24.8
Crunch, with Count 0x0001
0.9
1.2
DecRead
2.5
3.5
Command Description
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
153
Typical (2)
ms
Maximum (3)
ms
DecRead, with Key Usage. (5)
5.9
21.8
Decrypt, 1 to 16 bytes (Mode [5:7] = 000b)
2.4
3.4
Decrypt, 1 to 16 bytes (Mode [5:7] not 000b)
2.7
3.7
Decrypt, 1 to 16 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.0
21.9
Decrypt, 17 to 32 bytes (Mode [5:7] = 000b)
3.2
4.3
Decrypt, 17 to 32 bytes (Mode [5:7] not 000b)
3.4
4.7
Decrypt, 17 to 32 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.7
22.9
EncRead, 1 to 16 bytes (Mode [5:7] = 000b)
2.5
3.5
EncRead, 1 to 16 bytes (Mode [5:7] not 000b)
2.8
3.9
EncRead, 1 to 16 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.1
22.1
EncRead, 17 to 32 bytes (Mode [5:7] = 000b)
3.2
4.5
EncRead, 17 to 32 bytes (Mode [5:7] not 000b)
3.5
4.8
EncRead, 17 to 32 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.8
23.1
EncRead, Configuration Memory Signature Generation Mode
9.1
12.7
EncRead, Key Memory Signature Generation Mode
13.9
18.4
Encrypt, 1 to 16 bytes (Mode [5:7] = 000b)
2.4
3.4
Encrypt, 1 to 16 bytes (Mode [5:7] not 000b)
2.7
3.7
Encrypt, 1 to 16 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.0
21.9
Encrypt, 17 to 32 bytes (Mode [5:7] = 000b)
3.0
4.1
Encrypt, 17 to 32 bytes (Mode [5:7] not 000b)
3.2
4.5
Encrypt, 17 to 32 bytes (Mode [5:7] not 000b), with Key Usage. (5)
6.5
22.7
EncWrite, 1 to 16 bytes (Mode [5:7] = 000b)
9.1
10.8
EncWrite, 1 to 16 bytes (Mode [5:7] not 000b)
9.4
11.1
EncWrite, 1 to 16 bytes (Mode [5:7] not 000b), with Key Usage. (5)
12.4
29.0
EncWrite, 17 to 32 bytes (Mode [5:7] = 000b)
9.9
11.9
EncWrite, 17 to 32 bytes (Mode [5:7] not 000b)
10.2
12.2
EncWrite, 17 to 32 bytes (Mode [5:7] not 000b), with Key Usage. (5)
13.2
30.1
EncWrite a Key (Mode [5:7] = 000b)
15.8
18.1
EncWrite a Key (Mode [5:7] not 000b)
16.1
18.5
EncWrite a Key (Mode [5:7] not 000b), with Key Usage. (5)
19.4
36.7
INFO
0.5
0.7
KeyCreate, without RNG Seed Update. (Mode [5:7] = 000b)
17.0
19.9
Command Description
154
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Typical (2)
ms
Maximum (3)
ms
KeyCreate, without RNG Seed Update. (Mode [5:7] not 000b)
17.3
20.2
KeyCreate, without RNG Seed Update. (Mode [5:7] not 000b), with Key Usage. (5)
20.6
38.5
KeyCreate, with RNG Seed Update. (Mode [5:7] = 000b)
32.4
37.4
KeyCreate, with RNG Seed Update. (Mode [5:7] not 000b)
32.9
38.2
KeyCreate, with RNG Seed Update. (Mode [5:7] not 000b), with Key Usage. (5)
35.2
54.9
KeyCreate, VolatileKey with RNG Seed Update. (Mode [5:7] = 000b)
18.8
22.4
KeyCreate, VolatileKey with RNG Seed Update. (Mode [5:7] not 000b)
19.4
23.1
KeyCreate, VolatileKey with RNG Seed Update. (Mode [5:7] not 000b), with Key Usage. (5)
22.7
41.3
KeyImport (Mode [5:7] = 000b)
15.8
18.2
KeyImport (Mode [5:7] not 000b)
16.1
18.5
KeyImport (Mode [5:7] not 000b), with Key Usage. (5)
19.4
36.7
KeyLoad (Mode [5:7] = 000b)
15.8
18.2
KeyLoad (Mode [5:7] not 000b)
16.1
18.5
KeyLoad (Mode [5:7] not 000b), with Key Usage. (5)
19.4
36.7
KeyTransfer
14.2
15.8
Legacy
1.2
1.7
Legacy, with Key Usage. (5)
4.5
19.9
Lock SmallZone, Key Memory, Configuration Memory, with Checksum.
16.8
20.6
Lock User Zone, without MAC
3.8
4.4
Lock User Zone, with MAC (Mode [5:7] = 000b)
5.1
6.1
Lock User Zone, with MAC (Mode [5:7] not 000b)
5.3
6.5
Lock User Zone, with MAC (Mode [5:7] not 000b), with Key Usage. (5)
8.7
24.7
Nonce, Inbound
0.5
0.7
Nonce, Random, without RNG Seed Update.
2.1
2.9
Nonce, Random, with RNG Seed Update.
16.8
19.5
NonceCompute
0.9
1.3
Random, without RNG Seed Update.
1.7
2.4
Random, with RNG Seed Update.
16.3
18.8
Reset (4)
1.3
1.7
Sleep, enter Standby state. (4)
0.1
0.1
Sleep, enter Sleep state. (4)
0.1
0.1
WriteCompute, 1 to 16 bytes
2.6
3.7
Command Description
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
155
Typical (2)
ms
Maximum (3)
ms
WriteCompute, 1 to 16 bytes, with Key Usage. (5)
5.9
21.8
WriteCompute, 17 to 32 bytes
3.2
4.4
6.5
22.3
Command Description
WriteCompute, 17 to 32 bytes
WriteCompute, 17 to 32 bytes, with Key Usage. (5)
Notes: 1.
156
The values in this table are based on characterization and/or simulation. These parameters are not
tested.
2.
The typical response time is the time required for 60% of devices to place a packet in the Response
Memory Buffer and change the WIP status bit to 0b after successful execution of the command at
room temperature. If an error occurs, the response will be available in a shorter amount of time.
3.
The maximum response time is the time required for 95% of devices to place a packet in the
Response Memory Buffer and change the WIP Status bit to 0b after successful execution of the
command at the worst case temperature.
Note: 5% of the devices may be slower than this number. The Host is expected to read the STATUS
Register to determine when a response is available (see Appendix G, Understanding the STATUS
Register).
4.
The Reset command and the Sleep command do not generate a response. The response times are
the time required for the operation to be completed.
5.
These times are with the Key Usage limits enabled in the KeyConfig Register. All other times are with
the Key Usage limits disabled in the KeyConfig Register.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix O. Default Configuration
The ATAES132 memory map is shown in Table O-1 with the default memory values. Reserved memory cannot
be written or read.
Table O-1.
ATAES132 Memory Map Showing the Default Memory Contents
Byte Address
Description
0000h-0FFFh
User Memory (Default = All bytes FFh)
1000h-EFFFh
Reserved
F000h-F1FFh
Configuration Memory (see Appendix O.1,
Configuration Memory Contents for default values)
F200h-F2FFh
Key Memory (see Appendix O.2, Key Memory Contents for default values)
F300h-FDFFh
Reserved
FE00h
Command / Response Memory Buffer
FE01h-FFFDh
Reserved
FFE0h
I/O Address Reset
FFE1h-FFEFh
Reserved
FFF0h
STATUS Register
FFF1h-FFFFh
Reserved
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
157
O.1
Configuration Memory Contents
The default contents of the Configuration Memory after completion of production test are shown in Table O-2.
This configuration enables most functions, and is expected to be changed by the customer during personalization.
See Appendix E, Configuration Memory Map.
Table O-2.
Address
Default Configuration Memory contents (All Register Values Shown are Hexadecimal Numbers)
0h / 8h
1h / 9h
2h / Ah
4h / Ch
F000h-F007h
Unique Die Serial Number
F008h-F00Fh
Atmel Proprietary Data
Atmel Proprietary Data
5h / Dh
6h / Eh
7 h / Fh
00
00
20
F010h-F017h
00
1F
F018h-F01Fh
20
20
0A
Atmel Proprietary Data
F020h-F027h
55
55
55
Atmel Proprietary Data
F028h-F02Fh
Atmel Proprietary Data
EE
F030h-F037h
00
03
Atmel Data
Atmel Proprietary Data
F038h-F03Fh
158
3 h / Bh
F040h-F047h
I2CAddr
C3
FF
FF
FF
FF
FF
FF
F048h-F04Fh
FF
FF
FF
FF
FF
FF
FF
FF
F050h-F057h
FF
FF
FF
FF
FF
FF
FF
FF
F058h-F05Fh
FF
FF
FF
FF
FF
FF
FF
FF
F060h-F067h
FF
FF
FF
FF
FF
FF
FF
FF
F068h-F06Fh
FF
FF
FF
FF
FF
FF
FF
FF
F070h-F077h
FF
FF
FF
FF
FF
FF
FF
FF
F078h-F07Fh
FF
FF
FF
FF
FF
FF
FF
FF
F080h-F087h
00
00
00
00
FF
FF
FF
FF
F088h-F08Fh
FF
FF
FF
FF
FF
FF
FF
FF
F090h-F097h
FF
FF
FF
FF
FF
FF
FF
FF
F098h-F09Fh
FF
FF
FF
FF
FF
FF
FF
FF
F0A0h-F0A7h
FF
FF
FF
FF
FF
FF
FF
FF
F0A8h-F0AFh
FF
FF
FF
FF
FF
FF
FF
FF
F0B0h-F0B7h
FF
FF
FF
FF
FF
FF
FF
FF
F0B8h-F0BFh
FF
FF
FF
FF
FF
FF
FF
FF
F0C0h-F0C7h
00
FF
FF
FF
00
FF
FF
FF
F0C8h-F0CFh
00
FF
FF
FF
00
FF
FF
FF
F0D0h-F0D7h
00
FF
FF
FF
00
FF
FF
FF
F0D8h-F0DFh
00
FF
FF
FF
00
FF
FF
FF
F0E0h-F0E7h
00
FF
FF
FF
00
FF
FF
FF
F0E8h-F0EFh
00
FF
FF
FF
00
FF
FF
FF
F0F0h-F0F7h
00
FF
FF
FF
00
FF
FF
FF
F0F8h-F0FFh
00
FF
FF
FF
00
FF
FF
FF
F100h-F107h
FF
FF
00
00
00
00
00
00
F108h-F10Fh
FF
FF
00
00
00
00
00
00
F110h-F117h
FF
FF
00
00
00
00
00
00
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Address
0h / 8h
1h / 9h
2h / Ah
3 h / Bh
4h / Ch
5h / Dh
6h / Eh
7 h / Fh
F118h-F11Fh
FF
FF
00
00
00
00
00
00
F120h-F127h
FF
FF
00
00
00
00
00
00
F128h-F12Fh
FF
FF
00
00
00
00
00
00
F130h-F137h
FF
FF
00
00
00
00
00
00
F138h-F13Fh
FF
FF
00
00
00
00
00
00
F140h-F147h
FF
FF
00
00
00
00
00
00
F148h-F14Fh
FF
FF
00
00
00
00
00
00
F150h-F157h
FF
FF
00
00
00
00
00
00
F158h-F15Fh
FF
FF
00
00
00
00
00
00
F160h-F167h
FF
FF
00
00
00
00
00
00
F168h-F16Fh
FF
FF
00
00
00
00
00
00
F170h-F177h
FF
FF
00
00
00
00
00
00
F178h-F17Fh
FF
FF
00
00
00
00
00
00
F180h-F187h
FF
FF
FF
FF
FF
FF
FF
FF
F188h-F18Fh
FF
FF
FF
FF
FF
FF
FF
FF
F190h-F197h
FF
FF
FF
FF
FF
FF
FF
FF
F198h-F19Fh
FF
FF
FF
FF
FF
FF
FF
FF
F1A0h-F1A7h
FF
FF
FF
FF
FF
FF
FF
FF
F1A8h-F1AFh
FF
FF
FF
FF
FF
FF
FF
FF
F1B0h-F1B7h
FF
FF
FF
FF
FF
FF
FF
FF
F1B8h-F1BFh
FF
FF
FF
FF
FF
FF
FF
FF
F1C0h-F1C7h
FF
FF
FF
FF
FF
FF
FF
FF
F1C8h-F1CFh
FF
FF
FF
FF
FF
FF
FF
FF
F1D0h-F1D7h
FF
FF
FF
FF
FF
FF
FF
FF
F1D8h-F1DFh
FF
FF
FF
FF
FF
FF
FF
FF
F1E0h-F1E7h
FF
FF
FF
FF
FF
FF
FF
FF
F1E8h-F1EFh
FF
FF
FF
FF
FF
FF
FF
FF
F1F0h-F1F7h
FF
FF
FF
FF
FF
FF
FF
FF
F1F8h-F1FFh
FF
FF
FF
FF
FF
FF
FF
FF
Notes: 1.
Orange Registers = Locked at the factory and cannot be changed by the customer.
2.
Blue Registers = Lock registers can be changed only by using the Lock command (see Section7.9,
EncRead Command).
3.
Green Registers = Configuration registers can be written by the customer prior to locking (by setting
LockConfig to 0x00 using the Lock command).
4.
Yellow Registers = The SmallZone Register can be written by the customer prior to locking (by
setting LockSmall to 0x00 using the Lock command). SmallZone is locked separately from the
remainder of the Configuration Memory.
The default value of the I2CAddr Register is 0x01 for devices configured for I2C interface mode. The default value
of I2CAddr is 0x00 for devices configured for SPI interface mode. See Appendix Q, Ordering Information for
ordering codes.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
159
O.2
Key Memory Contents
The Key Memory contains pseudorandom values after completion of production test, except for Key 00 which
contains the Transport Key. Device personalization can be performed without knowledge of the Transport Key;
however, secure personalization can be performed only if the Transport Key value has been obtained from Atmel.
160
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Appendix P. Serial Memory Backward Compatibility
The ATAES132 secure Serial EEPROM architecture was developed to allow security to be retrofitted into
systems using standard Atmel Serial EEPROM. The ATAES132 package pinouts, the interface protocol, and the
command set are all compatible with standard I2C and SPI EEPROM, but are not identical.
This section describes the differences that must be considered when the ATAES132 is inserted into systems
using I2C or SPI Serial EEPROM.
P.1
I2C Serial EEPROM Compatibility
This section describes differences between the Atmel AT24C32C standard 32Kb I2C Serial EEPROM and the
ATAES132 secure Serial EEPROM configured for I2C communication mode.
P.1.1
Package Pins
On AT24C32C, pins 1, 2, and 3 are used to set I2C Device Address bits A0, A1, and A2. The AT24C32C pin 7 is
the Write Protect (WP) input.
On the ATAES132, pins 1, 2, 3, and 7 are not used in I2C communication mode. These pins should be tied to VCC
or VSS. The state of these four pins has no impact on the functionality of the ATAES132 in the I2C communication
mode. See Appendix J.2, Pin Descriptions.
P.1.2
I2C Device Address
The AT24C32C I2C Device Address is 1010A2A1A0b, with A0, A1, and A2 determined by the state of pins 1, 2, and
3. A maximum of eight AT24C32C devices are permitted on the I2C interface.
On the ATAES132, the I2C Device Address is determined by the contents of the I2CAddr Register (see Appendix
J.1.3, I2C Device Address). The ATAES132 I2C Device Address can be any set to any value, allowing up to 127
devices on the I2C interface.
P.1.3
Write Protect
The AT24C32C Write Protect (WP) input pin inhibits all EEPROM Write operations when the WP pin is high. If
WP is low, then EEPROM Write operations are allowed.
On the ATAES132, the User Memory Write permissions are controlled by the ZoneConfig Registers (see
Appendix E.2.20, ZoneConfig Registers). The User Memory is divided into 16 user zones that are independently
controlled by 16 ZoneConfig Registers; different Write permissions can be assigned to different sections of the
memory. By default, all User Memory has open Write access.
P.1.4
Page Write Operations
If the Host attempts to write data across the physical (32 byte) EEPROM page boundary, the AT24C32C wraps to
the beginning of the EEPROM page where the Page Write operation begins and performs the EEPROM Write
after receiving a Stop condition. If the Host attempts to write more than 32 bytes in a Page Write operation, then
the AT24C32C wraps the data at the page boundary and performs the EEPROM Write after receiving a Stop
condition. Partial Page Writes are supported by the AT24C32C.
The ATAES132 does not allow Write operations to cross physical (32 byte) EEPROM page boundaries (see
Appendix B.2, EEPROM Page Boundary) and does not allow a Write operation if more than 32 data bytes are
received from the Host. In both cases, the EEPROM contents remain unchanged, the data is discarded, and an
error bit is set in the STATUS Register (see Appendix J.3.3, Page Write (PWRITE)). Partial Page Writes are
supported by the ATAES132.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
161
P.1.5
Read Operations
Reading beyond the end of physical memory on the AT24C32C causes the internal data address register to
roll-over to address zero. The Read operation continues from address zero.
If an ATAES132 Read operation begins at a valid User Memory address but continues past the end of User
Memory, the Read operation will not wrap to the beginning of User Memory. Reading beyond the end of User
Memory causes 0xFF to be returned to the Host in reply to the Read, the internal data address register stops
incrementing, and an error bit is set in the STATUS Register (see Appendix G.2.5, Read User Memory).
P.1.6
Read Protect
The AT24C32C and other standard I2C EEPROMs do not have a Read inhibit function.
On the ATAES132, the User Memory Read permissions are controlled by the ZoneConfig Registers (see
Appendix E.2.20, ZoneConfig Registers). The User Memory is divided into 16 user zones that are independently
controlled by 16 ZoneConfig Registers; different Read permissions can be assigned to different sections of the
memory. If Read access is prohibited, then 0xFF will be returned to the Host in reply to a Read command (see
Section 5.1, Read). By default all User Memory has open Read access.
P.1.7
Standby Mode
Standard I2C EEPROMs automatically enter low-power standby mode upon completion of any internal operation.
The ATAES132 has three powered states:

Active State and Two Low-Power States

Standby State

Sleep State
The ATAES132 will remain in the Active state between operations unless the Host sends a Sleep command to
activate the Standby state or the Sleep state. The ATAES132 can also be configured to automatically enter a
Low-Power state at power-up. See Appendix L, Power Management for details on the power management
features.
P.1.8
P.2
Operating Voltage

The AT24C32C operating range is 1.8V minimum to 5.5V maximum.

The ATAES132 operating range is 2.5V minimum to 5.5V maximum. See Section 9.3, DC Characteristics.
SPI Serial EEPROM Compatibility
This section describes differences between the AT25320B standard Atmel 32Kb SPI Serial EEPROM and the
ATAES132 secure Serial EEPROM configured for SPI communication mode.
P.2.1
Package Pins
On the AT25320B, pin 3 is the WP input and pin 7 is the HOLD input.
On the ATAES132, pins 3 and 7 are not used in SPI communication mode; these pins can be tied to VCC or VSS.
The state of these two pins have no impact on the functionality of the ATAES132 in the SPI communication mode.
See Appendix K.2, SPI Communication Mode Pin Descriptions for the pin descriptions.
162
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
P.2.2
Write Protect (WP)
The AT25320B WP input pin inhibits all EEPROM Write operations when the WP pin is low. If WP is high, then
EEPROM Write operations are allowed. The Write protect pin can be disabled by writing the WPEN bit in the
STATUS Register to 0b.
On the ATAES132, the User Memory Write permissions are controlled by the ZoneConfig Registers (see
Appendix E.2.20, ZoneConfig Registers). The User Memory is divided into 16 user zones that are independently
controlled by 16 ZoneConfig Registers; different Write permissions can be assigned to different sections of the
memory. By default, all User Memory has open Write access.
P.2.3
Hold
The AT25320B HOLD input pin allows the Host to pause communication with the memory temporarily (by
bringing HOLD low) and then resume the communication sequence (by bringing HOLD high). The sequence
continues exactly from the point where it was paused as if there was no interruption.
The ATAES132 does not have a Hold function. If communications are interrupted, the sequence must be
restarted beginning with a high-to-low transition on the CS input.
P.2.4
Page Write Operations
If the Host attempts to write data across the physical (32-byte) EEPROM page boundary, the AT25320B wraps to
the beginning of the EEPROM page where the Page Write operation begins and performs the EEPROM Write
after receiving a low-to-high transition on the CS input. If the Host attempts to write more than 32 bytes in a Page
Write operation, then the AT25320B wraps the data at the page boundary and performs the EEPROM write after
receiving a Stop condition. Partial Page Writes are supported by the AT25320B.
The ATAES132 does not allow Write operations to cross physical (32 byte) EEPROM page boundaries (see
Appendix B.2, EEPROM Page Boundary and does not allow a Write operation if more than 32 data bytes are
received from the Host. In both cases, the EEPROM contents remain unchanged, the data is discarded, and an
error bit is set in the STATUS Register (see Appendix J.3.3, Page Write (PWRITE)). Partial Page Writes are
supported by the ATAES132.
P.2.5
Read Operations
Reading beyond the end of physical memory on AT25320B causes the internal data address register to roll-over
to address zero. The Read operation continues from address zero.
If an ATAES132 Read operation begins at a valid User Memory address but continues past the end of User
Memory, the Read operation will not wrap to the beginning of User Memory. Reading beyond the end of User
Memory causes 0xFF to be returned to the Host in reply to the Read, the internal data address register stops
incrementing, and an error bit is set in the STATUS Register.
P.2.6
Read Protect
The Atmel AT25320B and other standard SPI EEPROMs do not have a Read inhibit function.
On the ATAES132, the User Memory Read permissions are controlled by the ZoneConfig registers (see Appenidx
E.2.20). The User Memory is divided into 16 user zones that are independently controlled by 16 ZoneConfig
registers; different Read permissions can be assigned to different sections of the memory. If Read access is
prohibited, then 0xFF will be returned to the Host in reply to a Read command (see Section 5.1, Read). By
default, all User Memory has open Read access.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
163
P.2.7
STATUS Register
The AT25320B STATUS Register definition is shown in Table P-1. The default state of all STATUS bits is 0b. The
WPEN bit controls the Write Protect pin. Block Write protection is controlled by the BP0 and BP1 bits.
If WEN = 1b, then the device is Write Enabled. If WIP = 0b, the device is ready to accept a command; WIP = 1b
indicates a write cycle is in progress. The reserved bits are 0b, except when an internal write cycle is in progress.
All bits of the STATUS Register are 1b when an internal write cycle is in progress.
Table P-1.
AT25320B STATUS Register Definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
WPEN
Reserved
Reserved
Reserved
BP1
BP0
WEN
WIP
The ATAES132 STATUS Register definition is shown in Table P-2 and described in Appendix G, Understanding
the STATUS Register. The default state of all STATUS bits is 0b. The WEN, WIP, and reserved bits are similar to
those of standard SPI Serial EEPROM: If WEN = 1b, then the device is Write Enabled. If WIP = 0b, the device is
ready to accept a command; WIP = 1b indicates a write cycle or a cryptographic operation is in progress. The
reserved bits are 0b except when an internal write cycle or a cryptographic operation is in progress. All bits of the
STATUS Register are 1b when an internal write cycle or a cryptographic operation is in progress.
Table P-2.
ATAES132 STATUS Register definition
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EERR
RRDY
Reserved
CRCE
Reserved
WAKEb
WEN
WIP
ATAES132 reports errors to the Host using the EERR and CRCE bits. The RRDY bit indicates if the Response
Memory Buffer is empty (0b), or ready to read (1b). The WAKEb bit indicates if the device is in the sleep or
standby power state. See Appendix G.1, Device Status Register (STATUS) Definition for detailed descriptions of
each STATUS bit.
P.2.8
Write Status Register Command (WRSR)
The AT25320B STATUS Register contains three bits that control the Block Write Protect function and the Write
Protect pin. These bits can be changed by sending a Write Status Register (WRSR) command to the memory.
The ATAES132 does not support the Write Status Register (WRSR) command. The WRSR command will be
ignored if it is received.
P.2.9
Block Write Protect
The AT25320B STATUS Register contains two block protect bits (BP0 and BP1) that control the Block Write
Protect function. By writing the STATUS Register, the user can set the Block Protect bits to inhibit writes in ¼, ½,
or the full Memory Array.
On the ATAES132, the User Memory Write permissions are controlled by the ZoneConfig registers (see Appendix
E.2.20, ZoneConfig Registers). The User Memory is divided into 16 user zones that are independently controlled
by 16 ZoneConfig Registers; different Write permissions can be assigned to different sections of the memory. By
default, all User Memory has open Write access.
164
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
P.2.10 Standby Mode
Standard SPI EEPROMs automatically enter low-power Standby mode upon completion of any internal operation.
The ATAES132 has three powered states: the Active state and two Low-Power states, the Standby state and the
Sleep state. The ATAES132 will remain in the Active state between operations unless the Host sends a Sleep
command to activate the Standby state or the Sleep state. The ATAES132 can also be configured to
automatically enter a Low-Power state at power-up. See Appendix L, Power Management for details on the power
management features.
P.2.11 Operating Voltage
The AT25320B operating voltage range is 1.8V minimum to 5.5V maximum.
The ATAES132 operating voltage range is 2.5V minimum to 5.5V maximum. See Section 9.3, DC Characteristics.
P.2.12 Maximum Operating Frequency
The AT25320B maximum SCK frequency is 10MHz when VCC is 2.7V to 5.5V. The maximum SCK frequency is
20MHz when VCC is 4.5V to 5.5V.
The ATAES132 maximum SCK frequency is 10MHz when VCC is 2.5V to 5.5V. See Section 9.4, AC
Characteristics for AC specifications.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
165
Appendix Q. Ordering Information
The ATAES132 production ordering codes are listed in Appendix Q.1, Atmel Ordering Codes. To increase
security, ATAES132 packages are not marked with the ordering code. The ATAES132 standard packages are
marked with a trace code which is unique for each manufacturing lot. Contact Atmel for additional information.
Q.1
Atmel Ordering Codes
Atmel Ordering Code
Interface
Configuration
ATAES132-SH-EQ
SPI
ATAES132-SH-ER
I2 C
ATAES132-SH-EQ-T
SPI
ATAES132-SH-ER-T
I2 C
ATAES132-MAH-EQ-T
SPI
ATAES132-MAH-ER-T
I2 C
Notes: 1.
Package
Lead Finish
8S1
NiPdAu
Lead-free/Halogen-free
(Exceeds RoHS
Requirments)
Temperature
Range
Bulk(1)
Tape and Reel(2)
Industrial
Temperature
(-40°C to 85°C)
8MA2
Bulk

2.
Conditioning
SOIC = 100 per tube
Tape and Reel (-T)

SOIC = 4K per reel

UDFN = 5K per reel
Package Type
166
8S1
8-lead, 0.150” wide body, Plastic Gull Wing Small Outline, Green (JEDEC SOIC)
8MA2
8-pad, 2.0mm x 3.0mm x 0.6mm body, Thermally Enhanced Plastic Ultra Thin Dual Flat No Lead, Green (UDFN)
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Q.2
Mechanical Information
Q.2.1
8S1 — 8-lead JEDEC SOIC
C
1
E
E1
L
N
Ø
TOP VIEW
e
END VIEW
b
COMMON DIMENSIONS
(Unit of Measure = mm)
A
A1
D
SIDE VIEW
Notes: This drawing is for general information only.
Refer to JEDEC Drawing MS-012, Variation AA
for proper dimensions, tolerances, datums, etc.
SYMBOL MIN
A
1.35
A1
0.10
NOM
MAX
–
–
1.75
0.25
b
0.31
–
0.51
C
0.17
–
0.25
D
4.80
–
5.05
E1
3.81
–
3.99
E
5.79
–
6.20
e
L
NOTE
1.27 BSC
0.40
–
1.27
0°
–
8°
6/22/11
Package Drawing Contact:
[email protected]
TITLE
8S1, 8-lead (0.150” Wide Body), Plastic Gull Wing
Small Outline (JEDEC SOIC)
GPC
SWB
DRAWING NO.
REV.
8S1
G
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
167
Q.2.2
8MA2 — 8-pad UDFN/USON
E
1
8
Pin 1 ID
2
7
3
6
4
5
D
C
A2
A
A1
E2
COMMON DIMENSIONS
(Unit of Measure = mm)
b (8x)
8
1
7
2
Pin#1 ID
6
D2
3
5
4
e (6x)
K
L (8x)
SYMBOL
MIN
NOM
MAX
D
1.90
2.00
2.10
E
2.90
3.00
3.10
D2
1.40
1.50
1.60
E2
1.20
1.30
1.40
A
0.50
0.55
0.60
A1
0.0
0.02
0.05
A2
–
–
0.55
C
L
NOTE
0.152 REF
0.30
e
0.35
0.40
0.50 BSC
b
0.18
0.25
0.30
K
0.20
–
–
3
9/6/12
Package Drawing Contact:
[email protected]
168
ATAES132 [Datasheet]
TITLE
8MA2, 8-pad, 2 x 3 x 0.6 mm Body, Thermally
Enhanced Plastic Ultra Thin Dual Flat No
Lead Package (UDFN)
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
GPC
YNZ
DRAWING NO.
8MA2
REV.
C
Appendix R. Errata
R.1
KeyCreate Command Executed with Usage Counter
If the KeyCreate command is executed with Mode bit 2 set to 1b and a Key with a Usage Counter attached to it is
used, the Usage Counter will not be incremented.
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
169
Appendix S. Revision History
Doc. Rev.
Comments
10/2013
03/2015 Not recommended for new design. Replaced by ATAES132A.
Remove TempCal and TempOffset registers.
Update Key Management section and Update KeyCompute to KeyCreate command.
Replace ExportOK VolUsage Field to reserved and ExportAuth with ChildAuth.
Remove KeyCompute Command, KeyCompute: KeyImport MAC, KeyCompute: KeyLoad MAC,
and KeyImport Command: KeyCompute MAC sections.
Update disclaimer page.
8760B
07/2013
Update datasheet status from preliminary to complete/release.
Overhaul of datasheet.
Replace package option from 8MA3 with 8MA2.
Update UDFN ordering codes and table.
Update Atmel logos, footers, and dicslaimer page.
8760A
05/2011
Initial document release.
8760C
170
Date
ATAES132 [Datasheet]
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
Atmel Corporation
1600 Technology Drive, San Jose, CA 95110 USA
T: (+1)(408) 441.0311
F: (+1)(408) 436.4200
│
www.atmel.com
© 2013 Atmel Corporation. / Rev.: Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013.
Atmel®, Atmel logo and combinations thereof, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product
names may be trademarks of others.
DISCLAIMER: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is
granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL
WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE
FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS,
BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to
make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically
provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in
applications intended to support or sustain life.
SAFETY-CRITICAL, MILITARY, AND AUTOMOTIVE APPLICATIONS DISCLAIMER: Atmel products are not designed for and will not be used in connection with any applications where the
failure of such products would reasonably be expected to result in significant personal injury or death (“Safety-Critical Applications”) without an Atmel officer's specific written consent. SafetyCritical Applications include, without limitation, life support devices and systems, equipment or systems for the operation of nuclear facilities and weapons systems. Atmel products are not
designed nor intended for use in military or aerospace applications or environments unless specifically designated by Atmel as military-grade. Atmel products are not designed nor intended for
use in automotive applications unless specifically designated by Atmel as automotive-grade.
Atmel-8760C-CryptoAuth-ATAES132-Datasheet_102013
ATAES132 [Datasheet]
171