What is a Rolling Code?
A rolling code, also referred to as a hopping code, is a special type of encryption system used on wireless, keyless entry devices, such as car remotes and garage door openers. In the past, a person would press a button to unlock his car, and the remote would transmit an unlock code to the car's receiver, which would in turn unlock the car. This method had a significant flaw, as anyone could pick up the signal as it was transmitted and could later use the code to unlock the owner's garage or car without his permission. For this reason, rolling codes were invented so that after each use, the remote and the receiver both create a new code and the old code will not work anymore.
For the rolling code to work, both the transmitter found in the remote and the receiver found in the car or device interacting with the transmitter must be designed to react with each other and have the same code generator, so after one code is used, both devices will generate the same new code and continue to work together. The transmitter typically refers to the keyless entry device, such as a car remote for unlocking car doors without physically inserting the key into the car. The receiver refers to the device, such as the car itself, to which the remote sends the signal.
When the owner pushes the unlock button, the remote transmits the code to the car, which then checks that the code is correct and unlocks the doors. Both the remote and the car then generate a new code, and when the owner presses the button again, it sends this new code to unlock the car and creates yet another new code. If a thief were to pick up the code while it was transmitted, it would already have been used and would not work again.
If an owner presses a button and the remote is too far away for the receiver to intercept the signal, the remote creates a new rolling code but the receiver does not. To avoid an owner locking himself out of his own car or garage if he accidentally hits the button from too far away, the remote and receiver are both designed to generate 256 random new codes each time a code is used. If the remote transmits one out of these 256 rolling codes to the receiver, it will still unlock the car and the two devices will sync back up and generate the same random codes because they both contain the same number generator designed to create the next set of 256 codes.
Though 256 codes may not seem like a lot, it's virtually impossible to unlock another person's car, even if a person happens to have a remote designed to work with the same type of receiver found in that specific car. The chances of having a compatible remote and that remote generating one of the 256 codes the person's car will accept is still smaller than one in a billion. A thief would need years to find the right rolling code, making the rolling code system a fairly simple, yet reliable, method of safely locking and unlocking items using keyless entry devices.
Wonderfully concise and informative article.
I suggest you expand your excellent answer to explicitly state that the process of generating 256 random codes each time a car remote or garage door remote is used explains why two remote keys, e.g., mine and my wife's, are able to unlock the same car at different times, and why two garage door remotes can open the same garage door at different times. I am sure you understand what I mean and, no doubt, can phrase it better than I did.
What happens if someone were to theoretically hit the unlock button (while out of range of the receiver) 257-plus times? Would that mean that the code it generates will not be recognized by the receiver?
Post your comments