Lably
Skip to content

Simon (cipher)

Family of lightweight block ciphers

  • 5 min read
  • 3 chapters

Related on Lably

Through Internet of things and Hash function

The NSA began working on the Simon and Speck ciphers in 2011. The agency anticipated some agencies in the US federal government would need a cipher that would operate well on a diverse collection of Internet of Things devices while maintaining an acceptable level of security.

Description of the cipher

The Simon block cipher is a balanced Feistel cipher with an n-bit word, and therefore the block length is 2n. The key length is a multiple of n by 2, 3, or 4, which is the value m. Therefore, a Simon cipher implementation is denoted as Simon2n/nm. For example, Simon64/128 refers to the cipher operating on a 64-bit plaintext block (n = 32) that uses a 128-bit key. The block component of the cipher is uniform between the Simon implementations; however, the key generation logic is dependent on the implementation of 2, 3 or 4 keys.

Simon supports the following combinations of block sizes, key sizes and number of rounds:

Description of the key schedule

Let Sj notate a left circular shift by j bits.

The key schedule is mathematically described as

ki+m={c⊕(zj)i⊕ki⊕(I⊕S−1)(S−3ki+1),m=2c⊕(zj)i⊕ki⊕(I⊕S−1)(S−3ki+2),m=3c⊕(zj)i⊕ki⊕(I⊕S−1)(S−3ki+3⊕ki+1),m=4

The key schedule structure may or may not be balanced. The key word count of m is used to determine the structure of the key expansion, resulting in a total bit width of m∗n. The key word expansion consists of a right shift, XOR and a constant sequence, zx. The zx bit operates on the lowest bit of the key word once per round.

Description of the constant sequence

The constant sequence, zx, is created by a Linear Feedback Shift Register (LFSR). The logical sequence of bit constants is set by the value of the key and block sizes. The LFSR is created by a 5-bit field. The constant bit operates on a key block once per round on the lowest bit in order to add non-key-dependent entropy to the key schedule. The LFSR has different logic for each zx sequence; however, the initial condition is the same for encryption. The initial condition of the LFSR for decryption varies on the round.

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication