4 ms·
I believe that small changes like this can make ciphers more secure in practice but are usually best avoided. The are several factors involved. * Modern cipher
by todd8 8y ago
I believe that small changes like this can make ciphers more secure in practice but are usually best avoided. The are several factors involved.
* Modern ciphers are carefully designed and random changes to the algorithm may weaken the cipher, by say shrinking the effective key space or leaking internal state information due to timing attacks. Without careful cryptographic analysis by experts, motivated to study the new changes over a period of months or years, it may be hard to anticipate the overall effect of the changes. This in an argument in favor of adopting the existing studied systems and implementations.
* Some types of changes can be safely made and may be worthwhile. For example, superencipherment by encrypting the output of one cipher with a different independent system and an independent second key is almost certainly going to make breaking the system harder. This, however, reduces the performance of the encryption and requires careful implementation for perhaps no gain over simply choosing stronger parameters (for example, rounds and key length) with a single system. Examples of superencipherment that have been successful include the system used by soviet agents known as the VIC cipher. Apparently, this cipher resisted attempts at decryption. (The VIC cipher combined two simpler ciphers a franctionated substitution followed by an interrupted columnar transposition. There was a nice explanation of this cipher in Scientific American that I read in the mid 1960's, but I can't find that reference. See [1].)
* Widely used encryption systems, say AES, have an inherent advantage because they are widely used. Multiple, widely vetted, implementations and use patterns have been studied and any breaks in the systems are likewise reported widely.
* Superencryption, when done correctly, does mitigate the risk of an unexpected development in cryptanalysis of one of the underlying systems. One of the involved ciphers could be broken, as we've seen over and over again in the history of cryptanalysis, in which case the second cipher would continue to provide protection.
* A random secret change to a cipher, say modifying a magic constant like Salsa20's nothing up my sleeve constant (search for "nothing up my sleeve" in [2]), is likely to make any script-kiddie hacker code used by random bad guys fail to break your personalized cipher. The problem then becomes, keeping your random change private. Once the cipher is used to communicate with others, the secret is no longer secret and is likely to get out. This is the basis for simply assuming that your adversary already knows your encryption algorithm.
* Finally, if your adversary is a state actor and the stakes are high enough, your random secret changes to some cipher probably won't stop them. See Schneier's blog [3].
[1] http://www.quadibloc.com/crypto/pp1324.htm http://www.quadibloc.com/crypto/pp1324.htm
[2] https://en.wikipedia.org/wiki/Salsa20 https://en.wikipedia.org/wiki/Salsa20
[3] https://www.schneier.com/blog/archives/2015/08/mickens_on_secu.html https://www.schneier.com/blog/archives/2015/08/mickens_on_se...