APP下载

传统与现代加密技术的比较

2011-04-27四川文理学院数学与财经系

电子世界 2011年9期
关键词:密码学明文公钥

四川文理学院数学与财经系 杨 波

1.引言

密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。通过这些法则,将明文变为密文,称为加密变换;将密文变为明文,称为脱密变换。密码在早期只是对文字或数码进行加密、脱密变换,随着通信技术的发展,对语音、图像、数据等多种信息都可实施加密、脱密变换。密码学是在编码与破译的斗争实践过程中逐步发展起来的,并随着先进的信息科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等学科都有着广泛而密切的联系。它的现实研究成果,特别是现用的密码编制方法及破译手段都具有高度的机密性。

密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。古希腊错位的羊皮纸和木棍的组合是一个替换法的圆柱体,可将信息内字母的次序调动,利用了字条缠绕木棒的方式,把字母进行位移,收信人要使用相同直径的木棒才能得到还原的信息。这就是密码学的发源。在中国古代就有一些秘密通信的手段,趋近于密码学的雏形。宋曾公亮、丁度等编写的《武经总要》中记载,早在北宋前期,在作战中曾用一首五言律诗的40个汉字,来分别代表40种情况或者要求,以达到对所表达意思的隐藏,只有知道其中表示方法的自己一方才能明白其真正的含义。这种方式已具有了密本体制的特点。

2.几种经典加密技术

早期的常规密码体制的加密方法很多,但本质上可分为两大类,即换位密码和替代密码。

2.1 换位密码

换位密码是一种不改变明文中字符本身,仅按照某种模式将其重新排列构成密文的加密方法。它是目前最古老的密码。[1]典型的换位密码有列换位、按样本换位和分组换位。下面以列换位来说明这种加密方法的本质。

例如:用列换位法将明文computability加密成密文。首先按行顺序把明文写入4*4距阵中,得

然后把它按列顺序读出,即得到密文cuiyotlmaipbt。

2.2 替代密码

替代密码可分为简单替代、多名替代、多表替代和区位替代等四种。下面以简单替代为例来说明这种加密方法的机理。

最简单的简单替代是循环移位密码。其加密方法是把明文中的所有字母均用它右边第几个字母替代,并认为Z后面又是A。这种映射关系可用下式表示:

式中n为字符集中字母的个数。循环移位密码又称凯撒密码,因为是由罗马皇帝Julius Caesar首先使用的,当k=3时,凯撒码的映射关系为:

明文字符集P:a b c d e f g h i j k l m n o p q r s t u v w x y z

密文字符集C:d e f g h i j k l m n o p q r s t u v w x y z a b c

所以用凯撒密码对computability一词加密,所得到的密文是frpsxwdelolwb。凯撒密码的优点是密码简单易记,但因明文与密文之间的映射关系过于简单,故安全性较差。为提高安全性,这种密码体制还有序列密码和分组密码两种,这里不再详细讨论。

综上我们可以看出,在以上这些方式加密的过程中密钥非常重要,只要知道密钥,密文就成了明文了。

3.现代加密技术

因为早期的加密技术的一些局限性和安全性的不足,20世纪70年代以后,一些学者提出了公开密钥体制,即运用单向函数的数学原理,来实现加密、脱密密钥的分离,也就是使用了不同的加密与脱密密钥,以加强密文的安全性。密码学中进行明文和密文变换的法则,被称为密码的体制,其中指示这种变换的参数,称之为密钥。它们是密码编制的重要组成部分。加密密钥是公开的,而脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。

3.1 RSA算法

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的一种公钥算法,从1978年提出到现在近三十年的时间,经历了各种攻击的考验之后,逐渐为人们接受,也普遍被认为是目前最优秀的公钥方案之一。通常认为破译RSA的难度与大数分解难度等价,所以其安全性较高。RSA算法是以三个发明者的名字来命名的,他们分别是:Ron Rivest,Adi Shamir和Leonard Adleman。下面我们就RSA算法的原理作一简单介绍。

RSA算法的原理:

a.密钥的产生

选择两个大素数,p和q。计算:n=p*q,然后随机选择一个加密密钥e,要求e和(p-1)*(q-1)互质。最后,利用Euclid算法计算解密密钥d,使其满足e*d=1(mod(p-1)*(q-1))其中n和d要互为质数。数字e和n是公钥,d是私钥。两个素数p和q要对其保密,保证其安全性。

b.加密

加密信息m(二进制表示)时,首先把m分成长度相等的数据块m1,m2,...,mi,数据块长度为s,其中2^s<=n,s要尽可能的大。加密的公式是:ci=mi^e(mod n)。

c.解密解密时进行如下计算:mi=ci^d(mod n)。RSA算法的安全性与大数n的分解有关。如果能把作为部分加密密钥公开的n分解成素因数,那么就能得到P、q以及,从而求出解密密钥d。即使用目前最快的算法对整数n进行素因数分解,也要用exp步。所以只要n足够大,所采用RSA算法的密码体制就应该是十分可靠的。

3.2 数字签名

密码技术除了提供信息的加密解密外,还要提供对信息来源的鉴别、保证信息的完整性和不可否认等功能,而这三种功能都需要结合数字签名技术来实现的。[2]简而言之,数字签名技术的原理可以这样理解:用非对称算法的私钥加密的密文只能用对应的公钥来解密。公钥是公开的,而私钥是保密的。因此,如果信息能使用某个人的公钥来解密,那么它一定是使用此人的私钥来加密的。这种方法和物理的签名一样,是很难伪造的。

在实际应用过程中,数字签名的过程通常是这样实现:将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要用私钥加密后与明文一起传送给对接收方,接收方用发送方的公钥来解密报文摘要,再将接收的明文产生新的报文摘要与发送方的报文摘要比较,如比较结果一致则表示明文确实来自期望的发送方,而且并未被改动。如果不一致表示明文已被篡改或不是来自期望的发送方(如图1)。

图1

4.传统与现代加密方法的比较

公开密钥技术和传统加密方法各有优缺点,传统加密技术方法简单,易于实现,但其安全性较差。公开密钥技术虽然安全性较好,但其运算量较大,与传统的加密算法比较在速度上有很大的差距。有资料表明RSA算法的软件实现比DES算法的软件实现速度慢100倍,而且RSA算法的硬件实现比DES算法的硬件实现慢1000~10000倍。这些数据表明传统加密技术仍有其存在的意义,所以许多加密系统都采用公开密钥技术与传统加密算法结合的方式。如PGP系统和Netscape2.0就是采用这样的方法:使用一把会话钥匙和传统加密算法来加密需要传送的数据内容,再使用公开密钥技术来加密较短的会话钥匙。

5.结束语

密码技术是信息安全的核心技术。如今,计算机网络环境下信息的保密性、完整性、可用性和抗抵赖性,都需要采用密码技术来解决。密码技术的发展与现代网络息息相关,当前,密码学发展面临着挑战和机遇。计算机网络通信技术的发展和信息时代的到来,给密码学提供了前所未有的发展机遇。我们要在研究密码技术的过程中扬长避短,将传统与现代的密码技术相融合,力求达到更高的安全性。我们要在密码理论、密码技术、密码保障、密码管理等方面进行创造性思维,去开辟密码学发展的新纪元。

[1]杨心强,陈国友,邵军力.数据通信与计算机网络[M].北京:电子工业出版社,2003:382-385.

[2]冯博琴,程向前.计算机网络——基于因特网的信息服务平台[M].北京:清华大学出版社,2004:379-382.

[3]http://pda.c114.net/157/a149703.html.

[4]杨波.IP地址解析与子网分割[J].四川文理学院学报,2007(2):55-57.

[5][美国]BehrouzA.Forouzan.密码学与网络安全[M].马振晗,贾军保译.北京:清华大学出版社,2009:60-65.

猜你喜欢

密码学明文公钥
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
一种基于混沌的公钥加密方案
密码学课程教学中的“破”与“立”
奇怪的处罚
HES:一种更小公钥的同态加密算法
奇怪的处罚
应用型本科高校密码学课程教学方法探究
SM2椭圆曲线公钥密码算法综述
四部委明文反对垃圾焚烧低价竞争
基于格的公钥加密与证书基加密