Tema 2: Fundamentos de criptografia

Criptografia - Poner los datos comprensibles a incomprensibles mediante un proceso matematico complejo. El metodo criptografico utilizado para cifrar un texto no ha de ser secreto pero si la llave utilizada.

Criptosistema - Un sistema criptografico esta formado por cinco conjuntos (M,C,K,E,D):

M - Texto plano (legible).
C - Criptografico (mensaje cifrado).
K - Conjunto de llaves.
E -  Conjunto de transformaciones de cifrado sobre M y dan como resultado C.
Existen dos grupos de criptosistemas:
De clave privada (o simetricos) - Solo existe una llave para cifrar y otro para descifrar, la llave es secreta.
De clave publica (o asimetrico) - Son dos llaves una privada y otra publica. La publica sirve para cifrar el mensaje y la privada  para descifrar. Las llaves van por parejas, solo se puede descifrar con la privada lo que ha cifrado su llave publica. Dada una llave publica no se puede obtener la privada.
Entropia

    Es la medida de desorden de la información, alcanza el valor maximo cuando  hay la misma     probabilidad de un suceso.

La entropia es la suma de los productos de la probabilidad de cada suceso por su cantidad de información.
 

Entropia condicionada.
 
 




Indice de lenguaje

k-> longitud del mensaje en nº de caracteres

Redundancia
    Indica la cantidad de información que esta repetida.




Desinformacion de un criptosistema

C no aporta información sobre M

Distancia de unicidad
    La longitud minima de mensaje cifrado que aproxima H(K/C) a 0. Es decir, la cantidad de mensaje cifrado para descubrir la clave.

Tecnicas para ocultar la redundancia

    CONFUSION - trata de confundir y ocultar la relacion entre el texto cifrado y el original.
        Cambia  unos caractere por otros.
    DIFUSION - diluye la redundancia del lenguaje repartiendola a lo largo del texto cifrado.
        La trasposición cambia de posicion a  los caracteres.
 
 
 

Aritmetica Modular
    Es la aritmetica que trabaja con un numero limitado de numeros. n es el numero mas alto.

    a,b,n pertenecen a N y k pertenece a Z
    a es congruente con b modulo n si a=b+k·n

Algoritmo de Euclides (basico)

    Algoritmo para calcular el maximo comun divisor de dos numeros:
 

g0=a;
g1=b
while(g1!=0){
    x=g0 % g1;
    g0=g1;
    g1=x;}

mcd -> g0
 

Inversas
Si m.c.d(a,n)=1 existe a-1 en modulo n.


Metodos de cifrado clasicos

Existen dos grupos:
    Monoalfabeticos: No desordenan los caracteres sino que un alfabeto se convierte en otro. Metodo por sustitución. Establecen un alfabeto y este se mantiene en todo el mensaje. El alfabeto alternativo es la clave.

Un ejemplo es el metodo Cesar: Desplazamiento del alfabeto en una cantidad de caracteres.

    C=m+k
Para k=3,
A B C D E F G ...
D E F G H I  J ...

Existe un problema ya que si se realiza una estadista a un texto sin cifrar y otra del cifrado se puede conseguir descifrarlo.

Una solución a este problema es el metodo polialfabetico

Polialfabetico de Vigenere: Se utilizan varias tablas de desplazamiento, es decir utilizar varias claves ciclicamente.

Clave 594
Caracter 1:  -> desplazamiento 5
Caracter 2:  -> desplazamiento 9
Caracter 3:  -> desplazamiento 4
Caracter 4:  -> desplazamiento 5

etc,etc
 
 

Criptografia Actual

Cifrado Simetrico:

Criptografía de Clave Privada

DES (Data Encryption Standard)

Codifica en bloques de 64 bits utilizando claves de 56 bist (8 bits se reservan para control de         paridad). Se basa en la red de Feistel, que funciona de esta manera:

Para descifrar un texto encriptado con DES es necesario probar todas las claves, pero en la actualidad una clave de 56 bits no es fiable, por lo que se utiliza el Triple-DES con claves de 168 bits.
 
 

Si el texto a cifrar contiene patrones repetitivos el texto cifrado tambien los tendra,  para evitar esto se utiliza el cifrado por bloques:
 

    CBC( Cifer Block Chaining )
    El mensaje se divid en bloques de 64 bits, el primer bloque se mezcla con un vector de inicializacion y se cifra. Este bloque cifrado se mezcla con xor con el siguiente bloque y se cifra el resultado, se continua hasta finalizar con todos los bloques. El cifrado de un bloque esta condicionado por los bloques anteriores.


Modo de operacion CBC. A: codifcacion, B: decodificacion.







Este metodo no puede empezar a cifrar hasta no tener un bloque de información, por lo que no es util por ejemplo en una conexion telnet donde un comando no tiene por que tener ese tamaño.

CFB (Cipher-Feedback Mode)

    Se carga un registro de desplazamiento con un vector de inicialización. Codificamos el registro
con un algoritmo simétrico y cogemos sus n bits de mayor peso (donde n es el tamaño del bloque
resultante al cifrar), se envia este bloque. Luego desplazamos el registro n bits a la izquierda y ponemos como bits de menor peso el mensaje obtenido.





Cifrado asimetrico

Este tipo de algoritmo tiene dos llaves: publica y privada. Lo que cifra una lo descifra la otra y viceversa.
Las dos utilidades del difrado de llave publica son:

PRIVACIDAD: El emisor encripta el mensaje con la clave publica del receptor (cifrado). Este mensaje solo puede ser leido por el receptor ya que se necesita la clave privada de este para hacer el texto legible. Con este metodo se asegura la privacidad ya que nadie puede ver el contenido del mensaje excepto el interesado.

AUTENTICIDAD: El emisor encripta el mensaje con su clave privada (firmado). El receptor lo desencripta con la clave publica del emisor. Con enste metodo se asegura que el mensaje viene del emisor (autenticidad) ya que este es el unico que posee su clave privada.

SECRETO Y AUTENTICIDAD: Primero el emisor firma y luego cifra el mensaje.
 

RSA
 

    La llave publica esta formada por dos numeros e y n.
    La llave privada esta formada por dos numeros d y n.

n es la multiplicacion de dos primos fuertes.
e y d son numeros inversos en aritmetica modulara en modulo n.

El cifrado se lleva a cabo utilizando la expresión:

El descifrado se lleva a cabo utilizando la expresión:

La longitud minima recomendable para una llave de RSA es 1024 bits.

El RSA es 1000 veces mas lento que el DES. Para hacer el metodo mas rapido se utiliza unallave de sesion. El mensaje se encripta con DES y esta llave de sesion. El emisor envia el mensaje encriptado con DES y la llave de sesion cifrada con la llave publica del receptor. Para descifrarlo primero el receptor debe obtener la llave de sesion con su clave privada, y luego se descifra el mensaje con esta.
 

Una manera de asegurarse de que un mensaje no es modificado en un punto intermedio entre el emiser y el receptor es con la funcion resumen. Dado un mensaje cualquiera esta funcion da como resultado una cadena de tamaño fijo. Tiene dos propiedades:
    - Si se cambia el mas minimo detalle en la entrada produce un cambio muy grande en la salida.
    - Dado el resultado de una funcion es imposible obtener el texto original.
 

Autentificación de llaves publicas:

    Existen dos metodos:
    - Contacto directo con la persona. La entrega se debe hacer de forma fisica.
    - Existe un tercero de confianza que garantiza que una clave publica pertenece a esa persona.

Certificados X509

    Es una estructura de datos que relaciona una llave publica con una descripcion. Son objetos autofirmados.

    Estructura: