本节书摘来自异步社区《Python密码学编程》一书中的第1章,第1.11节,作者 [美] Al Sweigart(斯维加特),李永伦 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.11 双重强度加密
你可能在想,使用两个不同密钥加密同一条消息两次会加倍加密的强度。但这对于凯撒加密法(以及大多数其他加密法)来说不是那么一回事。让我们双重加密一条消息看个究竟。
如果我们用密钥3加密“KITTEN”这个词,得到的密文将是“NLWWHQ”。如果我们用密钥4加密“NLWWHQ”这个词,得到的密文将是“RPAALU”。这和用密钥7加密“KITTEN”这个词完全一样。“双重”加密和普通加密是一样的,没有任何强化。
其中的原因是,当我们用密钥3加密时,我们把3加到明文字母的数字。接着,当我们用密钥4加密时,我们把4加到明文字母的数字。但加上3再加上4和直接加上7完全一样。用密钥3和4加密两次和用密钥7加密一次是一样的。
对于大多数加密法而言,多次加密不会增加密文的强度。事实上,如果你用两个加起来等于26的密钥来加密某些明文,你最终得到的密文和原来的明文是一样的!