Cifrado

Na Galipedia, a Wikipedia en galego.
Saltar ata a navegación Saltar á procura
Exemplo de cifrado con Vernam.

En criptografía, o cifrado é un procedemento que utiliza un algoritmo de cifrado cunha clave de cifrado 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 descifrado do algoritmo.[1] As claves de cifrado e de descifrado poden ser iguais (criptografía simétrica), distintas (criptografía asimétrica) ou de ambos os tipos (criptografía híbrida).[2]

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 o cifrado 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[editar | editar a fonte]

No proceso de cifrado e/ou descifrado establécense unha serie de termos e convenios para facilitar referirse aos distintos elementos que interveñen:[2]

  • 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 o cifrado, é dicir, a mensaxe cifrada.
  • O cifrado é 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 cifrado ou cifra é o algoritmo que se utiliza para cifrar.
  • A clave de cifrado utilízase no algoritmo de cifrado.
  • O descifrado é o proceso de converter o texto cifrado no texto en claro.
  • O descifrador é o sistema que implementa o algoritmo de descifrado.
  • O algoritmo de descifrado ou descifra é o algoritmo que se utiliza para descifrar.
  • A clave de descifrado utilízase no algoritmo de descifrado.
  • 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 o cifrado.
  • O criptosistema é o conxunto estruturado dos protocolos, os algoritmos de cifrado/descifrado, 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 cifrado/descifrado 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 cifrado e descifrado 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.[3]

Preprocesado do texto simple[editar | editar a fonte]

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 o cifrado ou fagan que o cifrado resultante sexa máis resistente fronte a ataques por criptoanálisis. Todos estes cambios teranse que ter en conta cando se realice o descifrado 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 algoritmo de cifrado 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:
48 65 6C 6C 6F 20 57 6F 72 6C 64
Esta cadea de bytes poderiamos convertela nun número concatenándoos obtendo:
0x48656C6C6F20576F726C64=87521618088882533792115812
  • 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"

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 cifrado segundo as súas claves[editar | editar a fonte]

En esquemas de clave simétrica, as claves de cifrado e descifrado 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 cifrado para as transmisións dun día determinado.

Cifrado asimétrico[editar | editar a fonte]

Nos esquemas de cifrado de clave pública, a clave de cifrado publícase para que calquera poida usar e cifrar mensaxes. Con todo, só a parte receptora ten acceso á clave de descifrado que permite ler as mensaxes.[4] O cifrado de clave pública describiuse por primeira vez nun documento secreto en 1973; antes diso, todos os esquemas de cifrado eran de clave simétrica (tamén chamada clave privada).[5][6] 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.[7] unha aplicación de cifrado 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.[8] A este tipo de cifrado 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 cifrado 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 cifrado segundo os algoritmos[editar | editar a fonte]

Segundo a forma na que operan os algoritmos de cifrado ou descifrado, é posible distinguir varios tipos:[9]

  • Cifrado en fluxo: Nestes algoritmos o cifrado 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.
  • Cifrado por bloques: Neste tipo de algoritmos, o cifrado 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 (cifrado 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[editar | editar a fonte]

Na criptografía clásica os cifrados baseábanse na substitución (cifrado 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 cifrados por transposición que cambiaban a posición de caracteres ao longo da cadea que tiña que cifrarse. Por exemplo, un cifrado 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.[10]

Tipos de cifrado segundo as súas propiedades[editar | editar a fonte]

Moitas veces agrúpanse os algoritmos de cifrado en función das súas propiedades ou características. Estes son algúns exemplos:

  • cifrado seguro cara a adiante
  • cifrado con limiar
  • cifrado baseado en identidade
  • cifrado negable
  • cifrado con clave illada
  • cifrado maleable

Notas[editar | editar a fonte]

  1. "Definición de cifrar". Digalego (dicionario de galego da Xunta). Consultado o 29 de xuño de 2020. 
  2. 2,0 2,1 "¿Sabías que existen distintos tipos de cifrado para proteger la privacidad de nuestra información en Internet?". Oficina de Seguridad del Internauta (en castelán). Consultado o 29 de xuño do 2020. 
  3. "Definición de encriptar". Real Academia Galega. Consultado o 29 de xuño de 2020. 
  4. Bellare, Mihir. "Public-Key Encryption in a Multi-user Setting: Security Proofs and Improvements." Springer Berlin Heidelberg, 2000. Page 1.
  5. "Public-Key Encryption - how GCHQ got there first!". gchq.gov.uk. Archived from the original on May 19, 2010.
  6. Goldreich, Oded. Foundations of Cryptography: Volume 2, Basic Applications. Vol. 2. Cambridge university press, 2004.
  7. Diffie, Whitfield; Hellman, Martin (1976), New directions in cryptography, 22, IEEE transactions on Information Theory, pp. 644–654
  8. "Symantec buys encryption specialist PGP for $300M".
  9. José Pastor Franco, Miguel Ángel Sarasa López, José Luis Salazar Riaño (1997). Criptografía digital: fundamentos y aplicaciones. Zaragoza: Prenseas Universitarias de Zaragoza.
  10. "Criptografía clásica". spi1.nisu.org (en castelán). Consultado o 29 de xuño de 2020. 

Véxase tamén[editar | editar a fonte]

Ligazóns externas[editar | editar a fonte]