我能否从openssl源码中提取RSA算法用到单片机程序中?

消失的荒漠 2015-03-01 08:08:12
原来项目要用到RSA加密,我没有了解过就去学,后来发现很专业,本来想自己写的但没时间和经历,在网上找了下也没有合适的源码,最后差点打算外挂加密芯片。有幸论坛中有大神回复说他的RSA加密解密速度挺快,我问他源码哪搞的,他说从openssl。于是大概了解了下openssl,整个协议很大,虽然我也找到了相关的源码,但是目前暂时不能完整提取出来自用,因为不太了解整个openssl框架,此外openssl好像应用在基于OS的平台比较多,像我这种奇葩需求有人做过吗?

我对RSA算法主要有两个需求,一个需求是全功能的,包括公密钥的生成和数据传输的加密(用于LPC芯片系列,主频100M);
另外一个是用于身份验证,只需要对数据进行加解密(用于16位单片机,主频32M)。
...全文
5423 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzhiyu123 2019-03-12
  • 打赏
  • 举报
回复 1
您好我是个小白,我也碰到跟你一样的问题,请问你的解决了吗?作为过来人,能不能给我指条明路?
  • 打赏
  • 举报
回复
您好,我一个小白,最近在做毕业设计,是128位RSA加解密并移植到stm32上,请问有相关的代码及原理图什么的吗。如果有的话,可以发邮箱983419363@qq.com 吗,感激!!
mLee79 2018-08-28
  • 打赏
  • 举报
回复
要解密和签名的话还是跑 ECC 吧, 我在 160M 的MCU上跑软件的 SECP256K1 的秘钥交换大约 250毫秒, 签名和验证稍微慢点 400毫秒不到 ...
32M 的 16位机跑非对称加密压力太大了吧, 如果不要解密, 签名 只需要加密和验证签名, 跑 1024 位的 RSA, E=3 勉强应该可以 ...

openssl 的BN库写的很简单的, 速度很慢, 没啥优化, 自己写一个速度也差不多, 要快还是移植 gmp 啥的, 就是太大了 ...

of123 2017-03-31
  • 打赏
  • 举报
回复
用 SOC 类型的密码芯片(安全芯片),内置协处理器的。 如通过国密认证的 HSC32K1: 1024位RSA密钥对平均生成时间:0.725秒@48MHz 1024位RSA签名(解密)速度(使用中国剩余定理):76.9次/秒@48MHz 2048位RSA密钥对平均生成时间:4.87秒@48MHz 2048位RSA签名(解密)速度(使用中国剩余定理):17.2次/秒@48MHz
papaofdoudou 2017-03-31
  • 打赏
  • 举报
回复
纯软件运行RSA的话,处理器性能不强很吃亏的, 耗时会比较大。
HardessGod 2017-03-30
  • 打赏
  • 举报
回复
您好,我现在也要在stm32中用到rsa加解密算法,不知道您是否有这方面的源码吗,我看了openssl也是很恼火,提取太复杂了,如果有的话,,能不能发我邮箱,感激 76080153@qq.com
worldy 2016-01-04
  • 打赏
  • 举报
回复
引用 5 楼 hua_ren79 的回复:
这个很有实际,关注中,目前我在做门锁,需要用到这一算法。
门锁没有必要使用RSA吧
虎皮青椒 2016-01-03
  • 打赏
  • 举报
回复
这个很有实际,关注中,目前我在做门锁,需要用到这一算法。
firesbirds 2015-12-21
  • 打赏
  • 举报
回复
在16位单片机,32M主频上运行RSA1024,不借助协处理器的话,运算时间可能会无法接受。 平均秘钥对生成时间可能会到15秒以上; 加密可能会比较快,估计128字节的数据,加密时间会在1-3秒; 解密时间也会相当慢,时间也在10秒级。 如果非要用到非对称算法,建议用ECC
siroyiryuu 2015-05-26
  • 打赏
  • 举报
回复
能把算法移植,不难。
bjx1204743945 2015-05-25
  • 打赏
  • 举报
回复
请问第二个功能实现了吗? RSA源码能直接移植到单片机吗
zhenghn2010 2015-03-03
  • 打赏
  • 举报
回复
曾经这样用过,只用了加解密的函数.
课程简介    随着”新基建“的推行,其涉及到的工业互联网、物联网、人工智能、云计算、区块链,无一不是与安全相关,所有数据的存储、传输、签名认证都涉及到密码学技术,所以在这样的大环境下再结合我多年安全开发经验,设计出这门课程。    因为密码学技术在新基建的重要性,所以使其成为底层开发人员所必备的技能。特别是现在的区块链技术是全面应用密码学,大数据技术和人工智能技术也要解决隐私安全问题。所以现在学习相关技术是非常必要的技术储备,并且可以改造现有的系统,提升其安全性。课程学习目标了解DES算法原理VS2019创建C++项目,并导入openssl库学会OpenSSL DES算法加解密接口加密文件并做PKCS7 Padding 数据填充解密数据并做数据填充解析课程特点    面向工程应用    市面上的一些密码学课程和密码学的书籍,很多都是从考证出发,讲解算法原理并不面向工程应用,而我们现在缺少的是工程应用相关的知识,本课程从工程应用出发,每种技术都主要讲解其在工程的使用,并演示工程应用的代码。    从零实现部分算法    课程实现了base16编解码 ,XOR对称加解密算法,PKCS7 pading数据填充算法,通过对一些简单算法的实现,从而加深对密码学的理解。    理论与实践结合    课程如果只是讲代码,同学并不能理解接口背后的原理,在项目设计就会留下隐患,出现错误也不容易排查出问题。    如果只讲理论,比如对密码学的一些研究,对于大部分从事工程应用的同学并没有必要,而是理论与实践结合,一切为了工程实践。    代码现场打出    代码不放在ppt而是现场打出,更好的让学员理解代码编写的逻辑,老师现场敲出代码正是展示出了工程项目的思考,每个步骤为什么要这么做,考虑了哪些异常,    易学不枯燥    课程为了确保大部分人开发者都学得会,理解算法原理(才能真正理解算法特性),学会工程应用(接口调用,但不局限接口调用,理解接口背后的机制,并能解决工程会出现的问题),阅读算法源码但不实现密码算法,,并能将密码学投入到实际工程,如果是想学习具体的加密算法实现,请关注我后面的课程。课程用到的技术    课程主要演示基于 VS2019 C++,部分演示基于ubuntu 18.04 GCC makefile    如果没有装linux系统,对本课程的学习也没有影响    课程OpenSSL基于最新的3.0版本,如果是openss 1.1.1版本也支持,再低的版本不支持国密算法。 课程常见问题课程讲解用的什么平台和工具?    课程演示主要在windows,基于VS2019 ,一些项目会移植到Linux在ubuntu18.04上我不会Linux能否学习本门课程?    可以的,课程主要在Windows上,Linux部分只是移植,可以暂时跳过,熟悉了Linux再过来看我不会C/C++ 语言是否能学习本门课程?    至少要会C语言,C++特性用得不多,但做了一个封装,可以预习一些C++基础。会不会讲算法实现,会不会太难学不会?    课程偏工程应用,具体的AES,椭圆曲线、RSA算法只通过图示讲原理,一些简单hash算法会读一些源码,并不去实现,课程会单独实现简洁的XOR对称加密和base16算法(代码量不大易懂)。其他的应用我们都基于OpenSSL3.0的SDK调用算法。课程提供源码和PPT吗?    课程所有讲解的源码都提供,课程的上课的ppt也提供,PPT提供pdf版,只可以用于学习,不得商用,代码可以用于商用软件项目,涉及到开源系统部分,需要遵守开源的协议,但不得用于网络教学。要观看全部内容请点击c++实战区块链核心密码学-基于opensslhttps://edu.csdn.net/course/play/29593

1,616

社区成员

发帖
与我相关
我的任务
社区描述
智能硬件,智能手表,可穿戴设备,智能电视,谷歌眼镜,Google Glass 相关讨论。
社区管理员
  • 智能硬件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧