security - tipos - ¿Dónde puedo aprender sobre métodos probados para compartir claves criptográficas?
tipos de criptografia (5)
Supongamos que un grupo quiere encriptar cierta información, luego comparte la clave de encriptación entre los miembros del grupo de una manera que requiere el consenso del grupo para descifrar la información. Estoy interesado en una variedad de escenarios donde la amplitud del consenso va desde la unanimidad hasta la mayoría absoluta. Una técnica útil puede aplicarse a claves simétricas, claves privadas o ambas.
Podría profundizar en mi propio método, ya que estoy seguro de que muchos miembros de SO podrían hacerlo. Pero a los fines de esta pregunta, me interesan solo los métodos que se han publicado ampliamente y han resistido el escrutinio de criptoanalistas expertos. Las citas de la revista son buenas, pero la interpretación de las fuentes académicas también es muy útil.
Esto es fácil de implementar con códigos de corrección de errores . Puede usar una herramienta de línea de comandos como par2 (que no es exactamente apropiada para este propósito específico, por cierto, ya que genera bloques de recuperación de tamaño variable). Digamos que tiene (n + m) votantes, y quiere un quórum de n votos. Generas n claves privadas K₁∘, K₂, ... Kn, y generas m bloques adicionales ECC Pₓ del mismo tamaño. De esta forma, cualquier n bloques es suficiente para reconstituir el cifrado K₁∘K₂∘ ... ∘Kn
Lo que describes se parece mucho a "división secreta" (Sección 12.1. Introducción a la Citografía, Trappe y Washington, 2da edición). La idea básica es que puedes crear un polinomio que incluya tu "secreto" (una clave) como un punto en la línea. Puede dar "acciones" eligiendo otros puntos en este polinomio. Dos puntos definen una línea de la forma f (x) = ax + b, tres puntos definen un polinomio de la forma f (x) = ax ^ 2 + bx + c, y cuatro puntos definen algo de la forma f (x) = ax ^ 3 + bx ^ 2 + cx + d, y así sucesivamente. Puede elegir un polinomio que incluya su secreto como punto y un grado suficiente para que el polinomio lo pueda reconstruir.
Esta es la idea básica que se conoce como el "esquema de umbral de Shamir".
Ver wikipedia en Secret Splitting y Shamir''s Secret Sharing La página de wikipedia tiene algunos enlaces a implementaciones de esta idea, incluido el código GPL para Windows y UNIX .
Siempre me ha fascinado esta técnica secreta para compartir. He visto código implementarlo en Internet, pero nunca he visto aplicaciones reales. Compartimiento secreto de Shamir El artículo de wikipedia se vincula a un código real, así como al artículo académico original.
Vaya aquí para una discusión sobre las bases matemáticas del intercambio secreto de Shamir y una breve discusión sobre el tipo de aplicaciones prácticas que tiene. Desplácese hacia abajo por las notas de la conferencia sobre Polinomios y uso compartido secreto. Es probable que sea una descripción general básica del área, pero debería ser bastante interesante para usted. Notas de Matemáticas Discretas
Lotus Notes proporciona una implementación práctica de ''contraseñas de Silo'' mediante el cual el acceso a algún recurso (datos / información / documento) está bloqueado en una ''identificación compartida'' - la identificación (parte de un sistema PKI certificado que creo basado en RSA) está configurado con 2 o más (creo que hasta 16) contraseñas de usuario individuales. El certificador / administrador establece un esquema mediante el cual se necesita cualquier número de contraseñas de esas disponibles o todas las contraseñas para ''abrir'' la identificación para uso activo. Este proceso se usa comúnmente para bloquear certificados Org u OU a 2 de 5 o 3 de 5 administradores / acceso de concesión de oficiales corporativos y así asegurar que se pueda controlar el uso / acceso de certificados de alto nivel y se evite al personal de administración ausente.