0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

信息摘要算法:简要分类和一般应用

嵌入式物联网开发 来源:嵌入式物联网开发 作者:嵌入式物联网开发 2022-09-04 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通过本文的阅读,你将会了解以下几部分内容:

什么是信息摘要算法

常见的信息摘要算法有哪些以及它们的特性和区别是什么?

信息摘要算法的应用场景有哪些?

什么是信息摘要算法?

信息摘要算法是一种对“信息”进行【摘要化】处理的算法。通俗地来说,就好比本文,假设它很长,那么读者在第一时间看到它的时候并不会完全阅读全文,而是往往会先去读一下文章的【摘要】,通过文章的摘要部分,简要了解下文章的主要内容。类似地,在信息密码学领域,同样有这种的操作,这就是信息摘要算法的产生背景。

假设有一段数据(专业术语叫“消息”),经过【信息摘要算法】处理后,它将变成一段固定长度的【信息摘要】,用公式表示如下,其中M表示消息原文,D表示输出的消息摘要,P表示信息摘要算法。

P(M with any length) = D(with fixed length)

通过公式,我们可以很直观地看出,信息摘要算法的输入数据长度是可以为任意长度,但是在实际使用的过程中,倘若输入数据的长度过于长,我们会采用将输入数据块采用数据分组的方式一步步输入,最后得到信息摘要结果的输出。而输出的信息摘要,通常都是固定长度的,至于信息摘要结果的固定长度是多少,是与具体的摘要算法相关的,下文会详细介绍各种信息摘要算法的摘要输出情况。

还有一点,公式中并没有体现“加密和解密的相互过程”,也就是说【信息摘要算法是单向的,不可逆的】。严格来说,它并不是一种【加密】算法,仅仅是【摘要】算法。由于它计算的不可逆性,所以经信息摘要算法计算出来的信息摘要D,一定程度上就代表了信息原文M。倘若有原文M1和原文M2,经过相同的信息摘要算法P,得到相同的信息摘要D,这种情况在密码学上,我们称之为【碰撞】。一般而言, 好的摘要算法,没有人能从中找到【碰撞】或者说极度难找到。虽然【碰撞】是肯定存在的(碰撞即不同的内容产生相同的摘要),但因目前信息科学发达程度非常高,计算机的运算能力得到了前所未有的提升,仅通过计算机运算的暴力破解,某些较弱的信息摘要算法就能被【碰撞】成功。

常见的信息摘要算法

常见的信息摘要算法有:MD2/4/5、SHA1/SHA224/SHA256/SHA384、SM3算法、MAC算法等。

MD(Message Digest):消息摘要

MD算法,是诞生于比较早的消息摘要算法,在网络应用上也比较常见,比如在某个网站上下载一个文件,通常它会标识该文件的MD5值,当下载者完成下载文件到本地之后,使用工具对下载的文件执行MD5计算,求出一个MD5摘要值,与网站上给出的参考MD5值进行对比;如果两者相等,则表示下载的文件是可靠的,没有被篡改过的;反之,如果MD5值对不上,则表明下载的文件是被篡改过的,可能是网络攻击者投放的病毒携带文件或者是在下载的过程中文件出现了损坏等情况,此时应该对文件进行删除操作。

MD系列的算法主要有MD2、MD4、MD5,数字值越大表示MD算法的版本越高,从安全性上说:MD5 > MD4 > MD2,自然破解难度MD5是最高的。

MD系列的信息摘要算法,输出的信息摘要长度都是固定的128bits,即16字节;当不同的信息输入时,产生的信息摘要也不相同;反之,当信息摘要相同,我们可以认为信息的明文是相同的。

SHA(Secure Hash Algorithm):安全散列

SHA系列的算法从版本上划分有SHA-1和SHA-2;SHA-1和SHA-2是该算法的两个不同版本。它们两者之间在构造上(散列结果是怎样被原始数据创建出来的)和签名的位数上都有不同和签名的位长。你应该把SHA-2看作是SHA-1的继承者,因为这是一个整体上的改进。

SHA-1就是我们常见到的SHA1;SHA-2主要有SHA224、SHA256、SHA384、SHA512等等,不同的数字代表信息摘要输出的位数。与MD系列算法类似,数字值越高表示摘要算法的安全性越高,计算的复杂性也越大;但不同于MD算法的是,SHA算法每个算法输出的信息摘要长度是不一样的。

SHA1,产生的信息摘要为160bits,即20字节

SHA224,产生的信息摘要为224bits,即28字节

SHA256,产生的信息摘要为256bits,即32字节

SHA384,产生的信息摘要为384bits,即48字节

SHA512,产生的信息摘要为512bits,即64字节

更为详细的SHA算法介绍,可以参考: SHA算法 - block2016 - 博客园

SM(Shangyong Mima):国密算法,即商用密码

经查证,国密算法的英文字母缩写SM,其实是【商用密码】的中文拼音首字母简写。国密即国家密码局认定的国产密码算法,即商用密码。

在国密算法的列表中,SM3算法就是实现了类似MD算法和SHA算法的信息摘要算法。它和其他2种摘要算法一样,都是不同长度的信息输入,产生固定长度的摘要输出。不同的是,它输出的信息摘要长度固定为256bits,即32字节。在实际使用过程中,SM3算法比较少会单独使用,而是配合SM2【非对称加密算法】配合使用,实现数字验签和消息验签的应用。

MAC(Message Authentication Code):消息认证

MAC算法不同于以上3种信息摘要算法;MAC算法是带密钥的Hash函数:消息的散列值由只有通信双方才知道的秘密密钥K来控制。此时Hash值称作MAC。表达公式如下所示,其中M表示信息原文,P表示MAC算法,MAC表示输出的MAC值,K表示MAC密钥:

P(M with any length) by K = MAC(with fixed length)

通过公式我们可以发现,计算MAC通常会有KEY的参与,那么在信息安全通讯领域,接收方要想验证收到的数据是否正确,就需要利用以上公式,输入MAC密钥重新计算一遍MAC值,然后对比计算值和收到的MAC值;若相等才认为数据是合法。这里涉及到一个MAC KEY,发送方和接收方对相同的数据进行MAC运算,能得到相同MAC值的前提,除了两者需使用相同的MAC算法外,还需要保证两者的MAC KEY是一致的(通常计算MAC采用的是对称加密算法)。至于,在实际生产应用过程中,如何保证两者的MAC KEY是一致的,或者说MAC KEY是如果从一方传递到另一方的,这又是另一个话题,这种应用场景,在POS机与银行后台信息交互的安全性,就是利用MAC KEY的。

MAC算法是一个统称,它很多种实现,在POS行业,常用的MAC算法有CUP模式、EMV2000模式、或者自定义形式的MAC算法。MAC算法的核心是如何将输入数据分组,利用MAC KEY做一些XOR、移位、加密等操作,使得输入数据散列化,最后再利用MAC KEY执行加密操作(通常为对称加密)得到MAC值。

值得注意的是,虽然MAC算法有MAC KEY的参与,但是它计算过程依然是单向的,不可逆的,这也是为什么会把它归为【信息摘要算法】的主要原因。

信息摘要算法 信息输入长度 摘要输出长度 密钥 安全性
MD5 * 128bits(16字节) 低,有被碰撞的可能性
SHA1 * 160bits(20字节) 低,有被碰撞的可能性
SHA224 * 224bits(28字节) 较高
SHA256 * 256bits(32字节) 高,推荐使用,最长使用
SHA384 * 384bits(48字节) 高,推荐使用
SHA512 * 512bits(64字节) 高,高安全性场景下推荐使用
SM3 * 256bits(32字节) 高,推荐使用
MAC算法 * 视不同的MAC算法而不同 有的是8字节,有的是16字节 高,除非密钥被破解
注:表中表示输入长度为“任意值”;此处的任意值,通常也是有限制的,比如SHA256,应小于2的64次方,而SHA512,*应小于2的128次方。

信息摘要算法的应用场景

信息摘要算法的应用场景只要有以下几种:

网络文件下载

前面也简单提到了,在网络文件下载的时候,通常会有附上对应下载文件的摘要值,常用的是MD5或SHA1值;这个主要目的是给下载者在下载完网络文件后,做最后的文件正确性和完整性的确认。如果计算出来的摘要值,与网站上的摘要不相等,我们应认为下载的文件是不可信任的,应当做删除处理。

数字签名和信息验签

在产生数学签名的过程中,通常会有一步是对输入数据原文做摘要运算,这样做的主要目的是将输入数据原文迷你化。由于经摘要算法处理后,信息摘要的长度都是一定的,所以在做签名运算的时候,只需要对信息摘要做签名运算,在一定程度上就是输入信息的原文做签名运算。输入数据签名后,发送方会将签名数据附在输入信息的尾部,一同发送给接收方。而在验签流程中,接收方收到发送方的信息原文和签名值,首先需要做的是根据双方协商的信息摘要算法,做同样的摘要运算,得到摘要值M',然后使用密钥对签名数据进行解密运算,得到发送方的摘要M;如果M' = M,则表示验签通过,接收的数据是可任性的。

关于数字签名的具体细节,后续会有更为详细的文章做更进一步的介绍,比如常见的签名算法是怎么工作的,等等。

安全报文传输

这种应用场景,主要是MAC算法的应用,最常见的就是POS与银行后台的报文传输。由于涉及到金融风险,所以在POS机与银联后台通讯的过程中,除了对个人账户的敏感信息(如卡号、卡密码)等做加密处理外,还需要对整一个通讯报文做MAC计算,在发送报文的时候,MAC值附在原始的密文后面以供接收方对接收的密文做MAC校验。至于为何要这样做,就是为了保证通讯报文的其他信息要素不能被篡改,比如消费的金额。试想下,如果你在超市消费了1.00元,但是由于报文被截取了,攻击者将报文中的消费金额篡改为100.00元;这种情况下,除非报文攻击者拿到了POS与银行后台通讯的MAC KEY,否则它计算出来的MAC值必定与银行后台计算的MAC值对不上,进而被银行后台当做非法报文,做丢弃处理。但如果银行后台没有MAC值校验这一步操作,那么对于消费者而言,就是明明消费了1.00元却被扣款100.00元;这个后果将变得不堪设想。

本文对常见的信息摘要算法进行一番总结,阅读了本文后,相信读者对信息摘要算法都有了更为清晰的认识,同时对各个摘要算法之间的区别也有一定的了解。文中提及的观点,难免有纰漏之处,还望有心的读者诚心提出改进意见,互相学习,互相进步。感谢。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4761

    浏览量

    97148
  • 嵌入式技术
    +关注

    关注

    10

    文章

    366

    浏览量

    43273
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问瞬时功耗一般怎么测?

    瞬时功耗一般怎么测?
    发表于 12-02 07:07

    FCC认证周期一般多久?

    和电磁环境造成有害干扰。二、不同类型FCC认证的周期区别FCCSDoC(Supplier’sDeclarationofConformity,自我声明)适用对象:一般
    的头像 发表于 11-03 17:35 11次阅读
    FCC认证周期<b class='flag-5'>一般</b>多久?

    FCC认证周期一般多久

    FCC认证周期取决于产品类型、测试复杂度以及认证方式(自我声明或由授权机构办理)。一般来说,从样品测试到获得证书的时间大致在2~8周之间。以下是详细说明:、FCC认证简介FCC认证是美国联邦通信
    的头像 发表于 11-03 17:14 552次阅读
    FCC认证周期<b class='flag-5'>一般</b>多久

    测量绝缘电阻一般用什么仪器

    测量绝缘电阻一般用绝缘电阻测试仪,俗称兆欧表或摇表,是专用核心仪器。 常用仪器类型 手摇式兆欧表:手动摇柄产生直流高压,结构简单、成本低,适合常规低压设备测量。 数字式绝缘电阻测试仪:自动输出高压,数字显示结果,精度高、操作省力,适配高低压设备及高精度需求。
    发表于 11-03 15:13

    MD5信息摘要算法实现(基于蜂鸟E203协处理器)

    operation flow 每轮MD5信息摘要运算操作流程如图1.4所示: 图1.4MD5 算法运算操作 Fig. 1.4MD5 algorithm operation 1.
    发表于 10-30 07:18

    发布元服务配置应用分类、标签和资质信息

    参考元服务资质审核要求。 仅分发手表设备:暂不支持“分类标签和资质管理”菜单。请直接在应用信息页面设置应用分类和标签,然后在版本信息页面上传对应的版权资质文件。 **** 分发非手表设
    发表于 10-29 16:47

    人脸识别门禁终端的一般故障排查方法

    问题,有些可能是使用环境造成,有些可能是人为不小心损坏了。下面,天波小编就来简单介绍人脸识别门禁终端的一般故障排查方法吧。【电源问题】当人脸识别门禁终端出现:接上电
    的头像 发表于 04-27 10:45 1661次阅读
    人脸识别门禁终端的<b class='flag-5'>一般</b>故障排查方法

    一般工控机与防爆工控机有哪些不同?

    一般工控机与防爆工控机在多个方面存在显著差异,以下是两者的主要不同点: 、应用场景 ● 一般工控机:通常用于各种行业中的常规设备或装置的自动控制,如工业自动化、机器人、交通运输、医疗器械、能源管理
    的头像 发表于 03-21 07:35 776次阅读
    <b class='flag-5'>一般</b>工控机与防爆工控机有哪些不同?

    保密项目一般用什么网线

    在保密要求较高的场合,通常使用以下几种网线: 、光纤布线 主要特点:传输信息的速率和带宽高,在规定的距离内支持1GBase-T和10GBase-T,是六类双绞线速率的4至40倍。线路无电磁辐射
    的头像 发表于 03-17 10:07 1047次阅读

    PID控制算法的C语言实现:PID算法原理

    在工业应用中 PID 及其衍生算法是应用最广泛的算法,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于
    发表于 02-26 15:24

    光缆接头预留长度一般不少于多少米

    光缆接头预留长度的具体要求可能会因应用场景、设计规范或特定需求而有所不同。但一般来说,光缆接头预留长度通常有个基本标准。 种常见的标准是,光缆接头预留长度一般不少于7米。这
    的头像 发表于 02-14 09:55 2481次阅读

    mark点定位的一般原理与步骤

    在印刷电路板(PCB)的制造、组装和检测过程中,Mark 点定位是确保精度的关键环节。以下是 Mark 点定位的一般原则和步骤。 ()设计阶段 位置规划 在 PCB 设计之初,就需要规划 Mark
    的头像 发表于 02-05 17:37 2485次阅读

    轨到轨运放与一般运放的区别

    类特殊的运放,相较于传统的一般运放,在输入/输出范围、性能特点及应用场景等方面展现出显著的优势。本文将深入探讨轨到轨运放与一般运放的区别,旨在为工程师提供全面的技术理解和设计指导。
    的头像 发表于 01-30 16:29 2812次阅读

    信号线电压一般是多少,信号线电压怎么测量

    在电子和通信系统中,信号线作为信息传输的媒介,其电压特性对于系统的性能和稳定性至关重要。了解信号线电压的一般范围以及正确的测量方法,对于确保系统的正常运行和优化性能具有重要意义。本文将深入探讨信号线电压的一般范围、测量方法以及测
    的头像 发表于 01-29 16:40 5587次阅读

    光谱传感器的一般原理

    光谱传感器是种能够测量物质光谱特性的仪器,其一般原理主要基于物质对不同波长的光的吸收、发射和散射等特性进行分析,从而获取物质的光谱信息。以下是对光谱传感器一般原理的详细解释:
    的头像 发表于 01-05 14:16 1723次阅读