【计算机密码学基础】对称加密算法 && 非对称加密算法

Source

1. 对称加密算法

远古时期大家使用的加密算法。

两个要素

  • 明文(原始数据)
  • 加密密钥

例如:

信息发送方

加密秘钥,我规定,每个英文字母对应的字母+1,a变成b
传输信息, how are you
加密后,就变成了 ipx bsf zpv(为了方便看,转码时候忽略了空格)

信息接收方:

依次将字母向前移动一位就可以还原成原来的信息how are you

这就引出了对称式加密的显著特点,双方必须事先知道加密秘钥是什么。两方都得知道。

基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。

对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。

发送方也得知道密码,这大大降低了信息的安全性。

2. 非对称式加密算法

基于对称式加密算法的缺点,改良后就诞生了非对称式加密算法,将秘钥改成公钥和私钥两部分。

甲方只能用其私钥解密由其公钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。

甲方一次性生成一对公钥和私钥,
公钥加密的信息只能用对应的私钥解密,
私钥加密的信息可以用对应的公钥进行解密。

(公钥给别人用,私钥永远只握在自己手里)

数字签名

数字签名就是基于上述原理,详细可以参考 链接
在这里插入图片描述
Alice发信息给Bob

alice首先发使用Bob的公钥对明文信息进行加密,在计算加密数据的hash值,然后alice使用自己的私钥对hash值进行加密,加密后的数据就形成的数字签名
此时alice发送 Bob公钥加密后的信息数字签名 给Bob。
Bob使用Bob的私钥对加密后的信息进行解密得到明文,然后使用alice的公钥对数字签名进行解密,就得到了hash值,再和加密数据的hash进行比较,就能验证发送用户是不是alice!

工作原理

1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

非对称加密之所以不对称,指的就是加密用一个密钥,而解密的时候用的是另外一个密钥。
对称加密,加密方和解密方使用的是同一个秘钥。

资料参考

硬件茶谈
百度百科-非对称式加密
知乎-什么是非对称加密?