Added readme, added exception throw and copied attack program from tp02
This commit is contained in:
parent
9d9261fddd
commit
299708f56c
4 changed files with 45 additions and 1 deletions
30
TPs/TP03/py/chacha20_int_attck.py
Normal file
30
TPs/TP03/py/chacha20_int_attck.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
|
||||
def attack(fctxt, pos, plainAtPos, newPlainAtPos):
|
||||
f = open(fctxt,"rb")
|
||||
ciphertext = f.read()
|
||||
f.close()
|
||||
|
||||
plainAtPos = plainAtPos.encode()
|
||||
newPlainAtPos = newPlainAtPos.encode()
|
||||
txt_len = len(plainAtPos)
|
||||
diff = bytes([a ^ b for (a,b) in zip(plainAtPos,newPlainAtPos)])
|
||||
cipher_diff = bytes([a ^ b for (a,b) in zip(diff,ciphertext[pos:pos+txt_len])])
|
||||
|
||||
new_ciphertext = ciphertext[:pos] + cipher_diff + ciphertext[pos+txt_len:]
|
||||
|
||||
with open(fctxt+".attck","wb") as f:
|
||||
f.write(new_ciphertext)
|
||||
|
||||
def main():
|
||||
argv = sys.argv[1:]
|
||||
argc = len(argv)
|
||||
if argc < 3 or argc > 5:
|
||||
sys.exit("Needs 4 arguments <fctxt> <pos> <ptxtAtPos> <newPtxtAtPos>")
|
||||
|
||||
attack(argv[0],int(argv[1]),argv[2],argv[3])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -40,7 +40,13 @@ def decrypt(input_file, key_file):
|
|||
|
||||
|
||||
cipher = ChaCha20Poly1305(key)
|
||||
plaintext = cipher.decrypt(nonce, ciphertext, aad)
|
||||
try:
|
||||
plaintext = cipher.decrypt(nonce, ciphertext, aad)
|
||||
except Exception as e:
|
||||
print(f"Could not validate the authentication: {e}")
|
||||
return
|
||||
|
||||
|
||||
|
||||
with open(f"{input_file}.dec", "wb") as f:
|
||||
f.write(plaintext)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue