Cifrar
En criptografía, un cifrado (o cifrado) es un algoritmo para realizar el cifrado o descifrado, una serie de pasos bien definidos que se pueden seguir como un procedimiento. Un término alternativo menos común es cifrado. Cifrar o codificar es convertir información en cifrado o código. En el lenguaje común, "cifrado" es sinónimo de "código", ya que ambos son un conjunto de pasos que encriptan un mensaje; sin embargo, los conceptos son distintos en criptografía, especialmente en criptografía clásica.
Los códigos generalmente sustituyen cadenas de caracteres de diferente longitud en la salida, mientras que los cifrados generalmente sustituyen la misma cantidad de caracteres que se ingresan. Hay excepciones y algunos sistemas de cifrado pueden usar un poco más o menos caracteres cuando se emiten en comparación con el número que se ingresó.
Códigos operados por sustitución de acuerdo con un gran libro de códigos que vinculaba una cadena aleatoria de caracteres o números a una palabra o frase. Por ejemplo, "UQJHSE" podría ser el código para "Proceder a las siguientes coordenadas." Cuando se utiliza un cifrado, la información original se conoce como texto sin formato y la forma cifrada como texto cifrado. El mensaje de texto cifrado contiene toda la información del mensaje de texto sin formato, pero no está en un formato legible por un humano o una computadora sin el mecanismo adecuado para descifrarlo.
La operación de un cifrado generalmente depende de una pieza de información auxiliar, llamada clave (o, en el lenguaje tradicional de la NSA, una variable criptográfica). El procedimiento de cifrado varía según la clave, lo que cambia el funcionamiento detallado del algoritmo. Se debe seleccionar una clave antes de usar un cifrado para cifrar un mensaje. Sin el conocimiento de la clave, debería ser extremadamente difícil, si no imposible, descifrar el texto cifrado resultante en texto sin formato legible.
La mayoría de los cifrados modernos se pueden categorizar de varias maneras
- Si trabajan en bloques de símbolos generalmente de tamaño fijo (cifras de bloque), o en un flujo continuo de símbolos (cifras de corriente).
- Si la misma clave se utiliza tanto para cifrar como para descifrar (algoritmos de clave simétricos), o si se utiliza una clave diferente para cada algoritmo de clave asimétrica. Si el algoritmo es simétrico, la clave debe ser conocida por el receptor y el remitente y nadie más. Si el algoritmo es asimétrico, la clave de enciframiento es diferente, pero estrechamente relacionada con, la clave de desciframiento. Si una clave no puede deducirse de la otra, el algoritmo clave asimétrico tiene la propiedad clave pública/privada y una de las llaves puede ser hecha pública sin pérdida de confidencialidad.
Etimología
El sistema numérico romano era muy engorroso, en parte porque no existía el concepto de cero. El sistema de numeración árabe se extendió desde el mundo árabe a Europa en la Edad Media. En esta transición, la palabra árabe para cero صفر (sifr) se adoptó en el latín medieval como cifra, y luego en el francés medio como cifre. Esto finalmente condujo a la palabra inglesa cipher (ortografía minoritaria cypher). Una teoría sobre cómo el término llegó a referirse a la codificación es que el concepto de cero era confuso para los europeos, por lo que el término pasó a referirse a un mensaje o comunicación que no se entendía fácilmente.
El término cifrado también se usó más tarde para referirse a cualquier dígito arábigo, o al cálculo con ellos, por lo que codificar texto en forma de números arábigos es literalmente convertir el texto en "cifrados& #34;.
Códigos Versus
En uso no técnico, un "código (secreto)" típicamente significa un "cifrado". Sin embargo, dentro de las discusiones técnicas, las palabras "código" y "cifrado" hacen referencia a dos conceptos diferentes. Los códigos funcionan al nivel del significado, es decir, las palabras o frases se convierten en otra cosa y esta fragmentación generalmente acorta el mensaje.
Un ejemplo de esto es el código telegráfico comercial que se utilizó para acortar los mensajes telegráficos largos que resultaron de la celebración de contratos comerciales mediante intercambios de telegramas.
Otro ejemplo lo ofrecen los cifrados de palabras completas, que permiten al usuario reemplazar una palabra completa con un símbolo o carácter, al igual que los japoneses utilizan los caracteres Kanji (que significa caracteres chinos en japonés) para complementar su idioma. ex "El veloz zorro marrón salta sobre el perro perezoso" se convierte en "El marrón rápido 狐 salta 上 el perezoso 犬".
Los cifrados, por otro lado, funcionan en un nivel más bajo: el nivel de letras individuales, pequeños grupos de letras o, en esquemas modernos, bits individuales y bloques de bits. Algunos sistemas usaban códigos y cifrados en un solo sistema, usando supercifrado para aumentar la seguridad. En algunos casos, los términos códigos y cifrados también se utilizan como sinónimos de sustitución y transposición.
Históricamente, la criptografía se dividió en una dicotomía de códigos y cifrados; y la codificación tenía su propia terminología, análoga a la de los cifrados: "codificación, texto en código, descodificación" etcétera.
Sin embargo, los códigos tienen una variedad de inconvenientes, incluida la susceptibilidad al criptoanálisis y la dificultad de administrar un libro de códigos engorroso. Debido a esto, los códigos han caído en desuso en la criptografía moderna y los cifrados son la técnica dominante.
Tipos
Existe una variedad de diferentes tipos de encriptación. Los algoritmos utilizados anteriormente en la historia de la criptografía son sustancialmente diferentes de los métodos modernos, y los cifrados modernos se pueden clasificar según cómo funcionan y si utilizan una o dos claves.
Histórica
(feminine)Los cifrados históricos de lápiz y papel utilizados en el pasado a veces se conocen como cifrados clásicos. Incluyen cifrados de sustitución simples (como ROT13) y cifrados de transposición (como Rail Fence Cipher). Por ejemplo, "BUEN PERRO" se puede cifrar como "PLLX XLP" donde "L" sustituye a "O", "P" para "G" y "X" para "D" en el mensaje Transposición de las letras "GOOD DOG" puede resultar en "DGOGDOO". Estos cifrados y ejemplos simples son fáciles de descifrar, incluso sin pares de texto sin formato-texto cifrado.
Los cifrados simples fueron reemplazados por cifrados de sustitución polialfabéticos (como el Vigenère) que cambiaron el alfabeto de sustitución para cada letra. Por ejemplo, "BUEN PERRO" se puede cifrar como "PLSX TWF" donde "L", "S" y "W" sustituye a 'O'. Incluso con una pequeña cantidad de texto sin formato conocido o estimado, los cifrados de sustitución polialfabéticos simples y los cifrados de transposición de letras diseñados para el cifrado con lápiz y papel son fáciles de descifrar. Sin embargo, es posible crear un cifrado seguro de lápiz y papel basado en un bloc de notas de un solo uso, pero se aplican las desventajas habituales de los blocs de notas de un solo uso.
A principios del siglo XX, se inventaron máquinas electromecánicas para cifrar y descifrar mediante transposición, sustitución polialfabética y una especie de "aditivo" sustitución. En las máquinas de rotor, varios discos de rotor proporcionaron una sustitución polialfabética, mientras que los tableros de conexiones proporcionaron otra sustitución. Las llaves se cambiaron fácilmente cambiando los discos del rotor y los cables del clavijero. Aunque estos métodos de cifrado eran más complejos que los esquemas anteriores y requerían máquinas para cifrar y descifrar, se inventaron otras máquinas, como la British Bombe, para descifrar estos métodos de cifrado.
Moderno
Los métodos de cifrado modernos se pueden dividir según dos criterios: por tipo de clave utilizada y por tipo de datos de entrada.
Por tipo de clave, los cifrados utilizados se dividen en:
- algoritmos de clave simétricos (criptografía de clave privada), donde se utiliza una misma clave para encriptación y desciframiento, y
- algoritmos de clave asimétricos (criptografía de clave pública), donde se utilizan dos claves diferentes para el cifrado y el descifrado.
En un algoritmo de clave simétrica (p. ej., DES y AES), el remitente y el receptor deben tener una clave compartida configurada de antemano y mantenida en secreto para todas las demás partes; el remitente usa esta clave para el cifrado y el receptor usa la misma clave para el descifrado. El cifrado de Feistel utiliza una combinación de técnicas de sustitución y transposición. La mayoría de los algoritmos de cifrado de bloques se basan en esta estructura. En un algoritmo de clave asimétrica (por ejemplo, RSA), hay dos claves separadas: se publica una clave pública y permite que cualquier remitente realice el cifrado, mientras que se mantiene una clave privada secreto por el receptor y permite que sólo esa persona realice el descifrado correcto.
Los cifrados se pueden distinguir en dos tipos según el tipo de datos de entrada:
- bloque cifers, que cifran el bloque de datos de tamaño fijo, y
- Cifras de flujo, que encriptan flujos continuos de datos.
Tamaño de clave y vulnerabilidad
En un ataque matemático puro (es decir, sin ninguna otra información que ayude a descifrar un cifrado) dos factores cuentan sobre todo:
- Poder computacional disponible, es decir, el poder de computación que se puede llevar a cabo sobre el problema. Es importante señalar que el rendimiento/capacidad promedio de un solo ordenador no es el único factor a considerar. Un adversario puede utilizar múltiples ordenadores a la vez, por ejemplo, para aumentar la velocidad de búsqueda exhaustiva de una llave (es decir, "fuerza bruta" ataque) sustancialmente.
- Tamaño clave, es decir, el tamaño de la clave utilizada para encriptar un mensaje. A medida que aumenta el tamaño de la clave, también la complejidad de la búsqueda exhaustiva al punto en el que se convierte en poco práctico para romper el cifrado directamente.
Dado que el efecto deseado es la dificultad computacional, en teoría uno elegiría un algoritmo y el nivel de dificultad deseado, por lo tanto, decidiría la longitud de la clave en consecuencia.
Puede encontrar un ejemplo de este proceso en Longitud de clave, que utiliza múltiples informes para sugerir que un cifrado simétrico con 128 bits, un cifrado asimétrico con claves de 3072 bits y un cifrado de curva elíptica con 256 bits tienen dificultades similares en presente.
Claude Shannon demostró, usando consideraciones de teoría de la información, que cualquier cifrado teóricamente indescifrable debe tener claves que sean al menos tan largas como el texto sin formato, y que se usen solo una vez: bloc de notas de un solo uso.
Contenido relacionado
Conmutación de mensajes
SPSS
ArgoUML