对称密钥加密

AES

定义

AES(Advanced Encryption Standard,高级加密标准)算法,是一种对称密钥加密算法,用于保护敏感数据的机密性。它是目前广泛应用的加密算法之一,被认为是最安全的对称加密算法之一。
AES基本概要:https://blog.csdn.net/m0_72410588/article/details/132449867

原理以及结构

1、AES算法采用分组密码的形式,将明文数据划分为固定长度(128比特)的数据块,并通过多轮的加密操作,将明文转换为密文。AES算法具有三种不同的密钥长度:128比特、192比特和256比特,分别对应AES-128、AES-192和AES-256。
2、AES 的加密公式为 C=E(K,P),其中 K 为密钥,P 为明文,C 为密文。

AES的加密过程

AES加密过程主要包括以下四个步骤:
密钥扩展:根据输入的密钥生成一系列轮密钥,用于后续的轮函数操作。
初始轮:将输入数据与第一轮密钥进行异或运算。
多轮加密:通过执行多个相同的轮函数,对输入数据进行重复的变换和替代操作。
最后一轮:在最后一个轮函数中,不使用MixColumns操作,并将输出数据与最后一轮密钥进行异或运算
具体加密过程:https://www.jianshu.com/p/fff19c19eb09

AES的解密过程

AES解密过程与加密过程相似,只是逆向执行了加密过程的步骤。通过反向操作,密文可以被还原为明文。

DES

定义

DES是一种对称加密算法(对称加密即加密和解密用的是同一个秘钥)。
DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文一部分,一个典型的DES以64位为分组(明文分为64位明文段,全部64位明文段整合起来就是完整的明文),加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。 DES算法的核心主要包括两部分,第一部分是Feistel结构,第二部分是16个子密钥的生成。

原理

DES算法为密码体制中的对称密码体制,⼜被称为美国数据加密标准。DES是⼀个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密⽤的是同⼀个算法。
密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明⽂组和56位的密钥按位替代或交换的⽅法形成密⽂组。
参考以及DES具体过程:
https://zhuanlan.zhihu.com/p/575214691
https://blog.csdn.net/it_is_me_a/article/details/102463573
https://zhuanlan.zhihu.com/p/530212088
https://zhuanlan.zhihu.com/p/617663465
https://zhuanlan.zhihu.com/p/537550343

非对称加密算法

与对称加密算法的对比

对称加密算法:
(1)甲方选择某一种加密规则,对信息进行加密;
(2)乙方使用同一种规则,对信息进行解密。
缺点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。
非对称加密算法:
(1)乙方生成两把密钥(公钥和私钥)。公钥(发给对方用于加密数据)是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

杰出代表–RSA加密算法

1、重要的概念–密钥对,即是包含一个公钥与一个私钥。
2、RSA加密算法的原理:https://blog.csdn.net/Insect_boy/article/details/130528667
3、加解密原理以及过程:
https://blog.csdn.net/qq_43013511/article/details/123115880
https://blog.csdn.net/chengqiuming/article/details/82725137
4、对称加密与非对称加密的对比以及详解非对称加密:
https://zhuanlan.zhihu.com/p/436455172?utm_id=0&wd=&eqid=de46b7d2001e070a00000006645769d0
5、按照我的理解就是:
Bob发送信息给Alice,首先Alice得把自己的公钥发送给Bob,Bob用这个公钥对信息进行加密然后用自己的私钥对这个加密后的信息进行数字签名。然后Bob把签名后的加密信息以及Bob自己的公钥发送给Alice,Alice收到后,先用Bob的公钥对这个信息进行验证,确认这个信息确实是来自于Bob后,随后用自己的私钥进行解密。
6、实现前提,使用单向陷门函数。即加密简单,解密时对于敌手难,对于用户简单。