上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.1 序列密码算法
根据对明文的加密方式不同,对称密码算法可分为序列密码算法与分组密码算法。序列密码算法也被称为流密码算法。根据密钥流生成方式不同,序列密码算法分为同步序列密码算法与自同步序列密码算法。
同步序列密码算法(见图1-2)使用种子密钥k和初始向量IV,根据密钥流生成算法生成密钥流序列z=z0z1z2…,然后使用密钥流序列依次对明文序列m=m0m1m2…加密:
图1-2 同步序列密码算法示意
其中,密钥流序列对明文加密的过程通常为异或运算,即依次将每个密钥流与明文流异或得到密文:。
相应解密过程只需使用同一密钥k和相同的初始向量IV,根据相同的密钥流生成算法生成同样的密钥流序列z=z0z1z2…,然后依次对密文序列c=c0c1c2…解密:
其中,D为E的逆过程。当E为异或运算时,D也为异或运算,即。
同步序列密码算法具有加解密速度快、便于软硬件实现等特点,适用于大量数据加密,广泛应用于数据通信领域,例如保护互联网通信、VPN通信和无线通信等。
与同步序列密码算法不同,自同步序列密码算法(见图1-3)在生成密钥流的过程中,密文流会参与后续的密钥流生成。这种特性使得即使密文流的部分比特出现错误,当一定数量的正确密文流被反馈回密钥流生成器后,加解密过程也能够重新同步并恢复到正确的状态。这一特性在通信中尤其有用,因为它允许系统在不稳定的信道环境中运作,即便存在信号干扰、传输错误或数据丢失等情况,也能保持一定程度的加密能力。自同步序列密码能够容忍一定程度的错误。然而,为了实现这种错误容忍的特性,系统可能会变得更加复杂,而且可能需要更多的计算开销。
图1-3 自同步序列密码算法示意