Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I process Initialization Vector inside the Block Cipher Encryption box (using for example AES) together with the Key?

OFB image from Wikipedia

Will I encrypt the Initialization Vector like a block of plaintext? So I can generate a keystream, which I will then XOR to the plaintext to generate ciphertext?

share|improve this question
The diagram shows it all: you treat the IV like the result of the previous block cipher encryption. That is, apply block cipher encryption to it, save the result for the next step, and XOR a block of plaintext with that result to get a block of ciphertext. – fgrieu Apr 30 '12 at 11:11
It means, Initialization Vector will stand like a plaintext? like in ECB mode? – goldroger Apr 30 '12 at 11:46
Yes, generally in such diagrams the top input of a block cipher "Encryption" box is the "plaintext input", the side one is the "key input", and the botton output is the "ciphertext" output. – Paŭlo Ebermann Apr 30 '12 at 12:16
up vote 4 down vote accepted

Will I encrypt the Initialization Vector like a block of plaintext? to generate keystream and I will XOR it to the plaintext to generate ciphertext?

Yes, for the first block of plaintext. For the subsequent blocks, you use the output of the previous encryption (before XOR) as the input to the cipher (along with the same key).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.