对称密码体制及其算法研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第23卷第6期 齐 齐 哈 尔 大 学 学 报 Vol.23,No.6 2007年11月 Journal of Qiqihar University Nov.,2007

对称密码体制及其算法研究

于学江

(齐齐哈尔大学计算机与控制工程学院,黑龙江 齐齐哈尔 161006)

摘要:密码算法是实现网络信息安全的基础,本文对现代密钥密码算法及体系进行了研究,介绍了对称密码体制

与非对称密码体制,重点分析了对称密码体制中分组密码与序列密码算法的原理、性质,比较了分组密码与序列

密码的不同应用特性。

关键词:对称密码体制;分组密码算法;序列密码算法

中图分类号:TP309.7 文献标识码:A 文章编号:1007-984X(2007)06-0038-03

1 现代密码体制

现代密码体制的研究基本上沿着两个方向进行,即对称密码体制和非对称密码体制。对称密码体制又称单钥或私钥密码体制。在对称密码体制中,加密密钥和解密密钥是一样的或彼此之间容易相互确定,因此对称密码体制的安全性主要取决于密钥的安全性。按加密方式不同,对称密码算法可分为分组密码和序列密码。分组密码是将消息进行分组,并按组加密。而序列密码是利用密钥序列对明文进行逐比特加密从而产生密文。 非对称密钥密码体制,又称为双钥或公钥密码体制。在非对称密钥密码体制中,加密密钥不同于解密密钥,加密密钥公之于众,谁都可以使用。解密密钥只有解密人自己知道,分别称为公开密钥和秘密密钥。

2 对称密码算法

2.1 分组密码

分组密码的基本原理是将明文分成固定长度的组(块),如64 bit一组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。目前最常用的对称加密算法有数据加密标准的DES、新一代分组加密标准AES、国际数据加密算法IDEA、Blowfish加密算法等,他们的加密原理都是Feistel分组密码结构。其中以DES 算法最为著名,是到目前为止使用最广的算法。

2.1.1 DES密码算法

DES 算法是将64 bit 的明文初始重排后,在密钥控制下进行16次复杂的非线性变换,得到64 bit 的预输出,接着再对预输出经过一次逆初始化重排。整个算法是代替法和换位法的组合,共叠代16层。该算法分3个阶段实现:

1)对输入的明文分组m 进行固定的初始置换函数IP ,该初始置换可表示为

000)(R L m IP m == (1)

2)计算函数f 的16次迭代运算,即

1−=i i R L ),(11i i i i K R f L R −−⊕= )16,,2,1("=i (2)

其中i k 是48位的子密钥,子密钥是作为密钥k 的函数而计算出的。f 称为“S 盒函数”

,是一个替代密码。这个运算的特点是交换两半分组,这一轮的左半分组输入是上一轮的右半分组输出。交换运算是一

收稿日期:2007-07-17

作者简介:于学江(1964-),男,黑龙江齐齐哈尔人,副教授,大学本科,主要从事数学教育、算法分析设计等研究,Email:yuxjph@。

第6期 对称密码体制及其算法研究 ・39・ 个简单的换位密码,目的是获得很大程度的信息分散。可见,这一步运算是替代密码和换位密码的结合。

3)将16轮迭代后得到的结果进行IP 逆置换,

逆置换的输出结果即为密文分组。该过程表示如下

)(16161L R IP c −=

(3) 这里在IP 逆置换之前,16轮迭代输出的两半分组又进行

了一次交换。DES加密过程如图1所示。

解密算法与加密算法类似,仅有的不同就是:如果加密

算法中使用的轮密钥为1621,,,k k k ",那么在解密算法使用

的轮密钥就应当是11516,,,k k k "。

2.1.2 三重DES 密码算法

DES 的主要的缺点是密钥长度太短,这是DES 仅有的

最严重的弱点。克服短密钥缺陷的一个解决办法是使用不同

的密钥,多次运行DES 算法,这样的一个方案称为三重DES

方案,三重DES 是DES 的一种变形的实现方式。

三重DES 加密记为

)))(((121m e d e c k k k = (4)

解密记为 )))(((121c d e d m k k k = (5)

除了能够达到扩大密钥空间的效果,如果使用这个方案

也很容易与单钥DES 兼容。三重DES 也可以使用3个不同

的密钥,即

)))(((123m e d e c k k k = (6)

和 )))(((123c d e d m k k k = (7)

其中,321,,k k k 为56位DES密钥。为了获得更高的安全性,3个密钥应该选择为互不相同。但在某些情况下,如与原来的DES保持兼容,则可以选择21k k =或32k k =。

2.2 序列密码

2.2.1 序列密码基本原理

由于语音、图像和数据等信息都可以经过量化编码转化为二进制数字序列或本身就是二进制数字的序列,因此,一个实际的序列密码系统可用),,,,,(Z D E K C M kd ke 的六元组来描述。M 为明文空间,C 为密文

空间,K 为密钥空间。

对于每一个密钥K k ∈,由算法Z 确定一个二进制序列密码110,,,)(−=n Z Z Z k Z "。ke E 和kd D 分别表示密钥k 在算法Z 作用下生成的序列密码与明文的加密和解密规则,常用的是模2加运算。

当明文为110,,,−=n m m m m "时,在密钥k 下的加密过程为:由算法Z 确定一个二进制序列密码110,,,)(−=n Z Z Z k Z ";对1,,2,1,0−=n i ",计算i i i z m c ⊕=,密文为110,,,)(−==n ke c c c m E c ",其中⊕表示模2加。对密文c 的解密过程为:对1,,2,1,0−=n i ",计算i i i z c m ⊕=,由此恢复明文110,,,)(−==n kd m m m c D m "。通常,称密钥k 为种子密钥,由k 通过算法Z 产生的序列)(k Z 称为密钥序列。

2.2.2 序列密码的性质

设计序列密码的一个重要目标就是设计序列密码生成器,使得序列密码生成器输出的序列密码具有完全随机特性。但实际上序列密码不可能是完全随机的,通常主要从周期性、随机统计性和不可预测性等角度来衡量一个密钥流序列的安全性。

1)序列的周期性。

定义1 假定",,,210S S S 是10−序列,用}{i S 表示,若存在T 使得,对i i i S T S i =+∀),(成立,则称}{i S 是周期性序列,满足上述关系的最小的T ,叫做}{i S 的周期。若序列}{i S 除开始若干项后的其余部分是周期序列,则此序列称为准周期序列。

相关文档
最新文档