【小工匠聊密码学】--消息摘要-算法概述

1、消息摘要概述

  数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。

2、消息摘要算法特点

2.1 变成输入、定长输出

无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出。

2.2 输入不同、摘要不同,输入相同、摘要相同

只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。这正是好的消息摘要算法所具有的性质:输入改变了,输出也就改变了;两条相似的消息的摘要确不相近,甚至会大相径庭。从理论上来说,不管使用什么样的摘要算法,必然存在2个不同的消息,对应同样的摘要。因为输入是一个无穷集合,而输出是一个有限集合,所以从数学上来说,必然存在多对一的关系。但是实际上,很难或者说根本不可能人为的造出具有同样摘要的2个不同消息。

2.3 单向、不可逆、散列值不同、原始值不同

消息摘要是单向、不可逆的。只能进行正向的信息摘要,而无法从摘要中恢复出任何的原始消息,甚至根本就找不到任何与原信息相关的信息。当然,可以采用强力攻击的方法,即尝试每一个可能的信息,计算其摘要,看看是否与已有的摘要相同,如果这样做,最终肯定会恢复出摘要的消息。但实际上,要得到的信息可能是无穷个消息之一,所以这种强力攻击几乎是无效的。

2.4 “碰撞” 难找到

好的摘要算法,没有人能从中找到“碰撞”,虽然“碰撞”是肯定存在的。即无法找到两条不同消息,但是它们的摘要相同。

3、消息摘要的分类

(1)MD(Message Digest) 消息摘要算法 (2)SHA(Secure Hash Algorithm) 安全散列算法 (3)MAC(Message Authentication Code) 消息认证码算法

4、消息摘要用途

一般地,把对一个信息的摘要称为该消息的指纹或数字签名,信息摘要算法的主要用途是信息完整性校验.

5. 散列算法破解

(1) 算法破解 已知数据A和消息的散列值,找到另外一个数据B和A的散列值相同。例如2005年2月,王小云破解SHA-1 算法。

算法破解

(2) 假破解 根据数据库查询散列值,查询数据对应的明文。数据树数据越多破解的概率越大,例如密码使用md5加密,因为密码长度一般都是1-8位的,所以数据库可以穷举这些值,提供逆向查询。

--------------------------------------------

如果读完觉得有收获的话,欢迎点赞、关注、加公众号【小工匠技术圈】

原文发布于微信公众号 - 小工匠技术圈(xgn177971793771)

原文发表时间:2018-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PaddlePaddle

PaddlePaddle发布新版API,简化深度学习编程

PaddlePaddle是百度于2016年9月开源的一款分布式深度学习平台,为百度内部多项产品提供深度学习算法支持。为了使PaddlePaddle更加易用,我们...

3268
来自专栏杨熹的专栏

用 Pipeline 将训练集参数重复应用到测试集

当我们对训练集应用各种预处理操作时(特征标准化、主成分分析等等), 我们都需要对测试集重复利用这些参数。 pipeline 实现了对全部步骤的流式化封装和管理...

3337
来自专栏WOLFRAM

Mathematica 11.2 中文版现已发布!

1173
来自专栏专知

推荐一些有助于理解TensorFlow机制的资料(一)

1182
来自专栏人工智能头条

资源 | 深度学习图像标注工具汇总

1141
来自专栏IT派

TensorFlow、MXNet、PaddlePaddle三个开源库对比

本文从定位、框架使用、分布式构成三个方面比较了TensorFlow、MXNet、PaddlePaddle三个框架。

1090
来自专栏目标检测和深度学习

深度学习图像标注工具

对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。但是数据标注是个耗时耗力的...

1066
来自专栏CSDN技术头条

基于OpenGL ES的深度学习框架编写

背景与工程定位 背景 项目组基于深度学习实现了视频风格化和人像抠图的功能,但这是在PC/服务端上跑的,现在需要移植到移动端,因此需要一个移动端的深度学习的计算框...

2898
来自专栏开源FPGA

IIC协议学习笔记

  IIC总线(Inter-Integrated Circuit)即集成电路总线,是PHILIPS公司设计出来的一种简单、双向、二线制、同步串行总线。IIC总线...

3266
来自专栏AI研习社

问答 | tensorflow 怎么配置非数据并行分布式?

假设模型有两个conv层和1个fc层,有3台服务器每台各一块显卡,请问要怎么实现把计算图拆成3部分,每块显卡分别计算一个层,而不是把计算图完整复制3份放到3块卡...

1223

扫码关注云+社区