I have no clue how to determine suitable 128 bit IV (initialization vector) from a 32 bit IV. Encryption AES-128 OFB. The 32 bit IV has value
0x9a23773c (transmitted in front of the data). Any ideas?
OFB mode directly uses the IV as input to the block encryption - in this case by AES. So generally there is no 32 bit IV possible, it must be exactly the same size as the block size of the block cipher. OFB does not define any way to go from a 32 bit nonce to a 128 bit IV - if such an operation is defined then it is defined outside of the OFB definition in NIST Special Publication 800-38A: Recommendation for Block Cipher Modes of Operation.
Usually however the 32 bits are simply defined as leftmost bits of a 128 bit value, with zeros appended to the right hand side. Putting the values on the right hand side may also be a possibility however. Actually the bits can be put through any operation and put in any place as long as the result remains unique. But it seems unlikely that such an operation takes place at it would not have any function. Just try copy the bytes into the front or the back of a 128 / 8 = 16 bytes buffer and try if you guessed correctly.
Or ask the person that created the protocol of course, it never hurts to ask such a thing because they should have defined it for you.
According to this survey of block cipher modes (pp. 30-37), OFB mode is not SemCPA secure if the IV is a nonce, but "secure with a fixed sequence of IVs, like a counter." This responds to a subtle nuance in this paper: the security model that Rogaway uses allows nonces to be selected by the adversary, so the attacks shown against nonce-based OFB rely on such adversarial control over nonces.
This means that as long as the application is 100% in control over the values of the nonces (such that an attacker can never influence them), then any method that uniquely extends 32-bit inputs to 128-bit outputs will work fine for extending IVs.
Important proviso: it's not safe to pick the 32-bit values randomly, the collision risk is very high, and for a stream cipher like OFB the consequence of nonce reuse is catastrophic. That also means the following statement had better refer to just one example message:
The 32 bit IV has value
0x9a23773c(transmitted in front of the data).