SHA加密算法是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。
SHA加密算法原理
接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
SHA加密算法信息产生摘要的过程
SHA加密算法最大输入信息长度小于264位,产生的输出是长164位的信息摘要。输入按每组512位处理。
第一步、附加添凑位
对信息附加添凑位以便使它的长度等于448(模512)。即使信息已经达到需要的长度,也总是附加添凑位。因此,添凑位的长度范围是1至512位。添凑位由单个“1”后跟必要数目的“0”组成。
第二步、附加长度
将一个长64位的数据块附加到信息添凑位后,这个块被视为一个无符号的64位整数,而且包含了信息在附加添凑位之前的初始长度。
前面两步的结果是产生长度为512的整数倍的信息。用数字标记信息扩展后的512位分组序列Y0,Y1...YL-1,于是扩展后信息的总长度是LX512位。同样地,结果是16个32位字的整数倍。让M0,M1...MN-1代表结果信息字,N为16的整数倍,因此N=LX16。
第三步、初始化MD缓冲区
用一个160位的缓冲区存放哈希函数的中间结果和最终结果。这个缓冲区用5个32位寄存器(A,B,C,D,E)表示。这些寄存器初始化为如下的16进制值(高8位在前):
A=67452301
B=EFCDAB89
C=98BADCFE
D=10325476
E=C3D2E1FO
第四步、处理512位(16字)信息分组
SHA加密算法的核心是一个由80步处理组成的模块,这个模块在上图中标记为HSHA,它的逻辑如下图所示。这80步有相似的结构。
请注意每一层(round)的输入是当前正处理的512位分组YQ和值为ABCDE的160位缓冲区,并在每一层修改缓冲区的内容。再每一层中用到了一个辅助常数K1,K1只用到4个不同的常数值。这些值用16进制表示如图所示:
总之,对分组YQ,SHA加密算法以YQ和摘要的中间值MDQ作为输入。MDQ放在缓冲区ABCDE中,第80步的输出与MDQ相加以产生MDQ+1。这个加法是利用模232加法,由缓冲区5个字中的每一个字单独地与MDQ中相应的字相加完成。
第五步、输出
当所有的L个512位分组处理完后,从L阶段的输出是160位的信息摘要。
在每一层的逻辑中,每一层的形式是:
A,B,C,D,E—[CLS3(A)+FT(B,C,D)+E+WT+KT],A,CLS30(B),C,D
这里,A,B,C,D,E为缓冲区中的5个字;T代表层或步数字型,0≤T≤79;FT是一个简单逻辑函数;CLS3表示循环左移32位变量S位;WT是从当前输入512位分组中产生出来的;KT是一个辅助常数,用到了4个不同的值;“+”是模232加法。
每个简单函数32位输入,32位输出。每个函数执行一组“位位置逻辑”操作。也就是说,第N位输出是第N位3个输入的函数。正如你所见到的,只用到了3个不同的函数。对0≤T≤19,函数是条件函数:如果B那么C否则D。对20≤T≤39和60≤T≤79,函数产生奇偶校验位。对40≤T≤59,如果2个或3个变量值为TRUE,则函数值为TRUE。
现在剩下的是说明32位字WT如何从512位信息中产生。前16个WT的值直接取当前分组产生的16个字。剩下的WT值定义为:WT=WT-16 8 WT-14 8 WT-8 8 WT-3
这样,在前16层处理中,信息分组产生的输入由分组中的一个32位字组成。在余下的64层中,输入由一些信息分组中的字异或而成。
SHA可概述为:
MD0=IV
MDq+1=SUM32(MDq,ABCDEq)
MD=MDl-1
这里,IV为ABCDE缓冲区中的初始值,在第三步中定义;ABCDE为第Q个信息分组在最后一层处理的输出;L为信息(包括附加位和长度域)的分组数;SUM32代表输入的每一对字的独立的模232加法;MD等于最后的信息摘要值。
小知识之信息摘要:
信息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。
实操指南:如何监控聊天中的敏感信息?这款秘籍软件,轻松掌握微信聊天动态
电影《摩登时代》里,流水线工人就连在吃饭时都要用“自动喂食机”提高效率,这样才能挤出更多时间投入工作。虽然现在打工人不至于此,但有些老板仍然放心不下……像企业聊天记录往往蕴含着大量的敏感信息。为了确保信息安全,监控聊天中的敏感信息成为了一项必要且重要的工作。以下是一款秘籍软件,帮助你轻松掌握微信聊天动态,确保信息安全。...
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过员工上班在干什么?摸鱼?打游戏?老板该怎么管理?如何才能监视怎么监控员工上班情况?监控员工上班情况可以通过多种方式实现,但重要的是要确保这些措施既合法又合规,同时尊重员工的隐私权。以下是一些建议的方法:一、制定明确的行为规范与奖惩制度1、制定行为规范: 企...
怎么监控员工上班情况?快速监控员工状态
怎么监控员工上班情况?快速监控员工状态在企业管理中,如何有效监控员工上班情况,确保工作效率与团队协作,是每位老板都需面对的课题。本文为您揭秘五招快速监控员工状态的实用技巧,不仅能帮助您实时掌握员工动态,还能提升整体管理效率。作为老板,掌握这些技巧,将让您在企业管理中游刃有余,轻松应对各种挑战。一、使用安企神软件实时监控...
安企神桌管软件:提升企业管理效率的全能助力
安企神桌管软件:提升企业管理效率的全能助力在当今竞争激烈的商业环境中,企业必须不断优化管理和运营流程,以提高效率和盈利能力。安企神桌管软件正是这样一款面向中小企业的管理工具,能够帮助企业在多方面提升综合管理水平。本文将详细探讨安企神桌管软件给企业带来的多重价值。一、全方位的管理功能安企神桌管软件是一款集成了多种管理功能...
安企神:揭开终端安全管理软件的神秘面纱
安企神:揭开终端安全管理软件的神秘面纱在数字化日益普及的今天,企业的网络安全问题愈发显得重要。数据泄露、网络攻击等事件层出不穷,如何保障企业内部信息的安全性成为众多企业关心的焦点。安企神终端安全管理软件应运而生,作为一款专业的安全管理工具,它的功能与优势备受关注。本文将全面揭秘安企神软件的核心功能、应用场景及其在终端安...