仿射函数7x+8 加密明文信息_基于 FPGA 的 SHA256 高效数字加密研究(三)

  最早的安全哈希函数 FIPS180-2是美国联邦信息处理标准(Federal Information Procssing Standards Publication)发布的基于哈希算法的一个标准,加密系统中使用的SHA256算法就是FIPS180-2标准中SHA2算法的一种。

01

SHA256 哈希函数

e6c0c6af87253b725a97ee7235eadc80.png

最早的安全哈希函数 FIPS180-2是美国联邦信息处理标准(Federal Information Procssing Standards Publication)发布的基于哈希算法的一个标准,加密系统中使用的SHA256算法就是FIPS180-2标准中SHA2算法的一种。下面将对该算法的原理做详细的描述。 SHA256具体函数介绍
SHA256函数中使用有六个逻辑函数、两个移位函数以及8个32bit 的初始化哈希值。所有函数的操作均是以32bit的数据块为单位进行运算的,同时所有的加法操作都是模2的加法。函数的具体内容如下所示∶ 移位函数∶

171729b375e84ef99b1bdc274d28e1d6.png

02

SHA256算法描述

算法描述
SHA256根据算法的要求一共可以分为4个部分,附加填充数据信息、数据块扩展模块、循环迭代计算模块和哈希值输出模块。下面将对这四个部分做详细的描述。


1.附加填充数据信息

附加填充信息模块中,对输入的明文进行附加填充比特,使得整个明文的数据位数是512的整数倍,同时要求填充后的数据中包含原明文原有数据位数的信息。其具体操作方法可以理解为∶如果输入的明文长度为L,在此模块中对L进行末尾增加一个比特位,并赋予该比特值为"1",同时在增加 K 个值为0的比特位,使其满足L+1+K=448mod512。

然后再在其后面添加64bits的数据块,其值等于原明文长度L。做完信息填充后的数据长度是512bit 的整数倍。

如图所示,假设输入数据为"abc",其ASCI码值如图中所示一共是24bits,依照上面的规定,我们在"abc"后添加一位比特,值为"1"。同时添加 423个值为"0"的比特位,使其满足 24+1+423=448mod512,同时的最后添加的64 比特位,其值为24等于"abc"的 ASCII码位数。

ca103df3b066a70698d3528b02fb8e15.png

2.数据块扩展

SHA256每次对数据的处理是以512bits的数据块为处理单元的,每次读入第i个512bis的数据块后,会将512bits的数据分成16份32bits的数据块,假设第一个32bits的数据块为Mg,则依次往后第二个为M⑨,直到最后一个Mg。随后通过公式(9)将16×32bits 的数据扩展成64×32bits的数据,并将扩展后的结果存放在W中。

da7bba688ffa55505d7d32be3f2275c3.png

3.循环迭代计算

536a1ffe15eb79da0f2e40a5a40136eb.png

在循环迭代计算这个部分里面主要完成的工作是,计算出当前512bis的哈希值。如上图所示,其具体内容为∶


1)如果是加密数据的第一个数据块,首先要使用当中的初始化哈希值对
内部的8个32bits的数据块(a,b,,c,d,e,gh)进行8×32bis的迭代计算对内部哈希值初始化。否则将使用上一个数据块循环迭代后计算得出的内部哈希值对其进行初始化。


2)初始化完成后,对a~h进行64次循环计算,如下所示∶

b60bbbc38276069c1f6dfc02199981a5.png

e73f84d73dd912371b9d48720a4b394d.png

其中为查找HASH表中的值,SHA256的哈希表如下表所示∶

3c68060570c7754eeea4e98731d14593.png

3)完成64次循环计算后,将得到的a~h与第一步中所用的初始值做模2的加
法运算后,得到本次运算的哈希值。如下所示∶

493bb2355fa2a200507ff9aed49c6b9a.png

4)重复上面1~3的步骤,直到全部的数据被处理完。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值