stringtranslate.com

Primitivo criptográfico

Las primitivas criptográficas son algoritmos criptográficos de bajo nivel bien establecidos que se utilizan con frecuencia para crear protocolos criptográficos para sistemas de seguridad informática . [1] Estas rutinas incluyen, entre otras, funciones hash unidireccionales y funciones de cifrado .

Razón fundamental

Al crear sistemas criptográficos , los diseñadores utilizan primitivos criptográficos como sus bloques de construcción más básicos. Por este motivo, los primitivos criptográficos están diseñados para realizar una tarea muy específica de una manera definida con precisión y altamente confiable.

Dado que los primitivos criptográficos se utilizan como bloques de construcción, deben ser muy fiables, es decir, funcionar de acuerdo con sus especificaciones. Por ejemplo, si una rutina de cifrado afirma que sólo se puede descifrar con X número de operaciones de la computadora, y se descifra con significativamente menos de X operaciones, entonces ese primitivo criptográfico ha fallado. Si se descubre que un primitivo criptográfico falla, casi todos los protocolos que lo utilizan se vuelven vulnerables. Dado que crear rutinas criptográficas es muy difícil y probar su fiabilidad lleva mucho tiempo, esencialmente nunca es sensato (ni seguro) diseñar un nuevo primitivo criptográfico que se adapte a las necesidades de un nuevo sistema criptográfico. Las razones incluyen:

Los primitivos criptográficos son uno de los componentes básicos de todo criptosistema, por ejemplo, TLS , SSL , SSH , etc. Los diseñadores de criptosistemas, al no estar en condiciones de demostrar definitivamente su seguridad, deben considerar seguros los primitivos que utilizan. La elección del mejor primitivo disponible para su uso en un protocolo suele proporcionar la mejor seguridad disponible. Sin embargo, es posible que existan debilidades en la composición de cualquier criptosistema y es responsabilidad del diseñador evitarlas.

Combinación de primitivas criptográficas

Los primitivos criptográficos no son sistemas criptográficos, ya que son bastante limitados por sí mismos. Por ejemplo, un algoritmo de cifrado simple no proporcionará ningún mecanismo de autenticación ni ninguna comprobación explícita de la integridad del mensaje. Solo cuando se combinan en protocolos de seguridad se puede satisfacer más de un requisito de seguridad. Por ejemplo, para transmitir un mensaje que no solo está codificado sino que también está protegido contra manipulaciones (es decir, es confidencial y su integridad está protegida ), se puede utilizar una rutina de codificación, como DES , y una rutina de hash como SHA-1 en combinación. Si el atacante no conoce la clave de cifrado, no puede modificar el mensaje de modo que los valores de resumen del mensaje sean válidos.

La combinación de primitivas criptográficas para crear un protocolo de seguridad es en sí misma una especialización completa. La mayoría de los errores explotables (es decir, las inseguridades en los criptosistemas) no se deben a errores de diseño en las primitivas (suponiendo siempre que se eligieron con cuidado), sino a la forma en que se usan, es decir, un mal diseño de protocolo y una implementación defectuosa o no lo suficientemente cuidadosa. El análisis matemático de protocolos, en el momento de escribir este artículo, no está maduro. [ cita requerida ] Hay algunas propiedades básicas que se pueden verificar con métodos automatizados, como la lógica BAN . Incluso hay métodos para la verificación completa (por ejemplo, el cálculo SPI ), pero son extremadamente engorrosos y no se pueden automatizar. El diseño de protocolos es un arte que requiere un conocimiento profundo y mucha práctica; incluso entonces, los errores son comunes. Se puede ver un ejemplo ilustrativo, para un sistema real, en la página de noticias sobre vulnerabilidades de OpenSSL aquí.

Primitivos de uso común

Véase también

Referencias

  1. ^ "Primitiva criptográfica - Glosario CSRC". csrc.nist.gov . Consultado el 19 de septiembre de 2021 .