【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-变异凯撒

举报
剑豪 发表于 2023/06/30 21:37:04 2023/06/30
【摘要】 在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

前言

在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

凯撒密码是最古老的密码之一,也被称为移位密码。它的加密方法是将明文中的每个字母用字母表中它后面的第几个字母来代替,即将字母表中第n个字母替换为第n+m个字母(m为预设的偏移量或密钥)。

凯撒密码的由来可以追溯到古罗马时期,时任罗马军队统帅的恺撒(Julius Caesar)曾经使用这种密码来传递军事命令。

加密算法:

将明文中的每个字母按照预设的偏移量进行替换。如果偏移量为3,则A会被替换为D,B会被替换为E,以此类推。

解密算法:

将密文中的每个字母按照相反的偏移量进行替换。

简单案例:

假设我们使用偏移量为3的凯撒密码进行加密,明文为“HELLO WORLD”,则加密后的密文为“KHOOR ZRUOG”。

变异凯撒密码是一种对传统凯撒密码的改良,它在每个位置上使用的偏移量都是不同的,从而增加了密码的安全性。

简单案例:

假设我们使用变异凯撒密码进行加密,首先随机生成一个偏移量列表,例如[3,1,4,2,5],则明文“HELLO WORLD”的加密过程如下:

  • H通过偏移量3替换为K

  • E通过偏移量1替换为F

  • L通过偏移量4替换为P

  • L通过偏移量2替换为N

  • O通过偏移量5替换为T

  • W通过偏移量3替换为Z

  • O通过偏移量1替换为P

  • R通过偏移量4替换为V

  • L通过偏移量2替换为N

  • D通过偏移量5替换为I

因此,最终的加密密文为“KFPNTZPNVI”。解密的方法与传统凯撒密码类似,只需要知道偏移量列表即可。

ROT13是凯撒密码的一种变体,即移位数为13。ROT13是它自己本身的逆反,也就是说,要还原ROT13,应用加密同样的算法即可得,故同样的操作可用再加密与解密。

一、变异凯撒

1.打开题目

在这里插入图片描述


2.解题

编写一段python代码来检查其中的对应关系

str1 = "flag{"
str2 = "afZ_r"
for i in range(0,5):
    a = ord(str1[i])-ord(str2[i])
    print(a )

得到:5、6、7、8

因此,我们只需要编写一段python代码,通过ASCII码的运算,来得到flag

def b_kaisa(mstr):
    j = 5
    i = 0
    lmstr = []
    for i in range(len(mstr)):
        m = ord(mstr[i])          # 将密文的第i个字母变为其ascii码值
        m = m + j                 # ascii值+j
        lmstr.append(m)           # 将递进后的ascii值存入列表lmstr[]
        i = i+1
        j = j+1
    return lmstr
 
 
if __name__ == '__main__':
    m_str = 'afZ_r9VYfScOeO_UL^RWUc'    # 密文
    lstr = []
    lstr = b_kaisa(m_str)
    print (lstr)

将ASCII码放入转换器,得到flag{Caesar_variation}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。