密码学是一门古老的学问,发展到今天已经不是一门独立的学科,而是与计算机网络应用有着密切关系的学科。
1、我认为是这样的,a离港之前就给了b一个a的公钥,这个公钥永远不会变,当然这个公钥也可以被黑客得到,但是a的公钥是不能给任何人的。
2、然后a出港了,他需要给总部发消息的时候,他就用b的公钥对消息加密,然后再用自己的私钥再加一次密。
3、此信息到了b,b用自己的私钥现解密,发现里面的信息是一个加了密的信息,所以他就用a离港时交给他的公钥去试,如果试开了,说明这个信息是a发来的,如果没有试开,说明不是a发来的信息。
4、再回来说黑客,黑客能够截获到a和b的公钥,以及a和b之间的信息。那么黑客想要在两个消息方之间制造破坏:1)获得了a和b的公钥。2)冒充a给b发信息。3)破解a和b之间的信息。这些行为有潜在的危险性吗?
下面我们来逐一分析:
黑客如果获得了a的公钥,他只能用在开解那些用a的私钥加密过信息这种事情上,但这是不可能的,因为a的私钥加密过的信息是在b的公钥加密信息里面封装的,黑客是无法获得b的私钥的,所以黑客获得了a的公钥也产生不了什么危险性。
黑客如果获得了b的公钥,他就想冒充a利用公钥给b发信息。但是他是没有a的私钥的,所以,即使他自己编造假冒一个a的私钥加密,但到了b那边,b用a离港之前给他留下的a的公钥无法解开嵌套的消息,自然也就不认可这部分信息是a发来的。所以黑客截获了b的公钥也没有什么关系。
这样也就解决了1)和2)危险性。
如果黑客拦截到了a给b的信息,那么黑客因为没有b的私钥,所以无法识别。
如果黑客拦截到了b给a的信息,那么他只能用b的公钥打开一层。看到的是a用公钥加密的信息,但是他手头最多也就只拥有a的公钥,不可能有a的私钥,所以黑客还是无法看到内部信息。
这样就解决了3)危险性。