Hi,
I'm working on a project where I use two Arduinos together, one gathering sensor data and sending it to the other, which sends data packets out over a CAN network.
I'm wondering if anyone has suggestions - or an application note, or anything, for that matter - on how to use rolling codes to ensure that the devices are not tampered with. I want to use CAN ultimately (using a CAN shield on a Duemilanove), but uart would work for now, so I can get a feel for how it works.
I know I will need a button on each device to synchronize the seed, but I am not sure on what type of algorithm the code must take. I understand most devices use a common seed and a formula programmed into both devices, with the device that does the "reading" of the code storing the next ~3-5 codes in memory (so if it misses due to network traffic/interference, it still responds for a bit). If the devices become disconnected for more than those 3-5 expected responses, it sets a bit (turns on a buzzer or a light, in my case) and lets the operator know that the devices are no longer synchronized.
I'm concerned about the rolling code algorithm lagging the Arduino. I want this "secure" functionality, but it is secondary to gathering and logging the data from my sensors. Is this feasible?
Secondly, I tried a quick search but couldn't find anything - does the Arduino have a "code fuse" to prevent reflashing?
Thank you!