Piccolo — The Ultra-light weight cipher

Many of our encryption methods have been created for high-performance devices, but AES struggles to run on RFID devices and on sensors…

Piccolo — The Ultra-light weight cipher

Many of our encryption methods have been created for high-performance devices, but AES struggles to run on RFID devices and on sensors. With this in mind, NIST are looking at standardizing light-weight cryptography methods and have reached Round 2 of the candidates.

One of the contenders is Piccolo and which is an ultra light-weight cipher. To reduce performance requirements it uses a 64-bit block size (rather than a 128-bit block size as used in AES). It also supports either an 80-bit or a 128-bit key. The 80-bit key version uses 683 gate equivalents (GEs), and the 128-bit version uses 758 GEs. It also only requires another 60 GEs to perform the decryption process. It is also efficient in its consumption of energy, and which is important within sensor and RFID applications. The research paper is here:

The research paper compares Piccolo with other block ciphers, and reports that the number of gates required for 128-bit AES is 2,400 GEs, but where Piccolo only uses 758 GEs. In terms of the energy consumed per bit (calculated as area [GE] × required cycles for one block process [cycle]) / block size [bit]), we have 618 for Piccolo-128 and 1,071 for AES-128:

In the S-box, we take one nibble at a time, and has the following mapping:

Overall Piccolo is well suited to RFID and sensor applications, and is one of the NIST Round 2 candidates. The source code is here:

A sample run is:

Message (64 bit): 01234567 89abcdef
KEY (128 bit): 00112233 44556677 8899aabb ccddeeff
Cipher: 5ec42cea 657b89ff

Here is demonstrator: