cryptography

来源:岁月联盟 编辑:zhu 时间:2010-02-07
  

  信息安全是密码学的基本要求,为了要达到这一点,密码学始终涉及两个方面的斗争。其中一方(发送者)是设法对消息进行加密,使得只能是具有特殊权利的人(接受者)才能够接受和阅读信息。而另一方则是尽力设法截获信息,破译密文,或者用修改以后的假信息欺骗接收者。

  在本文中,我们主要讨论的是前一方,即考虑用何种方法能够对消息进行安全、有效且快捷的加密,保证消息的传送。

  待加密的消息被称作明文(plaintext),用某种方法伪装消息并隐藏它的内容的方法称作加密(encryption),被加密以后的消息称为密文,而把密文转变成明文的过程称为解密。加密体制中的加密运算是由一个算法类组成,这些算法类的不同运算可用不同的参数表示,不同的参数分别代表不同的算法,被称作密钥,密钥空间是所有密钥的集合。密码体制一般是指密钥空间与相应的加密运算结构,同时还包括了明文和密文的结构特征。在密码体制的设计和评价中要考虑到以下一些基本原则:

  1.不可破原则,指该密码体制在理论上或实际上是不可破解的。

  2.部分信息丢失不会影响整个系统的安全性。即硬件设备、加密算法或全部密文与部分明文这些信息的丢失不会危及整个系统的安全。

  3.与计算机、通信系统匹配原则。要求密码系统不是独立存在的,而可以在计算机或通信系统中使用。

  密码体制发展到现在,已经有了很多种不同的类型。但是从密码体制所使用算法的分类上说,可以分为两种。一种是利用了对称算法,又称作传统密码算法;另一种则是利用了公开密钥算法。对称算法是指加密密钥和解密密钥能够互相推算出来,公开了一个也就相当于公开另一方。因此对称算法的密钥只能由发送者和接收者两方知道,他们必须事先商定好密钥,这一点就涉及了密钥交换协议。

  公开密钥算法是指公开了加密算法以后不会泄露解密算法,因此和对称算法相比,任何人都可以通过公开渠道(网络或密钥管理中心)已知他人的加密密钥,把明文加密以后传送给接收者,而只有拥有解密密钥的人才能够对密文解密。这在密钥管理和消息的传送方面更具有优势。另外,公开密钥算法还可以运用在数字签名中。

  在目前应用于实际生活比较广泛的公钥加密算法包含有RSA密码体制和椭圆曲线密码体制。

  RSA密码体制:

  1979年,Shamir Rivest 和Adelman提出了第一个也是应用最广的公钥密码体制,即RSA体制。经过20多年的密码分析和攻击,迄今为止,RSA被证明仍是安全的。设n=pq,p和q是两个大素数,a和b是两个整数,定义密钥空间为。把n,b作为公开密钥,而p,q,a,,作为秘密密钥。整个加密算法就是y=,而解密算法是,由Euler定理知道,成立,上述解密的方法正确。

  由于RSA加密算法是指数运算,因此当密钥越大时,计算速度越慢。RSA算法比通常的DES算法慢了1500倍。并且RSA的计算量很大,为了要达到较高的安全程度,RSA的密钥位数比其它的密码体制大的多,现在一般需要1024位的密钥。所以一般对速度要求较高的数字签名或智能卡中的身份验证不太使用

  RSA密码体制,而采用其它较快的算法。椭圆曲线密码系统就是其中的一种。

  椭圆曲线密码系统:

  椭圆曲线密码体制和RSA体制比较起来,所需要的密钥量小,安全程度高,比如RSA密码体制需要1024-bit的密钥才能达到的安全程度,利用椭圆曲线只需要160比特位的密钥就能够保证同样的安全,密钥长度的减少同时带来了计算速度的提高。即使是在剩余类环运用离散对数而构造的加密系统的安全程度也要低于椭圆曲线 ,因此椭圆曲线系统不愧为一个性质较好的密码系统。

  椭圆曲线第一次运用于公钥密码算法是在1985年Neal Koblitz和V.S.Miller提出来的。他们并没有提出新的算法,只是把椭圆曲线运用到已存在的公钥密码算法中,比如说ElGamal加密算法。利用ElGamal思想构造的椭圆曲线密码体制如下显示:

  首先是产生密钥阶段。Bob从中随机选取充分大的整数,随后计算出椭圆曲线上的点P=(是椭圆曲线上的适当的一点),将保密,作为秘密密钥,并将P公开,作为公钥。

  加密方法如下:如果Alice想把消息M(同样是椭圆曲线上的一点)发送给Bob,就从中随机选择整数后,计算出和的值,加密以后的信息就是椭圆曲线上两点。

  解密:Bob收到加密信息后,通过密钥就可以计算M=-得到消息M。

  纵观上面提出的两个公钥密码体制,再加上其它的密码系统,在加密的时候都采用了单向函数的思想。单向函数是指函数满足从x计算容易,但从计算x有可能不可行。单向函数的构造依赖于计算复杂度理论,即利用一些困难问题。上述两个系统的安全性都依赖于一些数论中的基本困难问题。比如说RSA体制利用了把大整数n分解为两个大素数的难度,而椭圆曲线是利用了求解离散对数问题的困难程度,(即根据P=和Q求解中整数)。这些密码体制都是很成功的,在实际中也有了进一步的应用。对于本文来说,我们的主要目的是把组合群论的思想引进到密码学中,所以利用了组合群论中的一些困难问题,如字问题,共轭问题等等,由此构造出新的密码体制。

  协议(protocol)是指一系列的步骤,它包括两方或者多方,设计它的目的是要完成一项任务。密钥交换协议(key exchange protocol)是指两人或多人之间通过一个协议取得密钥并用于进一步的加密算法中的方法。在实际的密码世界中密钥交换其实是很重要的一个环节。比如说利用对称加密算法,如果双方没有约定好密钥,就必须再进行密钥交换。但是如何使得密钥到达接收者和发送者手里是件很复杂的事情。最早利用公钥密码思想提出的密钥交换协议有Difffie-Hellman算法。新的密钥交换协议有利用组合群论中的辫群构造的两个协议,Anshel-Anshel-Goldfeld协议和Ko-Lee-Cheon协议。

下一篇:Cryptology

图片内容