I am looking for a lightweight and fast (almost real time) data integrity checker for a very time critical application. Is it possible to provide data integrity using a steganographic method, lets say by inserting a tamper-proof fingerprint inside the data. If so what would be the security threats as opposed to hashing? I will appreciate your insights.

My application has the following constraints:

  1. 32-bit (embedded) architecture;
  2. performance must be higher than 3 cycles/byte;
  3. 1500 byte data packets are transmitted every 4ms; and
  4. hardware change is impossible.
  • $\begingroup$ What's your threat model? Against what / whom do you want to protect data integrity? How much bandwidth are you willing to sacrifice? $\endgroup$
    – SEJPM
    Feb 4 '16 at 12:46
  • $\begingroup$ Thanks for your comment. In my application confidentiality of data has zero value but ensuring the correctness of transmitted data is of critical importance. Threats can be internally (from a dishonest user) or externally. The method should not place much computation overheads, as I have around 4 milliseconds time constraint. $\endgroup$
    – Jolfaei
    Feb 4 '16 at 13:19
  • $\begingroup$ For providing data inetgrity against external malicious attackers you'd have to use a message authentication code (MAC). If you store the key in RAM, chances are the user has a hard time extracting it (not impossible though). Using a straight hash oir something data independent wouldn't bring any security as an attacker could change the parts not covered by the independent stuff or simply re-compute the hash. Do you have hardware support for any cryptographic algorithms? If so, using this may be a good idea. If not, you may want to consider Blake2 which has a MAC mode and is generally fast. $\endgroup$
    – SEJPM
    Feb 4 '16 at 13:30
  • $\begingroup$ HMAC is very time consuming. Due to being very time critical, there is no MAC layer in my application. I cant use MAC. I have to find a way to work on data link layer. I also have no hardware support for cryptographic algorithms. I am wondering if there is any faster way for maintaining data integrity? $\endgroup$
    – Jolfaei
    Feb 4 '16 at 13:36
  • $\begingroup$ You have to do a full pass over the data for integrity protection (streaming / chunking are of course possible). If you don't cover something, an attacker can trivially change that part. Blake2 is the fastest algorithm for this and should offer comparable speed to MD5 (and it doesn't even require the second hash call that HMAC does) $\endgroup$
    – SEJPM
    Feb 4 '16 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.