新闻详情

新闻详情

首页 / 资讯中心 / 详情

Writeup 4 CSS CTF Semester 2 2026 Cryptography Chrono I

发布时间:2026/10/2 17:01:46来源:尧图网络
Writeup 4 CSS CTF Semester 2 2026 Cryptography Chrono I
Writeup 4 CSS CTF Semester 2 2026 Cryptography Chrono I题目信息题目名称Chrono I分值25难度Beginner题目描述We have intercepted a message and a Ciphertext, please help us crack the Ciphertext!Message:2026/09/21 14:35:07 - As always, The time is always the key to unlock itCiphertext:ESUITO{gwfvb_xejqnf_nimgt_b_whhrlv}Flag Format:CSSCTF{...}前置知识维吉尼亚密码Vigenère Cipher1. 什么是维吉尼亚密码维吉尼亚密码是一种多表替换密码由法国外交官布莱斯·德·维吉尼亚Blaise de Vigenère在 16 世纪提出。它是对凯撒密码的扩展——凯撒密码所有字母用同一个偏移量而维吉尼亚密码每个字母使用不同的偏移量偏移量由密钥决定。由于同一字母在不同位置会被加密成不同密文维吉尼亚密码在历史上曾被称为“不可破解的密码”le chiffre indéchiffrable直到 19 世纪才被弗里德里希·卡西斯基Friedrich Kasiski和查尔斯·巴贝奇Charles Babbage分别破解。2. 工作原理核心思想用密钥的每一位对明文的每一个字母进行凯撒移位。加密公式C_i (P_i K_i) mod 26解密公式P_i (C_i - K_i) mod 26其中P_i是第 i 个明文字母的数值A0, B1, …, Z25K_i是第 i 个密钥字母或数字的值C_i是第 i 个密文字母的数值密钥循环使用如果密钥比明文短密钥会从头开始重复使用。3. 举例说明假设明文HELLO密钥KEY步骤 1将字母转成数字A0, B1, …, Z25明文HELLO数值74111114密钥KEYKE数值10424104步骤 2逐位相加取模 26位置明文密钥计算密文1710(710) mod 26 17R244(44) mod 26 8I31124(1124) mod 26 35 mod 26 9J41110(1110) mod 26 21V5144(144) mod 26 18S密文RIJVS解密就是反过来P_i (C_i - K_i) mod 264. 数字作为密钥维吉尼亚密码的密钥不一定是字母也可以是数字。当密钥是数字时直接把数字当作偏移量密钥数字0→ 不偏移密钥数字1→ 偏移 1密钥数字9→ 偏移 9例如密钥202609明文字母按 2、0、2、6、0、9 的偏移量循环加密。5. 关键规则在实际应用中维吉尼亚密码有几个重要规则只加密字母数字、标点、空格等非字母字符通常原样保留不参与加密。密钥索引只对字母递增遇到非字母字符时密钥索引不前进。这意味着密钥只为字母消耗。大小写敏感大写字母加密后仍为大写小写字母加密后仍为小写。循环使用密钥用完一遍后从头开始直到所有字母加密完毕。6. 破解方法维吉尼亚密码的破解思路确定密钥长度利用卡西斯基测试Kasiski Examination或弗里德曼测试Friedman Test找出密钥长度。分组分析将密文按密钥长度分组每组实际上是凯撒密码。频率分析对每组进行频率分析确定每个位置的偏移量。还原密钥将所有偏移量拼起来得到密钥。但在 CTF 题目中密钥通常是已知的如本题的时间只需直接解密即可。解题思路1. 分析题目提示题目给出了两条关键信息一条消息2026/09/21 14:35:07 - As always, The time is always the key to unlock it一段密文ESUITO{gwfvb_xejqnf_nimgt_b_whhrlv}提示“The time is always the key to unlock it”非常明确地告诉我们时间就是密钥。结合密文格式ESUITO{...}可以猜测明文格式应为CSSCTF{...}即密文是通过某种古典密码加密得到的。2. 确定加密算法密文ESUITO对应明文CSSCTF我们逐字符分析偏移密文明文偏移密文 - 明文E (4)C (2)2S (18)S (18)0U (20)S (18)2I (8)C (2)6T (19)T (19)0O (14)F (5)9偏移序列为2, 0, 2, 6, 0, 9这个序列正好是时间2026/09/21 14:35:07的前 6 位数字202609。继续验证密钥的完整长度时间数字提取2026 09 21 14 35 07→20260921143507共 14 位这是一个典型的维吉尼亚密码特征密钥循环使用每个字母按密钥数字偏移。3. 维吉尼亚密码解密维吉尼亚密码规则回顾加密C (P K) mod 26解密P (C - K) mod 26其中K是密钥数字0-9只对字母生效非字母如{、_、}跳过。关键点密钥索引只对字母递增遇到非字母时不消耗密钥位。密钥20260921143507解密过程字母序号密文密钥计算明文0E (4)24-22C1S (18)018-018S2U (20)220-218S3I (8)68-62C4T (19)019-019T5O (14)914-95F-{-跳过{6g (6)26-24e7w (22)122-121v8f (5)15-14e9v (21)421-417r10b (1)31-3-2→24y-_-跳过_11x (23)523-518s12e (4)04-04e13j (9)79-72c14q (16)216-214o15n (13)013-013n16f (5)25-23d-_-跳过_17n (13)613-67h18i (8)08-08i19m (12)912-93d20g (6)26-24e21t (19)119-118s-_-跳过_22b (1)11-10a-_-跳过_23w (22)422-418s24h (7)37-34e25h (7)57-52c26r (17)017-017r27l (11)711-74e28v (21)221-219t得到明文CSSCTF{every_second_hides_a_secret}解题脚本defdecrypt_vigenere(ciphertext,key): 维吉尼亚密码解密 ciphertext: 密文 key: 密钥数字字符串 plaintext[]key_idx0forchinciphertext:ifch.isalpha():shiftint(key[key_idx%len(key)])baseord(A)ifch.isupper()elseord(a)plain_chchr((ord(ch)-base-shift)%26base)plaintext.append(plain_ch)key_idx1else:plaintext.append(ch)return.join(plaintext)ciphertextESUITO{gwfvb_xejqnf_nimgt_b_whhrlv}key20260921143507flagdecrypt_vigenere(ciphertext,key)print(flag)# 输出: CSSCTF{every_second_hides_a_secret}运行结果C:\Users\Administrator\AppData\Local\Programs\Python\Python314\python.exe exp.py CSSCTF{every_second_hides_a_secret}进程已结束退出代码为0关键坑点密钥索引只对字母递增遇到{、_、}等非字母字符时密钥索引不前进否则会导致后续字母解密错位。这是本题最容易出错的地方。密钥长度完整时间数字是2026092114350714 位不是前 6 位202609。大小写敏感解密时保持大小写题目要求 flag 大小写敏感。维吉尼亚密码的非字母处理标准维吉尼亚密码只加密字母非字母原样保留这是实现时需要注意的细节。最终 FlagCSSCTF{every_second_hides_a_secret}总结这是一道典型的维吉尼亚密码入门题考察点在于识别密码类型通过提示“时间就是密钥”和密文格式判断是维吉尼亚密码。提取密钥从时间格式中提取数字作为密钥。正确处理密钥循环密钥索引只对字母递增非字母跳过这是最容易出错的地方。维吉尼亚密码的基本原理多表替换、密钥循环、字母移位。经验遇到维吉尼亚密码时密钥索引只对字母递增非字母跳过这是实现和解题时最关键的一点。此外密钥不一定是字母数字也可以作为偏移量使用这在 CTF 题目中很常见。Rambo2026年国庆节
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

74 个公共 Tracker 贴满 qBittorrent:BitTorrent 加速下载最快的配置方法 2026/10/2 17:52:30

74 个公共 Tracker 贴满 qBittorrent:BitTorrent 加速下载最快的配置方法

74 个公共 Tracker 贴满 qBittorrent:BitTorrent 加速下载最快的配置方法 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 把 Peer 入口拉满不靠玄学&#xff0c…

阅读更多 →
免费给老 Mac 装最新 macOS:OpenCore Legacy Patcher 操作指南 2026/10/2 17:52:30

免费给老 Mac 装最新 macOS:OpenCore Legacy Patcher 操作指南

免费给老 Mac 装最新 macOS:OpenCore Legacy Patcher 操作指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你打开"系统更新"&#…

阅读更多 →
AI Skills实操指南:从概念、安装到自研调试一次讲透 2026/10/2 17:52:30

AI Skills实操指南:从概念、安装到自研调试一次讲透

写这篇文章的时候,我电脑上已经躺了二十多个 skills 文件夹了。最近这半年,Claude Code 和 Codex CLI 带火了 skills 这个概念,前端开发skills、数学建模skills、superpower skills 这些词在社区里到处刷屏。坦白说,我第一次看到 …

阅读更多 →
从IDE到ADE:智能体开发环境如何成为新基座 2026/10/2 17:52:30

从IDE到ADE:智能体开发环境如何成为新基座

这两年跟做AI应用的朋友聊天,最常被问的一句话就是:“你现在写Agent,还用之前那套IDE吗?” 说实话,这个问题放在半年前,我可能会反问一句“不然呢”,但放到现在,我会认真跟你聊一聊一…

阅读更多 →
安全测试结果可视化:基于Grafana的看板搭建与数据接入实践 2026/10/2 17:52:23

安全测试结果可视化:基于Grafana的看板搭建与数据接入实践

1. 为什么要把安全测试结果搬上可视化看板1.1 传统安全测试交付方式的痛点干过安全测试的人都有体会:真正难的不是扫出漏洞,而是怎么让漏洞被看见、被重视、被修复。早几年我做安全测试,交付物基本就是两种——一份上百页的渗透测试报告&…

阅读更多 →
Pi 极简编码 Agent:从设计哲学到工程实践的深度解析 2026/10/2 17:52:22

Pi 极简编码 Agent:从设计哲学到工程实践的深度解析

1. Pi 是什么?为什么它正在抢走 AI 编程工具的注意力先坦白说,我第一次听说 Pi 也没太当回事。编码 Agent 这两年火到什么程度大家有目共睹,从 GitHub Copilot 到 Cursor,再到 Claude Code 和各类脚手架工具,每过几个月…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉