Sobre criptografía
Privacidad: se refiere a tener control en el acceso de la información y solo permitirlo a personas autorizadas
Autenticidad: se refiere a estar seguros de la identidad de una entidad ya sea mensaje, persona, servidor etc.
Integridad: se refiere a que la información no sea modificada
No-rechazo: se refiere a no poder negar la autoría de un mensaje o de una transacción.
Criptografía: es el conjunto de técnicas (entre algoritmos y métodos matemáticos) que resuelven los problemas de autenticidad, privacidad, integridad y no rechazo en la transmisión de la información.
Texto original: es un documento antes de ser cifrado
Cifrar: es la acción que produce un texto cifrado (Ilegible) a partir de un texto original
Texto cifrado: es un documento que ha sido cifrado
Descifrar: es la acción inversa de cifrar, es decir, convierte un texto cifrado a otro legible (texto original)
Firma digital: es un método que usa criptografía asimétrica y permite autenticar una entidad (persona o servidor), tiene una función igual que la firma convencional. Consiste en dos procesos, uno de firma y otro de verificación de la firma. Físicamente es una cadena de caracteres que se adjunta al documento.
Criptografía simétrica: es el conjunto de métodos que permite establecer comunicación cifrada, con la propiedad de que ambos lados de la comunicación tienen la misma clave, y ésta es secreta.
Criptografía asimétrica: es el conjunto de métodos que permite establecer comunicación cifrada, donde una de las claves es pública y la otra clave es privada (secreta). Cada usuario tiene un par de claves una pública y otra privada.
Clave privada: es la clave secreta que se usa en la criptografía asimétrica
Clave pública: es la clave públicamente conocida, que se usa en la criptografía asimétrica
Clave simétrica: es la clave secreta que tienen ambos lados de una comunicación en la criptografía simétrica.
Par de claves: se refiere al par de claves una privada y otra pública usadas en la criptografía asimétrica.
Longitud de la clave: es el número de bits (ceros y unos) que tienen las claves y es solo uno de los parámetros de los que depende la seguridad de un sistema criptográfico. Actualmente se usan 128 para las claves simétricas, 1024 para el sistema asimétrico RSA, 163 para los sistemas asimétricos que usan curvas elípticas.
Firma digital con apéndice: método de firma digital que requiere al mensaje como entrada en el proceso de verificación.
Firma digital con mensaje recuperable: método de firma digital que no requiere al mensaje como entrada en el proceso de verificación. El mensaje se recupera después de que se ha verificado la firma.
Certificado digital: físicamente es un archivo de hasta 2K de tamaño que contiene principalmente, los datos de una entidad una persona o un servidor, la clave pública de esa entidad, y la firma de una autoridad certificadora que es reconocida con la capacidad de poder comprobar la identidad de la persona (o servidor) y válida la clave pública que es asociada a la entidad.
Familia criptográfica: es el conjunto de sistemas criptográficos que basan su seguridad en el mismo problema matemático, actualmente las familias criptográficas más conocidas son las que basan su seguridad en el Problema de Factorización Entera (RSA, RW), los que la basan en el problema del logaritmo discreto (DH, DSA), y los que la basan en el problema del logaritmo discreto elíptico (DHE, DSAE, MQV)
Función hash: es una función de un solo sentido, resistente a colisiones que asocia una archivo o documento de longitud arbitraria a una cadena de longitud constante (se usa actualmente 160b de salida), las funciones hash más conocidas son: MD5, SHA1, RIPMED 160.
Cifrador de Bloque: es un sistema criptográfico que cifra de bloques en bloque, usualmente cada bloque es de 128 bits. Algunos sistemas conocido son, TDES, RC5, AES.
Cifrador de Flujo: es un sistema criptográfico de cifra de bit en bit, los más conocidos son, RC4, SEAL, WAKE.
Generador de números seudoaleatorios: es una función que tiene como entrada una cadena (conjunto de bits) llamada semilla y como salida otra cadena de bits que al aplicarle ciertas pruebas de aleatoriedad pasan con un porcentaje aceptable (alrededor de un 95%)
Primitiva criptográfica: es la función más básica que compone un sistema criptográfico, existen la primitiva de cifrado, la primitiva de descifrado, la primitiva de firma, la primitiva de verificación de firma etc.
Esquema criptográfico: es un conjunto de primitivas que componen una aplicación criptográfica más completa, como el esquema de firma digital (compuesta de la primitiva de firma y la de verificación), el esquema de cifrado (compuesta con la primitiva de cifrado y la de descifrado) etc.
Protocolo (criptográfico): es la parte más visible de la aplicación y esta compuesto de esquemas criptográficos conjuntamente con otras operaciones que permiten proporcionar seguridad a una aplicación mas especifica, por ejemplo el protocolo SSL, SET, SMIME, IPsec etc.
Autoridad certificadora: es una entidad (compañía) que es reconocida para poder certificar la asociación de una clave pública a una persona o servidor.
Comercio electrónico: es todo lo relacionado con realizar comercio principalmente por Internet.
Compartición de secretos: es un esquema criptográfico que tiene como entrada un secreto (por ejemplo una clave criptográfica) y como salida un numero
n de partes del secreto y todas o algunas de éstas
n partes sirven para reconstruir el secreto.
Criptografía Visual: es un esquema de compartición de secretos donde el secreto es una imagen y las partes son también varias imágenes. La ventaja de este tipo de cripotgrafía es que no es necesaria una computadora para la reconstrucción del secreto.
Dinero electrónico: es un número (de alrededor de 100 dígitos) al que se le asocia cierto valor y pude ser usado como cualquier otro tipo de dinero. Este número va acompañado de la firma del dueño o de un banco.
Vocabulario Matemático usado frecuentemente en criptografía
Número primo: es un número entero que no tiene divisores diferentes a 1 y a sí mismo, ejemplo 2,3,5,7,11, …
Generador probabilístico de números primos: es un proceso que tiene como entrada un número entero y como salida un probable número primo con gran grado de aceptación. El método más aceptado para generar primos es el de Miller Rabin.
Primo industrial: es un número primo generado probabilísticamente que tiene a lo más 1/(2^100) de probabilidad de error (de no ser número primo).
Problema de Factorización: es el problema inverso a la multiplicación, es decir el problema de encontrar los factores conocido el producto. En criptografía los números a factorizar son los productos de dos números primos de la misma longitud, el producto tiene al menos 768 bits. Actualmente se han podido factorizar números de hasta 512 bits (155 dígitos) producto de dos primos del mismo tamaño (256 bits).
Métodos de Factorización: es un método que tiene como entrada un número compuesto (no primo) y como salida uno de sus factores no triviales (diferentes a 1 y a el mismo). Actualmente el método más adecuado para factorizar números arbitrarios y que es usado para factorizar los números productos de dos primos es la criba de campos numéricos.
Problema del Logatirmo Discreto: es el problema de encontrar el número de veces que hay que multiplicar un número conocido para obtener como resultado, otro también conocido, por ejemplo dado el 1024 y el 2, ¿cuántas veces hay que multiplicar el 2 para obtener 1024? La respuesta es 10 y se dice que 10 es el logaritmo de 1024 base 2.
Métodos para calcular Logaritmos Discretos: hasta la fecha el método más adecuado para calcular logaritmos discretos es el método del Indice. Este método permite calcular logaritmos del mismo orden que las claves del sistema RSA, esto quiere decir que las claves de sistemas que usen logaritmos discretos deben de tener el mismo orden que las claves RSA.
Problema del Logaritmo Discreto Elíptico: en este caso el problema es encontrar cuantas veces hay que sumar un punto racional para obtener otro conocido. Dado
P y
Q encontrar
x, tal que
xP=
Q.
Método para resolver el Problema del Lobaritmo Discreto Elíptico: actualmente el mejor algoritmo para calcular logaritmos discretos es el que se aplica a grupos en general llamado método de la raíz de Pollar.
Problema del Logaritmo Discreto Hiperelíptico: es el problema de encontrar un número de veces que hay que sumar un divisor dado D para obtener otro divisor D'.
Aritmética modular: son las operaciones de suma o producto que se llevan a cabo sobre los números enteros módulo algún entero
n. Es decir el resultado de una suma o un producto es el residuo de la división entre
n.
Números "Grandes": se considera que un número es grande si tiene longitud al menos de 512 bits (155 dígitos), a causa de que los procesadores actuales manejan solo números de 32 bits, se tienen que diseñarse programas para poder efectuar las operaciones sobre este tipo de números.
Teorema Chino del Residuo TCR: es un resultado que permite calcular la solución de ciertas ecuaciones modulares y es usado en el esquema de descifrado RSA que permite descifrar más rápidamente.
Función exponencial modular: es la operación que se usa para cifrar u descifrar en varios sistemas cripotgráficos (RSA, RW, DH, DSA) y consiste en multiplicar modularmente muchas veces un mismo número.
Números de Fermat: los números de Fermat son de la forma (2^(2^n)+1), el número 1 de Fermat es (2^(2^1)+1)=5, el número 2 de Fermat es (2^(2^2)+1)=17, el siguiente es (2^(2^3)+1)=257, y el 4 es (2^(2^4)+1)=65537. Fermat había afirmado que todos estos números eran primos aunque esto no es cierto. El número 4 de Fermat se usa como exponente público (
e) en el sistema RSA, como su representación hexadecimal es 01 00 01 es óptimo para ser usado como exponente.
Inverso multiplicativo modular: dado un número su inverso multiplicativo es el número que al multiplicarlo el resultado será uno (1). Por ejemplo en Z3 el inverso multiplicativo de 2 es 2 ya que 2*2 = 4 mod 3= 1. En los números enteros módulo otro número entero, no todos los números tienen inverso multiplicativo. En cripotgrafía la clave privada
d (del sistema RSA) es precisamente el inverso multiplicativo de la parte de la clave pública
e. O sea
d =
e-1 mod
n.
Campo primo (Zp): cuando en Zn,
n es número primo
n=
p, entonces todos los elementos tienes inverso multiplicativo. Esto es tanto la suma como el producto cumplen las mismas propiedades que los números Racionales o los números Reales. En cripotgrafía es ampliamente usado este tipo de campos.
Campo de característica 2 (F2n): este tipo de campos son conjuntos de n-adas (cunjuntos de ceros y uno de longitud
n) a los que se les define operaciones de suma y multiplicación y tienen también las propiedades de lo números Racionales o Reales. Este tipo de campos son usados también en cripotgrafía principalmente porque es fácil fabricar un chip (circuito) que efectúa eficientemente las operaciones de suma y producto.
Función de Euler (phi, j ): esta función tiene como entrada un número entero y da como resultado el número de primos relativos a
n que son menores a
n. Para el caso de RSA es usado phi(
n) con n la clave pública, en este caso phi(
n)=(
p-1)(
q-1)
Función de Carmichael (lamda l ): esta función tiene como estrada un número entero y da como salida (para el caso
n=
pq) al mínimo común múltiplo de (
p-1)(
q-1). En el sistema RSA es usado para realizar el cifrado y descifrado más eficientemente, se asume esta función en el PKCS #1 v 2.
Curva elíptica: una curva elíptica en el caso de la cripotgrafia se considera como una ecuación de dos variables de grado 3, es decir la máxima potencia de las variables debe ser 3. Por ejemplo
y2=
x3+2
x+3 es una curva elíptica. Además de no contener puntos malos en criptografía llamados singulares.
Punto racional: es una pareja (
x,
y) de elementos de un campo que satisfacen la ecuación de una curva elíptica. El conjunto de puntos racionales de la curva elíptica
y2=
x3+
ax+
b, se denota como E:
y2=
x3+
ax+
b.
Número de puntos racionales: en un sistema criptográfico con curvas elípticas es muy importante el número de puntos racionales (llamado el orden de la curva) ya que este número debe contener como factor a un número primo de al menos 163 bits para considerar que la curva sea segura en criptografía.
Curva supersingular: son curvas elípticas que por un lado tienen la propiedad de ser muy fácil calcular el número de puntos racionales pero por el otro existe un método llamado MOV (de Menezes, Okamoto, Vanstone) que permite calcular logaritmos discretos y así no son recomendables para su uso en criptografía.
Curva no supersingular: son curvas elípticas que son inmunes (en la práctica) al MOV además de ser muchas curvas y son las más recomendables para el uso en cripotgrafía por los estándares actuales.
Curva anómala: es una curva elíptica que tiene tantos puntos racionales como elementos tiene el campo finito (en uso), para este tipo de curvas existe un método que calcular logaritmos discretos, por que se recomienda evitarlas.
Curva hiperelíptica: es una curva que generaliza a una curva elíptica y que también han sido propuestas para ser usadas en criptografía.
Divisores: el papel de puntos racional de una curva elíptica lo toman los divisores.
Retícula: es otro conjunto de elementos que han propuesto para ser usados en cripotografía de hecho ya existen sistemas comerciales que las usan.
Campo numérico real: es un conjunto del tipo
a+(
d1/2)
b, donde
a,b son números reales y que tienen propiedades que permiten ser usados en criptografía. También existen sistemas comerciales que lo usan.