哈希算法应该考虑哪些因素?【密码学】(二)

目录

一、分类 

二、处理能力限制 

三、算法性能


一、分类 

1、退役的算法(已经退出历史舞台,安全性很弱,一定不能再用)

2、遗留的算法(存在明显安全性问题,不足以支持现在的安全强度要求,旧有的要尽快升级,不要在新系统中使用)

3、现行的算法(没有明显安全问题,可以使用)

二、处理能力限制 

数据处理能力:对应的单向散列函数那个处理的最大输入数据。

为什么有处理能力限制? 

一个典型的单向散列函数由四个部分组成:数据分组,链接模式,单向压缩函数和终结函数。

数据分组:把输入数据分割成压缩函数能够处理的数据块。

压缩函数:压缩函数能够接收的数据块大小是固定的。比如SHA-256的压缩函数只能处理512位的数据,多一位少一位都不行。

但是,实际输入数据不一定是压缩函数能接收的数据块的整数倍。整数倍的数据,可以直接给压缩函数分批处理;不足整数倍的数据,就要进行填充,补齐,变成压缩函数能够处理的数据块大小;

如果数据长度超过了数据补齐方案的限制,数据就没有办法分组了。这就是数据处理能力限制的来源。

SHA-3的设计,放弃了在补齐方案中用固定的位数表示数据处理长度的做法,因此它也就没有数据处理能力限制了。

三、算法性能

影响算法性能的因素:

(1)算法实现的内存使用影响。

(2)算法实现有没有使用优化的步骤,比如并行计算或预运算。

(3)算法实现有没有使用硬件加速等,比如CPU关于算法的扩展指令。

(4)计算机本身的指令集是否和算法匹配等。

启示:

要选用现行的,流行的算法,对于单向散列函数,他们是SHA-256、SHA-384、SHA-512

你可能感兴趣的:(密码学,密码学)