On Tue, Jul 9, 2019 at 10:16 PM Joe Conway <m...@joeconway.com> wrote: > > On 7/9/19 8:39 AM, Ryan Lambert wrote: > > Hi Thomas, > > > >> CBC mode does require > >> random nonces, other modes may be fine with even sequences as long as > >> the values are not reused. > > > > I disagree that CBC mode requires random nonces, at least based on what > > NIST has published. They only require that the IV (not the nonce) must > > be unpredictable per [1]: > > > > " For the CBC and CFB modes, the IVs must be unpredictable." > > > > The unpredictable IV can be generated from a non-random nonce including > > a counter: > > > > "There are two recommended methods for generating unpredictable IVs. The > > first method is to apply the forward cipher function, under the same key > > that is used for the encryption of the plaintext, to a nonce. The nonce > > must be a data block that is unique to each execution of the encryption > > operation. For example, the nonce may be a counter, as described in > > Appendix B, or a message number." > > > > [1] > > https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf > > > The terms nonce and IV are often used more-or-less interchangeably, and > it is important to be clear when we are talking about an IV specifically > - an IV is a specific type of nonce. Nonce means "number used once". > i.e. unique, whereas an IV (for CBC use anyway) should be unique and > random but not necessarily kept secret.
FWIW, it seems that predictable IVs can sometimes be harmful. See https://crypto.stackexchange.com/questions/3499/why-cant-the-iv-be-predictable-when-its-said-it-doesnt-need-to-be-a-secret Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center