好的,所以我在 Uni 的 crpto 讲师在 RSA 密钥生成讲座结束时提出了这个问题作为脑筋急转弯。
我一直在考虑这个问题,我想我想出了一个方法(我知道它不实用而且非常脆弱 - 但我希望你们能通过它打孔):
使用 RSA 生成公钥和私钥对。
制作一个加法哈希函数,该函数接受任何输入并添加
每个字符的 ascii 值并将其作为输出。(我知道对于前 ABC、BAC、ACB 来说,加法哈希的分布很糟糕——但从理论上讲,这可以作为解决我们问题的一个优势)现在获取您的公钥并通过混淆开和关位来生成几个可能的密钥。
将这些乱七八糟的钥匙交给潜在客户。
将我们的哈希函数放在服务器上。
当客户输入他混乱的公钥时 - 哈希函数
计算哈希 - 这应该类似于 RSA 生成的原始公钥。客户获得访问权限。
我再次意识到这是非常脆弱和可怕的。它不能在现实世界中使用。但它回答了我的讲师提出的问题吗?
编辑:
伙计们,我很抱歉造成混乱。这个问题与碰撞和利用数学无关(这些绝对是有效的方法 - 但它们也不是我的讲师所指的 - 它们在讲座本身中进行了讨论。)。我的讲师提出这个问题的方式是——“想出一些方法来制作与单个私钥相关的多个公钥——别管你的解决方案有多脆弱”。