对称密钥【密码学】(四)

一、前言 

在使用单向散列函数校验数据完整性时,需要保证原始的散列值不能被更改。

因此,在很多场景下,我们并不能仅仅通过单向散列函数来解决完整性问题,还需要其他技术来解决这个问题,如加密技术。

本篇博客就来介绍一下第一类加密技术------对称加密技术

二、加密、解密、密钥

对称密钥【密码学】(四)_第1张图片对称密钥【密码学】(四)_第2张图片

加密数据的安全性依赖于:加密算法的质量和密钥的保密性。(注意:算法应该是公开的才经得起考验,同时,要做好密钥的保密)

三、什么是对称密钥 

对称密钥【密码学】(四)_第3张图片

对称密钥:每个参与者,都持有相同的密钥。

非对称密钥:每个参与者,都持有不同的密钥。  

四、怎么选择对称密钥算法 

跟单向散列函数一样,对称密钥算法也可以分为退役的,遗留的和现行的算法。

相比于对称散列函数,加密、解密的算法是一种很快的运算,虽然快,但也是要额外的运算的,会影响性能,但并不显著。

序列算法和分组算法 

之前讲过,为了能够处理任意大小的数据,并输出固定长度的结果,单向散列函数会对数据进行分组,然后按数据组进行计算;在对称密钥的算法里,因为输出结果的长度没有限制,对数据的处理方式,也就有了更多的想象空间。

从数据分组的角度:

进行数据分组,然后按数据组进行运算,就是分组算法

不进行数据分组,按照原始数据的大小进行运算,就是序列算法(效率更高)。 

怎么计算序列算法? 

从对称密钥里推导出一段和明文数据相同长度的密钥序列,然后密钥序列和明文进行异或运算得到密文,和密文进行异或运算得到明文。

关键:怎么通过固定长度的密钥推导出任意长度的密钥序列。

对比:

☆由于不需要分组,序列算法的安全性主要取决于密钥序列的推导算法,而不用考虑数据分组带来的种种陷阱。对于应用程序而言,这是一个便于使用,不易出错的选择。

☆分组算法的安全性,除了算法本身之外,还取决于数据分组的策略。

因此,更倾向于优先使用序列算法。

你可能感兴趣的:(密码学,密码学)