diff --git a/README.md b/README.md index d8396de..708c24d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Resource(s) Used:
-BitVector class created by Avinash Kak (kak@purdue.edu) at https://engineering.purdue.edu/kak/dist/BitVector-3.4.4.html
-Nist Announcement Publication of AES in 2001 at http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf
-Used Kavaliro Slides at https://kavaliro.com/wp-content/uploads/2014/03/AES.pdf to check work
--Used Online AES Encryption Tools at http://aes.online-domain-tools.com/ and http://extranet.cryptomathic.com/aescalc/index to check work (These tools use different padding techniques for the plaintext/key, so if the key string legnth is not exactly 16 characters or the plaintext string of characters is not a divisible by 16, this script will have a different ciphertext from these tools)
+-Used Online AES Encryption Tools at http://aes.online-domain-tools.com/ and http://extranet.cryptomathic.com/aescalc/index to check work Summary:
Two scripts in Python to encrypt/decrypt using the 128 bits AES algorithm, ECB mode with hex "00" as padding for each character. For the encrypt, an ascii plaintext file is taken as the input, then an encrypted hex file is outputted. For the decrypt, a ciphertext hex file is taken as the input, then a decrypted ascii file is outputted.
@@ -14,7 +14,7 @@ Two scripts in Python to encrypt/decrypt using the 128 bits AES algorithm, ECB m Notes:
-ECB is not considered secure since it has vulnerabilities in encrypting the same plaintext block. Encrypting the same plaintext block will create the same block of ciphertext. Possible future improvement is to use a more psuedo random mode other than ECB.

--Online tools will use different padding techniques for the plaintext/key, so if the key ascii string length is not exactly 16 characters or the plaintext ascii string legnth is not a divisible by 16, this script will have a different ciphertext hex result from these online tools.
+-Online tools will use different padding techniques for the plaintext/key, so if the key ascii string length is not exactly 16 characters or the plaintext ascii string length is not a divisible by 16, this script will have a different ciphertext hex result from online AES encyption tools. This will not be a problem since the AESdecrypt.py script will still be able to decrypt any ciphertext from the AESencrypt.py script given the correct key.

--------------------Demonstration--------------------
General Overview Process:
@@ -29,21 +29,22 @@ plaintext1.txt File Contents:
AESencryption Folder Contents:
![aesfolder](/Demo/4.png)


-Running AESEncrypt.py Script:
+Running AESencrypt.py Script:
![encrypt.py](/Demo/5.png)


Checking ciphertext.txt File Contents:
![ciphertext](/Demo/6.png)


-Running AESDecrypt.py Script with Wrong Passphrase:
+Running AESdecrypt.py Script with Wrong Passphrase:
![wrong](/Demo/7.png)


-Running AESDecrypt.py Scipt with Correct Passphrase:
+Running AESdecrypt.py Scipt with Correct Passphrase:
![right](/Demo/8.png)


Checking plaintext1.txt File with plaintext2.txt File:
![lastcheck](/Demo/9.png)


-With Constraints Considered, Checking Encrypt Script with Online AES Encrypt Tool:
+With Constraints Considered, Checking AESencrypt.py Script with Online AES Encrypt Tool:
+(See "Notes" Section Above for Required Constaints)
![lastcheck](/Demo/10.png)