CRIPTOGRAFÍA
PLACAS 02 CRIPTOGRAFIA CLASICA
������ ���������������
�
DESARROLLO Módu Módulo lo I – Crip Criptog togra rafía fía clá clási sica ca
Definición, objetivos y fundamentos de criptología. Introducción a los criptosistemas. Definiciones. Necesidades. Seguridad teórica y práctica. Criptografía por software y por hardware. Ataques criptográficos. Clasificación general de sistemas criptográficos. Principios de Kerckhoff. Procedimientos clásicos de cifrado: métodos históricos históricos (escítala (escítala espartana, espartana, etc.). Primalid Primalidad, ad, aritmética aritmética modular (Zn, Z*n) y funciones numéricas elementales (MCD, mcm). Clave de Julio César. Métodos generales de transposición y sustitución. Cifrador afín. Cifrador de Hill. Claves poli poliaalfabé bétticas (Vi (Vigenère). Otr Otros os método todoss especiales (Playfair, Autokey, etc.). Criptoanálisis elemental: ataque estadístico. Método de Kasiski. Índice de coincidencia e Índice de coincidencia mutuo. ������ ��������������� �
CRIPTOGRAFIA HISTÓRICA -1 THE CODE CODEBRE BREAKE AKERS RS David David Kahn Kahn Scr Scribne ibnerr Rev Rev.Ed. .Ed. (196 (1966) 6)
EGIPTO (1900 AC) • Jer Jerogl oglífi íficos cos esp especi eciale aless MESOPOTAMIA (asirios-babilonios) • Co Colo lofo fones nes cune cuneififor orme mess ASIA (India) • Cl Clav avee de su sust stitituc ució iónn GRECIA GRECIA (Esparta (Esparta-500A -500AC)–c C)–cript riptograf ografía ía militar militar • Es Escí cíta tala la (1 (1er er ap apar arat atoo cri cript ptog ográ ráfifico co)) α β
χ
δ
ε
������ ���������������
�
CRIPTOGRAFIA HISTÓRICA -2 THE CODE CODEBRE BREAKE AKERS RS David David Kahn Kahn Scr Scribne ibnerr Re Rev.E v.Ed. d. (1966) (1966) GREC GRECIA IA (Ae (Aenea neass el táct táctic ico) o) • Esteganografía – x agujeros en Astrágalos como clave GRECIA (Polybius) • Cl Clave ave de sust sustitituci ución ón matr matrici icial al ROMA (Julio César) • Cl Clave ave de de sustit sustituci ución ón modu modular lar ROT(3) ITA IT ALI LIA A (S (Simeo imeone ne de Crem Cremaa – 1401 1401)) • Pr Prim imer er clave clave de de sustit sustituci ución ón homofónica ������ ���������������
�
CRIPTOGRAFIA HISTÓRICA -3 THE CODE CODEBRE BREAKE AKERS RS David David Kahn Kahn Scr Scribne ibnerr Re Rev.E v.Ed. d. (1966) (1966) • Leon Battista Alberti (S (Siglo XV XV)- Primer clavee de susti clav sustituci tución ón polial polialfabét fabética ica por “hardware “har dware”” (2 disc discos os concé concéntri ntricos) cos) ITALIA (Florencia –1550) • Primer Nomencador conocido ITALIA (Sforza-Medici) FRANCIA-ALEMANIAESPAÑA ESPAÑA-ING -INGLATE LATERRA RRA – Siglo Siglo XVI XVI y siguientes • Nac acen en los los cr cript ptoa oana nallist stas as pr prof ofes esiion onal ales es • Fl Flor orec ecen en las las cl clav aves es de sus sustititu tuci ción ón mono mono y polialfabéticas, poligráficas poligráficas,, de permutación y nomencladores de toda clase ������ ���������������
�
CRIPTOGRAFIA HISTÓRICA -4 THE CODE CODEBRE BREAKE AKERS RS David David Kahn Kahn Scr Scribne ibnerr Rev Rev.Ed. .Ed. (196 (1966) 6) ALEM ALEMAN ANIA IA (Ab (Abad ad Joha Johann nnes es Trit Trithe hemi mius us –151 –1518) 8) • Pri rime merr Lib Libro ro so sobr bree Cri Cript ptol olog ogía ía (l (lat atín ín)) (“P (“ Pol olyg ygra raph phia iaee Li Libr brii Sex ex”) ”) • Cl Clav avee AVE AVE MAR MARIA IA po polilial alfa fabét bétic icaa ITALIA (Cardano – 1550 Vigenére - 1570) • Cl Clave ave aut auto-r o-retr etroal oalime imenta ntada da (a (auto utokey key)) • Vi Vigen genére ére:: clave clave susti sustituc tución ión pol polial ialfab fabéti ética ca EUROPA (Siglos XVII-XVIII-XIX) • “Gab abiine nete tess Os Oscu curros os”” (Viét éte, e, von Mar arni nix, x,.. ..)) • Se con consol solida ida la cr cript iptogr ografí afíaa clás clásic icaa ������ ���������������
�
CRIPTOGRAFIA HISTÓRICA -5 THE CODE CODEBRE BREAKE AKERS RS David David Kahn Kahn Scr Scribne ibnerr Rev Rev.Ed. .Ed. (196 (1966) 6)
EUROPA-EEUU (XIX) • Beauf Beaufor ort: t: cl clav avee matr matric icia iall (ti (tipo po Pol Polyb ybiu ius) s) • Kas Kasiski iski:: cript criptoaná oanális lisis is cie cientí ntífic fico: o: mód módulo uloss y ata ataque quess estadísticos (etaoin) • Bab abba bage ge:: cri cript ptol olog ogía ía co com mpu puttac acio iona nall
SIGLO XX • Alan Turi ring ng (19 19441/2)- Códi diggo Enigma • 197 1976: 6: Nac Nacee la la cript criptogr ografí afíaa asim asimétr étrica ica y de de clave clave púb públic licaa (Diffie-Hellman)(Pohlig-Hellman) (Hellman-Merkle) • 19 1977 77:: DE DES-5 -566 st stan anda dard rd NI NIS ST (Fe (Feiist stel el)) • 19 1978 78:: RSA RSA (“ (“pl plag agio io par parci cial al”” de Poh Pohliligg-He Hellllma man) n)
������ ���������������
�
CRIPTOSISTEMAS (SHANNON)
sustituir
permutar
������ ���������������
�
PRINCIPIOS DE KERCHOFF (1883) LOS CRIPTOSISTEMAS DEBEN SER:
1. Inquebrables en la práctica, si no lo fuesen teóricamente. 2. La dif difus usió ión n del del mé méto todo do no de debe be afe afect ctar ar a lo los s corresponsales. 3. La clave de debe ser memorizable y fácilmente cambiable. 4. El ci cifr frad ado o deb debe e ser ser te tele legr graf afia iabl ble. e. 5. El eq equi uipo po en encr crip ipto torr de debe be se serr por portá táti till y op oper erab able le po porr una un a sóla sóla pe pers rson ona. a. 6. El si sist stema ema de debe be se serr si simp mple, le, si sin n re requ quer erir ir memorización de muchas reglas ni generar esfuerzo mental. ������ ���������������
��
CRIPTOSISTEMA - 1 Un criptosist ema es una quintupla ( P, C , K , E , D) tal que 1) P es el conjunto de los posibles textos planos 2) C es el conjunto de los posibles textos cifrados 3) K , el espacio de claves es un conjunto finito 4) ∀ k ∈ K ∃ una regla de encripción ek ∈ E y una correspondiente regla de desencripción d k ∈ D tales que cada ek : P → C y d k : C → P son funciones biunívocas / d k (ek ( x)) = x ∀ x ∈ P
������ ���������������
��
CRIPTOSISTEMA - 2 Sea A = {a1 ,..., aq } el alfabeto a utilizar. Por ejemplo, A = {0,1}, A = ASCII , A = alfabeto español Sea x = x1... xn , n ≥ 1, un mensaje a transmitir. El emisor calcula yi = ek ( xi ), 1 ≤ i ≤ n resultando y = y1... yn El receptor recupera el mensaje mediante xi = d k ( yi ), 1 ≤ i ≤ n ������ ���������������
��
CRIPTOSISTEMA - 3 El conjunto P de los posibles textos planos consiste entonces de cadenas de símbolos del alfabeto A. Cada elemento k ∈ K determina unívocamente una biyección de P a C denotada por ek , que es llamada una función de encripción La correspondiente función inversa se denota entonces por d k
������ ���������������
��
METODOS SIMETRICOS Definición : consideremos un esquema de encripción consistente de {ek : k ∈ K } y {d k : k ∈ K }. Diremos que es simétrico si para cada par asociado (e, d ) es posible, dado uno de ellos, computar el otro Usualmente e = d , pero podría usarse cualquier función conocida biunívoca tal que d = f (e) Por ejemplo d = [3.1459 log(e)] + 1
������ ���������������
��
ENCRIPTORES DE SUSTITUCION SIMPLE Ejemplo: sea A = {A,B,...,Z}el alfabetoespañolcompuestode las letras mayúsculasúnicamente P y C = {cadenade longitud5 sobre A}.
Tomemoscomofunciónde encripcióna una permutación de A. Paraencriptarun mensajese lo particionaen gruposde 5 letrasy se le aplicala permutación a cada uno
������ ���������������
��
ENCRIPTORES DE SUSTITUCION SIMPLE Un caso caso particular particular es es la encripción encripción de Julio Julio César donde se le asigna a cada letra la que figura 3 lugares adelante en forma modular ( o sea módulo 27 que es la cantidad de letras del alfabeto) Ejemplo: ABCDEFGHIJKLMNÑOPQRSTUVWXY Z DEFGHIJKLMNÑOPQRSTUVWXYZAB C añorar dqrudu ������ ���������������
��
ENCRIPTORES DE SUSTITUCION SIMPLE A = q será el número de elementos del alfabeto, o sea su cardinalidad P = {cadenas de longitud t de elementos de A} K = {permutaciones de A}
Para cada k ∈ K definimos la transformación de encripción la transformación de encripción ek como ek ( M ) = (k ( p1 ),..., k ( pt )) = (c1 ,..., ct ) = C donde M = ( p1 ,..., pt ) es el mensaje a encriptar. O sea, cada símbolo de una t - upla es reemplazado por otro símbolo del alfabeto Ade acuerdo con una permutación FIJA k
������ ���������������
��
ENCRIPTORES DE SUSTITUCION SIMPLE Para desencriptar el mensaje codificadoC = (c1,..., ct ) se calcula la permutación inversa d k = ek −1 y d k (C ) = (d k (c1 ),..., d k (ct )) = ( p1,..., pt ) = M Esto se denomina una substitución SIMPLE o MONOALFABETICA. El número de encriptadores distintos de substitución es q != q.(q − 1)...2.1 y es INDEPENDIENTE del tamaño del mensaje a encriptar. Los encriptadores de substitución sobre mensajes de tamaño pequeño son muy inseguros aunque el espacio de claves es MUY GRANDE.Por ejemplo,en el alfabeto español el número de claves es 27 !≅ 1.09.1028 ≅ 293 , pero la clave puede recuperarse rápidamente examinandouna cantidad relativamente pequeña de texto pues se conservan las frecuencias.
������ ���������������
��
ENCRIPTORES DE SUSTITUCION HOMOFONICA A cada a ∈ A le asociamos un conjunto H (a ) de cadenas de t símbolos, con la restricción de que si a, b ∈ A ⇒ H ( a) ∩ H (b) = ∅ ∀a ≠ b Un método homofónico reeemplaza cada símbolo a con una cadena elegida al azar en H (a). Para desencriptar una cadena C de t símbolos hay que encontrar a ∈ A / C ∈ H (a ). La clave es el conjunto H (a ). Ejemplo : A = (a, b) , H (a) = {00,10}, H (b) = {01,11} El codominio de la función de encripción para mensajes de longitud 2 consiste de los conjuntos disjuntos de cadenas de 4 elementos : aa → {0000,0010,1000,1010} ab → {0001,0011,1001,1011} ba → {0100,0110,1100,1110} bb → {0101,0111,1101,1111} Sirven para " disimular" la frecuencia de los símbolos.
������ ���������������
��
ENCRIPTORES DE CORRIMIENTO (SHIFT CIPHERS) Para describir en general los cifradores de corrimient o (Shift Ciphers) tenemos que repasar los conceptos básicos de la aritmética modular. Definición : sean a , b enteros, y m un entero positivo. Entonces escribirem os a ≡ b mod( m ) si m divide a b − a. Decimos en este caso que a es congruente con b módulo m. Supongamos que dividimos a , b por m, obteniendo a = q1m + r 1 , b = q2 m + r 2 Ver que a ≡ b mod( m ) ⇔ r 1 = r 2 Definición : la aritmética módulo m se define sobre el conjunto Z m = {0,..., m − 1} con las operacione s + y x. Las operacione s son las usuales, pero el resultado se expresa módulo m Ejemplo :11x13 en Z 16 → 11x13 = 143 = 8x16 + 15 → 11x13 módulo 16 = 15 ������ ���������������
��
ENCRIPTORES DE CORRIMIENTO (SHIFT CIPHERS) Estas definicion es de suma y multiplicación en Z m satisfacen la mayoría de las reglas usuales de la aritmética. Ellas son : 1) la suma es cerrada, es decir ∀a, b ∈ Z m ⇒ a + b ∈ Z m 2) la suma es conmutativ a, es decir ∀a, b ∈ Z m ⇒ a + b = b + a 3) la suma es asociativa , o sea que ∀a, b, c ∈ Z m ⇒ (a + b) + c = a + (b + c ) 4) 0 es la identidad para la suma, o sea ∀a ∈ Z m , a + 0 = 0 + a 5) La inversa aditiva de cualquier a ∈ Z m es m − a 6) la multiplicación es cerrada, es decir que ∀a, b ∈ Z m ⇒ ab ∈ Z m 7) la multiplicación es conmutativ a, o sea que ∀a, b ∈ Z m ⇒ ab = ba 8) la multiplicación es asociativa , es decir que ∀a, b, c ∈ Z m ⇒ ( ab)c = a (bc ) 9) 1 es la identidad para la multiplicación, o sea que ∀a ∈ Z m ⇒ 1.a = a.1 10) la multiplicación es distributi va con respecto a la adición, es decir que ∀a, b, c ∈ Z m ⇒ ( a + b)c = ac + bc y a (b + c) = ab + ac 1 + 3 + 4 + 5 ⇒ Z m es un grupo respecto a la suma y por 2 es abeliano ������ ���������������
��
ENCRIPTORES DE CORRIMIENTO (SHIFT CIPHERS) Las propiedades 1 a 10 establecen que Z m es un anillo finito. Como existen inversas aditivas, podemos restar en Z m . Para ello definimos a − b en Z m como a + m − b mod m o, equivalentemente, se puede calcular a − b y luego reducirlo mod m. Ejemplo :11 − 18 en Z 31 se puede calcular como 11 + 31 − 18 = 24 El cifrador de corrimiento : Sea P = C = K = Z m Para 0 ≤ k ≤ m − 1 definimos ek ( x) = x + k mod m y d k ( y ) = y − k mod m Nota : si k = 3 obtenemos el encriptador de Julio César ������ ���������������
��
Veamos un ejemplo en inglés ( m = 26 ) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Texto plano : wewillme etatmidnig ht Este texto escrito numéricame nte según la correspond encia anterior es : 22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19 Si la clave es k = 11, le sumamos ese valor a cada elemento y tomamos mod 26 obteniendo 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 que, en carácteres alfabético s, se escribe HPHTWWXPPE LEXTOYTRSE Para desencript ar se escribe este texto como números, se le resta 11, y se toma mod 26 Basta probar las m claves posibles y se desencript a. Además conserva las frecuencia s. ������ ���������������
��
ENCRIPTORES DE SUSTITUCION Han sido muy usados, la mayor parte de los criptogramas que aparecen en revistas y diarios son de esta clase. Algoritmo: Sea P = C = Z m permutaciones de m K = conjunto de claves consiste de todas las permutaciones Para cada permutación π ∈ K definimos eπ ( x) = π (x) siend siendoo la corr corres espo pond ndie ient ntee dese desenc ncri ripc pció iónn dπ (y) = π −1 ( y) Ejemplo de permutación: a b c d e f g h i j k l m n ñ o p q r s t u v w x y z X Z Y W V U R S T P Q O Ñ M N K I L F E D H G J B A CB Entonces e (a) = X, e (b) = Z, etc Permutando las filas de la tabla anterior y ordenandola en forma alfabética, se obtiene la permutación inversa
������ ���������������
��
ENCRIPTORES AFINES El cifrador de corrimiento (Shift Cipher) es un caso especial del cifrador de substitución que incluye a sólo 27 de las 27! permutaciones. Otro caso especial es el cifrador afín, en el que la función de encripción es afín, o sea e( x) = ax + b mod 27 , con a, b ∈ Z 27 (observar que si a = 1 es un cifrador de corrimiento) Para que sea posible desencriptar es necesario preguntarse cuando una función afín es inyectiva. En otras palabras, ∀ y ∈ Z 27 queremos que la congruencia ax + b ≡ y mod 27 tenga una única solución. Esta congruencia es equivalente a ax ≡ y − b mod 27 como y varía en Z 27 también lo hace y − b. Por lo tanto basta con estudiar la congruencia ax ≡ y mod 27 (con y ∈ Z 27 ). El resultado esencial es que esta congruencia tiene una única solución para todo y si y sólo si MCD(a,27) = 1. ������ ���������������
��
Supongamos por lo contrario que MCD ( a , 27 ) = d > 1 . Entonces la congruenci a ax ≡ 0 mod 27 tiene al menos dos soluciones distintas en Z 27 , x = 0 y x = 27 / d En ese caso la función e ( x ) = ax + b mod 27 no es inyectiva y por lo tanto no puede usarse como función de encripción . Supongamos ahora que MCD ( a , 27 ) = 1 y que para algún par x1 , x 2 se verifica ax1 ≡ ax 2 mod 27, ⇒ a ( x1 − x 2 ) ≡ 0 mod 27 ⇒ 27 / a ( x1 − x 2 ) Usamos ahora una propiedad de la división : si MCD ( a , b ) = 1 y a / bc ⇒ a / c Como 27 / a ( x1 − x 2 ) y MCD ( a , 27 ) = 1 ⇒ 27 /( x1 − x 2 ) ⇒ x1 ≡ x 2 mod 27 Por lo tanto hemos probado que si MCD ( a , 27 ) = 1, entonces una congruenci a de la forma ax ≡ y mod 27 tiene a lo sumo una solución en Z 27 . O sea que si x varía sobre Z 27 entonces ax mod 27 toma 27 valores distintos mod 27, lo que significa que toma cada valor exactament e una vez y eso conduce a que la congruenci a ax ≡ b mod 27 tiene una única solución para y ∈ Z 27 . ������ ���������������
��
ENCRIPTORES AFINES Por supuesto que el número 27 no tiene nada de particular. En general : Teorema : la congruencia ax ≡ b mod m tiene una única solución x ∈ Z m para todo b ∈ Z m si y sólo si MCD(a, m) = 1. Para calcular el número de claves necesitamos otro resultado de la teoría de números : Definición : Sean a ≥ 1 y m ≥ 2 enteros. Si MCD(a, m) = 1 diremos que a y m son primos relativos. El número de enteros en Z m = {0,..., m - 1} que son primos relativos con m se denota por φ (m) (llamada la función de Euler o totient function en inglés)
������ ���������������
��
n
Teorema : sea m = ∐ piei la descomposi ción en factores primos de m, donde 1
los pi son primos distintos y ei > 0, 1 ≤ i ≤ n. Entonces n
e
e −1
φ ( m) = ∐ ( pi i − pi i ) 1
De esta expresión se deduce que el número de claves distintas en el cifrador afín es mφ (m) dado que la cantidad de posibilidades para b es m y para a es φ ( m) debido a que la función debe ser inyectiva. Dijimos hasta ahora que para desencriptar y necesitamos encontrar la solución de y ≡ ax + b mod 27, y dimos las condiciones para que esto sea factible pero no dijimos como calcular x . Para ello necesitamos : Definición : sea a ∈ Z m . La inversa multiplicativa de a es un elemento a.1 tal que a.a −1 ≡ a −1.a ≡ 1 mod m Usando argumentos similares puede probarse que a tiene una inversa multiplicativa mod m si y sólo si MCD(a, m) = 1, y si existe es única. ������ ���������������
��
ENCRIPTORES AFINES Si p es primo, entonces todo elemento no nulo de Z m tiene una inversa multiplica tiva (un anillo en el que esto se cumple se llama un cuerpo) Más adelante se verá un algoritmo muy eficaz para calcular inversas multiplica tivas. Mientras tanto, para el caso simple de m = 27, se puede resolver por ensayo y error. Ejemplo : encontrar las inversas multiplica tivas (si existen) de a = 13, 7, 17, 3 Tenemos entonces el algoritmo del cifrador afín : P = C = Z 27 y sea K = {( a, b) ∈ Z 27 x Z 27 / MCD ( a,27 ) = 1} Para K = (a, b) ∈ K definimos e K ( x ) = ax + b mod 27 y 1 d K ( y ) = a − ( y − b ) mod 27
������ ���������������
��
ENCRIPTORES AFINES Ejemplo : sea K = (25,3) ⇒ la función de encripción es eK ( x) = 25 x + 3 La inversa multiplicativa de a = 25 es a −1 = 13 en Z 27 así que d K ( y ) = 13( y − 3) = 13 y − 12 (en Z 27 ) Verifiquemos : d K (eK ( x)) = 13eK ( x) − 12 = 13(25 x + 3) − 12 = x (en Z 27 )
������ ���������������
��
ENCRIPTORES DE SUSTITUCION POLIALFABETICA (VIGENERE) Vimosque en los cifradoresde corrimiento y en los de substitución, cada elementodel alfabetoes transformado a un único carácter,y por eso estos métodosse llaman MONOALFABETICOS. Veremosahora un métodoque no es de esta clase, debido a Blaise de Vigénere(siglo XVI).La idea es que cada clavese asocia con una cadena de m carácteres. Veamos un ejemplo en inglés : Sea m = 6 y la clave K = CIPHER = (2,8,15,7,4,17) y el texto plano thiscryptosystemisnotsecure Escribimosel texto numéricamente 19 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 ----------------------------------------------------------2115 23 25 6 8 0 23 8 21 2215 20 1 1919 12 9 15 22 8 25 8 19 20 17 4 2 8 15 -------22 25 19 VPXZGIAXIVWPUBTTMJPWIZITWZT ������ ���������������
��
ENCRIPTORES DE FLUJO En los métodos que vimos hasta ahora los carácteres sucesivos del texto plano se encriptaban usando la misma clave, o sea y = y1 y 2 ... = ek ( x1 )ek ( x 2 )... Son los llamados cifradores de bloques Un enfoque alternativo es el de los cifradores de flujo, donde la idea básica es la de generar una sucesión de claves k = k 1k 2 ... de modo tal que y = y1 y 2 ... = ek 1 ( x1 )e k 2 ( x 2 )...
Un cifrador de flujos opera del siguiente modo : sea x = x1 x 2 ... el texto plano y k ∈ K la clave. Sea f i una función que genera k i mediante la clave k y los primeros i − 1 elementos del texto plano, o sea k i = f i ( k , x1 ,..., xi −1 )
������ ���������������
��