分组密码设计准则

TIME:2019-05-23   click: 134 次

一个好的分组密码在确保足够安全强度的前提下,还应有运行效率、存储空间、不同运行平台可实现性及灵活性等相关因素考虑,分组密码设计的基本原则基本如下。

1.安全设计原则

为确保分组密码的安全强度,其在设计时应按照以下基本原则:

(1)分组长度够长,避免明文穷举攻击。

(2)密钥量够大,也要尽可能不使用弱密钥,避免密钥穷举攻击,但因分组密码体制有密钥管理问题,密钥量也不可太大。

(3)密钥变换充分繁杂,可抵御各种已经知道的攻击,即攻击者除穷举攻击外再找不到有效的攻击方法。

(4)数据扩展够小,通常无数据扩展。

(5)当加密或解密明文或密文包错误,对后面密文解密的影响尽最大程度的小。

2.实现设计原则

从分组密码算法实现角度来看,分组密码加密和解密的操作很简单,有助于软硬件高速实现。

1)硬件实现原则

分组密码在硬件实现中,一般把密码算法设计为一个密码协处理器,加密和解密可以用加密协处理器快速完成。根据硬件实现特点,分组密码设计应尽量满足下述原则:

(1)应尽量使加密与解密算法结构一样,仅密钥使用方式不同,保证加密与解密用同一密码协处理器,否则加密与解密算法必须用不同的协处理器。

(2)规则的编码结构,使密码有一个标准的组件,适应大规模集成电路实现,降低了成本。

(3)设计成迭代型。迭代型密码可减少大规模集成电路实现时必需的硬件资源,降低成本。

(4)易于硬件实现的编码结构。如比特置换,不复杂的非线性函数易于实现,但多变元的非线性函数一般很难实现。

2)软件实现原则

分组密码在软件实现中,一般要求成本低,编程灵活,速度比硬件设计要求低,从软件实现角度考虑,分组密码设计应尽量符合下述原则:

(1)加密与解密结构相似,便于加密与解密过程软件实现可方便调用子函数。

(2)尽量用既简单也便于软件实现的运算,如加法、乘法、移位运算。

(3)设计成迭代型。迭代型分组密码有助于软件实现中使用循环,代码简单。

(4)密码算法中尽量用子块运算,运算长度尽可能和软件编程相适应,如8bit、16bit、32bit或64bit的单位长度。

上一篇:分组密码常用的工作模式 下一篇:密码分析攻击的类型