密码学基础

一、什么是密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

在通信过程中,待加密的信息称为明文,已被加密的信息称为密文,仅有收、发双方知道的信息称为密钥。在密钥控制下,由明文变到密文的过程叫加密,其逆过程叫脱密或解密。

密码学专业术语

  • 密钥:分为加密密钥和解密密钥。
  • 明文:没有进行加密,能够直接代表原文含义的信息。
  • 密文:经过加密处理处理之后,隐藏原文含义的信息。
  • 加密:将明文转换成密文的实施过程。
  • 解密:将密文转换成明文的实施过程。
  • 密码算法:密码系统采用的加密方法和解密方法,随着基于数学- 密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。

二、密码学主要分类

密码学主要分为三大类:

  • 散列算法:如 MD5、SHA 系列算法;
  • 对称加解密算法:如 3DES、AES 算法;
  • 非对称加解密算法:如 RSA、ECC 算法。

不同的加密算法适用于不同场景,比如数据传输验证更改使用MD5和SHA,大规模的数据加密通常使用 3DES 和 AES,而像数字签名,身份认证则使用 RSA 和 ECC。

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

三、加解密算法概述

1. 散列算法

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

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

2.对称加密

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

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

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

3.非对称加密

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

非对称加密的安全性需要基于数学问题来保障,目前有:大数质因子分解、离散对数、椭圆曲线等经典数学难题进行保护,代表算法:RSA、Diffie-Hellman、ElGamal、ECC、SM2。

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

四、支撑密码学的数学定理

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

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

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

五、密码学在区块链中的作用

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

哈希算法具有唯一性和保密性,正好适合用来做数字身份。

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

  • 支撑比特币的底层交易系统就是“默克尔树”也叫哈希树。
  • 密码学中的椭圆曲线算法(ECC)也用在区块链中来保护消息摘要的真实性。
  • RSA 非对称加密算法在区块链中用作证书签发。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值