Category Archives: cryptography

CHAM Block Cipher

Introduction CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices was published in December 2017 at the 20th Annual International Conference on Information Security and Cryptology held in South Korea. CHAM consists of three ciphers, CHAM-64/128, CHAM-128/128, and CHAM-128/256 … Continue reading

Posted in assembly, cryptography, encryption, programming | Tagged , , | Leave a comment

Magic “Nothing Up My Sleeve” Numbers

Introduction Just to be clear, this post does not endorse any cryptographic algorithms. It will only illustrate using source code how some magic numbers are created in such algorithms. Nothing Up My Sleeve Numbers (NUMSN) are numeric constants in cryptographic … Continue reading

Posted in cryptography, encryption, programming | Tagged , , , , , , , , , , , , , | Leave a comment

Keccak Permutation Function

Introduction Permutation functions are incredibly useful, and Keccak which is used to implement the SHA-3 standard is a like a swiss army knife of cryptographic primitives. Designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche, Keccak can … Continue reading

Posted in assembly, cryptography, encryption, programming | Tagged , , , | Leave a comment

Gimli: a cross-platform permutation function

Introduction Gimli, named after the Lord Of The Rings character, is a 384-bit permutation function, designed specifically to be lightweight, high performance, and secure across multiple architectures. It was designed by Daniel J. Bernstein, Stefan Kölbl, Stefan Lucks, Pedro Maat … Continue reading

Posted in assembly, cryptography, encryption, programming, security | Tagged , , , , , | 2 Comments

Light Message Authentication Code (LightMAC)

Introduction A Message Authentication Code or MAC is a cryptographic primitive that enables two parties using a shared secret key to authenticate messages exchanged between them. MACs are used daily to secure online communications and will inevitably become a critical … Continue reading

Posted in assembly, cryptography, encryption, programming | Tagged , , , , , , , , , | Leave a comment

PRESENT Block Cipher

Introduction PRESENT is a 64-bit block cipher published in 2007 which provides support for key lengths of 80 and 128-bits. It was designed specifically for hardware implementation and uses a Substitution Permutation Network (SPN) structure which is similar to AES … Continue reading

Posted in assembly, cryptography, programming, security | Tagged , , | Leave a comment

LEA-128 Block Cipher

Introduction LEA is a 128-bit block cipher with support for 128, 192 and 256-bit keys published in 2014. It was designed by Deukjo Hong, Jung-Keun Lee, Dong-Chan Kim, Daesung Kwon, Kwon Ho Ryu, and Dong-Geon Lee. The only operations used … Continue reading

Posted in assembly, cryptography, encryption, programming | Tagged , , , | Leave a comment

SM3 Cryptographic Hash Algorithm (Chinese Standard)

Introduction In December of 2007, the Chinese National Cryptographic Administration Bureau released the specification of a Trusted Cryptography Module, detailing a cryptoprocessor to be used within the Trusted Computing framework in China. The module specifies a set of cryptographic algorithms … Continue reading

Posted in assembly, cryptography, programming, security | Tagged , , , , | Leave a comment

Chaskey-LTS Block Cipher

Introduction The Chaskey cipher is a 128-bit block, 128-bit key symmetric encryption algorithm which is the underlying function used for the Chaskey Message Authentication Code (MAC). It’s based on an Even-Mansour construction which makes it very simple to implement and … Continue reading

Posted in assembly, cryptography, encryption, programming, security | Tagged , , | Leave a comment

SM4 block cipher (Chinese Standard for WAPI)

Introduction SM4 (formerly SMS4) is a 128-bit block cipher with a 128-bit user key and 32 rounds. It’s used in the WLAN Authentication and Privacy Infrastructure (WAPI), a Chinese WLAN national standard. It was published or rather declassified in 2006 … Continue reading

Posted in assembly, cryptography, encryption, programming | Tagged , , , , , , | 1 Comment