3.1.1.4 MARC4

This security protocol uses a variation of the RC4 algorithm called Modified Alleged RC4, or MARC4 to encrypt or decrypt the nonce exchanged between the client and the relay server during the registration and during authentication.

Original RC4 algorithm is described in [SCHNEIER].

MARC4 used in this protocol differs from RC4 in the following areas:

  • Both encryption and decryption MUST use a random initialization vector (IV), and the IV MUST be the same size as the secret device or account key.

  • A new random IV MUST be generated every time the data is encrypted. The matching IV MUST be used every time the data is decrypted.

  • The IV MUST be XOR-ed with the secret device or account key, and the result MUST be used as the initial secret key for RC4.

  • The first 256 bytes of the keystream MUST be discarded. Subsequent bytes of the keystream MUST be used in the same way that it is used in RC4.