当前位置: 首页 > news >正文

RSA实践

http://www.shiyanbar.com/ctf/1828
在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d
将得到的d提交




解:
方法一:用工具工具 RSA-Tool 2 by tE!,
但是有人不会用哈哈,看来一篇用错了博客如图

得出结果278573880289078487不对,原因在于没有换好公钥进制工具默认是hex不是十进制
错图:


正确图已经附上答案:125631357777427553
正确图:



方法二:我用的是代码毕竟是菜几,用工具都是大牛。
但在用我之前的博客中RSA代码http://blog.csdn.net/dongyanwen6036/article/details/76582310
中得出的是125631357777427552
后来找到原因:
>>> 2135733082216268401/17
1.2563135777742755e+17
>>> int(2135733082216268401/17)
125631357777427552
>>> 125631357777427552*17
2135733082216268384
代码算法没有问题主要由于类型强制转化导致失去精度
http://blog.csdn.net/dongyanwen6036/article/details/76684642
Python中的除法
>>> divmod( 2135733082216268401,17)
(125631357777427553, 0)
最后代码改了如下:
#from __future__ import division
#---------------------------------------------------------------
#分解大整数
import math#-------------------------------------
# 求欧拉函数f(n)
def getEuler(prime1, prime2):return (prime1-1)*(prime2-1)
#---------------------------------------------------------------------------------------
# 19d - 920071380k= 1
# 求私钥d
def getDkey(e, Eulervalue):#可以辗转相除法k = 1while True:if (((Eulervalue * k) + 1) % e) == 0:(d,m)=divmod(Eulervalue * k + 1,e)return d#避免科学计数法最后转int失去精度k += 1
#------------------------------------------------------
#求明文
def Ming(c,d,n):return pow(c,d,n)
#---------------------------------------------------------------------------------------
if __name__=='__main__':p=473398607161q=4511491d =getDkey(17, getEuler(p,q))print('私钥为: %d'%d)





http://www.taodudu.cc/news/show-6110183.html

相关文章:

  • hwui简介
  • 信息安全与管理2002_李付贵
  • 江苏大学的计算机,毛启容-江苏大学计算机科学与通信工程学院
  • 河海大学计算机与信息科学,刘凡 - 河海大学 - 计算机与信息学院
  • 杭电操作系统实验三--- 实现模拟shell(arm架构华为云)
  • 信安实验-RSA(备课)
  • 输入法半角和全角的快捷转换_搜狗输入法经常用到的冷门小技巧,复制文章空白行取消方法...
  • iThenticate查重系统的使用及如何去除参考文献
  • VulnHub-XXE
  • a pubhub service
  • 【vulhub】gitea
  • VulnHub Billu_b0x
  • Vulnhub-maEnuBox
  • Vulnhub_MoneyBox
  • vulnhub--Funbox: Scriptkiddie
  • Unity Hub那些事
  • vulnhub-2much
  • hub_probe()
  • Docker Hub Automated Build with GitHub
  • vulnhub Funbox: 1
  • Vulnhub_Napping
  • y0usef(vulnhub)
  • vulnhub Photographer: 1
  • HUB
  • vulnhub inclusiveness: 1
  • Vulnhub-Moneybox
  • --nuhub--linux
  • Vulnhub-theEther
  • news hub
  • XUL使用中的常见错误