区块链密码学之对称加密

前言

对称加密,顾名思义就是公钥和私钥都是同一个,只有一把密钥,那么密钥的共享就需要特别注意,容易泄露。但是由于它的加密效率高(速度快、占用空间小),主要用在大量数据的加密,往往需要提前分发密钥。

对称密码从实现上可以分为两种:分组密码和序列密码。前者将明文切分为定长数据块作为基本加密单位,应用最为广泛。后者则每次只对一个字节或字符进行加密处理,且密码不断变化,只用在一些特定领域,如数字媒介的加密等。

分组密码其中代表算法有DES、AES等。AES目前尚未出现有效的破解手段。

比特币中的对称加密

比特币中使用的对称加密算法为AES算法,具体来说是AES256。用于比特币钱包的私钥加密。采用用户设置的密码通过AES对钱包私钥进行加密,确保客户端私钥的安全。下面从源码使用来看看,地址为:https://github.com/1261385937/AES256

secret_key是用来加密的密钥,比特币使用的非对称加密的私钥,为了方便,上面是我随意写的。

public_key_hash_first_half是用来混合加密的,比特币中使用的是Serialize后的公钥,经过sha256后,取前128位。

上面的代码是对 msg 加密,加密结果保存在vchCiphertext。 下面来看看如何解密:

解密时,同样需要传入secret_key和public_key_hash_first_half。对vchCiphertext进行解密,揭秘结果放在quondam_msg中。显而易见,quondam_msg的内容为1,2,3。

总结

至此,AES256如何加密解密使用介绍完毕。密码学这块,是无数“密码朋克”的心血结晶,密码学这块比较特殊,极其严谨,需要经过大量使用验证的。即使知道原理,也不见得可以对它进行修改,因为你无法保证“你捣鼓出来的”安全性如何。所以笔者觉得,如果你不是专门研究密码学的高手,知道核心细节和不知道核心细节区别不大。密码学这块还是选用出名的、成熟的加密算法为上上策。以太坊和EOS也是选用了和比特币一样的secp256k1。原因恐怕也是如此。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值