-
En este segmento, vamos a construir sistemas de cifrado autenticado. A partir de
-
haber conseguido cifrado seguro CPA y tener MACs seguros, la pregunta obvia
-
es si podemos combinar los dos de alguna manera, a fin de obtener cifrado autenticado.
-
Y eso es exactamente lo que vamos a hacer en este segmento. El cifrado autenticado
-
fue introducido en el año 2000, en dos informes independientes que indicaré al
-
final de este módulo. Antes de eso, muchas librerías criptográficas proporcionaban una API que,
-
por separado, admitían cifrado seguro CPA, y MACing. Así que había una
-
función para implementar el cifrado seguro CPA, por ejemplo, CBC con
-
IV aleatorio, y otra función para implementar MAC. Y a continuación, cada desarrollador que
-
quería implementar el cifrado, tenía que llamar por separado al esquema de
-
cifrado CPA y al esquema de MAC. En concreto, cada desarrollador tuvo que inventar
-
su propio modo de combinar MAC-ing y cifrado para proporcionar algún tipo de
-
cifrado autenticado. Pero los objetivos de la combinación de cifrado y MAC-ing
-
no fueron bien entendidos ya que el cifrado autenticado no había sido definido aún.
-
No estaba muy claro qué combinaciones de cifrado y MAC-ing eran correctos y
-
cuales no. Y como dije, cada proyecto tuvo que inventar su propia combinación.
-
Y de hecho, no todas las combinaciones eran correctas. Y les puedo decir ya que
-
el error más común en proyectos software fue básicamente combinar incorrectamente los
-
mecanismos de cifrado e integridad. Así que esperemos que, al final de este módulo, usted
-
sepa cómo combinarlos correctamente y no cometer estos errores.
-
Analicemos algunas combinaciones de cifrado seguro CPA y
-
MAC, que fueron introducidas por los diferentes proyectos. Aquí hay tres ejemplos.
-
En primer lugar, en los tres ejemplos hay una clave independiente para el cifrado, y
-
otra clave independiente para integridad. Estas dos claves son independientes una de otra, y
-
ambas se generan en tiempo de instalación de la sesión.
Y vamos a ver cómo generar estas
-
dos claves más adelante en el curso. El primer ejemplo es el protocolo SSL.
-
El modo en que SSL combina cifrado y MAC con la esperanza de lograr cifrado autenticado
-
es la siguiente. Básicamente toma el texto plano m, y luego calcula el MAC
-
de ese texto plano m. De esta forma, se usa la clave MAC Ki, para calcular la etiqueta de este mensaje
-
m. Y, a continuación, se anexa la etiqueta al mensaje y se cifra la
-
combinación de mensaje y etiqueta, obteniendo el texto cifrado final.
-
Esta es la opción número uno. La segunda opción es lo que hace IPsec.
-
Aquí, tomamos el mensaje, y lo primero que se hace es cifrar el mensaje.
-
Y, a continuación, calcular una etiqueta a partir del texto cifrado resultante. Obsérvese que la
-
etiqueta se calcula sobre el texto cifrado resultante. Una tercera opción es lo que hace
-
el protocolo SSH. Aquí, el SSH toma el mensaje y lo cifra utilizando un
-
esquema de cifrado seguro CPA. Y a continuación se agrega una etiqueta al mensaje. La
-
diferencia entre IPsec y SSH, es que en IPsec la etiqueta es calculada a partir del
-
texto cifrado, mientras que en SSH la etiqueta se calcula a partir del mensaje. Por tanto, estas
-
son tres formas completamente diferentes de combinar cifrado y MAC. Y la
-
cuestión es cual de ellos es seguro.
Por tanto, le permitiré pensar en esto un
-
segundo y luego seguiremos y juntos haremos el análisis. Muy bien. Vamos a
-
comenzar con el método SSH. En el método SSH observará que la etiqueta se calcula
-
en el mensaje y, a continuación se concatena en claro en el texto cifrado. Esto es
-
realmente un problema porque MAC por sí mismo no está diseñado para proporcionar
-
confidencialidad. MAC sólo está diseñado para integridad. Y de hecho, no hay
-
[...no revisado a partir de aquí..] nada malo con un Mac que como parte de la etiqueta genera unos trozos de la llanura
-
texto. Salidas de unos bits del mensaje M.
Eso sería una etiqueta perfectamente bien. Y si
-
hicimos que rompería completamente seguridad CPA aquí, porque algunos bits de
-
el mensaje se filtró en el texto cifrado.
Y así el SSH enfoque, aunque el
-
características de SSH son finos y el periódico propio no se vea comprometido por
-
Esta combinación específica, generalmente es recomendable no utilizar este enfoque. Simplemente
-
debido a la salida de la max firma de ritmo posible fuga bits del mensaje. Por lo tanto
-
Ahora analicemos SSL y IBSEC. Según parece, el método recomendado en realidad
-
es el método IBSEC. Porque resulta que no importa qué sistema seguro de CPA y mac
-
clave que se utiliza la combinación siempre es va a proporcionar encriptación autenticada.
-
Permítanme explicar muy brevemente por qué.
Básicamente lo que sucede es que una vez que ciframos
-
el mensaje bien el mensaje de contenido ahora está oculto dentro del texto de cypher y ahora
-
cuando nos calcular una etiqueta de texto cypher básicamente nos estamos bloqueo, los bloqueos de esta etiqueta
-
el texto de cypher y hace que nadie puede producir un texto de cypher diferentes que
-
aspecto válido. Y como resultado este enfoque asegura que cualquier modificación a la
-
Cypher texto será detectado por el decrypter simplemente porque no la mac
-
va a comprobar. Pues resulta que, por el enfoque SSL, realmente hay tipo de
-
ejemplos patológicos, donde se combina CPA sistema de cifrado seguro con un seguro
-
MAC. Y el resultado es vulnerable a un ataque de texto cifrado elegido, por lo que lo hace
-
en realidad no proporcionan cifrado autenticado. Básicamente, la razón y que
-
podría suceder, es que hay algún tipo de una mala interacción entre el cifrado
-
esquema y el algoritmo de MAC. Tal que, de hecho, habrá un cifrado elegido
-
ataque de texto. Así que si va a diseñar un nuevo proyecto ahora la recomendación es
-
siempre uso entonces cifrar Mac debido a que es seguro no importa qué CPA segura
-
cifrado y el algoritmo seguro de Mac que está combinando. Ahora, sólo para establecer la
-
terminología, el método SSL se denomina Mac. Y, a continuación, cifrar. Y el
-
Se llama al método de IP-SEC cifrar luego Mac
El método [inaudible] a pesar de su
-
no supone que para usarlo, se llama cifrar y Mac. Muy bien, por lo que a menudo va a:
-
cifrar y MAC y MAC y cifrar para diferenciar SSL y IP sec. Okay, tan
-
sólo para repetir lo que he de acaba. El método [inaudible] ip cifrar siempre en mac
-
nos proporcionan un cifrado indicado. Si inicia desde [inaudible] y un mac seguro.
-
Siempre obtendrá cifrado autenticado. Como dije, [inaudible] en
-
hecho, hay casos patológicos donde el resultado es vulnerable a hechos de ECP y
-
por lo tanto no proporciona cifrado autenticado. Sin embargo, la historia s un poco
-
poco más interesante que eso, que resulta que, si realmente está utilizando
-
aleatorios a modo de contador o CBC aleatorio, entonces resulta que, para los particulares
-
Esquemas de cifrado seguro de CPA, [inaudible] realmente proporcionar autenticado
-
cifrado y por lo tanto es seguro. De hecho, hay incluso una más interesante
-
Twist aquí que si utiliza el modo contador aleatorios. Entonces, es suficiente
-
que el algoritmo de Mac solo una vez segura. No tiene que ser un completo
-
Mac seguro. Sólo tiene que ser seguro cuando se utiliza una clave para cifrar un mensaje único,
-
¿bien? Y cuando hablamos de la integridad del mensaje, vimos que hay realmente
-
Macs mucho más rápidos que una vez seguro que Macs que son totalmente seguras. Como un
-
resultado, si está utilizando el modo de contador aleatorios MAC cifrar podría realmente
-
como resultado de un mecanismo de cifrado más eficaz. Sin embargo, voy a repetir
-
Esto otra vez. La recomendación es utilizar cifrar entonces MAC y nos vamos a ver un
-
número de ataques a sistemas que no utilizan entonces cifrar Mac Y así hacer
-
seguro cosas son seguras sin tener que pensar demasiado sobre ello. Una vez más, estoy
-
va a recomienda que siempre utilice luego cifrar Mac Ahora, una vez el concepto de
-
cifrado autenticado se hizo más popular, estandarizado de un número de
-
criterios para la combinación de cifrado y Mac activado. Y esos fueron incluso
-
estandarizado por el Instituto Nacional de estándares. Por lo que sólo me va a mencionar tres
-
de estas normas. Dos de ellos fueron estandarizados por el NIST. Y estos son
-
llamado Galois modo de contador y contador CBC. Y así que Permítanme explicar lo que hacen.
-
Modo de contador de Galois básicamente utiliza cifrado de modo de contador, por lo tanto un contador aleatorio
-
modo con una MAC Carter-Wagmon, por lo que un hecho Carter Wagmon Mac. Y la forma del
-
Carter Wagmon MAC funciona en GCM es básicamente es una función de hash del mensaje
-
está siendo MACed. Y, a continuación, el resultado se encriptan usando un PRF. Ahora esta hash
-
función de GCM ya es bastante rápido hasta el punto donde el grueso de la marcha
-
tiempo de GCM está dominada por el cifrado de modo de contador y incluso hizo más
-
en Intel introduce una instrucción especial PCLMULQDQ específicamente
-
diseñado para el propósito de hacer la función de hash en ejecución GCM tan rápido como
-
posible. Ahora CCM Com módem es otra perdida estándar utiliza un Mac de CBC. Y
-
a continuación, cifrado de modo de contador. Así que este mecanismo, usted sabe, esto utiliza MAC, entonces
-
cifrar, como SSL. Así que esto realmente no es la manera recomendada de hacerlo
-
las cosas, pero contador [inaudible] se utiliza el cifrado de modo. Esto es realmente un
-
mecanismo de cifrado perfectamente bien. Una cosa que me gustaría señalar sobre
-
MCC, es que todo se basa en AES.
Observará que está usando AES para el CBC
-
MAC y lo está usando AES para el cifrado de modo de contador. Y como resultado, puede CCM
-
aplicarse con relativamente poco código. ?Hacer todo lo que necesita es un motor AES
-
y nada más. Debido a esto, CCM realmente fue aprobado por la Wi-Fi
-
Alianza, y de hecho, probablemente utilizas CCM diariamente si utilizas
-
cifrado Wi-Fi, 80211I. A continuación, utiliza básicamente ccm cifrar el tráfico
-
entre el portátil y el punto de acceso.
Hay otro modo llamado un eax que
-
utiliza cifrado de modo de contador y, a continuación, cmac. Por lo tanto, otra vez notará cifrar y mac
-
y eso es una aleta, otro modo fino a utilizar. Haremos una comparación de todos estos
-
modos en tan sólo un minuto. Ahora quisiera mencionar que en primer lugar, todas estas son
-
basado en nonce. En otras palabras, no utilizan ningún aleatoriedad pero tienen como
-
entrada un nonce y el nonce tiene que ser único por clave. En otras palabras, como usted
-
Recuerde que debe repetir nunca, nunca la nonce común clave par. Pero el
-
nonce sí necesitan no ser aleatorio, por lo que es perfectamente bien para utilizar un contador, para
-
ejemplo, como un [inaudible]. Y el otro punto importante es que, en realidad, todos
-
Estos modos son lo que denomina cifrado autenticado con asociados
-
datos. Se trata de una extensión de cifrado autenticado, pero que viene
-
hasta muy a menudo en protocolos de red. Así que la idea entre AEAD. Es que, de hecho,
-
el mensaje siempre es que el modo de cifrado no está pensado para ser plenamente
-
cifrado. Sólo una parte del mensaje pretende ser cifrada, pero todos los
-
mensaje pretende ser autenticado. Un buen ejemplo de esto es un paquete de red.
-
Piensa como un paquete ip donde hay un encabezado. Y, a continuación, hay una carga y
-
normalmente es el encabezado no va a ser codificado. Por ejemplo, podría el encabezado
-
contener el destino del paquete, pero entonces el encabezado había mejor no
-
enrutadores cifrados del camino no saben dónde enrutar el paquete.
-
Y por lo tanto, normalmente se envía el encabezado de la clara, que la carga, por supuesto, es
-
siempre cifrada, pero qué gustaría hacer es tener el encabezado de ser autenticado.
-
No cifrados por autenticado. Esto es exactamente lo que estos modos AEAD, do. Ellos
-
será autenticar el encabezado y, a continuación, cifre la carga. Pero el encabezado y
-
la carga están enlazados juntos en la autenticación para que la autenticación no se puede
-
realmente estar separados. Así que esto no es difícil de hacer. Lo que sucede en estos
-
tres modos de GCM, CCM y EAX, básicamente el MAC se aplica a los datos de todos. Pero
-
el cifrado se aplica solamente a la parte de los datos que necesita ser codificado. Por lo tanto
-
Quería mostrarles lo que un cifrado de API [inaudible] autenticado con
-
asociados parecen esquemas de cifrado de datos. Así que aquí es lo que parece
-
[inaudible]. Por ejemplo, esto es, una API para GCM. Así que lo que haces es llamar a la
-
a mediados de función para inicializar el cifrado modo y le aviso le darle una clave y
-
nonce. El nonce nuevamente, no tiene que ser aleatorio, pero tiene que
-
ser único. Y después de la inicialización, sería llamar a esta función de cifrar, donde
-
ves que da los datos asociados que se va a ser autenticado, pero
-
no cifrada. Se le da los datos, y se va a ser tanto autentica y
-
cifrado. Y le da vuelta el texto cifrado completo, que es un cifrado de la
-
datos, pero por supuesto no incluye la AAD, porque la AAD es va a ser enviado
-
[inaudible]. Así que ahora que comprendemos este modo de cifrar luego MAC, podemos ir
-
volver a la definición de MAC seguridad y podemos explicarle algo que podría
-
han sido un poco oscuro cuando analizamos esa definición. Así que si te acuerdas,
-
uno de los requisitos que siguieron desde nuestra definición de MACs seguros significa que
-
dado un mensaje par MAC en un mensaje M, el atacante no puede producir otra etiqueta en
-
el mismo mensaje M. En otras palabras, aunque el atacante ya tiene una etiqueta para
-
el mensaje M, él shouldn? t ser capaz de producir una nueva etiqueta para el mismo mensaje M.
-
Y realmente no está claro, ¿por qué eso importa? A quién le importa si el adversario ya
-
¿tiene una etiqueta en el mensaje de M? ¿A quién le importa si él puede producir otra etiqueta? Así, resulta
-
que el MAC no tiene esta propiedad. En otras palabras, dado un mensaje
-
Par de MAC, puede producir otra MAC en el mismo mensaje y, a continuación, sería MAC
-
como resultado un modo inseguro de MAC cifrados.
Y por lo tanto, si queremos que nuestro MAC cifrado a
-
integridad self-adjust, es crucial que nuestra seguridad MAC implicaría una fuerte
-
noción de seguridad, que, por supuesto, no es porque hemos definido correctamente.
-
Así que vamos a ver lo que podría salir mal, si, de hecho, era fácil producir este tipo de
-
falsificación. Por lo tanto lo que haremos es te voy a mostrar un ataque de texto cifrado elegido en el
-
resultando cifrar, luego sistema Mac. Y dado que el sistema tiene un texto cifrado elegido
-
ataque, significa necesariamente que no proporciona un autenticado
-
cifrado. Así que vamos a ver. Así que empieza a gonnna del adversario mediante el envío de dos
-
mensajes, M0 y M1. Y él se va a recibir, como de costumbre, el cifrado de una
-
de ellos, el cifrado de M0 o el cifrado de M1. Y ya que estamos
-
uso de cifrar, el Mac, el adversario recibe un texto cifrado llamaremos a una c
-
cero y Mac en el texto cifrado c cero.
Pues ahora hemos dicho que el mac de
-
un mensaje el adversario puede producir otro mac en el mismo mensaje. Y qué
-
él es va a hacer es que se va a producir otro mac en el mensaje de CO. Ahora él tiene
-
un nuevo cypher texto, CO, T prime, que es un texto de cypher perfectamente válida. Primo de t es un
-
mac válida de CO. Por lo tanto, el adversario ahora puede enviar una consulta de texto elegido cypher
-
C prime y esto es un texto válido cypher elegido consulta porque es diferente
-
de C. Es un nuevo texto de cifrado. El challenger pobre ahora se ve obligado a descifrar esto
-
primer texto c de cifrado por lo que él va a volver a enviar el descifrado de c prime. Es un
-
el texto cifrado válidos, por tanto, el descifrado de prime c es el mensaje MB pero ahora el
-
atacante sólo aprendió el valor de b porque él puede probar si MB es igual a
-
M0 o MB es igual al M1. Como resultado de él sólo puede salida b y saca ventaja
-
uno. En la alimentación del sistema. Y así otra vez si no implica nuestra seguridad mac
-
Esta propiedad aquí. Entonces, habrá un elegido [inaudible] un cifrar en mac. Y
-
por lo tanto, no sería seguro. Por lo tanto el hecho de que definimos seguridad Mac correctamente
-
significa que cifrar y Mac realmente proporcionan cifrado autenticado. Y
-
a lo largo de todas las Macs que hablamos realmente satisfacer esta noción fuerte de
-
unforgeability. Así, curiosamente, esto no es el final de la historia. Por lo tanto, como dijimos
-
antes de que se introdujo el concepto de cifrado autenticado todos era
-
sólo la combinación de macs y cifrado de diversas maneras con la esperanza de lograr
-
algunos, algunos cifrado autenticado. Después de la noción de cifrado autenticado
-
fue formalizado y rigurosa un poco comenzó arañando sus cabezas y dijo:
-
bueno, espere un minuto. Quizás logremos cifrado autenticado más eficiente
-
que mediante la combinación de un mac y un esquema de cifrado. De hecho, si uno piensa en cómo
-
Esta combinación de MAC y encriptación funciona, digamos que combinamos a modo de contador
-
con CMAC, entonces para cada bloque de texto, en primer lugar tiene que utilizar
-
el cifrado por bloques a modo de contador y, a continuación, tiene que utilizar para el cifrado por bloques
-
una vez más, para el CBC-MAC. Esto significa que si usted combina CPA seguro cifrado con una
-
MAC, para cada bloque de texto, tienes que evaluar dos veces, el cifrado por bloques
-
una vez para MAC y una vez en el esquema de cifrado. Así que la pregunta natural
-
fue, nosotros podemos construir un esquema de cifrado autenticado directamente desde un PRP
-
tal que tendríamos que evaluar sólo el PRP una vez por bloque. Y resulta
-
la respuesta es sí y hay estas hermosa construcción llamada TOC, que
-
muy bonita hace todo lo que desee y es mucho más rápido que las construcciones que son
-
construido por separado a partir de un cifrado y un Mac. Así que escribí abajo, tipo de un esquema
-
de OCD. No quiero explicar en detalle. Sólo un poco a explicarlo en un
-
alto nivel. Así que aquí tenemos a la entrada de texto, aquí en la parte superior. Y usted
-
Observe que, en primer lugar, TOC es paralyzable, completamente paralyzable. Por lo tanto
-
cada bloque puede cifrarse por separado de cada otro bloque. La otra cosa que
-
aviso es que como lo prometido es deuda, sólo evaluar su cifrado en bloque una vez por la llanura
-
bloque de texto. Y, a continuación, se evalúa una vez más al final para construir su
-
ficha autenticación y, a continuación, la sobrecarga de la OCB más allá de sólo una cifra de bloque es
-
mínima. Todo lo que tienes que hacer es evaluar una determinada función muy simple clave que la
-
no [inaudible] en el p observará, la clave entra en esta p y, a continuación, hay una
-
contador de bloque que va en este p. Tan sólo evaluar esta función P, dos veces
-
para cada bloque y el resultado antes y después de utilizar cifrado XOR el
-
cypher de bloque y eso es todo. Eso es todo lo que tienes que hacer y, a continuación, obtendrá una muy rápida
-
y eficiente esquema de cifrado autentica construido a partir de una cifra de bloque. Así OCB
-
realmente tiene un teorema de seguridad agradable asociado y voy a punto
-
un libro sobre OCB cuando lleguemos al final de este módulo donde te enumero algunas más
-
lectura de documentos que pueden echar un vistazo. Por lo que podría estar preguntándose si la OCB es así
-
mucho mejor que todo lo que has visto hasta ahora todas estas tres normas MCC, GCM y
-
EAX ¿por qué no utilizan OCB o por qué no OCB el estándar? Y la respuesta es un
-
poco triste. La CBC de respuesta primaria [inaudible] no está siendo utilizada es realmente porque
-
de varias patentes. Y sólo podrá dejarlo en ese. Para concluir esta sección I
-
quería mostrarle algunos números de rendimiento. Así que aquí a la derecha aparece
-
números de rendimiento de modos que no debería estar utilizando. Así que esto es para
-
modo de contador aleatorios y esto es para CBC aleatorio. Y se puede ver también el
-
rendimiento de CBC MAC es básicamente el mismo que el rendimiento de cifrado CBC.
-
Muy bien. Y aquí están los modos de cifrado autenticado, por lo que estos son los
-
que se supone que utilizando, estos se supone no estar usando en su
-
derecho propio. Estos dos nunca debe utilizar estos dos porque ellos sólo
-
proporcionar seguridad habilitados en la CPA, realmente no proporcionan seguridad contra activo
-
ataques. Sólo se supone utilizar cifrado autenticado para el cifrado.
-
Y así se trata de sus números de rendimiento para las tres normas. Y me permito recordar
-
básicamente lo GCM utiliza un hash muy rápido. Y, a continuación, utiliza el modo de contador para
-
cifrado real. Y se puede ver que es la sobrecarga de GCM a modo de contador
-
relativamente pequeño. CCM y EAX usan un sitio de bloque para una codificación base y una
-
sitio de bloque para mac base. Y como resultado su sobre dos veces como lento como contador
-
modos. Se ve que la OCB es realmente el más rápido de estos, principalmente porque se
-
sólo utilice el cifrado de bloque por bloque de mensaje. Por lo tanto basado en estas rendimiento
-
números, uno pensaría que el GCM es exactamente el modo correcto para usar siempre. Pero
-
resulta que si estás en el hardware de espacio limitado, GCM no es ideal.
-
Sobre todo porque su aplicación requiere código mayor que los otros dos
-
modos. Sin embargo, como ya he dicho, Intel específicamente agrega instrucciones para acelerar
-
modo de GCM. Y como resultado, aplicación de GCM sobre una arquitectura [inaudible] toma
-
muy poco código. Pero en otras plataformas de hardware, visto en tarjetas inteligentes u otros
-
entornos limitados, los sitios de código para implementar GCM sería considerablemente
-
más grande que los otros dos meses. Pero si el tamaño del código no es una restricción entonces gcm
-
es el modo correcto de utilizar. Para resumir este segmento quiere decir que uno más
-
tiempo cuando desea cifrar mensajes que tienes que utilizar una autenticación
-
modo de cifrado y la manera recomendada de hacerlo es utilizar uno de los estándares,
-
principalmente uno de estos tres modos para proporcionar autenticación cifrado. No
-
aplicar el esquema de cifrado, en otra palabras generar, implementar cifrar
-
y mac usted mismo. Sólo tiene que utilizar uno de estos tres estándares. Muchos cifrar las bibliotecas
-
ahora prever estos tres modos de ABI estándar y estos son los de uno que debe
-
estar utilizando y nada más. En el siguiente segmento vamos a ver qué otra cosa puede
-
salir mal cuando se intenta implementar un cifrado sonicated.