美文网首页
密码算法

密码算法

作者: 宋song一 | 来源:发表于2018-10-10 23:29 被阅读1次

一. HyperLedge Fabric的CA支撑环境

利用数字签名技术和hash实现交易的抗抵赖

1.CA是Membership的重要组件之一

  1. 满足于Fabric的安全需求,为参与各方实现:
    • 用户注册
    • 证书签发
    • 证书吊销
    • 发布证书链

– 基于RESTful/CLI等多种接口方式,服务于Blockchain的各个环节,包括:
• T-Cert – Transaction Certificate (交易证书证书),执行交易时使用
每个交易时生成,用于交易的签名

• E-Cert – Enrollment Certificate (注册证书),携带实体信息的证书

长期持有,携带或可以追溯使用者信息
用于身份认证

• CSR – 证书吊销列表

2. PKI相关的密码学在BlockChain中的应用保障单个Peer上数据的完整性

• 数字签名
– 不可抵赖,防篡改
• Hash
• 加密
– 事务隐私保护
– 数据访问控制
– 共识机制及BlockChain数据分布化,可以防止某个Peer造假,达到高度自治

3. 如何既保障交易私密,又可以实现监管

采用“加密密钥对”和“签名密钥对”分离的做法,加密密钥对在监管方备案

“监管”是指无需交易方授权,监管者可以解密交易
– 但监管不能侵犯“不可抵赖性”,即,监管者不可以伪造别人的交易

– 采用PKI体系的“ 双密钥对---签名密钥对和加密密钥对 ”模式来实现:
• 证书持有者有一对签名用途的密钥对
• 证书持有者有一对加密用途的密钥对
• CA签发证书时,对加密用途的密钥对进行备案,交由密钥管理中心存放
– 特定的情况下,提取某用户的解密私钥,解密相关的交易数据
• 签名用途的密钥对仍然在用户端产生,不做备案
– 无私钥的情况下,无法伪造签名,因此无法伪造别人的交易
– 从证书申请,到证书生成,常规意义的CA/RA体系都可以保障签名密钥的用户私密性

非对称加密算法(公钥算法) ECC/国密SM2 RSA
计算结构 基于椭圆曲线 基于特殊的可逆模幂运算
计算复杂度 完全指数级 亚指数级
相同的安全性能下所需的公钥位数 较少,(160位的ECC与1024位的RSA具有相同的安全等级) 较多
密钥生成速度 较RSA算法快百倍以上
解密加密速度 较快 一般
安全性难度 基于离散对数问题ECDLP数学难题 基于分解大整数的难度
对称加密算法 AES 国密SM4 3DES
计算结构 数据块长度和密钥长度都可变的分组加密RIJNDAEL算法 基本轮函数加迭代,含非线性变换 使用标准的算法和逻辑运算,先替换后置换,不含非线性变换
计算轮数 10/12/14轮 32轮 16*3轮
分组长度 128/192/256位 128位 64位
密钥长度/有效密钥长度 128位/112位 128位/128位 128位/112位
实现性能 软件、硬件实现都较快 软件、硬件实现都较快 软件慢、硬件快
安全性 较高 较高 较高

国密SM3对应sha算法

PKI体系的组成要素:用户,认证机构,仓库(证书目录)

二.分布式一致性算法

是联盟链和私有链常用的共识算法

  • 1.拜占庭容错算法
  • 2.解决非拜占庭问题的分布式一致性算法(Paxos,Raft)

密码学哈希函数

主要性质

  • 1.抗碰撞性(collition-resistance),常用来进行完整性验证。(计算上成立,数学上不成立)
  • 2.原像不可逆
  • 3.难题/谜题友好性(Puzzle Friendliness)
    DES加密算法,密钥长度必须为8
       import javax.crypto.Cipher;
        import javax.crypto.spec.SecretKeySpec;
          import java.util.Base64;

          public class MyTest {
    public static void main(String[] args) {
        try {
            String input = "aLIEz,helloworld";
            String transformation = "DES";
            String pw = "12134578";
            String algorithm = "DES";
            SecretKeySpec secretKeySpec = new SecretKeySpec(pw.getBytes(), algorithm);
            Cipher instance = Cipher.getInstance(transformation);
            instance.init(Cipher.ENCRYPT_MODE, secretKeySpec);
            byte[] bytes = instance.doFinal(input.getBytes());
            byte[] encode = Base64.getEncoder().encode(bytes);
            System.out.println(new String(encode));
              } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

相关文章

  • DES加密算法原理

    什么是对称密码算法 网络安全通信中要用到两类密码算法,一类是对称密码算法,另一类是非对称密码算法。对称密码算法有时...

  • Java分组密码算法DES

    Java分组密码算法DES 1实验内容 掌握分组密码算法DES方法,能用高级语言实现分组密码算法DES。DES算法...

  • 密码学因区块链更“值钱” 区块链因密码学更“完善”

    作者:上海交大教授、密码学家来学嘉 与密码算法密不可分的区块链 首先,区块链是密码算法搭起来的,所以说它和密码算法...

  • 仿射密码Python实现

    算法分析 仿射密码结合了移位密码和乘数密码的特点,是移位密码和乘数密码的组合。 仿射密码的加密算法就是一个线性变化...

  • AES加密算法(C++)

    AES算法是继DES之后比较快且比较简单的加密算法? AES算法 算法原理: AES密码与分组密码Rijndael...

  • 密码算法 & Https

    title: 密码算法 & Httpsdate: 2021/03/03 14:12 密码算法 本质:对原来为明⽂文...

  • 网络安全-非对称加密

    公开密钥密码算法也叫双密钥密码算法或非对称密钥密码算法,它的加密密钥与解密密钥不同。这种算法需要形成一个在数学上是...

  • 网络安全-对称加密

    对称密钥密码算法,也叫做单钥密码算法或私钥密码算法,发送方和接收方共同拥有相同的密钥,发送方使用这个密钥将明文数据...

  • DES/AES、SM4、RSA、SM2、SM3

    现以分组密码算法(DES和SM4)、公钥密码算法(RSA和SM2)、摘要算法(SM3)为例,谈谈国际算法和国密算法...

  • 给信息加密 python语言

    运用摘要算法给用户密码加密 1. 测试比较算法 代码: 运行结果: 可以看出sha256算法将密码文本转化为了长度...

网友评论

      本文标题:密码算法

      本文链接:https://www.haomeiwen.com/subject/yrzyaftx.html