数字政府网络安全合规性建设指南:密码应用与数据安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.1 序列密码算法

根据对明文的加密方式不同,对称密码算法可分为序列密码算法与分组密码算法。序列密码算法也被称为流密码算法。根据密钥流生成方式不同,序列密码算法分为同步序列密码算法与自同步序列密码算法。

同步序列密码算法(见图1-2)使用种子密钥k和初始向量IV,根据密钥流生成算法生成密钥流序列z=z0z1z2…,然后使用密钥流序列依次对明文序列m=m0m1m2…加密:

图1-2 同步序列密码算法示意

其中,密钥流序列对明文加密的过程通常为异或运算,即依次将每个密钥流与明文流异或得到密文:

相应解密过程只需使用同一密钥k和相同的初始向量IV,根据相同的密钥流生成算法生成同样的密钥流序列z=z0z1z2…,然后依次对密文序列c=c0c1c2…解密:

其中,DE的逆过程。当E为异或运算时,D也为异或运算,即

同步序列密码算法具有加解密速度快、便于软硬件实现等特点,适用于大量数据加密,广泛应用于数据通信领域,例如保护互联网通信、VPN通信和无线通信等。

与同步序列密码算法不同,自同步序列密码算法(见图1-3)在生成密钥流的过程中,密文流会参与后续的密钥流生成。这种特性使得即使密文流的部分比特出现错误,当一定数量的正确密文流被反馈回密钥流生成器后,加解密过程也能够重新同步并恢复到正确的状态。这一特性在通信中尤其有用,因为它允许系统在不稳定的信道环境中运作,即便存在信号干扰、传输错误或数据丢失等情况,也能保持一定程度的加密能力。自同步序列密码能够容忍一定程度的错误。然而,为了实现这种错误容忍的特性,系统可能会变得更加复杂,而且可能需要更多的计算开销。

图1-3 自同步序列密码算法示意