一种基于安全多方计算的密钥安全管理方法技术

技术编号:23241336 阅读:17 留言:0更新日期:2020-02-04 19:52
本发明专利技术涉及信息安全领域,其公开了一种基于安全多方计算的密钥管理方法,解决传统密钥管理方案在易用性和安全性方面不能兼顾的问题。本发明专利技术中的主密钥由多方计算系统得到,主密钥控制加密算法需要用到的密钥明文、密文状态转换。用户无加密业务时,主密钥处于不可知状态,业务密钥处于密文状态;有加密业务时通过多方计算系统得到主密钥计算因子,将密钥因子带入密钥生成算法得到主密钥。

A key security management method based on secure multiparty computing

【技术实现步骤摘要】
一种基于安全多方计算的密钥安全管理方法
本专利技术涉及信息安全领域,尤其涉及一种基于安全多方计算的密钥管理方法。
技术介绍
密钥破解技术常用有效手段为侧信道攻击和代码反编译:侧信道攻击是针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法,有效性远高于密码分析的数学方法,比较适合功能单一的单子设备,比如上述的可信硬件、TEE。代码反编译是通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码,如果密钥管理方式为软件管理,组成密钥的参数和处理过程都在程序内部实现,则反编译大概率能从目标程序萃取出密钥。传统的密钥管理方案都是将密钥存储在用户本地,对密钥的保护措施包括:(1)将密钥存储在可信硬件上;(2)软件管理密钥,通过代码混淆、密钥碎片化存储等技术保护密钥;(3)存储在可信执行环境(TEE),即在INTE芯片的SGX或ARM芯片的TrustZone上部署一套可信执行环境运行加密算法和存储密钥,加密与业务隔离。上述密钥管理技术存在以下缺陷:(1)可信硬件安全性高,但缺乏可扩展性、灵活性、不能自动部署、不抗侧信道攻击、升级困难;(2)软件安全管理密钥易于扩展、升级方便、扩展性好,但易被反编译萃取出密钥,安全程度低;(3)可信执行环境与业务环境并行运行在本地,两者间会传输数据,易受软件侧信道攻击,且受硬件限制,只有指定型号芯片才能实施。因此,传统密钥管理方案在易用性和安全性方面不能兼顾。
技术实现思路
本专利技术所要解决的技术问题是:提出一种基于安全多方计算的密钥管理方法,解决传统密钥管理方案在易用性和安全性方面不能兼顾的问题。本专利技术解决上述技术问题采用的技术方案是:一种基于安全多方计算的密钥管理方法,包括以下步骤:步骤一、部署由多台安全多方计算节点组成的安全多方计算系统;步骤二、密钥管理方生成一批计算函数,将这些函数编译成机器语言,向多方计算系统中的任一节点提交算法增加请求;步骤三、收到算法增加请求的节点为新增的算法分配算法编号并返回给密钥管理方,同时分发新增的算法,各节点记录分发信息;步骤四、密钥管理方存储多方计算系统返回的算法编号,随机生成并存储一组算法编号-参数序列;步骤五、密钥管理方将生成的算法编号-参数序列作为计算任务,随机生成并存储一组非对称算法公私钥对,向多方计算系统的任一节点发起计算请求;步骤六、计算请求响应节点对计算任务分解成多个单独计算任务,并对每个单独计算任务匹配合适的任务执行节点和备份执行节点,然后将各个单独计算任务分发至对应任务执行节点;步骤七、任务执行节点收到任务后调用对应算法执行计算任务,将计算结果采用密钥管理方的公钥加密后反馈至计算请求响应节点;步骤八、计算请求响应节点搜集各执行节点计算结果,搜集完成后封装计算结果反馈至密钥管理方;步骤九、密钥管理方解密多方计算系统返回的计算结果作为密钥因子,基于密钥因子通过密钥生成算法生成密钥,将该密钥作为主密钥对业务系统的共享初始密钥进行加密,得到业务系统对应的密文共享初始密钥并存储;步骤十、密钥管理方根据业务需求将加密算法、密钥多方计算生成流程、密文共享初始密钥、多方计算节点信息、密钥管理接口、算法编号-参数列表以及数据加解密接口封装成SDK包提交给业务系统;步骤十一、业务系统将SDK包嵌入应用程序,在进行具体业务时,调用SDK包加解密接口对业务数据进行加、解密;步骤十二、密钥更新时,业务系统根据密钥管理方提供的密钥更新信息,调用SDK包密钥管理接口,根据情况更改已存储的密钥信息。作为进一步优化,步骤一中,所述多台安全多方计算节点可同时部署于云服务器、外网服务器和内网服务器。作为进一步优化,步骤一中,各个安全多方计算节点架构一致,均包括:计算请求处理模块、计算任务处理模块和算法更改处理模块;所述计算请求处理模块用于对用户发起的计算请求进行校验、分解用户提交的计算任务、管理系统多方计算节点信息、计算任务匹配、计算任务分发、计算结果搜集、计算结果校验和将计算结果打包返回至用户;所述计算任务处理模块用于对收到的计算任务进行校验、对计算任务进行解析、根据计算任务中算法编号选择要调用的算法、将任务中参数带入算法运算得到计算结果、利用用户公钥将计算结果加密、将本节点身份信息、任务内容、任务编号和消息校验数据封装后返回给任务发起节点;所述算法更改处理模块用于对算法更改请求方进行身份认证、对请求方身份广播、对请求方权限投票以及对算法更改进行决策、执行。作为进一步优化,步骤五中,所述计算请求的请求内容包括生成的公钥、算法编号-参数序列、用户身份信息和信息完整性校验参数。作为进一步优化,步骤八中,若计算请求响应节点在规定时间未收到某任务执行节点反馈的任务计算结果,则启用对应备份执行节点重新执行该计算任务。作为进一步优化,各个安全多方计算节点中均存储有具备算法更改权限的用户列表,某个节点收到算法更改请求后作为算法更改请求响应节点,将算法更改请求广播至所有节点,各个节点根据所述用户列表断该用户是否具备算法更改权限,并将对算法更改权限的判断结果返回给算法更改请求响应节点,算法更改请求响应节点收到超过总节点数2/3以上肯定结果则认可此次算法更改请求,通知对应节点执行算法更改操作:当算法更改请求为增加算法时,用户响应节点将要增加的算法分配符合规则的编号,将算法编号、算法内容随机分发给两个以上节点,并将分发情况进行广播;当算法更改请求为删除算法时,则存储该算法的节点删除对应算法;当算法更改请求为更换算法时,则存储该算法的节点对算法执行更换操作。作为进一步优化,步骤一中,所述安全多方计算系统中的各个计算节点提供用于实现交互的网络接口,所述网络接口包括:计算请求接口:用户通过访问该接口提交计算任务和校验信息;节点收到请求后校验请求信息,分解计算任务,任务分配完成后返回给用户计算请求编号和计算任务执行中标识,若不能分配任务则返回请求失败标识;计算任务状态查询接口:用户通过收到的计算请求编号查询计算任务执行状态,任务执行状态包括执行中、执行失败、执行完成,若处于执行完成状态,则向用户返回计算结果;计算任务分配请求接口:响应用户请求的节点调用其它节点的该接口,用于分配单个计算任务;计算结果返回接口:执行计算任务的节点调用计算请求响应节点的该接口,用于返回计算结果,计算结果内容包括计算任务编号、密文结果、校验信息;算法文件增加接口:密钥管理方或安全多方计算系统管理方调用此接口,用于向多方计算系统中的节点增加算法文件;算法文件删除接口:密钥管理方或安全多方计算系统管理方调用此接口,用于删除多方计算系统中的节点存储的已有算法文件;用户权限鉴定请求发起接口:收本文档来自技高网
...

【技术保护点】
1.一种基于安全多方计算的密钥管理方法,其特征在于,包括以下步骤:/n步骤一、部署由多台安全多方计算节点组成的安全多方计算系统;/n步骤二、密钥管理方生成一批计算函数,将这些函数编译成机器语言,向多方计算系统中的任一节点提交算法增加请求;/n步骤三、收到算法增加请求的节点为新增的算法分配算法编号并返回给密钥管理方,同时分发新增的算法,各节点记录分发信息;/n步骤四、密钥管理方存储多方计算系统返回的算法编号,随机生成并存储一组算法编号-参数序列;/n步骤五、密钥管理方将生成的算法编号-参数序列作为计算任务,随机生成并存储一组非对称算法公私钥对,向多方计算系统的任一节点发起计算请求;/n步骤六、计算请求响应节点对计算任务分解成多个单独计算任务,并对每个单独计算任务匹配合适的任务执行节点和备份执行节点,然后将各个单独计算任务分发至对应任务执行节点;/n步骤七、任务执行节点收到任务后调用对应算法执行计算任务,将计算结果采用密钥管理方的公钥加密后反馈至计算请求响应节点;/n步骤八、计算请求响应节点搜集各执行节点计算结果,搜集完成后封装计算结果反馈至密钥管理方;/n步骤九、密钥管理方解密多方计算系统返回的计算结果作为密钥因子,基于密钥因子通过密钥生成算法生成密钥,将该密钥作为主密钥对业务系统的共享初始密钥进行加密,得到业务系统对应的密文共享初始密钥并存储;/n步骤十、密钥管理方根据业务需求将加密算法、密钥多方计算生成流程、密文共享初始密钥、多方计算节点信息、密钥管理接口、算法编号-参数列表以及数据加解密接口封装成SDK包提交给业务系统;/n步骤十一、业务系统将SDK包嵌入应用程序,在进行具体业务时,调用SDK包加解密接口对业务数据进行加、解密;/n步骤十二、密钥更新时,业务系统根据密钥管理方提供的密钥更新信息,调用SDK包密钥管理接口,根据情况更改已存储的密钥信息。/n...

【技术特征摘要】
1.一种基于安全多方计算的密钥管理方法,其特征在于,包括以下步骤:
步骤一、部署由多台安全多方计算节点组成的安全多方计算系统;
步骤二、密钥管理方生成一批计算函数,将这些函数编译成机器语言,向多方计算系统中的任一节点提交算法增加请求;
步骤三、收到算法增加请求的节点为新增的算法分配算法编号并返回给密钥管理方,同时分发新增的算法,各节点记录分发信息;
步骤四、密钥管理方存储多方计算系统返回的算法编号,随机生成并存储一组算法编号-参数序列;
步骤五、密钥管理方将生成的算法编号-参数序列作为计算任务,随机生成并存储一组非对称算法公私钥对,向多方计算系统的任一节点发起计算请求;
步骤六、计算请求响应节点对计算任务分解成多个单独计算任务,并对每个单独计算任务匹配合适的任务执行节点和备份执行节点,然后将各个单独计算任务分发至对应任务执行节点;
步骤七、任务执行节点收到任务后调用对应算法执行计算任务,将计算结果采用密钥管理方的公钥加密后反馈至计算请求响应节点;
步骤八、计算请求响应节点搜集各执行节点计算结果,搜集完成后封装计算结果反馈至密钥管理方;
步骤九、密钥管理方解密多方计算系统返回的计算结果作为密钥因子,基于密钥因子通过密钥生成算法生成密钥,将该密钥作为主密钥对业务系统的共享初始密钥进行加密,得到业务系统对应的密文共享初始密钥并存储;
步骤十、密钥管理方根据业务需求将加密算法、密钥多方计算生成流程、密文共享初始密钥、多方计算节点信息、密钥管理接口、算法编号-参数列表以及数据加解密接口封装成SDK包提交给业务系统;
步骤十一、业务系统将SDK包嵌入应用程序,在进行具体业务时,调用SDK包加解密接口对业务数据进行加、解密;
步骤十二、密钥更新时,业务系统根据密钥管理方提供的密钥更新信息,调用SDK包密钥管理接口,根据情况更改已存储的密钥信息。


2.如权利要求1所述的一种基于安全多方计算的密钥管理方法,其特征在于,
步骤一中,多台安全多方计算节点可同时部署于云服务器、外网服务器和内网服务器。


3.如权利要求1所述的一种基于安全多方计算的密钥管理方法,其特征在于,
步骤一中,各个安全多方计算节点架构一致,均包括:计算请求处理模块、计算任务处理模块和算法更改处理模块;
所述计算请求处理模块用于对用户发起的计算请求进行校验、分解用户提交的计算任务、管理系统多方计算节点信息、计算任务匹配、计算任务分发、计算结果搜集、计算结果校验和将计算结果打包返回至用户;
所述计算任务处理模块用于对收到的计算任务进行校验、对计算任务进行解析、根据计算任务中算法编号选择要调用的算法、将任务中参数带入算法运算得到计算结果、利用用户公钥将计算结果加密、将本节点身份信息、任务内容、任务编号和消息校验数据封装后返回给任务发起节点;
所述算法更改处理模块用于对算法更改请求方进行身份认证、对请求方身份广播、对请求方权限...

【专利技术属性】
技术研发人员:肖龙辉常清雪何斌
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

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

1