Remote controlled security system

Abstract: A security system and method is provided for one way communication between a remote transmitter (20) and a receiver (40) which enables a function such unlocking the doors or disarming a security system. The system uses a three part security code having one part which is a pseudo-randomly generated function, one part which is a permanently assigned code to the transmitter/receiver combination and one part which is based on the number of transmissions transmitted by the transmitter.

Description: The present invention relates generally to a remote controlled security system and in particular to a security system using synchronized one-way transmissions wherein synchronization is maintained between the transmitter and receiver even after inadvertent activations of the transmitter. Many security systems are available where a push button remote transmitter enables a function in the vehicle such as unlocking the doors or turning off an alarm. Such systems may have the remote control unit emit a fixed identification code exclusive to the transmitter/receiver combination. However, a security system using a fixed code can be defeated by using a random scanning device which transmits random codes in rapid succession in hopes of reproducing a valid code. Security is increased in such a system by increasing the number of combinations in the security code, i.e., Increasing its length. The fixed code system can also be defeated using a recording device which captures and then duplicates transmissions of the security code from a valid transmitter. Other security systems are known which use a security code that changes after each transmission, thereby eliminating the possibility of a transmission being recorded and retransmitted because an exact duplicate of the previously transmitted signal will not be accepted by the receiver. One known method of changing the security code uses a look-up table in both the transmitter and receiver which is indexed every time a transmission is made. One problem with such a system is that if the transmitter is operated outside the receiver range, the transmitter will no longer be synchronized with the receiver and will be unable to control the system. To alleviate this synchronization problem. two-way transmissions using a "handshaking" technique have been used to ensure that the transmitter and receiver are indexed simultaneously. However, the need to have both a transmitting and a receiving capabilities in the remote control unit and the in-vehicle apparatus is undesirable. A security system described in U.S. Patent 4,847,614 employs a one-way transmission method. A digital code is stored in the system memory and is changed in both the transmitter and receiver by using digital logic gates to operate on the bits to produce the next code of the sequence after each transmission. This system also suffers from synchronization problems which if severe enough, will result in the operator using a key to manually unlock the door. If the system is less than 10 steps out of sink, the system automatically resynchronizes itself. If the system is between 10 and 256 steps out of sink, two successive transmissions must be made. This situation would happen quite frequently resulting in a perception of poor performance from the customer. Furthermore, after changing the transmitter battery, the transmitter will have lost synchronization. The security system described in U.S. Patent 5,159,329 uses a security code portion which has a fixed portion and a portion which varies according to a specified algorithm. The system advances the alterable portion of the code word after each transmission. The problem with such a system is that once the transmitter is activated outside the range of the control device the transmitter and control device are then out of synchronization. The system can be reset by the use of a mechanical switch inside the vehicle. This situation would happen quite frequently and would be perceived as poor performance by the customer. The security system described in European Patent specification EP-A-0 244 332 comprises a transmitter and a receiver in which the transmitted security code includes portions comprising an identification code, a count of the number of transmissions made by the transmitter and a rolling code. The receiver has a memory for storing the number of transmissions received from the transmitter and will validate the received security code if the transmission count in the received security code is greater than the transmission count stored at the receiver. Exact synchronism of the transmitter and the receiver is therefore not required. Nevertheless it is a requirement that the transmission count in the security code always exceeds the transmission count stored in the receiver. If circumstances should arise where the transmitter has lost the transmission count, the system will fail because no provision is made for such loss of count. It would be desirable to have a remote control system using one-way transmissions and a rolling code that is not dependent on the synchronization of the transmitter and receiver. The present invention now provides a receiver for use in a security system to receive and validate a security code having portions representing an identification code, a transmission count and a rolling code, the receiver comprising: a decoder to decode the security code and reproduce the received identification code, the transmission count and the rolling code, an identification code memory to store a receiver identification code, a last transmission count memory to store a last transmission count, a rolling code generator to regenerate the rolling code according to a predetermined formula, and a comparator to compare the received identification code with the receiver identification code, to compare the received rolling code with the regenerated rolling code and to compare the received transmission count with the last transmission count stored in the transmission count memory, characterised in that the comparator is adapted to make the comparison of the received transmission count with the last transmission count by: executing a first checking step of checking whether the received transmission count is greater than the last transmission count, executing either a validating step of validating the security code if the received transmission count is greater than the last transmission count or, if not, executing another checking step of checking whether the received transmission count is less than a predetermined number, and executing a step of resetting the last transmission count to be equal to the received transmission count either upon completion of the validating step or upon checking in the said other checking step that the received transmission count is less than the said predetermined number. The invention further provides a method of deactivating a security system having a receiver to receive and validate a security code having portions representing an identification code, a transmission count and a rolling code, the method comprising: receiving and decoding the security code to reproduce the received identification code, transmission count and rolling code, storing a receiver identification code in the receiver, storing a last transmission count in the receiver, regenerating the rolling code in the receiver according to a predetermined formula, and comparing the received identification code with the stored receiver identification code, comparing the received rolling code with the regenerated rolling code and comparing the received transmission count with the last transmission count stored in the receiver, characterised in that the comparison of the received transmission count with the last transmission count is effected by: executing a first checking step of checking whether the received transmission count is greater than the last transmission count, executing either a validating step of validating the security code if the received transmission count is greater than the last transmission count or, if not, executing another checking step of checking whether the received transmission count is less than a predetermined number, and executing a step of resetting the last transmission count to be equal to the received transmission count either upon completion of the validating step or upon checking in the said other checking step that the received transmission count is less than the said predetermined number. The invention will now be described further, by way of example, with reference to the accompanying drawings, in which : Figure 1 is a block diagram showing the apparatus of a preferred embodiment of the present invention. Figure 2 is a flow chart of a preferred method of operating the remote control system. Referring now to Figure 1, a transmitter 20 is provided to send a security code to a receiver 40 which enables a function such as unlocking a door or disabling an alarm. The one-way signal 30 transmitted by transmitter 20 can be a radio frequency or infrared transmission, for example, using known apparatus for transmitting digital information. When the user wants a function to be activated, the security code is activated causing the security code to be activated. Transmitter 20 has a transmission counter 22 which stores and updates the number of transmissions (i.e. button activations) made by transmitter 20. Transmission counter 22 stores the value in volatile memory which is cleared if the transmitter battery (not shown) is removed. Transmitter 20 also has an identification code memory 24 which stores a fixed identification code assigned to the transmitter and receiver. The identification code is held in nonvolatile memory (e.g. ROM) so it is not erased if power to transmitter 20 is interrupted. Transmitter 20 also has a rolling code generator 26 which calculates a non-repetitive rolling code based on the transmission count value. The calculation preferably employs a linear congruential method of generating random numbers, such as is described in "The Art of Computer Programming, Vol. 2, Semi-Numerical Algorithms" by Donald E. Knuth. The rolling code is calculated in response to activation of push button 21. A preferred formula used for calculating the rolling code is as follows: Rolling code =((a * Transmission Counter) +c) mod m where "a" is selected such that: If "m" is a power of 2, pick "a" so that (a mod 8)=5 If "m" is a power of 10, choose "a" so that (a mod 200)=21, "a" is larger than "m", preferably larger m /100 but, smaller than (m-SQRT m). "c" can be any number chosen which at least conforms to the following: "c" is an odd number when "m" is a power of two. "c" is not a multiple of 5 when "m" is a power of 10. "m" should be selected such that it is the largest value possible so that the computer word length is not exceeded. The rolling code is preferably calculated exactly with no round-off error. The security code is a combination of the values in transmission counter 22, identification code memory 24 and rolling code generator 26. The security code is formed and transmitted by an encoder 28. Receiver 40 has a decoder 42 which receives the security code generated by transmitter 20 and separates it back into the three distinct portions. Receiver 40 has an identification code memory 41 with the same value as transmitter 20 stored in nonvolatile memory. Receiver 40 also has a last transmission count memory 48 which stores the last transmission count previously sent by transmitter 20. The value in last transmission count memory 48 is not updated until a valid code is sent and the function of the system is enabled. When decoder 42 receives the security code, the rolling code generator 50, using the same formula as transmitter 20, calculates the rolling code based on the received transmission count. If the values received from transmitter 20 correspond to the values generated in receiver 40 in the following manner then comparator 44 generates a signal to enable the designated function: 1) the value in identification code memory 41 must be equal to the identification code received; 2) the value calculated by rolling code generator 50 must be equal to the rolling code value received; and 3) the transmission count value received must be greater than the value in last transmission count memory 48. Because the transmission count value received from the transmitter need only be greater than the value in last transmission count memory 48, synchronization is not lost if the value in the transmitter counter 22 is incremented while outside the range of receiver 40. Referring now to Figure 2, a flow chart is shown for the sequence of steps to be executed in the receiver as a preferred method of operating the invention. The operation sequence is started at step 60 where the receiver waits until a transmission is detected. When a transmission is received, the security code is broken down into its three segments. The system has three separate checks before enabling a function. Step 62 checks to see if the transmitted identification code portion (TIC) is equal to the value stored in the identification code memory of the receiver. If the identification codes are not equal, step 64 is executed which ignores the transmission as invalid and returns to the beginning of the sequence. If the identification codes are equal, step 66 is executed which checks if the expected rolling code (eRC) calculated by the receiver using the received transmission count value is the same as the received rolling code (rRC) calculated in the transmitter using the same mathematical function operating on the transmission count value. If the rolling codes do not match. step 64 is executed where the transmission is ignored as invalid and the sequence starts over again at step 60. If the rolling codes are equal, step 68 is executed which checks whether the received transmission counter (rTC) value is greater than the last received transmission counter value (lrTC) stored in the memory of the receiver. This step is not an equivalence as in the prior art because the transmitter may have been activated outside the range of the receiver and the transmission counter of the transmitter would be higher than that of the receiver. This eliminates the need for exact synchronization of the transmitter and receiver. If the received transmission counter value is greater than the last transmitter value stored in the memory of the receiver, the transmitted signal is identified as valid and step 70 is executed which performs a function such as opening a door or turning off an alarm system. After a function is enabled in step 70, the received transmission counter value (rTC) is placed in the last received transmission counter (lrTC) value memory of the receiver in step 72. In the event that the battery in the transmitter is changed, the transmitter memory will be lost and the transmission count value reset to zero. Returning back to step 68, if the received transmission counter value was less than or equal to the last transmission counter value stored in the memory of the receiver, step 74 is executed. Step 74 checks whether the received transmission counter value is less than a predetermined number, such as 50. If the value is 50 or greater, step 64 is executed which ignores the transmission as invalid. If the value is less than 50, step 72 is executed where the received transmission counter value is then placed in the last received transmission counter memory of the receiver. After a battery change, the transmitter can be activated twice in the presence of the receiver in order to reset the receiver transmission count value and then enable the desired function. The number 50 allows for some inadvertent activations after the battery change until the first activation within the range of the receiver.

Claims: A receiver (40) for use in a security system to receive and validate a security code having portions representing an identification code, a transmission count and a rolling code, the receiver comprising: a decoder (42) to decode the security code and reproduce the received identification code, the transmission count and the rolling code, an identification code memory (41) to store a receiver identification code, a last transmission count memory (48) to store a last transmission count, a rolling code generator (50) to regenerate the rolling code according to a predetermined formula, and a comparator (44) to compare the received identification code with the receiver identification code, to compare the received rolling code with the regenerated rolling code and to compare the received transmission count with the last transmission count stored in the transmission count memory (48), characterised in that the comparator (44) is adapted to make the comparison of the received transmission count with the last transmission count by: executing a first checking step (68) of checking whether the received transmission count is greater than the last transmission count, executing either a validating step (70) of validating the security code if the received transmission count is greater than the last transmission count or, if not, executing another checking step (74) of checking whether the received transmission count is less than a predetermined number, and executing a step (72) of resetting the last transmission count to be equal to the received transmission count either upon completion of the validating step (70) or upon checking in the said other checking step (74) that the received transmission count is less than the said predetermined number. A receiver as claimed in claim 1, wherein the predetermined number is 50. A receiver as claimed in claim 1 or 2, wherein the rolling code generator (50) calculates the rolling code according to a predetermined formula based on the last transmission count stored in the last transmission count memory (48). A receiver as claimed in claim 1, 2 or 3, wherein the predetermined formula generates a rolling code according to the relationship; Rolling code = ((a * Transmission Counter) + c) mod m where "a" is selected such that; if "m" is a power of 2, (a mod 8) = 5 if "m" is a power of 10, (a mod 200) = 21 "a" is larger than "m" but smaller than (m-SQRT m); "c" is chosen to be an odd number when "m" is a power of 2 and not to be a multiple of 5 when "m" is a power of 10; and "m" is the largest number possible so that the computer word length is not exceeded. A security system comprising a receiver (40) as claimed in claim 1, 2, 3 or 4, and a transmitter (20) to transmit to the receiver, the transmitter (20) including: a transmission counter (22) for counting the number of transmissions made by the transmitter (20), an identification code memory (24) for storing an identification code assigned to the transmitter (20), a rolling code generator (26) for calculating a rolling code using the predetermined formula, and an encoder (28) to form and transmit a security code having portions representing the identification code assigned to the transmitter, the rolling code and the count of the number of transmissions made by the transmitter. A security system according to claim 5, in which the transmission counter (22) has a volatile memory to store the number of transmissions made by the transmitter (20). A method of deactivating a security system having a receiver (40) to receive and validate a security code having portions representing an identification code, a transmission count and a rolling code, the method comprising: receiving and decoding the security code to reproduce the received identification code, transmission count and rolling code, storing a receiver identification code in the receiver, storing a last transmission count in the receiver, regenerating the rolling code in the receiver according to a predetermined formula, and comparing the received identification code with the stored receiver identification code, comparing the received rolling code with the regenerated rolling code and comparing the received transmission count with the last transmission count stored in the receiver, characterised in that the comparison of the received transmission count with the last transmission count is effected by: executing a first checking step (68) of checking whether the received transmission count is greater than the last transmission count, executing either a validating step (70) of validating the security code if the received transmission count is greater than the last transmission count or, if not, executing another checking step (74) of checking whether the received transmission count is less than a predetermined number, and executing a step (72) of resetting the last transmission count to be equal to the received transmission count either upon completion of the validating step (70) or upon checking in the said other checking step (74) that the received transmission count is less than the said predetermined number. A method as claimed in claim 7, wherein the predetermined number is 50. A method as claimed in claim 7 or 8, wherein the rolling code is generated according to a predetermined formula based on the last transmission count stored in the receiver. A method as claimed in claim 7, 8 or 9, wherein the predetermined formula generates a rolling code according to the relationship; Rolling code = ((a * Transmission Counter) + c) mod m where "a" is selected such that; if "m" is a power of 2, (a mod 8) = 5 if "m" is a power of 10, (a mod 200) = 21 "a" is larger than "m" but smaller than (m-SQRT m); "c" is chosen to be an odd number when "m" is a power of 2 and not to be a multiple of 5 when "m" is a power of 10; and "m" is the largest number possible so that the computer word length is not exceeded.

Inventors: EWALD HENRY JAMES, JABLONSKI GARY FRANK, EWALD, HENRY JAMES, JABLONSKI, GARY FRANK
Applicants: FORD FRANCE, FORD MOTOR CO, FORD WERKE AG, FORD FRANCE S. A., FORD MOTOR COMPANY LIMITED, FORD-WERKE AKTIENGESELLSCHAFT
Application year: 1993
Main classification: E05B49
IPC codes: G07F7, H04Q9, G07C9