New Directions in Cryptography读后感

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

Thoughts AboutNew Directions in Cryptography
《密码学的新方向》读后感
在1949年之前的几千年,密码学还没有成为一门真正的科学,而是一门艺术,密码学专家常常是凭自己的直觉和信念来进行密码设计。

直到1949年,美国数学家、信息论的创始人 Shannon, Claude Elwood 发表了《保密系统的信息理论》一文,它标志着密码学阶段的开始。

随着远程通信的发展,特别是计算机网络的发展,密码学面临着两大难题:⒈可靠密钥的传输通道问题。

⒉如何提供与手写签名等效的认证体系。

为了解决这些问题,Whitfield Diffie和Martin E.Hellman两人于1976年发表了名为《密码学新方向》的文章。

他们首次证明了在发送端和接收端不需要传输密钥的保密通信的可能性,从而开创了公钥密码学的新纪元。

该文章也成了区分古典密码和现代密码的标志。

这本书分为七个部分,分别是引言,常规加密,公钥加密,单项认证,问题的相关行为和陷阱门,计算复杂性以及历史回顾。

下面就具体对本书进行介绍:
第一部分,引言(introduction):
提出了现代的我们正处在密码学革命的边缘,密码设备高消费下降,所以需要一种能够消除必要的安全锁分配渠道和提供相当的数字签名的新类型密码系统,同时在信息理论和计算机科学理论上保证了密码安全学的发展,这样就把这门艺术变成了一门科学.
最著名的密码学问题是关于隐私的:在不安全的渠道沟通,为了防止信息被未授权的取出,就要用到密码学,这样等于给隐私加以保护.在本文的第三部分提出在公共渠道上没有通过系统安全协议的转移密钥的两种方法。

第五部分讨论了提供一个真实,可靠的信息依靠数字签名的单向验证问题。

给出了许多解决问题的方法,它展示了怎样把公共密钥密码系统转化成为单向验证系统。

第六部分将考虑各种各样的密码学的问题的相互联系性并且介绍更难的问题--陷阱门。

在引言中,介绍了本书的内容,并且说明了作者著书的原因与意图。

第二部分,常规密码体系(conventional cryptography):
密码学在研究“数学”系统中涉及二种安全问题:隐私和身份验证。

隐私系统是指在提取信息时防止未经授权的当事方的信息传输到公共通道,从而确保发件人的邮件安全,它是只读的预定收件人。

认证体系的安全通道是防止可能是每周一次的信使和不安全的一条电话
线的通道。

加密系统是一个单一的参数家庭{SK};zKP{K;z}的可逆转换:
SK:{P} {C} (1),从空间( P )的纯文本邮件到空间(ç )的密文信息。

有两种办法处理这个问题的系统是安全的,由于计算的安全性而屈服于攻击无限计算,被称为计算安全;而一个制度,能够抵御任何密码分析攻击,不管有多少计算允许,被称为无条件安全。

根据Shannon的理论,无条件安全的算法是存在的,但由于其密钥过长而不实用,这也是发展计算上安全的算法的原因。

文中提出,密码系统可以分为两大类:流密码和分组密码;而攻击可分为三种:
一是唯密文攻击,破译者仅拥有密文,他们只使用知识的统计特性中的语言使用特性和知识的某些“可能”的特性。

这在实践中经常发生,是最弱的威胁,其中一个系统可能遭受的任何系统屈从被认为是完全没有保障的。

二是已知明文攻击,破译者拥有了大量相应的明文和密文。

三是选定明文攻击,破译者可以自己向无限数量的纯文本邮件选择审查结果。

需要指出的是,本文给出了密码学的一个定义:研究解决保密和认证这两类安全问题的“数学”方法的学科。

第三部分,公钥加密(public key cryptography):
如图一所示,密码学已经成为一种衍生的安全措施。

作者建议开发如图二所示的信息流动的公共密钥系统。

在这样的系统中,双方用一个公共通道和唯一的已知公开技术就可以建立安全的连接。

他们审查两种办法来解决这个问题,就是所谓的公钥密码算法和公钥分配算法。

其中,第一种方法更强大,而第二个更接近实现。

公钥密码系统指定义在有限信息空间{M}上的,基于{Ek }和{Dk }的可逆变换:
EK:{M} → {M} (2)
DK:{M} → {M} (3)
满足下列条件:
⑴任给K∈{K}, Ek是Dk的互逆变换;
⑵任意的K∈{K}和M∈{M},用Ek和Dk进行加密和解密是容易计算的;
⑶对几乎所有的K∈{K},从Ek推出Dk在计算上是不可行的;
⑷任意的K∈{K},从K计算Ek和Dk是可行的。

这里K是用以产生Ek和Dk的随机数。

由于第三特点,保证了可公开Ek而不损害Dk的安全性,这样才保证了公钥密码算法的安全性。

第四特点,有一个可行的途径计算相应的对逆变换,在没有规定用什么来加密或破译变换的可能,实际上,密码设备都必须包含一个真正的随机生成数(例如噪声二极管)产生K,连同算法产生EK—DK两部分。

破译密码的关键是防止被未授权修改。

以加密二值n维向量为例,加密算法是乘一个n ×n可逆矩阵,解密则乘其逆矩阵,所需运算时间为n2。

此可逆矩阵可通过对单位矩阵做一系列的行和列的初等变换得到,而其逆矩阵是经过逆序的行和列的逆变换得到。

但是矩阵求逆只需要n3的时间,密码分析者用时与正常解密用时之比是n。

虽然这个例子并不实用,
但对解释公钥密码算法是有用的。

一个更实用的方法是利用机器语言的难懂性,把加密算法编译成机器语言公布,而解密算法保密,分析者要理解机器语言的全部运算过程是很困难的,
所以要破解是困难的,当然此算法必须足够的复杂以免通过输入和输出对来破解。

公钥分配算法是基于求对数再取模计算上的困难。

令q是一个素数,在有限域GF(q)上任取q,计算Y= ax *mod(q),其中a是GF(q)上的一个固定基元。

则 X= log a 【Y*mod (q)】。

不难得出由X计算Y是较容易的,约需要计算2×log2q次乘法;然而从Y得出X
是困难的,因为需q/2次运算。

这样对每一个用户,从[1,2,…,q-1]中随机的选一个q,计算出Yi=aXi* mod q ,并将Yi公布,Xi保密。

那么当用户i和j通信时,使用Kij=aXiXj *mod q作为他们的公共密钥。

此密钥用户i通过j公布的Yj 得到,即Kij= YjXi *mod q= (aXj)Xi *mod q= aXiXj *mod q得到。

用户j的计算同理。

对于第三方要获得此密钥就必
须计算,而这在计算上是不可行的,从而达到了在公共信道上分配私钥的效果。

第四部分,单向认证(one-way authentication):
作者提出,为了发展一种能够替代现有的纯电子形式交流的合同,我们必须发现一种和书面签名拥有相同性能的数字现象。

这种数字现象必须可以让所有人可以辨认出可信的签名,但是让不合法的用户无法去产生。

所以,作者提出了单向认证的概念,它必须能够让用户在不认知的情形下,也能辨认它。

现有的认证体系只能保证不被第三方冒名顶替,但不能解决发送者和接收者之间的冲突,为此引入单向函数的概念,即对定义域中的任意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有比一般的单向函数更强
的性质。

第五部分,问题的相关行为和陷阱门(problem interrel actions and trap doors): 在这个部分,作者展示了一些迄今能够归结于其他人的密码学问题,因此根据难度定义了一个松散序列。

1.如图三所示,一个对已知明文攻击安全的密码算法能产生一个单向函数。

设 :{P}->{K}是这样的一个算法,取P=P0 。

考虑映射f:{K}->{C}定义为f (x)=Sx (P0) ,则f是一个单向函数,因为要由f(x)得到x和已知明文攻击是等价的(即已知P=P0和SK (P0)求不出K)。

Evans还提出过另一种方法,他用的映射是f (x)=Sx(X),这增加了破解的难度,但这个单向函数却破坏了对已知明文攻击安全的要求。

⒉一个公钥密码算法可用来产生一个单向认证体系。

⒊一个陷门密码算法可用来产生一个公钥分配算法。

所谓陷门密码算法是指只有知道陷门信息才能正确还原明文,不掌握陷门信息要破解出明文在计算上是不可行的。

比如A要和B建立公共私钥,A任选一个密钥,用B公布的含有陷门信息的加密密钥加密之,并将密文发送给B,B由保密的陷门信息解密得到此密钥,于是A和B建立了公共的私钥。

不难发现公钥密码算法是一个陷门单向函数。

第六部分,计算的复杂性(computational complexity):
实践证明,几乎没有系统能能够抵抗厉害的破译者,而那些自认为是安全的系统随着时间的推移也会背各个击破。

在16和17世纪,大家都关注强度加密方法,依靠数学方法来计算具有天文数目的密钥。

后来,香农提出了一次填补系统(one time pad system),并且从二十世纪晚期便被应用于“完美保密”(一个无条件安全形式)。

现代密码算法的安全性是基于计算上的不可行性,因此就有必要对计算复杂度进行研究。

在确定型图灵机上可用多项式时间求解的问题定义为P类复杂度,在非确定型图灵上可
用多项式时间求解的问题定义为NP类复杂度,显然NP包括P。

Karp还定义了一个NP完全集,即如果NP完全集中的任何一个问题属于P 类,则NP中的所有问题都属于P。

现在大多数的加密算法用的是NP完全集中的问题。

关于密码分析的难度有如下定理:一个加密和解密算法若是能在P时间内完成的,那么密码分析的难度不会大于NP时间。

我们注意到普通的密码学问题就是NP的完整性问题。

从我们定义的宽度可以得出加密的问题。

让y = f(x) = a . x ,其中a是向量n的一个已知向量,x是一个双向向量。

计算y很简单,涉及到n分量。

关于倒置f,并且需要找到和y对应的一个子集的问题被称之为背包问题。

当2^n的子集以指数增长,并且n大于100时,穷举就变得不可能,所以必须谨慎行使。

背包问题在最坏的情况下可能会变得很难。

第七部分,历史回顾(historical perspective):
虽然,公钥系统和单向认证是在本文第一次提出,但是我们可以认为这是从过去的密码学里面发展变化出来的,并且顺应了百年来密码学发展的潮流。

密码学的核心便是加密。

然而,在早期人们对应该让什么保密还怀有迷惑。

密码体制,如凯撒密码,保密了整个加密过程。

在发明的电报[ 2 ,191 ]之后,一般系统和特定系统之间的区域允许系统受到损害。

密码学的发展经历了早期的加密过程保密,到60年代对明文攻击安全的算法,到现在算法公开的基于计算复杂度的算法,可见其发展趋势是秘密性越来越弱的。

并且随着许多曾经被证明为安全的算法被相继攻破,密码安全性的分析也经历了早期的纯数学证明到后来的密码分析攻击,再到计算复杂度分析。

这里还有一个有趣的现象就是密码分析方法大多是由专业人事发现的,而密码算法则主要是由非专业人员提出的。

在日常生活中,我们经常会接触到许多息交换,比如上网账号,电子商务,电子邮件,电子政务,银行证券等,因此,信息安全技术也必定渗透于我们生活的方方面面。

但是让我真正对信息安全技术得以窥探的,还是这学期修的信息安全技术这门学科。

信息安全技术作为一门综合学科,它涉及信息论、计算机科学和密码学等多方面知识,研究计算机系统和通信网络内信息的保护方法以实现系统内信息的安全、保密、真实和完整。

而在书中所讲的内容里面,我最感兴趣的也是密码学。

因为密码学是信息安全的核心技术,不仅与我们日常生活紧密相关,更是在军事,航天等各个领域有着不可忽视的作用。

如今,计算机网络环境下
信息的保密性、完整性、可用性和抗抵赖性,都需要采用密码技术来解决。

公钥密码在信息安全中担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。

如今,我虽然看了《密码学的新方向》这篇经典著作,但还是只能粗略地了解密码学中的最浅显的部分,想要真正了解密码学还有很长的路要走。

在文章中提出的公钥加密,单向认证等技术,现在也被广泛地使用。

Diffie和Hellman的经典算法,影响直至今日,各种新兴算法的形成、多次地被引用,并且还会在日后长期发挥巨大作用。

所有学科的提出,都需要不断的学习,吸收,不仅要有自己的独特见解与研究,更需要站在前人的肩膀上。

Diffie和Hellman所提出的理论,都是在对前人的总结,理解,分析的基础上,顺应时代潮流的发展产物。

所以我们应该学习他们,以至所有科学家的精神,让信息安全技术得以更好地发展。

相关文档
最新文档