Symmetric-key encryption is the type of encryption where the key used to encrypt and decrypt a file is the same. Symmetric key encryption can use two types of ciphers :
- Block Ciphers : Here, the message to be sent, is divided into blocks of fixed size and each block is encrypted using the same key. Thus similar blocks when encrypted using the same key give the same output (AES – Advanced Encryption Standard has 128 bits in a block).
- Stream Ciphers : In this cipher, each bit of the message to be encrypted, is encrypted separately.
Encrypting and decrypting a file using symmetric key :
Put the text to be encrypted into a file. Let the contents of the file to encrypted be :
This is a secret.
The name of the file to be encrypted is secret.
savita@Amrita:~/secure_os$ gpg --symmetric secret
A password is prompted for, which is the key. A file called secret.gpg gets formed. This is the encrypted file. You can view the contents of the file.
savita@Amrita:~/secure_os$ cat secret.gpg �vu�ƿѥ`�-Y���������V�|�*l5#` ��vf1#ah��v������8�
Now if you want to decrypt the file, run the following command :
savita@Amrita:~/secure_os$ gpg --decrypt secret.gpg
and enter the correct password. You get the following output which contains the text that you encrypted.
gpg: CAST5 encrypted data gpg: encrypted with 1 passphrase This is a secret. gpg: WARNING: message was not integrity protected
Bingo! You just encrypted and decrypted a file using a symmetric key. This uses the CAST5 algorithm for encryption.