信息安全复习(二)公钥加密和消息认证
信息安全(二)公钥加密和消息认证
公钥加密与消息认证
-
安全Hash函数 H
单向性与抗碰撞性
1,H可以应用于任意长度的数据块,产生固定长度的散列值
2 ,对每一个给定的输入m,计算H(m)是很容易的
3,给定Hash函数的描述,对于给定的散列值h,找到满足H(m) = h 的m的计算是不可行的
4,给定Hash函数的描述,对于给定的消息m1,找到满足m2!=m1 且 H(m2) = H(m1)的m2在计算上是不可行的
5,找到任何满足H(m1) = H(m2) 且 m1!=m2 的消息对(m1,m2)在计算上是不可行的
-
不采用加密的消息鉴别方法
生成一个消息鉴别标签附于每个消息后
消息鉴别码 (MAC)
MAC是关于消息和**的一个函数MAC=F(K,M)
Hash函数
计算MAC:MAC是关于消息和**的函数
MAC=F(K,M)
使用一个双方共享的秘***生成一个固定大小的小数据块,并加入到报文中,称MAC,或密码校验和(cryptographic checksum)
用户A和用户B,共享**K,对于报文M,MAC=CK(M)
MAC算法与加密算法的区别
MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少
MAC有固定的长度
MAC结构的重要性,例如,**足够长+加密算法足够好≠安全
MAC需要对全部数据进行加密
MAC速度慢
Hash是一种直接产生验证码的方法
Hash函数: h=H(x), 要求:
可作用于任何尺寸数据且均产生定长输出
H(x)能够快速计算
使用两个**对于保密性、**分发和认证都产生了意义深远的影响
公钥加密方案由6个部分组成:
明文
加密算法
公钥和私钥
密文
解密算法
如果有n个用户,两两之间要进行保密通信,则在对称加密中,系统一共需要C_n^2个**,即n(n-1)/2个**;而在公钥加密中,系统只需要2n个**
EIGamal : 基于离散对数问题
Diffie-Hellman**交换
以扩展为多用户
可以扩展到
有限域
椭圆曲线
Galois域GF2k
ElGamal加密和签名应用类似的思想
数字签名是传统签名的数字化,基本要求:
能与所签文件“绑定”
签名者不能否认自己的签名
签名不能被伪造
容易被验证
数字签名用于MAC