Los códigos continuos requieren varias partes para funcionar correctamente. Aquí describiré una implementación genérica que usa todas las partes de una manera específica. Otros sistemas son variaciones sobre este tema, pero generalmente emplean muchas de las mismas técnicas de manera similar. En lugar de tratar de describir la implementación completa y cómo funciona de una vez, describiré un sistema simple y agregaré complejidad a medida que avanzamos hasta llegar a un sistema criptográficamente seguro.
Un código móvil no criptográfico es simplemente un transmisor y un receptor que usan el mismo generador de números pseudoaleatorios (PRNG). Este generador tiene dos piezas de información importante: un cálculo y el número generado previamente. El cálculo es generalmente una ecuación de retroalimentación lineal que se puede representar con un solo número. Al alimentar el PRNG con el número anterior y mantener el número de retroalimentación igual, se genera una secuencia específica de números. La secuencia no tiene secuencias repetidas hasta que pasa por todos los números que puede generar, y luego comienza de nuevo con la misma secuencia.
Si tanto el control remoto como el transmisor conocen el número de retroalimentación y el número actual, cuando el control remoto transmite el siguiente número, el receptor puede probarlo con su propio generador. Si coincide, se activa. Si no lo hace, pasa por la secuencia hasta que encuentra el número que envió el control remoto. Si presiona el control remoto nuevamente, debería coincidir y se activará porque la transmisión anterior ya sincronizó los generadores de números. Es por eso que a veces tiene que presionar el botón de desbloqueo dos veces: su receptor o transmisor no están sincronizados.
Esa es la parte móvil del código. Si el PRNG es lo suficientemente largo, es muy difícil encontrar el número de retroalimentación sin muchos números en la secuencia en una fila, lo cual es difícil de obtener en el uso normal. Pero no es criptográficamente seguro.
Además de eso, agrega cifrado típico. El fabricante del vehículo utiliza una clave secreta específica para el transmisor y el receptor. Dependiendo del fabricante, es posible que cada modelo y año tengan un código diferente, o que compartan el código entre varios modelos de vehículos y durante varios años. La compensación es que cada uno requiere un control remoto diferente para ser almacenado, pero el problema de compartir un código en muchos modelos es que si está roto, más autos son vulnerables.
Detrás del cifrado tiene información de botón, el número generado por PRNG y un poco de información sobre el número de comentarios. No es suficiente para hacer el PRNG desde cero, pero lo suficiente como para que después de presionar un cierto número de botones, y con cierta información interna sobre el espacio limitado, un número de retroalimentación pueda involucrar (nuevamente, fabricante, línea específica), entonces el receptor puede, después de varios entrenamientos transmisiones, determine el número de comentarios y comience a rastrear el PRNG para ese control remoto.
El código rodante está destinado solo a detener los ataques de repetición. El cifrado está destinado a asegurar el código móvil para evitar que se rompa. Con solo uno u otro, el sistema sería demasiado fácil de romper. Dado que el fabricante controla tanto el transmisor como el receptor, la capacitación no involucra criptografía de clave pública ni nada particularmente involucrado. También evita que los llaveros del mercado secundario trabajen en automóviles con este tipo de sistema.
Sin embargo, el código continuo no es impermeable. El antiguo sistema keeloq fue atacado con éxito hace solo unos años (después de una década de uso) para que se pueda encontrar el código de cifrado del fabricante, y los códigos continuos se pueden encontrar más fácilmente. Antes de eso, ha sido atacado de manera que permitía a las personas tomar vehículos sin realmente descifrar el código. En respuesta, la nueva clave de cifrado es de 60 bits. No es tan seguro como muchos sistemas de cifrado modernos, pero lo suficientemente seguro como para que probablemente dure muchos años más antes de que se rompa.