Cripto1p start Flashcards
Cifrado monoalfabetico
La idea de estos cifrados es que se utiliza un solo alfabeto para poder codificar a todo un mensaje. Estos alfabetos permiten mapear 1 a 1 los caracteres de un alfabeto a otro. Este tipo de criptosistemas son susceptibles a ataques de distribución de caracteres en el lenguaje inicial.
- Cifrado por rotacion
- Cifrado por Sustitución
Cifrado por rotacion
Gen = k ∈ { 1,…,26}
Cod_k(m) = c tal que c_i = m_i > > k
Dec_k(c) = m tal que m_i = c_i < < k
La clave es un numero entre 1 y la longitud del alfabeto. Para codificar un mensaje tenemos que rotar cada letra k veces en un sentido, y para decodificarlo debemos rotar a nuestro texto cifrado k veces en el sentido opuesto.
Este sistema no es seguro, ya que hay una cantidad limitada de rotaciones que se pueden hacer (en este caso particular 25). Es susceptible a un ataque de fuerza bruta pero el atacante debe poder diferenciar un mensaje valido de uno invalido.
No tiene secreto perfecto.
No son CCA-Secure
Cifrado por sustitucion
Gen = k ⊂ {(a, b)}*, a∈ Alphabet_1, b ∈ Alphabet_2
Cod_k(m) = c tal que c_i = k[m_i]
Dec_k(c) = m tal que m_i = k^{-1}[c_i]
Este cifrado opera con una clave k que es un diccionario, donde se mapea de forma biyectiva( nua a una) los caracteres del alfabeto con los caracteres de otro alfabeto. Ambos alfabetos pueden ser los mismos.
Este cifrado es susceptible a los ataques que aprovechan las distribuciones de las letras en los distintos lenguajes. Si el lenguaje del mensaje del texto plano tiene una cierta distribución de caracteres, la misma va a estar presente en el mensaje cifrado.
No tiene secreto perfecto.
No son CCA-Secure
Cifrados Polialfabeticos
Este tipo de cifrados actúa mediante una sustitución polialfabetica, es decir que un mismo símbolo puede transformarse en diferentes.
Cifrado de vigenere
Secreto perfecto
Gen: k←k
Enc: c ← Enc_k(m)
Dec: m = Dec_k(c)
Tiene secreto perfecto si se cumple que para cualquier distribucion de probabilidad en M, cada mensaje m y cada mensaje cifrado c tal que Pr[C=c] > 0:
Pr[M=m | C=c] = Pr[M=m]
Es una forma de decir que el texto plano y el cifrado son probabilisticamente independientes
Hay cuatro definiciones para poder decir si un criptosistema tiene secreto perfeto:
1- P(M=m) = P(M=m/C=c)
2- P(C=c)=P(C=c/M=m)
3- ∀m_0, m_1 P(C=c/M=m_0) = P(C=c/M=m_1)
4- Si pasa una prueba de Eavesdropping Indistinguishability (Eav_{A,π})
Seguridad Computacional
Por los problemas que trae el secreto perfecto, se desarrollo el concepto de seguridad computacional. Este concepto relaja dos aspectos:
- Limita los escenarios a solo los posibles, es decir, si se tardan años en descifrar un mensaje, entonces lo consideramos seguro.
- Limitar garantías. El sistema permite que sea posible descifrar un mensaje con una clave definida al azar.
Este nuevo concepto garantiza seguridad solo contra adversarios limitados y acepta una pequeña probabilidad de que el atacante tenga éxito.
Estado de un Criptosistema
Criptosistema Seguro: Cumple con las expectativas de su modelo de seguridad.
Criptosistema Debilitado: Existen adversarios con probabilidades no despreciables de éxito, pero el esfuerzo es muy grande o las condiciones son muy difíciles.
Criptosistema Quebrado: Existen adversarios con probabilidades no despreciables de éxito en tiempos practicables.
Un criptosistema puede ser seguro y quebrado al mismo tiempo, ya que puede pasar una prueba de seguridad y no otra.
Ataques
Ataque de texto plano conocido
Ataque de texto plano escogido(CPA)
Ataque de texto cifrado escogido(CCA)
Ataque de texto plano conocido
También conocido como Known-Plaintext Attack, el atacante conoce un mensaje de texto plano y su version codificada. A partir de esto debe obtener un mensaje de texto plano a partir de otro mensaje cifrado. Ambos mensajes cifrados deben haber sido creados con la misma clave.
Ataque de Texto Plano Escogido (CPA)
También conocido como Chosen-Plaintext attack, el adversario puede obtener el texto cifrado de cualquier mensaje de texto plano. A partir de esto tiene que descifrar un mensaje de texto cifrado diferente.
Si un criptosistema no es susceptible a este tipo de ataques, entonces se lo conoce como CPA-Secure. Dentro de este grupo no se pueden encontrar los criptosistemas determinísticos.
Si un criptosistema es CPA-Secure para un mensaje, entonces lo es para múltiples mensajes. Ademas, si un criptosistema es CPA-Secure para un tamaño de mensaje limitado, este se puede extender a un tamaño arbitrario con la siguiente construcción:
m=m_0m_1…m_j Cod(m)=Cod_k(m_0)…Cod_k(m_j)
Ataque de Texto Cifrado Escogido (CCA)
También conocido como Chosen-Ciphertext Attack, el adversario puede obtener el texto plano a partir de cualquier texto cifrado que quiera. A partir de eso debe descifrar un mensaje distinto.
Si un criptosistema no es susceptible a este tipo de ataques, entonces se lo conoce como CCA-Secure.
Cifrado Simétrico
One Time Pad (OTP)
- Ejemplo
- Seguridad
Criptosistemas de Flujo
- Ejemplo
- Seguridad
Data Encryption System (DES)
- Seguridad
3-DES
- Seguridad
AES
Generadores Pseudoaleatorios
Básicamente es una función a la cual nadie le encontró una forma de que no pase un test de aleatoriedad.
Cifrado Probabilistico
Si una función de cifrado es determinista, entonces no es segura bajo múltiples cifrados. El adversario puede aplicar el método anterior para cualquier criptosistema donde ek(x) es constante.
Es importante no reutilizar la clave, entonces se agrega un valor a la función generadora, que no deberá repetirse para una misma clave, a esto lo llamamos nonce o IV.
https://ldellisola.github.io/ITBA/72.44/07%20-%20Cifrado%20Probabilistico.html#cifrado-probabilistico
Cifrado en Bloque
Esta definidos para mensajes de tamaño fijo
Modos de Encadenamiento
- Electronic Cook Book (ECB)
- Cipher Block Chain (CBC)
- Cipher Feedback (CFB)
- Output Feedback (OFB)
- Counter
Criptosistemas de Bloque
- Seguridad
Utilizan primitivas de cifrado en bloque como lo son DES, AES y 3-DES, y las unen junto a un modo de encadenamiento.
Si este modo de encadenamiento es CBC, Counter, OFB o CFB, entonces es CPA-Secure.
No son CCA-Secure.