数据加密和解密:

安全实现的目标:
	机密性:,保证数据信息不泄露;
	完整性:integrety,保证信息不被篡改;
	可用性:availability,保证数据信息的内在价值;

威胁安全的行为:
	威胁机密性的攻击行为:窃听,网络嗅探,通信量分析;
	威胁完整性的攻击行为:篡改,伪装,重放,否认;
	威胁可用性的攻击行为:拒绝服务(DoS),分布式拒绝服务;(DDoS)

安全解决方案:
	技术:
		加密和解密:
			传统的加密方法:
				置换加密
				替代加密
			现代加密方法:
				块加密方法
	服务:
		用于抵御攻击而提供的为了实现上述安全目标而特别设计的安全服务;
			身份认证;
			访问控制;

加密方案: 因素: 加密算法和协议: 加密密钥:

加密算法和协议:
	对称加密算法:加密和解密使用同一密钥
		主流的加密算法:
			DES:Data Enctryption Standard,数据加密标准;
				64bits块,加密密钥长度56bits;
			3DES:经过NSA(美国国家信息安全局)重新编译升级;
			AES:Advanced Encryption Standard,高级加密标准
				加密密钥长度:128bits,192bits,256bits
			Blowfish
			Twofish
			IDEA
			RC4, RC6
			CAST5

		特性:
			1.每对通信主机都需要保有一个唯一的通信密钥,用于加密和揭秘数据;
			2.将原始的数据分割成固定大小的块,逐个加密;
			3.加密和解密速度非常快;
		缺陷:
			1.在一台主机上需要保有的密钥数量会比较多;
			2.密钥的分发非常困难;

	公钥加密算法(非对称加密算法):密钥是由私钥和公钥组成;公钥是在私钥中抽取生成的;
		私钥:512bits,1024bits,2048bits,4096bits,8192bits,16384bits;
		私钥:通过特定的工具随机创建生成,有使用者自己存留,务必保证其私密性;也被称为 secret key 或 private key ;
		公钥:通过特定的工具从私钥中抽取生成,仅仅是私钥的一部分;公开给所有人使用;被称为 public key ;
	主流的公钥加密算法:
		RSA:加密,数字签名;
		DSA:Digital Signature Algorithm,数字签名算法;有时此算法也被称为DSS,Digital Signature Standard;
		Elgamal:商业版(收费)

		特性:
			1.是用密钥进行加密和解密的时候,私钥加密的数据只能由与之对应的公钥才能解密,使用公钥加密的数据只能有与其对应的私钥才能解密;
			2.私钥的长度比较长,加密后的数据安全等级较高;

		缺陷:
			1.加密数据的时候,所消耗的系统资源较多,速度很慢,因此极少用来加密大量数据;

	公钥加密算法的用途:
		1.密钥交换:发送方使用接收方的公钥加密对称算法的密钥,将加密后的密钥,发送给接收方。接收方使用自己的密钥解密数据;
		2.数字签名:确保数据传输过程中发送方的身份的正确性;发送方使用自己的私钥进行加密,接收方使用发送方的公钥进行解密,进行身份确认;

	单向加密算法(Hash加密算法,数据指纹算法 ,不可逆):只能加密不能解密,又称为数据指纹提取;数据指纹即数据的特征码;
		主流的单项加密算法:
			md5:Message Digest  version5,信息摘要算法;
				128bits定长输出;
			sha系列:Security Hash Algorithm,安全的哈希算法;
				sha-1:160bits定长输出
				sha224:224bits定长输出
				sha256:256bits定长输出
				sha284:284bits定长输出
				sha512:512bits定长输出

		特性:
			1.定长输出
			2.雪崩效应:加密后的数据稍有改动,则解密后输出结果将发生翻天覆地的变化;

	
	认证协议:
		密钥交换算法:
			1.公钥加密
			2.DH算法:Diffie-Hellman
				用于在通信双方生成一对用于公钥加密算法的密钥对;
					A:p, g
					B:p, g

					A:x
					B:y

					A:p^x%g  --> B:(p^x%g)^y == p^xy%g
					B:p^y%g  --> A:(p^y%g)^x == p^xy%g



加密算法的应用方式:
	1.通信双方要互相交换各自的证书,并到信任的CA进行证书有效性认证;
	2.如果证书认证有效,发送方使用某种协商好的对称加密算法进行数据加密;对加密后的数据进行特征值抽取,用自己的私钥加密抽取出的特征值;以证明数据来源可靠性;发送方利用接收方公钥加密对称加密算法的密钥;
	3.接收方接受报文之后,先用自己的私钥解密对称加密算法的密钥;然后用发送方的公钥去解密被加密的特征值,证明数据来源的可靠性,再利用相同的单项加密算法计算数据的特征值,将两次特征值进行比较;以证明数据的完整性;再用对称密钥解密加密的数据即可;