The immobilizer module is programmed with a unique secret key code and retains the unique ID number of all keys that are programmed to the system. When a key is programmed into the immobilizer module, the transponder identification code is then stored in the immobilizer's memory. In addition, the key learns the secret key code from the immobilizer module and programs it into its transponder memory. For the engine to start and run, the immobilizer's secret key code must be programmed into each key.