Tengo una pregunta con respecto a este documento:
ANSI X9.24, Administración de claves simétricas de servicios financieros minoristas Parte 1: Uso de técnicas simétricas
En el capítulo "Método: DUKPT (Clave única derivada por transacción)", página 41, se indica que el receptor debe verificar que el contador de transacciones del originador en el SMID haya aumentado.
Otras fuentes dicen que los HSM (el receptor) no almacenan ningún estado aparte de las claves de derivación de base: las claves de derivación de base se pueden consultar mediante el identificador de conjunto de claves (contenido en el SMID). Por lo tanto, el receptor (HSM) puede descifrar sin mantener ningún estado del originador. Lo entiendo muy bien.
Pero al verificar el contador de transacciones, no puedo imaginar otra forma que no sea rastrear el contador de transacciones por número de serie clave (KSN) del originador (una tabla o mapa), es decir, hay algún estado en el HSM guardado , pero no se debe mantener ningún estado.
Aunque el documento contiene un pseudo código que explica la implementación de los métodos descritos en el documento, no hay pistas sobre cómo se verifica el contador de transacciones.
¿Cómo se implementa esto realmente o cuál es la idea básica de cómo se logra esto sin hacer un seguimiento del estado?
(esta pregunta se publicó en stackoverflow, no se respondió allí, pero se recomienda hacerla aquí)