加密与解密原理
加密技术的作用
机密性:
通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务。这是使用加密的普遍原因。通过小心使用数学方程式,可以保证只有对应接收人才能查看它。
完整性:
通过数据加密、散列或数字签名来实现,提供确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。对安全级别需求较高的用户来说,仅仅数据加密是不够的,数据仍能够被非法破解并修改。
鉴别性:
通过数据加密,数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即认证数据发送和接收者的身份。
抗抵赖性:
通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供阻止用户否认先前的言论或行为的抗抵赖服务。
对称加密
对称加密算法也叫传统密码算法(秘密密钥算法、单钥算法),加密密钥能从解密密钥中推算出来。发件人和收件人共同拥有同一个密钥,既用于加密也用于解密。对称密钥加密是加密大量数据的一种行之有效的方法。对称密钥加密有许多种算法,但所有这些算法都有一个共同的目的:以可以还原的方式将明文(未加密的数据)转换为暗文。由于对称密钥加密在加密和解密时使用相同的密钥,所以这种加密过程的安全性取决于是否有未经授权的人获得了对称密钥。
注:希望使用对称密钥加密通信的双方,在交换加密数据之前必须先安全地交换密钥。
对称加密算法的缺点:
(1)由于加解密双方都要使用相同的密钥,因此在发送、接收数据之前,必须完成密钥的协商分发,在公开的网络上如何安全传送密钥成为了一个严峻的问题。
(2)N个用户之间采用对称加密算法进行通信,需要的密钥对数量为N取2的组合,比如100个人通信时需要4950对密钥,如何对如此大数量的密钥进行管理成为另一个严峻的问题
常见的对称加密算法
流加密算法(stream algorithm)
流加密算法在算法过程中连续输入元素,一次产生一个输出元素。典型的流加密算法算法一次加密一个字节的明文,密钥输入到一个伪随机字节生成器,产生一个表面随机的字节流,称为密钥流。流加密算法一般用在数据通信信道,浏览器或网络链路上。
RC4