自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [BJDCTF 2020]base??(古典密码)

从题目我们看出dict是一个python的字典,但与原始的base64的表不同,所以我们想到通过替换原始的表,来对密文解密。

2024-04-29 17:50:55 146

原创 【无标题】

根据题目描述我们知道是关键词密码,用网站解密即可。

2024-04-28 19:18:16 97

原创 [LitCTF 2023]家人们!谁懂啊,RSA签到都不会 (初级)

【代码】[LitCTF 2023]家人们!谁懂啊,RSA签到都不会 (初级)

2024-04-28 19:07:18 105

原创 [湖湘杯 2021]signin(维纳攻击,连分数)

故使用维纳攻击和连分数解题。

2024-04-27 21:39:30 168

原创 [闽盾杯 2021]decode(共享素数)

【代码】[闽盾杯 2021]decode(共享素数)

2024-04-22 20:45:38 206

原创 [黑盾杯 2020]Factor(分解素数)

【代码】[黑盾杯 2020]Factor(分解素数)

2024-04-22 20:35:59 152

原创 [柏鹭杯 2021]试试大数据分解?

题目:(题目就是如此,我没看到有5个不同的文本,其中最后一个文本以pem后缀,所以我们先来了解一下什么是pem格式。

2024-04-22 20:14:35 275 1

原创 [SWPUCTF 2021 新生赛]crypto1(共模攻击)

根据扩展欧几里德算法,对于不完全为 0 的整数 a,b,gcd(a,b)表示 a,b 的最大公约数。=((m^(e1*s1)*(m^(e2*s2))%n //幂的乘方,底数不变,指数相乘。=(m^(e1*s1+e2*s2))%n //同底数幂相乘,底数不变,指数相加。=((m^e1)^s1%n*(m^e2)^s2%n)%n //消掉%n。因为c1 = m^e1%n,c2 = m^e2%n,需要证明m=(c1^s1*c2^s2)%n。又因为m<n,所以(c1^s1*c2^s2)%n=m%n=m。

2024-04-13 11:48:20 271

原创 [SWPU 2020]happy

从题目我们看出给出了关于p和q的两个关系式,由此我们可以通过数学方法求出p和q,然后再正常解密即可。

2024-04-11 15:21:30 133

原创 [HDCTF 2023]Normal_Rsa(revenge)(素数分解)

从题目我们看到p,q的位数远小于n的位数,那么直接开方即可得到p,q。题目:(注释为分析)

2024-04-10 18:18:28 151

原创 [鹤城杯 2021]Crazy_Rsa_Tech(低加密指数广播攻击)

5. 最后,通过对 `summary` 进行 `e` 次方根运算(`iroot` 函数)得到明文 `m`,并将其转换为字节形式。通过这种方式,利用中国剩余定理,可以更高效地解密多个密文,而不必对每个密文单独进行解密操作。4. 在循环中,根据CRT的解密公式,计算了最终的解密结果 `summary`。2. 然后,计算了每个模数对应的 `M` 值,即除去当前模数的其他模数乘积。3. 接着,计算了每个 `M` 对应的模数的乘法逆元素 `t`。1. 首先,通过循环计算了所有模数的乘积 `N`。

2024-04-09 21:57:26 316

原创 [NSSCTF 2022 Spring Recruit]rrrsssaaa(小明文攻击)

二:(明文m加密后大于n,但不是很大)如果加密后的 c 虽然大于 n 但是并不太大,由于pow (m,e) =kn+c,可以暴力枚举k,然后开 e 次方,直到 e 次方可以开尽,解出了正确的 C 为止。从题我们看到P3(pow(p,3,n))仍然小于n,由此我们知道P3就是P**3,我们便可以通过函数iroot(P3,3)求出p,继而求出r,q,phi,d,最后求出m。一:(明文加密后小于n)当e=3时,如果明文过小,导致明文的三次方仍然小于n,那么通过直接对密文三次开方,即可得到明文。

2024-04-07 20:23:44 144

原创 [羊城杯 2021]Bigrsa(共享素数)

题目中对明文进行了两次的加密,分别使用两次的n,要通过密文解出明文m,那么就得知道两次加密的解密钥d,要求出解密钥d就得需要知道p,q通过求逆元的方法求出d。但是n1和n2的值非常大,通过爆破求因式分解显示不太可能。因此可以看看两个n之间是否存在共用的素数。

2024-03-31 17:39:32 136

原创 [SWPUCTF 2021 新生赛]crypto5(小明文攻击)

【代码】[SWPUCTF 2021 新生赛]crypto5(小明文攻击)

2024-03-31 16:56:56 124

原创 [SWPUCTF 2021 新生赛]crypto2(共模攻击)

之后我们直接套共模攻击模板可以得到flag.flag1和flag2就是密文c1和c2,我们可以猜测这是一个共模攻击。

2024-03-31 16:31:57 238

原创 [BJDCTF 2020]rsa_output(共模攻击)

从题目中我们看到:给出了n(两个都相同),两个e(2767和3659),和两个message(即两个密文C1,C2).由此我们看到这道题属于共模攻击.共模攻击,即当m不变的情况下,知道n,e1,e2,c1,c2, 可以在不知道d1,d2的情况下,解出m。用两个公钥e1,e2加密得到两个私钥d1,d2 和两个密文c1,c2。最终我们可以得到:m=(pow(c1,s1,n)*pow(c2,s2,n))%n。即我们首先通过e1,e2和拓展欧几里得算法得到s1,s2最后通过公式即可解出。

2024-03-31 15:46:22 200

原创 NKCTF——Crypto

【代码】NKCTF——Crypto。

2024-03-29 18:41:20 149

原创 NSSCTF Round#11 Basic ez_signin

【代码】NSSCTF Round#11 Basic ez_signin。

2024-03-22 22:10:59 208

原创 BUUCTF---week3(小明的密码题)

RSA 中的 "知道部分 M 的高位攻击" 是一种攻击 RSA 加密算法的方法之一。该攻击利用了 RSA 加密过程中的一个弱点,即在某些情况下,如果攻击者已经知道了明文。在 "知道部分 M 的高位攻击" 中,攻击者已经知道了明文。由题目可以看出这是一道RSA已知部分明文的高位攻击.接下来,攻击者可以通过以下计算推导出完整的明文。相同,而低位是未知的。进行一些数学运算来推导出完整的明文。具体来说,假设 RSA 加密的公钥为。的部分高位信息,可以通过对密文。攻击者可以构造一个新的明文。的一部分高位信息,即。

2024-03-22 21:51:25 194

原创 BUUCTF---WEEK3(Rabin‘s RSA)

暴力破解N,得到P和Q,再根据Rabin解密模板进行破解。容易知道这是一道Rabin加密题,首先通过网站(

2024-03-22 21:16:13 159

原创 攻防世界-CatchCat

旋转90°大致看出flag为:CatCTF{GPS_M1ao}

2024-03-15 18:20:15 366

原创 [SWPUCTF 2021 新生赛]ez_caesar

再分析代码可知对flag进行了caeser加密(将字母的ASCLL值向后移动5位,再返回对应的字母)题目分析:在最后一行注释我们可以看到str字符串进行了base64编码,先解码得到。在此联想到凯撒密码,位移量5,进行解码即可。

2024-03-15 17:33:12 379

原创 [SWPUCTF 2021 新生赛]crypto6

从代码可以看出​​​​​​该题目对flag依次进行了base64,base32,base16加密。要得到正确的flag即进行相反的操作,即依次进行base16,32,64的解码即可。

2024-03-15 17:23:19 384

原创 [SWPUCTF 2021 新生赛]easy_md5

PHP中==是判断值是否相等,若两个变量的类型不相等,则会转化为相同类型后再进行比较。PHP在处理哈希字符串的时候,它把每一个以0e开头并且后面字符均为纯数字的哈希值都解析为0。===会比较类型,这个时候可以用到PHP中md5()函数无法处理数组(会返回NULL)来实现绕过。该题判断用户是否通过get方法传递了name参数和使用post方法传递了password参数。两变量值不相等,MD5计算散列值后相等绕过的方法。如果没有,直接输出wrong。

2024-03-15 16:20:27 585

原创 MD5算法

网上的md5解密网站是成千上万的md5原文和md5密文,放到了数据里,所谓的解密就是从数据库里查询有没有原文。这种网站相当于md5的字典库,就是原文和密文的的对应表,数据量很庞大,上万亿级别,如果用户的密文正好在字典库里面,一查对应表就行。一种广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)十分困难。:对原始数据进行任何改动,哪怕只修改一个字节所得到的MD5值都有很大区别。

2024-03-12 16:20:21 288

原创 《图解密码技术》总结

公钥证书类似驾照,里面由本人的照片,姓名,等个人信息,以及有效期,以及属于此人的公钥,并由认证机构施加数字签名。锁的设计是公开的——锁匠都带有详细图的书,而且绝大多数好的设计方案都在公开专利中进行了描述——但是钥匙是秘密的。DES的结构(Feistel网络):在Feistel网络中,加密的各个步骤称为轮,整个加密过程就是进行若干次的循环。密码保证了消息的机密性:在传递消息时,我们将邮件进行加密,收件人进行解密,以防止窃听者读取邮件内容,保证了邮件即消息的机密性。对称密码:在加密和解密时使用同一密钥的方式。

2024-02-19 03:31:57 1032 1

原创 Crypto-RSA3

注意到e1和e2互素,即(e1,e2)=1,所以存在整数s,t,使得s * e1+t * e2=1,这样就可以把m的次方化为1,利用扩展欧几里得算法求出s,t,由此可得c1^s * c2^t ≡ m^(s * e1+t * e2)(mod n) ≡ m (mod n),推出m ≡ c1^s * c2^t (mod n)​ 设模数为n,两个用户的公钥分别为e1和e2,且e1和e2互素,明文为m,密文分别为c1和c2。

2024-02-17 04:27:54 365

原创 Crypto-RSA2

【代码】Crypto-RSA2。

2024-02-17 04:25:00 359

原创 Crypto-RSA1

【代码】Crypto-RSA1。

2024-02-17 04:18:58 341

原创 Crypto--RSA

解题过程:直接利用RSAtool工具(

2024-02-17 01:31:30 355

原创 古典密码之杰斐逊转轮

加密方转动加密器上的转轮,是明文(不超过36字)正好出现在同一行上,这时转轮排列的其他25行都是无意义的乱码,把其中任意一行的乱码抄写来,得到密文。这种加密器的缺点是每次只能传送简单的信息(字长不能超过转轮的片数),而且参与通信的各方不能太多。杰斐逊加密器属于典型的“多表替换”加密(每一个转轮就相当于一个替换的字母表),他很难破解,除非能得到通信双方所使用的加密装置。接收方收到密文,转动加密器上的转轮,使得密文正好出现在同一行上,然后查看其他25行的内容,有意义的行就是明文。

2024-02-11 02:37:07 412

原创 古典密码之费纳姆密码

明文:HELLO=1001000 1000101 1001100 1001100 1001111。密钥:CRUDE=1000011 1010010 1010101 1000100 1000101。异或得到密文:0001011 0010111 0011001 0001000 0001010。费纳姆密码采用二进制表示,加密时要将明文和密钥都转化成7位数的二进制数。解密时将密文7位为一组,然后与密钥异或,在将结果转化为ASCLL即可。例题:(www.jarvisoj.com/challenges)

2024-02-11 00:19:36 421

原创 古典密码之多表替换:维吉尼亚密码

如在凯撒密码的基础上,后来又发展出一种基于密钥的凯撒密码,其基本原理是利用一个密钥,将密钥的每一位转化为数字(一般为字母表对应顺序的数字),在分别以这一数字为密钥加密明文的每一位字母。多表替换的加密过程有n张密码表,每个字符分别用不同的密码表进行替换。当密钥空间足够大,而密文长度足够短的情况下,破解较为困难。在密文足够长的情况下,可使用词频分析法。单表替换的加密过程只有一张密码表,所有的字符都用同样的密码进行替换。多表替换的主要优点是解决了单表替换的频率分析问题。密钥:computer。

2024-02-10 03:12:06 511

原创 古典密码之猪圈密码

猪圈密码是一种以格子为基础的替代式密码,把英文字母替换成各种图形符号。可知对应nsn(大写即可)

2024-02-09 00:45:20 328

原创 古典密码之仿射密码

为便于计算,将26个英文字母用数字表示:a=0,b=1,c=2......z=25;仿射加密的密钥有两个:a和b,取值范围都是【0,25】.则通过加密公式:y=(ax+b)mod 26。将明文与密钥相乘,然后再加上密钥的另一部分。假设密文c,根据上面用数字表示则x=2;加密:y=(ax+b) mod 26。如何求乘法逆元:(python代码如下:)所以y=17,密文为r.

2024-02-09 00:31:08 371

原创 浅谈古典密码

凯撒密码是典型的替代密码,加密原理是把明文中的所有字母都在字母表中向后(或向前)按照一个固定数目进行移位后替换成密文,而数字和非字母字符则保持不变。培根密码是一种简单的替换密码,密码字符只有两个:a和b,每个明文字符都会被替换为一个由a和b组成的长度为5的字符串。摩斯密码是一种早期的数字化通信形式,由"."和"-"两种符号组成(但不同于现代只使用0和1两种状态的二进制密码)将字母改为小写,%u7b和%u7d分别改为"{","}".即为结果。通过将0替换为".",将1替换为"-",如下。

2024-02-04 01:26:09 376

原创 浅谈RSA数学基础之欧拉函数与逆元

φ(n) 表示小于等于n的正整数中与n互质的数的个数,例如φ(8)=4因为在小于等于8的正整数中1,3,5,7,与8互质。特殊的φ(1)=1.此时只有n与n不互质,其余正整数均与n互质(注意gcd(1,n)=1也与n互质)若n为质数p的K次幂,则有φ(n)=φ(p^k)=(p-1)*p^(k-1)φ(n) =φ(n/p)*(p-1) (p与(n/p)互质且p是质数)φ(n) =φ(n/p1)*p1 (p能整除(n/p))当m,n互质时,φ(m*n)=φ(n) *φ(m)当n为奇数时,φ(2*n)=φ(n)

2024-02-03 17:12:30 370 1

原创 浅谈RSA数学基础之同余式

如果a ≡ b(mod n)且b ≡ a(mod n),则有a ≡ c(mod n);当两个整数a和b除以同一个正整数n得到相同的余数时,称a和b模n同余,即a ≡ b(mod n).如果n整除a-b(n|(a-b)),则a和b模n同余,记作a ≡ b(mod n).如果a ≡ b(mod n),则同样有b ≡ a(mod n);如果a mod n与b mod n 的结果相同,那么a ≡ b(mod n).如果a ≡ 0(mod n),则n整除a(n时a的因子)。

2024-02-03 14:27:27 347 1

原创 浅谈RSA数学基础之模运算

C语言中%表示取余,在模运算中表示取模。当a大于0时二者没有区别,而当a小于0时二者得到的结果是不同的,取余的结果是由正负的,而取模没有。对于任意整数a和正整数b,可以将a表示为:a = qb + r,其中0 ≤ r < b。如果a是一个整数,n是正整数,则定义a除以b所得的余数为a模b。模运算是一种算术运算,写作a mod b,表示整数a除以正整数b后的余数。示例:下面是C语言中,a<0时取余结果,而-11 mod 7=3。重要性质:模运算符合加法,减法,乘法的性质,但不符合除法性质。

2024-02-03 13:44:43 399 1

原创 [LitCTF 2023]Is this only base?+浅谈凯撒密码,栅栏密码

基础型:栅栏密码按照排列的顺序将明文(去掉空格)写入 m 行 n 列的数组,按照列的顺序将字符重新组合得到密文,这种方法称为 m 栏栅栏密码。一般来说,是给定 m,然后通过加密文本的长度确定 n。凯撒密码是一种替换加密的技术,明文中所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。看着像base64,但是base64的==是在末尾,紧接着看到提示23,联想到栅栏加密,栏数23。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。解密一下,解密后可知为W型。

2024-01-26 04:04:36 366 1

空空如也

空空如也

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

TA关注的人

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