了解古典密码:凯撒密码,栅栏密码

一:凯撒密码的加密原理

(1)基本原理

  • 凯撒密码属于替换密码(Substitution Cipher)的一种,其核心思想是通过将明文中的每个字母按照一定的规律进行替换,从而生成密文,达到隐藏明文信息的目的。

(2)具体替换原理

  • 它是基于字母表的移位操作来实现加密的。通常规定,将明文中的每个字母在字母表中按照固定的位数进行移动。例如,假设移动的位数为 3(这是最常见的示例设定,但实际使用中可以设定为任意整数)。
    • 字母表顺序为: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。
    • 对于明文的字母 “A”,按照向右移动 3 位的规则,它就会被替换为 “D”;同理,“B” 会被替换为 “E”,“C” 会被替换为 “F” 等等。
    • 当移动到字母表末尾时,会循环回到字母表开头继续移位。比如,“X” 向右移动 3 位,就会变成 “A”(因为 “X”“Y”“Z” 之后循环到 “A”“B”“C”),“Y” 会变成 “B”,“Z” 会变成 “C”。

(3)数学表述

  • 可以用数学公式来简单表示凯撒密码的加密过程。设明文的字母用小写字母表示,其在字母表中的位置序号为 x x x(假设 a = 0 a=0 a=0 b = 1 b=1 b=1 c = 2 c=2 c=2,以此类推, z = 25 z=25 z=25),设定的移位位数为 k k k ,那么加密后得到的密文字母在字母表中的位置序号 y y y 可以通过以下公式计算:
    y = ( x + k ) m o d 26 y=(x+k)mod26 y=(x+k)mod26
    这里的 “ m o d mod mod” 是取模运算,也就是求除法的余数。通过这个公式算出 y y y 后,再根据 y y y 的值找到对应的字母就是密文了。

二:凯撒密码的解密原理:

(1)解密过程:

  • 解密过程就是加密过程的逆操作。同样根据上述的移位规则,只是将密文的字母按照相反的方向移动相同的位数,就能还原出明文。从数学公式角度来看,已知密文字母在字母表中的位置序号 y y y 和移位位数 k k k ,要得到明文字母在字母表中的位置序号 x x x,可以使用以下公式:
  • x = ( y − k ) m o d 26 x=(y-k)mod26 x=(yk)mod26

二:栅栏密码的加密原理:

(1)基本思路:

  • 栅栏密码的核心思想是通过将明文按照特定的排列方式写在所谓的 “栅栏” 上,然后按特定顺序读取这些字符来生成密文,从而实现对明文信息的隐藏。

(2)具体加密步骤:

  • 确定栅栏数(行数):

    • 首先需要确定要使用的栅栏数,也就是要把明文排列成几行。这个栅栏数通常是事先约定好的一个整数,设为 n n n(一般 n > = 2 n>=2 n>=2 )。
  • 按行排列明文:

    • 将明文字符依次按照从上到下、从左到右的顺序排列在 n n n 行的 “栅栏” 上。例如,明文是 “HELLOWORLD”,若设定栅栏数 n = 3 n=3 n=3 ,则排列如下:
    • 第一行:H L O L
    • 第二行:E W R D
    • 第三行:L O
  • 生成密文:按照特定的顺序读取这些排列好的字符来形成密文。对于上述 n = 3 n=3 n=3 的例子,常见的读取顺序是先从上到下读取每列的字符(也可以有其他约定的读取顺序)。按照先列后行的顺序读取得到的密文就是:“HLELOWRDLD”。

三:一般情况的数学表述:

  • 设明文为 P = p 1 ∗ p 2 ∗ p 3 . . . p m P=p_1*p_2*p_3...p_m P=p1p2p3...pm (其中 p i p_i pi 表示明文中的第 i i i 个字符, m m m 为明文长度),设定的栅栏数为 n n n
  • 我们可以将明文按照栅栏数 n n n 排列成一个类似矩阵的形式(不一定是完整的矩形矩阵,可能最后一行字符数会少于前面的行)。
  • 然后按照约定的读取顺序(如先列后行)来生成密文 C = c 1 ∗ c 2 ∗ c 3 . . . . c m C=c_1*c_2*c_3....c_m C=c1c2c3....cm ,其中 c j c_j cj 是按照读取顺序选取的字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值