【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-古典密码

举报
剑豪 发表于 2023/06/30 21:44:31 2023/06/30
【摘要】 古典密码是指使用传统的替换或移位方式对明文进行加密,例如凯撒密码、栅栏密码等。在这种加密方式中,加密密钥通常是公开的,因此易被破解。现代密码学基本上已经放弃了古典密码的加密方式,而采用更加高级的数学算法来保证加密的安全性。

前言

古典密码是指使用传统的替换或移位方式对明文进行加密,例如凯撒密码、栅栏密码等。在这种加密方式中,加密密钥通常是公开的,因此易被破解。现代密码学基本上已经放弃了古典密码的加密方式,而采用更加高级的数学算法来保证加密的安全性。

ASCII是一种字符编码标准,它规定了128个字符的编码,包括26个大写字母、26个小写字母、10个数字、标点符号和控制字符等。

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种用于将字符编码为数字的系统,它最初是为电传打字机而设计的。ASCII中的每个字符都用一个7位的二进制数字来表示,最高位始终为0。因此,ASCII最多可以编码128个字符。

ASCII的发展可以追溯到20世纪60年代,当时美国的计算机厂商需要一种统一的字符编码系统,以便不同的计算机可以互相通信并共享数据。最终,ASCII成为了美国国家标准协会(ANSI)的标准。

在计算机编程中,字符串是由一系列字符组成的序列。将字符串转换为ASCII码可以方便存储和传输,也可以进行比较和排序等操作。反之,将ASCII码转换为字符串可以将数字编码转换为可读的字符序列。

下面是一个Python的字符串和ASCII码转换的案例:

# 将字符串转换为ASCII码
string = "Hello, world!"
ascii_code = [ord(char) for char in string]
print(ascii_code)
​
# 将ASCII码转换为字符串
string_again = ''.join([chr(code) for code in ascii_code])
print(string_again)

运行结果为:

[72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]
Hello, world!

在该案例中,使用了Python内置的ord函数将字符串中每个字符转换为对应的ASCII码,并将结果存储在一个列表中。接着,使用join方法将ASCII码列表中的数字编码转换为一个字符串。

栅栏密码是一种简单的加密方式,是将明文按照一定方式排列,然后按照规定的方式读取密文。具体方式为:将明文中的字符按照设定的间隔排列成一个矩形,然后按照行或列的顺序读取。

一、古典密码

1.打开题目


在这里插入图片描述



2.解题



密文内容如下{79 67 85 123 67 70 84 69 76 88 79 85 89 68 69 67 84 78 71 65 72 79 72 82 78 70 73 69 78 77 125 73 79 84 65}


密文全是数字,ASCII码转为字符串:http://tools.bugscaner.com/ascii.html


在这里插入图片描述


得到:OCU{CFTELXOUYDECTNGAHOHRNFIENM}IOTA

分组:

OCU{CFT
ELXOUYD
ECTNGAH
OHRNFIE
NM}IOTA

固定的格式为:格式:CTF{ }

利用key值的固定结构。一共35个字母,栅栏解密没有结果,考虑列置换。

在这里插入图片描述

调换列顺序。

在这里插入图片描述

得到flag:COULDYOUEXCHANGETHEINFORMATION

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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