I have done a lab about wireless sensor nodes and got in touch with encryption for the very first time. There are some questions on my sheet, especially on integrity protection (the attacker wants to tamper our data) which I wanted to ask about. I read some stuff but I don't feel so comfortable: 1) Why is a simple checksum or MD5 sum insufficient?
I guess because they are not secure anymore. In 2004 some researchers found out that there are 2 different messages with the same MD5 value and one can create more. Same is true for the checksum (?)
2) Is CBCMAC a good way to achieve integrity protection?
If I understood the wikipedia article right it is secure for fixed length messages, for arbitrary long messages it is not secure anymore.
3) Block ciphers are often fast and readily available. When comparing HMAC and CMAC, which do you suspect will work better in a WSN scenario? What are the differences between them?
The differences are quite crucial: HMAC uses hash functions for encrypting and CMAC block ciphers. But I don't know which one is more suited in a WSN. As we have very limited resources one should maybe choose the one which "costs" less in terms of energy?
4) Is it a good idea to use the same key for both encryption and the MAC function?
No it is not, in the CBC-MAC article wikipedia shows a big problem if you use the same key.
5) Are there ways to combine encryption and itegrity protection? Name at least two examples. Is a single key sufficient in these cases? Do different approaches differ with respect to their performance characteristics? Will such an approach be usually faster, slower or equal to doing encryption and MAC calculation as separate steps?
I guess this question is about authenticated encryption. The wikipedia article (http://en.wikipedia.org/wiki/Authenticated_encryption) is quite short and I can't find many information about these questions ...
I am thankful for any help