You are on page 1of 27

Criptografa

Definiciones
Conceptos previos

Criptografa

Definiciones

Bases tericas

Criptografa clsica

Clasificacin de Criptosistemas

Criptosistemas Simtricos

Clasificacin

Cifradores de bloques

Cifradores de flujo

Algoritmos de cifrado: DES, AES, IDEA, RC5

Ataques por fuerza bruta

Funciones de Hash o resumen: MD5, SHA-1

Criptosistemas Asimtricos

Algoritmos: Diffie-Hellman, ElGammal, RSA

Firma digital

Seguridad en el correo electrnico: PGP, S/MIME

Certificados digitales

Definiciones

Criptografa: Arte de escribir con clave secreta o de un modo


enigmtico
i ti
Imprecisiones:
Arte: la criptografa ha dejado de ser un arte: es una ciencia.
Escritura de documentos: no slo se escriben mensajes; se envan o se
guardan en un computador diversos tipos de documentos y formatos.
Se supone una clave: los sistemas actuales usan una o dos. En varias
aplicaciones de Internet entran en juego 4 claves.
Clave secreta: existirn sistemas de clave secreta que usan una sola
clave y sistemas de clave pblica (muy importantes) que usan dos: una
clave privada (secreta) y la otra pblica.
Representacin enigmtica: la representacin binaria de la informacin
podra ser enigmtica para nosotros los humanos pero no para los
computadores... es su lenguaje natural.

Definiciones

Criptografa:
Kriptos

(secreto) y Graphos (escritura)


Forma de escribir ocultando el significado
Criptoanlisis:
Forma

de esclarecer el significado de la escritura


ininteligible

Criptologa
Kriptos (secreto) y Logos (estudio,
Criptografa + Criptoanlisis

conocimiento)

Criptosistema: Componentes bsicos

Espacio Mensajes

Espacio de Cifrados

K = {k1, k2, , kk}

Transformaciones de cifrado

C = {c1, c2, , cc}

Espacio de claves

M = {m1, m2, , mm}


Conjunto mensajes en claro

Ek: MC

Transformaciones de descifrado

Dk: CM

Criptografa

Caracterizacin sistema criptogrfico:


operaciones

de encriptacin

sustitucin
transposicin

nmero

de claves

Sistema simtrico (clave nica o secreta)


Sistema asimtrico (dos claves o clave pblica)

procesado

texto en claro

bloque
flujo

Criptografa
Texto
Claro

Cifrado
Simtrico

Clave Compartida

Texto
Claro

Texto Cifrado

Canal

Cifrado
Asimtrico

Criptografa

Tipos de ataques
Criptoanlisis

Slo texto cifrado


Texto claro conocido
Eleccin
El
i d
de mensaje
j

Fuerza

Complejidad

bruta

Seguridad criptosistemas

Incondicionalmente seguro
Texto

cifrado no proporciona suficiente informacin


para determinar la clave o el texto en claro.

Computacionalmente seguro
Coste

rotura cifrado > Coste informacin cifrada


Tiempo rotura cifrado > Vida til informacin

Ataques por fuerza bruta


Tiempo medio requerido para bsqueda de claves exhaustiva

Bits
Clave

Claves posibles

Tiempo Requerido
(1 descifrado / s )

Tiempo Requerido
(106 descifrados / s )

32

232 = 4.3 x 109

231 s = 35.8 minutos

2.15 milisegundos

56

256 = 7.2 x 1016

255 s = 1142 aos

10.01 horas

128

2128 = 3.4 x 1038

2127 s = 5.4 x 1024 aos

5.4 x 1018 aos

168

2168 = 3.7 x 1050

2167 s = 5.9 x 1036 aos

5.9 x 1030 aos

26! = 7.2 x 1026

2x1026 s = 6.4 x 1012 aos

6.4 x 106 aos

26 caracteres
(permutacin)

Ataques por fuerza bruta


L0phtCrack LC5
Plataforma Windows/Unix
http://webproxy.com/products/lc/
Ataques de diccionario y fuerza bruta

PasswordsPro y SAMInside
Plataforma Windows
http://www.insidepro.com/eng/index.shtml
Ataques diccionario y fuerza bruta

John the Ripper

Bases Tericas

Pilares Fundamentales:

Teora de la Informacin de Shannon

Teora de Nmeros

Informacin contenida mensajes y claves.


Entropa

Operaciones de matemtica discreta, logaritmos, etc.

Teora de la Complejidad Algortmica

Clasificacin de los problemas como computacionalmente tratables


o intratables.

Bases Tericas
Teora de la Informacin de Shannon

C tid d d
Cantidad
de IInformacin
f
i

Ci = log 2 p ( xi )

ci
0

pi
0

Entropa

H ( x) = p( xi ) log 2 p( xi )
i

Bases Tericas
Teora de la Informacin de Shannon

R ti d
Ratio
dell llenguaje
j

r=

H (M )
N

Redundancia

D = Rr

Criptografa

Criptografa clsica

Esctala
Polybios
Cifrado tipo Csar

operaciones de encriptacin

sustitucin

monoalfabeto
polialfabeto

procesado texto en claro

bloque

flujo

nmero de claves

clave privada

clave pblica

RSA

transposicin

DES

rail fence
transposicin de columnas

producto

DES

Criptografa clsica: esctala

Siglo V a.C. Pueblo griego de los lacedemonios.

Consista en un bastn en el que se enrollaba una cinta de cuero y luego se escriba en


ella el mensaje de forma longitudinal.

Cifrado por transposicin: Al desenrollar la cinta, las letras aparecern desordenadas.

Para descifrar el criptograma y recuperar el mensaje en claro habr que enrollar dicha
cinta en un bastn con el mismo dimetro que el usado en el extremo emisor y leer el
mensaje de forma longitudinal. La clave del sistema se encuentra en el dimetro del
bastn.

M=ASICIFRABANCONLAESCITALA
C=AACSINICTCOAINLFLARAAEBS

Criptografa clsica: Polybios

Siglo II a.C.

Cifrado por sustitucin

El mtodo se basa en una tabla, en cuyos ejes se ponan


diferentes combinaciones de letras o nmeros y dentro de
la tabla las letras del alfabeto. Cada letra del mensaje a
cifrar era sustituida por sus coordenadas

M=Polybioseselrey
C=CECDCAEDABBDCDDC AEDC AECA DBAEED

Criptografa clsica: Csar

Siglo I a.C.

Desplazamiento de tres espacios (k=3) hacia la derecha de M

Es un cifrador por sustitucin en el que las operaciones se realizan


mdulo n, (n = al nmero de elementos de M)
M = 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
C = D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Ejemplo: M = BOMBA

C = ERPED

Problema: cada letra se cifra siempre igual

Criptoanlisis usando estadsticas de M

Criptografa

Criptografa clsica

procesado texto en claro

Esctala, Polybios, Csar,

bloque

operaciones de encriptacin

sustitucin

flujo

nmero de claves

Vigenere

transposicin

Feistel
DES, 3DES, AES

Csar, Polybios, Playfair,

polialfabeto

monoalfabeto

clave privada

clave pblica

rail fence
transposicin de columnas

RSA

producto

DES

Mtodos monoalfabeto: Playfair

Siglo XIX

Intento de romper traslacin estadsticas de M a C

Cifrado por poligramas. Matriz 5x5


C

I/J

N/

Ejemplo: M = BOMBA VA
M = BO MB AV AX
C = HI IF VE FA

Cifrado
M1M2 misma fila C1C2 son los
dos caracteres de la derecha.
M1M2 misma columna, C1C2 son
los dos caracteres de abajo.
M1M2 filas y columnas distintas
C1C2 son los dos caracteres de la
diagonal, desde la fila de M1.

10

Criptografa

Criptografa clsica

procesado texto en claro

Esctala, Polybios, Csar,

bloque
Feistel
DES, 3DES, AES

operaciones de encriptacin

sustitucin

monoalfabeto

flujo

nmero de claves

Csar, Polybios Playfair,


Vigenere

transposicin

polialfabeto

clave privada

clave pblica

rail fence
transposicin de columnas

RSA

producto

DES

Vigenre

Cifrado p
por substitucin p
polialfabeto
Soluciona la debilidad del cifrado Csar en que una letra se cifra
siempre igual.
Clave K de longitud L equivale a L cifrados Cesar
Cifrado : C(i) = M(i) + K(i) mod 27

Sea K = SOL y M = BOMBA VIENE


M = B O M B A V I E N E
K = S O L S O L S O L S
C = T C X T O G A S Y W

M
A1
A2
A3

=
=
=
=

A
S
O
L

B
T
P
M

C
U
Q
N

D
V
R
O

E
W
S
P

F
X
T
Q

G
Y
U
R

H
Z
V
S

I
A
W
T

11

Vigenre: criptoanlisis

Longitud clave
Mtodos
Kasiski

sufijos: -ez, -as, -os,


prefijos: in-, des-, en-,
palabras : con, y, de, el

ndice

9 caracteres

M = DESCONFIANZA CON EL NUEVO


K = GINGINGINGIN GIN GI GINGI
C = JMFIWZLPNSHN IWZ KT SCSBW

de Coincidencia

frecuencia C vs. frecuencia M


n
n
Varianza =
( pi 1 n) 2 = ( p 2 ) 0.037
i =1

i =1

0 MD 0.035

ndice de Coincidencia
(0.072)

Vigenre: mejoras

Cifrado autoclave
longitud

K = longitud M

M = Enunlugardelamancha
K = Cervantesenunlugard

One-Time
One
Time PAD
longitud

K = longitud M
clave aleatoria
no reutilizacin de claves

12

Criptografa

Criptografa clsica

procesado texto en claro

Esctala, Polybios, Csar,

bloque

operaciones de encriptacin

Vigenere

transposicin

flujo

Csar, Polybios, Playfair,

polialfabeto

Feistel
DES, 3DES, AES

nmero de claves

monoalfabeto

sustitucin

clave privada

clave pblica

rail fence
transposicin de columnas

RSA

producto

DES

Rail Fence
Escritura de M en diagonal
Leer texto fila a fila

M = Con cien caones por banda, viento en popa


C

i
n

e
o

o
s

a
r

a
n

i
,

t
e

n p .
p a .
n e o . .
o

C = ccneoaaitnpoicosrn,eopaneanpbdvneo

13

Transposicin de filas

M se escribe en filas a lo largo de n columnas


K = ordenacin de las columnas
C = reordenacin de M segn K
M = Con cien caones por banda, no corta
K = 4
C
C
P

3
O
A
O

1
N

2
C
O
B

5
I
N
A

6
E
E
N

7
N
S
D

M = 01 02 03 04 05 06 07 08 09 10 11
12 13 14 15 16 17 18 19 20 21
C1 = 03 10 17 04 11 18 02 09 16 01 08
15 05 12 19 06 13 20 07 14 21
C2 = 17 01 13 04 08 20 10 16 06 03 09
19 11 15 07 18 05 14 02 12 21

C = NRCOBOAOCCPINAEENNSD

Repetir trasposicin para


incrementar seguridad

Criptografa

Criptografa clsica

Esctala, Polybios, Csar,

procesado texto en claro

bloque

operaciones de encriptacin

sustitucin

monoalfabeto

Vigenere

transposicin

Feistel
DES, 3DES, AES

flujo

nmero de claves

Csar, Polybios, Playfair,

polialfabeto

rail fence
transposicin de columnas

clave privada

clave pblica

RSA

producto

DES

14

Product Ciphers

Cifrado por substitucin o transposicin no


seguro debido a caractersticas del lenguaje

Concatenacin cifrados
2

substituciones substitucin ms compleja


2 transposiciones transposicin ms compleja
substitucin + transposicin mucho ms compejo

Puente entre criptografa clsica y moderna

Mquinas de Rotor

Ejemplo complejidad a travs de mltiples etapas de cifrado

Segunda Guerra Mundial

cifrado por substitucin variable

Alemanes (Enigma), Aliados (Hagelin), Japoneses (Purple)

Rotor
posicin determina la substitucin
vara despus cifrado de cada letra
encadenado a otros rotores

Ej: 3 rotores (26 letras) 263=17.576 alfabetos

15

Mquinas de Rotor: enigma

5p
posibles rotores

Configuracin

C5,3 * P3 = 60 posibilidades

Rotores Escogidos
Posicin Inicial Rotores
Anillos Giro
Stecker (10 pares
intercambio)
Total 1023 combinaciones

Criptoanlisis: cribas

Criptografa

Criptografa clsica

Esctala, Polybios, Csar,

procesado texto en claro

bloque

operaciones de encriptacin

sustitucin

monoalfabeto

Vigenere

transposicin

Feistel
DES, 3DES, AES

flujo

nmero de claves

Csar, Polybios, Playfair,

polialfabeto

rail fence
transposicin de columnas

clave privada

clave pblica

RSA

producto

DES

16

Cifrado en Bloque vs. en Flujo

Cifrado en bloque
Texto

se procesa en bloques (o palabras)


Cada bloque se (des)encripta conjuntamente
Bloque tpico: 64 o 128 bits
Ampliamente usados

Cif d en flujo
Cifrado
fl j
(Des)Encriptacin

se aplica a un elemento de
informacin (caracter, bit)

Comparativa de cifra: bloque vs flujo


CIFRADO EN BLOQUE
Ventajas
j

Inconvenientes

Alta

difusin de los elementos


en el criptograma
Inmune: imposible introducir
bloques extraos sin detectarlo

Baja velocidad de cifrado al tener


que leer bloque completo
Errores de cifra: un error se
propagar a todo el bloque

CIFRADO EN FLUJO
Ventajas
Alta

velocidad de cifra
Resistente a errores: cifra no es
dependiente entre elementos

Inconvenientes
Baja difusin elementos en el
criptograma
Vulnerable: pueden alterarse los
elementos por separado

17

Cifrado en bloque ideal

Estructura cifrado Feistel


Texto claro (2w bits)
Etapa 1

Clave
Algoritmo de generacin
de subclaves

Etapa i

Etapa n

Texto cifrado (2w bits)

18

Criptografa

Criptografa clsica

Esctala, Polybios, Csar,

procesado texto en claro

bloque

operaciones de encriptacin

Vigenere

transposicin

Feistel
DES, 3DES, AES

flujo

nmero de claves

Csar, Polybios, Playfair,

polialfabeto

monoalfabeto

sustitucin

clave privada

clave pblica

rail fence
transposicin de columnas

RSA

producto

DES

DES: Data Encryption Standard


Fue desarrollado por IBM a principios de los 70 como continuacin del algoritmo Lucifer.
Adoptado por NIST como algoritmo estndar de cifrado. Actualmente estndar de ANSI
DES se dise
di de
d forma
f
que, fuera
f
resistente
i t t all criptoanlisis
i t
li i y adems
d sencillo
ill para poder
d
ser implementado en un circuito electrnico con la tecnologa de los aos 70
Cifra en bloques de 64 bits de texto claro, produciendo bloques del mismo tamao de texto
cifrado. (es un cifrador de bloques)
El tamao de la clave es de 56 bits (256 posibles combinaciones)

Disposicin de bits en una clave DES

Ha suscitado gran controversia:


Tamao de la clave 56 bits (Lucifer 128bits)
Ciertos aspectos de su diseo estn clasificados

19

DES: Data Encryption Standard

Texto claro de 64 bits

Clave de 56 bits

Permutacin inicial

Opcin 1
permutada

Estructura Feistel
Pasos:

Permutacin inicial
p(x)

Etapa 1

Opcin 2
permutada

Rotacin a
la izquierda

Etapa 2

Opcin 2
permutada

Rotacin a
la izquierda

Etapa 16

O i 2
Opcin
permutada

Rotacin a
la izquierda

x0 = p(x) = L0R0

16 iteraciones :
Li= Ri1,
Ri = Li1 (+) f(Ri1, ki)

Permutacin
inversa p(x)
y = p1(R16L16)

Intercambio
de 32 bits
Permutacin inicial
inversa
Texto cifrado de 64 bits

Representacin general del algoritmo de cifrado DES

DES: Efecto Avalancha

Propiedad
p
altamente deseable

Alta variabilidad del cifrado ante pequeos cambios en

clave
texto en claro

Promedio DES:

Cambio 1 bit entrada o clave


Cambio mitad bits texto cifrado

DES presenta alto efecto avalancha

Dificulta criptoanlisis

20

Aos para romper el cdigo

Criptoanlisis fuerza bruta

Longitud de la clave (bits)

Variantes de DES: Triple DES


K1

K2
A

K3
B

K3

K2
B

K1
A

Se utilizan 3 claves (K1, K2, y K3)


3 etapas:
El texto en claro se cifra con K1
DES
S modo de descifrado,
f
usando K2
Se realiza otro cifrado usando K3

Existen variantes con claves de 168 bits


Se utilizan tres claves en lugar de dos
(FIPS)

21

Algoritmo Rijndael. AES


El 12 de septiembre de 1997 el National Institute of
Standars and Technology (NIST), hace un
llamamiento pblico para la presentacin de
algoritmos candidatos al Advanced Encryption
Standard (AES)
Se establecen unos requisitos mnimos:
El algoritmo debe ser de clave secreta (simtrico)
El algoritmo debe ser un algoritmo de bloque
El algoritmo debe ser capaz de soportar las combinaciones
clave-bloque de los tamaos 128-128, 192-128 y 256-128

AES Evaluation Criteria

Criterios iniciales:
seguridad

(esfuerzo requerido criptoanlisis)


coste (eficiencia computacional)
algoritmo & caractersiticas implementacin

Criterios finales
seguridad
id d

generall
facilidad implementacin software y hardware
ataques a la implementacin
flexibilidad (des/cifrado, clave, etc.)

22

Algoritmo Rijndael. AES (y II)


Diseado por Joan Daemen y Vincent Rijmen
Adoptado por el NIST en Octubre del 2000
como algoritmo criptogrfico no militar
Su eleccin, desarrollo y estudio se realiz de
forma pblica y abierta
T
Tamao
de
d clave
l
variable:
i bl 128,
128 192 y 256 bits
bit
Se considera ms rpido y seguro que Triple
DES

Modos operacin cifra en bloques

Modo CFB (Cipher Feedback)

Modo CBC (Cipher Block Chaining):

La entrada al algoritmo de cifrado es el XOR entre el bloque de


texto claro y el bloque de texto cifrado anterior.
Tiempo = N

Tiempo = 1

Tiempo = 2

DES

DES

DES

DES

DES

DES

(a) Cifrado

(b) Descifrado

23

Criptografa

Criptografa clsica

Esctala, Polybios, Csar,

procesado texto en claro

bloque

operaciones de encriptacin

sustitucin

monoalfabeto

Vigenere

transposicin

Feistel
DES, 3DES, AES

flujo

nmero de claves

Csar, Polybios, Playfair,

polialfabeto

rail fence
transposicin de columnas

clave privada

clave pblica

RSA

producto

DES

Cifradores Flujo: Estructura

24

Cifradores Flujo: Propiedades

Consideraciones de diseo:

periodo extenso sin repeticiones (key stream)


generacin clave quasi-aleatoria
tamao clave

Si el diseo el correcto, puede considerarse tan seguro


como un cifrador en bloque (con el mismo tamao de
clave)
l
)

Ventajas

Simplicidad
Rapidez

RC4

Cifrado propietario RSA Security

Caractersticas

Ampliamente usado

Tamao Clave Variable (1-256 bytes)


Trabajo con bytes
Simplicidad y eficacia

web SSL/TLS
wireless WEP

key forms random permutation of all 8-bit values


uses that permutation to scramble input info processed a byte at a
time

25

RC4 Key Schedule

S: estado interno cifrado


Clave determina intercambio seguro
for i = 0 to 255 do
S[i] = i
T[i] = K[i mod keylen])

Inicializacin

j = 0
for i = 0 to 255 do
j = (j + S[i] + T[i]) mod 256
intercambiar (S[i], S[j])

Permutacin
Inicial de S

RC4: Encriptacin

Generacin Flujo: intercambio valores S

Encriptacin/Desencriptacin: S[t] XOR (Byte M)


i = j = 0
para cada byte del mensaje Mi
i = (i + 1) mod 256
j = (j + S[i]) mod 256
swap(S[i], S[j])
t = (S[i] + S[j]) mod 256
Ci = Mi XOR S[t]

26

RC4 Overview

RC4 Security

Criptoanlisis RC4
varios

mtodos publicados
ninguno prctico (con clave longitud razonable)

Cifrado altamente no-lineal

Problema Seguridad WEP


generacin

clave K

27

You might also like