gpt4 book ai didi

encryption - 更改私钥中的几个字符是否应该对其进行有意义的更改?

转载 作者:行者123 更新时间:2023-12-02 03:24:57 24 4
gpt4 key购买 nike

因此我们有一个私钥用于签署请求,稍后使用公钥进行解密。我在搞乱它并替换了其中的一些字符,例如将 'wnoy' 更改为 'xxyy'

我怀疑这会本质上改变 key 并导致解密失败,但事实并非如此。这些更改是否太小而无法对 key 产生有意义的更改?

谢谢!

最佳答案

对计算过程中使用的模数、指数或 CRT 参数进行任何更改都将导致算法无法生成正确的签名或解密过程失败(很可能会产生填充错误)。

但是,由于 RSA 私钥不仅仅是一个数字,因此通常保存在 PKCS#1 定义的 ASN.1/DER 编码结构中。现在就看你对这个结构做了什么改变,私钥是否损坏得足够多了。该结构的编码(如果是 PEM 私钥)也可能发挥作用。

很可能您在计算中使用 RSA CRT 参数时更改了公共(public)或私有(private)指数(私有(private)指数或 CRT 参数用于计算)。在这种情况下,计算将照常进行。您将有大约 256 个字节可以更改,而不会导致 2048 位 key 出现问题。

较慢的“普通”RSA 计算使用私有(private)指数,这意味着对 CRT 参数的任何更改都将不会被注意到(除非结构不再解析)。对于 2048 位 key ,您很可能拥有超过 5 x 128 个字节,可以更改这些字节而不会造成问题!


来自 PKCS#1:

RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}

这里的CRT(中国余数定理)参数是素数1、素数2、指数1、指数2,最后是系数参数。

关于encryption - 更改私钥中的几个字符是否应该对其进行有意义的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53651591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com