[发明专利]一种应用层获取真随机数的方法在审
申请号: | 201410837653.5 | 申请日: | 2014-12-29 |
公开(公告)号: | CN104484153A | 公开(公告)日: | 2015-04-01 |
发明(设计)人: | 段敏涛 | 申请(专利权)人: | 珠海全志科技股份有限公司 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 深圳市君盈知识产权事务所(普通合伙) 44315 | 代理人: | 张丕阳 |
地址: | 519000 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 获取 随机数 方法 | ||
技术领域
本发明涉及数据加密技术领域,具体涉及一种应用层获取真随机数的方法。
背景技术
目前许多硬件芯片都支持真随机数(TRNG)特性,而真随机数在安全类应用中尤为重要,由芯片内部硬件产生密钥,密钥的随机程度更加抗干扰和可靠,这也是一个系统安全性的关键所在。
如图1所示,Linux内核中的crypto框架管理了内核中所有的加解密算法,包括MD5、SHA1、AES、DES、RNG等,Crypto框架最初是为了内核中网络安全套接层SSL协议而设计的,不支持直接给用户态使用。后期内核为了满足用户态使用crypto的需求,借助网络协议中socket通讯协议族的管理机制实现此功能。所以,增加了一种AF_ALG协议的socket,目前可以给用户态使用的算法有AES类和摘要类(MD5和SHA1等)算法,但并不支持RNG(随机数)算法。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种应用层获取真随机数的方法,克服现有技术Linux应用层不能使用硬件芯片生成的真随机数的缺陷。
本发明为解决上述技术问题所采用的技术方案为:
一种应用层获取真随机数的方法,包括步骤:
A1、应用层调用OpenSSL库中获取随机数的接口函数;
A2、该接口函数调用OpenSSL库的引擎插件;
A3、该引擎插件访问随机数用户态接口;
A4、该随机数用户态接口通过Crypto框架获取真随机数;
A5、该随机数用户态接口将该真随机数返回该引擎插件;
A6、该引擎插件将该真随机数返回该应用层。
根据本发明的实施例,该步骤A3包括步骤:该引擎插件通过AF_ALG协议的套接字socket访问该随机数用户态接口。
根据本发明的实施例,该步骤A4包括步骤:该随机数用户态接口通过套接字socket操作集访问Crypto框架。
根据本发明的实施例,该步骤A4还包括步骤:该Crypto框架通过真随机数驱动程序获取该真随机数。
根据本发明的实施例,该随机数用户态接口执行如下步骤:
B1、申请Crypto框架资源;
B2、申请rng算法上下文;
B3、获取该真随机数;
B4、释放该Crypto框架资源。
根据本发明的实施例,该引擎插件通过一数据结构封装调用接口。
实施本发明的技术方案,具有以下有益效果:本发明使得应用层通过crypto架构获取硬件的真随机数,并且能够无缝支持用户态OpenSSL库,具有较好的兼容性和可扩展性。
附图说明
下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:
图1为现有技术crypto架构使用方法示意图;
图2为本发明的应用框架示意图;
图3为本发明流程图;
图4为本发明获取真随机数过程示意图。
具体实施方式
如图2所示,应用程序是OpenSSL的安全类用户应用层,安全应用的场景很广,包括流媒体、签名、证书等。应用层之前一般都使用伪随机数,通过本发明应用层可以调用OpenSSL库中获取随机数的接口函数来获取真随机数,OpenSSL是用户空间的一个开源的安全算法库,本发明在OpenSSL库中设置engine(引擎)插件,rng用户态接口处于Linux内核中,介于内核Crypto框架和用户态之间,使用网络socket的方式和用户态交互数据,Linux内核中的crypto框架,负责管理内核中所有的加解密算法,TRNG驱动是真随机数驱动程序,通过控制硬件的真随机数发生器来产生随机数,并返回给Crypto框架。
如图3所示,本发明应用层获取真随机数的方法包括步骤:
A1、应用层调用OpenSSL库中获取随机数的接口函数;
A2、该接口函数调用OpenSSL库的引擎插件;
A3、该引擎插件访问随机数用户态接口;
A4、该随机数用户态接口通过Crypto框架获取真随机数;
A5、该随机数用户态接口将该真随机数返回该引擎插件;
A6、该引擎插件将该真随机数返回该应用层。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海全志科技股份有限公司,未经珠海全志科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410837653.5/2.html,转载请声明来源钻瓜专利网。