Skip to content

An implementation of KeeLoq encryption/decryption in Go programming language

License

Notifications You must be signed in to change notification settings

dimchansky/keeloq-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeeLoq

An implementation of KeeLoq encryption/decryption in Go programming language.

What is KeeLoq

KeeLoq is a proprietary block cipher owned by Microchip, developed for code-hopping remote key entry (RKE) devices such as:

and is used in remote key-less entry systems from several car manufacturers - such as Chrysler, Fiat, GM, Honda, Toyota, Volvo, VW, Jaguar, Iran Khodro, etc. - as well as for garage door openers.

After the confidential specifications have been leaked on a Russian website (Code Hopping Decoder using a PIC16C56) in 2006, several cryptanalysts have found substantial weaknesses in the design of the algorithm and the hardware on which it is implemented (Robert R. Enderlein, S Vaudenay, P Sepehrdad. KeeLoq. EPFL, Semester Project 2010.).

Please note this algorithm is pretty weak and should not be used for any real crypto.

KeeLoq Encryption

KeeLoq is a block cipher with a 64-bit key and a 32-bit block size. The cipher operates on two registers for 528 clock cycles to produce the ciphertext, based on the following shape:

KeeLoq encryption algorithm)

KeyLoq Decryption

KeeLoq decryption algorithm operates on two registers for 528 rounds, to produce the plaintext for a given key and ciphertext, according to the following shape.

KeeLoq encryption algorithm)

Test Vectors

key plaintext ciphertext
0xbeefdeadbeefdead 0x2000c022 0x054c90c2
0x5cec6701b79fd949 0xf741e2db 0xe44f4cdf
0x5cec6701b79fd949 0x0ca69b92 0xa6ac0ea2

About

An implementation of KeeLoq encryption/decryption in Go programming language

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages