栅栏密码的原理是什么
加密原理
栅栏密码的原理是,将明文的字母像写在交错的栅栏上一样,然后按行读取
选择密钥:首先,你需要选择一个密钥,这个密钥就是一个整数,表示“栅栏”的层数。例如,密钥为 3,就表示有 3 层栅栏
构造栅栏:将明文的字母按照“之”字形(zig-zag)的路径,依次填写到对应层数的栅栏上
按行读取:加密后的密文就是将每一层栅栏上的字母,从上到下、从左到右依次连接起来
示例:
明文:
WE ARE DISCOVERED. FLEE AT ONCE.密钥:
3
我们将明文写在 3 层栅栏上:
现在,我们按行读取,忽略点号,只提取字母:
第一行:
WEDOEE第二行:
ERDSOEFETNC第三行:
AICSVRAOC
将三行连接起来,就得到了密文:
密文:WEDOEE ERDSOEFETNC AICSVRAOC
解密原理
解密过程是加密的逆向操作,你需要知道密钥和密文的长度
计算每行长度:根据密钥和密文长度,计算出每一层栅栏上的字母数量
重构栅栏:根据计算出的数量,将密文依次填回到“之”字形的栅栏结构中
按“之”字形读取:最后,按照原来的“之”字形路径,依次读取每个位置上的字母,就能还原出原始明文