首页 / 专利库 / 电脑零配件 / 微码 / 数据处理装置及数据处理方法

数据处理装置及数据处理方法

阅读:722发布:2020-05-12

专利汇可以提供数据处理装置及数据处理方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种 数据处理 装置及数据处理方法,该方法包含以下步骤:藉由一处理器接收一对称加密密钥;以及当一应用程序需要使用一用户私钥时,藉由处理器执行一 硬件 加解密指令集中的一加解密指令,加解密指令用以应用对称加密密钥对应用程序对应的一私钥包裹进行解密,以取得用户私钥。其中,对称加密密钥存储在处理器的一特殊模 块 寄存器中。,下面是数据处理装置及数据处理方法专利的具体信息内容。

1.一种数据处理装置,包含:
处理器,用以接收对称加密密钥,当应用程序需要使用用户私钥时,该处理器执行硬件加解密指令集中的加解密指令,该加解密指令用以应用该对称加密密钥对该应用程序对应的私钥包裹进行解密,以取得该用户私钥;
其中,该对称加密密钥存储在该处理器的特殊模寄存器中。
2.如权利要求1所述的数据处理装置,其中,该处理器接收来自外部密钥服务器的该对称加密密钥。
3.如权利要求2所述的数据处理装置,其中,该外部密钥服务器用以产生该对称加密密钥,并使用该对称加密密钥对该用户私钥使用对称加密算法进行加密,以产生该私钥包裹存放于该应用程序的安装包。
4.如权利要求2所述的数据处理装置,其中,该应用程序调用硬件加解密指令集驱动器并使用密钥导入协议以从该外部密钥服务器导入该对称加密密钥。
5.如权利要求1所述的数据处理装置,其中,该特殊模块寄存器仅允许该处理器访问
6.如权利要求1所述的数据处理装置,其中,该处理器应用该用户私钥以执行特定操作,当该特定操作执行结束后,该处理器清除该用户私钥。
7.如权利要求1所述的数据处理装置,其中,该处理器包含微码,该微码指定用以存储该对称加密密钥的该特殊模块寄存器,硬件加解密指令集驱动器对应该指定的该特殊模块寄存器产生动态句柄给该应用程序。
8.如权利要求1所述的数据处理装置,其中,该应用程序使用动态句柄及该私钥包裹调用硬件加速指令集驱动器,该处理器执行该解密指令时从该动态句柄表征的该特殊模块寄存器中的读取该对称加密密钥,再应用该对称加密密钥对该私钥包裹进行解密,以取得该用户私钥。
9.如权利要求1所述的数据处理装置,其中,该应用程序使用动态句柄、待处理数据地址及该私钥包裹调用硬件加速指令集驱动器,该处理器执行该加解密指令时从该动态句柄表征的该特殊模块寄存器中的读取该对称加密密钥,再应用该对称加密密钥对该私钥包裹进行解密,以取得该用户私钥,再使用该用户私钥对该待处理数据地址中所存储的数据进行加解密处理。
10.如权利要求1所述的数据处理装置,其中,该处理器执行该加解密指令用以应用该对称加密密钥对另一私钥包裹进行解密,以取得另一用户私钥。
11.如权利要求1所述的数据处理装置,其中,该应用程序通过调用硬件加速指令集驱动器以使得该处理器在执行该加解密指令时从该特殊模块寄存器中读取该对称加密密钥。
12.一种数据处理方法,包含:
藉由处理器接收对称加密密钥;以及
当应用程序需要使用用户私钥时,藉由该处理器执行硬件加解密指令集中的加解密指令,该加解密指令用以应用该对称加密密钥对该应用程序对应的私钥包裹进行解密,以取得该用户私钥其中,该对称加密密钥存储在该处理器的特殊模块寄存器中。
13.如权利要求12所述的数据处理方法,其中,该处理器接收来自外部密钥服务器的该对称加密密钥。
14.如权利要求13所述的数据处理方法,其中,该外部密钥服务器用以产生该对称加密密钥,并使用该对称加密密钥对该用户私钥使用对称加密算法进行加密,以产生该私钥包裹存放于该应用程序的安装包。
15.如权利要求13所述的数据处理方法,其中,该应用程序调用硬件加解密指令集驱动器并使用密钥导入协议以从该外部密钥服务器导入该对称加密密钥。
16.如权利要求12所述的数据处理方法,其中,该特殊模块寄存器仅允许该处理器访问。
17.如权利要求12所述的数据处理方法,还包含:
藉由该处理器应用该用户私钥以执行特定操作;
当该特定操作执行结束后,藉由该处理器清除该用户私钥。
18.如权利要求12所述的数据处理方法,其中该处理器包含微码,该微码指定用以存储该对称加密密钥的该特殊模块寄存器,硬件加解密指令集驱动器对应该指定的该特殊模块寄存器产生动态句柄给该应用程序。
19.如权利要求12所述的数据处理方法,其中藉由该处理器执行该硬件加解密指令集中的该加解密指令的步骤还包括:
藉由该应用程序使用动态句柄及该私钥包裹调用硬件加速指令集驱动器;
从该动态句柄表征的该特殊模块寄存器中的读取该对称加密密钥;以及应用该对称加密密钥对该私钥包裹进行解密,以取得该用户私钥。
20.如权利要求12所述的数据处理方法,其中藉由该处理器执行该硬件加解密指令集中的该加解密指令的步骤还包括:
藉由该应用程序使用动态句柄、待处理数据地址及该私钥包裹调用硬件加速指令集驱动器;
从该动态句柄表征的该特殊模块寄存器中的读取该对称加密密钥;
应用该对称加密密钥对该私钥包裹进行解密,以取得该用户私钥;以及使用该用户私钥对该待处理数据地址中所存储的数据进行加解密处理。
21.如权利要求12所述的数据处理方法,还包含:
藉由该处理器执行该加解密指令以应用该对称加密密钥对另一私钥包裹进行解密,以取得另一用户私钥。
22.如权利要求12所述的数据处理方法,其中,该应用程序通过调用硬件加速指令集驱动器以使得该处理器在执行该加解密指令时从该特殊模块寄存器中读取该对称加密密钥。

说明书全文

数据处理装置及数据处理方法

技术领域

[0001] 本申请涉及一种安全存储密钥的技术,特别涉及一种适用于硬件加解密指令所涉及的密钥的一种数据处理装置及数据处理方法。

背景技术

[0002] 随着互联网、物联网的快速发展,网络和信息安全事件层出不穷,因此信息安全越来越受到世界各国以及各个行业的广泛重视。特别是在这个计算、大数据等新技术应用快速崛起的时代,通过数据挖掘技术往往可以从海量数据中获取关键信息,这对企业和个人的信息安全都产生了严重威胁。
[0003] 密码学算法是信息安全的核心技术和基础支撑,而密钥本身的安全性也是一个影响安全性的重要因素。在一些受管制的行业,比如行、医疗健康以及电子商务都需要使用行业认可的密钥管理设备,比如硬件加密器(Hardware Security Module,HSM)等,来保护使用者的密码、密钥等敏感信息。密钥是保证信息安全的基石,密钥本身的保密性也必须要受到保护。因此,如何在运用密码学算法进行加解密的过程中保证其所使用的密钥本身的保密性而不被外界窥探,已成为本领域需解决的问题之一。发明内容
[0004] 本发明的实施例提出一种数据处理装置。数据处理装置包含:一处理器。处理器用以接收一对称加密密钥,当一应用程序需要使用一用户私钥时,处理器执行一硬件加解密指令集中的一加解密指令,加解密指令用以应用对称加密密钥对应用程序对应的一私钥包裹进行解密,以取得该用户私钥。其中,对称加密密钥存储在处理器的一特殊模寄存器中。
[0005] 本发明的实施例提出一种数据处理方法,包含:藉由一处理器接收一对称加密密钥;以及当一应用程序需要使用一用户私钥时,藉由处理器执行一硬件加解密指令集中的一加解密指令,加解密指令用以应用对称加密密钥对应用程序对应的一私钥包裹进行解密,以取得用户私钥。其中,对称加密密钥存储在处理器的一特殊模块寄存器中。
[0006] 综上,本申请的数据处理系统及数据处理方法通过处理器以达到保护多个密钥,将对称加密密钥存储在处理器内部不对外提供访问接口的特殊模块寄存器中,处理器通过执行硬件加解密指令集中的加解密指令从对应的特殊模块寄存器中读取到对称加密密钥以从对应的特殊模块寄存器中读取到对称加密密钥。藉此提供了更高性能、更高安全性的密钥保护的应用解决方案。关于本发明其他附加的特征与优点,本领域技术人员,在不脱离本申请的精神和范围内,当可根据本申请实施方法中所公开的数据处理装置及数据处理方法做些许的更动与润饰而得到。附图说明
[0007] 图1是依照本发明一实施例绘示数据处理装置的方块图。
[0008] 图2是依照本发明一实施例绘示解密私钥包裹以取得用户私钥的方法的流程图
[0009] 图3是依照本发明一实施例绘示藉由外部密钥服务器产生私钥包裹和对称加密密钥并部署到数据处理装置的方法的流程图。
[0010] 图4是依照本发明一实施例绘示解密私钥包裹以取得用户私钥及清除用户私钥的方法的流程图。
[0011] 图5是依照本发明一实施例绘示将加密对称加密密钥传送到外部存储器存储的的流程图。
[0012] 图6A~6B是依照本发明一实施例绘示数据处理方法的流程图。
[0013] 图7是依照本发明另一实施例绘示数据处理装置的方块图。
[0014] 【符号说明】
[0015] 100:数据处理装置
[0016] 10:处理器
[0017] 50:硬件加解密指令集
[0018] 30~32:特殊模块寄存器
[0019] 20:外部存储器
[0020] 60:硬件加解密指令集驱动器
[0021] 70~71:应用程序
[0022] 80:硬件安全模块
[0023] WPK:私钥包裹
[0024] PK:用户私钥
[0025] SWK:对称加密密钥
[0026] CPK:处理器密钥
[0027] CPK(SWK):加密对称加密密钥
[0028] AppID:用程序代码
[0029] 200、300、400、500、600:数据处理方法
[0030] 210~220、310~330、410~430、510~530、610~695:步骤
[0031] ucode 0~ucode3:微码
[0032] 90:处理内核

具体实施方式

[0033] 以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
[0034] 必须了解的是,使用于本说明书中的”包含”、”包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
[0035] 在权利要求中使用如“第一”、"第二"、"第三"等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
[0036] 本章节所叙述的是实施本申请的较佳方式,目的在于说明本申请的精神而非用以限定本申请的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。文中述及由中国国家密码管理局(Office of State Cryptography Administration)所制订的中国商用密码算法(例如SM3及SM4)的规格标准书是仅用以协助表达本申请的精神,而非用以限制本申请的保护范围。本发明所公开的密钥保护方法也适用于采用其它密码算法(例如采用高级加密标准(Advanced Encryption Standard,AES)算法)的数据处理装置。
[0037] 中国商用密码算法是指由国家密码管理局颁布的一系列密码学算法标准,包括SM1、SM2、SM3、SM4、SM7、SM9以及祖冲之密码算法(ZUC)等一系列的密码算法。其中,SM1、SM4、SM7以及ZUC属于对称加密算法,SM2、SM9属于非对称密码算法,而SM3是密码杂凑算法,也即常见的哈希算法
[0038] 在一实施例中,请参照图1,图1是依照本发明一实施例绘示数据处理装置100的方块图。数据处理装置100包含一处理器10及一外部存储器20。
[0039] 在一实施例中,处理器10可以由集成电路如微控制单元(micro controller)、微处理器(microprocessor)、数字信号处理器(digital signal processor)、特殊应用集成电路(application specific integrated circuit,ASIC)或一逻辑电路来实施。
[0040] 在一实施例中,外部存储器20为一非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM)或一动态随机存取存储器(Dynamic Random Access Memory,DRAM)。在一实施例中,外部存储器存储应用程序代码AppID及其对应的加密对称加密密钥CPK(SWK)。
[0041] 在一实施例中,处理器10中包含特殊模块寄存器(Model Specific Register,MSR)30~32。特殊模块寄存器30~32是有限存储容量的寄存器,特殊模块寄存器在通常情况下用于控制处理器10的运行、功能开关、调试、跟踪程序执行、监测处理器10的性能等。在处理器10中,特殊模块寄存器30~32位于处理器10封装(package)内部,且不允许处理器10之外的部件访问亦不对外部公开其访问地址。在一实施例中,处理器10中包含至少一处理内核(Core)90。
[0042] 在一实施例中,数据处理装置100包含多个特殊模块寄存器30~32。
[0043] 在一实施例中,数据处理装置100包含一私钥寄存器40,用以存储处理器10产生的处理器密钥(CPU Private Key,CPK)。
[0044] 在一实施例中,处理内核90还包括一硬件加解密指令集50。硬件加解密指令集50可经由软件、硬件、固件、或上述任意组合来实现。在一实施例中,硬件加解密指令集50可实现在处理内核90的一微码(ucode或microcode)中。
[0045] 在一实施例中,处理器10及外部存储器20可以由硬件实现,硬件加解密指令集驱动器(GMI driver)60、应用程序70、71可以由软件、硬件、固件、或上述任意组合来实现。
[0046] 在一实施例中,处理器10通过硬件加解密指令集50,可以提高密码算法应用的性能,充分利用处理内核90的计算能。传统的密码算法的使用方式中,比较常见的就是通过软件编程的方式来实现相应的密码算法,这通常都需要进行大量、复杂的编程。以开放原始程序代码的软件库包OpenSSL为例,传统的密码算法例如中国商用密码算法SM3、SM4的代码量大概在200~300行左右,但是在将这些密码算法进行硬件指令化后,原本需要使用数百行复杂编码才可以实现的算法现在只需要简单调用一条硬件指令(例如一条x86宏指令)即可完成相应的操作。此大幅简化了操作的复杂度,为用户或编程人员带来了极大的便利性。硬件加解密指令集50中中国商用密码算法SM3、SM4的具体指令代码如下表所示:
[0047]指令 操作码(Opcode) 说明
CCS_SM3 0xF3 0x0F 0xA6 0xE8 SM3指令
CCS_SM4 0xF3 0x0F 0xA7 0Xf0 SM4指令
[0048] 同时,硬件加解密指令集50中的每个指令(如SM3、SM4)可进行封装,提供适合上层应用开发使用的应用程序接口(application programming interface,API)和函数库,便于需要开发上层应用的用户使用。值得注意的是,本说明书后面关于密码算法的叙述均采用硬件加解密指令集50中的指令(如SM3、SM4)为例,但本发明不限于此,即是说,本发明也可以采取其他密码算法。
[0049] 在一实施例中,在应用程序(例如为应用程序70或71)运行的过程中,软件最常遇到的攻击就是被非法篡改。使用软件编程实现的密码算法也同样会受到这类威胁。然而硬件则不会存在被篡改的险,因此在将密码算法硬件固化后,也就消除了密码算法被非法篡改的风险,留给攻击者的攻击面也相应减小。而且在密码算法实现硬件化后,不止用于实现算法的代码量会变少,相应的调用、使用密码算法的代码量也会随着减少,这也就意味着在程序中引入程序错误的几率也会随之大大降低,因此增强了用户程序的健壮性。
[0050] 此外,将密码算法硬件化,省去了大量的软件调用等系统开销,可以使密码算法应用获得极大的性能提升。
[0051] 在一实施例中,关于硬件加解密指令集50中的SM3指令,其可用于校验文件的完整性,确保使用的文件或软件是没有被攻击者篡改过。哈希算法的SM3指令则可以校验出任意长度的篡改,而且由于其产生的数据摘要(哈希值)的长度要更长,因此更难以发生碰撞,也就更加安全。因此,用户只需要调用硬件加解密指令集50中的SM3指令计算所用到的文件/软件的摘要值,与文件自带的校验值进行比较,就可以检验出文件是否被篡改过,从而保证了所用文件/软件的完整性。
[0052] 在一实施例中,关于硬件加解密指令集50中的SM4指令,SM4指令采用对称加解密算法,即其加密和解密使用同一个密钥,其可以用在静态数据加密、传输数据加密以及应用层的数据加密,以下详述此三者的应用方式。
[0053] 在静态数据加密方面,全磁盘加密是对静态数据加密的一个典型应用。在一实施例中,通过SM4指令可以对磁盘上的所有数据都进行加密存储。存储着个人隐私或商业机密等敏感信息的计算机设备丢失或者需要维修时,若使用了全磁盘加密的保护,就可以避免信息泄露的风险。特别是对于企业用户来说,在设备更新时,借助于全磁盘加密,只需要将全磁盘加密的加解密密钥销毁,即可达到销毁旧磁盘上敏感数据的目的。同时,借助于硬件加解密指令集50的加速特性可以让全磁盘加密具有更高的性能,大大改善了用户的使用体验。此外,在安全可靠的要求下,有些行业会对加解密算法有要求,比如要求使用SM4算法来加解密系统中的数据。在这种情况下,就可以使用硬件加解密指令集50的SM4指令替代传统的纯软件实现,从而不仅能防止算法被篡改,还能提高运算速度,同时还可以满足政策法规的合规要求。
[0054] 在传输数据加密方面,硬件加解密指令集50的SM4指令可以对传输中的数据加以保护。例如,客户端电子装置在使用超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)访问网站时,在完成最初的密钥交换后,客户端电子装置与网站服务器之间就使用对称加密算法来保护双方的数据传输。另外,在云计算领域,保存在云环境中的数据或涉及个人隐私,或涉及企业商业机密,用户对这些数据的机密性格外关心,这种情况下,需要在将数据加密后再通过网络传输到云中。这样,数据不仅可以确保云环境中数据的机密性,还可以确保数据在网络传输过程中的机密性。此时,如果能够在浏览器或者云的客户端电子装置支持硬件加解密指令集50的SM4硬件加解密指令,则可以满足用户对数据传输的安全性要求。
[0055] 在应用层数据加密方面,数据库是一个典型的应用场景。常见的数据库都支持一种称为透明数据加密(Transparent Data Encryption,TDE)的安全特性。这种特性可以将数据库的内容整体加密。其中所用到的三个加密中有两个属于对称加密:服务主密钥(Service Master Key)和数据加密密钥(Data Encryption Key)。这些都可以利用到硬件加解密指令集50的SM4的硬件加密指令。
[0056] 上述关于硬件加解密指令集50的SM3、SM4指令可应用于本申请中,但本发明不限于此,即是说,硬件加解密指令集50的SM2SM4、SM7、SM9、ZUC以及其他密码算法也可应用于本申请中。
[0057] 由于SM4指令采用对称加解密算法,其加密和解密使用同一个密钥,因此在上面描述的各种硬件加解密指令集50的应用里,尤其是对称加解密指令SM1、SM4、SM7以及ZUC的应用,密钥本身的安全性也是重要的。在一实施例中,需要使用外部密钥服务器80来产生及保护用户的密码、密钥等敏感信息。
[0058] 换句话说,密钥用以保证信息安全,密钥本身的保密性也必须要受到保护,因此要确保密钥不能以明文的形式出现在内存(例如为快闪存储器)中。为了确保硬件加解密指令集50所使用的密钥,特别是对称加密算法所使用的密钥(后称之为“对称加密密钥SWK(Symmetric Wrapping Key)”)的安全,我们在处理器10内部实现一段专用空间来存放这些密钥。这里我们设计了一些只有处理器10才可以访问的特殊模块寄存器30~32私有特殊模块寄存器用于保存密钥,并设计了一种新的SM4指令的调用模式,使得SM4指令可以直接从指定的特殊模块寄存器(例如为特殊模块寄存器30)中找到所需要的对称加密密钥SWK,而无需再从内存中取回。
[0059] 在一实施例中,特殊模块寄存器30~32为私有特殊模块寄存器,其只能被处理器10存取,私有特殊模块寄存器不对处理器10以外的模块开放其地址,换句话说,处理器10以外的其他装置或模块无法存取私有特殊模块寄存器。
[0060] 在一实施例中,有一些特殊模块寄存器会对外提供接口,将其地址暴露给处理器10以外的模块读写使用,因此,用以存储密钥的特殊模块寄存器一定要是私有特殊模块寄存器。然而,除了私有特殊模块寄存器,将对称加密密钥SWK放在单一内核或多内核处理器中的非核心组成部分(即“uncore”部分)的存储空间也是可以的,其中,“uncore”部分是指处理器10的封装中处理内核90以外的电路部分。换句话说,对称加密密钥SWK须存储在不会暴露到处理器10封装之外的特定存储空间。
[0061] 在一实施例中,对称加密算法(如,SM1、SM4、SM7、ZUC、进阶加密标准(Advanced Encryption Standard,AES)等)在加解密时使用相同的对称加密密钥SWK,因此其对称加密密钥SWK需要严格保密,也可采本发明技术来保存密码。
[0062] 在一实施例中,SM2和SM9为非对称加密算法,非对称加密算法通常包括公钥(public key)和私钥(private key),其私钥也可采本发明技术来保存,但由于此类型的私钥其往往需要较大的存储空间,可使用多个特殊模块寄存器(例如为两个128比特(bit)的特殊模块寄存器30、31)以存储之。
[0063] 在一实施例中,硬件加解密指令集50中SM4指令的调用模式包括至少2种:一种是SM4指令的普通模式,在该特殊模式下,SM4指令仅实现解密出用户私钥PK;另一种是SM4指令的特殊模式,在该特殊模式下,SM4指令可实现解密出用户私钥PK还要再使用用户私钥PK进行加解密。
[0064] 下面详述第一种SM4指令的普通模式:当应用程序70运行到某个阶段需要使用其用户私钥PK来加解密数据时,它会调用硬件加解密指令集驱动器60使得处理器100执行SM4指令(普通模式的SM4指令)来完成想要的操作。在调用时,应用程序70将私钥包裹WPK、以及对应对称加密密钥SWK的动态句柄作为参数传递给硬件加解密指令集驱动器60,硬件加解密指令集驱动器60进而会将这些参数组织为SM4指令所需要的寄存器值,例如通过一些通用的处理器寄存器来标识,例如:“EAX=1”、“EBX=SWK handle”,“ECX=WPK”,其中“EAX=1”表征此时的SM4指令是在“普通模式”,在该模式下处理器10的处理内核90在执行该SM4指令时会读取“EBX”中的值作为动态句柄找到处理器10内部对应的存放对称加密密钥SWK的特殊模块寄存器(例如为特殊模块寄存器31),从中取回对称加密密钥SWK,再使用对称加密密钥SWK解密“EDX”所指向的私钥包裹WPK,得到用户私钥PK。当然,在此种模式下,为了保证解密所得的用户私钥PK的安全,也须将其存放在特殊模块寄存器30~32之一,然后再调用一次该普通模式SM4指令(或硬件加解密指令集中的其它加解密指令,这取决于在何种密码算法下使用用户私钥PK)以使用该用户私钥PK对用户待加解密的数据进行加解密。
[0065] 换句话说,应用程序70使用动态句柄及私钥包裹WPK调用硬件加速指令集驱动器60,以使得处理器10执行解密指令SM4时从动态句柄表征的特殊模块寄存器31取称加密密钥SWK,再应用对称加密密钥SWK对私钥包裹进行解密,以取得用户私钥PK。
[0066] 下面详述第二种SM4指令的特殊模式:当应用程序(例如为应用程序70)运行到某个阶段需要使用其用户私钥PK来加解密数据时,应用程序70会调用硬件加解密指令集驱动器60使得处理器100执行SM4指令(非普通模式的SM4指令)来完成想要的操作。在调用时应用程序70会使用用户待加解密的数据、私钥包裹WPK(Wrapped Private Key)、以及对应对称加密密钥SWK(Symmetric Wrapping Key)的动态句柄(handle)作为参数调用硬件加解密指令集驱动器60,进而会将这些参数组织为SM4的特殊模式所需要的寄存器值,例如通过一些通用寄存器来进行标识。在一实施例中,标识通用寄存器值的方法例如:“EAX=2、“EBX=SWK handle”,“ECX=“待加密的数据块地址”“、“EDX=WPK”,其中,“EAX=2”表征此时的SM4指令是在“特殊模式”,在该特殊模式下处理器10的处理内核90在执行该SM4指令时会读取参数“EBX”中的值作为动态句柄,用以找到处理器10内部对应存放用对称加密密钥SWK的特殊模块寄存器(例如为特殊模块寄存器30),从特殊模块寄存器30中取回对称加密密钥SWK,再使用对称加密密钥SWK解密参数“EDX”所指向的私钥包裹WPK(Wrapped Private Key),得到应用程序70真正用到的用户私钥PK,并再使用用户私钥PK来对参数“EBX”中所存地址指向的数据进行加解密。
[0067] 换句话说,应用程序70使用一动态句柄、一待处理数据地址及私钥包裹WPK调用硬件加速指令集驱动器60,以使得处理器10执行解密指令SM4时从动态句柄表征的特殊模块寄存器30中的读取对称加密密钥SWK,再应用对称加密密钥SWK对私钥包裹WPK进行解密,以取得用户私钥PK,再使用用户私钥PK对待处理数据地址中所存储的数据进行加解密处理。
[0068] 在一实施例中,当硬件加解密指令集驱动器60调用到硬件加解密指令集50中该加解密指令SM4指令时,该SM4指令作为一条宏指令在处理器10的处理内核90的流线(pipeline)中执行到解码(decode)阶段进入其微码只读存储器(microcode(ucode)read-only memory(ROM))(图未绘示)执行,从微码只读存储器中取出SM4指令相关的微码,并将部分微码送到流水线后端执行,因此是在流水作业中的重命名(rename)周期、分发(dispatch)周期及执行(execution)周期等阶段实现上述取得用户私钥PK的操作和/或进一步使用用户私钥PK对待处理数据地址中所存储的数据进行加解密处理,换句话说,从微码只读存储器中取出的SM4微码后执行这些操作。
[0069] 在一实施例中,尽管处理器10内的存储空间有限,但是利用处理器密钥CPK(CPU Private Key),将一些临时不用的对称加密密钥SWK可调用硬件加解密指令集中的加密指令(如SM4加密指令)使用处理器密钥CPK加密后保存在内存或外部存储器20中,下次使用时再通过硬件加解密指令集驱动器60从内存或外部存储器20中取回并再调用硬件加解密指令集中的加解密指令(如SM4加解密指令)进行解密,既保证了对称加密密钥SWK的安全性,又实现了密钥存储空间的扩展性。其中处理器密钥CPK是处理器10内部电路如一随机数产生器(图未绘示)产生的,因此处理器密钥CPK绝不会暴露在处理器10外部从而保证其安全性。
[0070] 请参阅图2,图2是根据本申请一实施例所述的解密私钥包裹WPK以取得用户私钥PK的方法200的流程图。
[0071] 在步骤210中,藉由处理器10接收对称加密密钥SWK。
[0072] 在一实施例中,处理器10接收来自外部密钥服务器80的对称加密密钥SWK。外部密钥服务器80可以是硬件安全模块HSM(Hardware Security Module)或密钥管理互用协议服务器KMIPS(Key Management Interoperability Protocol Server)。但本发明并不做此限制,外部密钥服务器80也可以采用其它密钥管理设备。
[0073] 在一实施例中,应用程序70调用硬件加解密指令集驱动器60并使用一密钥导入协议从该外部密钥服务器80导入对称加密密钥SWK。
[0074] 在一实施例中,当处理器10从外部密钥服务器80接收对称加密密钥SWK后,处理器10的处理内核90所包含的一微码只读存储器所存储的微码(ucode,又称microcode)会指定用以存储对称加密密钥SWK的特殊模块寄存器(例如指定特殊模块寄存器30)。换句话说,由处理器10的处理内核90所包含的微码指定将对称加密密钥SWK存储至多个特殊模块寄存器(例如特殊模块寄存器30~32)中的哪一个(例如特殊模块寄存器30),并触发硬件加解密指令集驱动器60对应该指定的该特殊模块寄存器30产生一动态句柄(handle)给应用程序70。
[0075] 在步骤220中,当应用程序应用程序70需要使用用户私钥PK时,藉由处理器10执行硬件加解密指令集(例如为硬件加解密指令集50)中的加解密指令(例如SM4加解密指令),该加解密指令用以应用对称加密密钥SWK对应用程序70对应的一私钥包裹WPK进行解密,以取得用户私钥PK。其中,对称加密密钥SWK存储在处理器10的一特殊模块寄存器(例如为特殊模块寄存器30)中。其中,处理器10在执行加解密指令时通过调用一硬件加解密指令集驱动器60以从特殊模块寄存器30中读取对称加密密钥SWK。
[0076] 在一实施例中,对私钥包裹WPK和称加密密钥SWK均由外部密钥服务器80产生,后续图3将详述如何藉由外部密钥服务器80产生私钥包裹WPK和对称加密密钥SWK并部署到数据处理装置100的流程。
[0077] 在一实施例中,特殊模块寄存器(例如为特殊模块寄存器30~32仅允许处理器10访问。
[0078] 请参阅图3,图3是根据本申请一实施例所述的藉由外部密钥服务器80产生私钥包裹WPK和对称加密密钥SWK并部署到数据处理装置100的方法300的流程图。图3将详述如何藉由外部密钥服务器80产生私钥包裹WPK和对称加密密钥SWK并部署到数据处理装置100的流程。
[0079] 在步骤310中,藉由外部密钥服务器80产生对称加密密钥SWK,并使用产生的对称加密密钥SWK对需要保密的用户私钥PK使用一对称加密算法(例如SM4算法)进行加密,以产生私钥包裹WPK存放在应用程序70的一安装包(App image)。
[0080] 在一实施例中,私钥包裹WPK是加密后和安装包一起放在外部密钥服务器80中,当用户下载应用程序70的安装包时,安装包及私钥包裹WPK从外部密钥服务器80下载到数据处理装置100。
[0081] 当步骤310完成后,则依序进入步骤320,在步骤320中,藉由处理器10接收应用程序70的安装包,并通过该安装包安装应用程序70在数据处理装置100。如此一来,私钥包裹WPK便跟随应用程序70部署到数据处理装置100中。
[0082] 应用程序70启动后执行步骤330、340。由于步骤330、340分别与图2中的步骤210、220相同,故此处不赘述。
[0083] 请参阅图4,图4是根据本申请一实施例所述的解密私钥包裹WPK以取得用户私钥PK及清除用户私钥PK的方法400的流程图。由于图4中的步骤410与图2中的步骤220相同,故此处不赘述。
[0084] 在步骤420中,当应用程序应用程序70需要使用用户私钥PK时,藉由处理器10调用并执行硬件加解密指令集50中的加解密指令(例如SM4指令),该加解密指令用以应用对称加密密钥SWK对应用程序70对应的私钥包裹WPK进行解密,以取得用户私钥PK。以该加解密指令为前述的普通模式的SM4指令为例说明该调用执行过程:应用程序70将私钥包裹WPK、以及对应对称加密密钥SWK的动态句柄handle作为参数传递给硬件加解密指令集驱动器60,硬件加解密指令集驱动器60进而会将这些参数组织为SM4指令所需要的通用寄存器值,例如:“EAX=1”、“EBX=SWK handle”,“ECX=WPK”,其中“EAX=1”表征此时的SM4指令是在“普通模式”,在该模式下处理器10的处理内核90在执行该SM4指令时会读取“EBX”中的值作为动态句柄找到处理器10内部对应的存放对称加密密钥SWK的特殊模块寄存器(例如为特殊模块寄存器31),从中取回对称加密密钥SWK,再使用对称加密密钥SWK解密“EDX”所指向的私钥包裹WPK,得到用户私钥PK。当然,在此种模式下,为了保证解密所得的用户私钥PK的安全,也须将其存放在特殊模块寄存器30~32之一。
[0085] 在步骤430中,藉由处理器10应用用户私钥PK以执行一特定操作,当特定操作执行结束后,处理器10清除用户私钥PK以防止其泄露。
[0086] 在一实施例中,在步骤430中所述的特定操作,是应用程序70中的特定操作,例如为“用户输入密码支付”或“用户提交订单”等需要用户私钥PK保密的操作。举例而言,在支付软件中,用户输入的密码(password)被视为一种用户敏感信息,可用用户私钥PK对此密码加密后,再提交加密后的密码给支付公司进行结算。再举例而言,超文本传输安全协议对网络传输数据进行传输层安全性协议(Transport Layer Security,TLS)保护也是采用对称加密算法,可调用SM4指令使用用户私钥PK对网络传输数据进行加解密。
[0087] 步骤430的特定操作是应用用户私钥PK进行加解密操作,值得注意的是,该特定操作可藉由处理器10再调用一次硬件加解密指令集50中的加解密指令(例如前述的普通模式的SM4指令)实现;当然本发明并不局限于此,处理器10甚至可以采用软件实现该特定操作。
[0088] 为了保证解密出的用户私钥PK的安全性,本发明另一实施例又提出硬件加解密指令集50的加解密指令(SM4指令)的一种特殊调用模式,该特殊调用模式的加解密指令(SM4指令)可同时完成步骤420及430的操作:以SM4指令为例,当应用程序70运行到某个阶段需要使用其用户私钥PK来加解密数据时,应用程序70通过硬件加解密指令集驱动器60调用该特殊模式的SM4指令。在调用时应用程序70会将待加解密的数据、私钥包裹WPK、以及对应对称加密密钥SWK的动态句柄handle作为参数传递给硬件加解密指令集驱动器60,进而会将这些参数组织为SM4的特殊模式所需要的通用寄存器的值。注意,该动态句柄handle是对称加密密钥SWK存放至对应的特殊模块寄存器30中时由硬件加速指令驱动器60产生并交由应用程序70的。举例而言,标识通用寄存器值为:“EAX=2”、“EBX=SWK handle”,“ECX=“待加密的数据块地址””、“EDX=WPK”,其中,“EAX=2”表征此时的SM4指令是在“特殊模式”,在该特殊模式下处理器10的处理内核90在执行该SM4指令时会读取参数“EBX”中的值作为动态句柄,用以找到处理器10内部对应存放用对称加密密钥SWK的特殊模块寄存器(例如为特殊模块寄存器30),从特殊模块寄存器30中取回对称加密密钥SWK,再使用对称加密密钥SWK解密参数“EDX”所指向的私钥包裹WPK(Wrapped Private Key),得到应用程序70真正用到的用户私钥PK,并再使用用户私钥PK来对参数“EBX”中所存地址指向的数据进行加解密。
[0089] 在一实施例中,处理器10执行加解密指令用以应用对称加密密钥SWK对另一私钥包裹进行解密,以取得另一用户私钥。由此可知,通过保护对称加密密钥SWK而不直接对用户私钥PK进行保护的原因在于,此可以使多个用户私钥PK使用同一个对称加密密钥SWK来加密,节省特殊模块寄存器30~32的空间。即,一个对称加密密钥SWK可以解密多个私钥包裹WPK以得到多个应用程序需要的多个用户私钥PK。
[0090] 请参阅图5,图5是根据本申请一实施例所述的将加密对称加密密钥CPK(SWK)传送到外部存储器20存储的方法500的流程图。
[0091] 在步骤510中,藉由一处理器10产生一处理器密钥CPK。在一实施例中,该处理器密钥CPK是根据处理器10产生的一随机数生成,例如处理器10内部包含一随机数产生器(图1未绘示),利用该随机数产生器产生的处理器密钥CPK可保证其只能为处理器10所得知,而不会被外界窥探,提高安全性。
[0092] 在步骤520中,藉由处理器10接收到来自一外部密钥服务器80的对称加密密钥SWK,并应用处理器密钥CPK对对称加密密钥SWK进行加密,以产生一加密对称加密密钥CPK(SWK)。值得注意的是,对称加密密钥SWK在一实施例中是应用程序70调用硬件加解密指令集驱动器60并使用一密钥导入协议从外部密钥服务器80导入的。在一实施例中,这里处理器10可调用并执行硬件加解密指令集50中的加解密指令之一(如SM4加解密指令)以实现应用处理器密钥CPK对对称加密密钥SWK前述加密操作。另外,对称加密密钥SWK在被加密及传送到外部存储器20之前可存储在处理器10的一特殊模块寄存器(例如为特殊模块寄存器30)中以保证其不会被外界窥探。
[0093] 在步骤530中,藉由处理器10将加密对称加密密钥CPK(SWK)传送到外部存储器20存储。敏感信息(即对称加密密钥SWK)可被加密为加密对称加密密钥CPK(SWK)后以密文形式传送至处理器10外部,能有效地防止未授权者(例如黑客hacker)拦截并解读出敏感信息。在需要存储的对称加密密钥较多而处理器10内部的特殊模块寄存器30~32存储空间有限的情形下,藉由处理器10产生的处理器密钥CPK对对称加密密钥进行加密后再存储至外部存储器20中,既保证了对称加密密钥的安全性,有实现了密钥存储空间的扩展性。
[0094] 在一实施例中,处理器10更接收到来自外部密钥服务器80的一其它对称加密密钥,处理器10在空闲时可采用一最近最少使用(LRU)方式从对称加密密钥SWK和其它对称加密密钥中选一进行加密后,将产生的加密对称加密密钥CPK(SWK)传送到外部存储器20存储。
[0095] 在一实施例中,处理器10更接收到来自外部密钥服务器80的一其它对称加密密钥,这些不同的对称加密密钥SWK可能对应不同的应用程序(例如图1所示的应用程序70和应用程序71),也可能对应同一个应用程序。因此步骤520产生的加密对称加密密钥CPK(SWK)还包括一应用程序辨识码AppID,以标识该加密对称加密密钥CPK(SWK)对应哪个应用程序。请参阅图6A~6B,图6A~6B是根据本申请一实施例所述的数据处理方法600的流程图。由于图6A中的步骤610、620、630分别与图5中的步骤510、520、530相同,故此处不赘述之。
[0096] 在步骤640中,当应用程序70启动时,藉由处理器10根据该应用程序70的应用程序辨识码AppID由外部存储器20读取该应用程序70对应的加密对称加密密钥CPK(SWK),尽管加密对称加密密钥CPK(SWK)是加密后的对称加密密钥SWK,即其是密文,在一实施例中仍可将其存储在特殊模块寄存器(例如为特殊模块寄存器30)以保证其不被外界窥探。
[0097] 在步骤650中,藉由处理器10执行硬件加解密指令集50中的验证指令(如SM3指令)以验证加密对称加密密钥CPK(SWK)的完整性。当然,在某些实施方式中也可省略步骤650。
[0098] 在步骤660中,当处理器10应用验证指令(如SM3)验证加密对称加密密钥CPK(SWK)为完整时,处理器10应用处理器密钥CPK将加密对称加密密钥CPK(SWK)进行解密,以取得对称加密密钥SWK,并将对称加密密钥SWK存储在处理器10的特殊模块寄存器(例如为特殊模块寄存器30)。
[0099] 在一实施例中,如果处理器10在步骤620调用硬件加解密指令集50中的加解密指令(如SM4加解密指令)实现加密操作,则在步骤660同样通过调用硬件加解密指令集50中相同的加解密指令(如SM4加解密指令)实现上述解密操作。当然处理器10也可藉由传统的软件加密和解密方式分别实现步骤620和步骤660的加密和解密操作,本发明并不在此作限制。
[0100] 在一实施例中,处理器10还包含一微码(microcode或ucode),该微码指定用以存储对称加密密钥SWK的特殊模块寄存器(例如为特殊模块寄存器30),该处理器10更藉由硬件加解密指令集驱动器60对应该指定的该特殊模块寄存器30产生一动态句柄handle给对应的应用程序70。
[0101] 在一实施例中,图6B的流程图在步骤660以后可继续执行图2的步骤220(或图3的步骤340或图4的步骤420~430),在图6B中,在步骤660以后根据处理器10调用执行的加解密指令的模式不同(例如如前所述的普通模式或特殊模式),可选择性的进入步骤670及其下一步骤680或步骤690:在步骤670中,当应用程序70需要使用用户私钥PK时,藉由处理器10执行硬件加解密指令集50中的普通模式加解密指令(如普通模式SM4加解密指令)实现,具体而言:应用程序70使用一动态句柄handle及一私钥包裹WPK作为参数调用硬件加解密指令集驱动器60以使处理器10执行硬件加解密指令集50中的普通模式的加解密指令(例如为普通模式SM4加解密指令),该普通模式的加解密指令用以从动态句柄handle表征的特殊模块寄存器30中的读取对称加密密钥SWK,并应用对称加密密钥SWK对私钥包裹WPK进行解密,以取得用户私钥PK。其中,该动态句柄handle是该处理器10在步骤660藉由硬件加解密指令集驱动器60生成,该动态句柄handle指示从特殊模块寄存器30~32中的哪个特殊模块寄存器(如特殊模块寄存器30)读取对称加密密钥SWK,而如前所述,该特殊模块寄存器30由处理器10包含的微码指定;之后执行步骤680:处理器10再应用用户私钥PK执行特定的操作。如果用户选择调用执行特殊模式的加解密指令,则执行完步骤660,进入步骤690:当应用程序70需要使用用户私钥PK时,藉由处理器10执行硬件加解密指令集50中的特殊模式加解密指令(如特殊模式SM4加解密指令)实现,具体而言:当应用程序70需要使用用户私钥PK时,应用程序70使用一动态句柄handler、一待处理数据地址及私钥包裹WPK调用硬件加速指令集驱动器60,以使得处理器10执行特殊模式的解密指令SM4,从动态句柄handler表征的特殊模块寄存器30中的读取对称加密密钥SWK,再应用对称加密密钥SWK对私钥包裹WPK进行解密,以取得用户私钥PK,再使用用户私钥PK对待处理数据地址中所存储的数据进行加解密处理。
[0102] 当执行完步骤680或690后,执行步骤695:处理器清除用以暂存对称加密密钥SWK的特殊模块寄存器的存储内容。
[0103] 在一实施例中,处理器10可经由微码解码该加解密指令(如SM4指令)后的重命名周期、分发周期和/或执行周期完成上述取得用户私钥PK的操作。
[0104] 现在参考图7,图7是依照本发明另一实施例绘示数据处理装置900的方块图。数据处理装置900包含一处理器10及一外部存储器20,图7与图1的不同之处在于,处理器10可以为多核处理器(Multi-core processor)其包括多个处理内核90~93,处理内核90中包含ucode 0,处理内核91中包含微码只读存储器所存储的微码ucode 1,处理内核92中包含微码只读存储器所存储的微码ucode 2,处理内核93中包含微码只读存储器所存储的微码ucode 3。图7的多个处理内核90~93可以分别独立执行图1处理内核90执行的所有操作,此外,多个处理内核90~93的每一个都可以单独存取特殊模块寄存器30~32,换句话说,特殊模块寄存器30~32是被多个处理内核90~93所共享。
[0105] 综上,本申请的数据处理系统及数据处理方法实现了藉由处理器内部安全级别较高的特殊模块寄存器存储对称加密密钥,藉此提高了对称加密密钥的安全性。此外,当需要存储的对称加密密钥较多而处理器内部的特殊模块寄存器存储空间有限的情形下,藉由处理器产生的处理器密钥对对称加密密钥进行加密后再存储至外部存储器中,既保证了对称加密密钥的安全性,有实现了密钥存储空间的扩展性。关于本发明其他附加的特征与优点,本领域技术人员,在不脱离本申请的精神和范围内,当可根据本申请实施方法中所公开的数据处理装置及数据处理方法做些许的更动与润饰而得到。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈