《密码学的新方向》阅读笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息安全技术
研究性专题阅读报告
学院电子信息工程学院班级通信1306班
学号13272053
姓名卢文涛
指导老师毕红军
目录
Part Ⅰ文章简介 (3)
一、简介及摘要 (3)
二、常规密码体制 (3)
三、公钥密码体制 (4)
四、单向认证 (7)
五、问题的相关性和陷门 (7)
六、计算复杂度 (8)
七、历史回顾 (8)
Part Ⅱ个人感想 (9)
《密码学的新方向》读书笔记
Part Ⅰ文章简介
一、简介及摘要
本文讨论了当代密码学的两个发展方向:加密和认证。随着远程通信的发展,特别是计算机网络的发展,密码学面临着两大难题:可靠的密钥传输通道问题,和如何提供与书面签名等效的认证体系。为了解决这些问题,文中提出了公钥密码算法和公钥分配算法,并且把公钥密码算法经过变换成为一个单向认证算法,来解决有效认证问题。此外还讨论了密码学中各种问题之间的相互关系,陷门问题,计算复杂性问题,最后回顾了密码学发展的历史。
二、常规密码体制
密码学问题包括加密和认证,而认证又可分为消息认证和身份认证。作者简单介绍了使用一般密码系统进行通信时信息的流动(如图一)。它包含三部分:发送方,接收方和攻击者。接着,作者介绍了算法的无条件安全与计算性安全,三种攻击法,即唯密文攻击、已知明文攻击、选择明文攻击。并给出了密码学的一个定义:研究解决保密和认证这两类安全问题的“数学”方法的学科。根据Shannon的理论,无条件安全的算法是存在的,但由于其密钥过长而不实用,这也是发展计算上安全的算法的原因。
三、公钥密码体制
公钥密码体制包括:公钥密码算法和公钥分配算法。公钥密码算法有利于实现认证机制,而公钥分配算法更接近于实现。
公钥密码算法是指定义在有限信息空间{M}上的,基于算法{kE}和{kD}的可逆变换:
E k:{M}
D K:{M}
算法必须满足下列条件:
⑴对任给K∈{K},kE是kD的互逆变换;
⑵对任意的K∈{K}和,用kE和kD进行加密和解密是容易计算的;
⑶对几乎所有的K∈{K},从kE推出kD在计算上是不可行的;
⑷对任意的K∈{K},从K计算kE和kD是可行的性质;
⑶保证了我们可以公开而不损害的安全性,这样才保证了公钥密码算法的安全性。因此,公钥密码算法可以分为两部分:加密算法和解密算法。利用加密算法推导解密算法是计算不可行的,反之亦然。
⑷确保了在对加密和解密函数没有限制的条件下,计算这两个函
数的可行性。实际
运用中,公钥加密工具必须包含一个随机数生成器用来生成K ,利用K 计算E k 和D k。
接着,作者举了个例子,以加密二值n维向量为例,加密算法是乘一个n*n可逆矩阵,解密则乘其逆矩阵,所需运算时间为n2。此可逆矩阵可通过对单位矩阵做一系列的行和列的初等变换得到,而其逆矩阵是经过逆序的行和列的逆变换得到。但是矩阵求逆只需要n3的时间,密码分析者用时与正常解密用时之比是n。虽然这个例子并不实用,但对解释公钥密码算法是有用的。一个更实用的方法是利用机器语言的难懂性,把加密算法编译成机器语言公布,而解密算法保密,分析者要理解机器语言的全部运算过程是很困难的,所以要破解是困难的,当然此算法必须足够的复杂以免通过输入和输出对来破解。
作者建议使用一种新的密钥分配算法,这种新算法的有效性依赖于计算有限域中离散对数的困难性。具体算法如下:令q是一个素数,有限域为GF(q)。计算
Y = α X mod q ,其中1≤X≤q− 1 (4)
其中α是GF(q)上的一个固定本原元。然后计算X:
X= logαYmodq ,其中1≤Y≤q −1 (5)
不难得出由X 计算Y 是较容易的,约需要2×log2 q 次乘法运算[6 , pp . 398-422];例如,X=18,则
Y= a 18(((a2) 2) 2) 2×a2 (6)
然而用Y 计算X 是困难的。对于某些精心选定了的q,采用最快的
算法也需要q 1/2次运算[7 , pp . 9 , 575-576 ] , [8]。
此密码算法的安全性是建立在求对数模q的运算困难性上的。如果能找到一种求对数模q计算量是随着log 2 q增长的算法,那么这种加密算法就是无效的。每一个用户,从[1,,2, q −1 ] 中随机的选一个X i,计算出Y i
Y i = a Xi modq (7)
并将Y i公布,X i保密。那么当用户i和j通信时,使用
K ij = α X iX j mod q (8)
作为他们的公共密钥。此密钥用户i 通过公布的Y i得到,即Kij =Y j X i modq (9)
=(a Xj)Xi modq (10)
=a XjXi = a XjXi modq (11)
用户j 的计算K ij同理。
Kij = Yi Xjmodq(12)
对于第三方要获得此密钥就必须计算
K ij = Y j (logαYi) modq (13)
如果log a Y j容易计算,那么K ij就容易计算,那么这个系统就会轻易被破解掉。我们没有证据说明即使log a Y j被轻易计算出,这个系统也是安全的。也没有证据说明能够在不知道X i和X j的情况下,能够计算出K ij。
四、单向认证
现有的认证体系只能保证不被第三方冒名顶替,但不能解决发送者和接收者之间的冲突,为此引入单向函数的概念,即对定义域中的任意x,f(x)是容易计算的,但对几乎所有的值域中的y,求满足y= f(x)的x在计算上是不可行的。例如已知多项式p(x)和x0,求y0=p(x0)是容易的,但若已知y0求出x0是困难的。值得注意的是,这里的计算上不可逆与数学中的不可逆是完全不同的。
公钥密码算法可用来产生一个真正的单向认证体系。当用户A 要发信息M给用户B时,他用其保密的解密密钥AD”解密”M并传给B,B收到时用A公布的加密密钥AE”加密”此消息从而得到信息M。因为解密密钥是保密的,只有A发送的消息才具有这样的性质,从而确认此信息来源于A,也就建立了一个单向认证体系。Leslie Lamport 提出另一种单向信息认证方法就不在这里详细赘述了。
五、问题的相关性和陷门
1.一个对已知明文攻击安全的密码算法能产生一个单向函数。设
是这样的一个算法,取P=P0,考虑映射f:定义为f(x)=)(0PSX,则f是一个单向函数,因为要由f(x)得到x和已知明文攻击是等价的。Evans还提出过另一种方法,他用的映射是f(x)= )(XSX,这增加了破解的难度,但这个单向函数却破坏了对已知明文攻击安全的要求。
2.一个公钥密码算法可用来产生一个单向认证体系。这一点在Ⅳ