密码学的新方向 翻译大纲

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

New Direction in Cryptography(密码学的新方向1)(2009-03-03 11:19:04)转载分类:密码学这星期的前沿讲座我要讲《New Direction in Cryptography》这篇论文,此乃现代密码学的开山之作,但baidu,google了半天发现一篇还算不错的译文。遂修改了一下公示于此,希望共享于后来的密码学初学者们。

译文如下:

Ⅰ简介

随着远程通信的发展,特别是计算机网络的发展,密码学面临着两大难题:⒈可靠密钥的传输通道问题。⒉如何提供与手写签名等效的认证体系。为了解决这些问题,文中提出了公钥密码算法和公钥分配算法,并且把公钥密码算法经过变换成为一个单向认证算法,来解决有效认证问题。此外还讨论了密码学中各种问题之间的相互关系,陷门问题,计算复杂性问题,最后回顾了密码学发展的历史。

Ⅱ常规密码体系

这一部分主要介绍了密码学的一些基本知识,如密钥、加密、解密,算法的无条件安全与计算性安全,三种攻击法,即唯密文攻击、已知明文攻击、选择明文攻击。这些知识课堂上都讲解过了,不再累述。这里需要指出的是,本文给出了密码学的一个定义:研究解决保密和认证这两类安全问题的“数学”方法的学科。还有一点需要指出的是,根据Shannon的理论无条件安全的算法是存在的,但由于其密钥过长而不实用,这也是发展计算上安全的算法的原因。

Ⅲ公钥密码学

公钥密码学主要包括两部分:公钥密码算法和公钥分配算法。

公钥密码算法是指定义在有限信息空间{M}上的,基于算法{Ek }和{Dk }的可逆变换Ek:{M}-> {M}

Dk:{M}-> {M}

满足下列条件:

⑴对任给K∈{K},Ek是Dk的互逆变换

⑵对任意的K∈{K}和M∈{M},用Ek和Dk进行加密和解密是容易计算的

⑶对几乎所有的K∈{K},从Ek推出Dk在计算上是不可行的

⑷对任意的K∈{K},从K计算Ek和Dk是可行的

这里K是用以产生Ek和Dk的随机数。性质⑶保证了可公开Ek而不损害Dk的安全性,这样才保证了公钥密码算法的安全性。

以加密二值n维向量为例,加密算法是乘一个n×n可逆矩阵,解密则乘其逆矩阵,所需运算时间为n2。此可逆矩阵可通过对单位矩阵做一系列的行和列的初等变换得到,而其逆矩阵是经过逆序的行和列的逆变换得到。但是矩阵求逆只需要n3的时间,密码分析者用时与正常解密用时之比是n。虽然这个例子并不实用,但对解释公钥密码算法是有用的。一个更实用的方法是利用机器语言的难懂性,把加密算法编译成机器语言公布,而解密算法保密,分析者要理解机器语言的全部运算过程是很困难的,所以要破解是困难的,当然此算法必须足够的复杂以免通过输入和输出对来破解。

公钥分配算法是基于求对数再取模计算上的困难。令q是一个素数,在有限域GF(q)上任取q,计算Y= axmod q,其中a是GF(q)上的一个固定基元。则X= log aYmod q。不难得出由X计算Y是较容易的,约需要计算2×log2q 次乘法;然而从Y得出X是困难的,因为需q1/2次运算。这样对每一个用户,从[1,2,…,q-1]中随机的选一个q,计算出Yi=aXi mod q ,并将Yi公布,Xi保密。那么当用户i和j通信时,使用Kij=aXiXjmod q作为他们

的公共密钥。此密钥用户i通过j公布的Yj 得到,即Kij= Yj Ximod q= (aXj) Ximod q= aXiXjmod q得到。用户j的计算同理。对于第三方要获得此密钥就必须计算,而这在计算上是不可行的,从而达到了在公共信道上分配私钥的效果。

Ⅳ单向认证

现有的认证体系只能保证不被第三方冒名顶替,但不能解决发送者和接收者之间的冲突,为此引入单向函数的概念,即对定义域中的任意x,f(x)是容易计算的,但对几乎所有的值域中的y,求满足y= f(x)的x在计算上是不可行的。例如已知多项式p(x)和x ,求y =p(x)是容易的,但若已知y 求出x 是困难的。值得注意的是,这里的计算上不可逆与数学中的不可逆是完全不同的(数学上的不可逆可能是有多个原像)。

公钥密码算法可用来产生一个真正的单向认证体系。当用户A要发信息M给用户B时,他用其保密的解密密钥”解密”M并传给B,B收到时用A公布的加密密钥”加密”此消息从而得到信息M。因为解密密钥是保密的,只有A发送的消息才具有这样的性质,从而确认此信息来源于A,也就建立了一个单向认证体系。

Leslie Lamport 还提出另一种单向信息认证方法,它是应用在k维二值空间上的单向函数f到其自身的映射来实现的。若发送者发送N比特的信息m,他要产生2N个随机k维二值向量x1,X1,x2,X2,……xn , Xn ,并保密,随后把这些向量在f下的像y1,Y1,y2,Y2,……yn , Yn,发送给接收者。当发送信息m=( m1,m2 ,…,mN )时,当m1=0发送x1 ,m1 =1发送X1 ,依次类推。接收者把收到的信息用f映射之,若为y1则m1=0,Y1则m1 =1,如此下去便得到了m。由于函数f的单向性,接收者无法从y推出x,因此就无法改动接收到的任何收据。当然在N比较大时这种方法的额外开销是很大的,为此有必要引入单向映射g,用来把N比特的信息映射成n比特(n约为50),但这里要求g有比一般的单向函数更强的性质。

Ⅴ问题的相关性和陷门

⒈一个对已知明文攻击安全的密码算法能产生一个单向函数。设:{P}-> {K}是这样的一个算法,取P=P0,考虑映射f:{K}-> {C}定义为f (x)=Sx (P0),则f是一个单向函数,因为要由f(x)得到x和已知明文攻击是等价的(即已知P=P0和S K (P0)求不出K)。Evans还提出过另一种方法,他用的映射是f (x)= Sx (X) ,这增加了破解的难度,但这个单向函数却破坏了对已知明文攻击安全的要求。

⒉一个公钥密码算法可用来产生一个单向认证体系。这一点在Ⅳ中已经讨论过了。

⒊一个陷门密码算法可用来产生一个公钥分配算法。所谓陷门密码算法是指只有知道陷门信息才能正确还原明文,不掌握陷门信息要破解出明文在计算上是不可行的。比如A要和B建立公共私钥,A任选一个密钥,用B公布的含有陷门信息的加密密钥加密之,并将密文发送给B,B由保密的陷门信息解密得到此密钥,于是A和B建立了公共的私钥。不难发现公钥密码算法是一个陷门单向函数。

Ⅵ计算复杂度

现代密码算法的安全性是基于计算上的不可行性,因此就有必要对计算复杂度进行研究。在确定型图灵机上可用多项式时间求解的问题定义为P类复杂度,在非确定型图灵上可用多项式时间求解的问题定义为NP类复杂度,显然P NP。Karp还定义了一个NP完全集,即如果NP完全集中的任何一个问题属于P 类,则NP中的所有问题都属于P。现在大多数的加密算法用的是NP完全集中的问题。关于密码分析的难度有如下

相关文档
最新文档