仿射密码简单实例

仿射密码简单实例

仿射密码为单表加密的一种,字母系统中所有字母都藉一简单数学方程加密,对应至数值,或转回字母,下面以明文“ABC”为例,进行仿射密码加解密

仿射密码加解密步骤

在这里插入图片描述

选择密钥,确定加密函数:

在仿射密码中,需要选择两个整数a和b作为加密密钥。m是字母的数目,在这个例子中,m为26,因为英文字母表有26个字母。
其中,a必须与字母表的大小m互质,因为a的乘法逆元素仅存在于a与m互质条件下。
为了简化,这里选择a=5,b=8作为密钥。
加密函数为:
E(x)=(ax+b)mod m
E(x)=(5x+8)mod 26

求逆元、获得解密函数

解密函数:
为了解密,我们需要找到 a 在模 m 下的逆元 。由于 a=5 和 m=26 互质,逆元存在。通过扩展欧几里得算法,我们可以找到逆元21,因为 此处满足等式1=5×21 (mod 26)
在这里插入图片描述
解密函数为:
D(y)=21(y-8) mod 26

具体加密步骤

明文转数字:

以明文“ABC”为例、将明文“ABC”中的每个字母对应到一个数字上。按照A=0,B=1,C=2,…,Z=25的对应关系,明文“ABC”对应的数字序列为0,1,2。
在这里插入图片描述

加密运算:

对数字序列中的每个数字x,执行加密运算y = (ax + b) mod m。
将x=0,1,2分别代入y = (5x + 8) mod 26,得到:
当x=0时,y = (5×0 + 8) mod 26 = 8 mod 26 = 8
当x=1时,y = (5×1 + 8) mod 26 = 13 mod 26 = 13
当x=2时,y = (5×2 + 8) mod 26 = 18 mod 26 = 18
数字转密文:
将加密后得到的数字8,13,18对应回字母表上的字母。按照0=A,1=B,2=C,…,25=Z的对应关系,数字8,13,18对应的字母分别为I,N,S。
因此,明文“ABC”加密后的密文为“INS”。

具体解密步骤

密文转数字

I → 8
N → 13
S → 18

代入解密函数

D(y)=21(y-8) mod 26,得到对应数值0、1、2,还原为字母即得到明文ABC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值