[英]Can one private key be associated with several public keys?
Ok, so my crpto lecturer in Uni posed this question at the end of the RSA key generation lecture as a brain teaser. 好的,所以我在Uni的crpto讲师在RSA密钥生成讲义的结尾提出了这个问题,作为一个脑筋急转弯。
I have been thinking about this and I think I have come up with a way ( I am aware its not practical and very vulnerable - But I would love for you guys to punch holes through it ): 我一直在考虑这个问题,并且我想出了一种方法(我知道它不切实际并且非常脆弱-但我希望你们能对此有所帮助):
Use RSA to generate public and private key pair. 使用RSA生成公钥和私钥对。
Make an additive hash function that taken in any input and adds the 制作一个可加进任何输入的加法哈希函数并添加
ascii value of each character and gives that as an output. 每个字符的ascii值,并将其作为输出。 ( I am aware additive hash has horrible distribution for ex ABC , BAC , ACB all have the same hash output -- but theoretically this can be used as an advantage to solve our problem )
(我知道附加哈希在前ABC,BAC,ACB上都有可怕的分布,都具有相同的哈希输出-但是从理论上讲,这可以用来解决我们的问题)
Now take your public key and generate several possible keys by jumbling up the on and off bits. 现在,使用公共密钥并通过增大开和关位来生成几个可能的密钥。
Give these jumbled up keys to potential customers. 将这些混乱的钥匙交给潜在客户。
Put our hash function on the server. 将我们的哈希函数放在服务器上。
When customer puts in his jumbled up public key - Hash function 当客户输入混乱的公钥时-哈希函数
calculates the hash - which should be similar to original public key generated by RSA. 计算哈希-应该类似于RSA生成的原始公钥。 Customer gets access.
客户获得访问权限。
Once again I am aware that this is very vulnerable and terrible. 我再次意识到这是非常脆弱和可怕的。 It cant be used in the real world.
它不能在现实世界中使用。 But does it answer the question my lecturer posed ?
但这是否回答了我的讲师提出的问题?
EDIT: 编辑:
Guys I am sorry for the confusion. 伙计们,我很困惑。 This question has nothing to do with collisions and expoiting the maths ( Those are definitely valid ways to do that - but they weren't what my lecturer was referring too - they were discussed in the lecture itself. ).
这个问题与碰撞和数学无关(这些绝对是实现此目的的有效方法-但它们也不是我的讲师所指的-在课程本身中进行了讨论。)。 The way my lecturer asked this question was - " come up with ways to make several public keys related to a single private key - nevermind how vulnerable your solution is ".
我的讲师问这个问题的方式是:“想出一种方法来制作与单个私钥相关的多个公钥,请不要介意您的解决方案有多脆弱。”
I think I know what your lecturer was getting at. 我想我知道您的讲师正在讲什么。 I'm not going to give you the full answer but I'll lead you along a few steps.
我不会给您完整的答案,但是我将引导您进行一些操作。 Obviously your lecturer wants you to study the math of RSA.
显然,您的讲师希望您学习RSA的数学。 In particular, look at the public and private exponents and how they are related.
特别要看一下公共和私人指数及其之间的关系。 Now, suppose you have an RSA modulus N, and RSA public exponent e, and an RSA private exponent d.
现在,假设您有一个RSA模数N,一个RSA公共指数e和一个RSA私有指数d。 Is there another exponent, say e + x, that works exactly the same way as e in the RSA math?
是否有另一个指数,例如e + x,与RSA数学中的e完全相同? The answer is yes, there is.
答案是肯定的。 In fact, there is an entire family of such exponents.
实际上,有这样一个指数的整个家族。 Now you have to discover what this x value is, and how it related to the math of RSA.
现在,您必须发现x值是什么,以及它与RSA的数学关系如何。
I don't want to spoil too much, but I think the answer your lecturer was waiting for is more related to the mathematical properties of finite groups. 我不想破坏太多,但我认为您的讲师正在等待的答案与有限群的数学性质有关。 Maybe see the definition of textbook RSA and see if you can find another public key that matches a given private key.
也许可以看到RSA教科书的定义,看看是否可以找到与给定私钥匹配的另一个公钥。 Fermat's Little Theorem might also be interesting.
费马小定理可能也很有趣。
在查找有限组时,您想阅读有关等价类的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.