Cifraxe: Diferenzas entre revisións

Contido eliminado Contido engadido
Creada como tradución da páxina "Cifrado (criptografía)"
 
mSen resumo de edición
Liña 4:
O [[Alfabeto|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 unaunha forma de verificación adicional, xa que o texto cifrado obtido debía ter un número enteiro de grupos. Si 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 segredo o contido dun documento, é necesario complementalo con outras técnicas [[Criptografía|criptográficas]] para poder comunicarse de maneira segura. Pode ser necesario garantir a integridade a [[Autenticación|autenticación das partes]] ou similares.
 
== Terminoloxía ==
No proceso de cifrado e/ou descifrado establécense unaunha serie de termos e convenios para facilitar referirse aos distintos elementos que interveñen:<ref name=":0" />
 
* O '''texto en claro''' ou '''texto simple''' (en [[Lingua inglesa|inglés]], ''plain text'') é a mensaxe que se cifra.
* O '''criptograma''' ou '''texto cifrado''' é a mensaxe resultante unaunha 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.
Liña 19:
* 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 pairapara 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 pairapara 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. Si interveñen outras entidades (C, D, F... -a 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 pairapara referirse a eles adóitase usar o nome ''Eve'' (do termo inglés ''[[:en:eavesdropper|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 [[Anglicismo|anglicismos]] dos termos ingleses ''encrypt'' e ''decrypt''. A [[Real Academia Galega]] recolle esa acepción no seu dicionario.<ref>{{Cita web|url=https://academia.gal/dicionario/-/termo/encriptar|páxina-web=[[Real Academia Galega]]|título=Defincición de encriptar|data-acceso=29 de xuño de 2020}}</ref>
Liña 32:
* '''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. Si deséxase cifrar un texto en [[Lingua castelá|español]], é necesario realizar un proceso como resultado do cal non aparezan os caracteres H, J, Ñ, K, Ou, W e E (por exemplo, poderían substituírse a Ou e a W pola V, a K coa Q, a Ñ pola N, a E pola I, a J pola G, e eliminar a 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 pairapara 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 [[Criptoanalítica|criptoanálisis]]. Por exemplo:
*** Os espazos en branco e signos de puntuación adoitan eliminarse para que, ademais de conseguir unaunha trasmisión máis eficiente, consígase 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 [[Lingua castelá|idioma español]], en certos tipos de cifradores poden ser aproveitadas por atacantes. Pairapara 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 (si é 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 unaunha 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:
 
:: <code>48 65 6C 6C 6F 20 57 6F 72 6C 64</code>
Liña 46:
:: <code>"MESA"<math>= 7 \cdot 26^3+8 \cdot 26^2+9 \cdot 26+14 = 128688 </math> </code>
 
En calqueiracalquera 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 ==
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 unaunha comunicación segura. Un exemplo dunha clave simétrica é a [[máquina Enigma]] do exército alemán. Había configuracións crave 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 ===
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.<ref>Bellare, Mihir. "Public-Key Encryption in a Multi-user Setting: Security Proofs and Improvements." Springer Berlin
Heidelberg, 2000. Page 1.</ref> 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).<ref>"[https://web.archive.org/web/20100519084635/http://www.gchq.gov.uk/history/pke.html Public-Key Encryption - how GCHQ got there first!]". gchq.gov.uk. Archived from [http://www.gchq.gov.uk/history/pke.html the original] on May 19, 2010.</ref><ref>[[:en:Oded_Goldreich|Goldreich, Oded]]. Foundations of Cryptography: Volume 2, Basic Applications. Vol. 2. Cambridge university press, 2004.</ref> 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.<ref>Diffie, Whitfield; Hellman, Martin (1976), ''New directions in cryptography'', '''22''', IEEE transactions on Information Theory, pp. 644–654</ref>Unaunha 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.<ref>[http://www.computerworld.com/s/article/9176121/Symantec_buys_encryption_specialist_PGP_for_300M "Symantec buys encryption specialist PGP for $300M"].</ref> A este tipo de cifrado tamén se lle chama '''criptografía de clave pública''' ou '''PKE''' (do [[Lingua inglesa|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.
Liña 60:
Segundo a forma na que operan os algoritmos de cifrado ou descifrado, é posible distinguir varios tipos:<ref>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.</ref>
 
* 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 pairapara cifrar como pairapara 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 unaunha secuencia binaria pseudoaleatoria a partir de unaunha 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 devandito: 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 pairapara 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.