对称加密(基础)

对称加密

参考于《深入浅出密码学----常用加密技术原理与应用》

加密算法的安全性不在本节讨论,可查看链接:

对称加密算法也称为对称密钥算法、秘密密钥算法、和单密钥算法。
实现过程如下图所示:
对称加密实现过程
先介绍三个概念:

模运算:

假如a, r, m ∈ Z(其中Z是所有整数的集合),并且 m > 0。如果 m 除 a - r,可记作:
a ≡ r mod m
其中 m 称为模数,r 称为余数。

环:

整数环Z(m)由以下两部分组成:

  1. 集合Z(m) = {0,1,2,…,m-1}
  2. 两种操作 ”+“ 和 ”x“(x代表乘法,下文直接用*表示),使得对所有的a,b,c,d ∈ Z(m) 有:
    1)a + b ≡ c mod m
    2)a * b ≡ d mod m

乘法逆元:

乘法中存在中性元素1,即对每个 a ∈ Z(m),都有 a * 1 ≡ a mod m。
不是所有元素都存在乘法逆元。假设 a ∈ Z,乘法逆元 a^(-1) 可以定义为:
a * a^(-1) ≡ 1 mod m
如果元素 a 的乘法逆元存在,则可以除以这个元素,因为 b / a ≡ b * a(-1) mod m。
当且仅当 gcd(a, m)= 1,一个元素的 a ∈ Z 存在乘法逆元 a^(-1)。其中 gcd 表示最大公约数;如果 gcd(a, m)= 1,那么 a 和 m 就互质或互素。

乘法逆元的计算方法不在此讨论,可查看链接:https://blog.csdn.net/m0_37146044/article/details/107828855

简单的对称加密:替换密码
移位/凯撒(caesar)密码、仿射密码都属于替换密码。

替换密码是指将一个字符用另一个字符替换。如:a->i,b->g,c->k,…;明文 abcc 加密后的密文为 igkk 。

移位密码:

将明文中的每个字母在字母表中移动固定长度的位置。
假如 x,y,k ∈ Z(26) , 则
加密:y ≡(x + k)mod 26
解密:x ≡(y - k)mod 26

仿射密码:

将明文乘以密钥的一部分,然后再加上密钥的剩余部分。
假如 x,y,a,b ∈ Z(26) , 则
加密:y ≡(a * x + b)mod 26
解密:x ≡ [(y - b) * a^(-1)] mod 26
密钥为:k = (a,b),且满足限制条件 gcd(a,26)= 1
所以,a ∈ {1,3,5,7,9,11,15,17,19,21,23,25}
对应的乘法逆元:
a^(-1) ∈ {1,9,21,15,3,19,7,23,11,5,17,25}

序列密码
序列密码

序列密码单独加密每个位,它是通过将密钥序列中的每个位与每个明文位相加实现的。同步序列密码的密码序列仅仅取决于密钥;异步序列密码的密码序列取决于密钥和密文。

同步序列密码与异步序列密码(增加虚线后表示异步序列密码):
同步序列密码与异步序列密码

序列密码的加密和解密
明文、密文和秘钥序列都是由单独的位组成,x(i)、y(i)、s(i) ∈ {0,1}。
加密:y(i) ≡ (x(i) + s(i)) mod 2
解密:x(i) ≡ (y(i) + s(i)) mod 2

分组密码:
分组密码

分组密码每次使用相同的秘钥加密整个明文位分组。

经常听到的分组加密算法:

DES:数据加密标准(Data Encryption Standard)
DES是一种使用56位秘钥对64位长分组进行加密的密码,基于Feistel网络。
DES

3DES:三重DES
3DES是由三个连续的DES加密组成。
3DES

AES:高级加密标准(Advanced Encryption Standard)
AES

分组密码的五种操作模式:

ECB:电子密码本模式
ECB模式是将明文消分成固定大小的分组,当最后一个分组的内容小于分组长度时,需要用特定的数据进行填充以至于长度等于分组长度,每个分组的加密和解密都是独立的,可以进行并行操作。
ECB
ECB

CBC:密码分组链接模式
所有分组的加密都链接在一起,使得密文 y(i) 不仅依赖分组 x(i),而且依赖前面的明文分组;加密过程使用初始向量(IV)进行随机化。
CBCCBC

OFB:输出反馈模式
使用分组密码加密IV,得到的秘钥输出为b位密钥序列的附一个集合;将前一个密钥输出反馈给分组密码进行加密,计算出密钥序列位的下一个分组,不断重复这个过程。
OFB
OFB

CFB:密码反馈模式
要生成第一个密钥序列分组s(1),先加密IV;所有后续密钥序列分组都是通过加密前一个密文得到的。
CFB
CFB

CTR:计数器模式
分组密码的输入为一个计数器,每当分组密码计算一个新密钥序列分组时,该计数器都会产生一个不同的值。
CTR
CTR

对于这五种模式的加解密过程,如果还有点懵,可参考这个链接中的图例:https://blog.csdn.net/chenxing1230/article/details/83628071

猜你喜欢

转载自blog.csdn.net/m0_37146044/article/details/107369276