RSA密钥生成方法及装置制造方法及图纸

技术编号:10076770 阅读:361 留言:0更新日期:2014-05-24 10:51
本发明专利技术实施例公开了一种RSA密钥生成方法及装置,在可信平台模块外部的ARM安全运行环境生成素数等密钥参数,将生成的密钥参数发送给可信平台模块,由可信平台模块根据接收到的密钥参数生成RSA密钥,也就是说,本申请实施例中,将生成密钥所需的高运算量的计算(素性检验计算)转移到可信平台模块外部,从而减轻了可信平台模块的计算负担,缩短了创建RSA密钥的时间。

【技术实现步骤摘要】

本专利技术涉及信息处理
,更具体地说,涉及一种RSA密钥生成方法及装置
技术介绍
可信计算技术凭借强有力的安全保护手段和宽广的应用前景成为今年来信息安全领域最具吸引力的热点技术。可信计算以可信平台模块(Trusted Platform Module,TPM)作为可信根,通过可信链将信任扩展到整个系统,从而实现增强安全性的目标。可信平台模块是一个小型片上系统(也叫系统级芯片),能提供各种密码学运算,芯片中含有可信存储根,能够保证密钥和数据的安全存储,并提供完备的密钥管理机制。可信平台模块可以生成RSA密钥,在创建RSA密钥时需要产生两个大素数,具体为:可信平台模块产生大随机数,然后验证随机数是否为素数,当产生的随机数为素数时,依据所产生的随机素数创建RSA密钥。但是,可信平台模块低成本的设计理念使得可信平台模块的运算性能低,而由于素数是随机生成的,因此素性检验的运算量有可能会很大,因此可信平台模块创建RSA密钥的时间较长,以至于无法满足某些应用开发的需求,使得可信平台模块的应用范围受到限制,因此如何缩短可信平台模块创建RSA密钥的时间成为亟待解决的问题。
技术实现思路
本专利技术的目的是提供一种RSA密钥生成方法及装置,以缩短可信平台模块创建RSA密钥的时间。为实现上述目的,本专利技术提供了如下技术方案:一种RSA密钥生成方法,应用于ARM嵌入式系统,所述ARM嵌入式系统的主板上设置有可信平台模块,所述ARM嵌入式系统的运行环境包括安全运行环境和非安全运行环境,所述方法包括:获取可信计算组织软件栈生成创建RSA密钥请求,并将所述创建RSA密钥请求存储至所述ARM嵌入式系统的内存中,所述创建RSA密钥请求中包括父密钥、RSA密钥的公钥的长度;当所述创建RSA密钥请求有效时,将所述ARM嵌入式系统的运行环境切换至安全运行环境;创建RSA密钥参数,所述密钥参数包括:依据两个不同素数得到的RSA密钥的公钥和RSA密钥的私钥,所述RSA密钥的公钥的摘要值,所述RSA密钥的私钥的长度,以及第一加密参数;所述第一加密参数由所述父密钥对所述公钥的摘要值、所述私钥,以及所述私钥的长度进行加密得到;向所述可信平台模块发送创建RSA密钥命令,所述创建RSA密钥命令中包括所创建的RSA密钥参数,以及预先载入所述可信平台模块的父密钥的句柄,RSA密钥的使用授权数据、RSA密钥的迁移授权数据,父密钥的第一口令验证码,以及第一随机数;所述可信平台模块创建RSA密钥,包括:验证所述父密钥的第一口令验证码是否有效,当所述父密钥的第一口令验证码有效时,通过所述父密钥解密所述第一加密参数,得到所述RSA密钥的公钥的摘要值、所述RSA密钥的私钥,以及所述私钥的长度;计算所述RSA密钥的公钥的摘要值;当计算得到的RSA密钥的公钥的摘要值与解密得到的RSA密钥的公钥的摘要值相同时,将所述RSA密钥参数加载至RSA密钥数据块中;如果RSA密钥是不可迁移密钥,则将所述可信平台模块的不可迁移标识标记到所述RSA密钥的迁移授权数据上,并加载至所述RSA密钥数据块中;如果RSA密钥是可迁移密钥,则通过预先建立的特定对象授权会话的共享密钥对RSA密钥的迁移授权数据进行解密,将解密得到的数据加载至所述RSA密钥数据块中;通过预先建立的特定对象授权会话的共享密钥对RSA密钥的使用授权数据进行解密,将得到的RSA密钥的使用授权数据加载至所述RSA密钥数据块中;用所述父密钥对所述公钥的摘要值、所述私钥、所述私钥的长度、所述RSA密钥的迁移授权数据加密得到第二加密参数,将所述第二加密参数加载至所述RSA密钥数据块中;生成第二随机数,并将所述第二随机数加载至所述RSA密钥数据块中;生成父密钥的第二口令验证码,将所述父密钥的第二口令验证码加载至所述RSA密钥数据块中;通过所述可信计算组织软件栈的创建密钥接口向所述可信计算组织软件栈返回与所述创建RSA密钥命令相对应的响应消息,所述响应消息中携带有所述RSA密钥数据块;将所述响应消息存储至所述ARM嵌入式系统的内存中;将所述ARM嵌入式系统的运行环境切换到非安全运行环境。上述方法,优选的,每一个素数的长度为所述RSA密钥的公钥的长度的一半;所述RSA密钥的公钥为所述两个不同的素数的乘积;所述RSA密钥的私钥为所述两个不同素数中的第一素数;所述RSA密钥的私钥的长度为所述第一素数的长度。上述方法,优选的,所述两个不同的素数通过如下方法获取:所述ARM嵌入式系统的运行环境切换至安全运行环境后,随机生成两个大素数。上述方法,优选的,所述两个不同的素数通过如下方法获取:在所述ARM嵌入式系统开机后,随机生成若干对大素数,其中每对大素数只能用一次;当所述ARM嵌入式系统的运行环境切换至安全运行环境后,从所述若干对大素数中选择一对大素数。上述方法,优选的,在所述若干对大素数都用完后,当需要大素数时,随机生成两个大素数。上述方法,优选的,所述两个不同的素数通过如下方法获取:预先随机生成若干对大素数,并将所述若干对大素数存储至缓冲池中,其中,每对大素数只能用一次;当所述ARM嵌入式系统的运行环境切换至安全运行环境后,从所述缓冲池中随机选择一对大素数。上述方法,优选的,当所述缓冲池中大素数的对数小于预设值时,随机生成若干对大素数,并将随机生成的大素数对添加至所述缓冲池中。一种RSA密钥生成装置,应用于ARM嵌入式系统,所述ARM嵌入式系统的主板上设置有可信平台模块,所述ARM嵌入式系统的运行环境包括安全运行环境和非安全运行环境,所述装置包括:密钥请求获取模块,用于获取可信计算组织软件栈生成的创建RSA密钥请求,并将所述创建RSA密钥请求存储至所述ARM嵌入式系统的内存中,所述创建RSA密钥请求中包括父密钥、RSA密钥的公钥的长度;监控模块,用于当所述创建RSA密钥请求有效时,将所述ARM嵌入式系统的运行环境切换至安全运行环境;或者,当所述可信平台模块返回响应消息后,将所述ARM嵌入式系统的运行环境切换至非安全运行环境;RSA密钥参数创建模块,用于创建RSA密钥参数,所述密钥参数包括:依据两个不同的素数得到的RSA密钥的公钥和RSA密钥的私钥,所述RSA密钥的公钥的摘要值,所述RSA密钥的私钥的长度,以及第一加密参数;所述第一加密参数由所述父密钥对所述公钥的摘要值、所本文档来自技高网...
RSA密钥生成方法及装置

【技术保护点】
一种RSA密钥生成方法,应用于ARM嵌入式系统,所述ARM嵌入式系统的主板上设置有可信平台模块,其特征在于,所述ARM嵌入式系统的运行环境包括安全运行环境和非安全运行环境,所述方法包括:获取可信计算组织软件栈生成创建RSA密钥请求,并将所述创建RSA密钥请求存储至所述ARM嵌入式系统的内存中,所述创建RSA密钥请求中包括父密钥、RSA密钥的公钥的长度;当所述创建RSA密钥请求有效时,将所述ARM嵌入式系统的运行环境切换至安全运行环境;创建RSA密钥参数,所述密钥参数包括:依据两个不同素数得到的RSA密钥的公钥和RSA密钥的私钥,所述RSA密钥的公钥的摘要值,所述RSA密钥的私钥的长度,以及第一加密参数;所述第一加密参数由所述父密钥对所述公钥的摘要值、所述私钥,以及所述私钥的长度进行加密得到;向所述可信平台模块发送创建RSA密钥命令,所述创建RSA密钥命令中包括所创建的RSA密钥参数,以及预先载入所述可信平台模块的父密钥的句柄,RSA密钥的使用授权数据、RSA密钥的迁移授权数据,父密钥的第一口令验证码,以及第一随机数;所述可信平台模块创建RSA密钥,包括:验证所述父密钥的第一口令验证码是否有效;当所述父密钥的第一口令验证码有效时,通过所述父密钥解密所述第一加密参数,得到所述RSA密钥的公钥的摘要值、所述RSA密钥的私钥,以及所述私钥的长度;计算所述RSA密钥的公钥的摘要值;当计算得到的RSA密钥的公钥的摘要值与解密得到的RSA密钥的公钥的摘要值相同时,将所述RSA密钥参数加载至RSA密钥数据块中;如果RSA密钥是不可迁移密钥,则将所述可信平台模块的不可迁移标识标记到所述RSA密钥的迁移授权数据上,并加载至所述RSA密钥数据块中;如果RSA密钥是可迁移密钥,则通过预先建立的特定对象授权会话的共享密钥对RSA密钥的迁移授权数据进行解密,将解密得到的数据加载至所述RSA密钥数据块中;通过预先建立的特定对象授权会话的共享密钥对RSA密钥的使用授权数据进行解密,将得到的RSA密钥的使用授权数据加载至所述RSA密钥数据块中;用所述父密钥对所述公钥的摘要值、所述私钥、所述私钥的长度、所述RSA密钥的迁移授权数据加密得到第二加密参数,将所述第二加密参数加载至所述RSA密钥数据块中;生成第二随机数,并将所述第二随机数加载至所述RSA密钥数据块中;生成父密钥的第二口令验证码,将所述父密钥的第二口令验证码加载至所述RSA密钥数据块中;通过所述可信计算组织软件栈的创建密钥接口向所述可信计算组织软件栈返回与所述创建RSA密钥命令相对应的响应消息,所述响应消息中携带有所述RSA密钥数据块;将所述响应消息存储至所述ARM嵌入式系统的内存中;将所述ARM嵌入式系统的运行环境切换到非安全运行环境。...

【技术特征摘要】
1.一种RSA密钥生成方法,应用于ARM嵌入式系统,所述ARM嵌入
式系统的主板上设置有可信平台模块,其特征在于,所述ARM嵌入式系统的
运行环境包括安全运行环境和非安全运行环境,所述方法包括:
获取可信计算组织软件栈生成创建RSA密钥请求,并将所述创建RSA密
钥请求存储至所述ARM嵌入式系统的内存中,所述创建RSA密钥请求中包
括父密钥、RSA密钥的公钥的长度;
当所述创建RSA密钥请求有效时,将所述ARM嵌入式系统的运行环境
切换至安全运行环境;
创建RSA密钥参数,所述密钥参数包括:依据两个不同素数得到的RSA
密钥的公钥和RSA密钥的私钥,所述RSA密钥的公钥的摘要值,所述RSA
密钥的私钥的长度,以及第一加密参数;所述第一加密参数由所述父密钥对
所述公钥的摘要值、所述私钥,以及所述私钥的长度进行加密得到;
向所述可信平台模块发送创建RSA密钥命令,所述创建RSA密钥命令中
包括所创建的RSA密钥参数,以及预先载入所述可信平台模块的父密钥的句
柄,RSA密钥的使用授权数据、RSA密钥的迁移授权数据,父密钥的第一口
令验证码,以及第一随机数;
所述可信平台模块创建RSA密钥,包括:
验证所述父密钥的第一口令验证码是否有效;
当所述父密钥的第一口令验证码有效时,通过所述父密钥解密所述第一
加密参数,得到所述RSA密钥的公钥的摘要值、所述RSA密钥的私钥,以及
所述私钥的长度;
计算所述RSA密钥的公钥的摘要值;
当计算得到的RSA密钥的公钥的摘要值与解密得到的RSA密钥的公钥的
摘要值相同时,将所述RSA密钥参数加载至RSA密钥数据块中;
如果RSA密钥是不可迁移密钥,则将所述可信平台模块的不可迁移标识
标记到所述RSA密钥的迁移授权数据上,并加载至所述RSA密钥数据块中;
如果RSA密钥是可迁移密钥,则通过预先建立的特定对象授权会话的共享密

\t钥对RSA密钥的迁移授权数据进行解密,将解密得到的数据加载至所述RSA
密钥数据块中;
通过预先建立的特定对象授权会话的共享密钥对RSA密钥的使用授权数
据进行解密,将得到的RSA密钥的使用授权数据加载至所述RSA密钥数据块
中;
用所述父密钥对所述公钥的摘要值、所述私钥、所述私钥的长度、所述
RSA密钥的迁移授权数据加密得到第二加密参数,将所述第二加密参数加载
至所述RSA密钥数据块中;
生成第二随机数,并将所述第二随机数加载至所述RSA密钥数据块中;
生成父密钥的第二口令验证码,将所述父密钥的第二口令验证码加载至
所述RSA密钥数据块中;
通过所述可信计算组织软件栈的创建密钥接口向所述可信计算组织软件
栈返回与所述创建RSA密钥命令相对应的响应消息,所述响应消息中携带有
所述RSA密钥数据块;
将所述响应消息存储至所述ARM嵌入式系统的内存中;
将所述ARM嵌入式系统的运行环境切换到非安全运行环境。
2.根据权利要求1所述的方法,其特征在于,
每一个素数的长度为所述RSA密钥的公钥的长度的一半;
所述RSA密钥的公钥为所述两个不同的素数的乘积;
所述RSA密钥的私钥为所述两个不同素数中的第一素数;
所述RSA密钥的私钥的长度为所述第一素数的长度。
3.根据权利要求1或2所述的方法,其特征在于,所述两个不同的素数
通过如下方法获取:
所述ARM嵌入式系统的运行环境切换至安全运行环境后,随机生成两个
大素数。
4.根据权利要求1或2所述的方法,其特征在于,所述两个不同的素数
通过如下方法获取:
在所述ARM嵌入式系统开机后,随机生成若干对大素数,其中每对大素
数只能用一次;
当所述ARM嵌入式系统的运行环境切换至安全运行环境后,从所述若干
对大素数中选择一对大素数。
5.根据权利要求4所述的方法,其特征在于,在所述若干对大素数都用
完后,当需要大素数时,随机...

【专利技术属性】
技术研发人员:桂丰余小龙邹家须孙卓李新国宫俊黄华松赵宝龙
申请(专利权)人:深圳数字电视国家工程实验室股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1