博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RSA
阅读量:5228 次
发布时间:2019-06-14

本文共 909 字,大约阅读时间需要 3 分钟。

   
   

遇见一个RSA的题,http://ctf5.shiyanbar.com/crypto/RSA ,以前见了就跑路,今天想好好搞搞

先百度一波学习资料,

RSA算法描述

RSA算法涉及三个参数,n,e,d,私钥为n,d,公钥为n,e。

其中n是两个大素数p,q的乘积。

d是e模$ varphi(n) $的逆元,$ varphi(n) $是n的欧拉函数。

c为密文,m为明文,则加密过程如下:

$ cequiv m^e mod n $

解密过程如下:

$ mequiv c^d$ $mod$ $n$

n,e是公开的情况下,想要知道d的值,必须要将n分解计算出n的欧拉函数值,而n是两个大素数p,q的乘积,将其分解是困难的。

一般比赛题都是给两个文件,pem格式,pcap文件,PPC模式,

pem文件用OpenSSL,这个工具很强大,可以读取文件内容

openssl rsautl -encrypt -in FLAG -inkey public.pem -pubin -out flag.enc

   openssl rsa -pubin -text -modulus -in warmup -in public.pem

pacp文件:wireshark follow

ppc文件:这种模式是上述pcap文件的交互版,会给一个端口进行一些crypto的交互,参数会在交互中给出。

首先

 

红线部分即为模数,可以看出这是16进制

Modulus 是n的值,Exponent是E的值。

分解大数还有种方法http://factordb.com/

msieve分解N的值,msieve.exe 0xA41006DEFD378B7395B4E2EB1EC9BF56A61CD9C3B5A0A73528521EEB2FB817A7 -v

 

便得出p和q,E的值,然后知道p,q,,e,写python脚本(此脚本参考大佬 的,不过很适合收藏留着以后打比赛)

 

 

 

 总计,这只是到RSA入门题,基本上都是比着题解做的,接下来要多找几道练习

 

转载于:https://www.cnblogs.com/ls-pankong/p/9403832.html

你可能感兴趣的文章
Count Numbers
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>
UNIX基础知识之输入和输出
查看>>
【洛谷 P1666】 前缀单词 (Trie)
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>