Here is the Lucifer Cipher Encryption-Decryption using Python 3, the program is still in indonesian and i haven't done translate yet :D, and for the algorithm i use is from here , it's in indonesian ,or you can watch it in here for the english one
- Plaintext is divided into two parts namely Left bit (L0) and Right bit (R0).
- Perform the first calculation using the formula:
𝑅𝑖+1 = 𝐿𝑖 ⊕ 𝐹(𝑅𝑖 ,𝐾𝑖 )
to find the value of R and the results will be used for 𝑅1 in the second round - Untuk mencari nilai L menggunakan rumus :
𝐿𝑖+1 = 𝑅𝑖 - After each round except the last one, the right and left sides of the block are switched
The above process is repeated 16 rounds each. Based on the description above, it appears that in implementation, the Lucifer algorithm has used permutation and iteration functions. The purpose of functions This can make it difficult for cryptanalysis to solve the ciphertext produced.
A key byte access schedule is a schedule setting for accessing key bits in the Lucifer algorithm, where the maximum length of a Message Byte is 8, and the C-I-D round has a maximum capacity of 16 rounds and Key Bytes have a maximum capacity of 15 starting from 0
there are 2 files which is the lucifer1.py(without GUi) and the lucifer2.py (with GUI)
how to use :
- if u running the lucifer2.py dont forget to install tkinter
- the plaintext, ciphertext, and key should be 16 char long
enjoy guys, you can watch the full explanation by watching this