CN110880972A - 一种基于安全多方计算的区块链密钥管理*** - Google Patents

一种基于安全多方计算的区块链密钥管理*** Download PDF

Info

Publication number
CN110880972A
CN110880972A CN201911169093.XA CN201911169093A CN110880972A CN 110880972 A CN110880972 A CN 110880972A CN 201911169093 A CN201911169093 A CN 201911169093A CN 110880972 A CN110880972 A CN 110880972A
Authority
CN
China
Prior art keywords
key
information
layer
user
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911169093.XA
Other languages
English (en)
Inventor
阚海斌
张如意
刘百祥
李鸣
吴小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201911169093.XA priority Critical patent/CN110880972A/zh
Publication of CN110880972A publication Critical patent/CN110880972A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种基于安全多方计算的区块链密钥管理***
技术领域
本发明属于区块链技术领域,具体涉及区块链密钥管理***。
背景技术
目前对区块链密钥的使用和管理,主要有如下几种方式:
(1)本地存储直接使用:用户直接将密钥存放在本地文件或者本地能访问的云服务中,在使用时直接获取密钥并输入到密码算法中;或者用户先加密密钥信息再存储下来,在需要时先解密获取得到密钥原文再进一步使用。该方法在使用时需要有完整的密钥才能够进行签名的过程,但是用户的个人设备的环境安全是无法保证,个人设备很可能因为个人的使用原因存在木马或者病毒,或者在使用过程中被攻击者通过边信道攻击监听获取到密钥的信息。该方法一旦密钥泄漏,整个区块链账户的所有权就会完全暴露给攻击者。
(2)助记词和分层确定性钱包:用户在生成区块链账户时,借助于一定数量的相对好记忆的单词或者诗句来计算出私钥和公钥,比如利用11个助记词通过密钥派生方法(KeyDerivation Function,KDF)来生成私钥,进而用该私钥对交易哈希签名。或者是使用分层确定性钱包的方法,通过私钥种子来衍生出多个子私钥,在使用时根据衍生规则生成私钥,再利用该私钥对交易签名。上述两种方法在一定程度上解决了密钥难记忆的问题,但是助记词的数量不能太少,太少容易被暴力破解而数量太多则又带来难以全部记住的问题;同样的在使用分层确定性的方法中,最关键的是密钥种子,而如何安全方便的管理好该密钥种子仍然是一个亟需解决的问题。
(3)多重签名:多重数字签名的概念首先被Okamoto和Itakura等人发表并同时设计出了一个具体的算法方案,多重签名可以将一个账户的权力分散在多个密钥上,防止一个密钥丢失导致整个账户失控的情况。一个账户的资产操作交易需要多个相对独立的私钥对一个消息明文进行签名,当签名数量足够多时交易才生效。因为在区块链***的账户体系中直接支持多重签名算法需要更改整个区块链的架构设计,所以该方法的具体实现多用于智能合约中,事先规定好签名的账号和需要的签名数量阈值。那么多重签名方法的安全性就取决于智能合约的设计和实现,而且灵活性不高,因为智能合约一旦部署之后就很难更改。多重签名方法在一定的场景下能发挥其安全性,但是较低的灵活性很难得到广泛的使用。
(4)中心化托管服务:将密钥存储在相对可信的中心化机构。用户需要对消息进行解密或者签名的时候,将消息原文发送给托管服务方,服务方根据用户的需求处理结束后将结果返回给用户。这种方案用户不用自己保存密钥,即使忘记密码也可以通过托管的中心化服务找回,没有丢失密钥的风险。但是托管机构是一个中心化的服务,有可能受到传统的拒绝服务攻击而无法为用户提供服务,还可能因为服务安全措施不够完善导致服务***被入侵,甚至可能因为社会工程的问题托管服务方内部监守自盗或者被攻击者获取到用户的密钥。完全的将密钥托付给中心化机构保管会有很大的风险。
(5)基于安全多方计算的签名:姚期智院士在80年代提出了GC(Garbled circuit)与OT(Oblivious transfer)相结合的安全多方计算(Multi-Party Computation)的理论框架,描述为“一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下的协同计算问题”。在无可信第三方的情况下,各方不需透露己方信息利用密码学方法得到多方数据整合在一起共同计算的结果。密钥管理中,多方分别持有私钥的份额,私钥份额只有自己持有,在计算时利用GC+OT或者同态加密的方法将各自的签名份额进行整合得到最终的完整签名。
(6)基于安全多方计算的门限签名:90年代,门限密码学不断被提出,门限签名方案被认为是密钥管理的一种重要途径。2018年Lindell和Nof提出了第一个真正实用的全门限ECDSA签名协议,它具有相对快速的签名和密钥分发的特点,但是门限DSA签名的效率低下,在密钥分发和签名阶段都需要进行多轮的信息交互和零知识证明,有待进一步的研究和发展。
综合以上的对密钥管理的进展描述,目前区块链密钥管理存在的三个问题:
1、密钥权力不够分散:当将一个完整的密钥直接存储时,就潜在着整个完整密钥直接泄漏的风险,完整密钥直接泄漏将导致丢失账户的所有权。本地存储直接使用和中心化托管服务的方式都会遇到这个问题;
2、不能刷新密钥:多重签名和目前发表的基于安全多方计算的签名方法中的密钥在生成后都无法进行便捷的刷新,这种情况下攻击者可以一个一个的攻击破解获取每一个密钥份额,最终获取到所有的份额就可以完全掌控该区块链账户的资产;
3、易用性差:用户还是需要记忆很复杂的助记词或者密钥字符串,对于终端用户而言体验很差,这是阻碍区块链大规模发展的一个重要原因。
发明内容
本发明的目的在于提供一种安全性好、易用性强的基于安全多方计算的区块链密钥管理***。
本发明使用安全多方计算算法设计实现密钥管理方案,可以防范密钥单点泄漏导致整个账户资产信息被盗,支持密钥刷新功能攻击者需要同时通过攻击获得多个私钥份额才能成功控制区块链账户,而当某一参与方被攻击时可以及时刷新私钥份额使得之前的密钥份额失效。密钥管理方案的整个生命周期中不会出现主私钥,签名时各方只需使用自己的私钥份额进行计算,计算完成将各方结果进行整合,没有私钥恢复的过程可以提供强有力的密钥保护。进而使用集成加密技术让用户只需使用较简单的密码口令即可发送交易参与到区块链***中,提高区块链的易用性,为区块链密钥的提供一种安全易用的使用方案。
本发明提供的基于安全多方计算的区块链密钥管理***,采用四层结构,用解耦合、插件化的架构设计以及使用多种通信协议进行各个参与方之间的信息传输来为用户提供密钥管理的服务,为区块链账户用户和区块链应用提供一个安全易用的密钥管理工具。所述四层结构分别是:数据存储层,网络通信层,密码服务层,API服务层,如图1所示。其中:
所述数据存储层,负责备份存储密钥信息。用户在密钥生成阶段和密钥刷新阶段获得的密钥份额经过集成加密模块加密后,相应的密文信息会根据账户ID和密钥kid存储在数据存储数据库中,数据存储数据库可以是关系型数据库也可以是非关系型数据库,数据库中存放了两类不同的数据:不同安全等级的加密算法信息、加密密钥的加密算法和加密后的密文信息。
当该***被创建为一个密钥托管服务时,会有很大的用户数据量和账户、密钥信息,在数据库中创建索引,在数据量较大的情况下加快数据的查询速度。数据库的具体配置和使用方式取决于用户设计,可以在这个设计的基础上加强数据库的安全性和容灾性。
数据存储层中还适配了缓存机制,使用最近最少使用算法(Least RecentlyUsed,LRU),将使用频率较高的数据缓存在内存中,加快签名和密钥刷新的性能。如果该***是在轻客户端上面使用的,比如在移动设备手机上,传感器设施上等不方便建设数据库的地方,***提供了文件存储的功能,因为这些设备需要存储的信息量不会太多,可以将每个加密的信息存在文件中,需要时直接从文件上读取即可。
所述网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信。为了适配不同业务场景使用到的通信协议,***在TCP协议上统一封装了RPC、TLS和HTTPS/HTTP等网络协议。用户在初始化密钥管理服务时通过配置文件设置所需的协议即可。同时为了适配不同***平台的编码格式,使用统一的数据格式进行数据的传输。每种协议都封装如图2的统一接口:
因为网络传输原因,可能丢包或者网络连接断开。为了提高安全多方计算的成功率,在网络通信层添加了高可用的措施,当网络连接断开时自动重连,当长时间网络连接上没有收到消息时重新发送请求,在重新请求三次后仍然失败则通知上层用户,需要由用户排查其他参与方的服务状态。
所述密码服务层,采用插件化的形式为API服务层提供加密服务。密码服务层分为两个模块:集成加密模块和MPC模块。集成加密模块中包含了所有会使用到的KDF、哈希算法、对称加密算法等等为备份密钥份额提供保障。加解密时根据用户选择的安全强度配置判断用户密码的安全强度并接受足够数量的用户身份信息,安全强度不匹配时会返回提示信息,接着选取相应的KDF算法和加密算法加密保存密钥份额信息;MPC模块是支持多方计算ECDSA的核心模块,包含密钥生成、签名和密钥刷新的算法,该模块是密钥管理***的核心算法部分。用户创建区块链账户需要使用分布式密钥生成算法,已有区块链账户发起交易需要使用分布式签名算法,在紧急情况下需要调用分布式密钥刷新接口对密钥份额进行更新,保护区块链账户。MPC模块的运作依赖于网络通信模块,MPC参与方之间需要保证网络通信正常,才能在规定时间内收到相关的证明信息和交互信息,从而保证MPC算法的正确执行。
插件化的架构方便用户添加自主化的密码模块,用户只要实现了定义好的接口就能在加密密钥时使用自主实现的算法,比如用户可以使用TEE环境存储密钥信息,让用户有更灵活的使用方式。设计成一个开放的框架有利于适配现有的传统行业中的密钥保护模块,比如HSM(HardwareSecurityModules)和各种硬件设施。
所述API服务层,是为用户提供的上层接口,用户可直接使用。包含初始化配置、密钥生成、签名、密钥刷新和修改密码等接口。用户在实例化密钥管理***后,可以直接在业务的流程中调用上述接口。如图3所示。
在具体的区块链业务应用时,本发明的密钥管理***可作为应用***的一部分,如图4所示,应用***直接与密钥管理***交互,应用***将需要签名或者解密的信息发送给密钥管理***,密钥管理***操作完成后返回信息。用户基于本发明的方案可以安全又方便的参与到区块链***中,降低区块链的使用门槛。
本发明使用安全多方计算的密码学算法,设计实现了安全易用的密钥管理***。本发明针对现存的密钥管理方法存在的问题,为区块链密钥提供安全的使用方式和存储方式,降低用户使用区块链密钥的门槛和密钥泄漏、丢失的风险。
附图说明
图1密钥管理***架构图。
图2网络通信接口说明。
图3 API接口说明。
图4区块链应用架构图。
具体实施方式
作为一个实施例,本发明采用Golang语言设计一个基于安全多方计算的密钥管理***(Blockchain-KMS)。该密钥管理***可以以SDK或者Library的方式嵌入到应用代码中,是一个基础通用的密钥管理库,也可以作为一个独立的应用为用户提供密钥使用和存储管理,比如建立托管服务并为用户提供移动端的APP使用。
数据存储层中,使用的数据存储数据库是关系型数据库MySQL。表1描述了数据库中存放的数据详细信息。
表ID 说明 备注信息
CryptoInfo 加密算法信息表 存储相应安全等级的加密算法信息
KeyInfo 密钥备份表 存放所有加密后的密钥信息
表1数据库表。
CryptoInfo数据表负责存储相应安全等级的加密算法信息。表2详细说明了数据表中的每个字段。
元素名称 字段名称 类型及长度 必填 主键 相关说明
安全强度 Level INT 安全强度等级
加密算法 Enc char(64) 要使用的加密算法
加密模式 Mode char(32) 加密时使用的加密模式
口令复杂度 Complex INT 密码口令的复杂度要水
身份信息数量 Number INT 加解密时所需的用户身份信息数量
表2 CryptoInfo表设计。
KeyInfo负责存放所有加密后的密钥信息。表3详细说明了数据表中的每个字段。
元素名称 字段名称 类型及长度 必填 主键 相关说明
ID ID char(64) 加密信息的ID,由账号和相应kid组成
安全强度 Level INT 信息加密时使用的安全强度
数据 Data char(512) 密文数据
表3 KeyInfo表设计。
网络通信层中,为了适配不同***平台的编码格式,统一使用Google的高效的压缩编码格式Protocol Buffers进行数据的传输。并在TCP链接之上同时支持RPC、TLS和HTTPS/HTTP等网络协议。
密码服务层中,密码服务模块的接口详细说明:
Encrypt(keystring,params interface{})(error,string)的详细设计如表4和表5所示。输入要加密的密钥份额原文的十六进制字符串和加密时需要使用到的参数,如安全强度、加密算法和加密模式、密码口令、身份信息等等。加密完成后输出两个值,正常情况下输出密钥的密文,error为空,如果有发生加密错误则密文为空,error为错误信息。
输入
Figure BDA0002288230980000061
表4 Encrypt接口输入信息。
输出
Figure BDA0002288230980000062
表5 Encrypt接口输出信息。
Decrypt(enccyptedData string,params interface{})(error,string)的详细设计如表6和表7所示。输入要解密的密文信息和解密时需要使用到的参数,如安全强度、加密算法和加密模式、密码口令、身份信息等等。加密完成后输出两个值,正常情况下输出密钥的原文,error为空,如果有发生解密错误则密文为空,error为错误信息,如“解密口令强度不匹配”。
输入
Figure BDA0002288230980000063
Figure BDA0002288230980000071
表6 Decrypt接口输入信息。
输出
Figure BDA0002288230980000072
表7 Encrypt接口输出信息。
Store(keyID string,data string)(error,bool)的详细设计如表8和表9所示。输入要存储的密钥密文信息和该信息的keyID。存储完成后输出两个值,正常情况下为true,error为空,如果有发生存储错误则输出false,error为错误信息,如“存储出错”。
输入
Figure BDA0002288230980000073
表8 Store接口输入信息。
输出
类型 举例
bool True
Error Null|“存储出错”
表9Store接口输出信息。
GetData(keyID string)(error,string)的详细设计如表10和表11所示。输入要获取的信息的keyID。查询获取完成后输出两个值,正常情况下输出密钥的密文字符串,error为空,如果有发生查询错误则密文为空,error为错误信息,如“keyID未找到”;
输入
参数 类型 是否必须 举例
keyID ID字符串 “Alice_1”
表5.10Store接口输入信息。
输出
Figure BDA0002288230980000074
Figure BDA0002288230980000081
表11 Store接口输出信息。
在设计***逻辑时,将恢复过程当作是签名算法或者解密的算法的一部分,每次恢复出来处密钥只做临时存储,每次签名或解密结束后释放临时存储,避免长期存储带来的安全隐患。
API服务层中,API服务模块的接口详细说明:
Init(config Config)error的详细设计如表12和表13所示。输入初始化时密钥管理***的配置参数。初始化完成后正常情况下error为空,如果有发生加密错误则输出error为错误信息,如“configinvalid”。Init接口在调用密钥管理服务之前必须先调用,初始化配置信息。Config的结构体定义:前半部分定义了需要使用的椭圆曲线,输入合法的椭圆曲线参数;后半部分说明在KeyGen阶段零知识证明算法的安全参数。
Figure BDA0002288230980000082
输入
参数 类型 是否必须 举例
config Config 配置信息
表12 Init接口输入信息。
输出
类型 举例
Error Null|“configinvalid”
表13 Init接口输出信息。
KeyGen(numberint,keyID string,params interface{})(string,error)的详细设计如表14和表15所示。输入要生成的密钥ID和参与方个数,以及要加密存储密钥的参数。KeyGen完成后正常情况下error为空,并且返回主公钥字符串,如果有发生错误则输出error为错误信息,如“networkerror”。当要在区块链上创建新账户时,就需要有一个或多个公钥信息,KeyGen是创建新的公私钥信息的接口,获取到主公钥信息后,即可到区块链上进行账号注册或直接发送交易。
输入
参数 类型 是否必须 举例
number Int 默认为1
keyID ID字符串 “Alice_1”
Params 加密时的必要参数 根据实现情况而定 1,“AES”,“GCM”,“123456”,“邮箱”
表14 KeyGen接口输入信息。
输出
Figure BDA0002288230980000091
表15 KeyGen接口输入信息。
Sign(messagestring,keyID string,params interface{})(string,error)的详细设计如表16和表17所示。输入要签名的信息message,使用的密钥ID,以及解密存储密钥的参数。签名完成后正常情况下返回签名值(R||S)和空error,如果有发生错误则输出error为错误信息,如“invalid key”。在生成公私钥信息后,就可以与其他参与者使用密钥进行交互对交易进行签名,得到签名值再将交易发送到区块链***上。
输入
参数 类型 是否必须 举例
message String “hello”
keyID ID字符串 “Alice_1”
Params 加密时的必要参数 根据实现情况而定 1,“AES”,“GCM”,“123456”,“邮箱”
表16 Sign接口输入信息。
输出
Figure BDA0002288230980000092
表5.17 Sign接口输入信息。
Refresh()(keyID string,params interface{})error该接口只进行局部的密钥刷新,调用该接口的参与者通过网络层通知其密钥生成二叉树上的兄弟节点进行密钥刷新的过程。详细设计如表18和表19所示。输入要刷新的密钥ID,以及解密存储密钥的参数。刷新密钥完成后正常情况下返回error为空,如果有发生错误则输出error为错误信息,如“mpcerror”。当用户察觉到自身的密钥份额可能泄漏,则第一时间内发起Refresh的调用,与在密钥生成二叉树上互为兄弟节点的参与者进行局部密钥刷新。
输入
参数 类型 是否必须 举例
keyID ID字符串 “Alice_1”
Params 加密时的必要参数 根据实现情况而定 1,“AES”,“GCM”,“123456”,“邮箱”
表18 Refresh接口输入信息。
输出
类型 举例
Error Null|“mpcerror”
表19 Refresh接口输入信息。
RefreshAll()(keyID string,params interface{})error该接口进行全局的密钥刷新,调用该接口的参与者通过网络层通知其他的全部参与者进行密钥刷新的操作。输入输出与Refresh接口的表16和表17一致。密钥全局刷新在特殊情况下才会发起,比如当大部分密钥已经泄漏,那么发起全局密钥替换并加强每个密钥份额的安全措施至关重要。
UpdatePassword(keyID string,oldParams interface{},newParams interface{})error的详细设计如表14和表15所示。输入要更换密码的密钥ID以及解密存储密钥的参数和新的加密密钥的参数。UpdatePassword完成后正常情况下error为空,如果有发生错误则输出error为错误信息,如“passwordinvalid”。更新密码口令是日常安全防护的一个手段,定期更换密码,有利于保护加密存储的密钥信息。
输入
参数 类型 是否必须 举例
keyID ID字符串 “Alice_1”
oldParams 解密时的必要参数 根据实现情况而定 1,“AES”,“GCM”,“123456”,“邮箱”
newParams 加密时的必要参数 根据实现情况而定 1,“AES”,“GCM”,“abcdef”,“邮箱”
表20 UpdatePassword接口输入信息。
输出
类型 举例
Error Null|“passwordinvalid”
表21 UpdatePassword接口输入信息。

Claims (5)

1.一种基于安全多方计算的区块链密钥管理***,其特征在于,采用四层结构,用解耦合、插件化的架构设计以及使用多种通信协议进行各个参与方之间的信息传输,为用户提供密钥管理的服务,为区块链账户用户和区块链应用提供安全易用的密钥管理工具;所述四层结构分别是:数据存储层,网络通信层,密码服务层,API服务层,其中:
所述数据存储层,负责备份存储密钥信息;用户在密钥生成阶段和密钥刷新阶段获得的密钥份额经过集成加密模块加密后,相应的密文信息根据账户ID和密钥kid存储在数据存储数据库中,数据存储数据库是关系型数据库,或者是非关系型数据库,数据库中存放两类不同的数据:不同安全等级的加密算法信息、加密密钥的加密算法和加密后的密文信息;
所述网络通信层,负责在安全多方计算阶段与其他参与方进行数据通信;为了适配不同业务场景使用到的通信协议,***在 TCP 协议上统一封装了RPC、TLS和HTTPS/HTTP网络协议;用户在初始化密钥管理服务时通过配置文件设置所需的协议即可;同时为了适配不同***平台的编码格式,使用统一的数据格式进行数据的传输;每种协议都封装统一接口:
所述密码服务层,采用插件化的形式为API服务层提供加密服务;密码服务层分为两个模块:集成加密模块和MPC模块;集成加密模块中包含所有使用到的KDF、哈希算法、对称加密算法等等,为备份密钥份额提供保障;加解密时根据用户选择的安全强度配置判断用户密码的安全强度并接受足够数量的用户身份信息,安全强度不匹配时会返回提示信息,接着选取相应的KDF算法和加密算法加密保存密钥份额信息;MPC模块是支持多方计算ECDSA的核心模块,包含密钥生成、签名和密钥刷新的算法;用户创建区块链账户需要使用分布式密钥生成算法,已有区块链账户发起交易需要使用分布式签名算法,在紧急情况下需要调用分布式密钥刷新接口对密钥份额进行更新,保护区块链账户;MPC模块的运作依赖于网络通信模块,MPC参与方之间保证网络通信正常,在规定时间内收到相关的证明信息和交互信息,从而保证MPC算法的正确执行;
插件化的架构方便用户添加自主化的密码模块,用户只要实现了定义好的接口就能在加密密钥时使用自主实现的算法,设计成开放的框架有利于适配现有的传统行业中的密钥保护模块;
所述API服务层,是为用户提供的上层接口,用户可直接使用;包含初始化配置、密钥生成、签名、密钥刷新和修改密码接口;用户在实例化密钥管理***后,可以直接在业务的流程中调用上述接口。
2.根据权利要求1所述的基于安全多方计算的区块链密钥管理***,其特征在于,所述数据存储层中创建有索引,在数据量较大的情况下加快数据的查询速度;数据库的具体配置和使用方式取决于用户设计,在这个设计的基础上加强数据库的安全性和容灾性。
3.根据权利要求1所述的基于安全多方计算的区块链密钥管理***,其特征在于,所述数据存储层中适配有缓存机制,使用最近最少使用算法,将使用频率较高的数据缓存在内存中,加快签名和密钥刷新的性能;如果***是在轻客户端上面使用、不方便建设数据库的地方,***提供文件存储的功能,将每个加密的信息存在文件中,需要时直接从文件上读取。
4.根据权利要求1所述的基于安全多方计算的区块链密钥管理***,其特征在于,为了提高安全多方计算的成功率,在所述网络通信层中添加高可用的措施,当网络连接断开时自动重连,当长时间网络连接上没有收到消息时重新发送请求,在重新请求三次后仍然失败则通知上层用户,需要由用户排查其他参与方的服务状态。
5.根据权利要求1-4之一所述的基于安全多方计算的区块链密钥管理***,其特征在于,密钥管理***应用于区块链业务***时,应用***直接与密钥管理***交互,应用***将需要签名或者解密的信息发送给密钥管理***,密钥管理***操作完成后返回信息。
CN201911169093.XA 2019-11-26 2019-11-26 一种基于安全多方计算的区块链密钥管理*** Pending CN110880972A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911169093.XA CN110880972A (zh) 2019-11-26 2019-11-26 一种基于安全多方计算的区块链密钥管理***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911169093.XA CN110880972A (zh) 2019-11-26 2019-11-26 一种基于安全多方计算的区块链密钥管理***

Publications (1)

Publication Number Publication Date
CN110880972A true CN110880972A (zh) 2020-03-13

Family

ID=69729215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911169093.XA Pending CN110880972A (zh) 2019-11-26 2019-11-26 一种基于安全多方计算的区块链密钥管理***

Country Status (1)

Country Link
CN (1) CN110880972A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111555870A (zh) * 2020-04-29 2020-08-18 支付宝实验室(新加坡)有限公司 一种密钥运算方法及装置
CN112187442A (zh) * 2020-09-30 2021-01-05 中国科学技术大学 基于隐私保护的遥测数据分析***及方法
CN112187862A (zh) * 2020-08-31 2021-01-05 华控清交信息科技(北京)有限公司 一种任务处理方法、装置和用于任务处理的装置
CN112202565A (zh) * 2020-09-21 2021-01-08 中国电子科技网络信息安全有限公司 一种区块链***密码补丁插件实现方法
CN112989436A (zh) * 2021-03-30 2021-06-18 广西师范大学 一种基于区块链平台的多重签名方法
CN113037464A (zh) * 2021-01-27 2021-06-25 广东轻工职业技术学院 一种基于区块链技术的智慧城市城域网架构方法
CN113408752A (zh) * 2021-05-27 2021-09-17 复旦大学 一种基于区块链的垃圾回收监管***和方法
CN113538140A (zh) * 2021-07-05 2021-10-22 杭州宇链科技有限公司 一种基于可信执行环境与门限签名的数据交易方法
CN113612821A (zh) * 2021-07-14 2021-11-05 支付宝(杭州)信息技术有限公司 多方安全计算中的数据交互方法和装置
WO2024001028A1 (zh) * 2022-06-29 2024-01-04 蚂蚁区块链科技(上海)有限公司 一种维护区块链数据的方法、装置、电子设备和存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111555870A (zh) * 2020-04-29 2020-08-18 支付宝实验室(新加坡)有限公司 一种密钥运算方法及装置
CN111555870B (zh) * 2020-04-29 2023-01-17 支付宝实验室(新加坡)有限公司 一种密钥运算方法及装置
CN112187862A (zh) * 2020-08-31 2021-01-05 华控清交信息科技(北京)有限公司 一种任务处理方法、装置和用于任务处理的装置
CN112187862B (zh) * 2020-08-31 2023-08-08 华控清交信息科技(北京)有限公司 一种任务处理方法、装置和用于任务处理的装置
CN112202565A (zh) * 2020-09-21 2021-01-08 中国电子科技网络信息安全有限公司 一种区块链***密码补丁插件实现方法
CN112187442A (zh) * 2020-09-30 2021-01-05 中国科学技术大学 基于隐私保护的遥测数据分析***及方法
CN113037464A (zh) * 2021-01-27 2021-06-25 广东轻工职业技术学院 一种基于区块链技术的智慧城市城域网架构方法
CN113037464B (zh) * 2021-01-27 2022-06-03 广东轻工职业技术学院 一种基于区块链技术的智慧城市城域网架构方法
CN112989436B (zh) * 2021-03-30 2022-04-22 广西师范大学 一种基于区块链平台的多重签名方法
CN112989436A (zh) * 2021-03-30 2021-06-18 广西师范大学 一种基于区块链平台的多重签名方法
CN113408752A (zh) * 2021-05-27 2021-09-17 复旦大学 一种基于区块链的垃圾回收监管***和方法
CN113538140A (zh) * 2021-07-05 2021-10-22 杭州宇链科技有限公司 一种基于可信执行环境与门限签名的数据交易方法
CN113612821A (zh) * 2021-07-14 2021-11-05 支付宝(杭州)信息技术有限公司 多方安全计算中的数据交互方法和装置
WO2024001028A1 (zh) * 2022-06-29 2024-01-04 蚂蚁区块链科技(上海)有限公司 一种维护区块链数据的方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN110880972A (zh) 一种基于安全多方计算的区块链密钥管理***
US11552792B2 (en) Systems and methods for generating signatures
CN109495274B (zh) 一种去中心化智能锁电子钥匙分发方法及***
US10205713B2 (en) Private and mutually authenticated key exchange
Lin et al. A collaborative key management protocol in ciphertext policy attribute-based encryption for cloud data sharing
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
KR102619383B1 (ko) 에폭 키 교환을 이용한 종단간 이중 래칫 암호화
US10880100B2 (en) Apparatus and method for certificate enrollment
CN103795533A (zh) 基于标识符的加密、解密的方法及其执行装置
US20220021526A1 (en) Certificateless public key encryption using pairings
Shen et al. Toward data privacy preservation with ciphertext update and key rotation for IoT
Murugesan et al. Analysis on homomorphic technique for data security in fog computing
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享***及方法
JP2020532177A (ja) データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法
CN114631285A (zh) 在安全通信中使用的密钥生成
CN111953487B (zh) 一种密钥管理***
CN114205090A (zh) 一种基于国密算法的安全的文件共享方法和***
WO2020042023A1 (zh) 一种即时通信的数据加密方法及装置
CN116405320B (zh) 数据传输方法及装置
CN108599941A (zh) 随机非对称扩充字节通信数据加密方法
CN115834038A (zh) 基于国家商用密码算法的加密方法及装置
Döring et al. Post-Quantum Cryptography key exchange to extend a high-security QKD platform into the mobile 5G/6G networks
CN113132980B (zh) 应用于北斗导航***的密钥管理***方法和装置
Lin et al. Verifiable attribute‐based proxy re‐encryption for secure public cloud data sharing
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200313