📜  柱状换位密码(1)

📅  最后修改于: 2023-12-03 15:40:26.744000             🧑  作者: Mango

柱状换位密码介绍

柱状换位密码(Columnar Transposition Cipher)是一种基于置换的古典密码学加密方式。这种加密方式通过将明文中每个字符按照行列顺序填充到一个矩阵中,再按照一定规则进行列的交换和输出,从而生成密文。

加密过程

设明文为 message,密钥为 key,步骤如下:

  1. 将明文按照密钥中的字母顺序排列,每行填充密钥长度个字符。 key = "secret", 明文为 "hello world", 排序后为 "llowlrdeh o"

    | s | e | c | r | e | t | |---|---|---|---|---|---| | l | l | o | w | l | r | | d | e | h | | o | |

  2. 将矩阵按照密钥的字母顺序排列。 key = "secret"

    | s | e | c | r | e | t | |---|---|---|---|---|---| | l | l | o | w | l | r | | d | e | h | | o | |

  3. 将排列后的矩阵按列(密钥的字母顺序)输出。 key = "secret"

    slldoe wllhor

因为密钥 secret 中没有重复字母,因此这种情况下的加密是可以通过简单的计算得出的。但如果密钥中包含重复的字母,加密方式将变得更加复杂。

解密过程

设密文为 ciphertext,密钥为 key,步骤如下:

  1. 按照密钥的字母顺序将密文填充到矩阵中。 key = "secret", 密文为 "slldoe wllhor", 填充后为:

    | s | e | c | r | e | t | |---|---|---|---|---|---| | s | l | l | d | o | e | | | w | l | l | h | o | | | | | | | |

  2. 将矩阵按照行顺序输出。 hello world