2024年4月26日发(作者:)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.3
(22)申请日 2011.11.21
(71)申请人 国民技术股份有限公司
地址 518057 广东省深圳市南山区高新技术产业园区深圳软件园3栋301、302
(72)发明人 艾俊 付月朋 王正鹏
(74)专利代理机构 北京轻创知识产权代理有限公司
代理人 杨立
(51)
H04L29/06
H04L9/32
H04L9/06
(10)申请公布号 CN 103124256 A
(43)申请公布日 2013.05.29
权利要求说明书 说明书 幅图
(54)发明名称
可信密码模块及可信计算方法
(57)摘要
本发明涉及一种可信密码模块及可
信计算方法。其中,可信密码模块包括:
RSA模块,用于根据RSA算法对数据进行
处理;SHA-1模块,用于接收所述RSA模
块输出的数据,根据哈希算法SHA-1对数据
进行处理。本发明的可信计算方法用于上
述的可信密码模块,该可信计算方法包括:
根据RSA算法对数据进行第一处理;在所
述第一处理后,根据哈希算法SHA-1对数据
进行第二处理。本发明的可信密码模块及
可信计算方法,能够支持PKI应用体系,
从而扩大了可信密码模块的应用范围。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种可信密码模块,其特征在于,包括:
RSA模块,用于根据RSA算法对数据进行处理;
SHA-1模块,用于接收所述RSA模块输出的数据,根据哈希算法SHA-1对数据进行
处理。
2.根据权利要求1所述的可信密码模块, 其特征在于, 所述RSA模块包括:
RSA密钥处理模块,用于根据RSA算法创建RSA密钥,以及使用所述RSA密钥对数
据进行处理;
RSA算法库,用于对数据实现RSA算法。
3.根据权利要求2所述的可信密码模块, 其特征在于, 所述SHA-1模块包括:
SHA-1计算模块,用于根据哈希算法SHA-1计算所述RSA密钥的公钥的哈希值,以
及根据所述哈希值建立所述RSA密钥的索引;
SHA-1算法库,用于对数据实现哈希算法SHA-1。
4.根据权利要求2所述的可信密码模块, 其特征在于,所述RSA密钥处理模块包括:
创建单元,用于根据RSA算法创建RSA密钥;
解密单元,用于使用RSA密钥对待解密数据进行解密;
签名单元,用于使用RSA密钥对待签名数据进行签名。
5.根据权利要求4所述的可信密码模块, 其特征在于,所述RSA密钥处理模块还包括
修改单元,用于对RSA密钥的授权数据进行修改。
6.根据权利要求4所述的可信密码模块, 其特征在于,所述RSA密钥处理模块还包括
写单元,用于将RSA证书写入到存储区域中。
7.根据权利要求4所述的可信密码模块, 其特征在于,所述RSA密钥处理模块还包括
证书获取单元,用于获取RSA证书。
8.根据权利要求4所述的可信密码模块, 其特征在于,所述RSA密钥处理模块还包括
公钥获取单元,用于获取RSA密钥的公钥。
9.一种可信计算方法,其特征在于,用于权利要求1所述的可信密码模块,该可信计
算方法包括:
根据RSA算法对数据进行第一处理;
在所述第一处理后,根据哈希算法SHA-1对数据进行第二处理。
10.根据权利要求9所述的可信计算方法, 其特征在于,
根据RSA算法对数据进行第一处理包括:
根据RSA算法创建RSA密钥,以及使用所述RSA密钥对数据进行处理;
在所述第一处理后,根据哈希算法SHA-1对数据进行第二处理包括:
根据哈希算法SHA-1计算所述RSA密钥的公钥的哈希值,以及根据所述哈希值建立
所述RSA密钥的索引。
说 明 书
技术领域
本发明涉及可信计算领域,尤其涉及一种可信密码模块及可信计算方法。
背景技术
可信计算是指在PC(个人计算机)硬件平台引入安全芯片架构,通过其提供的安
全特性来提高终端系统的安全性,从而在根本上实现对各种不安全因素的主动防御。
可信计算因此成为信息安全的主要发展趋势之一,也是IT产业发展的主要方向。
可信计算技术体系理念的提出是在二十世纪末。1999年开始,国际上一批IT巨头
组成了一个可信计算工作组,来推相关的一个技术标准,到2003年一个比较成熟
的TCG(Trusted Computing Group,可信计算组织)形成了。TCG组织的成员几
乎包括IT行业各个层次的巨头,数量已达到将近200家。
TCG组织从标准规范入手,来影响这一产业的发展。TCG组织对未来IT产业的影
响力、未来的发展目标也是非常宏大的。他们建立的标准,借助硬件芯片TPM
(Trusted Platform Module,可信平台模块)。可以说TPM是未来基础设施中的基础
部件,今后会影响到整个IT产业的各个方面,包括各种产品形态、终端、服务器、
存储系统、软件、网络接入、手机等。
中国和国际上其他组织几乎是同步在进行可信计算的研究和部署工作。其中,我国
部署的可信计算体系中,密码技术是最重要的核心技术。具体的方案是以密码算法
为突破口,依据嵌入芯片技术,完全采用我国自主研发的密码算法和引擎,来构件
一个安全芯片,称之为TCM(Trusted Cryptography Module,可信密码模块)。
PKI(Public Key Infrastructure,公钥基础设施)是一种遵循既定标准的密钥管理平
台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书
管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设
施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。
由于可信密码模块TCM只支持我国自主研发的密码算法,因此目前的可信密码模
块TCM无法支持采用国际算法的PKI应用体系。
发明内容
本发明所要解决的技术问题是提供一种可信密码模块及可信计算方法,能够支持
PKI应用体系,扩大可信密码模块的应用范围。
为解决上述技术问题,本发明提出了一种可信密码模块,包括:
RSA模块,用于根据RSA算法对数据进行处理;
SHA-1模块,用于接收所述RSA模块输出的数据,根据哈希算法SHA-1对数据进行
处理。
进一步地,上述可信密码模块还可具有以下特点,所述RSA模块包括:
RSA密钥处理模块,用于根据RSA算法创建RSA密钥,以及使用所述RSA密钥对数
据进行处理;
RSA算法库,用于对数据实现RSA算法。
进一步地,上述可信密码模块还可具有以下特点,所述SHA-1模块包括:
SHA-1计算模块,用于根据哈希算法SHA-1计算所述RSA密钥的公钥的哈希值,以
及根据所述哈希值建立所述RSA密钥的索引;
SHA-1算法库,用于对数据实现哈希算法SHA-1。
进一步地,上述可信密码模块还可具有以下特点,所述RSA密钥处理模块包括:
创建单元,用于根据RSA算法创建RSA密钥;
解密单元,用于使用RSA密钥对待解密数据进行解密;
签名单元,用于使用RSA密钥对待签名数据进行签名。
进一步地,上述可信密码模块还可具有以下特点,所述RSA密钥处理模块还包括
修改单元,用于对RSA密钥的授权数据进行修改。
进一步地,上述可信密码模块还可具有以下特点,所述RSA密钥处理模块还包括
写单元,用于将RSA证书写入到存储区域中。
进一步地,上述可信密码模块还可具有以下特点,,所述RSA密钥处理模块还包括
证书获取单元,用于获取RSA证书。
进一步地,上述可信密码模块还可具有以下特点,所述RSA密钥处理模块还包括
公钥获取单元,用于获取RSA密钥的公钥。
为解决上述技术问题,本发明提出了一种可信计算方法,用于前述的可信密码模块,
包括:
根据RSA算法对数据进行第一处理;
在所述第一处理后,根据哈希算法SHA-1对数据进行第二处理。
进一步地,上述可信计算方法还可具有以下特点,
根据RSA算法对数据进行第一处理包括:
根据RSA算法创建RSA密钥,以及使用所述RSA密钥对数据进行处理;
在所述第一处理后,根据哈希算法SHA-1对数据进行第二处理包括:
根据哈希算法SHA-1计算所述RSA密钥的公钥的哈希值,以及根据所述哈希值建立
所述RSA密钥的索引。
本发明的可信密码模块及可信计算方法,能够支持PKI应用体系,从而扩大了可
信密码模块的应用范围。
附图说明
图1为本发明实施例中可信密码模块的结构框图;
图2为图1中RSA模块110的一种结构框图;
图3为图1中SHA-1模块120的一种结构框图;
图4为图2中RSA密钥处理模块111的一种结构框图;
图5为本发明实施例中可信密码模块的一种具体结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非
用于限定本发明的范围。
图1为本发明实施例中可信密码模块的结构框图。如图1所示,本实施例中,可信
密码模块100包括RSA模块110和SHA-1模块120。其中,RSA模块110用于根
据国际加密算法RSA算法对数据进行处理。SHA-1模块120用于接收RSA模块
110输出的数据,根据哈希算法SHA-1对数据进行处理。当然,可信密码模块100
中必然包括现有TCM的基本组成模块,这些基本组成模块是现有技术。
其中,RSA模块110和SHA-1模块120可以置于TCM的固件中。可信密码模块
100通过在TCM固件中扩展对国际加密算法RSA和哈希算法SHA-1的支持来支持
PKI应用体系。
图2为图1中RSA模块110的一种结构框图。如图2所示,本实施例中,RSA模
块110可以包括RSA密钥处理模块111和RSA算法库112。RSA密钥处理模块
111用于根据国际加密算法RSA算法创建RSA密钥,以及使用该RSA密钥对数据
进行处理。RSA算法库112用于对数据实现国际加密算法RSA算法。
图3为图1中SHA-1模块120的一种结构框图。如图3所示,本实施例中,SHA-1
模块120可以包括SHA-1计算模块121和SHA-1算法库122。其中,SHA-1计算
模块121用于根据哈希算法SHA-1计算RSA密钥的公钥的哈希值,以及根据该哈希
值建立RSA密钥的索引。SHA-1算法库122用于对数据实现哈希算法SHA-1。
图4为图2中RSA密钥处理模块111的一种结构框图。如图4所示,本实施例中,
RSA密钥处理模块111可以包括创建单元1111、解密单元1112和签名单元1113。
创建单元1111用于根据国际加密算法RSA算法创建RSA密钥。解密单元1112用
于使用RSA密钥对待解密数据进行解密。签名单元1113用于使用RSA密钥对待
签名数据进行签名。
其中,创建单元1111执行创建RSA密钥命令。创建RSA密钥命令的输入参数包
括命令标识、命令长度、创建RSA密钥命令码、RSA密钥授权使用数据、授权会
话句柄、SMK(Storage Master Key,存储主密钥)授权数据、命令防重放攻击序列。
创建RSA密钥命令的输出参数包括命令标识、命令长度、返回码、创建RSA密钥
命令码、密钥的公钥哈希数据、授权会话句柄、授权数据的摘要值、命令防重放攻
击序列。
在可信密码模块TCM中,创建RSA密钥命令的执行过程如下:
步骤a1,验证SMK的授权数据,若授权失败返回授权失败信息TCM_AuthFail,
若授权成功则执行步骤a2;
步骤a2,验证密钥参数,如果密钥的使用方式不是加密密钥或签名密钥,返回密
钥使用方式无效信息TCM_INVALID_KEYUSAGE, 如果密钥的长度不是1024或
2048位,返回密钥特征错误信息TCM_BAD_KEY_PROPERTY;若密钥的使用方
式是加密密钥或签名密钥,且密钥的长度是1024或2048位,则执行步骤a3;
步骤a3,根据RSA密钥的参数调用RSA算法生成RSA密钥;
步骤a4,使用新生成的RSA密钥填充包裹的密钥结构;
步骤a5,使用SMK加密保存RSA密钥的私钥部分
步骤a6,计算RSA密钥的公钥数据的摘要,按照创建RSA密钥命令的输出参数的
格式返回命令数据。
其中,解密单元1112执行RSA解密命令。RSA解密命令的输入参数包括命令标识、
命令长度、RSA解密命令码、密钥的公钥哈希数据、解密数据长度、解密数据、
随机序列、授权会话句柄、授权数据。RSA解密命令的输出参数包括命令标识、
命令长度、返回码、RSA解密命令码、解密后数据的长度、解密数据、随机序列、
授权会话句柄、授权数据的摘要值。
在可信密码模块TCM中,RSA解密命令的执行过程如下:
步骤b1,根据密钥的公钥哈希数据获取RSA密钥信息并验证RSA密钥的授权数
据;
步骤b2,验证密钥的属性, 如果密钥不是加密密钥,返回密钥属性无效信息
TPM_INVALID_KEYUSAGE, 如果解密数据长度是0,返回参数错误信息
TPM_BAD_PARAMETER,如果密钥是加密密钥且解密数据长度不是0,则执行步
骤b3;
步骤b3,使用SMK密钥解密RSA密钥的私钥部分;
步骤b4,利用RSA密钥的私钥解密;
步骤b5,按照RSA解密命令的输出参数的格式返回命令数据。
其中,签名单元1113执行RSA签名命令。RSA签名命令的输入参数包括命令标识、
命令长度、RSA签名命令码、密钥的公钥哈希数据、签名数据长度、签名数据、
随机序列、授权会话句柄、授权数据。RSA签名命令的输出参数包括命令标识、
命令长度、返回码、RSA签名命令码、签名后数据的长度、签名数据、随机序列、
授权会话句柄、授权数据。
在可信密码模块TCM中,RSA签名命令的执行过程如下:
步骤c1,根据密钥公钥的哈希数据获取该RSA密钥信息并验证RSA密钥的授权数
据;
步骤c2,验证密钥的属性, 如果密钥不是签名密钥,则返回密钥用途错误信息
TCM_INVALID_KEYUSAGE,如果签名数据长度是0,返回参数错误信息
TCM_BAD_PARAMETER,如果密钥是签名密钥且签名数据长度不是0,则执行步
骤c3;
步骤c3,使用SMK密钥解密RSA密钥的私钥部分;
步骤c4,验证签名模式,签名模式包括如下三种:
a) 哈希签名模式,对应的签名标识为TCM_SS_RSASSAPKCS1v15_SHA1;
b)编码签名模式,对应的签名标识为TCM_SS_RSASSAPKCS1v15_DER;
c) 填充签名模式,对应的签名标识为TCM_SS_RSASSAPKCS1v15_INFO;
步骤c5,利用RSA密钥的私钥对数据进行签名;
步骤c6,按照RSA签名命令的输出参数的格式返回命令数据。
再如图4所示,RSA密钥处理模块111还可以包括修改单元1114。修改单元1114
用于对RSA密钥的授权数据进行修改。
修改单元1114执行修改RSA密钥授权数据命令。修改RSA密钥授权数据命令的
输入参数包括命令标识、命令长度、修改RSA密钥授权数据命令码、新的授权数
据、密钥的公钥哈希数据、SMK授权会话随机序列、SMK密钥的授权句柄、SMK
密钥的授权数据、密钥授权会话随机序列、密钥授权会话随机序列、密钥的授权数
据。修改RSA密钥授权数据命令的输出参数包括命令标识、命令长度、返回码、
修改RSA密钥授权数据命令码、SMK密钥授权会话随机序列、SMK密钥的授权
句柄、SMK密钥的授权数据、密钥授权会话随机序列、密钥授权会话随机序列、
密钥的授权数据。
在可信密码模块TCM中,修改RSA密钥授权数据命令的执行过程如下:
步骤d1,验证SMK的授权数据;
步骤d2,根据密钥的公钥哈希数据获取该RSA密钥信息并验证RSA密钥的授权
数据;
步骤d3,修改RSA密钥的授权数据为新的授权数据;
步骤d4,按照命令修改RSA密钥授权数据命令的输出参数的格式返回命令数据。
再如图4所示,RSA密钥处理模块111还可以包括写单元1115。写单元1115用于
将RSA证书写入到存储区域中。
写单元1115执行写RSA证书命令。写RSA证书命令的输入参数包括命令标识、
命令长度、写RSA证书命令码、密钥的公钥哈希数据、证书数据长度、证书数据。
写RSA证书命令的输出参数包括命令标识、命令长度、返回码。
在可信密码模块TCM中,写RSA证书命令的执行过程如下:
步骤e1,验证命令标识,如果命令标识不是TCM_TAG_RQU_COMMAND,返回
命令标识错误信息TCM_BADTAG。
步骤e2,将RSA证书和密钥的公钥哈希数据根据一对一的关系写入DATAFLASH
中。
步骤e3,按照命令输出参数的格式返回命令数据。
再如图4所示,RSA密钥处理模块111还可以包括证书获取单元1116。证书获取
单元1116用于获取RSA证书。
获取单元1116获取RSA证书命令。获取RSA证书命令的输入参数包括命令标识、
命令长度、获取RSA证书命令码、密钥的公钥哈希数据。获取RSA证书命令的输
出参数包括命令标识、命令长度、获取RSA证书命令码、RSA证书数据长度、
RSA证书数据。
在可信密码模块TCM中,获取RSA证书命令的执行过程如下:
步骤f1,验证命令标识,如果命令标识不是TCM_TAG_RQU_COMMAND则返回
命令标识错误信息TCM_BADTAG,如果命令标识是
TCM_TAG_RQU_COMMAND则执行步骤f2;
步骤f2,根据密钥的公钥哈希数据获取该密钥对应的证书信息,如果未找到相关
信息返回失败;
步骤f3,按照获取RSA证书命令的输出参数的格式返回命令数据。
再如图4所示,RSA密钥处理模块111还可以包括公钥获取单元1117。公钥获取
单元1117用于获取RSA密钥的公钥。
公钥获取单元1117执行获取RSA密钥公钥命令。获取RSA密钥公钥命令的输入
参数包括命令标识、命令长度、命令码、密钥的公钥哈希数据。获取RSA密钥公
钥命令的输出参数包括命令标识、命令长度、返回码、获取RSA密钥公钥命令码、
密钥公钥数据。
步骤g1,根据密钥公钥的哈希数据获取该密钥信息,如果未找到相关密钥信息返
回失败;
步骤g2,获取密钥的公钥数据,按照获取RSA密钥公钥命令的输出参数的格式返
回命令数据。
在具体的应用中,TCM是使用原有的国密算法(例如SMS4算法和SM2算法) 对数
据进行加解密,还是使用支持PKI的RSA算法和SHA-1算法对数据进行加解密,根
据应用需求确定。如果应用需要支持PKI则必须使用RSA算法和SHA-1算法。如
果是其它需求则可以任意选择,只要加解密或签名验签使用的算法相同就行。
为了更加直观地说明本发明的可信密码模块与现有可信密码模块的区别,下面将通
过具体实例来对本发明可信密码模块作进一步阐述。图5为本发明实施例中可信密
码模块的一种具体结构图。如图5所示,本实施例中,可信密码模块包括硬件初始
化模块、数据初始化模块、LPC模块、命令解析和预处理模块、命令处理模块。
其中,命令处理模块包括数据解析模块、密钥处理模块、授权数据处理模块、
Hash计算模块、PCR处理计算模块、NV处理模块、RSA密钥处理模块、SHA-1
计算子模块、计数器处理模块、会话/句柄处理模块、Flash处理模块、审计处理模
块。而且,可信密码模块中还包括供命令处理模块调用的对称算法引擎、非对称算
法引擎、Hash算法引擎、RSA算法库、SHA-1算法库、Flash驱动。其中,命令处
理模块中的数据解析模块、密钥处理模块、授权数据处理模块、Hash计算模块、
PCR处理计算模块、NV处理模块、计数器处理模块、会话/句柄处理模块、Flash
处理模块、审计处理模块,以及供命令处理模块调用的对称算法引擎、非对称算法
引擎、Hash算法引擎、Flash驱动,是现有技术中可信密码模块已有的。命令处理
模块中的RSA密钥处理模块和SHA-1计算子模块以及供命令处理模块调用的RSA
算法库、SHA-1算法库是本发明的可信密码模块具有而现有技术中的可信密码模
块不具有的。
本发明的可信密码模块,通过在TCM内部添加RSA密钥处理模块和SHA-1计算
模块在命令协议层上来支持国际算法,RSA算法引擎和SHA-1算法引擎可以使用
软件方法实现。
由上可见,本发明的可信密码模块包括支持国际算法的功能模块,能够支持PKI
应用体系,从而扩大了可信密码模块的应用范围。
本发明还提出了一种可信计算方法,该可信计算方法用于前述的可信密码模块,包
括:
根据RSA算法对数据进行第一处理;
在第一处理后,根据哈希算法SHA-1对数据进行第二处理。
在本发明可信计算方法的一个实施例中,根据RSA算法对数据进行第一处理包括:
根据RSA算法创建RSA密钥,以及使用该RSA密钥对数据进行处理;
在第一处理后,根据哈希算法SHA-1对数据进行第二处理包括:
根据哈希算法SHA-1计算RSA密钥的公钥的哈希值,以及根据该哈希值建立RSA
密钥的索引。
本发明的可信计算方法,能够支持PKI应用体系,从而扩大了可信密码模块的应
用范围。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原
则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


发布评论