加密,简而言之,加密就是借助一种或多种算法将明文信息转换成密文信息,信息的接收方通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,加密算法可以分为对称加密、非对称加密和对称加密与非对称加密的结合三种形式。而在区块链技术中所使用的加密算法最常见的当属哈希算法和非对称加密两种。
哈希算法
哈希算法(Secure Hash Algorithm,SHA)是区块链数据加密应用最多、最常规的算法之一,由美国国家安全局研发,其实属于SHA家族系列,包括SHA-0、SHA-1、SHA-2和SHA-3等系列密码哈希函数,被广泛使用在构建区块和确认交易完整性方面。使用哈希算法输入任意长度字符串会输出固定长度字符串,也就是哈希值。以区块链中最常见的SHA-256哈希算法函数为例,需具备以下四种特性才能满足区块链加密需求:
1. 正向固定:输入任意长度字符串,只能输出固定统一长度的字符串(hash 值)。
2. 逆向困难:给定(若干)hash 值,在有限时间内很难(基本不可能)逆推出明文。
3. 输入敏感:只要对原始输入信息作出丝毫修改,则产生的hash 值就会完全不同。
4. 冲突避免:几乎不会找到两段内容不同的明文,它们的hash值是一致(发生冲突)。
哈希算法加密过程
非对称加密
在聊到非对称加密之前,我们先聊聊什么是对称加密,以便于更好地理解非对称加密。
对称加密是指加密和解密使用的是同一个密码,通过相关证件密钥就可找回密码,此过程是可逆的。过程如图所示:
对称加密过程示意图
而非对称加密,加密和解密所使用的密匙不同。需要使用公钥对信息进行加密,解密信息却只能使用私钥,私钥可以生成公钥,而公钥是无法推导出私钥,此项过程是不可逆的。若私钥一经丢失,密文信息则无法找回。非对称加密与对称加密相比,其安全系数更高,但缺点是加密和解密所花费的时间较长、速度较慢。
过程如下:
非对称加密过程示意图
加密是如何实现的呢
在区块链的加密过程中,有的网络同时用到了哈希加密和非对称加密两种,加密过程更为复杂,也更为安全可靠。用户(发送方)通过哈希函数对想要加密的信息进行哈希处理,然后输出一个全网唯一、固定长度的字符串信息,同时利用公钥对信息进行加密、签名,然后将其上传到区块链网络。
接收方则利用接收到的公钥对信息进行解密,若对比后明文一致,那么接收方就能确认传输的文件并未受到篡改,是安全可信的,即可进行下一步处理。
过程如下:
区块链加密过程示意图
目前,在区块链信息保护中,需同时使用哈希算法和非对称加密才能完成信息加密工作,相信随着科技的进步,未来基于密码学的加密技术将不断被挖掘完善,造福大众。
作者:雪穗
编辑:Never
出品:星传媒
领取专属 10元无门槛券
私享最新 技术干货