I found a bug in Motorola DMRA ARC4 Encryption.

The bug is present in the standard, so it is found in all manufacturers who use the DMRA ARC4 standard.

The DMRA standard uses an LFSR to generate 32 hit IVs. An IV (Initialization Vector) should only be repeated after 4 billion times (2 to the power of 32) because two superframes using the same IV will be encrypted the same.

Motorola used the following generator polynomial for the ARC4: x^32 + x^4 + x^2 + 1.

However, it is a non-primitive polynomial that generates short cycles.

IVs do not repeat every 4 billion times, but every IV 294903. That's an 18-bit IV when it's supposed to be 32-bit.

The bug is present in the standard, so it is found in all manufacturers who use the DMRA ARC4 standard.

The DMRA standard uses an LFSR to generate 32 hit IVs. An IV (Initialization Vector) should only be repeated after 4 billion times (2 to the power of 32) because two superframes using the same IV will be encrypted the same.

**The bug is as follows:**Motorola used the following generator polynomial for the ARC4: x^32 + x^4 + x^2 + 1.

However, it is a non-primitive polynomial that generates short cycles.

IVs do not repeat every 4 billion times, but every IV 294903. That's an 18-bit IV when it's supposed to be 32-bit.

**Can anyone confirm the bug?**
Last edited: