diff --git a/unit02_symmetric/lab/possible_ans.md b/unit02_symmetric/lab/possible_ans.md index 3f5ad07..60cf6a7 100644 --- a/unit02_symmetric/lab/possible_ans.md +++ b/unit02_symmetric/lab/possible_ans.md @@ -1,96 +1,5 @@ -## Q1 -You may need to install "Crypto" with: -
-pip install pycrypto
-
-And Padding with: -
-pip install padding
-
- -Note: The Padding library has not implemented the fully range of padding methods. - -```python -from Crypto.Cipher import AES -import hashlib -import sys -import binascii -import Padding - -val='hello' -password='hello' - -plaintext=val - -def encrypt(plaintext,key, mode): - encobj = AES.new(key,mode) - return(encobj.encrypt(plaintext)) - -def decrypt(ciphertext,key, mode): - encobj = AES.new(key,mode) - return(encobj.decrypt(ciphertext)) - -key = hashlib.sha256(password.encode()).digest() - - -plaintext = Padding.appendPadding(plaintext,blocksize=Padding.AES_blocksize,mode='CMS') - -print ("After padding (CMS): ",binascii.hexlify(bytearray(plaintext.encode()))) - -ciphertext = encrypt(plaintext.encode(),key,AES.MODE_ECB) -print ("Cipher (ECB): ",binascii.hexlify(bytearray(ciphertext))) - -plaintext = decrypt(ciphertext,key,AES.MODE_ECB) -plaintext = Padding.removePadding(plaintext.decode(),mode='CMS') -print (" decrypt: ",plaintext) - - -plaintext=val - -### Other padding methods have not been implemented in the library - -plaintext = Padding.appendPadding(plaintext,blocksize=Padding.AES_blocksize,mode='ZeroLen') - -print ("After padding (CMS): ",binascii.hexlify(bytearray(plaintext.encode()))) - -ciphertext = encrypt(plaintext.encode(),key,AES.MODE_ECB) -print ("Cipher (ECB): ",binascii.hexlify(bytearray(ciphertext))) - -plaintext = decrypt(ciphertext,key,AES.MODE_ECB) -plaintext = Padding.removePadding(plaintext.decode(),mode='ZeroLen') -print (" decrypt: ",plaintext) - -plaintext=val - -plaintext = Padding.appendPadding(plaintext,blocksize=Padding.AES_blocksize,mode='Space') - -print ("After padding (CMS): ",binascii.hexlify(bytearray(plaintext.encode()))) - -ciphertext = encrypt(plaintext.encode(),key,AES.MODE_ECB) -print ("Cipher (ECB): ",binascii.hexlify(bytearray(ciphertext))) - -plaintext = decrypt(ciphertext,key,AES.MODE_ECB) -plaintext = Padding.removePadding(plaintext.decode(),mode='Space') -print (" decrypt: ",plaintext) - - -plaintext=val - -plaintext = Padding.appendPadding(plaintext,blocksize=Padding.AES_blocksize,mode='Random') - -print ("After padding (Random): ",binascii.hexlify(bytearray(plaintext.encode()))) - -ciphertext = encrypt(plaintext.encode(),key,AES.MODE_ECB) -print ("Cipher (ECB): ",binascii.hexlify(bytearray(ciphertext))) - -plaintext = decrypt(ciphertext,key,AES.MODE_ECB) -plaintext = Padding.removePadding(plaintext.decode(),mode='Random') -print (" decrypt: ",plaintext) -``` -An example is [here](https://repl.it/@billbuchanan/ch02ans01#main.py). - ## Q2