TCP/IP协议族学习笔记-2
第六部分安全性
对称密钥加密 | 不对称密钥加密 |
---|---|
密钥是双方共享的 | 密钥属于个人的,每个人生成并保存自己的密钥 |
在n个人组成的群体中,若使用对称密钥,则需要n(n-1)/2个共享密钥,对于人数达到百万的群体而言,对称密钥加密需要将近5000亿个共享密钥 | 在n个人组成的群体中,若使用不对称密钥,需要n个私人密钥,对于人数达到百万的群体而言,不对称密钥加密需要百万个私人密钥 |
基于对符号的替代和置换 | 基于应用数学公式计算数值 |
不对称密钥加密方法
说明:- 在不对称密钥加密方法中有两个不同的密钥:一个私钥,一个公钥。例如:Alice需要使用Bob的公钥加密得到密文,那么只有Bob的私钥才能解密密文得到明文。
- 提供安全责任几乎全部由接收者Bob承担。
RSA加密系统—最常见的不对称密钥加密方法(公钥加密方法)
说明:- Alice用
C=Pe(模n)
从明文
P
生成密文
C ;Bob用 P=Cd(模n) 从Alice发来的密文中读取明文 - RSA适用于较短的报文
- Alice用
C=Pe(模n)
从明文
P
生成密文
报文的完整性
有些环境下,不需要保密性但需要有完整性。
为了保护一个报文的完整性,这个报文要经过一个称为加密散列函数算法的处理,这个函数为报文产生一个压缩的印记,称为摘要。
说明:- 为了检查报文的完整性,接收者也要运行相同的加密散列函数,并通过比较新旧两个摘要来判断报文是否被改动。
- 加密散列函数以任意长度的报文作为输入,并产生固定长度的报文摘要。
- 散列算法有:MD2、MD4、MD5(MD:message digest),美国国家标准和技术学会开发的SHA(安全散列算法:Secure Hash Algorithm,也有很多版本)
确保报文的完整性和数据来源的鉴别的方法
- 报文鉴别
说明:
Alice利用散列函数从共享密钥和报文(K与M)中产生MAC(报文鉴别码:message authentication code ,MAC)。把报文和MAC一起通过非安全信道发送给Bob,Bob将报文和MAC剥离,再用共享密钥和报文生成新的MAC并比较两个MAC是否一致。- 数字签名
1 传统签名和数字签名的区别:
传统签名 数字签名 传统签名是文档的一部分 数字签名是一个独立的文件 通过比较签名进行验证 用某种验证技术进行验证 签名和文档是一对多关系,可以使用相同的签名签署多份文档 签名和报文是一对一 签名的文档副本和原件可区分 可重复性:签名的文档副本和原件不可区分,除非使用时间戳。例如:Alice发送一个文档,指示Bob向Eve付款,如果Eve截获文档的签名,她就可以在之后重放这个文档,以便再次要求Bob付款。
2 签署人利用他的私人密钥,通过签名算法来签署文档,验证人利用签署人的公钥,用验证算法来验证文档
3 在数字签名系统中,报文通常都很长,但又必须使用不对称密钥机制,解决方法就是对报文的摘要进行签名。
4 数字签名可以提供报文鉴别、报文完整性(因为报文变则签名变)、通过第三方实现不可否认性、但不可提供保密性
通过第三方实现不可否认性如图:
5 数字签名标准(Digital Signature Standard,DSS)- 报文鉴别