Criptografía de chave pública
| Criptografía de chave pública | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
| |||||||||||||
| Wikidata C:Commons | |||||||||||||

A criptografía de chave pública, ou criptografía asimétrica, é o conxunto de técnicas que empregan pares de chaves matematicamente relacionadas: unha chave pública, que pode distribuírse, e unha chave privada, que se mantén en segredo. Segundo o esquema, estas chaves permiten cifrar mensaxes para un destinatario, crear sinaturas dixitais ou establecer material de chaves compartido.[1]
A separación de chaves permite publicar a información necesaria para cifrar ou verificar unha sinatura sen revelar o segredo correspondente. Porén, é necesario autenticar a relación entre unha chave pública e a entidade á que se atribúe; doutro xeito, un atacante podería substituíla pola súa.[2]
Descrición
[editar | editar a fonte]O usuario xera o seu par de chaves mediante o algoritmo do esquema. A relación matemática permite realizar as operacións previstas coa chave pública, pero debe facer computacionalmente inviable obter a chave privada a partir dela cos parámetros escollidos. A seguridade depende dos problemas matemáticos e do modelo de ataque considerados, e non de manter secreto o algoritmo.[1]
Cifraxe
[editar | editar a fonte]
Nun esquema de cifraxe de chave pública, o emisor emprega a chave pública autenticada do destinatario para transformar unha mensaxe nun texto cifrado. O destinatario usa a súa chave privada para recuperala. As construcións modernas incorporan aleatoriedade ou codificacións axeitadas: aplicar sen máis unha operación alxébrica como RSA non proporciona por si só todas as garantías de seguridade requiridas.[1]
Sinaturas dixitais
[editar | editar a fonte]
Nun esquema de sinatura dixital, o asinante produce unha sinatura coa súa chave privada e o verificador compróbaa coa chave pública correspondente. A autenticación desa chave é a que permite relacionar a sinatura cunha identidade. A non falsificabilidade esixe que un adversario sen a chave privada non poida producir sinaturas válidas para mensaxes novas nas condicións do modelo de seguridade; observar ou reenviar unha sinatura xa existente non equivale a falsificala.[2]
Acordo e autenticación de chaves
[editar | editar a fonte]
Protocolos como Diffie–Hellman permiten que as partes deriven un segredo compartido. O acordo por si só non autentica os participantes; a autenticación pode incorporarse mediante certificados, sinaturas, chaves precompartidas ou outros mecanismos do protocolo.[3]
A infraestrutura de chave pública emprega certificados para vincular chaves públicas con identidades baixo unhas regras de confianza. Unha alternativa é o modelo de rede de confianza, empregado en PGP, no que os usuarios avalan outras chaves.[2] DKIM utiliza outro mecanismo: publica chaves no DNS para verificar as sinaturas asociadas a dominios no correo electrónico.[4]
Criptosistemas híbridos
[editar | editar a fonte]A cifraxe asimétrica adoita combinarse coa simétrica. Nun criptosistema híbrido, un mecanismo asimétrico protexe ou permite establecer unha chave, e un algoritmo simétrico cifra os datos. Por exemplo, o emisor pode xerar unha chave de sesión e protexela coa chave pública do destinatario.[1]
Nos protocolos de comunicación tamén se pode derivar o material de chaves mediante un acordo como Diffie–Hellman. Por iso, non hai unha regra xeral pola que un servidor deba xerar e enviar a chave simétrica ao cliente. TLS 1.3 negocia material compartido a partir das achegas das partes ou de chaves precompartidas, segundo a modalidade.[3]
Seguridade e xestión das chaves
[editar | editar a fonte]Algoritmos e parámetros
[editar | editar a fonte]A dificultade dos problemas matemáticos, os parámetros, a aleatoriedade e a implementación condicionan a seguridade. Unha operación alxébrica que permite cifrar e descifrar non é necesariamente unha cifraxe segura fronte aos ataques considerados; por exemplo, a seguridade semántica pretende impedir que o texto cifrado permita extraer información computacionalmente útil sobre a mensaxe.[1]
Autenticidade das chaves públicas
[editar | editar a fonte]Se un atacante logra substituír unha chave pública durante un intercambio non autenticado, pode establecer comunicacións separadas coas dúas partes e actuar como intermediario. Isto non implica que a mera observación dos paquetes rompa unha cifraxe correctamente deseñada. Os certificados, as impresións dixitais verificadas por unha canle fiable e os mecanismos de autenticación do protocolo son formas de protexer o intercambio; non é necesario controlar fisicamente toda a infraestrutura.[2][3]
Compromiso e revogación
[editar | editar a fonte]A exposición dunha chave de sinatura permite a un atacante intentar facerse pasar polo seu titular mediante novas sinaturas. A exposición dunha chave de descifraxe pode comprometer os datos protexidos con ela. Estes efectos non son intercambiables: nos protocolos con confidencialidade cara adiante (forward secrecy, protección das comunicacións anteriores fronte ao compromiso posterior das chaves de longo prazo), a revelación da chave de autenticación non implica por si soa recuperar os segredos efémeros de sesións rematadas.[3]
Unha autoridade de certificación vincula unha chave pública cunha identidade baixo unha política determinada. As chaves raíz deben ser aceptadas mediante un procedemento de confianza externo á propia autosinatura do certificado. Se unha autoridade é comprometida, pode ser necesario revogar certificados e substituír chaves ou áncoras de confianza; o alcance depende da xerarquía, das restricións dos certificados e dos protocolos empregados.[2]
Metadatos
[editar | editar a fonte]A cifraxe protexe os datos que se inclúen no seu alcance. Outros datos, como tamaños, enderezos ou información de encamiñamento, poden permanecer visibles segundo o sistema. Esta é unha cuestión do deseño do protocolo e da súa implantación, non unha propiedade que obrigue a toda cifraxe de chave pública a deixar sempre sen protección os mesmos campos.[3]
Historia
[editar | editar a fonte]A distribución das chaves secretas foi un problema central dos sistemas de cifraxe: as partes necesitaban un procedemento fiable para obter e autenticar os segredos compartidos. A criptografía de chave pública introduciu outras formas de organizar esa distribución, aínda que non elimina a necesidade de establecer confianza nas chaves.[2]
Antecedentes
[editar | editar a fonte]En 1874, William Stanley Jevons empregou a dificultade de factorizar un número grande como exemplo da diferenza entre realizar unha operación e invertela. Solomon W. Golomb comentou posteriormente a relación dese exemplo coa dificultade utilizada en RSA. Isto non constitúe unha descrición dun sistema de criptografía de chave pública por parte de Jevons.[5][6][7]
Descubrimento clasificado
[editar | editar a fonte]En 1970, James H. Ellis, un criptógrafo británico do Government Communications Headquarters (GCHQ) do Reino Unido, concibiu a posibilidade dunha «cifraxe non secreta» («non-secret encryption», agora chamada criptografía de chave pública), pero non vía xeito de implementala.[8][9][10]
En 1973, o seu colega Clifford Cocks describiu o que chegou a coñecerse como o algoritmo de cifraxe RSA, proporcionando un método práctico de «cifraxe non secreta», e en 1974 outro matemático e criptógrafo do GCHQ, Malcolm J. Williamson, desenvolveu o que hoxe se coñece como intercambio de chaves Diffie–Hellman. O esquema tamén se transmitiu á National Security Agency dos Estados Unidos.[11] Ambas as organizacións tiñan un enfoque militar e en calquera caso só se dispuña dunha potencia de computación limitada; o potencial da criptografía de chave pública seguiu sen ser aproveitado por ningunha das organizacións.
Estes descubrimentos non se recoñeceron publicamente ata que a investigación foi desclasificada polo Goberno británico en 1997.[12]
Descubrimento público
[editar | editar a fonte]En 1976, Whitfield Diffie e Martin Hellman publicaron a súa proposta de criptografía de chave pública e un método para acordar unha chave compartida mediante exponenciación nun corpo finito. Tamén recoñeceron a contribución das ideas de Ralph Merkle sobre distribución de chaves. O método coñécese como intercambio de chaves Diffie–Hellman.[13]
En 1977, Ron Rivest, Adi Shamir e Leonard Adleman desenvolveron de maneira independente o sistema RSA. A descrición técnica publicouse en Communications of the ACM en 1978; Martin Gardner xa presentara unha explicación divulgativa en Scientific American en agosto de 1977.[14]
A técnica de acordo de chaves de Merkle, coñecida como crebacabezas de Merkle, inventouse en 1974 e publicouse en 1978. Diffie e Hellman xa recoñeceran a súa contribución no artigo de 1976.[13]
Desde a década de 1970 desenvolveuse unha gran variedade de técnicas de cifraxe, sinatura dixital, acordo de chaves e outras, entre elas a sinatura Rabin, a cifraxe ElGamal, o DSA e a ECC. A súa adopción e os parámetros apropiados dependen da aplicación e dos estándares correspondentes.[1]
Ademais dos algoritmos desenvolvidos nas comunidades académicas e de estándares abertas, varios países crearon estándares nacionais de criptografía de chave pública para o seu uso interno, como SM2 e SM9 (China), GOST R 34.10-2012 (Rusia), EC-KCDSA (Corea do Sur) e DSTU 4145 (Ucraína).
Exemplos e aplicacións
[editar | editar a fonte]RSA é un exemplo de construción empregada en esquemas de cifraxe e de sinatura, con codificacións e regras específicas para cada finalidade. ElGamal é outro esquema de cifraxe de chave pública. O transporte dunha chave mediante cifraxe debe distinguirse do seu acordo entre as partes.[1]
Diffie–Hellman e a súa variante sobre curvas elípticas úsanse para o acordo de chaves. ECDSA e EdDSA son familias de algoritmos de sinatura. Protocolos como TLS combinan mecanismos de autenticación, establecemento de chaves e protección simétrica do tráfico.[3]
En 2024 o NIST normalizou ML-KEM, un mecanismo de encapsulamento de chaves derivado de Kyber, no FIPS 203. A súa seguridade baséase nun problema de aprendizaxe con erros sobre módulos e está deseñado para resistir tamén adversarios cuánticos, baixo as hipóteses do estándar.[15]
As aplicacións deben distinguirse dos estándares que implementan: por exemplo, GnuPG é software que implementa OpenPGP, non o propio estándar.[16]
Entre as técnicas asimétricas máis establecidas, para propósitos variados, están o protocolo de intercambio de chaves Diffie-Hellman, o estándar de sinatura dixital (DSS, que incorpora o algoritmo de sinatura dixital), ElGamal, a criptografía de curva elíptica (co ECDSA, o ECDH, Ed25519 e Ed448 dentro de EdDSA, e X25519 e X448), as técnicas de acordo de chaves autenticado por contrasinal, o criptosistema Paillier, o algoritmo RSA con PKCS#1, o criptosistema Cramer-Shoup e o protocolo de acordo de chaves autenticado YAK.
Outros algoritmos asimétricos son NTRUEncrypt, Kyber e o criptosistema McEliece. Kyber deu lugar ao estándar ML-KEM de 2024.[15] Un exemplo de algoritmo asimétrico notable pero inseguro é o criptosistema de mochila Merkle-Hellman.
Entre os protocolos e sistemas que empregan algoritmos de chave pública están S/MIME, OpenPGP, EMV, IPsec, PGP, ZRTP, TLS (do IETF, e o seu predecesor SSL), SILC, SSH, Bitcoin e Off-the-Record Messaging. GPG é unha implementación de OpenPGP.
Notas
[editar | editar a fonte]- 1 2 3 4 5 6 7 Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (1996). "Public-Key Encryption" (PDF). Handbook of Applied Cryptography (en inglés). CRC Press. Consultado o 14 de setembro de 2026.
- 1 2 3 4 5 6 Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (1996). "Key Management Techniques" (PDF). Handbook of Applied Cryptography (en inglés). CRC Press. Consultado o 14 de setembro de 2026.
- 1 2 3 4 5 6 Eric Rescorla (agosto de 2018). "The Transport Layer Security (TLS) Protocol Version 1.3" (en inglés). IETF. RFC 8446. Consultado o 14 de setembro de 2026.
- ↑ D. Crocker; T. Hansen; M. Kucherawy (setembro de 2011). "DomainKeys Identified Mail (DKIM) Signatures" (en inglés). IETF. RFC 6376. Consultado o 14 de setembro de 2026.
- ↑ Jevons, W.S. (1874). The Principles of Science: A Treatise on Logic and Scientific Method (en inglés). Macmillan & Co. p. 141. Consultado o 18 de xaneiro de 2024.
- ↑ Weisstein, E.W. (2024). "Jevons' Number" (en inglés). MathWorld. Consultado o 18 de xaneiro de 2024.
- ↑ Golomb, Solomon W. (1996). "On Factoring Jevons' Number". Cryptologia (en inglés) 20 (3): 243. doi:10.1080/0161-119691884933.
- ↑ Ellis, James H. (xaneiro de 1970). "The Possibility of Secure Non-secret Digital Encryption" (PDF) (en inglés). CryptoCellar. Consultado o 18 de xaneiro de 2024.
- ↑ Ellis, James H. (xaneiro de 1970). "The Possibility of Secure Non-secret Digital Encryption" (en inglés). The George Washington University. Consultado o 8 de decembro de 2025.
- ↑ Sawer, Patrick (11 de marzo de 2016). "The unsung genius who secured Britain's computer defences and paved the way for safe online shopping". The Telegraph (en inglés).
- ↑ Espiner, Tom (26 de outubro de 2010). "GCHQ pioneers on birth of public key crypto". ZDNet (en inglés).
- ↑ Singh, Simon (1999). The Code Book (en inglés). Doubleday. pp. 279–292.
- 1 2 Diffie, Whitfield; Hellman, Martin E. (novembro de 1976). "New Directions in Cryptography" (PDF). IEEE Transactions on Information Theory (en inglés) 22 (6): 644–654. Bibcode:1976ITIT...22..644D. doi:10.1109/TIT.1976.1055638. Arquivado (PDF) dende o orixinal o 29 de novembro de 2014.
- ↑ Rivest, R.; Shamir, A.; Adleman, L. (febreiro de 1978). "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems" (PDF). Communications of the ACM (en inglés) 21 (2): 120–126. doi:10.1145/359340.359342. Arquivado dende o orixinal (PDF) o 17 de decembro de 2008. Consultado o 15 de novembro de 2019.
- 1 2 NIST (13 de agosto de 2024). "Module-Lattice-Based Key-Encapsulation Mechanism Standard" (en inglés). FIPS 203. Consultado o 14 de setembro de 2026.
- ↑ The GnuPG Project. "The GNU Privacy Guard" (en inglés). Consultado o 14 de setembro de 2026.
Véxase tamén
[editar | editar a fonte]Bibliografía
[editar | editar a fonte]- Hirsch, Frederick J. "SSL/TLS Strong Encryption: An Introduction". Apache HTTP Server (en inglés). Consultado o 17 de abril de 2013. Introdución ás chaves públicas e á súa utilización en SSL/TLS.
- Ferguson, Niels; Schneier, Bruce (2003). Practical Cryptography (en inglés). Wiley. ISBN 0-471-22357-3.
- Katz, Jon; Lindell, Y. (2007). Introduction to Modern Cryptography (en inglés). CRC Press. ISBN 978-1-58488-551-1.
- Menezes, A. J.; van Oorschot, P. C.; Vanstone, Scott A. (1997). Handbook of Applied Cryptography (en inglés). Taylor & Francis. ISBN 0-8493-8523-7.
- IEEE 1363: Standard Specifications for Public-Key Cryptography (en inglés)
- Christof Paar, Jan Pelzl, «Introduction to Public-Key Cryptography», capítulo 6 de Understanding Cryptography, A Textbook for Students and Practitioners (o sitio web complementario contén un curso en liña de criptografía que abrangue a criptografía de chave pública), Springer, 2009. (en inglés)
- Salomaa, Arto (1996). Public-Key Cryptography (en inglés) (2 ed.). Berlín: Springer. p. 275. ISBN 978-3-662-03269-5. doi:10.1007/978-3-662-03269-5.
Outros artigos
[editar | editar a fonte]Ligazóns externas
[editar | editar a fonte]- Oral history interview with Martin Hellman, Charles Babbage Institute, Universidade de Minnesota. Martin Hellman fala das circunstancias e das ideas fundamentais do desenvolvemento da criptografía de chave pública cos colaboradores Whitfield Diffie e Ralph Merkle na Universidade de Stanford a mediados da década de 1970. (en inglés)