一种基于Intel SGX机制的身份或属性加密计算方法和系统技术方案

技术编号:21200564 阅读:95 留言:0更新日期:2019-05-25 01:26
本发明专利技术公开了一种基于Intel SGX机制的身份或属性加密计算方法和系统。本方法为:1)将Public enclave部署在消息发送者终端、Private enclave部署在消息接收者终端,分别基于Intel SGX机制提供隔离执行的应用程序运行环境;2)Private enclave首次启动时向PKG请求私钥;Public enclave首次启动时向PKG请求系统参数和主密钥,生成用户的公钥;3)Public enclave根据输入的ID或属性推导出对应公钥后用公钥对消息加密;消息接收者终端的Private enclave的解密接口用私钥对消息解密。本发明专利技术安全、高效地实现了公钥密码计算。

A Computing Method and System of Identity or Attribute Encryption Based on Intel SGX Mechanism

The invention discloses an identity or attribute encryption calculation method and system based on Intel SGX mechanism. The method is as follows: 1) Deploy public enclave on message sender terminal and Private enclave on message receiver terminal, provide isolated execution environment of application based on Intel SGX mechanism respectively; 2) Request private key to PKG when Private enclave is first started; Request system parameters and master key to PKG when Public enclave is first started, and generate user's public key; Enlave deduces the corresponding public key according to the input ID or attributes and encrypts the message with the public key; Private enclave's decryption interface of the message receiver terminal decrypts the message with the private key. The invention realizes the calculation of public key cryptography safely and efficiently.

【技术实现步骤摘要】
一种基于IntelSGX机制的身份或属性加密计算方法和系统
本专利技术属于计算机技术、信息安全
,具体涉及一种基于IntelSGX机制的身份或属性加密计算方法和系统。
技术介绍
基于身份加密的公钥密码系统允许用户使用任意的身份标识,例如用户名或者邮箱地址,来扩展得到用户的公钥。基于属性加密被认为是模糊的基于身份加密。基于属性加密的公钥密码系统中,用户被赋予一系列属性集合,仅当属性集合符合访问控制的要求时,密文数据能够被解密,其公钥与其属性相关。这样,基于身份或属性加密的公钥密码系统极大地减轻了传统公钥密码系统分发公钥的工作。但是,它们仅改进了公钥的生成方式和分发流程,密码计算仍然采用基于数学难解问题的公钥密码算法,例如大整数因式分解,离散对数问题和椭圆曲线上离散对数问题等。因此,由于难解数学问题的计算复杂性,现有的基于身份或属性加密的公钥密码系统仍是计算密集的,存在计算耗时,性能开销大的不足。英特尔软件防护扩展(SGX)是一项基于处理器的可信计算技术,提供隔离执行应用程序运行环境,称为enclave。Enclave完成初始化之后,处理器计算enclave代码的哈希值,称为enclave的度量,来标识和区分enclave。SGX对enclave提供如下安全机制:(1)隔离,SGX提供的隔离可防止其他enclave,其他进程和特权代码(如OS和虚拟机管理程序)在运行时读取或修改enclave的内存。(2)密封,SGX提供了一种称为密封的安全机制,允许每个enclave使用与处理器固件信息和enclave度量相关联的密钥对持久存储的数据进行加密和认证。(3)认证,支持SGX的处理器配备了经过认证的加密密钥,可以发出可远程验证的断言声明。断言声明通常包括enclave度量,enclave签发者的指纹,以及用户自定义数据。经过验证的断言声明表明enclave按预期安全地在支持SGX的平台上运行。
技术实现思路
针对现有基于身份或属性加密的公钥密码系统性能上的不足,本专利技术提出一种基于IntelSGX机制的身份或属性加密计算方法和系统,安全、高效地实现了基于身份或属性加密的公钥密码计算。本专利技术基于IntelSGX机制的身份或属性加密的公钥密码系统,包含可信组件私钥生成器(PrivateKeyGenerator,PKG)和两类enclave:Publicenclave和Privateenclave,分别部署在消息发送者和接收者终端。其中,Publicenclave提供加密计算接口;Privateenclave提供解密计算接口,如图1所示。本专利技术的技术方案为:一种基于IntelSGX机制的身份或属性加密计算方法,其步骤包括:1)生成相互独立的Publicenclave和Privateenclave;将Publicenclave部署在消息发送者终端、Privateenclave部署在消息接收者终端;其中,Publicenclave和Privateenclave分别为基于IntelSGX机制提供隔离执行的应用程序运行环境;可信组件PKG生成并维护系统参数、主密钥和用户私钥;2)Privateenclave首次启动时,执行SGX远程认证向可信组件PKG请求私钥;Publicenclave首次启动时,执行SGX远程认证向可信组件PKG请求系统参数和主密钥;3)Publicenclave根据主密钥和系统参数生成用户的公钥;4)消息发送者向Publicenclave的加密接口输入消息接收者ID或属性,Publicenclave根据接收者ID或属性推导出对应公钥,然后使用该公钥对消息使用选定的对称密码算法加密,输出密文;所述消息接收者终端在Privateenclave的解密接口用私钥对消息使用选定的对称密码算法解密,恢复消息明文。进一步的,所述系统参数包括安全参数、系统所选择的对称密码算法及其加密模式,以及私钥推导函数(KeyDerivationFunction,KDF);其中,系统参数向用户公开。进一步的,所述私钥推导函数,其输出密钥是由用户ID或其拥有的属性和主密钥推导的单向函数。进一步的,所述单向函数是输出密钥的长度固定为安全参数的散列函数。进一步的,PKG为用户生成私钥的方法为:PKG接受用户的私钥请求,在成功认证用户后(采用已有的认证方案),根据用户ID或属性和自身持有的主密钥,通过KDF,计算生成长度为安全参数的用户私钥。当用户需进行解密计算时,该用户作为消息接收者,则消息接收者终端的Privateenclave向PKG请求对应的用户私钥。进一步的,Privateenclave向可信组件PKG请求私钥的方法为:Privateenclave首先生成一个临时密钥对(sktmp,pktmp),将临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向PKG发送私钥请求,该私钥请求包括该SGX断言证明Q;当PKG收到该私钥请求后,调用enclave认证API进行验证,若验证通过,则使用pktmp将私钥加密发送给Privateenclave,Privateenclave使用临时私钥sktmp解密得到私钥。进一步的,消息发送者采用类似PKG生成私钥的方法生成消息接收者的公钥,方法为:消息发送者向Publicenclave输入用户ID或属性,Publicenclave根据用户ID或属性和主密钥,通过KDF,计算生成长度为安全参数的用户公钥。消息发送者终端的Publicenclave需向PKG请求计算公钥需要的主密钥和系统参数。进一步的,Publicenclave向可信组件PKG请求主密钥和系统参数的方法为:Publicenclave首先生成一个临时密钥对(sktmp,pktmp),将临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向PKG发送公钥参数请求,该公钥参数请求包括该SGX断言证明Q;当PKG收到该公钥参数请求后,调用enclave认证API进行验证,若验证通过,则使用pktmp将主密钥和系统参数加密发送给Publicenclave,Publicenclave使用临时私钥sktmp解密得到主密钥和系统参数。进一步的,该SGX远程断言证明Q还包含Publicenclave的度量、签发者指纹。进一步的,Privateenclave接收到私钥之后,调用SGX密封API加密保存私钥到本地外部存储介质;Publicenclave接收到主密钥之后,调用SGX密封API加密保存主密钥到本地外部存储介质。Privateenclave下次启动时,查询本地存储是否有自身enclave标志的密封的数据,如果有,调用SGX解封API解密恢复私钥,否则,重新向PKG执行远程认证获取私钥;Publicenclave下次启动时,查询本地存储是否有自身enclave标志密封的数据,如果有,调用SGX解封API解密恢复主密钥,否则,重新向PKG执行远程认证获取主密钥。进一步的,若消息需发送给拥有多个指定属性的消息接收者,消息发送者向Publicenclave的加密接口输入所有指定属性,Publicenclave根据每个属性推导出对应的公钥,并且用每个公钥对消息加密,一个属性对应公钥加密的本文档来自技高网
...

【技术保护点】
1.一种基于Intel SGX机制的身份或属性加密计算方法,其步骤包括:1)生成相互独立的Public enclave和Private enclave;将Public enclave部署在消息发送者终端、Private enclave部署在消息接收者终端;其中,Public enclave和Private enclave分别为基于Intel SGX机制提供隔离执行的应用程序运行环境;可信组件PKG生成并维护系统参数、主密钥和用户私钥;2)Private enclave首次启动时,执行SGX远程认证向可信组件PKG请求私钥;Public enclave首次启动时,执行SGX远程认证向可信组件PKG请求系统参数和主密钥;3)Public enclave根据系统参数和主密钥生成用户的公钥;4)消息发送者向Public enclave的加密接口输入消息接收者ID或属性,Public enclave根据接收者ID或属性推导出对应公钥,然后使用该公钥对消息使用选定的对称密码算法加密,输出密文;所述消息接收者终端在Private enclave的解密接口用私钥对消息使用选定的对称密码算法解密,恢复消息明文。...

【技术特征摘要】
2018.10.24 CN 201811244605X1.一种基于IntelSGX机制的身份或属性加密计算方法,其步骤包括:1)生成相互独立的Publicenclave和Privateenclave;将Publicenclave部署在消息发送者终端、Privateenclave部署在消息接收者终端;其中,Publicenclave和Privateenclave分别为基于IntelSGX机制提供隔离执行的应用程序运行环境;可信组件PKG生成并维护系统参数、主密钥和用户私钥;2)Privateenclave首次启动时,执行SGX远程认证向可信组件PKG请求私钥;Publicenclave首次启动时,执行SGX远程认证向可信组件PKG请求系统参数和主密钥;3)Publicenclave根据系统参数和主密钥生成用户的公钥;4)消息发送者向Publicenclave的加密接口输入消息接收者ID或属性,Publicenclave根据接收者ID或属性推导出对应公钥,然后使用该公钥对消息使用选定的对称密码算法加密,输出密文;所述消息接收者终端在Privateenclave的解密接口用私钥对消息使用选定的对称密码算法解密,恢复消息明文。2.如权利要求1所述的方法,其特征在于,所述系统参数包括安全参数、系统所选择的对称密码算法及其加密模式,以及私钥推导函数;其中,系统参数向用户公开。3.如权利要求2所述的方法,其特征在于,所述私钥推导函数,其输出密钥是由用户ID或其拥有的属性和主密钥推导的单向函数。4.如权利要求3所述的方法,其特征在于,所述单向函数是输出密钥的长度固定为安全参数的散列函数。5.如权利要求1所述的方法,其特征在于,PKG为用户生成私钥的方法为:PKG接受用户的私钥请求,在成功认证用户后,根据用户ID或属性和自身持有的主密钥,通过KDF,计算生成长度为安全参数的用户私钥;当用户需进行解密计算时,该用户作为消息接收者,则消息接收者终端的Privateenclave向PKG请求对应的用户私钥。6.如权利要求5所述的方法,其特征在于,Privateenclave向可信组件PKG请求私钥的方法为:Privateenclave首先生成一个临时密钥对(sktmp,pktmp),将临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向PKG发送私钥请求,该私钥请求包括该SGX断言证明Q;当PKG收到该私钥请求后,调用enclave认证API进行验证,若验证通过,则使用pktmp将私钥加密发送给Privateenclave,Privateenclave使用临时私钥sktmp解密得到私钥。7.如权利要求1所述的方法,其特征在于,消息发送者终端生成消息接收者的公钥的方法为:消息发送者终端的Publicenclave向PKG请求计算公钥需要的主密钥和系统参数;消息发送者向Publicenclave输入用户ID或属性,Publicenclave根据用户ID或属性和主密钥,通过KDF,计算生成长度为安全参数的用户公钥。8.如权利要求7所述的方法,其特征在于,Publicenclave向可信组件PKG请求系统参数和主密钥的方法为:Publicenclave首先生成一个临时密钥对(sktmp,pktmp),将临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向PKG发送公钥参数请求,该公钥参数请求包括该SGX断言证明Q;当PKG收到该公钥参数请求后,调用enclave认证API进行验证,若验证通过,则使用pktmp将系统参数和主密钥加密发送给Publicenclave,Publicenclave使用临时私钥sktmp解密得到系统参数和主密钥。9.如权利要求4或8所述的方法,其特征在于,该SGX远程断言证明Q还包含Publicenclave的度量、签发者指纹。10.如权利要求1所述的方法,其特征在于,Privateenclave接收到私钥之后,调用SGX密封API加密保存私钥到本地外部存储介质;Publicenclav...

【专利技术属性】
技术研发人员:林璟锵黎火荣蔡权伟欧阳文宜荆继武王伟
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1