Esempio n. 1
0
def encryption_oracle(pt):
    global key
    if key is None:
        key = get_rnd_bytes(AES.block_size)

    cipher = AES.new(key, AES.MODE_ECB)
    pt+=d64_suffix
    padded_pt = c9.pad_pkcs7(pt, AES.block_size)
    return cipher.encrypt(padded_pt) 
Esempio n. 2
0
    def encrypt(self, pt):
        pt = c9.pad_pkcs7(pt, self._blk_sz)
        pt_blks = [pt[i : i + self._blk_sz] for i in range(0, len(pt), self._blk_sz)]

        ct = b""
        prev = self._iv
        for pt_blk in pt_blks:
            ct_blk = self._cipher.encrypt(strxor(pt_blk, prev))
            ct += ct_blk
            prev = ct_blk
        return ct
Esempio n. 3
0
def aes_encrypt_ecb(text, key, pad = False):

    # if you want to pad, pass pad = True and appropriate blockSize

    cipher = AES.new(key, AES.MODE_ECB)

    if pad:

        text = pad_pkcs7(text, AES.block_size)

    c = cipher.encrypt(text)

    return c
Esempio n. 4
0
def encryption_oracle(pt):
    global key, random_text
    if key is None:
        key = get_rnd_bytes(AES.block_size)
    
    if random_text is None:
        random_text = get_rnd_bytes(random.randint(1,123))

    cipher = AES.new(key, AES.MODE_ECB)

    pt = random_text + pt #prepend random text
    pt+=d64_suffix
    padded_pt = c9.pad_pkcs7(pt, AES.block_size)
    return cipher.encrypt(padded_pt) 
Esempio n. 5
0
def select_random_pad_encrypt():
    global key, iv
    blk_sz = 16

    if key is None:
        key = c11.get_rnd_bytes(blk_sz)

    if iv is None:
        iv = c11.get_rnd_bytes(blk_sz)

    lines = [l.strip() for l in open('c17.txt', 'rb').readlines()]
    pt = lines[random.randint(0,9)]
    padded_pt = c9.pad_pkcs7(pt, 16)
    
    cipher = AES.new(key, AES.MODE_ECB)
    iv = c11.get_rnd_bytes(blk_sz)
    cbc = c10.CBC(cipher, iv, blk_sz)   
    return(cbc.encrypt(padded_pt))
Esempio n. 6
0
def aes_encrypt_cbc(text, key, iv, pad=False):

    if pad:

        text = pad_pkcs7(text, AES.block_size)

    c = b''

    prev = iv

    for block in range(0, len(text), AES.block_size):

        textBlock = text[block:block + AES.block_size]

        cipherBlock = aes_encrypt_ecb(bytes_xor(textBlock, prev), key)

        c += cipherBlock

        prev = cipherBlock

    return c