UNCTF2022 Crypto部分古典密码题总结

阅读: 评论:0

UNCTF2022 Crypto部分古典密码题总结

UNCTF2022 Crypto部分古典密码题总结

1 dddd-西南科技大学

110/01/0101/0/1101/0000100/0100/11110/111/110010/0/1111/10000/111/110010/1000/110/111/0/110010/00/00000/101/111/1/0000010

  以01构成,并且分隔长短不一,确实懂得都懂摩斯密码

2,caesar-西南科技大学

Caesar cipher凯撒密码为

我把表换成了base64的表

B6vAy{dhd_AOiZ_KiMyLYLUa_JlL/HY}

已知表为base64,flag格式是,找张base64码表直接手搓

3,今晚吃什么-金陵科技学院

10000  10000  10000  00000  10000  00000  10000  10000  10000  10000  00000  10000  00000  00000  10000  10000  00000  00000  00000  10000  00000  10000  10000  10000  10000  10000  00000  00000  10000  00000  10000  00000  10000  10000  10000  00000  10000  10000  10000  00000  10000  10000  00000  10000  00000  00000  10000  10000  00000  00000  10000  00000  00000  10000  10000

 培根密码,加密方法有2

第一种方式:A aaaaa B aaaab C aaaba D aaabb E aabaa F aabab G aabba H aabbb I abaaa J abaabK ababa L ababb M abbaa N abbab O abbba P abbbb Q baaaa R baaab S baaba T baabbU babaa V babab W babba X babbb Y bbaaa Z bbaab第二种方式a AAAAA   g AABBA    n ABBAA   t BAABAb AAAAB   h AABBB    o ABBAB   u-v BAABBc AAABA   i-j ABAAA  p ABBBA   w BABAAd AAABB   k ABAAB    q ABBBB   x BABABe AABAA   l ABABA    r BAAAA   y BABBAf AABAB   m ABABB    s BAAAB   z BABBB

解密一次后,11101 01111 01001 10001 01111 10010 10111 01110 11010 01100 10011

再解密一次得到flag CRYPROISFUN

4,Multi table-西南科技大学

from string import ascii_uppercase
from random import randint,shuffle
from binascii import b2a_hex,a2b_hexflag="UNCTF{}"
base_table=list(ascii_uppercase)
# shuffle(base_table)
print(base_table)table={}
for i in range(26):table[i]=ascii_uppercase[i:]+ascii_uppercase[:i]key=[]
for i in range(4):key.append(randint(0,25))
print(key)
c=''
x=0
for i in range(len(flag)):if flag[i] in ascii_uppercase:c+=table[key[x%4]][base_table.index(flag[i])]x+=1else:c+=flag[i]
print(c)# ['J', 'X', 'I', 'S', 'E', 'C', 'R', 'Z', 'L', 'U', 'K', 'Q', 'Y', 'F', 'N', 'V', 'T', 'P', 'O', 'G', 'A', 'H', 'D', 'W', 'M', 'B']
# SDCGW{MPN_VHG_AXHU_GERA_SM_EZJNDBWN_UZHETD}

维吉尼亚密码

不过字母表以'J', 'X', 'I', 'S', 'E', 'C', 'R', 'Z', 'L', 'U', 'K', 'Q', 'Y', 'F', 'N', 'V', 'T', 'P', 'O', 'G', 'A', 'H', 'D', 'W', 'M', 'B'为26*26的。 根据FLAG 格式UNCTF应该能找到KEY ,或者通过爆破。

5,Single table-西南科技大学

ABCDEFGHIKLMNOPQRSTUVWXYZ
key="ABCD"
table=
[E,F,G,H,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A,B,C,D
]
明文=THE_CODE
整理为:TH EC OD EX
密文为:IS ZH TI UH
整理为:ISZ_HTIU密文:ISZ_HTIUH
整理为:IS ZH TI UH
明文为:TH EC DO EX
整理为:THE_CODE

playfair密码

Playfair解密算法首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。

对密文解密规则如下:

1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。

2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。

3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。

其实就是反其道而行之。

写出5*5手搓。

本文发布于:2024-01-31 13:57:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668064529019.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:古典   密码   Crypto
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23