区块链新闻资讯
数字货币投资分析

区块链中密码学基础

大纲:

  1. 什么是密码学
  2. 密码学在区块链中的作用
  3. 密码学主要分类
  4. 加解密算法概述
  5. 支撑密码学的数学定理

什么是密码学

密码学分为两部分,第一部分是编码学:应用于编制密码以保证通讯的私密性。第二部分是破译学:应用于破译密码以获取通信的内容。两部分合在一起总称为密码学。

 

通俗的来说密码学像是一个矛和盾的过程,编码学好比是盾,做的尽量坚硬能抵挡一切矛的攻击;而破译学就像是矛,做的尽量锋利从而刺破一切盾,两者相互制约,相互进步,很难说哪一个更厉害。

 

 

密码学在区块链中的作用

首先要理解什么是区块链,简单来说是由一个个区块组成,而区块是由两个哈希值和一个存储空间组成,每个区块只和它的前一个区块相关联,正是通过哈希值所关联起来的,目前可把哈希值理解为身份证号,一个是自己的,一个是跟自己关联的前一个区块的。哈希值是通过密码学中的哈希算法得到的,这就是我们重点要关注的。

 

试想一下,身份证号有什么特点。

第一个:唯一性,一个身份证号对应一个人。

第二个:保密性,给你一个身份证号,你能看出代表的是谁吗?根本猜不出来。

其实这两个特点恰恰就是哈希算法的特点。

区块链核心概念还包含以下几点

  1. 支撑比特币的底层交易系统就是“默克尔树”也叫哈希树。
  2. 密码学中的椭圆曲线加密算法(ECC)也用在区块链中来保护消息摘要的真实性
  3. RSA非对称加密算法在区块链中用作证书签发

密码学主要分类

三大类:

  1. 散列算法:如MD5,SHA系列算法
  2. 对称加解密算法:如3DES,AES算法
  3. 非对称加解密算法:如RSA,ECC算法

不同的加密算法适用于不同场景,如大规模的数据加密通常使用3DES和AES,而像数字签名,身份认证则使用RSA和ECC,后面我们会针对每一种算法都有深入解析,当大家理解它们的原理以及如何运行算法的时候就明白为什么适用了。

 

 

加解密算法概述

 

散列算法:

也叫哈希算法,是非常基础且重要的计算机算法。它能将任意长度的二进制明文映射为较短的二进制串,并且不同的明文很难映射为相同的Hash值。具有以下特点:

  • 正向快速:给定明文和Hash算法,在有限时间和有限资源内能计算得到Hash值
  • 逆向困难:给定Hash值,在有限时间内很难逆推出明文
  • 输入敏感:原始输入信息发生任何变化,新的Hash值都应该出现很大变化
  • 冲突避免:很难找到两段内容不同的明文,使得它们的Hash值一致

对称加密:

加解密过程的密钥是相同的。优点是速度快,空间占用小,加密强度高。

从原理上分:分组加密和序列加密。前者将明文切分为定长数据块作为基本加密单元,应用最为广泛。后者则每次只对一个字节或者字符进行加密处理,且密码不断变化,只用在一些特定的领域,如数字媒介的加密等。代表算法如MD5,SHA系列算法。

 

对称加密适用于大量数据的加解密过程;不能用于签名场景,并且往往需要提前分发好密钥。

 

非对称加密:

公钥私钥分开。缺点是处理速度比较慢,比对称加密慢了2,3个数量级;加密效率不如对称加密。

 

非对称加密的安全性需要基于数学问题来保障,目前有:大数质因子分解,离散对数,椭圆曲线等经典数学难题进行保护。

代表算法:RSA,Diffie-Hellman,ElGamal,ECC,SM2

适用于签名场景或密钥协商,不适于大量数据加解密

安全强度高的:椭圆曲线系列算法。

 

密码学中也可以分加密算法和加解密算法,像MD5,SHA256等都是加密算法,加密后是一个固定长度的字符串,常用来比较一致性和有没有篡改,如登陆时传输的密码用MD5加密存到服务器数据库,并不会存原始密码,当用户第二次登陆时输入密码后转化为MD5的值,再和服务器数据库中的MD5值相比较,如果一致则登陆成功。没有人把MD5解开拿着原始密码和用户输入的原始密码比较的。加解密算法更看重的是加密的内容,需要解密出加密前的内容,然后使用原始数据做相应处理,所以两种算法的应用场景也不同。

 

 

支撑密码学的数学定理

像非对称加密这些算法之所以能广泛被大家认可并应用,其根本原因是它们基于的数学原理。

 

ECC涉及到有限域上的椭圆曲线和离散对数问题,几何加法,标量积等。

RSA算法的基于:两个大质数相乘得到的大数难以被因式分解。还涉及到另外两个数学概念:

  1. 互质关系:如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。
  2. 欧拉函数:是指任意给定正整数N,在小于等于N的正整数之中,有多少个与N构成互质关系。

 

总结

介绍了密码学的基础知识和作用,支撑起了密码学的正是数学原理,其中大部分属于初中高中数学知识,并没有想象的那么高不可攀,通过有效的学习,具备基础的数学知识,同样可以深入理解密码学。

 

赞(0) 打赏
未经允许不得转载:三链财经 » 区块链中密码学基础

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏