信息安全原理与实践-第二版04-公开密钥加密课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《信息安全原理与实践-第二版04-公开密钥加密课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 原理 实践 第二 04 公开 密钥 加密 课件
- 资源描述:
-
1、1Information Security:Principles and Practice,2nd Edition美Mark Stamp著张 戈译第4章 公开密钥加密24.1 引言 公开密钥加密技术 单向陷门函数 公开密钥 私有密钥 数字签名 公开密钥加密体系 椭圆曲线加密方案34.2 背包加密方案Merkle-Hellman背包加密系统基于一个数学问题,该问题往往被看成NP完全问题。定定义:义:给定一个集合,共包含n个权重值,分别标识为:W0,W1,Wn-1,以及期望的和S,要求找到a0,a1,an-1,其中每一个ai0,1使得等式S=a0W0+a1W1+.+a n-1Wn-1,能够成立。例
2、例子:子:假设权重值为85,13,9,7,47,27,99,86 期望的和S=172 对于这个问题存在一个解决方案:a=(a0,a1,a2,a3,a4,a5,a6,a7)=(11001100)因为85+13+47+27=1724 超递增的背包问题当将权重值从小到大排列起来时,每一个权重值都大于前面所有权重值相加的和。-相对容易解决!例子:权重值集合为:3,6,11,25,46,95,200,411期望的和S=309我们只需从最大权重值开始,逐步向最小的权重值进行计算,就有望在线性时间内恢复出ai。5因为S200,那么一定有a6=1,因为剩余所有权重值的和要小于200。接着计算S=S-200=1
3、09,这是新的目标和值。因为S95,我们得到a5=1。然后再计算S=109-95=14。继续如法炮制,就得到了最终结果a=10100110。我们能够轻松地证实这个问题获得了解决,因为3+11+95+200=309。构造背包加密系统的流程(1)生成一个超递增的背包。(2)将这个超递增的背包转换为常规的背包。(3)公钥便是常规背包。(4)私钥就是超递增的背包以及相关的转换因子。6 实例(1)我们选择如下超递增的背包:(2,3,7,14,30,57,120,251)(2)为了将这个超递增的背包转换成常规背包,我们必须选择乘数m和模数n,m和n必须是互素的,且n要大于超递增背包中所有元素值的和。假设选
4、取的乘数m=41,模数n=491。通过模乘法运算,根据超递增背包计算常规背包,得到:(3)公钥就是这个常规背包公钥公钥:(82,123,287,83,248,373,10,471)(4)私钥就是这个超递增背包,加上转换因子的乘法逆,如m1 mod n。对于这个实例,计算结果如下私钥私钥:(2,3,7,14,30,57,120,251)以及41-1 mod 491=127如果Alice想要加密消息M=10010110并发送给Bob,她就利用消息中值为1的二进制位,据此来选择常规背包中的元素,将这些元素相加求和就得到了对应的密文。Alice执行计算:C=82+83+373+10=548要想解密这个
5、密文,Bob使用他的私钥执行如下计算,得到:Cm-1 mod n=54812 mod 491=193然后Bob针对值193求解超递增背包问题。因为Bob拥有私钥,所以要从中恢复出明文是比较容易的。最后,明文的二进制表示为M=10010110,其换算成十进制是M=150。8总结:在背包加密系统里,陷门函数存在于运用模运算将超递增背包问题转换为常规背包问题时,因为该转换因子对于攻击者来说是无法得到的。该函数的单向特性在于一个事实:使用常规背包实施加密非常容易,但是在没有私钥的情况下,要想解密显然是非常困难的。当然,有了私钥,我们就能够将问题转换为超递增背包问题,解决起来就容易了。背包问题看起来确实
6、是对症下药了。首先,构造包含公钥和私钥的密钥对是相当容易的。而且,给定了公钥,实施加密是非常容易的,而了解了私钥则会使解密过程非常容易。最后,在没有私钥的情况下,攻击者就将不得不去解决NP完全问题了。可惜这个精巧的背包加密系统是不安全的。该方案于1983年被Shamir使用一台Apple II计算机破解。该攻击依赖于一种称为格基规约的技术。问题的根本在于该方案中从超递增背包问题派生出的所谓“常规背包问题”并不是真正的常规背包问题事实上,它是一种非常特殊的高度结构化的背包案例,而格基规约攻击能够利用这种结构的特点比较容易地恢复出明文(可以较高的概率完成)。94.3 RSA RSA体制的命名来自于
7、它的三个公认的发明者:Rivest、Shamir和Adleman。10为了生成RSA算法的公钥和私钥的密钥对,先要选择两个大素数p和q:1.计算出它们的乘积N=pq。2.选择与乘积(p-1)(q-1)互素的数e。3.计算出数e的模(p-1)(q-1)的乘法逆元素,命名该逆元素为d。这些数值满足公式ed=1 mod(p-1)(q-1)。数N是模数,e是加密指数,而d是解密指数。RSA密钥对的组成如下:公钥:(N,e)私钥:d加密:加密:将明文文本消息M视为一个数,对其按指数e求幂并模NC=M e mod N解密:解密:要解密要解密C,求幂模运算使用解密指数d完成相应的操作过程M=C d mod
8、N RSA加密体制真的确实有效吗?给定C=M e mod N,我们必须证明如下等式:M=C d mod N=M ed mod N 欧拉定理欧拉定理:如果数x与数n互素,那么x(n)=1 mod n。再回顾之前对e和d的选取符合等式:ed=1 mod(p-1)(q-1),而且N=pq,这意味着:(N)=(p-1)(q-1)这两个事实结合在一起,就意味着下面的等式成立:ed-1=k(N)11这就证实了RSA体制的解密指数确实解密了密文C。4.3.1教科书式的RSA体制范例12AliceBob生成Alice的密钥对:1.选择两个“大的”素数:p=11,q=3。模数就是N=pq=33,并且可以计算出(
9、p-1)(q-1)=20。2.选取加密指数为e=3。3.计算相应的解密指数d=7,因为ed=37=1 mod 20。Alice的公钥:(N,e)=(33,3)Alice的私钥:d=7假定Bob想要发送一条消息M=15 给Alice。Bob先查找Alice的公钥(N,e)=(33,3),再计算密文 C=M e mod N=153 =3375=9 mod 33 =9Alice使用她的私钥d=7进行解密计算:M=C d mod N=97=4,782,969 =144,93833+15 =15 mod 33 =15 存在的问题 所谓“大的”素数其实并不大,对Trudy来说分解这个模数将是小菜一碟。在现
10、实世界中,模数N典型的大小通常至少是1024位,而长度为2048位或更大的模数值也是常常会用到的。可能遭受前向检索攻击。134.3.2 重复平方方法重复平方方法通过每次构建一个二进制位的方式来生成指数并完成计算。在每个步骤中,我们将当前的指数值乘以2,如果其二进制扩展形式在相应的位置有值1,我们就还要对指数计算的结果再加上1。例子:计算520。指数20以二进制形式表示为10100,指数10100可以一次一位地被构建出来,从高阶二进制位开始,如下:(0,1,10,101,1010,10100)=(0,1,2,5,10,20)现在计算520,重复平方方法的执行过程如下:14So easy!4.3.
11、3 加速RSA加密体制另外一个可用于加速RSA加密体制的技巧是,对于所有用户使用同一加密指数e。而这并不会在任何方面削弱RSA加密体制的强度。通常加密指数的合适选择是e=3。选择这个e值,每一次公钥加密仅仅需要两次乘法运算。不过,私钥的运算操作仍然代价高昂。如果多个用户都使用e=3作为他们的加密指数,那么还存在另一种类型的立方根攻击。如果对于同一个消息M,使用三个不同用户的公钥分别加密,生成的密文比如是C0、C1和C2,那么中国剩余定理可用于恢复明文消息M。在实践中,这也很容易避免,方法就是对每个消息M随机附加填充信息,或者在每个消息M中增加一些用户指定的信息,这样每个消息实际上就会互不相同了
12、。另一个流行的通用加密指数是e=216+1。选取这个e值,每个加密运算仅需要执行17个重复平方算法的步骤。e=216+1的另一个优势是,在运用中国剩余定理的攻击者成功破解消息密文之前,同样的加密消息密文必须已经先行发送给e=216+1个用户。154.4 Diffie-Hellman密钥交换算法Diffie-Hellman密钥交换算法,或简称为DH,是由英国政府通信总部(GCHQ)的Malcolm Williamson所发明,其后不久,该算法又被它的命名者Whitfield Diffie和Martin Hellman独立地再次发明。这里讨论的Diffie-Hellman算法版本是密钥交换算法,因
13、为它仅仅能够用于建立共享的秘密。DH算法的安全性依赖于离散对数问题的计算难度。假设给定g以及x=gk。那么,要想确定k,就需要计算对数logg(x)。16 DH算法的数学构造设定p为素数,并假定g是生成器,即对于任何的x1,2,.,p-1,都存在指数n,使得x=gn mod p。素数p和生成器g是公开的。对于实际的密钥交换过程,Alice随机地选择秘密的指数a,Bob随机地选择秘密的指数b。Alice计算ga mod p,并将结果发送给Bob,而Bob计算gb mod p,也将结果发送给Alice。Alice执行如下计算:(gb)a mod p=gab mod pBob执行如下计算:(ga)b
14、 mod p=gab mod p最后,gab mod p就是共享的秘密,其典型的用途是作为对称密钥。17DH密钥交换攻击者Trudy能够看到ga mod p 和 gb mod p,而且看起来她距离那个共享秘密gab mod p也非常接近。但是:gagb=ga+bgab mod p显然,Trudy需要找到a或b,看起来这就需要她去解决一个困难的离散对数问题。18DH算法容易遭受中间人攻击(简称为MiM攻击)Trudy将自己置于Alice和Bob之间,截获从Alice发送给Bob的消息,同样也截获从Bob发送给Alice的消息。Trudy如此部署,将使DH密钥交换很容易地就被彻底破坏了。在这个过程
15、中,Trudy建立共享的秘密,比方说,和Alice共享gat mod p,和Bob共享另一个秘密gbt mod p。无论是Alice还是Bob,都不会觉察到这其中有任何问题,于是,Trudy就能够读到或改写Alice和Bob之间传递的任何消息了。19 预防中间人攻击的方法 使用共享对称密钥对DH密钥交换过程实施加密。使用公钥对DH密钥交换过程实施加密。使用私钥对DH密钥交换过程中的值进行数字签名。204.5 椭圆曲线加密 椭圆曲线加密体制(Elliptic Curve Cryptography,ECC)提供了另一个“实施复杂难解的数学操作”的方法。优势优势:要获得同样等级的安全性,需要的二进制
展开阅读全文