technique (cipher) that cannot be cracked, but requires the use of a one-time pre-shared key the same size as, or longer than, the message being sent. key A T e 5 1 / b J { z q C G plaintext L O R E M I P S U M L O R ciphertext 0x12 0xA 0x9F 0x1 0xFF 0x41 0xB 0x97 0x6A 0xA 0xBB 0x3 0x67
key.length, // keylength NULL, // IV data.bytes, // dataIn data.length, // dataInLength, cipherData.mutableBytes, // dataOut cipherData.length, // dataOutAvailable &outLength); // dataOutMoved COMMONCRYPTO CBC If no IV is provided, an IV of all zeroes will be used.
CBC ➤ IV - INITIALIZATION VECTOR (NONCE) - SHOULD BE RANDOM AND USED ONCE ➤ PASSWORD IS NOT A KEY. DERIVE KEY FROM A PASSWORD ➤ PADDING CAN BE DANGEROUS
CBC ➤ IV - INITIALIZATION VECTOR (NONCE) - SHOULD BE RANDOM AND USED ONCE ➤ PASSWORD IS NOT A KEY. DERIVE KEY FROM A PASSWORD ➤ PADDING CAN BE DANGEROUS ➤ AUTHENTICATE MESSAGE WITH A MAC
CBC ➤ IV - INITIALIZATION VECTOR (NONCE) - SHOULD BE RANDOM AND USED ONCE ➤ PASSWORD IS NOT A KEY. DERIVE KEY FROM A PASSWORD ➤ PADDING CAN BE DANGEROUS ➤ AUTHENTICATE MESSAGE WITH A MAC ➤ USE RSA TO EXCHANGE AES KEY