CN112202565A - 一种区块链***密码补丁插件实现方法 - Google Patents
一种区块链***密码补丁插件实现方法 Download PDFInfo
- Publication number
- CN112202565A CN112202565A CN202010994250.7A CN202010994250A CN112202565A CN 112202565 A CN112202565 A CN 112202565A CN 202010994250 A CN202010994250 A CN 202010994250A CN 112202565 A CN112202565 A CN 112202565A
- Authority
- CN
- China
- Prior art keywords
- function
- key
- interface
- password
- patch plug
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种区块链***密码补丁插件实现方法。本发明采用补丁插件的方法实现的密码模块天然支持多种密码算法,只需替换动态链接库文件,就可以快速实现密码算法的替换,非常灵活方便。本发明中每种密码算法都有详细具体并且复杂的逻辑,如果公司针对每种密码算法都进行全生命周期的开发,会耗费巨大人力和时间成本。密码补丁插件的方法,专业的团队可以贡献出来自己的密码插件,用户可以直接使用,这种方式可以极大的降低开发中各个环节的成本。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链***密码补丁插件实现方法。
背景技术
现有区块链***中的密码模块不够完善,存在如下问题:
(1)支持的密码算法单一。区块链***支持的密码单一,大部分***通常仅支持一种或少数几种密码算法,在很多场景下,无法满足功能需求,对区块链项目和整个生态环境发展造成很大的制约性。
(2)更换密码算法开发成本大。由于开发时间和功能需求的原因,区块链***往往只实现一种密码算法。当***有新的密码需求需要支持的时候,必须对整个***进行改动,密码部分也要全新开发,开发成本很高。
(3)开发周期长等问题。新的密码算法工作量很大,要经历算法学习、算法开发、算法测试、算法集成、***测试等多个环节,每个环节很复杂并充满不确定性。因此,每个新的密码需求都将耗费大量时间。
区块链安全的核心是密码算法,密码算法的安全性直接决定区块链***的安全性。同时,密码算法的种类众多并且在持续不断的发展,一个成熟的区块链***在安全性的要求上,应该支持多种密码算法,并且易于升级修改。
发明内容
针对现有技术中的上述不足,本发明提供的一种区块链***密码补丁插件实现方法解决了区块链***中密码模块不够完善的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种区块链***密码补丁插件实现方法,包括以下步骤:
S1、确定接口集合并根据接口定义的函数生成密码补丁插件;
S2、加载密码补丁插件,并通过接口规范调用密码补丁插件中的功能函数。
进一步地:所述步骤S1中的接口集合包括:密钥存取接口、密钥管理接口、对称加密组件服务接口和密码组件服务接口。
进一步地:所述密钥存储接口定义了ReadOnly函数、GetKey函数和StoreKey函数,所述ReadOnly函数用于返回密钥商店是否是只读,所述GetKey函数用于根据唯一标识返回密钥信息,所述StoreKey函数根据唯一标识返回密钥信息,所述StoreKey函数用于保存密钥内容。
进一步地:所述密钥管理接口定义了Bytes函数、SKI函数、Symmetric函数、Private函数和PublicKey函数,所述Bytes函数用于以字节流的格式返回密钥,所述SKI函数用于作为密钥的唯一标识,所述Symmetric函数用于返回密钥类型,所述Private函数用于获取私钥内容,所述PublicKey函数用于获取公钥内容。
进一步地:所述对称加密组件服务接口定义了BlockSize函数、Encrypt函数和Decrypt函数,所述BlockSize函数用于作为数据更新标识,所述Encrypt函数用于作为数据唯一标识,所述Decrypt函数用于作为存证者唯一标识。
进一步地:所述密码组件服务接口定义了KeyGen函数、KeyDeriv函数、KeyImport函数、GetKey函数、Hash函数、GetHash函数、Sign函数、Verify函数、Encrypt函数和Decrypt函数,所述KeyGen函数用于生产密钥,所述KeyDeriv函数用于通过已有密钥派生密钥,所述KeyImport函数用于加载已有密钥,所述GetKey函数用于获取绑定的密钥,所述Hash函数用于计算数据哈希值,所述GetHash函数用于获取哈希计算,所述Sign函数用于对数据进行签名,所述Verify函数用于对签名内容进行验证,所述Encrypt函数用于对数据内容进行加密,所述Decrypt函数用于解密数据内容。
进一步地:所述步骤S1中密码补丁插件的生成方法为:将编译模式设置为插件模式,根据接口和接口定义的函数进行编译,生成一个动态链接库文件,将动态链接库文件作为密码补丁插件。
本发明的有益效果为:
(1)高灵活性。本发明采用补丁插件的方法实现的密码模块天然支持多种密码算法,只需替换动态链接库文件,就可以快速实现密码算法的替换,非常灵活方便。
(2)降点开发成本。本发明中每种密码算法都有详细具体并且复杂的逻辑,如果公司针对每种密码算法都进行全生命周期的开发,会耗费巨大人力和时间成本。密码补丁插件的方法,专业的团队可以贡献出来自己的密码插件,用户可以直接使用,这种方式可以极大的降低开发中各个环节的成本。
附图说明
图1为本发明流程图;
图2为本发明的工作流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
本发明基于插件技术,为用户提供可选择的密码服务技术,用户可以通过简单的接口适配工作的开发,实现密码服务快速接入或升级。
对于使用层,用户根据配置选择对应的BCCSP工厂,所有的工厂类都实现统一的接口类型。密码组件提供者根据自己的功能来选择实现的接口,如果是软件模式实现则实现SW,如果是硬件模式则实现PKCS11,如果是引用外部插件则实现Plugin。
针对补丁插件部分,实现接口的具体功能,将所有的插件接口函数进行封装,以便具体业务实现时可以自由调用。接口封装完成后,以动态链接库的方式提供出去给用户使用。
在区块链***中使用plugin、interface等技术接入密码插件,实现密码插件的初始化;基于插件技术的原理,实现数据指纹计算、数据签名、数据验签、数据加密、数据解密、公私钥生成管理等一系列密码相关的功能。区块链***在业务实现时调用相关接口即可,不需要关心密码的种类和密码算法的具体实现过程。
如图1所示,一种区块链***密码补丁插件实现方法,包括以下步骤:
S1、确定接口集合并根据接口定义的函数生成密码补丁插件;
接口集合包括:密钥存取接口、密钥管理接口、对称加密组件服务接口和密码组件服务接口。
所述密钥存储接口定义了ReadOnly函数、GetKey函数和StoreKey函数,所述ReadOnly函数用于返回密钥商店是否是只读,所述GetKey函数用于根据唯一标识返回密钥信息,所述StoreKey函数根据唯一标识返回密钥信息,所述StoreKey函数用于保存密钥内容。
所述密钥管理接口定义了Bytes函数、SKI函数、Symmetric函数、Private函数和PublicKey函数,所述Bytes函数用于以字节流的格式返回密钥,所述SKI函数用于作为密钥的唯一标识,所述Symmetric函数用于返回密钥类型,所述Private函数用于获取私钥内容,所述PublicKey函数用于获取公钥内容。
所述对称加密组件服务接口定义了BlockSize函数、Encrypt函数和Decrypt函数,所述BlockSize函数用于作为数据更新标识,所述Encrypt函数用于作为数据唯一标识,所述Decrypt函数用于作为存证者唯一标识。
所述密码组件服务接口定义了KeyGen函数、KeyDeriv函数、KeyImport函数、GetKey函数、Hash函数、GetHash函数、Sign函数、Verify函数、Encrypt函数和Decrypt函数,所述KeyGen函数用于生产密钥,所述KeyDeriv函数用于通过已有密钥派生密钥,所述KeyImport函数用于加载已有密钥,所述GetKey函数用于获取绑定的密钥,所述Hash函数用于计算数据哈希值,所述GetHash函数用于获取哈希计算,所述Sign函数用于对数据进行签名,所述Verify函数用于对签名内容进行验证,所述Encrypt函数用于对数据内容进行加密,所述Decrypt函数用于解密数据内容。
密码补丁插件的生成方法为:将编译模式设置为插件模式,根据接口和接口定义的函数进行编译,生成一个动态链接库文件,将动态链接库文件作为密码补丁插件。
S2、如图2所示,用户业务代码与插件部分是独立的,用户业务部分使用密码插件代码需要加载插件,加载密码补丁插件,并通过接口规范调用密码补丁插件中的功能函数。
本发明采用补丁插件的方法实现的密码模块天然支持多种密码算法,只需替换动态链接库文件,就可以快速实现密码算法的替换,非常灵活方便。
本发明中每种密码算法都有详细具体并且复杂的逻辑,如果公司针对每种密码算法都进行全生命周期的开发,会耗费巨大人力和时间成本。密码补丁插件的方法,专业的团队可以贡献出来自己的密码插件,用户可以直接使用,这种方式可以极大的降低开发中各个环节的成本。
Claims (7)
1.一种区块链***密码补丁插件实现方法,其特征在于,包括以下步骤:
S1、确定接口集合并根据接口定义的函数生成密码补丁插件;
S2、加载密码补丁插件,并通过接口规范调用密码补丁插件中的功能函数。
2.根据权利要求1所述的区块链***密码补丁插件实现方法,其特征在于,所述步骤S1中的接口集合包括:密钥存取接口、密钥管理接口、对称加密组件服务接口和密码组件服务接口。
3.根据权利要求2所述的区块链***密码补丁插件实现方法,其特征在于,所述密钥存储接口定义了ReadOnly函数、GetKey函数和StoreKey函数,所述ReadOnly函数用于返回密钥商店是否是只读,所述GetKey函数用于根据唯一标识返回密钥信息,所述StoreKey函数根据唯一标识返回密钥信息,所述StoreKey函数用于保存密钥内容。
4.根据权利要求2所述的区块链***密码补丁插件实现方法,其特征在于,所述密钥管理接口定义了Bytes函数、SKI函数、Symmetric函数、Private函数和PublicKey函数,所述Bytes函数用于以字节流的格式返回密钥,所述SKI函数用于作为密钥的唯一标识,所述Symmetric函数用于返回密钥类型,所述Private函数用于获取私钥内容,所述PublicKey函数用于获取公钥内容。
5.根据权利要求2所述的区块链***密码补丁插件实现方法,其特征在于,所述对称加密组件服务接口定义了BlockSize函数、Encrypt函数和Decrypt函数,所述BlockSize函数用于作为数据更新标识,所述Encrypt函数用于作为数据唯一标识,所述Decrypt函数用于作为存证者唯一标识。
6.根据权利要求2所述的区块链***密码补丁插件实现方法,其特征在于,所述密码组件服务接口定义了KeyGen函数、KeyDeriv函数、KeyImport函数、GetKey函数、Hash函数、GetHash函数、Sign函数、Verify函数、Encrypt函数和Decrypt函数,所述KeyGen函数用于生产密钥,所述KeyDeriv函数用于通过已有密钥派生密钥,所述KeyImport函数用于加载已有密钥,所述GetKey函数用于获取绑定的密钥,所述Hash函数用于计算数据哈希值,所述GetHash函数用于获取哈希计算,所述Sign函数用于对数据进行签名,所述Verify函数用于对签名内容进行验证,所述Encrypt函数用于对数据内容进行加密,所述Decrypt函数用于解密数据内容。
7.根据权利要求1所述的区块链***密码补丁插件实现方法,其特征在于,所述步骤S1中密码补丁插件的生成方法为:将编译模式设置为插件模式,根据接口和接口定义的函数进行编译,生成一个动态链接库文件,将动态链接库文件作为密码补丁插件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010994250.7A CN112202565A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链***密码补丁插件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010994250.7A CN112202565A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链***密码补丁插件实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112202565A true CN112202565A (zh) | 2021-01-08 |
Family
ID=74015769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010994250.7A Pending CN112202565A (zh) | 2020-09-21 | 2020-09-21 | 一种区块链***密码补丁插件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202565A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032488A (zh) * | 2021-03-23 | 2021-06-25 | 无锡井通网络科技有限公司 | 一种基于可插拔加密子***的分布式***、加密方法 |
CN116070219A (zh) * | 2023-04-06 | 2023-05-05 | 北京紫光青藤微***有限公司 | 用于写补丁的方法及***、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474619A (zh) * | 2018-12-17 | 2019-03-15 | 中国平安财产保险股份有限公司 | 数据加密上报方法及装置、数据解密方法及装置 |
CN109903046A (zh) * | 2019-02-02 | 2019-06-18 | 中国互联网络信息中心 | 基于区块链的用户数据管理方法及装置 |
CN110069295A (zh) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备和介质 |
CN110880972A (zh) * | 2019-11-26 | 2020-03-13 | 复旦大学 | 一种基于安全多方计算的区块链密钥管理*** |
CN111026461A (zh) * | 2019-12-06 | 2020-04-17 | 联想(北京)有限公司 | 用于区块链***的数据处理方法、装置和电子设备 |
-
2020
- 2020-09-21 CN CN202010994250.7A patent/CN112202565A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474619A (zh) * | 2018-12-17 | 2019-03-15 | 中国平安财产保险股份有限公司 | 数据加密上报方法及装置、数据解密方法及装置 |
CN109903046A (zh) * | 2019-02-02 | 2019-06-18 | 中国互联网络信息中心 | 基于区块链的用户数据管理方法及装置 |
CN110069295A (zh) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备和介质 |
CN110880972A (zh) * | 2019-11-26 | 2020-03-13 | 复旦大学 | 一种基于安全多方计算的区块链密钥管理*** |
CN111026461A (zh) * | 2019-12-06 | 2020-04-17 | 联想(北京)有限公司 | 用于区块链***的数据处理方法、装置和电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032488A (zh) * | 2021-03-23 | 2021-06-25 | 无锡井通网络科技有限公司 | 一种基于可插拔加密子***的分布式***、加密方法 |
CN116070219A (zh) * | 2023-04-06 | 2023-05-05 | 北京紫光青藤微***有限公司 | 用于写补丁的方法及***、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627086B2 (en) | Secure loading and storing of data in a data processing device | |
CN110912706B (zh) | 一种基于身份的动态数据完整性审计方法 | |
CN109583217B (zh) | 一种互联网电商平台用户隐私数据加密及解密方法 | |
CN101627390B (zh) | 用于程序状态数据在电子设备中的安全存储的方法 | |
CN108282466B (zh) | 用于在tee中提供数字证书功能的方法、*** | |
CN108282467B (zh) | 数字证书的应用方法、*** | |
US20100005318A1 (en) | Process for securing data in a storage unit | |
CN101771699A (zh) | 一种提高SaaS应用安全性的方法及*** | |
EP1645931A1 (en) | Secure loading and storing of data in a data processing device | |
CN108462686A (zh) | 动态密钥的获取方法、装置、终端设备及存储介质 | |
CN109560931A (zh) | 一种基于无证书体系的设备远程升级方法 | |
CN106452786A (zh) | 加解密处理方法、装置和设备 | |
CN108710500A (zh) | 资源发布方法、更新方法和装置 | |
WO2020237751A1 (zh) | 利用智能合约实现基于身份的密钥管理方法及装置 | |
CN112202565A (zh) | 一种区块链***密码补丁插件实现方法 | |
CN102842005B (zh) | 一种基于tsm的tspi接口的csp模块和csp实现方法 | |
CN111666558B (zh) | 密钥轮换方法、装置、计算机设备及存储介质 | |
WO2021036511A1 (zh) | 数据加密存储和读取的方法、终端设备及存储介质 | |
EP1632943B1 (en) | Method of preventing multimedia copy | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN113014387B (zh) | 基于硬件加密机的多维加密接口的改进方法及加密装置 | |
CN102662871B (zh) | 一种基于可信密码模块的虚拟磁盘完整性保护***及方法 | |
CN103425939A (zh) | 一种sm3算法在java环境中的实现方法及*** | |
CN113162763A (zh) | 数据加密及存储方法、装置、电子设备及存储介质 | |
KR101699176B1 (ko) | Hdfs 데이터 암호화 및 복호화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210108 |
|
RJ01 | Rejection of invention patent application after publication |