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

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 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

使用机器学习算法对流量分类的尝试——基于样本分类

导言 机器学习方法目前可以分为5个流派,分别是符号主义,联结主义,进化主义,贝叶斯和Analogzier。具体到实例有联结主义的神经网络,进化主义的遗传算法,贝...

63912
来自专栏jerryteng的专栏

php根据经纬度计算距离和方向

不过现在有了更多的可选项了,例如geohash,存储geo的服务,mogodb,等等

3915
来自专栏量化投资与机器学习

深度学习项目

Github上比较受欢迎的深度学习项目(Top Deep Learning Projects),按照获得星星个数的排名,包括一些教程项目等。 ? ? ? ?

1926
来自专栏Python中文社区

Python爬虫基础:验证码的爬取和识别详解

今天要给大家介绍的是验证码的爬取和识别,不过只涉及到最简单的图形验证码,也是现在比较常见的一种类型。

1642
来自专栏AI研习社

Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换

近期,微软开源了 MMdnn,这是一套能让用户在不同深度学习框架间做相互操作的工具。比如,模型的转换和可视化,并且可以让模型在 Caffe、Keras、MXNe...

3798
来自专栏AI科技大本营的专栏

重磅消息 | 深度学习框架竞争激烈 TensorFlow也支持动态计算图

今晨 Google 官方发布消息,称 TensorFlow 支持动态计算图。 原文如下: 在大部分的机器学习中,用来训练和分析的数据需要经过一个预处理过程,输入...

2685
来自专栏机器之心

开源 | 深度安卓恶意软件检测系统:用卷积神经网络保护你的手机

选自GitHub 机器之心编译 参与:Panda 恶意软件可以说是我们现代生活的一大威胁,为了保护我们电子设备中的财产和资料安全,我们往往需要寻求安全软件的帮助...

2877
来自专栏瓜大三哥

基于FPGA的Canny算子设计(二)

滞后阈值分割电路设计 滞后阈值需要两个阈值:一种方法是可以根据所要提取的图片,提前定好这两个阈值;另一种方式是采用自动阈值法(如大律法)。这里采用第一种方法。 ...

2486
来自专栏大数据文摘

干脆面君,你给我站住!你已经被TensorFlow盯上了

1823
来自专栏大数据文摘

目标检测必须要OpenCV?10行Python代码也能实现,亲测好用!

本文作者和他的团队构建了一个名为ImageAI 的Python库,集成了现今流行的深度学习框架和计算机视觉库。本文将手把手教你构建自己的第一个目标检测应用,而且...

1746

扫码关注云+社区