I developed a GNSS logger (http://flysight.ca) which has become popular for scoring skydiving competitions. At the moment, there is little protection against competitors falsifying tracks, but I would like to change that.
The device uses an 8-bit AVR microcontroller. Memory and clock cycles are extremely limited. Because of the hardware design, the device has no warning when it is being turned off. This means it is not possible, e.g., to perform a computationally intensive signature only when the log file is closed.
The competition occurs over a few days. There is a central PC-based scoring system which is used to initialize and read data from the GNSS loggers.
Given these conditions, what I have in mind is the following:
- The scoring system generates a unique random key at the start of the event.
- Each GNSS logger is initialized with this key, which can be stored securely.
- When a row is written to the log file, a cumulative signature is computed using an HMAC based on the key generated in (1).
Alas, even MD5 exceeds the resources I have available, so I am wondering if the modest security requirements (in particular, that signatures need only be secure for a few days) might allow me to use a faster hash function.
If you have a different idea, I'd love to hear that, too. Thanks so much for your help!