密码技术学习二:认证

1、单向散列函数

概念:单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性;

        单向散列函数输出的散列值也称为消息摘要或指纹。

 

1.1、MD4、MD5

MD4:1990年Rivest设计的单向散列函数,能够产生128位的散列值。不过现在已经不安全了。

MD5:Rivest1991年设计的,同样产生128位的散列值,也不安全了。

1.2、SHA-1、SHA-256、SHA-384、SHA-512

这些都是美国国家标准技术研究所设计的,SHA-1能产生160位长度的散列值,其中SHA-256、SHA-384、SHA-512能分别产生长度为256、384、512比特的散列值,但是消息长度也有上限,SHA-256是2^64比特,SHA-384和SHA-512消息长度上限是2^128比特。

1.3、单向散列函数无法解决的问题

单向散列函数能够辨别出篡改,但无法辨别伪装,因为有可能你得到的散列值,是另有其人通过一样的单向散列函数计算后给你的。想解决这个问题还要用到认证;用于认证的技术包括消息验证码和数字签名。

2、消息认证码

概念:消息认证码是一种确认完整性并进行认证的技术,取三个单词的首字母大写,简称MAC。

可以勉强理解为,消息认证码是密钥加密过的散列值。

 

2.1、密钥配送问题

这个问题和对称密码中密钥配送问题很像,解决办法也有:密钥分配中心、公钥密码等。

2.2、无法防止否认

假如A收到了包含MAC的消息,然后密钥只有A和B共享的,所以作为A一定能确定消息是B发送的,但是A无法像第三个人证明消息是B发送的。因为在第三个人看来,密钥只有A和B有,B能说“我没有给A发消息,A可能是自己编的消息”。结论:A和B虽然都明白是谁发的,但是第三者无法确定,这叫做否认,消息认证码无法解决否认。

3、数字签名

3.1概念:

数字签名技术中有两种行为:

  • 生成消息签名:由消息发送者来生成签名,即由消息内容计算数字签名的值。
  • 验证消息签名:一般有消息接收者验证,也可由需要验证消息第三方来完成。

注意:

        数字签名相当于现实世界中的盖章签字,使用数字签名能识别篡改和伪装,因为数字签名技术中消息发送者和接收者使用了不同的密钥;数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的,此外,签名密钥只能由签名的人持有,而验证密钥可以由任何需要验证签名的人持有。

        这里发现没,它和公钥密码十分类似,公钥密码中是,加密密钥无法进行解密,解密密钥只有需要解密的人持有,而加密密钥可以是任何需要加密的人持有。没错,数字签名就是将公钥密码“反过来使用

 

3.2具体实现方法

  • 直接对消息进行签名
  • 对消息的散列值进行签名

3.2.1直接对消息进行签名

前提是发送消息者事先生成密钥对,将验签密钥(公钥)交给消息接收者。

 3.2.2对消息的散列值签名

        上面方法是对消息进行签名,若是消息长度太大,那么加密的过程会非常耗时,所以可以通过对消息的散列值进行签名,即消息的发送者和接收者都多了一步计算单向散列函数的步骤:

 3.3作用

  • 识别篡改:就是验签过程,若是比对失败那就是篡改了;
  • 防止否认:因为签名密钥只有一个人有,就是发送者,它无法抵赖;
  • 不保证机密性:因为连消息原文都直接发送过去了,肯定不存在机密性。

4、证书——为公钥加上数字签名

4.1、证书简介

公钥证书:和驾照很类似,里面有本人的各种个人信息和相关部门的公章,证书也有所有者的个人信息以及相关认证机构施加的数字签名,只要看到公钥证书我们就知道认证机构认定此证书属于本人,公钥证书简称证书。

证书的应用场景

 简单理解,证书就是由第三方保证公钥的合法性。

证书标准规范X.509:大致包括三部分内容

  • 签名前的证书:签名对象的信息
  • 数字签名算法:对证书签名时所使用的算法
  • 数字签名:对证书施加的数字签名

4.2 公钥基础设施PKI

公钥基础设施:为了更有效地运用公钥而制定的一系列规范和规格的总称。

组成要素

  • 用户——使用PKI的人
  • 认证机构——颁发证书的人
  • 仓库——保存证书的数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿星_Alex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值