
密码学
文章平均质量分 67
Luino!
无与伦比的菜
展开
-
[AFCTF2018]MyOwnCBC
ecb模式下的aes加密,cipher = AES.new(key, AES.MODE_ECB, "")这样写在python3里不支持,ecb模式里没有初始化向量IV。原创 2023-01-03 16:41:53 · 417 阅读 · 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 · 553 阅读 · 0 评论 -
记一道rsa题
思路:看到dp的范围,1到1原创 2023-01-01 21:40:32 · 292 阅读 · 0 评论 -
RSA中的数学运用
翻别人博客学习,偶然翻到了一道题,与之前写的一道题类似,记录一下。原创 2022-12-31 23:16:28 · 1058 阅读 · 0 评论 -
2022祥云杯---Crypto
暗示与费马定理有关。看p、q的生成过程,可以大概猜出pq是相近的,至于obfuscate里while循环里的内容看不太懂。用yafu工具试着分解一下n,就得到了。再用基础方法解rsa,得到m。由费马定理可以推出x = p-1,故把上面得到的m与。水平太烂,只能搞出来一道题。原创 2022-11-08 13:02:25 · 530 阅读 · 0 评论 -
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 · 3577 阅读 · 0 评论 -
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 · 672 阅读 · 0 评论 -
0xGame Crypto 复现(Week3)
利用维纳攻击脚本解出d,之后就是基础的rsa解密。签名的相关攻击,注意到本题两次签名使用了相同的k。块密码,把加密的过程逆过来。原创 2022-10-23 15:03:38 · 582 阅读 · 0 评论 -
记一道rsa题---第一届“长城杯”网络安全大赛
且n =fac[0]*fac[1]*fac[2]*(((fac[0]+fac[1]+fac[2])原创 2022-10-19 21:29:50 · 942 阅读 · 0 评论 -
[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 · 302 阅读 · 0 评论 -
0xGame Crypto 复现(Week2)
加密脚本看不太懂,结合output文件,大致意思是,形成32个多项式,每个多项式均有-,需要你解出-,最终的flag提示你将-全加起来,在进行md5加密。如此多的等式、变量,以及这么大的系数,单纯去解是不太现实的。题目提示去用Sage解,去搜了搜相关方法:解出-刚开始做,没做任何分析,直接从part1准备开解,然后发现part1就给了n和e,n还无法分解,让我无法下手。原创 2022-10-11 21:56:53 · 587 阅读 · 0 评论 -
0xGame Crypto 复现(Week1)
第二步,一开始以为是摩斯,就 这 ¿和不 会 吧?代表.和-,但每个字符间都有空格,经大佬提示才知道是阴阳怪气编码,确实够阴阳怪气的,长见识了。注意%u7b代表"{",%u7d代表"}",即得到:0W_1QIN4WN_D_FR{DL1C_JYLPDNA3GCY}X1S3J。去提交却不对,怎么也搞不懂,难道和密文格式有关?第三步,摩斯密码,空格作为分隔符。原创 2022-10-05 15:46:42 · 604 阅读 · 0 评论 -
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 · 903 阅读 · 0 评论 -
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 · 1010 阅读 · 0 评论 -
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 · 3848 阅读 · 0 评论 -
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 · 3566 阅读 · 0 评论 -
NSSCTF---RSA(二)
先试试n能不能分解,发现可以,得到p、q。利用try来防止e与phi_n没有逆元而导致报错的情况,得到:这样一来就与A没什么关系了。。。原创 2022-09-13 21:22:58 · 414 阅读 · 0 评论 -
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 · 1395 阅读 · 0 评论 -
rsa刷题记录
加密思路很简单,进行了两层加密,所以只要对应进行两次解密即可。一开始尝试着分解n1、n2,但模数过大,无法分解。原创 2022-09-08 21:57:48 · 325 阅读 · 0 评论 -
快速幂算法
常规计算需要做10次计算,即2*2*2*2*2*2*2*2*2*2,当指数非常大的时候,这样计算显然会非常慢。不断将指数减半,同时底数作平方运算,如此不断减少所需执行的次数,减小指数。* 256 * 4,记下256,此时指数为0,结束计算。顾名思义,为了能快速计算指数很高的幂。* 4,指数变为奇数,分离出1来,进行指数减半操作,记下分离出来的4。改进,这两句显得有点重复。举个例子来说明,计算。原创 2022-09-07 15:43:20 · 232 阅读 · 0 评论 -
乘法逆元学习记录
求乘法逆元的过程中,对于互质的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 · 442 阅读 · 0 评论 -
同余方程(记录)
证明:由题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 · 206 阅读 · 0 评论 -
转轮机加密脚本
【代码】转轮机加密脚本。原创 2022-08-30 08:12:55 · 371 阅读 · 0 评论 -
Bugku刷题记录(六)
FLAGISEMARKCISSOACHHLG,即flag{EMARKCISSOACHHLG}删除那些不在范围的,得到:bc177a7a9c7df69c248647b4dfc6fd84。有32位,由0-9、a-f组成。找了一张五线谱与键盘对照表,原创 2022-08-30 09:00:07 · 636 阅读 · 0 评论 -
Bugku刷题记录(五)
最后解猪圈密码即可得到:flag{thisispigpassword}密文是易经有64卦,编码为 000000 -> 1111111。原创 2022-08-27 10:16:11 · 603 阅读 · 0 评论 -
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 · 338 阅读 · 0 评论 -
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 · 334 阅读 · 0 评论 -
Bugku刷题记录(二)
这个符号“€”没有对应的ASCII,故得到所谓奇怪的部分:“₧”,改成“{”,再在末尾加上}即为最终flag。stringfromCharCode是Javascript的函数,复制括号里头的参数进行下一步操作。即flag{ctf_tfc201717qwe}猜测是凯撒,对照ASCII码表,看前面4个。密钥密文一一对应,首先看2-H,看到第二行。即flag{xsxsbugkuadmin}最后竖着寻找合理的flag,这里没对齐。最后UniCode解码即可。原创 2022-08-23 10:16:01 · 326 阅读 · 0 评论 -
Bugku刷题记录(一)
其中%u7b、%u7d分别是经过URL编码的’{‘,‘}’。回顾了之前做的笔记,是Brain Fuck加密,同上,利用在线工具得到flag:flag{0d86208ac54fbf12}考虑到自己的基础还不太行,刷别的网站的题难度越来越高,有点自闭了☹,所以换个网站巩固下基础,顺便找回点自信。就出现3三种符号.!,Ook加密里头除去Ook也是这三种符号,所以估计这道题是将Ook替换了一下,直接利用。得到flag:flag{52048c453d794df1},末尾两个@去掉,估计是在加密过程中用来凑数的。原创 2022-08-22 13:31:29 · 530 阅读 · 0 评论 -
36D杯--记录
【代码】36D杯--记录。原创 2022-08-21 11:48:14 · 519 阅读 · 0 评论 -
[GKCTF 2021]RRRRsa
要么推不出来公式,要么推出来了,代码敲起来很困难,加油吧!原创 2022-08-19 16:24:36 · 997 阅读 · 1 评论 -
BUUCTF刷题记录
代码水平太烂,多练吧。原创 2022-08-18 14:24:20 · 787 阅读 · 0 评论 -
攻防世界刷题记录
中间都被空格隔开了,在键盘上比划一下,得到每一组被包起来的字符:tongyuan,去提交发现不对,再换成大写试一下,🆗了。504B0304,zip文件开头,复制数据,打开WinHex,剪贴板数据,保存为新文件,加上zip后缀,得到压缩包。下载附件得到一个有很长英文的文件,大致就是简单的对话,但会时不时的冒出大写的字母,将它们筛选出来得到,兴冲冲去提交,但错了,回过头再来看看有什么错过的信息,发现上面相同的字母,在下面也相同,如M和I,L和D,但需要密码,试着爆破一下,直接成功了(只选了数字)...原创 2022-08-17 15:06:17 · 490 阅读 · 0 评论 -
攻防世界刷题记录--RSA
解压出来,先从公钥文件中获得n、e,看看是哪种类型的题。给文件添加压缩包后缀,压缩得到得到。先进行公钥解析,得到n、e。原创 2022-08-14 11:32:49 · 1256 阅读 · 0 评论 -
dp泄露(rsa)
之前写题遇到过dp泄露题型,但一直没搞懂原理,脚本也是借鉴(抄袭)的别人的,今天好好学一下,自己推导一遍(敲起来麻烦,手写了)。原创 2022-08-12 11:01:58 · 1435 阅读 · 0 评论 -
CTFshow--RSA
p>>128原创 2022-08-11 20:32:00 · 1001 阅读 · 0 评论 -
BUUCTF——rsa系列(7)
分析大半天,发现Alice与Dave的n相同,利用共模攻击,直接就解出了flag(?n有了,就能用c1、c2、c3任意一行关系式求e了。,p1 = 2 是k1和k2的公因数。原创 2022-08-09 16:33:03 · 1358 阅读 · 0 评论 -
BUUCTF——CRYPTO(记录不熟悉的题)(5)
题目让你低头,意思是让你看键盘。在键盘上比划每一组,圈起来的就是每一组代表的字符,由此可以得到解密压缩包的密码:circle解开后得到密文:接下来找密钥。根据题目ACTF,猜测接出来的flag应该是‘ACTF开头’,对于维吉尼亚表格可以找到密钥:spsp或者sp 利用在线网站解出: 去提交确实错的,看了大佬们的wp后知道buuctf给的密文有问题,正确的密文应该是:SRLU{OWSI_S_RDPKHARSA_NXYTFTJT} 换成小写后提交正确。不知道用的什么语言,但大致能看懂过程:前三个for循环用来构原创 2022-08-08 10:47:38 · 892 阅读 · 0 评论 -
[QCTF2018]Xman-RSA
看到加密脚本,基本上是看不懂的,大概率是进行了替换加密,利用在线网站进行词频分析:quipqiup - cryptoquip and cryptogram solver 大部分是能看懂了,但还是有一些错误,手动改完得到: 再结合其它文件,可以得到以下条件:观察解密脚本可以大致知道思路:按照某种规律,flag被分成了两部分msg1+msg2,所以想得到flag,必须先得到msg1和msg2。往下接着看c1、c2是怎么算出来的,发现就是基础rsa加密过程,只不过不知道n1,要是能算出n1,加上n2与原创 2022-08-07 13:54:06 · 515 阅读 · 0 评论 -
BUUCTF——rsa系列(6)
看到有两部分,第一部分是以e = 256的rsa解密,但因为e与phi_n不互质的原因,用一般的方法解不出来,看了大佬们的wp后,知道了用。说明有4个‘FC’,但是我们不能确定这里所有的‘FC’都是被替换而来的,也有可能原本就有,所以这里共有。接下来就是利用定理来得到一个方程了,参考了大佬的步骤,尝试着推一推吧(嫌敲起来麻烦,在纸上推算了!== 16种情况,需要进行爆破。得到hint,最终的flag长度小于400。来解,可以用于e不是很大且一般的rsa解法行不通的时候。给了n、c、e、以及被替换过的p。..原创 2022-08-06 16:02:50 · 1498 阅读 · 0 评论