密码学篇(认证)

本文部分摘取自:https://blog.csdn.net/xjhhjx/article/details/81603107

序言

密码技术的目的很明确,就是为了解决信息安全问题。
就本人从事行业来说,可以用客户端与服务器端的数据通讯过程举例(考虑客户端与服务器端通讯的双向性)。

信息安全可分为四类特性:

1、数据保密性:为了防止通讯过程中信息被窃听,对应的密码技术有对称加密非对称加密。(用户敏感数据不应明文传输)

2、数据完整性:为了防止通讯过程中信息被篡改,对应的密码技术有单向散列函数、消息认证码、数字签名。

3、认证:为了防止攻击者伪装成真正的发送者,对应的密码技术有消息认证码和数字签名。

4、数据抗抵赖:为了防止发送者事后否认自己没有做过,对应的密码技术为数字签名。

3.保证数据的真实性(认证)

要保证数据来自发送方,即确认消息来自正确的发送者,称为消息认证。

3.1 消息认证码
  消息认证码(Message Authentication Code,简称MAC)是一种可以确认消息完整性并进行认证的技术。消息认证码可以简单理解为一种与密钥相关的单向散列函数(对称加密+哈希函数,两者结合起来共同应用)。

例:

1).A把消息发送给B前,先把共享密钥(对称加密密钥)发送给B。

2).A把要发送的消息使用共享密钥计算出MAC值,然后将消息和MAC发送给B。

3).B接收到消息和MAC值后,使用共享密钥计算出MAC值,与接收到的MAC值对比。

4).如果MAC值相同,说明接收到的消息是完整的,而且是A发送的。

这里还是存在对称加密的密钥配送问题,可以使用公钥加密方式解决。

优点:

可以保证数据的完整性和真实性。

缺点:

接收方虽然可以确定消息的完整性和真实性,解决篡改和伪造消息的问题,但不能防止A否认发送过消息。

例:

如果A给B发送了消息,B接收到之后,A否认自己发送过消息给B,并抵赖说,“虽然我和B都能计算出正确的MAC值,但是可能是B的密钥被攻击者盗取了,B收到的是攻击者给B发的消息。”

问题:

如何让发送方无法否认发送过数据?

3.2 数字签名(数据抗抵赖)
  数字签名(Digital Signature)可以解决发送方否认发送过消息的问题。

数字签名的重点在于发送方和接收方使用不同的密钥来进行验证,并且保证发送方密钥的唯一性,将公钥算法反过来使用可以达到此目的:A发送消息前,使用私钥对消息进行签名,B接收到消息后,使用配对的公钥对签名进行验证;如果验证通过,说明消息就是A发送的,因为只有A采用配对的私钥;第三方机构也是依据此来进行裁决,保证公正性。

例:

1).A把消息用哈希函数处理生成消息摘要,并报摘要用私钥进行加密生成签名,把签名和消息一起发送给B。

2). 数据经过网络传送给B,当然,为了安全,可以用上述的加密方法对数据进行加密。

3). B接收到数据后,提取出消息和签名进行验签。采用相同的哈希函数生成消息摘要,将其与接收的签名用配对的公钥解密的结果对比,如果相同,说明签名验证成功。消息是A发送的,如果验证失败,说明消息不是A发送的。

问题:

依然是,如何确保公钥的合法性?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值