自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 [AFCTF2018]MyOwnCBC

ecb模式下的aes加密,cipher = AES.new(key, AES.MODE_ECB, "")这样写在python3里不支持,ecb模式里没有初始化向量IV。

2023-01-03 16:41:53 342 1

原创 buu刷题记录

分析:整体观察一下,发现是CBC模式下的AES。key是32字节(256bits),iv是16字节(128bits),所以两者异或的结果其实是key的低128bits与iv异或,再加上key的高128bits。即输出结果的高128bits就是key的高128bits,从而能得到key。得到了key之后,取低128bits再与输出结果的低128bits进行异或得到iv。

2023-01-02 16:17:25 388

原创 记一道rsa题

思路:看到dp的范围,1到1

2023-01-01 21:40:32 242

原创 RSA中的数学运用

翻别人博客学习,偶然翻到了一道题,与之前写的一道题类似,记录一下。

2022-12-31 23:16:28 672

原创 2022祥云杯---Crypto

暗示与费马定理有关。看p、q的生成过程,可以大概猜出pq是相近的,至于obfuscate里while循环里的内容看不太懂。用yafu工具试着分解一下n,就得到了。再用基础方法解rsa,得到m。由费马定理可以推出x = p-1,故把上面得到的m与。水平太烂,只能搞出来一道题。

2022-11-08 13:02:25 465

原创 DASCTF X GFCTF 2022十月挑战赛--Crypto

最后一步没搞出来,勉强就会这一道了(看了wp的情况下)。就是把flag截取成前一部分和后一部分。解出n_1,发现可以分解,有三个因数,那。对m进行随机数取余,在进行rsa基础加密。n2:取flag第20位字节之后的部分。传的参数是m2,即flag的后一部分。,解得k2 = 0,即m2 = m。n1:将flag右移200比特。看起来逻辑一样,基础rsa加密。得到了flag的前一部分。于是在模n_3的域上构造。

2022-11-05 19:47:01 495

原创 MoeCTF2022 部分Crypto 复现

用基础方法解不出来,原因是e与phi_n不互素,又phi_n = (p-1)*(q-1),求gcd(e,(p-1))和gcd(e,(q-1)),发现e与p-1互素。choice用法:从非空序列中随机选取一个数据并带回,该序列可以是list、tuple、str、set。,计算delt + N是否为完全平方数,如果为完全平方数,那么delt + N =Wilson定理:如果p是素数,则(p − 1)!可以知道p、q相近,则|p-q|很小,进而。因此,我们可以爆破差值delt,即。与 N 相差很小,从而。

2022-11-05 16:40:02 2905

原创 2021年蓝桥python组省赛(三)

最终是要得到1到2021之间的最短路径,显然1是无法直接到达2021,因为题目规定两节点的差的绝对值大于21就没有边,故我们要找到那个和1有边的且路径最短的结点,所以dp[i]就可以表示结点i到结点1的最短距离,即最终要求dp[2021]。dp[j] = min(dp[j],dp[i]+lcm(i,j)),dp[j]表示之前计算的,当前节点到i的最短路径(没有赋值前是无穷大),dp[i]+lcm(i,j)则表示dp[i]与能够有边的结点的最短路径。2、找出数组元素间的关系式。1、定义数组元素的含义。

2022-10-24 19:39:28 199

原创 0xGame Crypto 复现(Week3)

利用维纳攻击脚本解出d,之后就是基础的rsa解密。签名的相关攻击,注意到本题两次签名使用了相同的k。块密码,把加密的过程逆过来。

2022-10-23 15:03:38 482

原创 2021年蓝桥python组省赛(二)

解释:当一个数能够开方时,即得到的两个因子相同,想要一个因子增大,另一个因子就必须减小,这样一来一个因子就会一直小于int(n**0.5)+1,故在1到int(n**0.5)+1里求一个因子,再用整除求出另一个因子即可,这样速度比一般方法要快些。观察题目给的例子可以知道,我们只需要求出n所有的因子即可,然后枚举出合适的L、W、H即可。

2022-10-19 22:10:47 282

原创 记一道rsa题---第一届“长城杯”网络安全大赛

且n =fac[0]*fac[1]*fac[2]*(((fac[0]+fac[1]+fac[2])

2022-10-19 21:29:50 764

原创 2021年蓝桥python组省赛(一)

思路: 因为1是最先用的,故1肯定也是最先用完的,当1用完时,即1出现的次数大于2021时,说明此时的数不能被拼出来,设为x,则最大能拼出的数为x-1。在统计当前数1的出现次数时,可用到str(x).count('1'),将该数转为字符串后,统计字符'1'的出现次数即可。

2022-10-18 22:49:30 285

原创 [GUET-CTF2019]Uncle Sam

1 mod p*q,满足gcd (a,p*q) = 1。mod p*q,只需求出p*q整体即可。- a = k*p*q,又n =* q ,故p*q = gcd(

2022-10-18 21:03:09 229

原创 0xGame Crypto 复现(Week2)

加密脚本看不太懂,结合output文件,大致意思是,形成32个多项式,每个多项式均有-,需要你解出-,最终的flag提示你将-全加起来,在进行md5加密。如此多的等式、变量,以及这么大的系数,单纯去解是不太现实的。题目提示去用Sage解,去搜了搜相关方法:解出-刚开始做,没做任何分析,直接从part1准备开解,然后发现part1就给了n和e,n还无法分解,让我无法下手。

2022-10-11 21:56:53 501

原创 0xGame Crypto 复现(Week1)

第二步,一开始以为是摩斯,就 这 ¿和不 会 吧?代表.和-,但每个字符间都有空格,经大佬提示才知道是阴阳怪气编码,确实够阴阳怪气的,长见识了。注意%u7b代表"{",%u7d代表"}",即得到:0W_1QIN4WN_D_FR{DL1C_JYLPDNA3GCY}X1S3J。去提交却不对,怎么也搞不懂,难道和密文格式有关?第三步,摩斯密码,空格作为分隔符。

2022-10-05 15:46:42 467

原创 Ctfshow 密码挑战--真·Beginner

byteorder='little',表示高位在前,低位在后,s = '\xf1\xff','\x'表示16进制,而f1是低位,ff是高位,故把ff放前面,f1放后面。如果byteorder='big',则是正常顺序,低位在前,高位在后。函数格式:int.from_bytes(bytes, byteorder, *, signed=False),bytes为输入的变量,byteorder有'big'和'little',signed有'True'和'False'。再看signed=True。

2022-10-03 19:23:41 771

原创 Rabin加密算法学习记录

对于此题给了Pk = 523798549,即公钥n = 523798549,密文c = 162853095,以及二进制校验码110001,应该是用于在最后4个明文中筛选用的。Rabin加密是非对称加密,和RSA相似,感觉是RSA里的一个特例。在Rabin加密中e = 2,根据RSA加密过程,可以知道加密公式为:c =这道题之前写过,雷宾加密算法,但忘记的差不多了,当时也没怎么学,今天深入学习并记录一下。首先分解n得到p、q,然后依次计算。通过扩展欧几里得算法解。* q = 1,得到。,其它的都能直接解了。

2022-09-25 18:32:42 643

原创 AES(对称加密)学习记录

之前学到的RSA加密是非对称加密,而AES则是对称加密,区分点在于AES加密解密过程中用的密钥是相同的。这里记明文为P,密文为C,密钥为K。支持的密钥K的长度有128位,192位,256位。加密:C = E(P,K),E为加密函数解密:P = D(C,K),D为解密函数AES加密过程使用的是分组加密,即把明文P分成n组,对n组明文分别使用密钥K加密得到n组密文,将n组密文组合就得到了最终的密文C。且对每一组明文有长度要求,即128bit位(16个字节,每个字节8位)。可以知道,加密得到的每一组密文的长度也是

2022-09-24 11:56:46 3610

原创 2022鹏城杯CTF---Crypto

第一部分,e与phi_n不互素,gcd(e,phi_n) == 4,此时e对phi_n没有逆元,但gcd(e//t,phi_n) == 1。mod n,由上面的for循环可以知道M与初始m的关系:M = m * (p-q-1)!对n进行分解,得到p、q,小的是q。记print(pow(m,e,n))里的m为M,故有c2 =第三部分, 看到M = 2022 * m * 1011 * p,又n = p*q,且c =记两输出结果分别为c1、c2,由print(pow(2,e,n))可以得到:c1 =

2022-09-18 23:58:07 2212

原创 NSSCTF---RSA(二)

先试试n能不能分解,发现可以,得到p、q。利用try来防止e与phi_n没有逆元而导致报错的情况,得到:这样一来就与A没什么关系了。。。

2022-09-13 21:22:58 313

原创 NSSCTF---RSA(一)

≡ -1 (mod A),设k = (A-1)!看加密脚本,text被分成了三部分,分别作了不同的加密。首先观察第一部分,发现e很小,故应该是低加密指数分解攻击,且。说明B只是比A小了一点,上面推导得到k = (A-1)!,故从B开始都被约掉了,只有从B+1到A保留。此题还需注意的一点是欧拉函数phi_n = (p-1)*(q-1)*(r-1)这题之前写过,但是参考的别人的,显然已经忘得差不多了,再来复现一遍。当且仅当p为素数时:( p -1 )!

2022-09-12 14:01:45 1203

原创 rsa刷题记录

加密思路很简单,进行了两层加密,所以只要对应进行两次解密即可。一开始尝试着分解n1、n2,但模数过大,无法分解。

2022-09-08 21:57:48 232

原创 快速幂算法

常规计算需要做10次计算,即2*2*2*2*2*2*2*2*2*2,当指数非常大的时候,这样计算显然会非常慢。不断将指数减半,同时底数作平方运算,如此不断减少所需执行的次数,减小指数。* 256 * 4,记下256,此时指数为0,结束计算。顾名思义,为了能快速计算指数很高的幂。* 4,指数变为奇数,分离出1来,进行指数减半操作,记下分离出来的4。改进,这两句显得有点重复。举个例子来说明,计算。

2022-09-07 15:43:20 177

原创 乘法逆元学习记录

求乘法逆元的过程中,对于互质的a、b,有gcd(a,b) = 1,故有ax+by=1。在上面的欧几里得算法中,利用递归,不断对参数进行改变:gcd(a,b) = gcd(b,a%b),当b=0时,结束递归,返回a,此时a即为最大公约数gcd,则gcd * x + 0 * y = gcd,显然,有解x=1,y=0。对整数a、p,若gcd(a,p) == 1(即需要a、p互质),则存在整数b使得ab ≡ 1 mod p,称b为a关于1模p的乘法逆元,一般将乘法逆元b记作。

2022-09-06 20:55:14 331

原创 同余方程(记录)

证明:由题a = q1 * m + r,b = q2 * m + r ,相减得a - b = (q1-q2) * m,记整数q = q1 - q2,即。线性组合:若c|b,c|a,则存在整数x、y使得c|(x*a+y*b),即存在整数q使得(x*a+y*b) = q * c也成立。(个人觉得有点容易搞混概念,做个强调),记作b|a,把b叫做a的因数,把a叫做b的倍数,同时q也为a的因数。传递性:若c|b,且b|a,则c|a,即存在整数q使得a = q * c也成立。相等性:若a|b,且b|a,则a=

2022-09-05 20:52:24 158

原创 Bugku刷题记录(六)

FLAGISEMARKCISSOACHHLG,即flag{EMARKCISSOACHHLG}删除那些不在范围的,得到:bc177a7a9c7df69c248647b4dfc6fd84。有32位,由0-9、a-f组成。找了一张五线谱与键盘对照表,

2022-08-30 09:00:07 410

原创 转轮机加密脚本

【代码】转轮机加密脚本。

2022-08-30 08:12:55 302

原创 Bugku刷题记录(五)

最后解猪圈密码即可得到:flag{thisispigpassword}密文是易经有64卦,编码为 000000 -> 1111111。

2022-08-27 10:16:11 489

原创 Bugku刷题记录(四)

山丘的英语hill,对应希尔密码,一般规则是A=0,B=1......,但这里说A=1,那么Z对应就是0,棋盘上的就是密钥了,利用。一开始以为是二进制,转字符串却得不到什么东西,再看到提示5bit的编码,搜搜看,了解到新的密码:博多密码,加密示例:23 15 31 31 34 ==》hello。解压出来得到.pyc文件,加密的文件,进行反编译,改成小写即可,注意那个看起来像o的其实是0。最后进行base64解码即可。...

2022-08-26 11:37:22 245

原创 Bugku刷题记录(三)

全部计算出来得到结果:21 33 1 22 3 44 54 5 1 35 54 3 35 41 52 13,观察所有的结果,出现的数字都在1-5,题目提示还与英语有关,想到元音字母恰好5个,去搜了一下,发现存在元音密码,元音字母a、e、i、o、u,分别对应1-5,在a-e中间,有b、c、d三个字母,则b、c、d分别代表11、12、13。各种进制的数混在一块,B:二进制;隐藏字符加密+核心价值观编码,

2022-08-24 16:09:21 247

原创 Bugku刷题记录(二)

这个符号“€”没有对应的ASCII,故得到所谓奇怪的部分:“₧”,改成“{”,再在末尾加上}即为最终flag。stringfromCharCode是Javascript的函数,复制括号里头的参数进行下一步操作。即flag{ctf_tfc201717qwe}猜测是凯撒,对照ASCII码表,看前面4个。密钥密文一一对应,首先看2-H,看到第二行。即flag{xsxsbugkuadmin}最后竖着寻找合理的flag,这里没对齐。最后UniCode解码即可。

2022-08-23 10:16:01 256

原创 Bugku刷题记录(一)

其中%u7b、%u7d分别是经过URL编码的’{‘,‘}’。回顾了之前做的笔记,是Brain Fuck加密,同上,利用在线工具得到flag:flag{0d86208ac54fbf12}考虑到自己的基础还不太行,刷别的网站的题难度越来越高,有点自闭了☹,所以换个网站巩固下基础,顺便找回点自信。就出现3三种符号.!,Ook加密里头除去Ook也是这三种符号,所以估计这道题是将Ook替换了一下,直接利用。得到flag:flag{52048c453d794df1},末尾两个@去掉,估计是在加密过程中用来凑数的。

2022-08-22 13:31:29 380

原创 36D杯--记录

【代码】36D杯--记录。

2022-08-21 11:48:14 394

原创 [GKCTF 2021]RRRRsa

要么推不出来公式,要么推出来了,代码敲起来很困难,加油吧!

2022-08-19 16:24:36 602 1

原创 BUUCTF刷题记录

代码水平太烂,多练吧。

2022-08-18 14:24:20 612

原创 攻防世界刷题记录

中间都被空格隔开了,在键盘上比划一下,得到每一组被包起来的字符:tongyuan,去提交发现不对,再换成大写试一下,🆗了。504B0304,zip文件开头,复制数据,打开WinHex,剪贴板数据,保存为新文件,加上zip后缀,得到压缩包。下载附件得到一个有很长英文的文件,大致就是简单的对话,但会时不时的冒出大写的字母,将它们筛选出来得到,兴冲冲去提交,但错了,回过头再来看看有什么错过的信息,发现上面相同的字母,在下面也相同,如M和I,L和D,但需要密码,试着爆破一下,直接成功了(只选了数字)...

2022-08-17 15:06:17 369

原创 攻防世界刷题记录--RSA

解压出来,先从公钥文件中获得n、e,看看是哪种类型的题。给文件添加压缩包后缀,压缩得到得到。先进行公钥解析,得到n、e。

2022-08-14 11:32:49 1018

原创 dp泄露(rsa)

之前写题遇到过dp泄露题型,但一直没搞懂原理,脚本也是借鉴(抄袭)的别人的,今天好好学一下,自己推导一遍(敲起来麻烦,手写了)。

2022-08-12 11:01:58 1072

原创 CTFshow--RSA

p>>128

2022-08-11 20:32:00 873

原创 BUUCTF——rsa系列(7)

分析大半天,发现Alice与Dave的n相同,利用共模攻击,直接就解出了flag(?n有了,就能用c1、c2、c3任意一行关系式求e了。,p1 = 2 是k1和k2的公因数。

2022-08-09 16:33:03 1196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除