-
-
[推荐]看雪CTF.TSRC 2018 团队赛 第十五题『 密码风云』 解题思路
-
发表于: 2019-1-2 17:36 4149
-
最新赛况战况一览
2018年的最后一天,看雪CTF.TSRC 2018 最后一题画上句号。作为本次比赛的决胜局,无团队攻破,为本题添上些许神秘色彩。
最后一题过后,攻击方比赛排名继续保持如下:
感谢各位选手一个月以来的优秀表现,最终比赛结果将是如何?接下来将由比赛组委会对所有比赛成绩进行复盘、审校,成绩将于1月2日揭晓!
第十五题 点评
crownless:
“密码风云”此题涉及梅森素数、Hash算法、传统加密、对称算法、ECC公钥密码,可以说是密码学的大杂烩,对没有相关知识积累的逆向者造成了极大的考验,创造了本届看雪CTF第一题无人攻破的历史。
第十五题 出题团队简介
出题团队:BlackChamber
成员cnbragon,密码学和逆向爱好者,非常喜欢分析研究密码学算法在各种软件和协议中的应用,希望能和CTF比赛中的密码学爱好者多交流
第十五题 设计思路
由看雪论坛cnbragon原创
说明:
其中Rotor加密可从相关的Python模块源码中获取,Skipjack算法对其F-Table进行了变换。
整个题目涉及梅森素数、Hash算法、传统加密、对称算法、ECC公钥密码,总体思路如下:
1. 前面两个数都是梅森素数,即p是素数,2^p -1也是素数,对于10进制3位数,只有两个值。
这里为了降低难度,给出线索,在尝试出错10次以后,增加判断是否是素数的逻辑,便于判断这是梅森素数公式。
2. 计算两个梅森素数的和,并且计算转化为字符串之后的SM3哈希值,并简单计算Hash值的XOR校验值,如果校验通过,则用该Hash值作为Rotor算法的Key。
3.对输入的Serial中间的24个字符数据进行解密,得到字符串cryptography,取其前10个字符,作为接下来Skipjack算法的密钥,对程序中预存的24个字节进行解密,解密后的值为pediyctf2018.by.cnbragon,用于后面ECNR步骤的消息计算。这里对Skipjack的F-Table进行了变换。
4.使用同样的密钥,对serial的后面32个字符进行Skipjack解密,解密后的结果分别作为签名c和签名d。
5.将字符串pediyctf2018.by.cnbragon以64位作为单位,进行xor,结果是ECNR的真正明文message。
6.对签名c和签名d做ECNR签名验证,如果验证通过,为了保证serial的惟一并且进一步降低难度,增加了额外的加法校验。
题目源码请点击下方“阅读原文”查看哦!
合作伙伴
腾讯安全应急响应中心
TSRC,腾讯安全的先头兵,肩负腾讯公司安全漏洞、黑客入侵的发现和处理工作。这是个没有硝烟的战场,我们与两万多名安全专家并肩而行,捍卫全球亿万用户的信息、财产安全。一直以来,我们怀揣感恩之心,努力构建开放的TSRC交流平台,回馈安全社区。未来,我们将继续携手安全行业精英,探索互联网安全新方向,建设互联网生态安全,共铸“互联网+”新时代。
本题源码!
https://bbs.pediy.com/thread-248740.htm转载请注明:转自看雪学院
看雪CTF.TSRC 2018 团队赛 解题思路汇总:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!