Construcción de Nonce para modo CTR (Mcrypt)

2

Editar: Pondré esto más claro.

De la forma más simple, estoy preguntando si si AES cifra en CTR más con Mcrypt (usando PHP), ¿puedo crear el "IV" simplemente leyendo 16 bytes desde / dev / urandom? ¿Eso hace el trabajo correctamente?

Leí la respuesta anterior por D.W. y él dijo:

"En la forma más simple, para cifrar un mensaje de n-block debajo de IV v, usamos v, v + 1, v + 2, .., v + n -1 como contadores , entonces déjeme asumir que eso es lo que está haciendo (si no, especifique). Generar un contador aleatorio de 128 bits con / dev / urandom está bien ".

Ahora pregunto si entendí bien esa respuesta (mi entendimiento es que si utilizo el modo CTR, uno puede crear el "IV" simplemente leyendo de / dev / urandom y eso al respecto).

Divido esta pregunta de TCrypto - Comentarios sobre decisiones de diseño I hecho?

@ D.W. "Depende de la variante del modo CTR que uses y de cómo se forme el contador. En la forma más simple, para cifrar un mensaje de bloque n debajo de IV v, usamos v, v + 1, v + 2, .., v + _n_-1 como contadores, así que déjeme suponer que es lo que está haciendo (si no, especifique). Generar un contador aleatorio de 128 bits con / dev / urandom está bien ".

Estaba mirando esto y no estoy seguro de si Mcrypt ya hace esa construcción "v + 1, v + 2 ..." internamente (utilizando el IV suministrado). Básicamente, Mcrypt toma una clave y una IV y realiza la cifrado utilizando esos parámetros.

¿O tengo que dividir manualmente el mensaje en partes y realizar el cifrado de la primera parte utilizando el IV, luego cifrar la segunda parte utilizando IV + 1 como IV, etc.?

Aquí está la función de cifrado (en el modo CBC, la interfaz de Mcrypt para usar el modo CTR es similar):

enlace

    
pregunta timoh 10.07.2011 - 10:24
fuente

1 respuesta

1

Tu pregunta es muy confusa. Parece que mcrypt_create_iv usará / dev / urandom si lo llama con MCRYPT_DEV_URANDO. También parece que no es necesario que especifique el valor del contador y que solo necesita llamar a mcrypt_generic una vez.

    
respondido por el this.josh 23.07.2011 - 09:05
fuente

Lea otras preguntas en las etiquetas