乘法密码简单实例

乘法密码简单实例

乘法密码是简单代替密码的一种。它需要预先知道消息元素的个数,加密的过程其实是相当于对明文消息所组成的数组下标进行加密,然后用明文消息中加密后位置所对应的明文字符代替。
在这里插入图片描述

加密步骤

确定明文和密钥

假设明文消息为“ABC”,对应的英文字母数组下标为[1, 2, 3],英文字母共有26个,因此n=26。
选择一个密钥k,这里选择k=5(注意,k需要满足0<k<n且k与n互素,即k和n的最大公约数为1)。

具体加密步骤

对于明文中的每个字符,计算其对应的数组下标与密钥k的乘积,然后对n取模。
E(x)=(k⋅x) mod n
字符A :1×5 mod 26 =5->A
字符B :2×5 mod 26 =10->F
字符C :3×5 mod 26 =15->K
得到密文EJO

具体解密步骤

为了解密,我们需要找到密钥 k=5 关于26的乘法逆元。使用扩展欧几里得算法,我们可以找到21,因为 (5⋅21)mod26=105mod26=1。
然后,对于密文中的每个字符,我们将其对应的数字与逆元 21 相乘,再对26取模。
密文“AFK”,对应的英文字母数组下标为[5, 10, 15]
字符A:521 mod 26=105 mod 26=1->A
字符F:10
21 mod 26=210 mod 26=2->B
字符K:15*21 mod 26=315 mod 26=3->C
利用逆元21,解密得到明文ABC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值