社区
C语言
帖子详情
关于RSA加解密的公钥和私钥
路之远
2011-01-25 06:00:15
最近在搞Rocky3(usbkey)的RSA加解密,Rocky3自动生成的RSA公钥是140个字节,私钥是340个字节,而我看了windows API生成的公钥私钥都是1024 或者 2048位,就是128字节或者256字节,谁能指点下 这到底怎么回事啊。
...全文
931
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
公钥
加密
私钥
解密
私钥
加密
公钥
解密
亲测可用,可参考:https://blog.csdn.net/qq_37835111/article/details/87358779
基于.net的
RSA
私钥
加密
公钥
解密的源码
在.net环境下实现
RSA
的
私钥
加密
公钥
解密
C#
RSA
加密、解密、加签、验签、支持JAVA格式
公钥
私钥
、PEM格式
公钥
私钥
、.NET格式
公钥
私钥
C#
RSA
加密、解密、加签、验签、支持JAVA格式
公钥
私钥
、PEM格式
公钥
私钥
、.NET格式
公钥
私钥
对应文章: http://blog.csdn.net/gzy11/article/details/54573973
RSA
加密
公钥
、密钥生成工具
RSA
加密
公钥
、密钥生成工具,搜索引擎只搜得到方法,却没有工具,这么好用的东西,却没人分享,那就让我来分享! 使用前,请确定您已安装 .Net Framework 4.0!
Android
RSA
加密解密demo
Android
RSA
加密解密demo,详情请参看博客:http://blog.csdn.net/bbld_/article/details/38777491
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章