92 SIMON Cipher

92 : SIMON Cipher

Select Project123456789ONSW2
  • Author: Fraser Price
  • Description: Simon32/64 Encryption
  • GitHub repository
  • Clock: 1000 Hz

How it works

Encrypts data by sending it through a feistel network for 32 rounds where it is combined with the round subkey and the last round. Data is entered into the core via shift registers.

How to test

Set shift high and shift data in lsb first, 4 bits at a time. Shift in 96 bits, 32 being data and 64 being the key, with the plaintext being shifted in first. Eg if the plaintext was 32'h65656877 and key was 64'h1918111009080100, then 96'h191811100908010065656877 would be shifted in. Once bits have been shifted in, bring shift low, wait 32 clock cycles then set it high again. The ciphertext will be shifted out lsb first.

IO

#InputOutput
0clockdata_out[0]
1shiftdata_out[1]
2data_in[0]data_out[2]
3data_in[1]data_out[3]
4data_in[2]segment e
5data_in[3]segment f
6segment g
7