【愚公系列】2021年12月 攻防世界-简单题-CRYPTO-010(转轮机加密)

举报
愚公搬代码 发表于 2021/12/26 00:39:58 2021/12/26
【摘要】 前言题目描述:你俩继续往前走,来到了前面的下一个关卡,这个铺面墙上写了好多奇奇怪怪的 英文字母,排列的的整整齐齐,店面前面还有一个大大的类似于土耳其旋转烤肉的架子,上面一圈圈的 也刻着很多英文字母,你是一个小历史迷,对于二战时候的历史刚好特别熟悉,一拍大腿:“嗨呀!我知道 是什么东西了!”。提示:托马斯·杰斐逊。 flag,是字符串,小写。提示:以下是本篇文章正文内容,下面案例可供参考 一...

前言

题目描述:你俩继续往前走,来到了前面的下一个关卡,这个铺面墙上写了好多奇奇怪怪的 英文字母,排列的的整整齐齐,店面前面还有一个大大的类似于土耳其旋转烤肉的架子,上面一圈圈的 也刻着很多英文字母,你是一个小历史迷,对于二战时候的历史刚好特别熟悉,一拍大腿:“嗨呀!我知道 是什么东西了!”。提示:托马斯·杰斐逊。 flag,是字符串,小写。


提示:以下是本篇文章正文内容,下面案例可供参考

一、转轮机加密

题目链接:https://adworld.xctf.org.cn/task/answer?type=crypto&number=5&grade=0&id=5109&page=1

二、使用步骤

1.下载附件

在这里插入图片描述

1:  < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2:  < KPBELNACZDTRXMJQOYHGVSFUWI <
3:  < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4:  < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5:  < IHFRLABEUOTSGJVDKCPMNZQWXY <
6:  < AMKGHIWPNYCJBFZDRUSLOQXVET <
7:  < GWTHSPYBXIZULVKMRAFDCEONJQ <
8:  < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9:  < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11< MNBVCXZQWERTPOIUYALSKDJFHG <
12< LVNCMXZPQOWEIURYTASBKJDFHG <
13< JZQAWSXCDERFVBGTYHNUMKILOP <

密钥为:2,3,7,5,13,12,9,1,8,10,4,11,6
密文为:NFQKSEVOQOFNP

2.脚本解密

import re

table=[2,3,7,5,13,12,9,1,8,10,4,11,6]
Ciphertext='NFQKSEVOQOFNP'
with open(r'F:\桌面\tmp\6.txt','r') as f:
    data=f.read()

#转轮机根据table重新排列
def wheel_decode(data,table):
    resultList=[]
    pattern = re.compile('[A-Z]{26}')
    result = pattern.findall(data)

    for i in table:
        resultList.append(result[i-1])
    return resultList

resultList = wheel_decode(data,table)



#根据密文重新排列
def rearrange(List,Ciphertext):
    resultList=[]
    for i in range(0,13):
        resultList.append(List[i][List[i].find(Ciphertext[i]):]+List[i][:List[i].find(Ciphertext[i])])
    return resultList
resultList= rearrange(resultList,Ciphertext)

选取每一列,列出结果
def rearrange2(List):
    resultList=[]
    s=''
    for i in range(0,26):
        for j in List:
            s += j[i]

        resultList.append(s)
        s=''
    return resultList

resultList = rearrange2(resultList)
for i in resultList:
    print(i)

结果:

NFQKSEVOQOFNP
AHGCXIUSNWCBN
CTWPCUBFOTUVY
ZETMDRMEZGKCC
DQHNEYCZUVTXJ
TGSZRTQWTREZB
RYPQFAWAWSBQF
XXYWVSAXDCSWZ
MPBXBBOJCZXED
JLXYGKIGVQQRR
QOIITJKDRKYTU
OCZHYDZLJEIPS
YKUFHFGULLZOL
HBLRNHJBXMMIO
GDVLUGXVKXJUQ
VMKAMLPIIYWYX
SAMBKVLQSIAAV
FIREINTHEHOLE
UZAULCDKFPRST
WVFOOMSYAUPKA
IRDTPXRPPDLDM
KNCSJZFNMNNJK
PSEGZPHTYADFG
BJOJQQECGJVHH
EUNVAONRHFHGI
LWJDWWYMBBGMW

发现FIREINTHEHOLE是有语义得

得到flag:fireinthehole


总结

密学技术在几个世纪中不断地发展。托马斯杰斐逊,在17世纪末时,描述发表了一个在加密学中一个重大突破,但理论当时并没有实质建立过。他的发表,称为加密轮,由移动轮上的36个字母环组成,可用于实现复杂的编码上。这个概念是如此的先进,以至于它可以在第二次世界大战末期时,作为美国军事编码的基础。

我讲讲它得原理,

1.首先我们根据密钥来进行重新排列轮子

2.密钥得数字就代表第几个轮子,如2,3,7,5…代表第一行换成原来第二行得,第二行换成原来第三行得,依次类推

3.排好后根据密文,进行行内排列,如 KPBELNACZDTRXMJQOYHGVSFUWI 进行重新排列后,找到N所在位置,然后重新拼接 ‘NACZDTRXMJQOYHGVSFUWI’+‘KPBEL’

4.对所有行排好后按照列取

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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