1、密码学概述
密码学有着悠久的历史,它满足了人们对安全的最基本需求——保密性。密码学可以说是安全领域发展的基础。
在Web应用中,常常可以见到加密算法的身影,最常见的就是网站在将敏感信息保存到Cookie时使用的加密算法。加密算法的运用是否正确,与网站的安全息息相关。
常见的加密算法通常分为分组加密算法与流密码加密算法两种,两者的实现原理不同。
分组加密算法基于“分组”(block)进行操作,根据算法的不同,每个分组的长度可能不同。分组加密算法的代表有DES、3-DES、Blowfish、IDEA、AES等。下图演示了一个使用CBC模式的分组加密算法的加密过程。
流密码加密算法,则每次只处理一个字节,密钥独立于消息之外,两者通过异或实现加密与解密。流密码加密算法的代表有RC4、ORYX、SEAL等。下图演示了流密码加密算法的加密过程。
针对加密算法的攻击,一般根据攻击者能获得的信息,可以分