3 ms·
This is a short 2013 Bruce Schneier article about SIMON and SPECK: https://www.schneier.com/blog/archives/2013/07/simon_and_speck.html https://www.schneier.com/
by sowbug 9y ago
This is a short 2013 Bruce Schneier article about SIMON and SPECK: https://www.schneier.com/blog/archives/2013/07/simon_and_speck.html https://www.schneier.com/blog/archives/2013/07/simon_and_spe...
They're "lightweight" block ciphers; SIMON is designed for optimal performance in hardware implementations, and SPECK for software. According to the NSA PDF, "The relatively new field of lightweight cryptography addresses security issues for highly constrained devices." Indeed, SIMON is about a third of the hardware gate requirement of AES, and SPECK is about 15% the number of flash bytes. Some of the space savings is from skipping ciphertext/plaintext whitening.
- pbhjpbhj 9y agoI hadn't heard of whitening before: sounds like it's a simple change of the plaintext prior to full encryption, in the example at Wikipedia it's an XOR operation. https://en.m.wikipedia.org/wiki/Key_whitening https://en.m.wikipedia.org/wiki/Key_whitening Presumably something like rot13 would count as whitening? Also, assuming the name comes from analogy with "white noise", ie reducing signal quickly, cheaply?
- alexbeloi 9y agoKey whitening is about expanding the key space, not changing the plaintext prior to encryption (which might be called data whitening). Say you encrypt a message M with key K1 and get encrypted message E: encrypt(M, K1) = E. An attacker might brute force your encryption, if your key space is small this might be an issue. So what you can do is XOR the message with another key K2 before encryption and a third key K3 after encryption to get: E = encrypt(M XOR K2, K1) XOR K3. Now the attacker has three keys to brute force. (though I think the actual effective key size is between 2x and 3x the length if the attacker knows the message distribution) I'm not an expert but I imagine XOR is popular because it's a basic logical operator and so has gate level hardware implementations.
- eadmund 9y agoI suspect that XOR is popular because of the property that XORing data cannot reduce its entropy: 128 truly random bits XOR zero* are still 128 truly random bits. The benefit you get if you XOR is that if there are mathematical correspondences in your data, you are likely to hide them by XORing with some key.