单表代换 | 您所在的位置:网站首页 › 字母方阵加密表例子 › 单表代换 |
仿射变换加解密原理
仿射变换是基于凯撒密码(替换)和移位变换,需要两个密钥,一个为相乘a,一个为移位b。 加密算法:c=a*m+ b(mod n) 加密过程: 1.获取a,b(密钥),n(字符个数),mod n是为了保证得到数字唯一(互素)。 2.获取明文。 3.明文转换成各个字符所对应的数字 -> 将所得数字带入上面的算法公式 -> 得到数字再转换成对应的字符,形成密文. 解密算法: 算法:m=a^ -1(m-b)(mod n)这里a^-1不是指倒数,而是a关于字符数量模的乘法可逆元。 什么是乘法逆元? 例1:求5关于14的乘法逆元 14=25+4 5=41+1 反过来写:1=5-41=5-(14-52)=5*3-14 因此5关于模14的乘法逆元为3. 代码实现: a=7 b=26 c=0 i=0 while i= len(LETTERS): num = num - len(LETTERS) else: #用于解密,加密无用 num=19*(num-23)%26 #19为逆元 elif num |
CopyRight 2018-2019 实验室设备网 版权所有 |