def aes_ctr(rawInput, rawKey, rawIV): inputBlocks = chunks(rawInput, 16) rawOutput = b'' for block in inputBlocks: keyStream = aes_ecb_enc(rawIV, rawKey) rawOutput += raw_xor(keyStream, block) rawIV = incrementIV(rawIV) return rawOutput
def aes_ctr(rawInput, rawKey, rawIV): inputBlocks = chunks(rawInput, 16); rawOutput = b''; for block in inputBlocks: keyStream = aes_ecb_enc(rawIV, rawKey); rawOutput += raw_xor(keyStream, block); rawIV = incrementIV(rawIV); return rawOutput;
def encryption_oracle(rawInput): key = generateAESKey(); iv = generateAESKey(); prependAmount = 5 + (getOneRandomByte() % 6); #slight bias... appendAmount = 5 + (getOneRandomByte() % 6); #slight bias... plaintext = (b'x' * prependAmount) + rawInput + (b'y' * appendAmount); if ((getOneRandomByte() & 0x1)): return aes_ecb_enc(addPKCS7Padding(plaintext, 16), key); else: return aes_cbc_enc(addPKCS7Padding(plaintext, 16), key, iv);
def encryption_oracle(rawInput): key = generateAESKey() iv = generateAESKey() prependAmount = 5 + (getOneRandomByte() % 6) #slight bias... appendAmount = 5 + (getOneRandomByte() % 6) #slight bias... plaintext = (b'x' * prependAmount) + rawInput + (b'y' * appendAmount) if ((getOneRandomByte() & 0x1)): return aes_ecb_enc(addPKCS7Padding(plaintext, 16), key) else: return aes_cbc_enc(addPKCS7Padding(plaintext, 16), key, iv)
def encryptProfile(profile): return aes_ecb_enc(addPKCS7Padding(bytes(profile, 'UTF-8'), 16), aesKey)
def constant_ecb_encrypt(rawInput): return aes_ecb_enc(addPKCS7Padding(rawInput, 16), global_aes_key);
def encryptProfile(profile): return aes_ecb_enc(addPKCS7Padding(bytes(profile, 'UTF-8'), 16), aesKey);
def constant_ecb_encrypt(rawInput): return aes_ecb_enc(addPKCS7Padding(rawInput, 16), global_aes_key)