¿Hay una suma de comprobación estándar para verificar fragmentos de clave de varias partes?

1

Tendremos una clave simétrica que llegará en tres partes componentes. Una vez que todas las partes llegan, los custodios de llaves se reunirán para una ceremonia donde cada uno de ellos ingresa su parte de la llave en un sistema seguro. Este sistema unirá las partes juntas para combinarlas en una llave final que se inyectará en el sistema receptor. El sistema de combinación secreta verifica que cada custodio haya ingresado correctamente su parte de la clave al hacer que cada custodio ingrese una suma de control para su parte clave; estas sumas de comprobación se generaron en el momento en que se dividió la clave. Para evitar ingresar una clave dañada, si hay algún error en la entrada de datos, el proceso debe terminarse y reiniciarse.

Mi pregunta es si hay algoritmos de suma de comprobación estándar utilizados para validar la entrada de clave en un sistema de intercambio de claves de varias partes. ¿O es esto algo que cada proveedor de criptografía normalmente crea por su cuenta?

    
pregunta John Deters 25.05.2018 - 00:35
fuente

1 respuesta

2

No hay un algoritmo estándar para la verificación de claves * , pero hay sumas de comprobación estándar.

Suponiendo que la verificación se realiza para detectar errores simples al recuperar o enviar la clave, cualquier algoritmo de suma de control confiable como CRC32 funcionará. De hecho, puede hacerse transparente para el titular de la clave incluyendo la suma de comprobación en la propia clave. Esto se puede hacer fácilmente para cualquier tecla K creando K '= K || H (K) , donde H es un hash o suma de comprobación. Cualquier error en la clave en sí o en la suma de comprobación daría lugar a que se descarte la clave. Las claves que se ingresan pueden, opcionalmente, tener su suma de verificación eliminada después de la verificación. Esto refleja técnicas históricas donde las claves de encriptación para algoritmos como DES bits de paridad incluidos en el estándar para garantizar cada 8 bits chunk es paridad impar.

Tienes algunas opciones para la suma de comprobación. Los bits de paridad son los más fáciles de implementar, pero están diseñados para detectar errores de transmisión en los que solo se espera que cambie un solo bit. Un error creado por el hombre que cambia "a" a "b" dará como resultado dos bits cambiados y un bit de paridad no detectará el cambio. Las sumas de control son similares, pero más complicadas. Ellos calculan una suma de la multiplicación ponderada de cada parte componente de la entrada. Por otro lado, los CRC están diseñados para la detección eficiente de errores en casi todas las circunstancias. Pueden garantizarse sin colisiones hasta un cierto número de errores. Tienen una sobrecarga configurable.

El que uses depende de ti. Los CRC son los más efectivos, ya que el rendimiento no es un problema (no verificará millones de claves por segundo). Un estándar de uso común es CRC32c. Tiene una salida de 32 bits y tiene un polinomio bien elegido . Si solo espera errores de un solo bit, las comprobaciones de paridad serán una opción más simple con menos sobrecarga (solo un bit adicional por cada fragmento de datos).

* Como se señaló en un comentario, existen estándares para verificar claves llamadas Key Check Values o KCV, por ejemplo, ANSI X9.24-1: 2009 KCV. Sin embargo, están diseñados para detectar errores de transmisión electrónica, no errores humanos.

Para responder a sus preguntas directamente ...

  

Mi pregunta es si hay algoritmos de suma de comprobación estándar utilizados para validar la entrada de clave en un sistema de intercambio de claves de múltiples partes.

No hay estándar para validar la entrada de claves, pero hay sumas de comprobación que se han estandarizado para la detección de errores que puede utilizar de forma segura en su esquema. Sin embargo, es un estándar para compartir en secreto (entrada de clave de varias partes) que no es su simple K '= K 0 ⊕ K 1 ⊕ K 2 . El algoritmo se llama Shamir's Secret Sharing y proporciona parámetros configurables para el número de claves correctas necesarias para calcular el secreto, el Cantidad de redundancia contra claves incorrectas, etc.

  

¿O es esto algo que cada proveedor de criptografía normalmente crea por su cuenta?

La mayoría de los proveedores inventan cosas por su cuenta debido a un caso grave de síndrome NIH , no porque no haya Primitivas estándar para trabajar o mejores prácticas para cumplir. La respuesta también depende de la organización específica. Varias agencias de inteligencia de EE. UU. Tienden a usar (o usan) dispositivos de llenado que a menudo usaban bits de paridad para la integridad de la clave. La respuesta aquí es que, por lo general, presentan su propio esquema, a veces defectuoso. Esto no significa que sea necesario hacerlo.

    
respondido por el forest 25.05.2018 - 04:35
fuente

Lea otras preguntas en las etiquetas