这个章节会介绍一些比较有意思的东西,例如哈希函数,数字签名,身份认证等!
1.一个安全的认证 系统应满足什么样的条件?
合法的接受者能够检验所接受消息的合法性和真实性
合法的发送方对所发送的消息无法进行否认
除了合法的发送方之外,任何人都无法伪造和篡改消息
2.消息验证:验证消息的完整性和不可抵赖性
身份认证:鉴别用户身份
哈希函数
1.哈希函数必须具有哪些性质?
给定M ,很容易计算h
给定h,根据H(M) = h 推导出M很难,这个性质称为单向性
给定M,通过同一个H(`),计算出不同的h是很苦难的
弱抗碰撞性
强抗碰撞性
2.MD5:可将任意长度的消息经过变换得到一个 128位的散列值
MD5算法的简要概述:MD5以512个分组来处理输入的 信息,且每一个分组又被划分成16个32个子分组,经过了一系列的处理后,算法的输出由4个32个分组组成,将这4个32个分组级联后将生成一个128位散列值
MD5的算法步骤:
数据填充与分组
初始化散列值
计算散列值
3.SHA-1:输入是长度小于2^64位的消息,输出是160位的散列值,输入消息以512位的分组为单位进行处理
补位:先添加一个1,再添加若干个0
4.消息认证技术
对通信双方的验证可采用数字签名和身份认证技术 +认证 码
主要内容:
对敏感信息加密
保证数据的完整性
对数据和信息的来源进行验证
5.消息认证方法
在对称加密方式中,解决消息M无法被判断是合法的,方式为发送方在对消息M进行加密前,首先对消息通过校验函数F(;)产生一个校验码,将校验码附加在消息M之上,再进行加密
一般的加密方式为:A先使用自己的私钥进行加密,再使用接受方B的公钥Kbp进行加密,则同时即保证了机密性,又提供了消息认证的能力
6.基于哈希函数的消息认证:
在解密消息后,只需再次使用哈希函数,进行加密,比较两者的信息是否一致,即可完成对消息的认证
7.基于消息认证吗(AC)的消息认证
接受方与 发送方均具有相同的MAC值,则只需要在接受到信息时对mac值进行比对,就可以了
8.数字签名:
签名特征:
可信
无法伪造
无法重复使用
无法被篡改
不可否认性
9.数字签名的实现:直接数字签名,仲裁数字签名
直接数字签名:有时候还建议把原文件转移到一个很短的Hash值上面。
步骤:
发送方:对明文 使用哈希加密
发送方:生成报文摘要,用私钥对摘要进行加密
将加密后的数据连同m一起发送给接受方
接收方:用同样的哈希算法计算出新的报文摘要,再用发送方的公钥进行解密,比较报文摘要
弱点:依赖于发送方的私钥
10.仲裁数字签名:
引入仲裁方这一角色
11.这种方式的缺点在于:明文是直接发个仲裁者C的
数字签名标准(DSS)
1.Dss的核心是基于离散对数分解十份困难这一数学难题
身份认证
从加密的方法来看:
身份认证可分为
基于对称密钥的身份认证:引入密钥分发中心(KDC)进行分发密钥
基于公钥加密的身份认证:引入证书进行分发公钥
3.保密性和时效性是密钥交换的两个重要问题
4.重放攻击一般可分为:
简单重放攻击
可检测的重放
不可检测的重放
不加修改的逆向重放
5.对于重放攻击,一般是使用以下方式进行预防:
序列号
时间戳
随机数
6.为了消除字典攻击,可以使用(用户的身份,随机数,散列值)
7.哈希链方法:
8.基于对称密钥的双向身份认证
NS协议
9.基于公钥的身份认证
DS协议
WL协议
10.
11.
暂时就先写到这里