Secure 3 Click Board
Secure 3 Click Board
Overview
The Secure 3 Click Board™ carries the ATSHA204A, a cryptographic coprocessor with secure hardware-based key storage from Microchip. The Click Board™ is designed to run on either 3.3V or 5V power supply. Secure 3 Click Board™ communicates with the target microcontroller over an I2C interface.
NOTE: The Secure 3 Click Board™ comes with stacking headers which allow you to combine it with other Click Boards™ more easily by using just one mikroBUS socket.
The Secure 3 Click Board™ carries the ATSHA204A, a cryptographic coprocessor with secure hardware-based key storage from Microchip. The click is designed to run on either 3.3V or 5V power supply. The Secure 3 Click Board™ communicates with the target microcontroller over an I2C interface.
It is ideal to use for:
- Secure download and boot - authentication and protect code in-transit
- Ecosystem control - ensure only OEM/licensed nodes and accessories work
- Anti-cloning - prevent building with identical BOM or stolen code
- Message security - authentication, message integrity, and confidentiality of network nodes (IoT)
NOTE: The Secure 3 Click Board™ comes with stacking headers which allow you to combine it with other clicks more easily by using just one mikroBUS™ socket.
ATSHA204A Features
The ATSHA204A is a member of the Microchip CryptoAuthentication™ family of high-security hardware authentication devices, which uses Secure Hash Algorithm (SHA-256) with 256-bit key length, message authentication code (MAC) and hash-based message authentication code (HMAC) options. It has a flexible command set that allows use in many applications.
The ATSHA204A device includes an Electrically Erasable Programmable Read-Only Memory (EEPROM) array that can be used for key storage, miscellaneous read/write data, read-only, secret data, consumption logging, and security configuration. Access to the various sections of memory can be restricted in a variety of ways, and the configuration can then be locked to prevent changes.
SPECIFICATIONS
Type | Encryption |
Applications | The Secure 3 Click Board™ can be used for the storage of certificates, miscellaneous read/write, read-only or secret data, consumption logging, and security configurations |
On-board modules | ATSHA204A - a cryptographic coprocessor with secure hardware-based key storage |
Key Features | Superior SHA-256 hash algorithm with 256-bit key length, message authentication code (MAC) and hash-based message authentication code (HMAC) options, storage for up to sixteen keys |
Interface | I2C |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V or 5V |
PINOUT DIAGRAM
This table shows how the pinout of the Secure 3 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | NC | ||
NC | 2 | RST | INT | 15 | NC | ||
NC | 3 | CS | TX | 14 | NC | ||
NC | 4 | SCK | RX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C data | |
Power supply | +3.3V | 7 | 3.3V | 5V | 10 | +5V | Power supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
JUMPERS AND SETTINGS
Designator | Name | Default Position | Default Option | Description |
---|---|---|---|---|
JP1 | VIO SEL. | Left | 3V3 | Power Supply Voltage Selection 3V3/5V, left position 3V3, right position 5V |
Software Support
Code examples for the Secure 3 Click Board™, written for MikroElektronika hardware and compilers are available on Libstock.
CODE SNIPPET
The following code snippet creates a MAC for a given input and then checks if it is valid using verify function.
01 static void MACTest () 02 { 03 //Generates nonce for use in MAC generation 04 memset (bufferIn, 0x45, 128); 05 if (atcab_nonce(bufferIn) == ATCA_SUCCESS) 06 { 07 LOG( "rnrn Nonce generated." ); 08 } 09 else LOG( "rnrn Nonce generation failed..." ); 10 delay_ms (1500); 11 12 //Generates MAC for given input 13 memset (bufferOut, 0x00, 128); 14 memset (bufferIn, 0x14, 128); 15 if (atcab_mac( 0, 0, bufferIn, bufferOut ) == ATCA_SUCCESS) 16 { 17 LOG( "rnrn MAC generated: " ); 18 outputHex (bufferOut, 32); 19 } 20 else LOG( "rnrn Mac generation failed..." ); 21 delay_ms (1500); 22 23 //Checks if the generated MAC is valid 24 memset (bufferIn, 0x14, 128); 25 if (atcab_checkmac( 0, 0, bufferIn, bufferOut, otherData) == ATCA_SUCCESS) 26 { 27 LOG( "rnrn Check MAC successful. " ); 28 } 29 else LOG( "rnrn Check MAC failed..." ); 30 }
Software Support
Code examples for the Secure 3 Click Board™, written for MikroElektronika hardware and compilers are available on Libstock.
CODE SNIPPET
The following code snippet creates a MAC for a given input and then checks if it is valid using verify function.
01 static void MACTest () 02 { 03 //Generates nonce for use in MAC generation 04 memset (bufferIn, 0x45, 128); 05 if (atcab_nonce(bufferIn) == ATCA_SUCCESS) 06 { 07 LOG( "rnrn Nonce generated." ); 08 } 09 else LOG( "rnrn Nonce generation failed..." ); 10 delay_ms (1500); 11 12 //Generates MAC for given input 13 memset (bufferOut, 0x00, 128); 14 memset (bufferIn, 0x14, 128); 15 if (atcab_mac( 0, 0, bufferIn, bufferOut ) == ATCA_SUCCESS) 16 { 17 LOG( "rnrn MAC generated: " ); 18 outputHex (bufferOut, 32); 19 } 20 else LOG( "rnrn Mac generation failed..." ); 21 delay_ms (1500); 22 23 //Checks if the generated MAC is valid 24 memset (bufferIn, 0x14, 128); 25 if (atcab_checkmac( 0, 0, bufferIn, bufferOut, otherData) == ATCA_SUCCESS) 26 { 27 LOG( "rnrn Check MAC successful. " ); 28 } 29 else LOG( "rnrn Check MAC failed..." ); 30 }
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.