Cifraxe

En criptografía, a cifraxe é un procedemento que utiliza un algoritmo de cifraxe cunha clave de cifraxe para transformar unha mensaxe, sen atender á súa estrutura lingüística ou significado, de tal forma que sexa incomprensible ou, polo menos, difícil de comprender a toda persoa que non teña a clave de descifraxe do algoritmo. As claves de cifraxe e de descifraxe poden ser iguais (criptografía simétrica), distintas (criptografía asimétrica) ou de ambos os tipos (criptografía híbrida).
O conxunto de caracteres usado na mensaxe sen cifrar pode non ser o mesmo que o xogo de caracteres que se usa na mensaxe cifrada.
Ás veces o texto cifrado escríbese en bloques de igual lonxitude. A estes bloques denomínaselles grupos. Estes grupos proporcionaban unha forma de verificación adicional, xa que o texto cifrado obtido debía ter un número enteiro de grupos. Se ao cifrar o texto plano non se ten ese número enteiro de grupos, entón adóitase encher ao final con ceros ou con caracteres sen sentido.
Aínda que a cifraxe poida volver secreto o contido dun documento, é necesario complementalo con outras técnicas criptográficas para poder comunicarse de maneira segura. Pode ser necesario garantir a integridade a autenticación das partes ou similares. Terminoloxía
No proceso de cifraxe e/ou descifraxe establécense unha serie de termos e convenios para facilitar referirse aos distintos elementos que interveñen: O texto en claro ou texto simple (en inglés, plain text) é a mensaxe que se cifra.
O criptograma ou texto cifrado é a mensaxe resultante unha vez que se produciu a cifraxe, é dicir, a mensaxe cifrada.
A cifraxe é o proceso que consiste en converter o texto plano nun galimatías ilegible (cifrar), a mensaxe cifrada.
O cifrador é o sistema que implementa o algoritmo de cifrado.
O algoritmo de cifraxe ou cifra é o algoritmo que se utiliza para cifrar.
A clave de cifraxe utilízase no algoritmo de cifraxe.
A descifraxe é o proceso de converter o texto cifrado no texto en claro.
O descifrador é o sistema que implementa o algoritmo de descifraxe.
O algoritmo de descifraxe ou descifra é o algoritmo que se utiliza para descifrar.
A clave de descifraxe utilízase no algoritmo de descifraxe.
A xestión de claves é o proceso de xeración, certificación, distribución e cancelación de todas as claves, necesarios para levar a cabo a cifraxe.
O criptosistema é o conxunto estruturado dos protocolos, os algoritmos de cifraxe/descifraxe, os procesos de xestión de claves e as actuacións dos usuarios.
A descrición de entidades: cando se desexa describir un algoritmo de cifraxe/descifraxe que involucra o envío de mensaxes secretas, moitos autores usan os nomes xenéricos Alice e Bob en lugar dos crípticos A e B. Se interveñen outras entidades (C, D, F. .. -o E quedaría reservada-), asígnanselles entón nomes que empecen con estas iniciais, e os máis frecuentes son Carol e Dave. Cando un escenario involucra protección fronte a atacantes que fan escoitas, entón para referirse a eles adóitase usar o nome Eve (do termo inglés eavesdropper, "fisgón") ou ben o nome Mallory, no caso de que o atacante, ademais de interceptar a mensaxe, teña a habilidade de alterala.
Con frecuencia aos procesos de cifraxe e descifraxe denomínaselles encriptado e desencriptado, ambos os anglicismos dos termos ingleses encrypt e decrypt. A Real Academia Galega recolle esa acepción no seu dicionario. Preprocesamento do texto simple
Nalgunhas ocasións, antes de cifrar realízase un preproceso de adaptación do texto plano. Neste proceso pódense seguir varios pasos que permitan a cifraxe ou fagan que a cifraxe resultante sexa máis resistente fronte a ataques por criptoanálisis. Todos estes cambios teranse que ter en conta cando se realice a descifraxe para poder obter o texto plano orixinal. Por exemplo, son frecuentes as seguintes operacións: Conversión de alfabeto. Algúns cifradores usan un alfabeto do texto en claro que non se corresponde co da mensaxe que se quere cifrar. Por tanto, é necesario adaptar a mensaxe a ese alfabeto. Por exemplo, algúns cifradores usan como alfabeto do texto plano o alfabeto latino. Se se desexa cifrar un texto en español, é necesario realizar un proceso como resultado do cal non aparezan os caracteres H, J, Ñ, K, O, W e Y (por exemplo, poderían substituírse o O e o W polo V, o K co Q, o Ñ polo N, o Y polo I, o J polo G, e eliminar o H). Outro exemplo clásico é o caso de cifradores que non permiten cifrar minúsculas, nese caso será necesario converter todo en maiúsculas.
Preproceso para dificultar o criptoanálisis. Para aumentar a calidade do texto cifrado con certo cifrador, xa sexa pola súa resistencia fronte a ataques, extensión ou calquera outra circunstancia, ás veces se preprocesa o texto en claro. Algúns exemplos de estratexias son:
Inclusión de fragmentos que son para despistar e que non teñen ningún significado. Habitualmente estes fragmentos son caracteres, e denomínanse caracteres nulos.
Eliminación de situacións do texto claro que poden ser aproveitadas por ataques de criptoanálise. Por exemplo:
Os espazos en branco e signos de puntuación adoitan eliminarse para que, ademais de conseguir unha trasmisión máis eficiente, se consiga que as palabras non se poidan distinguir polos contornos. Isto pode producir ambigüidades que se tiñan que resolver polo contexto.
Os casos de secuencias de letras idénticas seguidas (por exemplo, RR ou LL do idioma español, en certos tipos de cifradores poden ser aproveitadas por atacantes. para romper estas secuencias de caracteres iguais, adoitan aplicarse dúas estratexias: eliminar un dos caracteres ou meter un contido que non se ten que interpretar (se é un só carácter, chámaselle carácter nulo).
Usar un código. Ás veces, antes de cifrar, utilízase un código que dificulta chegar ao significado de certas palabras ou frases especialmente importantes ou habituais.
Conversión a números. Hai algúns algoritmos de cifraxe como o RSA que necesitan converter os caracteres en números. Pódense seguir distintas estratexias. Vexamos algún exemplo:
Poderiamos usar unha táboa de conversión dos caracteres en números usando algún sistema de codificación de caracteres como ASCII ou Unicode. Por exemplo a mensaxe "Hello World" usando Unicode-8 quedaría:
48656C 6C 6F 20576F 726C 64
Esta cadea de bytes poderiamos convertela nun número concatenándoos obtendo:
0x48656C6C6F20576F726C6487521618088882533792115812
Outra opción podería ser considerar que os caracteres están ordenados segundo un criterio e interpretar a cadea como un número con base o número de caracteres do alfabeto. Por exemplo se consideramos que só hai caracteres en maiúsculas e ordenámolos segundo a orde alfabética teriamos por exemplo:
"MESA"
7 ⋅ 263 + 8 ⋅ 262 + 9 ⋅ 26 + 14
128688 {\displaystyle
7\cdot 26^{3}+8\cdot 26^{2}+9\cdot 26+14
128688} En calquera caso o número resultante pode ser demasiado pequeno, o que podería producir un texto cifrado que non sexa seguro. Para iso adóitase aplicar un esquema de recheo (exemplo PKCS#1v1. 5, o cal está xa roto, ou OAEP descrito en PKCS#1v2. 0) Tipos de cifraxe segundo as súas claves
En esquemas de clave simétrica, as claves de cifraxe e descifraxe son as mesmas. As partes comunicantes deben ter a mesma clave para lograr unha comunicación segura. Un exemplo dunha clave simétrica é a máquina Enigma do exército alemán. Había configuracións clave para cada día. Cando os aliados descubriron como funcionaba a máquina, puideron descifrar a información codificada dentro das mensaxes tan axiña como puideron descubrir a clave de cifraxe para as transmisións dun día determinado.
Cifraxe asimétrica
Nos esquemas de cifraxe de clave pública, a clave de cifraxe publícase para que calquera poida usar e cifrar mensaxes. Con todo, só a parte receptora ten acceso á clave de descifraxe que permite ler as mensaxes. A cifraxe de clave pública describiuse por primeira vez nun documento secreto en 1973; antes diso, todos os esquemas de cifraxe eran de clave simétrica (tamén chamada clave privada). Aínda que se publicou posteriormente, o traballo de Diffie e Hellman, foi publicado nunha revista cun gran número de lectores, e o valor da metodoloxía describiuse explicitamente e o método coñeceuse como o intercambio de claves Diffie Hellman. unha aplicación de cifraxe de clave pública dispoñible publicamente chamada Pretty Good Privacy (PGP) foi escrita en 1991 por Phil Zimmermann e distribuída gratuitamente co código fonte. PGP foi comprado por Symantec en 2010 e actualízase regularmente. A este tipo de cifraxe tamén se lle chama criptografía de clave pública ou PKE (do inglés Public-Key Encryption). Os métodos máis coñecidos deste tipo de cifraxe son o RSA e ElGamal.
A utilización dun sistema simétrico ou asimétrico depende das tarefas a cumprir. A criptografía asimétrica presenta dúas vantaxes principais: suprime o problema de transmisión segura da clave e permite a firma electrónica. Non substitúe con todo os sistemas simétricos, xa que os tempos de cálculo son máis curtos cos sistemas simétricos que cos asimétricos. Tipos de cifraxe segundo os algoritmos
Segundo a forma na que operan os algoritmos de cifraxe ou descifraxe, é posible distinguir varios tipos: Cifraxe en fluxo: nestes algoritmos a cifraxe realízase bit a bit. Están baseados na utilización de claves moi longas que son utilizadas tanto para cifrar como para descifrar. Estas claves poden estar predeterminadas (caderno dun só uso) ou xerarse usando un xerador de claves pseudoaleatorias ou RKG (acrónimo do inglés random key generator), que xera unha secuencia binaria pseudoaleatoria a partir dunha clave de inicialización K. Ás veces, no cálculo da clave pseudoaleatoria tamén intervén a mensaxe cifrada até ese momento. Por outra banda, o cifrador propiamente dito: habitualmente neste tipo de algoritmos hai que manter en segredo tanto a clave como o cifrador.
Cifraxe por bloques: neste tipo de algoritmos, a cifraxe realízase bloque a bloque. En primeira instancia, descomponse a mensaxe en bloques da mesma lonxitude. A continuación, cada bloque vaise convertendo nun bloque da mensaxe cifrada mediante unha secuencia de operacións. Exemplos típicos de operacións realizadas para conseguir cada mensaxe cifrada son a substitución e a permutación (cifraxe por transposición) de elementos.
Este tipo de algoritmos poden ser tanto de clave simétrica como de clave asimétrica. Con todo, na bibliografía adoita haber confusión e é frecuente ver casos en que se refiren só a algoritmos de clave simétrica.
Criptografía clásica
Na criptografía clásica as cifraxes baseábanse na substitución (cifraxe por substitución), na permutación (cifrado por transposición) ou nunha combinación de ambas as técnicas. Habitualmente, as operacións aplicábanse a bloques aínda que outras veces aplicábanse ao texto plano completo. Había cifraxes por transposición que cambiaban a posición de caracteres ao longo da cadea que tiña que cifrarse. Por exemplo, unha cifraxe podía consistir en permutar e investir a orde dos caracteres, deixando o primeiro carácter na última posición, o último na primeira posición, o segundo en penúltimo lugar etc. Tipos de cifraxe segundo as súas propiedades
Moitas veces agrúpanse os algoritmos de cifraxe en función das súas propiedades ou características. Estes son algúns exemplos: cifraxe segura cara a adiante
cifraxe con limiar
cifraxe baseada en identidade
cifraxe negable
cifraxe con clave illada
cifraxe maleable