RSA公钥是否唯一?

3

我们在服务器上使用RSA 2048公钥作为用户标识符,但我现在对此标识符的唯一性有疑问。我能否将RSA公钥用作服务器上唯一的用户标识符,或者RSA无法保证这一点?

2个回答

7
根据维基百科的说明,你将被分配一个数字(通常是质数),该数字的范围为0到:
RSA-2048 = 2519590847565789349402718324004839857142928212620403202777713783604366202070
           7595556264018525880784406918290641249515082189298559149176184502808489120072
           8449926873928072877767359714183472702618963750149718246911650776133798590957
           0009733045974880842840179742910064245869181719511874612151517265463228221686
           9987549182422433637259085141865462043576798423387184774447920739934236584823
           8242811981638150106748104516603773060562016196762561338441436038339044149526
           3443219011465754445417842402092461651572335077870774981712577246796292638635
           6373289912154831438167899885040445364023527381951378636564391212010397122822
           120720357

这个数字非常巨大,它的规模比宇宙中所有粒子的数量还要大。

从统计学上来说,它不可能与其他数字相冲突,也没有人有足够的计算能力去暴力破解它。而当他们有了这个能力时,这个消息就已经毫无意义了。

(..而且大部分宇宙也会发生坍塌)


2
你所展示的数字并不是全部的真相。你只能使用质数。根据质数定理,在1和x之间大约有x/ln(x)个质数。 - usr1234567
5
@usr1234567:观点很好,所以将它除以大约1386。删除这3位小数后,虽然数量并没有变少,但仍然非常惊人^^ - Levite

4

不可能,但它被重复出现的概率非常非常低。实际上,如果两个用户拥有相同的公钥,则他们也会知道私钥。这将是一个安全问题,这两个用户应该创建新的密钥。


但是他们如何知道呢? 用户如何知道相同的公钥存在? - sadeq shahmoradi
我的问题是,数字钱包的公钥如何保证唯一性? - sadeq shahmoradi
如果用户意外地使用与另一个钱包相同的公钥创建了一个钱包,那么该用户是否可以访问该钱包? - sadeq shahmoradi
1
有很多质数,选择它们两次的概率非常低。对于每个您创建的密钥,您都可以搜索是否有人正在使用相同的公钥。这可能会发生,然后您可以以其他用户的名义签署并访问他们的系统,或使用他们的钱包。 - usr1234567

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接