Exemplo n.º 1
0
	def encrypt(self, pt: bytes) -> bytes:
		blks = [self.IV]+split_blocks(pkcs7_pad(pt, 16), 16)
		prev = blks[0]
		for i in blks[1:]:
			self.ct += [self.encrypt_ecb(xor(prev,i))]
			prev = self.ct[-1]
		return b''.join(self.ct)
Exemplo n.º 2
0
def attack() -> bytes:
    ct = profile_for(b'*****@*****.**')
    atk = ct[:-16] + profile_for(b'a' * 10 + pkcs7_pad(b'admin', 16))[16:32]
    return bytes_2_dict(ecb_decrypt(atk, KEY))
Exemplo n.º 3
0
#!/usr/bin/python3

from Cryptopals import pkcs7_pad, pkcs7_unpad
if __name__ == '__main__':
	assert b'abc' == pkcs7_unpad(pkcs7_pad(b'abc'))
Exemplo n.º 4
0
def black_box(pt: bytes) -> bytes:
    pt = pkcs7_pad(add(pt, b'\x00'), 16)
    if (randint(0, 1)):
        return ecb(pt, urandom(16)), 1
    return cbc(pt, urandom(16), urandom(16)), 0
Exemplo n.º 5
0
#!/usr/bin/python3

from Cryptopals import pkcs7_pad
if __name__ == '__main__':
    assert pkcs7_pad(b"YELLOW SUBMARINE",
                     20) == b'YELLOW SUBMARINE\x04\x04\x04\x04'