ssl剖析及案例

m*n=q, m,n均为素数(又叫质数),  已知q(不告诉你m、n),求m和n所需要的时间是多少?

目前超级计算机每秒指令数为亿亿数量级(10^16),(假设做一次此问题的操作只需要执行一条指令,实际上最多20条指令足够),假设二进制形式下,q为1024位二进制数(十进制形式,大小范围大约是10^(1024/3) : 10^300)。

而目前所有求m、n的算法和     最原始的算法:从1遍历到q,    消耗时间上,没有大本质差别。  

所以已知q,超级计算机想要求得m、n, 所需要的秒数大约是10^284秒, 三年大约是10^8秒,所以这显然是个天文数字。

超级计算机无法在可以接受的时间下求得此问题的解,就是现代所谓 非对称 加解密 算法 安全的原理。(在此基础上的应用)

其实 是在说, 此问题所需要的时间由q的大小决定,q越大此问题越长,让q达到超出超级计算机的能力,就可以达到无人能解的状况,而这就是安全的原理。(非对称加解密中密钥的长度,粗略的就对应了q的长度)

(以上符号^表示乘方, 10^16表示10的16次方).

 

ssl 本质上也基于此原理。

待续,上班喽。

 

posted on 2017-04-18 08:43  proooogram  阅读(251)  评论(0编辑  收藏  举报

导航