靓丽时尚馆

位置:首页 > 健康生活 > 心理

sha256算法原理详解

心理2.32W
sha256算法原理详解

sha256 算法原理:

SHA-256 算法输入报文的最大长度不超过2^64 bit,输入按512-bit 分组进行处理,产生的输出是一个256-bit 的报文摘要。

该算法处理包括以下几步: 

STEP1:附加填充比特。对报文进行填充使报文长度与448 模512 同余(长度=448 mod 512), 填充的比特数范围是1 到512,填充比特串的最高位为1,其余位为0。就是先在报文后面加一个 1,再加很多个0,直到长度 满足 mod 512=448.为什么是448,因为448+64=512. 第二步会加上一个 64bit的 原始报文的 长度信息。

STEP2:附加长度值。将用64-bit 表示的初始报文(填充前)的位长度附加在步骤1 的结果 后(低位字节优先)。

STEP3:初始化缓存。使用一个256-bit 的缓存来存放该散列函数的中间及最终结果。 该缓存表示为A=0x6A09E667 , B=0xBB67AE85 , C=0x3C6EF372 , D=0xA54FF53A, E=0x510E527F , F=0x9B05688C , G=0x1F83D9AB , H=0x5BE0CD19 。

STEP4:处理512-bit(16 个字)报文分组序列。该算法使用了六种基本逻辑函数,由64 步迭代运算组成。每步都以256-bit 缓存值ABCDEFGH 为输入,然后更新缓存内容。 每步使用一个32-bit 常数值Kt 和一个32-bit Wt。 

标签:sha256 算法