In the implementation of the cipher I use, I need to use 5 blocks of data:
- an IV
- a key
- a nonce
- associated data
- an input text
I looked at the AES CBC and CFB implementations since they need 3 blocks of data (IV, input and key) but there are things I don’t understand.
First for CBC, I guess that the ct is refering to the IV in the first part but I don’t see why you XOR all the blocks at the beginning (and not after each encryption).
In addition to that are you using ct for the IV because you can’t send more data to the chip of for optimization issues ?
Second for CFB, I don’t see any XOR between the plaintext and the ouput of the encryption. Am I missing something ?
Thanks in advance