1.RSA

在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17,求d.

import gmpy2
p=473398607161
q=4511491
e=17
d = gmpy2.invert(e,(q-1)*(p-1))
print(d)

2.Alice与Bob


用分解大整数工具将98554799767分解为101999 · 966233,对新合成的数字101999966233进行md5的32位小写哈希。
哈希计算工具

3.rsarsa


可用工具求出私钥d=56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977
再用python函数pow()即可求出flag

e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
n = p*qC = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034d = 56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977M = pow(C,d,n)    #快速求幂取模运算
print(M)

4.大帝的密码武器

题目:公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。
密文:ComeChina
用的是凯撒密码,解密FRPHEVGL,当偏移量为13时,得到有意义的单词security。
对ComeChina加密得到flag{PbzrPuvan},要注意大小写。

5.Windows系统密码


MD5一个个解密,对ctf:1002:06af9108f2e1fecf144e2e8adef09efd:a7fcb22a88038f35a8f39d503e7f0062:::中的第二条32位字符数据进行MD5解密,得到flag{good-luck}.

6.[BJDCTF 2nd]cat_flag

gif中两种小猫分别对应二进制数0和1,则下图可用二进制表示为
01000010010010100100010001111011010011010010000101100001001100000111111001111101
再将其转换为字符串得到BJD{M!a0~}.

7.[BJDCTF 2nd]燕言燕语-y1ng

题目:小燕子,穿花衣,年年春天来这里,我问燕子你为啥来,燕子说:
79616E7A69205A4A517B78696C7A765F6971737375686F635F73757A6A677D2

考虑是个十六进制序列,将其转化为字符串得yanzi ZJQ{xilzv_iqssuhoc_suzjg}.
猜测使用了维吉尼亚密码,将yanzi作为密钥进行解密得到BJD{yanzi_jiushige_shabi}

8.传统知识+古典密码


根据六十甲子相关数表得到各个年份对应的数字,根据提示,一甲子为60年,每个数字再加上60,得到八个数字88 90 83 68 77 70 76 90,猜测为ASCII码,解码得到XZSDMFLZ

古典密码就用栅栏和凯撒密码一次尝试,最后找到SHUANGYU

9.[GKCTF2020]小学生的密码学

e(x)=11x+6(mod26)

密文:welcylk

(flag为base64形式)

观察是仿射加密,解密得到sorcery

flag为base64形式,转换一下得到flag{c29yY2VyeQ==}

10.信息化时代的步伐

也许中国可以早早进入信息化时代,但是被清政府拒绝了。附件中是数十年后一位伟人说的话的密文。请翻译出明文(答案为一串中文!)
注意:得到的 flag 请包上 flag{} 提交
密文:606046152623600817831216121621196386

标准中文电码:中国汉字多达6万字,常用的汉字只有一万个左右, 所以用10的4次方(10,000)来表示。中文电码表采用了四位阿拉伯数字作代号,简称“四码电报”,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号。汉字先按部首,后按笔划排列。字母和符号放到电码表的最尾。

用中文电码工具查询对应中文得到:计算机要从娃娃抓起

11.[BJDCTF 2nd]灵能精通-y1ng

身经百战的Y1ng已经达到崇高的武术境界,以自律克己来取代狂热者的战斗狂怒与传统的战斗形式。Y1ng所受的训练也进一步将他们的灵能强化到足以瓦解周遭的物质世界。借由集中这股力量,Y1ng能释放灵能能量风暴来摧毁敌人的心智、肉体与器械。

给文件添加后缀.jpg,得到图片:


用到的是猪圈密码的变形,圣堂武士密码,解密得到flag{IMKNIGHTSTEMPLAR}。

猪圈密码,一种以格子为基础的简单替代式密码:
圣堂武士密码(Templar Cipher),共济会的“猪圈密码”的一个变种:

12.RSAROLL

题目给出了n,e,c,发现n比较小,可对n直接进行分解920139713 = 18443 · 49891,从而获得该RSA的私钥。

import gmpy2n=920139713
e=19
c=[704796792,752211152,274704164,18414022,368270835,483295235,263072905,459788476,483295235,459788476,663551792,475206804,459788476,428313374,475206804,459788476,425392137,704796792,458265677,341524652,483295235,534149509,425392137,428313374,425392137,341524652,458265677,263072905,483295235,828509797,341524652,425392137,475206804,428313374,483295235,475206804,459788476,306220148]
p=18443
q=49891
phin=(p-1)*(q-1)
d=gmpy2.invert(e,phin)
flag=""
for i in c:flag=flag+chr(pow(i,d,n))
print(flag)
#flag{13212je2ue28fy71w8u87y31r78eu1e2}

13.坏蛋是雷宾

题目:老牌刺客之王混进了女王的住所。一天,女王得到了一个匿名举报,说她的侍卫里有一个刺客,叫做Rabin,而他的信息就在一份文件里,文件中有附带一个Pk,是523798549,密文是162853095,校验码二进制值是110001,根据说明是放在明文后一起加密的,明文与密文长度相同。加密算法和这位老牌刺客同名。快拯救女王,答案是求得的明文,进行32位md5小写哈希字符串,提交即可。 注意:得到的 flag 请包上 flag{} 提交。

观察到n较小,可直接分解为:523798549 = 10663 · 49123

根据题意可知为Rabin算法。
Rabin是RSA衍生出来的一种算法。这种算法的特点在于e=2,加密方法是
而解密是
然后用扩展欧几里得计算出yq和yp,再用获得的yq和yp解密四个密文

import gmpy2n=523798549
p=10663
q=49123
c=162853095
inv_p = gmpy2.invert(p, q)
inv_q = gmpy2.invert(q, p)mp = pow(c, 2666, p)
mq = pow(c, 12281, q)a = (inv_p * p * mq + inv_q * q * mp) % n
b = n - int(a)
c = (inv_p * p * mq - inv_q * q * mp) % n
d = n - int(c)for i in (a, b, c, d):print(bin(i)[2:])

得到了四个解,找到二进制符合题目的解:10010011100100100101010110001,剔除校验位110001。
转十进制再进行32位md5小写哈希得到flag{ca5cec442b2734735406d78c88e90f35}

buuoj-crypto 1相关推荐

  1. CTF Crypto中涉及的AES题目

    CTF Crypto中涉及的AES题目 单独涉及AES_ECB模式 单独涉及AES_CBC模式 ProblemProblemProblem AnalysisAnalysisAnalysis Solvi ...

  2. BJDCTF on buuoj

    干啥啥不行,签到第一名 [BJDCTF 2nd]签到-y1ng crypto签到,直接base64解码 [BJDCTF 2nd]fake google ssti payload: qaq?name={ ...

  3. 2021【陇原战“疫”】crypto部分writeup

    这次BUUCTF月赛对我来说确实还行了,不会太难,也能学到东西,主要想说说比特翻转攻击的问题,最近这种题碰的特别多,CBC的,CFB的,GCM的,各种各样的AES模式的攻击问题,从最基本的CBC开始, ...

  4. c4d+ps打造抽象NFT加密艺术 Create Abstract NFT Crypto Art with Cinema 4D + Photoshop

    c4d+ps打造抽象NFT加密艺术 Create Abstract NFT Crypto Art with C4D + PS c4d+ps打造抽象NFT加密艺术 Create Abstract NFT ...

  5. Python3模块Crypto改为pycryptodome

    安装: # 安装方式1: pip3 install pycryptodome# 安装方式2: pip3 install -i https://pypi.douban.com/simple pycryp ...

  6. go标准库的学习-crypto/aes

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/aes" aes包实现了AES加密算法,参见U.S. Federal ...

  7. centos/Debian/Ubuntu上安装PyCryptodome/Crypto

    注意:PyCryptodome是Crypto的升级版,不要安装旧的Crypto了. 如果能联网,直接装: pip3 install PyCryptodome GitHub仓库地址:Legrandin/ ...

  8. 使用Crypto++的AES GCM对称加密

    这里记录使用Crypto++的AES GCM对称加密的代码片段,可直接执行 运行环境:Windows, Visual Studio 2017 需安装Crypto++库,可使用cvpkg工具直接集成该库 ...

  9. 使用Crypto++ ecdsa 进行签名和认证

    这里记录使用Crypto++ ecdsa 进行签名和认证的代码片段,可直接运行. 运行环境:Windows, Visual Studio 2017 需安装Crypto++库,可使用cvpkg工具直接集 ...

  10. go标准库的学习-crypto/sha1

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/sha1" sha1包实现了SHA1哈希算法,参见RFC 3174. ...

最新文章

  1. 《C#精彩实例教程》小组阅读11 -- C#结构与类
  2. Ret2Libc(1) (有system、/bin/sh)绕过NX、ASLR
  3. css z-index层重叠顺序
  4. 如何在 Outlook 2003、Outlook 2007 中管理pst 文件
  5. 男性在下一100层【第三层】——高仿手机银行client接口
  6. wordpress漏洞_WordPress站点恶意JS注入漏洞分析
  7. 修改WordPress主题导致整个站点404无法访问
  8. Java 8 - Interface Default Method接口默认方法
  9. python正则去除换行符,关于python:用于删除换行符的正则表达式
  10. JdbcTemplate的主要用法
  11. 抽屉效果_仿QQ抽屉效果界面python
  12. 爱立信笔试c语言,爱立信招聘笔经_ 7索尼爱立信北京暑期实习笔试题_笔试
  13. uniapp:APP跳转小程序
  14. Consul 集群部署
  15. .net mvc笔记3_Understanding Razor Syntax
  16. sublime的注意事项
  17. JAVAWEB增删改查武林秘籍
  18. 高中数学培训高中数学必修一
  19. 如何设计公司网站首页?要注意什么
  20. php 回到顶部,回到顶部总结

热门文章

  1. java猜字母讲解_JAVA语言中的经典案例:猜字母游戏
  2. 优秀logo设计解析_必修课 | 抛开固有思维,品牌amp;logo设计不求人!
  3. 数据中心冷却技术在企业持续发展中的应用
  4. 光纤会在将来完全取代铜缆吗?
  5. Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
  6. for根据ID去重_Vue中v-for配合key使用的重要性
  7. 弧度转为角分秒的c语言程序_用弧度表示角度
  8. 98%的人没解出的德国面试逻辑题(离散数学篇)!?
  9. Silverlight学习(一) 创建Silverlight项目,构建一个简单的Silverlight Demo
  10. 035 函数和代码复用小结