全部科目 > 嵌入式系统设计师 >
2020年下半年 上午试卷 综合知识
第 20 题
知识点 RSA(Rivest Shamir and Adleman)算法   RSA   RSA算法   加密  
章/节 安全性基本概念  
 
 
RSA算法中,选择两个质数p=11,q=17,加密密钥为e=23,则解密密钥d为(20)。
 
  A.  5
 
  B.  7
 
  C.  11
 
  D.  13
 
 




 
 
相关试题     数据加密算法 

  第6题    2019年下半年  
下列算法中,不属于公开密钥加密算法的是(6)。

  第54题    2016年下半年  
在下列加密算法中,(54)属于非对称加密。

  第7题    2018年下半年  
DES是(7)算法。

 
知识点讲解
· RSA(Rivest Shamir and Adleman)算法
· RSA
· RSA算法
· 加密
 
        RSA(Rivest Shamir and Adleman)算法
        这是一种公钥加密算法,方法是按照下面的要求选择公钥和密钥:
        (1)选择两个大素数pq(大于10100)。
        (2)令n=p*q、z=(p-1)*(q-1)。
        (3)选择dz互质。
        (4)选择e,使e*d=1(modz)。
        明文P被分成k位的块,k是满足2k<n的最大整数,于是有0≤P
        C=Pe(modn)
        这样公钥为(en)。解密时计算
        P=Cd(modn)
        即私钥为(dn)。
        用例子说明这个算法,设p=3,q=11,n=33,z=20,d=7,e=3,C=P3(mod 33),P=C7(mod 33)。则有
        C=23(mod 33)=8(mod 33)=8
        P=87(mod 33)=2097152(mod 33)=2
        RSA算法的安全性基于大素数分解的困难性。如果攻击者可以分解已知的n,得到pq,然后可得到z,最后用Euclid算法,由ez得到d。然而要分解200位的数,需要40亿年;分解500位的数,则需要1025年。
 
        RSA
        RSA算法是非对称算法,由Ronald Rivest、Adi Shamir、Leonard Adleman三人共同在1977年公开发表。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证是网络连接系统中最常见的执行操作之一。
        RSA算法基于大整数因子分解的困难性,该算法的步骤如下:
        第一步,生成两个大素数pq
        第二步,计算这两个素数的乘积n=pq
        第三步,计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)(q-1)。
        第四步,选取一个随机数e,且满足1<e<φ(n),并且eφ(n)互素,即gcd(eφ(n))=1。
        第五步,计算d=e-1modφn)。
        第六步,保密dpq,而公开ne,即d作为私钥,而ne作为公钥。
        下面,举一个RSA加密的具体实例。设素数p=3,q=17,并令e=13,则RSA的加密操作如下:
        第一步,计算nn=pq=3×17=51,得出公钥n=51,e=13。
        第二步,计算φ(n)和dφ(n)=(p-1)(q-1)=2×16=32。因为d=e-1modφ(n),所以,其中kp-1和q-1的最大公约数。由此算出d=(2×32+1)/13=5,即解密密钥d=5。
        第三步,加密和解密处理计算。假设Bob的公开密钥是e=13、n=51,Alice需要将明文“2”发送给Bob,则Alice首先用Bob的公开密钥加密明文,即:
        C=Memodn=213mod 51=8192 mod 51=32
        然后,Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即:
        M=Cdmodn=325mod 51=1024×1024×32 mod 51=512 mod 51=2
        RSA安全性保证要做到选取的素数pq足够大,使得给定了它们的乘积n后,在事先不知道pq的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n长度至少应为1024比特,然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。
 
        RSA算法
        非对称密钥密码体制的典型算法是RSA算法。它是由三位发明者Ron Rivest、Adi Shamir和Leonard Adleman名字的第一个字母组合而成。RSA算法的基本原理是基于大素数难分解原理,即寻找两个大素数比较简单,而将两个大素数的乘积分解非常困难。
        具体算法如下:
        ①选取两个足够大的质数p和q;
        ②计算p和q的乘积,记为n=p*q;
        ③计算p-1和q-1的乘积,记为m=(p-1)*(q-1);
        ④寻找一个与m互质的数e,且满足1
        ⑤寻找一个数d,使其满足(e*d)mod m=1;
        ⑥(n,e)为公钥,(n,d)为私钥。
        如果用M表示明文,C表示密文,则
        加密过程可表示为:C=Memod n
        解密过程可表示为:M=Cdmod n
        传递信息时发送方用接收方的公钥加密信息,接收方用自己的私钥对信息进行解密。
        RSA算法的工作原理可结合一个简单的算例说明。
        假设发送方要传送明文M=19给接收方,按照RSA算法描述,密钥对的生成过程为:
        ①假设选择两个质数p=3,q=11;
        ②计算n=p*q=33;
        ③计算m=(p-1)*(q-1)=20;
        ④寻找一个与m互质的数e,且满足1
        ⑤寻找一个数d,使其满足(e*d)mod m=1;
        此处取d=7,满足(3*7)mod 20=1;
        ⑥得出公钥(n,e),即(33,3);
        私钥(n,d),即(33,7)。
        发送方用接收方的公钥加密信息得到密文C=Memod n=193mod 33=28。接收方收到消息后用自己的私钥解密信息得到明文M=Cdmod n=287mod 33=19。
        从所基于的数学难题来讲,RSA算法基于大整数因子分解系统。除RSA算法外,椭圆离散对数系统(ECC)和离散对数系统(代表性算法DSA)也属于非对称密钥密码体制算法。
 
        加密
               保密与加密
               保密就是保证敏感信息不被非授权的人知道。加密是指通过将信息进行编码而使得侵入者不能够阅读或理解的方法,目的是保护数据和信息。解密是将加密的过程反过来,即将编码信息转化为原来的形式。古时候的人就已经发明了密码技术,而现今的密码技术已经从外交和军事领域走向了公开,并结合了数学、计算机科学、电子与通信等诸多学科而成为了一门交叉学科。现今的密码技术不仅具有保证信息机密性的信息加密功能,而且还具有数字签名、身份验证、秘密分存、系统安全等功能,来鉴别信息的来源以防止信息被篡改、伪造和假冒,保证信息的完整性和确定性。
               加密与解密机制
               加密的基本过程包括对原来的可读信息(称为明文或平文)进行翻译,译成的代码称为密码或密文,加密算法中使用的参数称为加密密钥。密文经解密算法作用后形成明文,解密算法也有一个密钥,这两个密钥可以相同也可以不相同。信息编码的和解码方法可以很简单也可以很复杂,需要一些加密算法和解密算法来完成。
               从破译者的角度来看,密码分析所面对的问题有三种主要的变型:①“只有密文”问题(仅有密文而无明文);②“已知明文”问题(已有了一批相匹配的明文与密文);③“选择明文”(能够加密自己所选的明文)。如果密码系统仅能经得起第一种类型的攻击,那么它还不能算是真正的安全,因为破译者完全可能从统计学的角度与一般的通信规律中猜测出一部分的明文,而得到一些相匹配的明文与密文,进而全部解密。因此,真正安全的密码机制应使破译者即使拥有了一些匹配的明文与密文也无法破译其他的密文。
               如果加密算法是可能公开的,那么真正的秘密就在于密钥了,密钥长度越长,密钥空间就越大,破译密钥所花的时间就越长,破译的可能性就越小。所以应该采用尽量长的密钥,并对密钥进行保密和实施密钥管理。
               国家明确规定严格禁止直接使用国外的密码算法和安全产品,原因主要有两点:①国外禁止出口密码算法和产品,目前所出口的密码算法都有破译手段,②国外的算法和产品中可能存在“后门”,要防止其在关键时刻危害我国安全。
               密码算法
               密码技术用来进行鉴别和保密,选择一个强壮的加密算法是至关重要的。密码算法一般分为传统密码算法(又称为对称密码算法)和公开密钥密码算法(又称为非对称密码算法)两类,对称密钥密码技术要求加密解密双方拥有相同的密钥。而非对称密钥密码技术是加密解密双方拥有不相同的密钥。
               对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类(这两种体制之间还有许多中间类型)。
               序列密码是军事和外交场合中主要使用的一种密码技术。其主要原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列将信息流逐比特加密从而得到密文序列。可以看出,序列密码算法的安全强度由它产生的伪随机序列的好坏而决定。分组密码的工作方式是将明文分成固定长度的组(如64比特一组),对每一组明文用同一个密钥和同一种算法来加密,输出的密文也是固定长度的。在序列密码体制中,密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;而在分组密码体制中,经过加密所得到的密文仅与给定的密码算法和密钥有关,而与被处理的明数据段在整个明文中所处的位置无关。
               不同于传统的对称密钥密码体制,非对称密码算法要求密钥成对出现,一个为加密密钥(可以公开),另一个为解密密钥(用户要保护好),并且不可能从其中一个推导出另一个。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。另外,公钥加密也用来对专用密钥进行加密。
               公钥算法不需要联机密钥服务器,只在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。密钥分配协议简单,所以极大简化了密钥管理,但公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。
               密钥及密钥管理
               密钥是密码算法中的可变参数。有时候密码算法是公开的,而密钥是保密的,而密码分析者通常通过获得密钥来破译密码体制。也就是说,密码体制的安全性建立在对密钥的依赖上。所以,保守密钥秘密是非常重要的。
               密钥管理一般包括以下8个内容。
               (1)产生密钥:密钥由随机数生成器产生,并且应该有专门的密钥管理部门或授权人员负责密钥的产生和检验。
               (2)分发密钥:密钥的分发可以采取人工、自动或者人工与自动相结合的方式。加密设备应当使用经过认证的密钥分发技术。
               (3)输入和输出密钥:密钥的输入和输出应当经由合法的密钥管理设备进行。人工分发的密钥可以用明文形式输入和输出,并将密钥分段处理;电子形式分发的密钥应以加密的形式输入和输出。输入密钥时不应显示明文密钥。
               (4)更换密钥:密钥的更换可以由人工或自动方式按照密钥输入和密钥输出的要求来实现。
               (5)存储密钥:密钥在加密设备内采用明文形式存储,但是不能被任何外部设备访问。
               (6)保存和备份密钥:密钥应当尽量分段保存,可以分成两部分并且保存在不同的地方,例如一部分存储在保密设备中,另一部分存储在IC卡上。密钥的备份也应当注意安全并且要加密保存。
               (7)密钥的寿命:密钥不可以无限期使用,密钥使用得越久风险也就越大。密钥应当定期更换。
               (8)销毁密钥:加密设备应能对设备内的所有明文密钥和其他没受到保护的重要保护参数清零。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有