Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pwang00
GitHub Repository: pwang00/Cryptographic-Attacks
Path: blob/master/Symmetric Key/AES/byte_at_a_time/oracle.py
336 views
1
from Crypto.Cipher import AES
2
from os import urandom
3
from random import randint
4
from pkcs7 import pkcs7
5
from base64 import b64decode
6
7
key_size = 16
8
key = open("key").read()
9
10
unknown = """Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc
11
28gbXkgaGFpciBjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5
12
IHdhdmluZyBqdXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vLCB
13
JIGp1c3QgZHJvdmUgYnkK"""
14
15
def oracle(data, keysize = key_size):
16
cipher = AES.new(key, AES.MODE_ECB)
17
data = pkcs7(data + b64decode(unknown), keysize)
18
return cipher.encrypt(data)
19
20
21
if __name__ == "__main__":
22
print(oracle("A"*32))
23