AES132 Crunch Command use?

Go To Last Post
2 posts / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Dear all,


What is the use of Crunch command in AES132.

I was just going through all commands. Found this command.

Read its detail in datasheet. Not much details given about it anywhere.

Couldn't able to comprehend the purpose of this command?

In which application scenario this command will be useful?



[page 28]

Datasheet says: 0x0B => Processes a seed value through the internal crunch engine. This function is used to detect clones.



[page 38]

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.


"> 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





  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


I can only think of two cases where this command is useful.



A host contains an ATAES132A . Before it does any crypto communications with the remote device, it wants to make absolutely sure it is talking to another genuine ATAES132A on the remote.

The host can locally run the crunch command on a random seed and get the result. it can then run the command with the same seed on the remote device and verify the output matches the host result. Because the

algorithm is proprietary, only an Atmel chip can do this. Also... the ManufacturingID register is used in the calculation. It defaults to 0x00EE, but perhaps a large client can get Atmel to program a customer specific 16 bit value in the register,

which would make the Crunch command output specific to that customer.



To Crunch command basically generates a hash. I know it's only a 16 byte hash of a 16 byte value, but the output is much more diverse than the input, and this may be useful in some applications.



Apart from that - I can't think of anything else. Though in crypto, there's usually something you haven't thought of and some people, somewhere, think the command is brilliant.