单选题
RSA是一种具有代表性的公钥加密方法,如果选定了用于加解密的两个素数分别为37、53,则每个分组的位数是______。
A.10 B.12 C.18 D.25
【正确答案】
A
【答案解析】本题考查加密算法方面的基本知识。
1978年出现了著名的RSA(Rivest-Shamir-Adleman)算法。这是一种公钥加密算法,这种算法为公用网络上信息的加密和鉴别提供了一种基本方法。它通常是由密钥管理中心先生成一对RSA密钥,其中之一称为私钥,由用户保存;另一个称为公钥,可对外公开,甚至可在网络服务器中注册。在传送信息时,常采用私钥加密方法与公钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后,使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
密钥管理中心产生一对公钥和私钥的方法如下:在离线方式下,先产生两个足够大的质数p、q,计算n=p×q和z=(p-1)×(q-1),再选取一个与z互为素数的奇数e,称e为公开指数;从这个e值可以找出另一个值d,并能满足e×d=1mod(z)条件。由此得到的两组数(n,e)和(n,d)分别被称为公开密钥和保密密钥,或简称公钥和私钥。
RSA算法之所以具有安全性,是基于数论中的一个特性事实:即将两个大的质数合成一个大数很容易,而相反的过程则非常困难。在当今技术条件下,当n足够大时,为了找到d,欲从n中通过质因子分解试图找到与d对应的p、q是极其困难甚至是不可能的。由此可见,RSA的安全性是依赖于作为公钥的大数n的位数长度的。为保证足够的安全性,一般认为现在的个人应用需要用384或512位的n,公司需要用1024位的n,极其重要的场合应该用2048位的n。
RSA算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密后发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息解密,从而获知报文的内容。由此可看出,RSA算法解决了大量网络用户密钥管理的难题。不过RSA并不能替代DES,它们的优缺点正好互补。RSA的密钥很长,加密速度慢;DES正好弥补了RSA的缺点。即DES用于明文加密,RSA用于DES密钥的加密。因为DES加密速度快,适合加密较长的报文;而RSA可解决DES密钥分配的问题。美国的保密增强邮件(PEM)就是采用了RSA和DES结合的方法,目前已成为E-mail保密通信标准。
RSA是一种分组密码算法,以分组(即数据块,不是指网络层的分组)为单位进行加解密,每一个分组看成一个数据,其值小于n,即必须小于等于Log2n位,在实际应用中,分组的大小是k位,其中2k<n≤2k+1。n=pq,p、q是两个素数,由p、q计算n很容易,但由n计算p、q却很难。此题中,p=37,q=53,n=pq=1961。因为210<1961≤211,所以,每个分组的位数为10位。