Ejemplos de criptología

Contents

Ejemplos de criptología

Dado que el cifrado simétrico es mucho más rápido, primero puede generar una clave secreta y transmitirla a través de una línea asegurada por criptografía de clave pública. Ahora toda la comunicación futura puede usar la clave secreta.

Diferencia entre criptografía y criptología

Criptografía es el estudio de la conversión de texto plano (formato legible) en texto cifrado (formato no legible) I I.mi. encriptación. También se llama el Estudio de cifrado. Criptología, Por otro lado, es el estudio de la conversión de texto sin formato en cifrado y viceversa. También se llama el Estudio de cifrado y descifrado. Una gran diferencia es que la criptología es el padre de la criptografía. Veamos las otras diferencias.

Si. No. Criptografía Criptología
1. La criptografía es el proceso de conversión de texto plano a texto cifrado. La criptología es el proceso de conversión de texto plano a texto de cifrado y viceversa.
2. También se llama el estudio del cifrado También se llama el estudio del cifrado y el descifrado.
3. Tiene lugar en el lado del remitente Se lleva a cabo en el lado del remitente y el receptor
4. En criptografía, el remitente envía el mensaje al receptor. En criptología, tanto el remitente como el receptor se envían mensajes entre sí.
5. La criptografía puede verse como el hijo de la criptología. La criptología puede verse como el padre de la criptografía
6. La criptografía se ocupa de las técnicas de comunicación segura. La criptología se ocupa del estudio de la comunicación segura.
7. La criptografía se centra en la práctica de ocultar información La criptología se centra en los aspectos teóricos y matemáticos de la seguridad de la información
8. La criptografía implica técnicas de cifrado, descifrado y autenticación La criptología implica el estudio de códigos, cifrados y criptoanálisis
9. La criptografía se refiere al desarrollo de algoritmos y protocolos La criptología se refiere a analizar y romper los métodos de cifrado existentes
10. Criptografía utilizada en varios campos, como finanzas, comercio electrónico y seguridad nacional Cryptología utilizada en la academia y la investigación para comprender y mejorar el cifrado
11. La criptografía incluye aplicaciones como mensajería segura, transferencia de archivos seguros y firmas digitales. La criptología incluye aplicaciones como criptoanálisis, ruptura de códigos y análisis matemático de métodos de cifrado.

Última actualización: 09 de marzo, 2023

Miniatura de lectura similar

Como artículo

Criptología

Estas notas sirven como una introducción a la criptografía y no a un plan de estudios completo para convertirlo en un experto con licencia para implementar cifras, hashes, firmas o tal cosa en cualquier aplicación del mundo real. Claro, está bien jugar en casa, pero nunca intentes implementar rutinas criptográficas para un cliente o tu propia empresa. Déjalo en los profesionales. Hay buenas bibliotecas por ahí. Usalos, usalos a ellos.

Sin embargo, siempre debe verificar y preguntar si la biblioteca que está utilizando implementa un algoritmo que aún no se ha roto y tiene suficiente longitud de llave.

Este ha sido un importante anuncio de servicio público.

Fondo

Es convencional hablar de criptografía en un entorno con unos pocos personajes llamados Alice (el remitente), Bob (el receptor), Eva (el espía) y Mallroy (un poderoso actor malicioso).

cryptosystem.png

Alice y Bob pueden ser personas, clientes y servidores, computadoras pares, tiendas de datos, enrutadores de red, etc. Eva puede observar la comunicación. Mallory no solo puede escuchar a escondidas, sino que también falsificar a uno de los participantes, agregar, modificar o eliminar mensajes reales, secuestrar la conexión, hacer una negación de servicio, inyectar malware, etc.

Objetivos:

  • : Debería costarle a Eve más recuperar $ m $ que $ m $ vale.
  • : Bob debería poder verificar que fue Alice la que envió $ m $.
  • : Bob debería poder verificar que $ m $ no fue manipulado con.
  • : Alice no debería poder negar el envío de $ m $.
  • Si su algoritmo secreto está comprometido (alguien podría abandonar su grupo), debe cambiarlo, y eso es mucho más difícil que simplemente cambiar una clave!
  • Los algoritmos públicos pueden someterse a miles de expertos que buscan fallas, por lo que tiene cierto grado de confianza en aquellos que resisten el escrutinio.

Definiciones

Palabras para saber: criptografía el arte y la ciencia de haciendo cifras. Criptoanálisis el arte y la ciencia de rotura cifrados, yo.mi., la extracción de $ m $ dada $ c $, $ e $, $ d $ y posiblemente $ k_e $. Criptología El estudio de criptografía y criptoanálisis.

Ejercicio: Averiguar sobre la esteganografía. ¿Cómo es diferente de la criptografía??

Criptosistema Un conjunto particular de algoritmos y protocolos para cifrado, descifrado y generación de claves. Ejemplos: Cramer-s-shoup ​​CryptoSystem, Rabin CryptoSystem, Benaloh Cryptosystem, RSA Cryptosystem. Sistema criptográfico cualquier sistema que use criptografía. Cifrar un algoritmo utilizado en un criptosistema.

Ejercicio: ¿En qué se diferencia un “código” de un “cifrado”?? Son los códigos más seguros que los cifrados? ¿Por qué no se usan con tanta frecuencia??

Confusión La propiedad de tener la relación entre el texto sin formato, el texto cifrado y la clave tan complicada como para ser inútil para el criptoanalista. Difusión La propiedad de tener patrones estadísticos en el texto sin formato se extiende ampliamente a lo largo del texto cifrado.

Líneas de tiempo

  • Artículo de Historia de Criptografía de Wikipedia
  • Línea de tiempo de Wikipedia
  • La línea de tiempo de Carl Ellison

Tipos de cifrados

  • : Un cifrado lo suficientemente fácil de ser realizado a mano, generalmente basado en personajes. También llamado .
  • : Casi cualquier cifrado que no sea clásico.
  • : Cada personaje del texto sin formato se reemplaza con uno o más caracteres para hacer el texto cifrado.
  • : Los caracteres en el texto sin formato se reorganizan para formar el texto cifrado.
  • : Un cifrado de sustitución en el que un carácter del texto sin formato siempre es reemplazado por el mismo carácter.
  • : Un cifrado de sustitución que esencialmente usa mapeos de sustitución monoalfabética múltiple.
  • : Una sustitución en la que un personaje puede asignar a uno de un conjunto de caracteres.
  • : Una sustitución de bloques de caracteres por bloques de caracteres.
  • : Un cifrado polalfabético en el que se repite el esquema de reemplazo.
  • : Explicación por sí mismo si entiendes periódico.
  • : El cifrado tiene lugar no por personaje sino por bloque de caracteres.
  • : Una cifrado que funciona en un flujo de datos de longitud desconocida, que generalmente incorpora retroalimentación.
  • : Un cifrado en el que $ k_e $ y $ k_d $ son los mismos o trivialmente derivables entre sí; requiere que las partes se reúnan en secreto para intercambiar las llaves que usarán. También llamado .
  • : Un esquema en el que se conoce públicamente la clave de cifrado de todos, pero su clave de descifrado se mantiene en secreto. También llamado .
  Eero Pro VPN

Es divertido estudiar los cifrados, pero varían ampliamente en términos de su utilidad en la seguridad. Uno de los defectos de seguridad más grandes en un sistema es hacer mal uso de la criptografía. Así es: el problema es su mal uso, no su omisión!

El hecho de que un cifrado figura en esta página no significa que deba usarlo. Nuestro objetivo es aprender una amplia gama de cifrados, tanto históricos como modernos.

Criptografía de clave secreta

  • Si $ N $ personas en un grupo necesitan comunicarse, necesitan $ \ frac $ Keys.
  • Las claves deben distribuirse de forma segura (en secreto).
  • Las llaves deben mantenerse a salvo.
  • Las claves deben cambiarse con frecuencia, lo que vuelve a dar el dolor de cabeza de distribución.

En los ejemplos basados ​​en el personaje a continuación, asumiremos (sin pérdida de generalidad) un alfabeto de 26 símbolos (A..Z).

Cifrado césar

Una cifrado completamente patético e inseguro para los estándares modernos. La clave de cifrado $ k_e $ es un entero pequeño y $ k_d = k_e $. Para cifrar, agregue $ K_E $ a cada carácter de texto sin formato; descifrar, restar. Por ejemplo, con K = 5, AttatchAtDawn se vuelve fyyfhpfyifbs trivial para romper: solo adivina $ k_e $.

Sustitución monoalfabética

En lugar de simplemente agregar un desplazamiento fijo a cada personaje, puede precomputar un tabla de sustitución generando una permutación aleatoria de tu alfabeto. Por ejemplo:

Abcdefghijklmnopqrstuvwxyz mqhpsvjycurftbilakwngzdoex

Entonces AttackAtDawn ahora es mnnmhrmnpmdb . No te rompes esto adivinando la clave (hay $ N!$ Posible claves), pero el análisis de frecuencia puede descifrar cualquier cifrado de sustitución monoalfabética, siempre que el mensaje sea lo suficientemente largo. Para las técnicas cuya clave es una permutación, una forma de hacer que la clave sea más fácil de recordar es elegir una frase, diseñar sus letras únicas y luego completar las letras faltantes para. Por ejemplo, la optimización prematura es la raíz de todos los rendimientos malvados de este mapeo de sustitución:

Prematuoiznshflvbcdgjkqwxy

Sustitución homofónica

Cada letra de texto sin formato se asigna a uno o más símbolos en el texto cifrado. El número de objetivos debe ser proporcional a su frecuencia (para derrotar el análisis de frecuencia). Ejemplo:

A 12 15 36 50 56 70 81 95 B 51 84 C 16 44 65 D 04 06 48 82 E 01 17 19 34 47 49 58 60 67 77 85 90 F 13 27 G 09 28 H 26 42 53 59 68 71 I 35 73 73 73 73 76 86 91 96 J 18 K 07 L 29 40 54 87 M 25 30 N 21 61 62 69 74 94 O 02 03 08 08 10 57 75 93 P 41 98 Q 97 R 32 38 43 45 80 83 S 14 22 39 79 89 99 99 99 T 00 20 23 33 46 52 72 78 88 U 11 64 66 V 37 W 63 92 x 31 Y 24 55 Z 05

Para encriptar, elegir al azar Entre las posibilidades. Por ejemplo, un posible cifrado de AttackAtDawn es:

56 78 20 95 65 07 12 72 06 50 92 61

Vigenère simple

El cifrado conocido como el no fue inventado por Vigenère en absoluto. Parece haber sido descrito por primera vez por Giovan Battista Bellaso. La tecla es una cadena que agrega al texto sin formato con suma modular, como en este ejemplo (a = 0, b = 1, c = 2, . Z = 25):

Texto de la plantilla: takeacopyofyourpolicytonormawilcoxonthethirdfloor clave: Quarkququququarkarkarkquarkquarkquarkquarkquarkquar CipherText: Jukvksippyvsolbfilzmonoeyhgansbwooydnhvdxcrupbioiiii

Para generar cifrado a mano, puede usar una rueda de código o una tabula recta. Este esquema no es seguro ya que la clave se repite. Si se puede determinar la longitud de la clave, el criptanalista puede hacer análisis de frecuencia múltiple (uno para cada valor de cambio en la clave). Los métodos para determinar la longitud de la clave son el método Kaisiski y la prueba de Friedman. Para datos binarios (i.mi., una secuencia de bits) la adición modular base-2 es solo un simple xor. Ejemplo:

Texto de la formación: 011000000101000011110100101010100100000000111111101 Clave: 0000011100000111000001110000011100000111000001110 Cifrente: 0110011001010111111110011101011011001110011001111110011

Vigenère de llave automática

Vigenère en realidad creó un cifrado autokey que es más fuerte porque la clave nunca se repite. En cambio, la “clave” está compuesta por la frase de claves seguida del texto sin formato, como este:

Texto sin formato: takeacopicofyourpolicytonormawilcoxonthethirdfloor clave: quarktakeacopyofyourpolicytonormawilcoxonthethird cifrado: jukvkvozcohmdsfumzctnhzvqpfojwcootwyvvbhubyhyswfu

Ese usó el texto sin formato como parte de la clave. También puedes usar el texto cifrado. Ver cómo?

Cifrados modernos de llave automática

Todavía puede descifrar los cifrados de vigenra autokey por análisis lingüístico, porque la clave contiene texto y, por lo tanto, es probable que tenga letras de alta frecuencia. Los cifrados modernos de llave automática generan los valores de cambio con un generador de números aleatorios. Las semillas clave el generador.

Ejercicio: Implemente un cifrado autokey en el lenguaje de programación de su elección.

Cojín de una sola vez

  • es tan largo o más largo que el mensaje encriptado
  • se genera al azar
  • se usa una vez y solo una vez

Ejercicio: ¿Por qué no se usan las almohadillas únicas comúnmente, entonces, dado que son los cifrados más seguros posibles??

Juega limpio

Éste es un ejemplo de un . Reemplaza pares de personajes. La clave es una permutación de , Por ejemplo:

Z C B M L G D A Q E T U O K H F S X V N P I Y R W
  • Sea $ (a, b) $ la fila y la columna del primer carácter y $ (c, d) $ ser la fila y la columna del segundo.
  • Si $ a \ neq c $ y $ b \ neq d $ entonces devolver $ (a, d) (b, c) $.
  • Si $ a = c $ entonces devuelve $ (a, (b+1) \ bmod 5) (c, (d+1) \ bmod 5) $.
  • Si $ b = d $ entonces devuelve $ ((a+1) \ bmod 5, b) ((c+1) \ bmod 5, d) $.
Luego ataque desde el este ⇒ th en en Xt ac kf ro mt he xe como tx ⇒ ut hw para db tv yk zk nh na dx de ⇒ thwgofodbtvykzknnadxof

El descifrado ejecuta las reglas en reversa. El cifra de playfair es bastante inseguro.

  Le Martien .torrent

Firme

Cifra dígrafos como PlayFair, pero un poco más fuerte porque permite letras dobles y no produce dígrafos de texto cifrado invertido para dígrafos de texto sin formato invertido. Ejemplo

a b c d e g i v e m f g h i k l b r t y l m n o p o d a h c q r s t u f k n p q v w x y z s u w x z p r e m a a b c d e t u o i z f g h i k n s h f l m n o p v b c d g q r s t u k q w x y v w x y z
Luego ataque desde el este ⇒ then at ta ck fr om th ee como tx ⇒ ni vl ev fm mo bv df ni ma vv nx ⇒ Uthwgofodbtbykzknnadxof

Bien, tan un poco más fuerte que Playfair pero que? Las computadoras pueden descifrar estas cosas en segundos, o tal vez minutos (dado suficiente texto cifrado).

Transposición de bloque simple

El cifrado de transposición más simple divide el mensaje en bloques de tamaño $ n $, luego revuelve cada bloque de acuerdo con una permutación de $ (1..n) $. Por ejemplo, si nuestra clave es de $ (4,1,6,3,2,5) $, el mensaje GetThathealthinspector está encriptado como TGatehattehlsheniprcot .

Transposición columna

Escriba la fila del mensaje por fila en una cuadrícula, luego léelo en columnas. Totalmente inseguro. La clave es solo la cantidad de filas. Adivínalo.

Valla

La cerca del riel no es mejor que la anterior, solo Funkier. La clave es la cantidad de rieles en los que escribe el texto sin formato de manera hacia arriba y hacia abajo, generando el texto cifrado leyendo un ferrocarril a la vez. Ejemplo: para encriptar “Complete y presente un formulario WS2475” en 4 rieles:

f t l 4 m i u a i e 2 7 r l o n f a s 5 o l d w f

Luego lees el texto cifrado “ftl4miuaie27rlonfas5oldwf” . Esto es trivial para romperse. Solo adivina $ k $.

Combinando sustitución y transposición

La transposición sola es muy débil; La sustitución por sí sola es muy débil; Combinarlos es mejor. Puede mezclar muchos de los cifrados de sustitución clásicos con varias transposiciones, o usar algunos cifrados de combinación especial como Bifid. Además, la mayoría de las famosas máquinas de rotor y los cifrados modernos usan esta combinación; de hecho aplican estas transformaciones muchas veces.

Bífido

Este sustituye las letras con sus coordenadas en una cuadrícula y hace una transposición columnar en las coordenadas. Ejemplo:

Z C B M L G D A Q E T U O K H F S X V N P I Y R W

Escriba las coordenadas (fila, columna) bajo cada letra del texto sin formato (e.gramo., “A” está en la fila 1, columna 2; “T” está en la fila 2, columna 0, etc.)

AttatchatDawn 122102121143 200213201244

Luego lea en filas, agrupe por dos y busque las letras de texto cifrado:

122102121143200213201244 a u b a d r t b q t a w

Triñador

Como bifid, pero en un cubo. Ejemplo:

Z C B M L F V N P G D A Q E X I R W T U O K H S Y . J

Para cifrar, primero escriba las coordenadas:

AttatchatDawn 000001000022 122102121110 200210201221
0000010000222122102121110200210201221 z c z o s f h q v i n .

Enigma

  • Ninguna carta se encripería a sí misma
  • La auto-reciprocidad significaba que había menos posibilidades de configuración de Scrambler
  • Fue realmente fácil encontrar cunas. La mayoría de los mensajes comenzaron con un informe meteorológico.
  • Al principio, las teclas de mensaje aparecieron dos veces en sucesión.

Métodos criptográficos modernos

  • Operar en cadenas de bits, no cadenas de personajes
  • Tienen cuidado de enmascarar por completo los patrones y redundancias en el texto sin formato
  • Usar aleatorio claves (que también se pueden reutilizar)
  • Asegúrese de que los cambios muy ligeros en el texto sin formato afecten una gran parte del texto cifrado (y viceversa). Esto se llama el Efecto de avalancha.
  • Eficiente
  • Tolerante a fallos
  • BCE – Libro de códigos electrónicos
  • CBC – Camisco de bloques de cifrado
  • CFB – Comentarios de cifrado
  • OFB – Comentarios de salida
  • CTR – contador
  • BC – Bloque de bloqueo
  • PCBC: propagando el encadenamiento del bloque de cifrado
  • CBCC – Caminaje de bloques de cifrado con suma de verificación

Desesperación

IDEA

RC4

RC6

Pescado

Dos peces

AES

En Wikipedia AES es el nuevo estándar, reemplazando DES. Fue el ganador de la competencia (en 2001), donde se presentó bajo el nombre de Rijndael, superando a RC6, Serpent, Marte y Twofish.

Intercambio de llaves

diffiehelman.png

Diffie e Hellman (los ganadores del Premio Turing 2015) y su amigo Merkle mostraron en 1976 que era posible que dos personas intercambiaran una clave secreta sin tener que reunirse en secreto:

  • Alice elige un Prime $ n $ y lo envía en el claro a Bob
  • Alice elige una raíz primitiva mod $ n $ (cómo encontrar), llamado $ g $ y lo envía en claro a Bob
  • Alice elige un entero secreto $ a $, y envía $ g^a \ bmod n $ en el claro a Bob
  • Bob elige un entero secreto $ B $, y envía $ G^b \ bmod n $ en el claro a Alice
  • Alice COMPUTS ($ G^B \ BMOD N)^A \ BMOD N $ y BOB COMPUTES ($ G^A \ BMOD N)^B \ BMOD N $. Esta es la clave! (Es $ g^ \ bmod n $)

Esto probablemente sea seguro, siempre que $ n $ sea muy grande y $ \ frac $ también es primo, porque aunque Eve sabe $ g $, $ n $, $ g^a \ bmod n $ y $ g^b \ bmod n $, hay No se conoce una forma eficiente conocida para obtener $ a $ o $ b $ de estos. Ese es el problema de logaritmo discreto, recuerde? Ejemplo con pequeño $ n $:

  • Alice elige $ N = 208799 $ y $ G = 13 $ y los envía a Bob
  • Alice elige $ A = 152335 $ y Bob elige $ B = 98113 $
  • Alice envía a Bob $ 13^ \ bmod 208799 = 73033 $
  • Bob envía a Alice $ 13^ \ bmod 208799 = 147540 $
  • Alice calcula $ 147540^ \ bmod 208799 = 8435 $
  • Bob calcula $ 73033^ \ bmod 208799 = 8435 $
  • La clave secreta es $ 8435 $.

En realidad no hagas esto con valores pequeños de $ n $. En general, a menos que obtenga algún tipo de certificación, no intente asegurar ningún sistema de mundo real por su cuenta. Pero, por supuesto, continúe y aprenda los algoritmos y practique la codificación por ahora.

Criptografía de clave pública

Los cifrados de clave pública resuelven la pesadilla de gestión clave de los cifrados de clave secreta, a costa de la velocidad. En un grupo de $ N $ personas, uno solo necesita $ N $ Public Keys y $ N $ Private Keys.

Criptosistema de RSA

  • Genera dos primos grandes, $ P $ y $ Q $.
  • Elige un valor $ e $ relativamente primo a $ (P-1) (Q-1) $.
  • Publica su clave pública $ (n, e) $ donde $ n = pq $.
  • Calcula $ d $ = inverso modular de $ e $ en relación con $ (p-1) (q-1) $, manteniéndolo en secreto.
  • Destruye $ P $ y $ Q $.
  • Para que Alice envíe un mensaje $ M $ a Bob, ella envía $ C = M^e \ bmod n $.
  • Bob descifra esto fácilmente porque $ M = C^d \ bmod n $.

Ejercicio: Investigue las matemáticas detrás de RSA. ¿Por qué funciona?? Su respuesta utilizará los teoremas subyacentes a la función total de Euler; Asegúrese de mostrar cómo se reduce a $ (P-1) (Q-1) $ cuando $ PQ $ es Prime, entre otras cosas.

  Sites de téléchargement de films de pirate

Ejercicio: Diffie-Hellman (DH) a veces se considera parte de la criptografía de clave pública, a pesar de que trata con el intercambio de claves y no es en sí mismo un algoritmo de cifrado. ¿Por qué, entonces, algunas personas lo consideran clave pública?? (La respuesta a esto requiere algo de investigación.)

Para un ejemplo trivial, solo para que pueda ver las matemáticas en acción, hagamos un RSA con claves de 32 bits:

Este ejemplo es solo para ilustración. Nunca implementa tu propio algoritmo criptográfico. También asegúrese de comprender cuán horrible es la criptografía pública con las teclas tan pequeñas. Las claves reales deben tener miles de bits.

Primero generamos dos primos de 16 bits aleatorios (16 porque ese es la mitad del tamaño clave, que es 32): $ \ begin P = 36469 \\ Q = 50929 \ End$ Genere una prima de 16 bits para el exponente en cifrado (o simplemente use 65537): $ e = 65537 $ ahora: $ \ begin n = pq = 1857329701 \\ d = \ mathsf (e, (p-1) (q-1)) = 39569516a9 \\ \ end$ Vamos a cifrar la cadena ¿Dónde está ud.? . Aquí está en UTF-8:

C2 BF 44 C3 B3 6E 64 65 20 65 73 74 C3 A1 20 75 64 2E 3F

Queremos dividir nuestro mensaje en bloques. El tamaño de bloque recomendado es $ \ lfloor \ frac \ rfloor $. Como estamos haciendo RSA-32 (claves de 32 bits), queremos $ \ lfloor \ frac \ rfloor $, o 3. Así que agrupemos nuestros bytes en bloques de tres:

C2BF44 C3B36E 646520 657374 C3A120 75642E 3F0202

El 02 02 al final es PKCS#7 Rotding para que el mensaje sea un múltiplo de 3 bytes. En decimal, nuestros bloques son 12762948, 12825454, 6579488, 6648692, 12820768, 7693358, 4129282. Ahora aplicemos la función Cifry a cada :: $ 12762948^ \ bmod 1857329701 = 1674934738 $
$ 12825454^ \ bmod 1857329701 = 920121142 $
$ 6579488^ \ bmod 1857329701 = 703310795 $
$ 6648692^ \ ​​bmod 1857329701 = 1740932196 $
$ 12820768^ \ BMOD 1857329701 = 512101030 $
$ 7693358^ \ bmod 1857329701 = 1327283085 $
$ 4129282^ \ bmod 1857329701 = 1468977038 $
Ese es el texto cifrado en decimal, a saber, 1674934738, 920121142, 7033310795, 1740932196, 512101030, 1327283085, 14689777038 para descifrar: $ 1674934738^ \ bmod 1857329701 = 127629
$ 920121142^ \ bmod 1857329701 = 12825454 $
$ 703310795^ \ bmod 1857329701 = 6579488 $
$ 1740932196^ \ bmod 1857329701 = 6648692 $
$ 512101030^ \ bmod 1857329701 = 12820768 $
$ 1327283085^ \ bmod 1857329701 = 7693358 $
$ 1468977038^ \ bmod 1857329701 = 4129282 $
Recuperamos el mensaje original! Por diversión, vea cómo se generó el ejemplo anterior.

Dado que el cifrado simétrico es mucho más rápido, primero puede generar una clave secreta y transmitirla a través de una línea asegurada por criptografía de clave pública. Ahora toda la comunicación futura puede usar la clave secreta.

Ejercicio: ¿Por qué sería un error usar un tamaño de bloque de 4 bytes en el ejemplo anterior??

Hashing criptográfico

  • Encuentra un mensaje que lo hagas a un valor dado ()
  • Encuentra dos mensajes que hash al mismo valor ()

Matemáticamente, una función hash criptográfica $ H $ produce un hash a partir de un mensaje, $ h (m) = c $, de modo que $ m $ no puede determinarse de manera eficiente desde $ c $, y no se puede encontrar eficientemente $ m_1 \ neq m_2 $ tal que $ h (m_1) = h (m_2) $,

Por lo general, el cambio de un solo bit en el mensaje hará que el resumen se vea completamente y totalmente diferente.

$ Cat Will Esta es mi voluntad. Dejo 1000 dólares a Alice y todo lo demás a Bob. Firmado, Eva. $ MD5SUM C18FEB890752C9E680C99D1E909FD761 Will $ sed "S/1/9/G" Will> $ Cat Will Esta es mi voluntad. Dejo 9000 dólares a Alice y todo lo demás a Bob. Firmado, Eva. $ MD5SUM 85570BC2D0458B1F98F484261DEE7D4D Will

Un hash seguro proporciona una forma de determinar si un mensaje fue manipulado con. Ver la guía ilustrada de Steve Friedl para los hashes criptpgraphic.

Códigos de autenticación de mensajes

Estos son similares a los hashes criptográficos, excepto que usan una clave secreta, mientras que los hashes solo usan el mensaje en sí. $ \ Mathit(m, k) = c $

  • MacS VS. Hashes en Stackoverflow
  • Firmas digitales en Wikpedia
  • Macs en Wikipedia

Firmas digitales

¿Cómo puede Bob estar seguro de que el mensaje vino de Alice y no de alguien más?? Por Alice firma él; así es como. En la práctica, uno generalmente firma un hash, no todo el mensaje .

RSA para firmas digitales

Para que Alice le envíe un mensaje a Bob,

  • Alice encripta M con su llave privada
  • Alice encripta con la clave pública de Bob
  • Bob se descifra con su llave privada
  • Bob se descifra con la clave pública de Alice

DSA

Criptoanálisis

  • Análisis de frecuencia
  • Ataque conocido de texto sin formato
  • Ataque conocido de texto cifrado
  • Ataque de texto sin formato elegido
  • Ataque clave elegido
  • Criptoanálisis lineal
  • Criptoanálisis diferencial
  • Robo
  • Soborno
  • Chantaje

Ejercicio: Hacer un autoestudio sobre el criptoanálisis o encontrar un curso en línea divertido.

Ejemplos de programación

Je, no vamos a mostrar cómo rodar tu o propia criptografía. Vamos a ver algunas bibliotecas exitantes reales.

¿Está transmitiendo datos a través de una red IP??

Para otras partes de su aplicación que necesitan cifrado, lea.

Ejemplos de JavaScript

Módulo incorporado: Node Crypto .

Ejemplos de Python

Ejemplos de Java

Referencia: Java Cryptography Architecture (JCA)

Las mejores prácticas de seguridad para Crytpo

  • NUNCA NUNCA NUNCA NUNCA NUNCA NUNCA TRAVADO TU PROPIO
  • Use una biblioteca bien probada que esté actualizada, considerada por expertos y se considere segura por ahora
  • No use un algoritmo que se haya agrietado
  • No use un algoritmo que teóricamente se pueda agrietarse
  • No use un algoritmo que tenga una falla explotable
  • Use el tipo correcto de algoritmo para sus necesidades, e.gramo., El hash de contraseña debe ser lento, así que usa algo como bcrypt.
  • Use tamaños de llave que sean lo suficientemente largos
  • Si almacena contraseña de hash, use siempre sal
  • Utiliza vectores de inicialización y nonces en lugar de ignorarlos
  • Sea humilde: probablemente no seas un experto en este

Resumen

  • Antecedentes y definiciones
  • Tipos de cifrados
  • Diferencia entre la clave secreta y la criptografía de clave pública
  • Intercambio de llaves
  • Las firmas de hash y digital
  • Cyrptanalysis
  • Ejemplos de programación