13 - Criptografía

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Matemáticas Discretas II

Criptografía
2020-1
https://twitter.com/NSACareers/status/463321993878994945
Criptografía

La criptografía se ocupa de las técnicas de cifrado destinadas a


alterar las representaciones lingüísticas de ciertos mensajes
con el fin de hacerlos ininteligibles a receptores no
autorizados
Uno de los usos más antiguos conocidos de la criptografía fue
el realizado por Julio César. Hizo mensajes secretos
desplazando cada letra tres letras hacia adelante en el alfabeto.
Por ejemplo: letra B se envía E y letra X se envía A+
El proceso de recuperación del texto original del texto
cifrado, sin el conocimiento del método de cifrado y la clave,
se conoce como criptoanálisis o códigos de rotura (breaking
codes)
En general, es un proceso difícil, especialmente cuando el
método de cifrado es desconocido
If he had anything
confidential to say, he
wrote it in cipher, that is,
by so changing the order
of the letters of the
alphabet, that not a word
could be made out. Li kh kdg dqbwklqj
frqilghqwldo wr vdb, kh
zurwh lw lq flskhu, wkdw
lv, eb vr fkdqjlqj wkh
rughu ri wkh ohwwhuv ri
wkh doskdehw, wkdw
qrw d zrug frxog eh pdgh
rxw.
Cifrado Cesar

• Para expresar el proceso de cifrado de César


matemáticamente, se sustituye primero cada letra por
un elemento de ℤ26 (en español ℤ27 ), es decir, un
número entero de 0 a 25 (igual a uno menos su
posición en el alfabeto). Por ejemplo: el método de
cifrado remplaza A por 0, K por 10, y Z por 25
• La encriptación de César puede ser representada por la
función que asigna al número entero no negativo
 , el número entero del conjunto
con
• Así, la letra representada por se remplaza por la letra
representada por
Cifrado Cesar

Si se sabe el mensaje de texto cifrado y que fue producido


por cifrado de desplazamiento, se puede tratar de recuperar
el mensaje al cambiar todos los caracteres del texto cifrado
por cada uno de los 26 posibles cambios (incluyendo un
cambio de cero caracteres)

La principal herramienta para realizar el procedimiento de


código de cambio es el recuento de la frecuencia de las letras
en el texto cifrado

Las nueve letras más comunes en texto Inglés y sus


frecuencias relativas aproximadas son E 13%, T 9%, A 8%, O
8%, I 7%, N 7%, S 7%, H 6%, y R 6%
Distribución de frecuencias de letras en español

E - 16,78% R - 4,94% Y - 1,54% J - 0,30%

A - 11,96% U - 4,80% Q - 1,53% Ñ - 0,29%

O - 8,69% I - 4,15% B - 0,92% Z - 0,15%

L - 8,37% T - 3,31% H - 0,89% X - 0,06%

S - 7,88% C - 2,92% G - 0,73% K - 0,00%

N - 7,01% P - 2,77% F - 0,52% W - 0,00%

D - 6,87% M - 2,12% V - 0,39%


Cifrado Cesar

• Para criptoanalizar el texto cifrado producido


usando un cifrado de desplazamiento:
• Se encuentra las frecuencias relativas de las letras en el
texto cifrado. La hipótesis de que la letra más común en el
texto cifrado se produce mediante la encriptación de E.
Entonces, se determina el valor del cambio bajo esta
hipótesis, digamos
• Si el mensaje producido desplazando el texto cifrado por –
tiene sentido, se dice que la hipótesis es correcta y que se
tiene el valor correcto de
• Si no tiene sentido, se considerar la hipótesis de que la letra
más común en el texto cifrado que siga. Así se continua con
el proceso de la letra más común a menos común
Cifrado Cesar

ZNK KGXRE HOXJ MKZY ZNK CUXS

• La letra con más frecuencia es K.


• Se sustituye por E:
• , todo se desplaza –

THE EARLY BIRD GETS THE WORM

• El mensaje tiene sentido, es correcto


Cifrado afín

Se puede generalizar el método criptográfico de


desplazamiento usando la siguiente función de cifrado:
𝑓 𝑝 = 𝑎𝑝 + 𝑏 (mod 𝑚); 𝑎, 𝑏 ∈ ℤ
La función de descifrado será la función biyectiva de la
función anterior, lo cual ocurre si y solo si
mcd(𝑎, 𝑚) = 1
𝑔 𝑐 = 𝑎−1 𝑐 − 𝑏 (mod 𝑚); 𝑎, 𝑏 ∈ ℤ
Tal asignación se llama transformación afín y el
resultando de cifrado se llama cifrado afín
𝑐 ≡ 𝑎𝑝 + 𝑏 mod 𝑚 → mcd 𝑎, 𝑚 = 1
𝑎−1 𝑐 − 𝑏 ≡ 𝑎−1 𝑎𝑝 mod 𝑚 → 𝑎𝑎−1 ≡ 1 mod 𝑚
𝑝 ≡ 𝑎−1 𝑐 − 𝑏 (mod 𝑚)
Cifrado afín

¿Cuál es la función de descifrado de acuerdo a la función


de cifrado 𝑓(𝑝) = (7𝑝 + 3) (mod 26)?
Cifrados mono-alfabéticos

Los sistemas que proceden sustituyendo cada letra


del alfabeto por otra letra del alfabeto. Debido a
esto, estos cifrados se llaman carácter o sistemas de
cifrado mono-alfabéticos
Los métodos de cifrado de este tipo son vulnerables a
ataques basados en el análisis de la frecuencia de letra en el
texto cifrado.

Se puede hacer más difícil de atacar con texto cifrado


mediante la sustitución de bloques de letras con
otros bloques de letras, en vez de sustituir caracteres
de manera individual. Esto se llama cifrado de bloque
Cifrado por transposición

Un tipo simple de cifrado de bloque se llama cifrado por


transposición.

Como clave se utiliza una permutación 𝜎 del conjunto


{1, 2, … , 𝑚} para algún entero positivo 𝑚, es decir, una
función de uno-a-uno de {1, 2, … , 𝑚} para sí mismo.

Para cifrar un mensaje se divide las letras en bloques de


tamaño 𝑚. Si el número de letras en el mensaje no es
divisible por 𝑚 añadimos algunas letras al azar al final
para completar el bloque final.
Cifrado por transposición

Luego, se encripta el bloque 𝑝1𝑝2 … 𝑝𝑚 como


𝑐1𝑐2 … 𝑐𝑚 = 𝑝𝜎 1 𝑝𝜎 2 … 𝑝𝜎(𝑚)

𝑝𝜎(𝑚) : Posición que ocupará en el bloque cifrado la letra


de la posición 𝑚 del bloque original de acuerdo a la
permutación 𝜎.

Para descifrar un bloque de texto cifrado 𝑐1𝑐2 … 𝑐𝑚, se


transpone las letras usando la permutación 𝜎 −1 , la
inversa de la permutación 𝜎
Ejemplo

• Use el método de cifrado basado en la permutación 𝜎


del conjunto {1,2,3,4} con 𝜎(1) = 3, 𝜎(2) = 1, 𝜎(3) = 4 y
𝜎(4)=2.
a) Cifre el mensaje PIRATE ATTACK
b) Descifre el mensaje cifrado SWUE TRAE OEHS
Sistema de criptografía

Un sistema de criptografía es una tupla de cinco


elementos (𝑃, 𝐶, 𝐾, 𝐸, 𝐷), donde 𝑃 es el conjunto de
caracteres del texto original, 𝐶 es el conjunto de
caracteres del texto cifrado, 𝐾 es el keyspace (conjunto
de posibles llaves o claves), 𝐸 es el conjunto de funciones
de encriptación y 𝐷 es el conjunto de funciones de
descifrado
Se denota por 𝐸𝑘 la función de cifrado en 𝐸
correspondiente a la clave 𝑘 y 𝐷𝑘 la función de
descifrado en 𝐷 que descifra el texto cifrado que se cifró
usando 𝐸𝑘 , es decir, 𝐷𝑘 𝐸𝑘 𝑝 = 𝑝, para todos los
caracteres del texto original 𝑝
Ejemplo

Describa el sistema del cifrado de desplazamiento en


inglés
• 𝑃 y 𝐶 Enteros entre 0 y 25, es decir, elementos de ℤ26
• 𝐾 conjunto de posibles desplazamientos
• 𝐸 es el conjunto de funciones 𝐸𝑘(𝑝) = (𝑝 + 𝑘) mod 26
• 𝐷 es el conjunto de funciones 𝐷𝑘(𝑝) = (𝑝 – 𝑘) mod 26
Cifrados simétrico y asimétrico

CIFRADO SIMÉTRICO

CIFRADO ASIMÉTRICO
Cifrado simétrico

El cifrado simétrico o cifrado de clave privada


consiste en utilizar la misma clave para el cifrado y el
descifrado.
En un sistema de cifrado de clave privada, una vez que
sabes una clave de cifrado, se puede encontrar
rápidamente la clave de descifrado.
Los cifrados clásicos, incluyendo los sistemas de cifrado de
desplazamiento y cifrado afín, son ejemplos de sistemas
criptográficos de clave privada.
Cifrado asimétrico

El cifrado asimétrico o cifrado de clave pública


apareció en 1976, con la publicación de un trabajo sobre
criptografía por Whitfield Diffie y Martin Hellman.
En un criptosistema asimétrico (o criptosistema de clave
pública), las claves se dan en pares:
• Una clave pública para el cifrado
• Una clave secreta para el descifrado
Cifrado asimétrico

En un sistema de cifrado con clave pública, los usuarios


eligen una clave aleatoria que sólo ellos conocen (ésta es
la clave privada)
A partir de esta clave, automáticamente se deduce un
algoritmo (la clave pública). Los usuarios intercambian
esta clave pública mediante un canal no seguro
Cuando un usuario desea enviar un mensaje a otro
usuario, sólo debe cifrar el mensaje que desea enviar
utilizando la clave pública del receptor (que puede
encontrar, por ejemplo, en un servidor de claves como
un directorio LDAP)
El receptor podrá descifrar el mensaje con su clave
privada (que sólo él conoce)
Cifrado asimétrico

Este sistema se basa en una función que es fácil de


calcular en una dirección (llamada función trapdoor de
único sentido) y que, matemáticamente, resulta muy difícil
de invertir sin la clave privada (llamada trapdoor).
Sistema de Cifrado RSA

El sistema de cifrado RSA es el sistema de cifrado


asimétrico más usado y más sencillo de entender e
implementar.
Una peculiaridad de este algoritmo es que sus dos
claves sirven indistintamente tanto para cifrar como
para autenticar.
Debe su nombre a sus tres inventores:
Ronald Rivest, Adi Shamir y Leonard Adleman,
que publicaron por primera vez el método RSA en
1977.
Se basa en la dificultad que presenta la factorización
de números grandes.
Sistema de Cifrado RSA

Las claves pública y privada se calculan a partir de un


número que se obtiene como producto de dos primos
grandes
Un atacante que quiera recuperar un texto claro a partir
del criptograma y de la clave pública, tiene que
enfrentarse a dicho problema de factorización
El algoritmo consta de tres paso:
• Generación de claves
• Cifrado del mensaje
• Descifrado del mensaje
RSA – Generación de Claves

Cada usuario elige dos números primos distintos y


grandes 𝑝 y 𝑞 (unas 200 cifras cada uno)
Por seguridad deben ser elegidos de forma aleatoria y tener
una longitud en bits parecida. Se pueden hallar primos
fácilmente mediante test de primalidad
Se calcula el producto 𝑛 = 𝑝𝑞
n se usa como el módulo para ambas claves: pública y privada
Se calcula 𝜑 𝑛 = 𝑝 − 1 𝑞 − 1
𝜑 es la función de Euler
Se escoge un número entero positivo 𝑒 menor que
𝜑 𝑛 , que sea primo relativo con 𝜑 𝑛 , 𝑒 se usa
como el exponente de la clave pública
RSA – Generación de Claves

Se determina un 𝑑 (mediante aritmética modular)


que satisfaga la congruencia
𝑒𝑑 ≡ 1 (𝑚𝑜𝑑 𝜑(𝑛)) → 𝑒𝑑 ≡ 1 (𝑚𝑜𝑑 (𝑝−1)(𝑞−1)),
𝑑 se usa como el exponente de la clave privada
𝑑 es el inverso modular de 𝑒 𝑚𝑜𝑑 𝜑(𝑛)
Se calcula mediante el algoritmo de Euclides
Se cumple que 𝑒𝑑 = 1 + 𝑘(𝑝−1)(𝑞−1) para cualquier
entero 𝑘
La clave pública será el par de números (𝑒,𝑛), que
pueden ser conocidos por cualquiera
RSA – Generación de Claves

La clave privada será el par de números (𝑑,𝑛), este


número 𝑑 debe mantenerse secreto y sólo será conocido
por el propietario del par de claves.
Para una mayor eficiencia los siguientes valores se
calculan de antemano y se almacenan como parte de la
clave privada:
Los primos para la generación de las claves: 𝑝 y 𝑞
𝑑 𝑚𝑜𝑑 (𝑝 – 1) y 𝑑 𝑚𝑜𝑑 (𝑞 – 1)
𝑞−1 𝑚𝑜𝑑 𝑝
RSA – Cifrado y Descifrado del Mensaje

Los mensajes que se cifran y descifran con este algoritmo


son números enteros de tamaño menor que n, no letras
sueltas como en el caso de los cifrados vistos antes.

Para obtener el mensaje cifrado C a partir del mensaje


original M se realiza la siguiente operación:
C = Me (mod n)

Para recuperar el mensaje original M a partir del cifrado


C se realiza la siguiente operación:
M = Cd (mod n)
Ejemplo

Cifrar STOP con RSA (use números primos pequeños)

𝑝 = 43 y 𝑞 = 59, 𝑛 = 43×59 = 2537


𝑚𝑐𝑑(𝑒,42×58) = 𝑚𝑐𝑑(13,42×58) = 1
Clave pública 𝐾𝑝 = (13, 2537)
STOP se pasa a números según la posición y se agrupan en
bloques de cuatro dígitos: 1819 1415
Se usa la operación para cifrar:
𝐶1 = 181913 mod 2 537 = 2081
13
𝐶2 = 1415 mod 2 537 = 2182
El mensaje cifrado es: 2081 2182
Ejemplo

Descifrar 0981 0461 con RSA

𝑑 = 937 (es el inverso de 13 módulo 42×58=2436)


Clave privada 𝐾𝑃 = (937,2537)
Se usa la operación para descifrar:
𝑀1 = 0981937 mod 2 537 = 0704
937
𝑀2 = 0461 mod 2 537 = 1115
El mensaje descifrado es: 0704 1115
Se pasan las posiciones a letras: HELP

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy