RSA算法理解
??????? 如果你不想搞明白数学原理是怎样的,而又想了解RAS算法是如何实现这种看似不可能的密钥和密文放在一起却无法破解的难题,那么请看我的简要分析。
1.bob和alice正在通讯,bob的回复是极为机密的,只有alice一个人才可以知道,被别人知道的话,alice和bob的几亿元的财富就被别人所占有了。
2.alice问bob,你给我发过来我想要的答案,顺便给了bob一个几千位的字符串【A】。这句话被几万人所传阅,所有的人都看到了alice想要 bob的答案,也看到了这个几千位的字符串【A】。这个字符串【A】是由一种大家都明白的方法生成的。由两个只有alice知道的字符串【A1】【A2】 通过这种大家都明白的数学方法得到一个超级无敌长的字符串【A】。这个方法的好处就是,全世界只有alice才知道怎么把这个字符串【A】分解成之前的两 个字符串【A1】【A2】,而别人想要分解的话,需要几万年的时间。其实,在这个特例中,别人只要一个月以上才可以破解的话,alice就已经没有任何需 要担心的了,信息的时效性是非常重要的。如果这个字符串可以被别人一个月破解,那么alice只需要把这个字符串提高几位,这就需要几十年才可以破解了。
3.bob和所有人都受到了这条信息,于是bob就把自己的答案【Answer】通过特定的方法与alice给的字符串【A】融合,生成一个复杂的字符串 【B】。由于这种深奥的数学原理的特性,造成了这么一个结果:只有alice的两个字符串【A1】【A2】才可以用作拆分bob的字符串【B】的工具,如 果没有alice的两个字符串【A1】【A2】,那么bob的回答【B】也是无法破解的。此时需要注意的是,bob也不知道【A1】【A2】是什么,而且 如果bob忘记了自己的回答【Answer】,那么他自己也无法从【B】中破解出自己的真实回答【Answer】,bob只是利用了alice给的字符串 【A】结合自己的真实回答【Answer】才生成了【B】。如果bob没有用【A】反而直接回答:“我们公司正在研究xxxx”【Answer】,那么所 有人都呵呵了。
4.所有人都在费力破解【B】的时候,Alice利用【A1】【A2】很容易的就分解了【B】,从而得到了准确的答复【Answer】。
5.以上只是alice单方面的加密,如果bob给了Alice一个长字符串【C】,这是由【C1】【C2】生成的,那么双方的通信内容将全都不可知。
?
?
综上所述,
alice:【A1】+【A2】→【A】
bob:【Answer】+【A】→【B】
alice:【B】→利用【A1】【A2】作为工具→【Answer】
其中【A】→【A1】+【A2】几乎无法实现
【B】→【Answer】不借助【A1】+【A2】也是几乎无法实现
至于算法如何,那就是数学家的事了。
以上纯属一派胡言,只是作为帮助我自己理解用的。