Cryptography is associated with the process of converting ordinary plain text into unintelligible text and vice-versa. It is a method of storing and transmitting data in a particular form so that only those for whom it is intended can read and process it. Cryptography not only protects data from theft or alteration, but can also be used for user authentication. Nowadays, cryptography is used in many applications like banking transactions cards, computer passwords, and e-commerce transactions.
Description: Earlier cryptography was effectively synonymous with encryption but nowadays cryptography is mainly based on mathematical theory and computer science practice.
Confidentiality - Information cannot be understood by anyone.
Integrity - Information cannot be altered.
Non-repudiation - Sender cannot deny his/her intentions in the transmission of the information at a later stage.
Authentication - Sender and receiver can confirm each.
1. Symmetric-key cryptography
2. Hash functions
3. Public-key cryptography
1. Symmetric-key Cryptography:
Both the sender and receiver share a single key. The sender uses this key to encrypt plaintext and send the cipher text to the receiver. On the other side the receiver applies the same key to decrypt the message and recover the plain text.
2. Public-Key Cryptography:
This is the most revolutionary concept in the last 300-400 years. In Public-Key Cryptography two related keys (public and private key) are used. Public key may be freely distributed, while its paired private key, remains a secret. The public key is used for encryption and for decryption private key is used.
3. Hash Functions:
No key is used in this algorithm. A fixed-length hash value is computed as per the plain text that makes it impossible for the contents of the plain text to be recovered. Hash functions are also used by many operating systems to encrypt passwords.
In this repository we are able to find out representation of different kinds of cryptographic ciphers written in Python, with explanations and additionally comments for better understanding by everyone.
Inside each cipher file, you will find both the encryption and the decryption method.
Also, i have tried to explain how each cipher works, the level of security that provide and if it's safe or not.
The ciphers have been written in Python 3.8 and PyCharm 2020.3.5.
My purpose is to add more ciphers as time pass in order to contain all the ciphers.