加密将明文转换成密文,解密将密文转换成明文
加密的目的是为了保护数据的私密性
要求密文只有授权的实体才能解密
加密算法已不再保密,都是公开的技术
 
OSI各层的加密技术
l 应用层加密,由应用层提供
l 会话层加密,SSL技术(安全套接层)
l 网络层加密,IPSec ×××
1.       IPSec ×××对数据包IP头部后的字段进行加密,由此支持基于IP的路由转发
l 物理与链路层加密,加密机(物理层)和802.1AE(链路层)
1.       加密机需要直连专线,专线两端部署加密机,因为它是将物理传输的信号加密,无法支持路由和二层转发,
2.       802.1AE在二层节点之间进行加解密,每一个二层节点间都要进行加解密,在二层节点中执行明文处理,由此可支持在节点间的QOS等
 
好的加密算法应该是
l 可以抵御密码学***
l 密钥长度可变,足够长
l 支持雪崩效应
 
对称密钥算法和非对称密钥算法
对称密钥算法
l Sender and receiver must share a key(发送者和接受者使用相同的一个密钥)
l Usual key lenth of 40-256 bits(密钥长度一般在40-256bit,DES=56,3DES=168,AES=256或更长)
l DES,3DES,RC2/4/5/6,AES encryption algorithms
l 特点:速度快;使用简单的逻辑操作实现,易于实现硬件加速;可用于大块的数据加密;密钥难以管理
非对称密钥算法
l 非对称密钥算法也叫做公共密钥算法(public key system)
l 密钥长度一般在512-2048(非对称密钥算法和对称密钥算法的数学理论基础不同,所以不能单单从密钥长度对比两种算法的安全性)
l RSA的数学理论基础是素数理论,就是很难从两个很大的素数的乘积推导出这两个素数
l RSA,DH
l 特点:非常慢;密钥管理简单;只能加密很小的数据量,主要用于密钥交换和数字签名
 
块加密和流加密
l 块加密(block cipher),将明文分成固定长度块,逐块加密;基于算法不同快长度不同;DES,3DES,AES
l 流加密(steam cipher),逐位加密,不改变信息长度,广泛用于无线加密,RC4
 
DES(data encryption standard)
广泛使用
l 1975年IBM发明
l 56位的固定长度密钥
l 算法经历了30余年的检验,几乎没有任何漏洞,但密码长度过短,容易受到暴力破解(brute force attacks)
l 使用简单的逻辑操作,易于实现硬件加速,而软件运行效率很低
DES块加密的两种模式
1.       ECB(electronic code book)电子密码本
2.       CBC(cipher block chained)加密块链接
使用DES应:
l 经常修改密码,防止暴力破解
l 在一个安全的信道交换密钥
l 最好使用DES的CBC模式
 
3DES
l 密钥空间比DES扩大了3倍,168位密钥长度
l 很难暴力破解
l 基于一个很好的算法DES
l 使用3个KEY,对一个数据块使用第一个KEY加密,再使用的二个KEY解密,再使用第三个KEY加密,这是EDE方式;或者简单的使用三个KEY连续三次加密
 
AES(advanced encryption standard)
l 1997年颁布,用于替代DES
l 区别于DES,它使用变长密钥和块长度,128,192和256
l 密钥和块长度可以以32位的长度增加
l AES的软件和硬件运行效率都很高
l 无线WPA2使用AES
RC4
l 它是一种流加密算法
l 软件运行效率非常高
l 广泛用于SSL加密,还有老的无线WEP,WPA
 
RSA
l 1977年发明
l 公共加密系统
l 可变长度密钥(512-2048,实际使用中应采用1024以上的密钥长度)
l 基于大素数分解的数学难题
l 使用密钥对公钥和私钥(public key and private key)
l 不能从公钥推导出私钥
l 只能用一个密钥加密用另一个密钥解密
l 密钥无需频繁更换
 
 
散列算法
l 用于保障数据完整性
l 单向(one-way)
l 固定长度输出
l 不可逆
l 雪崩效应(avalanche effect)
l 用途:认证;使用数字签名保障数据与文档的完整性;IPSec ×××和路由协议的验证
l 任意长度输入;固定长度输出;计算很快;单向;冲突避免
散列函数(HASH函数)
1.       MD5(message digest 5,消息摘要5)128位固定输出
2.       SHA(Secure hash algorithm安全哈希算法)160位输出
 
HMAC
l Hash message authentication code 哈希消息认证代码或密钥化散列
l 增加一个key一同做HASH
l 需要双方预先知道这个共享KEY
l 在保障完整性(HASH实现)的基础上实现了源认证(key实现),消除了HASH容易受到中间人***的问题
l HMAC工作原理(方式),简单来说就是将信息和与共享的KEY一同进行HASH,将信息和HASH值发送(不传送KEY),接收方将信息加上自己的key做HASH实现验证
 
数字签名
l 简单来讲就是将信息HASH后使用私钥加密随信息发送,接收方使用发送者公钥解密摘要信息并计算信息HASH值,从而实现完整性和身份验证