密码学读书笔记——6

【消息验证码和密钥建立】
消息验证:
【MAC】MAC是基于对称密钥的,原理很简单,就是将验证标签附加到消息后面,
用一个共享密钥计算MAC(k,x)=m 传输过去后执行相同操作,如果不一样则证明消息被修改
MAC比数字签名要快,但是不提供不可否认性。要么基于分组密码,要么基于哈希函数
验证码属性:
①校验和②对称性③输入任意长度④输出任意长度⑤消息完整性⑥消息验证⑦基于对称密钥,没有不可否认性
常用的实现mac函数的方法是:选择哈希函数做为基本块,如SHA-1
将消息和密钥一起进行哈希,如h(x||k)或者h(k||x)这样的前缀后缀的哈希
h(k||x):计算额外消息分组对应的MAC所需的输入为前一个哈希的输出和xn+1,而不需要密钥k,容易受增加分组xn+1的攻击
h(x||k):好一些,需要攻击者找到两个哈希函数内的冲突使得h(x)=h(x0)
【HMAC】
密码学读书笔记——6_第1张图片
比纯MAC强的就是进行了填充和混淆,每个分组的hash并不独立
【CBC-MAC】
用分组加密的方法进行MAC的加密,注意,验证的时候解密不是用相同操作,而是使用CBC的逆解密过程。
CBC带有初始向量IV,最后一轮输出就是传输的MAC值。

【密钥建立】
密钥刷新:密钥在一定时间内有用,且必须是单向函数,一般可以用nonce一次随机数
或者HMAC的方式生成密钥衍生函数
n2秘钥分配:网络中有约n^2密钥在传输,需要用一个安全信道提前预分配,不需要每次都一个一个分配
【非对称密钥建立】
密钥分配中心:KDC,是一个服务器,所有用户完全信任他。每个用户与KDC共享唯一密钥KEK,
KDC生成一个临时密钥,为两个用户提供【对称密钥的加密】,生成两个消息,提前分送给Alice和
BOB(发送方和接收方)
安全性:无法防御重演攻击,用旧密钥伪装新密钥攻击
密钥确认攻击:oscar欺骗KDC和其中一方通信方,因为双方沟通建立在,对于KDC信任
若KDC被欺骗,则可以被攻击
kerberos:可以抵御上两个攻击高级协议
使用生存周期加密+时间戳机制,防范重演攻击
向KDC发送nonce质询,同时在消息中包含双方身份ID,确认是在与对方通信。
【对称
密钥建立】
针对公钥算法的严重攻击:中间人攻击,截获双方的公钥,并用自己的公钥替换,随后在中间
做一个中介沟通的角色
防范中间人攻击:
【证书】
需要对公钥进行验证,确认密钥是不是真的是某一方的——(Kpuba,IDa)
证书:(Kpuba,IDa),sigkpr(kpub,IDA)
·用证书在某个用户身份和公钥进行绑定。签名是由CA(证书颁发中心发行提供)
·证书要求接受者有正确的验证密钥,就是公钥,解密出来得到的ID内容和对方ID信息一致。
·虽然使用证书,也必须要基于信任CA的公钥,但是一般随着软件安装,OS安装,就自带了
CA的已验证信道
双方在通信计算密钥前,先解密对方证书验证身份。

信任链:CA对其他公钥签名,则,Alice就知道他可以信任这些被签名的公钥。
X.509证书:证书不止包含了身份ID和密钥,还包含了很多东西——算法,颁发者有效期,签名
等等
证书授权链:CA全世界有很多个,每个用户通信前去验证的CA是不一样的,需要CA之间互相验
证。再验证出来对方的个人证书
证书吊销:过去的证书需要可以吊销,让它不可以再使用

最广泛的非对称密钥建立协议就是DH密钥交换
CA没必要一直在线,他的CA密钥存在即可,而KDC需要一直联网在线,过手两边的消息。

你可能感兴趣的