哈希是在密码学中重要的方法,SHA-256 也是一种具有 256 位摘要的较为复杂的哈希过程,由 NIST 提出并推广使用,在集合中属于 SA2 算法集。其核心思想是采用消息预处理、填补、摘要计算等步骤,将随机大小的文本消息和一段 256长度的字符串对应起来。SHA-256 的生产过程如下[19]:
1)追加填充位信息:需要将原始输入长度扩展到一个 mod 512 等于 448 的值,这个填充方法是在消息末尾添加 1,后面跟数个 0。
2)追加长度:消息长度的 64 位被附加到结果中,使得消息长度正好是 512位长度的倍数。
3)解析消息通过附加 64 位块,将填充消息解析为 N 个 512 位消息块, M(1),M(2), …, M(N)。
4)初始化哈希值:计算出)0(H ,他是由十六进制的 8 个 32 位的字符串组成。
5)进行消息扩展:使用 64 个 32 位单词的消息调度,消息调度的字段被标记为63210、、...WWWW [20]。
6)消息的压缩:使用散列值初始化八个工作变量,A、B、C、D、E、F、G和 H 进行消息的压缩。
7)输出重复步骤 1 到步骤 4 总共 N 次之后,得到的哈希函数为
在其哈希映射的过程中,保证一段哈希对应唯一一段输入,并且在计算上保证了找到具有给定哈希值的输入的不可能性,是安全的哈希过程。SHA-256 在一些广泛使用的安全应用程序和协议中实现,包括比特币、SSH 和 IPC 等。
过分粗糙,等书回来重新整理一下。