0%

古典密码: Atbash -> base64 -> 栅栏: AnU7NnR4NassOGp3BDJgAGonMaJayTwrBqZ3ODMoMWxgMnFdNqtdMTM9 直接CybeyChef就可以。 hash: 爆破用的必须得是Python2.7. 比较烦,就不想用itertools了,直接一个一个循环打吧 1234567891011121314151617181920import binasciiimport hashlibdef to_bytes(i):return binascii.unhexlify(hex(i)[2:].zfill(2))for i0 in rang...

阅读全文 »

Sym_signin task.py: 123456789101112131415161718192021222324import randomfrom secret import secret_KEY, flagfrom task_utils import *plain = read_from_binary_file('plain')#plain = [3960651144, 1150250357, 338717842, 469237546, 46441841, 781222929]cipher = []for i in range(len(plain)): x = en...

阅读全文 »

推荐阅读文章: [AES算法的数学原理(知乎)1] [AES算法的流程(知乎)2] [Square Attack(知乎)3] 本篇文章主要作为个人学习记录,分享仅作为日后复习资料。 在文章[1]中,给出了较为详细的数学原理,至少能让我理解了AES的轮加密密钥是怎么工作的。在学习如何分析AES算法,理解Square Attack之前还是推荐看看的。 预处理: AES是一种分组对称加密算法,原文进入处理之前,将按照16bytes(128bits)的块大小进行切割分组,逐块进行处理(明文字符总长度不满16倍数就填充。) AES的大致工作流程: 我按照几个模块的方式去记忆: 将字节替换(BS),行位移...

阅读全文 »

Crypto SteinsGate 越过无数条世界线,我终于找到了你。 Padding Oracle + 差分优化 填充的方法取自:HITCON2023同文章(细心的朋友一定发现了这里题目脚本大部分直接抄HITCON2023的) 上次HITCON是用了模型1,看了官方的WP说,他推了一下发现三个模型都是有问题的,那我也试着去推一下看看,这题不就出来了吗?这题不就出来了吗? 那么这题有什么新意在里面呢?除了PaddingOracle这种古老的东西。 和HITCON2023的CareLess 一样,我提供了一个NCTF{的明文头作为提示,可以发现每组密文单独提出来都有办法提交到服务器去做解密,我们...

阅读全文 »

官方安装文档指路:官方版本 前言: 因为各种各样的需求嘛,总有人要把这个SageMath部署在各种各样的地方,至于我就是为了方便和潮流了。 目前,官方的最新版本是10.2,同样的官方的使用文档也是10.x版本的,因为之前一直都在用旧版(9.3),偶然在一次查文献的过程中发现调用不了包了,而且自己的SageMath一直是在Windows上直接用Notebook的(写写脚本看看数据),感觉也比较传统,是时候来一次更新了(闲的没事,折腾工具)。 过程: 12wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64....

阅读全文 »

打不动,也看不懂 有两道还是能理解,看得懂的,其他题就有点反人类了,这里就简单记录一下。 RSA 0: 题目: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171...

阅读全文 »

Pack: 题目: 123456789101112131415161718192021222324252627282930from Crypto.Util.number import *import randomimport osFLAG = os.environ.get('FLAG', 'flag{XXXXFAKE_FLAGXXXX}')assert FLAG[:5] == 'flag{' and FLAG[-1] == '}'FLAG = FLAG[5:-1]def pa...

阅读全文 »

Crypto: blurred_memory: 题目: 12345678910111213141516171819from random import samplefrom secret import flagassert flag[:6] == 'TPCTF{' and flag[-1] == '}'flag = flag[6:-1]assert len(set(flag)) == len(flag)xs = []for i, c in enumerate(flag): xs += [ord(c)] * (i + 1)p = 257...

阅读全文 »

前言: 研究非对称密码就不得不学格理论,而研究对称密码就不得不去学习差分。 本篇同样会从一些比较简单的题目开始上手,一步一步学习差分攻击的本质,以及如何进行差分分析。 在看之前,不需要太多的理论知识,总之欢迎交流讨论。 开干: 首先先认识一下什么是差分,已经他是如何起到作用的? 123456789101112131415161718192021222324252627282930313233343536from secret import key,maskS_BOX = [ 0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 0x16, 0xb6, ...

阅读全文 »

CakeCTF Crypto WP 强网拟态看了几眼题,不想打了,去做隔壁的比赛。 Simple_Signature: 题目: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182import osimport sysfrom hashlib import sha512from Crypto.Util.number import getRa...

阅读全文 »