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加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。
筑牢安全防线:安企神企业助力特种设备机械企业数据防泄密解决方案
西安苛菲特机械设备有限公司 西安苛菲特机械设备有限公司致力于特种设备的发展,专业从事特种设备的研发、制造和销售。目前已成为有色冶金特种设备、大型船舶特种设备、煤化工特种设备的领军品牌,并在业内得到了“ 特种设备专家”的称号。公司以打造国内一流特种设备为使命,主要产品定型为高品质特种(高温、高压、高合金)流量控...
安企神软件——为中国铁道建筑集团有限公司筑牢数据防泄密系统
01公司介绍中国铁建是中国乃至全球最具实力、最具规模的特大型综合建设集团之一,入选世界500强企业、全球225家最大承包商之一等荣誉。公司以工程承包为主业,集勘察、设计、投融资、施工、设备安装、工程监理、技术咨询、外经外贸于一体,经营业务遍及除台湾省外全国31个省市(自治区)、世界20多个国家和地区,企业总资产820亿...
强化终端安全,安企神软件与涂料制造企业共创安全未来
西安经建油漆有限责任公司规模化、专业化、现代化涂料制造企业西安经建油漆有限责任公司,年涂料生产能力20万吨,为中国中西部实力较强、产能较大的涂料制造企业。公司成立伊始便积极承担起重点建设项目及国防军事工业、航空航天工业提供配套涂料科研开发及生产任务。多次受到中国航天科技集团总公司的通令嘉奖,为我国航天事业跻身世界前列做...
全球著名减震器制造商——天纳克携手安企神共筑安全制造新防线
天纳克(北京)汽车减振器有限公司天纳克(北京)汽车减振器有限公司成立于1995年,是天纳克在中国最早投资的合资企业。公司集设计、开发、生产及销售汽车减振器于一身。作为天纳克全球网络的一部分,能充分享受天纳克全球的技术积累经验和国际领先的设计理念,加之先进的生产设备和工艺技术。天纳克(北京)汽车减振器有限公司完全能保证为...
强强联合!安企神软件携手瀚颐共筑汽车行业终端安全防线
瀚颐上海汽车电子科技有限公司EAST瀚颐中国团队成立于2015年。是国际AUTOSAR软件联盟的研发伙伴单位。具备汽车电子硬件设计、软件开发、CAN网络集成、系统集成测试以及项目管理的全面研发能力。专注于汽车电子以及相关产业并拥有25年以上的专业经验,拥有来自于德国和中国业内专家和高管组成的顾问团队,并向全球汽车行业客...