🤖

CryptoSystems Repository of some great classical and Advanced cryptosystems

Every C file here contains one of the most popular Cryptosystem in history, except the CustomizedAESFiestelCipher, which is my custom cryptosystem created by mixing the Fiestel cipher (old classic) with the new generation standard AES or Advanced Encryption Standard.

## Detailed Description

File | Description |
---|---|

DES.c | DES or Data Encryption Standard block cipher and encrypts data in blocks of size of 64 bit each, means 64 bits of plain text goes as the input to DES, which produces 64 bits of cipher text. The same algorithm and key are used for encryption and decryption, with minor differences. The key length is 56 bits. |

PermutationCipher.c | In classical cryptography, a permutation cipher is a transposition cipher in which the key is a permutation. To apply a cipher, a random permutation of size e is generated. The plaintext is then broken into segments of size e and the letters within that segment are permuted according to this key. |

PlayfairCipher.c | In playfair cipher unlike traditional cipher we encrypt a pair of alphabets(digraphs) instead of a single alphabet. It was used for tactical purposes by British forces in the Second Boer War and in World War I and for the same purpose by the Australians during World War II. This was because Playfair is reasonably fast to use and requires no special equipment. |

SPN.c | In cryptography, an SP-network, or substitution–permutation network (SPN), is a series of linked mathematical operations used in block cipher algorithms such as AES (Rijndael), 3-Way, Kalyna, etc. Such a network takes a block of the plaintext and the key as inputs, and applies several alternating "rounds" or "layers" of substitution boxes (S-boxes) and permutation boxes (P-boxes) to produce the ciphertext block. |

ShiftCipher.c | The shift cipher is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. |

SubstitutionCipher.c | A substitution cipher is a method of encrypting in which units of plaintext are replaced with the ciphertext, in a defined manner, with the help of a key; the "units" may be single letters (the most common), pairs of letters, triplets of letters, mixtures of the above, and so forth. |

VigenereCipher.c | Vigenere Cipher is a method of encrypting alphabetic text. It uses a simple form of polyalphabetic substitution. A polyalphabetic cipher is any cipher based on substitution, using multiple substitution alphabets. The encryption of the original text is done using the Vigenère square or Vigenère table. |

Coded in C for everyone to feel the complexity of it.

Please raise any issues if found.

Thanks