2024-11-ISCTF-Crypto-wp
2024年11月的ISCTF Crypto方向wp
数论-快速幂运算
关于矩阵快速幂运算的笔记
rsa-smooth攻击
涉及知识点
光滑数:指能分解成小素数乘积的正整数
B-光滑数:若一个光滑数的最大小质数因子<=B,则称该光滑数为B-光滑数
费马小定理:
p-1光滑
由于p为质数,设a为整数且与p互质,则有
又因为p-1为因子互不相同的B-光滑数,所以
故p的倍数可以求出来,且我们有n=p*q。所以
Pollard’s p-1
由于我们只关注gcd的结果,不需要计算B!的值,我们只需要令B=1,2,3,…,计算出gcd结果即可
12345678910111213from gmpy2 import *a = 2n = 2while True: a = powmod(a, n, N) res = gcd(a-1, N) if res != 1 and res != N: q = N // res d = invert(e, (res-1)*(q-1)) m = powmod(c, d, N) print(m) break n += 1
p+1光滑
Williams’s p + 1
12345678 ...
2024.10.SICTF#Round4-wp
Misc
模型的秘密
使用字典爆破压缩包密码
搜索blend找到与3D文件格式有关的blender
发现题目附件中文件头被更改,修改之后使用blender打开查看flag
派森
根据音译,文件为py文件,修改后缀后发现代码也被音译,还原大致代码
123456from import xorfrom import *flag = "************"int = []for i in range(0,len(),4): int.append(xor(ord(flag[i]),ord(flag[i+2])))
差不多就是将flag每四个分为一组,第一位与第三位进行异或,第二位和第四位异或,密文中含有第三位和第四位。异或即可得到flag的原文。
签到
关注公众号即可
Crypto
SignBase
base64即可
Smooth
根据代码,n首先是小素数的乘积,之后+1,所以p-1是光滑的,使用smooth攻击
exp:
123456789101112131415161718192021from Crypto.Util.number import * ...
编码与古典密码
常见工具CyberChef地址:https://github.com/gchq/CyberChef
随波逐流 CTF编码工具地址:http://1o1o.xyz/
编码ascii码
ASCII(发音:,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。ASCII 由电报码发展而来。第一版标准发布于1963年 ,1967年经历了一次主要修订[5][6],最后一次更新则是在1986年,至今为止共定义了128个字符;其中33个字符无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符。控制字符的用途主要是用来操控已经处理过的文字。在33个字符之外的是95个可显示的字符。用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。
ascii码对照表:https://blog.csd ...
office_tool安装visio
office tool安装visio
MathType安装与激活
MathType的安装与使用
LitCTF2024
关于litCTF的记录与复现
hexo+butterfly美化日记
美化hexo的过程
格密码
理论基础
格理论的起源可以追溯到 17 世纪有关球堆积问题的研究,直至 1840 年,高
斯才引入格在几何中的概念并给出了三维空间中球的最大堆积密度。格在群论和几何中的定义不同于离散数学中有关偏序集合的描述,几何上,可以将格看作是具有周期性结构的 n 维空间中的点的集合。
Shamir最早将格理论引入密码学领域,其在 1982 年利用格对背包公钥密码体制进行了攻击,后来 Coppersmith对其分析方法做了推广,将破解 RSA 公钥密码体制的问题转化成了求格中的困难问题。近些年,随着对格理论中有关计算性难题的研究,人们发现其在数论、计算机科学、密码分析和设计中都有着很*
广泛的应用前景。
格的定义
设b1,b2,...,bn∈Rmb_1,b_2,...,b_n\in \mathbb{R}^mb1,b2,...,bn∈Rm一组线性无关的向量,其产生的格被定义为
L(b1,b2,...,bn)={Σi=1nxibi∣xi∈Z}L(b_1,b_2,...,b_n) = \{ \Sigma^n_{i=1}x_ib_i|x_i\in\mathbb{Z}\}
L(b1,b2,...,b ...