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.