What is cryptography?
Cryptography is closely related to the disciplines of cryptology and cryptanalysis. Cryptography includes techniques such as microdots, merging words with images, and other ways to hide information in storage or transit. However, in today’s computer-centric world, cryptography is most often associated with scrambling plaintext (ordinary text, sometimes referred to as cleartext) into ciphertext (a process called encryption), then back again (known as decryption). Individuals who practice this field are known as cryptographers.
Modern cryptography concerns itself with the following four objectives:
1) Confidentiality (the information cannot be understood by anyone for whom it was unintended)
2) Integrity (the information cannot be altered in storage or transit between sender and intended receiver without the alteration being detected)
3) Non-repudiation (the creator/sender of the information cannot deny at a later stage his or her intentions in the creation or transmission of the information)
4) Authentication (the sender and receiver can confirm each other?s identity and the origin/destination of the information)
Procedures and protocols that meet some or all of the above criteria are known as cryptosystems. Cryptosystems are often thought to refer only to mathematical procedures and computer programs; however, they also include the regulation of human behavior, such as choosing hard-to-guess passwords, logging off unused systems, and not discussing sensitive procedures with outsiders.
The word is derived from the Greek kryptos, meaning hidden. The origin of cryptography is usually dated from about 2000 BC, with the Egyptian practice of hieroglyphics. These consisted of complex pictograms, the full meaning of which was only known to an elite few. The first known use of a modern cipher was by Julius Caesar (100 BC to 44 BC), who did not trust his messengers when communicating with his governors and officers. For this reason, he created a system in which each character in his messages was replaced by a character three positions ahead of it in the Roman alphabet.
In recent times, cryptography has turned into a battleground of some of the world’s best mathematicians and computer scientists. The ability to securely store and transfer sensitive information has proved a critical factor in success in war and business.
Because governments do not wish certain entities in and out of their countries to have access to ways to receive and send hidden information that may be a threat to national interests, cryptography has been subject to various restrictions in many countries, ranging from limitations of the usage and export of software to the public dissemination of mathematical concepts that could be used to develop cryptosystems. However, the Internet has allowed the spread of powerful programs and, more importantly, the underlying techniques of cryptography, so that today many of the most advanced cryptosystems and ideas are now in the public domain.
Types of cryptography
Asymmetric cryptography, also known as public key cryptography, uses public and private keys to encrypt and decrypt data. The keys are simply large numbers that have been paired together but are not identical (asymmetric). One key in the pair can be shared with everyone; it is called the public key. The other key in the pair is kept secret; it is called the private key. Either of the keys can be used to encrypt a message; the opposite key from the one used to encrypt the message is used for decryption.
Symmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both encryption of plaintext and decryption of ciphertext. The keys may be identical or there may be a simple transformation to go between the two keys. The keys, in practice, represent a shared secret between two or more parties that can be used to maintain a private information link. This requirement that both parties have access to the secret key is one of the main drawbacks of symmetric key encryption
- Triple DES
Secure Files With Asymmetric Cryptography
We were advised to create an encryption program based on asymmetric encryption algorithm by our lecturer I gain a better understanding of the patterns involved.
Encryptor was defined to serve the purpose of that requirement. The main are discussed below
Key Features of Application
- Generate public/ private key pair based on key length
- Use existing key
- Key validation
- Select File or Folder to Encrypt/Decrypt
- Keep Original File and make copy of it to encrypt it
- Friendly UI with Color Codes based in metro framework
- Proper File Validation
Follow the following link to the github repository for the source code
Compile with visual studio and run
Using the application
The home Screen of the application appears as below
- First select the file or folder that you want to encrypt. This will load the file into the program to process
2. Then Generate a key to encrypt it with. The key will be automatically copied to your clipboard. Just past it somewhere and make sure you have the key when you want to decrypt it
3. That is all. Press encrypt and your file is encrypted.
Follow the same process for decryption too. just press the decrypt button instead of encrypt :P.
As PKI described above the file is encrypted and decrypted with a pair of keys. Public key na dthe private key. This is only a demonstrative version of the PKI implementation. We can only Encrypt with the public key and decrypt with the private key. This will be updated in the next release.
follow the steps as below to encrypt
- Select files.
2. Generate keys if not available
3. load public key to encrypt with
follow the steps as below to Decrypt
- select files
- load he private key