已知RSA的公钥(e,n)计算对应的私钥d

这篇具有很好参考价值的文章主要介绍了已知RSA的公钥(e,n)计算对应的私钥d。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天分享一个软考中经常出现的关于RSA私钥计算的题目。我们试着理解背后的算法逻辑,然后再看看如何解题。

设在RSA的公钥密码体制中,公钥为(e, n)= (13, 35), 则私钥d= ()。 

A. 17

B. 15

C. 13

D. 11

RSA 算法

Rivest Shamir Adleman(RSA)加密算法是一种非对称加密算法,广泛应用于许多产品和服务中。非对称加密使用一对密钥(私钥和公钥),公钥是任何人都可以访问的,而私钥是密钥创建者才知道的秘密。可以使用私钥或公钥进行数据加密,然后用另一个密钥进行数据解密。

比如用户A生成一对密钥并将公钥公开。当用户B需要向用户A发送机密信息的时候,用户B使用A的公钥对机密信息进行加密再发送给A,用户A使用自己的私钥对加密信息进行解密。另一方面,用户A可以使用自己的私钥对机密信息进行签名然后发给用户B,用户B再使用A的公钥来验证签名。

算法描述

已知RSA的公钥(e,n)计算对应的私钥d

公钥

1. 任意选取两个不同的大素数p和q,计算乘积 n = p*q; 

    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因素的自然数。

 2. 任意选取一个大整数e,满足gcd (e, (p-1) (q-1)) = 1;   

     gcd:最大公约数, e的选取比较容易,比如所有大于p和q的素数都可用

3. 公钥为(e, n)

私钥

1. 使用公式 {d*e} mod  {(p-1) (q-1)} = 1 来计算;

mod,是一个数学运算符号。指取模运算符,算法和取余运算(REM)相似例如a mod b=c,表明a除以b余数为c

2. 密钥为(d, n)

 解题思路

1. 已知 公钥为(e, n)= (13, 35),即e = 13,n = 35;

2. n = p*q,得到p=5, q=7 (或者 p=7, q = 5);

3. 计算得出 (p-1) (q-1) = 24;

4. 将以上参数代入公式 {d*e} mod  {(p-1) (q-1)} = 1,即 {d*13} mod  24 = 1

5. 分别计算4个选项,看看哪一个满足条件

    {17*13} mod  24 = 5

    {15*13} mod  24 = 3

    {13*13} mod  24 = 1

    {11*13} mod  24 = 23

   所以第三个答案满足条件,即d = 13,所以答案选C文章来源地址https://www.toymoban.com/news/detail-416989.html

到了这里,关于已知RSA的公钥(e,n)计算对应的私钥d的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#.NET Framework RSA 公钥加密 私钥解密 ver:20230609

    C#.NET Framework RSA 公钥加密 私钥解密 ver:20230609   环境说明: .NET Framework 4.6 的控制台程序 。   .NET Framework 对于RSA的支持: 1. .NET Framework 内置只支持XML格式的私钥/公钥。如果要用PKCS1,PKCS8格式的,要用到三方库BouncyCastle。 2. .NET 中默认加密算法为“RSA/ECB/PKCS1Padding” ,要和

    2024年02月08日
    浏览(72)
  • C# .NET CORE .NET6 RSA 公钥加密 私钥解密

    环境说明: .NET CORE 版本:.NET 6 。   .NET CORE 对于RSA的支持: 1. .NET 6 中内置了对 PKCS1,PKCS8 2种私钥格式的支持。 2. 如果你要部署在Linux,docker ,k8s 中;一定要用 “RSA”这个类,不能是 .NET FRAMEWORK 的 RSACryptoServiceProvider。 3. .NET 中默认加密算法为“RSA/ECB/PKCS1Padding” ,要和JAVA互通

    2024年02月08日
    浏览(94)
  • Java RSA加解密-非对称加密-公钥私钥加解密(使用hutool工具)

    之前一篇帖子(https://blog.csdn.net/u014137486/article/details/136413532)展示了使用原生Java进行RSA加解密,本文介绍下使用当下流行的Hutool工具进行RSA加解密的用法。 目录 一、在Linux环境下生成公钥、私钥文件 二、将生成的公私钥文件导入项目中并移除pem文件的前后公私钥标记 三、po

    2024年04月23日
    浏览(105)
  • RSA加解密工具类(PKCS8公钥加密,PKCS1私钥解密)

    场景 :如果项目上生成的秘钥,公钥是PKCS8格式,私钥却是PKCS1格式。需要在这种场景加解密的话可以直接使用下面工具类。 特殊说明:私钥解密的时候必须把私钥源文件内容整个传入,不能删除私钥的文件头和文件尾,并且不能删除换行。

    2024年02月11日
    浏览(67)
  • 前端js使用jsrsasign,生成RSA秘钥,获取一系列信息(公钥,私钥,模数,指数等)进行加密解密

    前言: 之前的项目里用的RSA加解密的时候是生成固定的公钥(模数,指数)和私钥放在代码里进行数据的解密。现在要修改成前端自己生成(模数和指数)传给后台。后台加密数据返回给我。我在用私钥解密。 后面查了很多,开始的window.crypto里的方法可以生成公钥和私钥,

    2024年02月16日
    浏览(84)
  • RSA加密,公钥、私钥的生成,前端使用公钥加密,JSEncrypt返回值为false的原因以及解决方法,XML转换Pkcs1、8

    非对称加密算法,两个且不同的Key,一个公开,一个私密,公开加密,私密解密。 特点: 原文短,加密后密文长 生成相对较慢 安全性超强 我们使用.net进行生成公钥、私钥。 使用RSA.ToXmlString(Boolean) 方法生成公钥以及私钥,方法中接收一个参数, true  表示同时包含 RSA 公钥

    2024年01月21日
    浏览(65)
  • RSA算法习题 (采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。)

    1、采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。 2. 找出质数 P、Q P=11 Q=13 3. 计算公共模数 N = P * Q = 143 4. 欧拉函数 Φ(N) = (P-1)*(Q-1) = 10 *12 = 120 5. 计算公钥E 1Eφ(N) 所以1E120 E的取值范围{3,7,9,11,13,17,19,...,117,119} E的取值必须和φ(N)互质 取

    2024年02月09日
    浏览(97)
  • RSA 2048位算法的主要参数N,E,P,Q,DP,DQ,Qinv,D分别是什么意思 哪个是通常所说的公钥与私钥 -安全行业基础篇5

    N(Modulus):模数,是两个大素数P和Q的乘积。N的长度决定了RSA算法的安全性。 E(Public Exponent):公钥指数,通常为65537(0x10001)。E用于加密数据,是公钥的一部分。 P(Prime Factor):素数P,是模数N的一个因子。 Q(Prime Factor):素数Q,是模数N的另一个因子。 DP(D mod (P

    2024年02月05日
    浏览(38)
  • windows下的私钥权限管理

    被问到Windows的私钥是否可以共享给多个用户,我们知道CNG创建的私钥,压根就没有提供跨用户和组的机制,因此无论对称还是非对称,CNG中的私钥没办法在用户间共享。 Windows支持的SACL中的访问客体,也不包括密钥。 但是有一处私钥确实可以设置ACL的,那就是证书管理器中

    2024年01月17日
    浏览(44)
  • 我如何才能保护我的私钥?

    区块链利用非对称加密的方式使用户的密钥分为私钥和公钥,其中公钥公布在网络当中,用于数据交互和地址访问,而私钥则保管在用户手中,用于保护自己的数据和资产安全。 这种公、私钥分离的方式,是一种安全系数很高的加密机制。但这个机制中,和其他的加密方式类

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包