一、Vigenere密码
16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。
单一字母替换通过字母频率分析很容易被破解,Vigenère使用的方法是,有秘钥和明文,明文字符的替换是根据秘钥对应字母来替代。假设现在有秘钥TIG,明文ABB。那么对ABB进行加密的过程如下。
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
如上表所示,第一行位固定字母表,第二行位秘钥替换后的表。这一步是对A进行加密,查找第一行A对应第二行的 T那么我们就将明文中的A替换为T(A->T)
对第二个字母加密时,对应关系如下表所示:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H |
同样查表 将B->J
一次类推,当秘钥比明文短时,将重新从秘钥的第一个字母开始映射,然后再进行加密。
这就是Vigenère密码的实现过程了。将26个字母编号0~25 。明文字母为M,秘钥字母为K,密文字母为N
用过