明霞山资源网 Design By www.htccd.com
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下:
解密由仿射密码加密的密文“DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS”
想解密这个密文,首先必须要知道仿射密码是什么:
仿射密码是一种代换密码,加解密公式如下
加密:C=E([a,b],p)=(ap+b) mod 26C=E([a,b],p)=(ap+b) mod 26
解密:p=D([a,b],C)=((C"htmlcode">
#encoding:utf-8
def NI(x,b): #定义求x关于b的逆元的函数NI,其中(NI(x,b)*x) mod b = 1 当x和b互质时求出的逆元唯一
i = 1
while (x*i)%b != 1:
i = i + 1
return i
c = "DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS"
C = []
#对密文进行预处理并储存在列表中,储存形式是对应字母在26个英文字母中的位序
for i in c:
if i == ' ':
C.append(i)
else:
C.append(ord(i)-65)
#将加密算法中a可能的取值储存在列表中
a = [3,5,7,9,11,15,17,19,21,23,25]
P = []
for keyb in range(0,26):
for keya in a:
ni_a = NI(keya,26)
for s in C:
if s == ' ':
P.append(' ')
else:
P.append(((s-keyb)*ni_a)%26) #将明文字母对应的位次码依次加入到明文列表中
strP = ''
for t in P:
if t==' ':
strP = strP + ' '
else:
strP = strP + chr(t+97) #将明文转化为字符串并输出
print(strP)
P = []
运行文件后依次打印出所有可能的明文。经过寻找,发现如下一行应当是所求的明文。
读出明文应当为theres no business like show business。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
python,解密,仿射密码
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
