KEELOQ DECODER

RF Frame Analysis Terminal v1.0

This tool decodes a raw 66-bit KEELOQ hopping-code RF frame (as captured by an SDR/URH-style receiver) into its encrypted hop code, 28-bit serial number and button/status bits, with an optional bit-order reversal for receivers that capture LSB-first. Captured frames are kept in a log with per-field diff highlighting between consecutive frames and can be exported as CSV.

Separately, it decrypts a hop code into its function, discrimination, sync counter and OVR fields given a 64-bit key, and can derive a device key from a manufacturer key and serial number using the KEELOQ Simple Learning method. It is used for analyzing and testing KEELOQ-based remote-control and access-control systems; all cipher operations run locally in the browser.

FRAME INPUT
Try this if decoded Serial/Hop looks wrong. Depends on URH bit order settings.
DEVICE KEY GENERATION
Generate Device Key from Manufacturer Key + Serial Number (Simple Learning method)
HOPPING CODE DECRYPTION
CAPTURED FRAMES LOG
NO FRAMES CAPTURED
AWAITING INPUT_
KEELOQ PROTOCOL SPECIFICATION

KEELOQ IS A PROPRIETARY BLOCK CIPHER BY MICROCHIP TECHNOLOGY INC. USED IN REMOTE KEYLESS ENTRY (RKE) SYSTEMS FOR AUTOMOBILES, GARAGE DOORS, AND ACCESS CONTROL.

=== 66-BIT FRAME STRUCTURE (LSB FIRST) ===
HOPPING CODE
(ENCRYPTED)
SERIAL NUMBER
(FIXED)
BTN
ST
BITS 0-31 (32)
BITS 32-59 (28)
60-63
64-65

HOPPING CODE 32-BIT

  • FUNCTION - 4 BITS, BUTTON CODE
  • OVR - 2 BITS, OVERFLOW CNT
  • DISCRIM - 10 BITS, LOW SERIAL
  • SYNC - 16 BITS, ROLLING CODE
ENCRYPTED WITH 64-BIT KEY. DECODE REQUIRES MANUFACTURER KEY.

SERIAL NUMBER 28-BIT

UNIQUE TRANSMITTER ID. SENT IN PLAINTEXT. RECEIVER USES IT TO LOOKUP ENCRYPTION KEY. LOWER 10 BITS DUPLICATED IN HOP CODE FOR VERIFICATION.

BUTTON STATUS 4-BIT

  • S0 - BUTTON 0 (LOCK)
  • S1 - BUTTON 1 (UNLOCK)
  • S2 - BUTTON 2 (TRUNK)
  • S3 - BUTTON 3 (PANIC)

STATUS BITS 2-BIT

  • VLOW - LOW BATTERY FLAG
  • REPEAT - RETRANSMIT FLAG

*** SECURITY ADVISORY ***

ROLLING CODE PREVENTS SIMPLE REPLAY. KNOWN VULNERABILITIES:

  • ROLLJAM ATTACK - JAM + CAPTURE, REPLAY LATER
  • CRYPTANALYSIS (2007-2008) - ALGEBRAIC ATTACKS
  • KEY RECOVERY - ~65 MIN KNOWN PLAINTEXT
VERIFIED TEST VECTORS (NLF = 0x3A5C742E):
# KEY (64-BIT) PLAINTEXT CIPHERTEXT
1 0x0000000000000000 0x00000000 0x00000000
2 0x0000000000000000 0xFFFFFFFF 0x4CE60100
3 0xFFFFFFFFFFFFFFFF 0x00000000 0xC87E162D
4 0xFFFFFFFFFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF
5 0x5CEC6701B79FD949 0xF741E2DB 0xE44F4CDF
6 0x5CEC6701B79FD949 0x0CA69B92 0xA6AC0EA2
7 0x0123456789ABCDEF 0x00000000 0x0D326BF8
8 0x0123456789ABCDEF 0xFFFFFFFF 0x389249C6
9 0x0123456789ABCDEF 0xDEADBEEF 0xCBE1B055