·数学之谜·
MIT的“时间之锁”难题
1999年,美国麻省理工学院的教授、密码学专家、RSA算法的共同发明者之一,罗恩·李维斯特(Ron Rivest)为了庆祝MIT计算机和人工智能实验室成立35周年,设计了一道名为“时间之锁(Time-lock)”的数学难题。李维斯特预计,除非有人找到简便算法,否则解出答案要用35年的时间。
李维斯特的问题说起来其实很简单:将一个位数超过7.2×10位的数字,也即位数超过2 279 685 186 856 218的数字,除以一个超过600位的数字,然后算出余数是多少。找到答案后,就能打开大学档案室的铅盒。
李维斯特加密的信息藏在616个数字中,加密方式与字母加密不同。破解密码的关键,是余数的位数同样超过600位。密码破解者必须将其转化为二进制(由1和0组成的数字),将其与原始密码的616个数字的二进制形式做比较即可得出谜底。对比可以生成第三串二进制数字:若1与0对应,则得出0;若1与1对应,或0与0对应,则得出1。二进制也能代表字母,因此第三串数列可以转化成密码信息中对应的字母。
既然题目简单,为什么解出答案要35年之久?因为题目中涉及数字巨大,要花近三十年的时间进行连续计算。李维斯特表示,计算只能在连续步骤中完成,因此不能将计算分配给多台电脑同时进行,超级计算机的平行处理器也同样不适用。
李维斯特告诉《新科学家》杂志,也许他对解题时间的估测过于乐观。他说:“计算能力的提高并没有预计的那么快。”除非因式分解方面的计算有所突破,否则解密时间将比预期更长。