Hyperledger Fabric密码模块系列之BCCSP(五) - 国密算法实现
Talk is cheap, show me your code.
代码也看了,蛋也扯了,之后总该做点什么。响应国家政策,把我们的国密算法融合进去吧~~ 先附两张bccsp下国密算法的设计实现图。
一 国密算法软实现,将sm2内嵌到sw中
二 国密算法硬件实现,通过pkcs11的方式调用支持国密算法的加密机或者加密卡
这两种实现方式的具体设计可以去hyperledger的jira上查找,都是FAB-5496的子任务。
这两种方式各有优缺点,硬件实现上来说密钥可能更加安全可控,效率上也会高一点,但是比较笨重和昂贵,因为需要购买硬件加密设备;软件实现更加的灵活,但是密钥更容易被攻击者获取。
后面会分两节来具体介绍一下这两种实现。(这两种方式都是本人熟悉fabric/bccsp后进行设计和开发的,欢迎大家在jira上提出问题,代码已经进行了比较相近的单元测试,目前正在测试fabric跟bccsp相关的工具,后续会考虑开源)
------------------------------------------------------------------------------------
区块链离不开密码技术,密码技术离不开密码学(密码编码学),密码学离不开密码算法,而密码算法的安全性主要在于密钥的安全。
Hyperledger Fabric密码模块系列之BCCSP(五) - 国密算法实现的更多相关文章
- Hyperledger Fabric密码模块系列之BCCSP(一)
Fabric作为IBM主导的区块链平台,可谓是联盟链中的一枝独秀,现如今已经有100多个大型国际银行.金融以及科技公司的加盟.与其说Fabric是区块链的一种平台,倒不如说是一个区块链框架更加精确,因 ...
- Hyperledger Fabric密码模块系列之BCCSP(三)
fabric中通过工厂模式来生成bccsp实例,进而通过bccsp的接口来提供加密.解密.签名验证以及哈希等操作. fabric的factory工厂默认返回的bccsp实例是sw(也就是所有密码操作都 ...
- Hyperledger Fabric密码模块系列之BCCSP(四)
前面说过要找时间介绍一下bccsp包下面的工厂factory,so here it is. 通过factory目前可以获得两类BCCSP实例,一个是上文说的sw,还有一个是通过pkcs11实现的. B ...
- Hyperledger Fabric密码模块系列之BCCSP(二)
上一篇简单介绍了bccsp包下面的目录结构,这一篇本来想讲sw的,忽然感觉少点什么,对哈,得先将下bccsp这个接口,sw只是个实现啊.
- SM系列国密算法(转)
原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7. ...
- Hyperledger Fabric 1.0 学习搭建 (五)--- 启动Fabric多节点集群
5.1.启动orderer节点服务 上述操作完成后,此时各节点的compose配置文件及证书验证目录都已经准备完成,可以开始尝试启动多机Fabric集群. 首先启动orderer节点,切换至order ...
- Hyperledger Fabric v1.1.0安装记录(国内源版)
1. 安装虚拟机 虚拟机软件采用:VirtualBox 操作系统选择:Ubuntu 14.04 内存:4G CPU:2核 硬盘:20G 2.(可选)更改 ...
- 机器学习Sklearn系列:(五)聚类算法
K-means 原理 首先随机选择k个初始点作为质心 1. 对每一个样本点,计算得到距离其最近的质心,将其类别标记为该质心对应的类别 2. 使用归类好的样本点,重新计算K个类别的质心 3. 重复上述过 ...
- Hyperledger Fabric国密改造
Fabric国密改造是个什么概念?我们来思考以下4个问题: 为什么偏偏是密码算法?(WHY?) 什么是国密算法?(WHAT?) 改造切入点什么?(WHERE?) 如何实现国密支持?(HOW?) 1.为 ...
随机推荐
- C语言基础课第五次作业
PTA第五次作业 7-2 统计一行文本中的单词个数 一.程序代码 #include<stdio.h> int main(void) { ]; ,word=; char c; gets(st ...
- HTML-表格-列表-结构标记-表单
1.表格 1.表格语法 1.标记 1.表格 <table></table> 2.行 <tr></tr& ...
- poj3130 (半平面交
题意:判断是否存在内核. 半平面交存板子. /* gyt Live up to every day */ #include<cstdio> #include<cmath> #i ...
- Python11/26--mysql之视图/触发器/事务/存储过程
视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的时候直接使用即可 2.为什么用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 select * from ...
- python模块:xml.dom.minidom
"""Simple implementation of the Level 1 DOM. Namespaces and other minor Level 2 featu ...
- toast
start (e){ wx.showToast({ title: '轮播图', icon: 'success', duration: ...
- DDD简明入门之道 - 开篇
DDD简明入门之道 - 开篇 犹豫了很久才写下此文,一怕自己对DDD的理解和实践方式有偏差,二怕误人子弟被贻笑大方,所以纰漏之处还望各位谅解.不啰嗦,马上进入正题,如果你觉得此文不错就点个赞吧. 概述 ...
- 一些有价值的Blog推荐
待看的一些文章 1. 性能调优攻略 http://coolshell.cn/articles/7490.html 2. 内存的存储管理--段式和页式管理的区别 http://blog.sina.com ...
- linux配置防火墙和重启防火墙
1.在linux系统里面找到并打开编辑配置防火墙的文件,执行命令: vi /etc/sysconfig/iptables. 2.在上面打开的文件里面加入一下语句: -A INPUT -m state ...
- Android热修复——Tinker的集成
前言 做前端开发的都知道,当我们项目做完了以后,都会把应用上传到应用市场上供用户下载使用,比如上传到应用宝啊,应用汇啊,360啊,小米,华为,魅族啊,等等但是,有时候我们会经常遇到一些很扯淡的事情,刚 ...