当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于安全多方计算的区块链密钥管理系统技术方案

技术编号:23499077 阅读:152 留言:0更新日期:2020-03-13 13:37
本发明专利技术属于区块链技术领域,具体为一种基于安全多方计算的区块链密钥管理系统。本发明专利技术系统采用四层结构:数据存储层,负责备份存储密钥信息;网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信;密码服务层,采用插件化的形式为API服务层提供加密服务;密码服务层分为两个模块:集成加密模块和MPC模块;API服务层,为用户提供的上层接口;本发明专利技术为区块链密钥提供安全的使用和存储方式,降低用户使用区块链密钥的门槛和密钥泄漏、丢失的风险。

A blockchain key management system based on secure multiparty computing

【技术实现步骤摘要】
一种基于安全多方计算的区块链密钥管理系统
本专利技术属于区块链
,具体涉及区块链密钥管理系统。
技术介绍
目前对区块链密钥的使用和管理,主要有如下几种方式:(1)本地存储直接使用:用户直接将密钥存放在本地文件或者本地能访问的云服务中,在使用时直接获取密钥并输入到密码算法中;或者用户先加密密钥信息再存储下来,在需要时先解密获取得到密钥原文再进一步使用。该方法在使用时需要有完整的密钥才能够进行签名的过程,但是用户的个人设备的环境安全是无法保证,个人设备很可能因为个人的使用原因存在木马或者病毒,或者在使用过程中被攻击者通过边信道攻击监听获取到密钥的信息。该方法一旦密钥泄漏,整个区块链账户的所有权就会完全暴露给攻击者。(2)助记词和分层确定性钱包:用户在生成区块链账户时,借助于一定数量的相对好记忆的单词或者诗句来计算出私钥和公钥,比如利用11个助记词通过密钥派生方法(KeyDerivationFunction,KDF)来生成私钥,进而用该私钥对交易哈希签名。或者是使用分层确定性钱包的方法,通过私钥种子来衍生出多个子私钥,在使用时根据衍生规则生成私钥,再利用该私钥对交易签名。上述两种方法在一定程度上解决了密钥难记忆的问题,但是助记词的数量不能太少,太少容易被暴力破解而数量太多则又带来难以全部记住的问题;同样的在使用分层确定性的方法中,最关键的是密钥种子,而如何安全方便的管理好该密钥种子仍然是一个亟需解决的问题。(3)多重签名:多重数字签名的概念首先被Okamoto和Itakura等人发表并同时设计出了一个具体的算法方案,多重签名可以将一个账户的权力分散在多个密钥上,防止一个密钥丢失导致整个账户失控的情况。一个账户的资产操作交易需要多个相对独立的私钥对一个消息明文进行签名,当签名数量足够多时交易才生效。因为在区块链系统的账户体系中直接支持多重签名算法需要更改整个区块链的架构设计,所以该方法的具体实现多用于智能合约中,事先规定好签名的账号和需要的签名数量阈值。那么多重签名方法的安全性就取决于智能合约的设计和实现,而且灵活性不高,因为智能合约一旦部署之后就很难更改。多重签名方法在一定的场景下能发挥其安全性,但是较低的灵活性很难得到广泛的使用。(4)中心化托管服务:将密钥存储在相对可信的中心化机构。用户需要对消息进行解密或者签名的时候,将消息原文发送给托管服务方,服务方根据用户的需求处理结束后将结果返回给用户。这种方案用户不用自己保存密钥,即使忘记密码也可以通过托管的中心化服务找回,没有丢失密钥的风险。但是托管机构是一个中心化的服务,有可能受到传统的拒绝服务攻击而无法为用户提供服务,还可能因为服务安全措施不够完善导致服务系统被入侵,甚至可能因为社会工程的问题托管服务方内部监守自盗或者被攻击者获取到用户的密钥。完全的将密钥托付给中心化机构保管会有很大的风险。(5)基于安全多方计算的签名:姚期智院士在80年代提出了GC(Garbledcircuit)与OT(Oblivioustransfer)相结合的安全多方计算(Multi-PartyComputation)的理论框架,描述为“一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下的协同计算问题”。在无可信第三方的情况下,各方不需透露己方信息利用密码学方法得到多方数据整合在一起共同计算的结果。密钥管理中,多方分别持有私钥的份额,私钥份额只有自己持有,在计算时利用GC+OT或者同态加密的方法将各自的签名份额进行整合得到最终的完整签名。(6)基于安全多方计算的门限签名:90年代,门限密码学不断被提出,门限签名方案被认为是密钥管理的一种重要途径。2018年Lindell和Nof提出了第一个真正实用的全门限ECDSA签名协议,它具有相对快速的签名和密钥分发的特点,但是门限DSA签名的效率低下,在密钥分发和签名阶段都需要进行多轮的信息交互和零知识证明,有待进一步的研究和发展。综合以上的对密钥管理的进展描述,目前区块链密钥管理存在的三个问题:1、密钥权力不够分散:当将一个完整的密钥直接存储时,就潜在着整个完整密钥直接泄漏的风险,完整密钥直接泄漏将导致丢失账户的所有权。本地存储直接使用和中心化托管服务的方式都会遇到这个问题;2、不能刷新密钥:多重签名和目前发表的基于安全多方计算的签名方法中的密钥在生成后都无法进行便捷的刷新,这种情况下攻击者可以一个一个的攻击破解获取每一个密钥份额,最终获取到所有的份额就可以完全掌控该区块链账户的资产;3、易用性差:用户还是需要记忆很复杂的助记词或者密钥字符串,对于终端用户而言体验很差,这是阻碍区块链大规模发展的一个重要原因。
技术实现思路
本专利技术的目的在于提供一种安全性好、易用性强的基于安全多方计算的区块链密钥管理系统。本专利技术使用安全多方计算算法设计实现密钥管理方案,可以防范密钥单点泄漏导致整个账户资产信息被盗,支持密钥刷新功能攻击者需要同时通过攻击获得多个私钥份额才能成功控制区块链账户,而当某一参与方被攻击时可以及时刷新私钥份额使得之前的密钥份额失效。密钥管理方案的整个生命周期中不会出现主私钥,签名时各方只需使用自己的私钥份额进行计算,计算完成将各方结果进行整合,没有私钥恢复的过程可以提供强有力的密钥保护。进而使用集成加密技术让用户只需使用较简单的密码口令即可发送交易参与到区块链系统中,提高区块链的易用性,为区块链密钥的提供一种安全易用的使用方案。本专利技术提供的基于安全多方计算的区块链密钥管理系统,采用四层结构,用解耦合、插件化的架构设计以及使用多种通信协议进行各个参与方之间的信息传输来为用户提供密钥管理的服务,为区块链账户用户和区块链应用提供一个安全易用的密钥管理工具。所述四层结构分别是:数据存储层,网络通信层,密码服务层,API服务层,如图1所示。其中:所述数据存储层,负责备份存储密钥信息。用户在密钥生成阶段和密钥刷新阶段获得的密钥份额经过集成加密模块加密后,相应的密文信息会根据账户ID和密钥kid存储在数据存储数据库中,数据存储数据库可以是关系型数据库也可以是非关系型数据库,数据库中存放了两类不同的数据:不同安全等级的加密算法信息、加密密钥的加密算法和加密后的密文信息。当该系统被创建为一个密钥托管服务时,会有很大的用户数据量和账户、密钥信息,在数据库中创建索引,在数据量较大的情况下加快数据的查询速度。数据库的具体配置和使用方式取决于用户设计,可以在这个设计的基础上加强数据库的安全性和容灾性。数据存储层中还适配了缓存机制,使用最近最少使用算法(LeastRecentlyUsed,LRU),将使用频率较高的数据缓存在内存中,加快签名和密钥刷新的性能。如果该系统是在轻客户端上面使用的,比如在移动设备手机上,传感器设施上等不方便建设数据库的地方,系统提供了文件存储的功能,因为这些设备需要存储的信息量不会太多,可以将每个加密的信息存在文件中,需要时直接从文件上读取即可。所述网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信。为了适配不同业本文档来自技高网
...

【技术保护点】
1.一种基于安全多方计算的区块链密钥管理系统,其特征在于,采用四层结构,用解耦合、插件化的架构设计以及使用多种通信协议进行各个参与方之间的信息传输,为用户提供密钥管理的服务,为区块链账户用户和区块链应用提供安全易用的密钥管理工具;所述四层结构分别是:数据存储层,网络通信层,密码服务层,API服务层,其中:/n所述数据存储层,负责备份存储密钥信息;用户在密钥生成阶段和密钥刷新阶段获得的密钥份额经过集成加密模块加密后,相应的密文信息根据账户ID和密钥kid存储在数据存储数据库中,数据存储数据库是关系型数据库,或者是非关系型数据库,数据库中存放两类不同的数据:不同安全等级的加密算法信息、加密密钥的加密算法和加密后的密文信息;/n所述网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信;为了适配不同业务场景使用到的通信协议,系统在 TCP 协议上统一封装了RPC、TLS和HTTPS/HTTP网络协议;用户在初始化密钥管理服务时通过配置文件设置所需的协议即可;同时为了适配不同系统平台的编码格式,使用统一的数据格式进行数据的传输;每种协议都封装统一接口:/n所述密码服务层,采用插件化的形式为API服务层提供加密服务;密码服务层分为两个模块:集成加密模块和MPC模块;集成加密模块中包含所有使用到的KDF、哈希算法、对称加密算法等等,为备份密钥份额提供保障;加解密时根据用户选择的安全强度配置判断用户密码的安全强度并接受足够数量的用户身份信息,安全强度不匹配时会返回提示信息,接着选取相应的KDF算法和加密算法加密保存密钥份额信息;MPC模块是支持多方计算ECDSA的核心模块,包含密钥生成、签名和密钥刷新的算法;用户创建区块链账户需要使用分布式密钥生成算法,已有区块链账户发起交易需要使用分布式签名算法,在紧急情况下需要调用分布式密钥刷新接口对密钥份额进行更新,保护区块链账户;MPC模块的运作依赖于网络通信模块,MPC参与方之间保证网络通信正常,在规定时间内收到相关的证明信息和交互信息,从而保证MPC算法的正确执行;/n插件化的架构方便用户添加自主化的密码模块,用户只要实现了定义好的接口就能在加密密钥时使用自主实现的算法,设计成开放的框架有利于适配现有的传统行业中的密钥保护模块;/n所述API服务层,是为用户提供的上层接口,用户可直接使用;包含初始化配置、密钥生成、签名、密钥刷新和修改密码接口;用户在实例化密钥管理系统后,可以直接在业务的流程中调用上述接口。/n...

【技术特征摘要】
1.一种基于安全多方计算的区块链密钥管理系统,其特征在于,采用四层结构,用解耦合、插件化的架构设计以及使用多种通信协议进行各个参与方之间的信息传输,为用户提供密钥管理的服务,为区块链账户用户和区块链应用提供安全易用的密钥管理工具;所述四层结构分别是:数据存储层,网络通信层,密码服务层,API服务层,其中:
所述数据存储层,负责备份存储密钥信息;用户在密钥生成阶段和密钥刷新阶段获得的密钥份额经过集成加密模块加密后,相应的密文信息根据账户ID和密钥kid存储在数据存储数据库中,数据存储数据库是关系型数据库,或者是非关系型数据库,数据库中存放两类不同的数据:不同安全等级的加密算法信息、加密密钥的加密算法和加密后的密文信息;
所述网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信;为了适配不同业务场景使用到的通信协议,系统在TCP协议上统一封装了RPC、TLS和HTTPS/HTTP网络协议;用户在初始化密钥管理服务时通过配置文件设置所需的协议即可;同时为了适配不同系统平台的编码格式,使用统一的数据格式进行数据的传输;每种协议都封装统一接口:
所述密码服务层,采用插件化的形式为API服务层提供加密服务;密码服务层分为两个模块:集成加密模块和MPC模块;集成加密模块中包含所有使用到的KDF、哈希算法、对称加密算法等等,为备份密钥份额提供保障;加解密时根据用户选择的安全强度配置判断用户密码的安全强度并接受足够数量的用户身份信息,安全强度不匹配时会返回提示信息,接着选取相应的KDF算法和加密算法加密保存密钥份额信息;MPC模块是支持多方计算ECDSA的核心模块,包含密钥生成、签名和密钥刷新的算法;用户创建区块链账户需要使用分布式密钥生成算法,已有区块链账户发起交易需要使用分布式签名算法,在紧急情况下需要调用分布式密钥刷新接口对密钥份额进行更新,保护区块链账户;MPC模块的运作依赖于网络通信模块...

【专利技术属性】
技术研发人员:阚海斌张如意刘百祥李鸣吴小川
申请(专利权)人:复旦大学
类型:发明
国别省市:上海;31

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

1