(问题7-7:怎样证明RSA密码体制的解码公式?
答:现在回顾一下RSA公开密钥密码体制的要点。
①秘密选择两个大素数p和q,计算出n(pq。明文X ②计算((n)((p(1)(q(1)。
③公开选择整数e。1 ④秘密计算d,使得ed(1mod((n)。
⑤得出公开密钥(即加密密钥)PK({e,n},秘密密钥(即解密密钥)SK({d,n}。
⑥明文X加密后得到密文Y(Xemodn。
⑦密文Y解密后还原出明文X(Ydmodn——这就是RSA密码体制的解码公式。
下面就来证明RSA密码体制的解码公式。
Ydmodn=(Xemodn)dmodn=Xedmodn(这里用到了问题7-6的公式(3))
但ed(1mod((n)表示ed(k((n)+1,这里k任意整数。因此现在的问题就是要证明
Xedmodn=Xk((n)+1modn是否等于Xmodn。
根据问题7-6中证明的欧拉定理的一个推论,就可很容易地证明上式。这个推论是这样的:给定两个素数p和q,以及整数n=pq和m,其中0 mk((n)+1=m(p(1)(q(1)+1(mmodn(1)
下面就来证明公式(1)。
根据问题7-6中欧拉定理的公式(13),如果m和n互素,则等式(1)显然成立。
但如果m和n不是互素,则下面我们也可以证明等式(1)仍然成立。
当m和n不是互素时,m和n一定有公因子。由于n=pq且p和q都是素数,因此当m和n不是互素时,我们一定有下面的结论:或者m是p的倍数,或者m是q的倍数。
下面我们不妨先假定m是p的倍数,因此可记为m=kp,这里k是某个正整数。在这种情况下,m和q一定是互素的。因为如果不是这样,那么m一定是q的倍数(如果m是q的倍数,那么m就同时是p和q的倍数,这就和m 既然m和q互素,那么根据欧拉定理,我们有
m((q)(1modq
显然,将左端乘以任何整数次方的模q还是等于1。因此
[m((q)]((p)(1modq
因为((n)=((pq)=((p)(((q),所以上式变为
m((n)(1modq
可见存在某个整数j使得
m((n)=1+jq
将等式两端同乘以m=kp,并考虑到n=pq,得出
m((n)+1=kp+kpjq=m+kjn
取模n,得出
[m((n)+1]modn=[m+kjn]modn=mmodn
因此
m((n)+1(mmodn
这样就证明了公式(1),因而也就证明了RSA的解密公式X(Ydmodn。
(问题7-8:RSA加密能否被认为是保证安全的?
答:RSA之所以被认为是一种很好的加密体制,是因为当选择足够长的密钥时,在目前还没有找出一种能够对很大的整数快速地进行因子分解的算法。这里请注意,“在目前还没有找出”并不等于说“理论上已经证明不存在这样的算法”。如果在某一天有人能够研究出对很大的整数快速地进行因子分解的算法,那么RSA加密体制就不能再使用了。
(问题7-9:报文摘要并不对传送的报文进行加密。这怎么能算是一种网络安全的措施?不管在什么情况下永远将报文进行加密不是更好一些吗?
答:报文加密并非网络安全的全部内容。我们知道,使用RSA公开密钥体制进行加密时,往往需要花费很长的时间。当需要在网络上传送的报文并不要求保密但却不容许遭受篡改时,使用报文摘要就能够确保报文的完整性(因为这时仅仅对很短的报文摘要进行加密)。
(问题7-10:不重数(nonce)是否就是随机数?
答:它们并不完全一样。不重数是随机产生的,但只使用一次。可见要做到这点,这种随机数必须很大。
随机数虽然是随机产生的,但隔一段时间后再产生的随机数就可能会重复。
(问题7-11:在防火墙技术中的分组过滤器工作在哪一个层次?
答:。分组过滤器工作在网络层,但也可以把运输层包含进来。
本来“分组”就是网络层的协议数据单元名称。防火墙中使用的分组过滤器就是安装在路由器中的一种软件。大家知道,路由器工作在网络层。从这个意义上讲,分组过滤器当然也应当是工作在网络层。分组过滤器根据所设置的规则和进入路由器的分组的IP地址(源地址或目的地址)决定对该分组是否进行阻拦。这样的分组过滤器当然是工作在网络层。
但是,为了增强分组过滤器的功能,一些分组过滤器不仅检查分组首部中的IP地址,而且进一步检查分组的数据内容,也就是说,检查运输层协议数据单元的首部。这主要是检查端口号。这样做的目的是可以进一步限制所通过的分组的服务类型。例如,阻拦所有从本单位发送出去的、向计算机192.50.2.18请求FTP服务的分组。由于FTP的熟知端口号是21,因此只要在分组过滤器的阻拦规则中写上“禁止到目的地址为192.50.2.18且目的端口号为21的所有分组”即可。因此,这样的分组过滤器不仅工作在网络层,而且还工作在运输层。从严格的意义上讲,这样的路由器已经不是仅仅单纯工作在网络层了。
当然,像上面给出的规则,也可以由应用网关(即代理服务器)来实现。
|
|