社区
C语言
帖子详情
关于RSA加解密的公钥和私钥
路之远
2011-01-25 06:00:15
最近在搞Rocky3(usbkey)的RSA加解密,Rocky3自动生成的RSA公钥是140个字节,私钥是340个字节,而我看了windows API生成的公钥私钥都是1024 或者 2048位,就是128字节或者256字节,谁能指点下 这到底怎么回事啊。
...全文
930
5
打赏
收藏
关于RSA加解密的公钥和私钥
最近在搞Rocky3(usbkey)的RSA加解密,Rocky3自动生成的RSA公钥是140个字节,私钥是340个字节,而我看了windows API生成的公钥私钥都是1024 或者 2048位,就是128字节或者256字节,谁能指点下 这到底怎么回事啊。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiang81020
2011-01-28
打赏
举报
回复
你得了解rockey3的中公私钥整个结构,将这些部分提取出来
第一部分 p;
第二部分 q;
第三部分 dp;
第四部分 dq;
第五部分 InvQ;
是不是还缺少m、e?
OPENSSL库记得使用的是REF结构,分别将你提取出来的参数填入到REF结构中,就可以了。
ThinkHand
2011-01-28
打赏
举报
回复
看来你基本已经知道了问题的所在了,就是你用的那个rockey3他生成的RSA的私钥里包含了RSA所用到的几个重要数据才会产生公钥跟私钥不一样长度的问题。如果你用libeasy来做的话导出来的私钥也是跟公钥不一样长多的。包含那几个参数用生成的私钥就可以推导出来公钥的。你可以用分别读取出来那几个参数和私钥的数据,然后再用设置密钥参数的那个api函数设置一下试试。
生成一个密钥容器->生成一个RSA的密钥->设置密钥参数为你读到几个参数.按照这个步骤试验一下看看。因为我没有用过rockey这个东西。只用了用wincrypt,能给你的建议就这么多了。愿你早日搞定。新年快乐。
ischarles
2011-01-28
打赏
举报
回复
公钥的长度无所谓,私钥的长度是越长越好,一般私钥用的是1024位.因为对当今的计算机而言1024位是需要花很长时间才能破解的.
路之远
2011-01-26
打赏
举报
回复
后来咨询了下rockey3的密钥对格式是这样的
R3 RSA公私钥格式
公钥:140字节,一共有两部分组成n和e,对应的结构体如下
n占前132字节,对应得结构体如下:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow; //128
BYTE bData[128];
}
bData中是真正的公钥。
e占后8字节,结构入下:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow; //4
BYTE bData[4];
}
bData中为指数。
私钥:340字节,一共5部分,每部分为68字节,每个部分的结构为:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow;
BYTE bData[64];
}
第一部分 p;
第二部分 q;
第三部分 dp;
第四部分 dq;
第五部分 InvQ;
这是rockey3自己生成的RSA密钥对格式,和标准的RSA公钥私钥对不一样。。我现在想把公钥导入微软的密钥库中使用,据说要转化一下,用VC下的一个openssl库文件来转化,谁能指点下该如何转换,万分感谢
qq120848369
2011-01-25
打赏
举报
回复
越大越安全,这个无所谓的事.
RSA算法生成两个大素数,p和q。 求n=p*q,f(n)=(p-1)*(q-1),随机得到一个e,gcd(e,f(n))=1
e就是用于加密的密钥,当然越大越好,就这样。
C# .net版
RSA
公钥
加密
私钥
解密
私钥
加密
公钥
解密
-
RSA
加密过程是不可逆的,因此在使用前需确认加密和解密的对象匹配。 在给出的链接中(https://blog.csdn.net/qq_37835111/article/details/87358779),作者提供了一个具体的示例,演示了如何在C# .NET环境下...
基于.net的
RSA
私钥
加密
公钥
解密的源码
在.NET环境下,我们可以使用内置的System.Security.Cryptography命名空间中的类来实现
RSA
加密和解密。 首先,让我们深入了解一下
RSA
的工作原理。
RSA
的核心是两个密钥:
公钥
和
私钥
。
公钥
可以公开,任何人都可以获取...
C#
RSA
加密、解密、加签、验签、支持JAVA格式
公钥
私钥
、PEM格式
公钥
私钥
、.NET格式
公钥
私钥
C#
RSA
加密、解密、加签、验签、支持JAVA格式
公钥
私钥
、PEM格式
公钥
私钥
、.NET格式
公钥
私钥
对应文章: http://blog.csdn.net/gzy11/article/details/54573973
RSA
加密
公钥
、密钥生成工具
在提供的"
RSA
加密
公钥
、密钥生成工具"中,用户可以方便地生成
RSA
公钥
和
私钥
对,而无需手动执行上述数学步骤。
Rsa
Keys.exe文件很可能是一个执行程序,运行后会提供一个用户界面,允许用户生成并管理他们的
RSA
密钥对...
Android
RSA
加密解密demo
本示例"Android
RSA
加密解密demo"提供了一个完整的实现过程,帮助开发者理解如何在Android平台上使用
RSA
进行数据的加密和解密操作。
RSA
算法基于数论,它的核心思想是利用两个大素数的乘积作为
公钥
,这两个大素数的...
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章