stringtranslate.com

Primitiva criptográfica

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 primitivas criptográficas como sus componentes más básicos. Debido a esto, las primitivas criptográficas están diseñadas para realizar una tarea muy específica de una manera definida con precisión y altamente confiable.

Dado que las primitivas criptográficas se utilizan como bloques de construcción, deben ser muy fiables, es decir, funcionar según sus especificaciones. Por ejemplo, si una rutina de cifrado afirma que solo se puede romper con un número X de operaciones de computadora, y se rompe con un número significativamente menor de X operaciones, entonces esa primitiva criptográfica ha fallado. Si se descubre que una primitiva criptográfica falla, casi todos los protocolos que la utilizan se vuelven vulnerables. Dado que crear rutinas criptográficas es muy difícil y probar su confiabilidad lleva mucho tiempo, esencialmente nunca es sensato (ni seguro) diseñar una nueva primitiva criptográfica que se adapte a las necesidades de un nuevo sistema criptográfico. Las razones incluyen:

Las primitivas criptográficas 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 seguras las primitivas que utilizan. Elegir la mejor primitiva disponible para usar en un protocolo normalmente proporciona la mejor seguridad disponible. Sin embargo, las debilidades de composición son posibles en cualquier criptosistema y es responsabilidad del diseñador evitarlas.

Combinando primitivas criptográficas

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

Combinar primitivas criptográficas para crear un protocolo de seguridad es en sí mismo toda una especialización. La mayoría de los errores explotables (es decir, inseguridades en los criptosistemas) no se deben a errores de diseño en las primitivas (asumiendo siempre que fueron elegidas con cuidado), sino a la forma en que se utilizan, es decir, un mal diseño del protocolo y una implementación con errores o no lo suficientemente cuidadosa. El análisis matemático de los protocolos, al momento de escribir este artículo, no está maduro. [ cita necesaria ] Hay algunas propiedades básicas que se pueden verificar con métodos automatizados, como la lógica BAN . Incluso existen métodos para la verificación completa (por ejemplo, el cálculo SPI ), pero son extremadamente engorrosos y no pueden automatizarse. 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í.

Primitivas de uso común

Ver también

Referencias

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