RSA模量以0x00开头

sit_id 发布于 2019-03-09 rsa 最后更新 2019-03-09 14:34 2 浏览

    0:d=0  hl=4 l= 266 cons: SEQUENCE          
    4:d=1  hl=4 l= 257 prim:  INTEGER           :BDF2C14F11E80EEC62EE63135839DBD8C9140617CD497AB2E0E39E6A0CE75889B46D7EA2BE11ED8D5E05941F9BCF066E1DA9D176D32B22AD34F8F9055680F01F156AD4CAF288FBDF0BB03C1E58ADDFB8DFBC4870C18B38BAB0B3B35757BC10D662E3AD113387348E48E1B46E2DB0041BECA6DFD323EC6D204D7F9B875B9E6C51A1B37E3019D03DB71584F83ED300CC471B42D5C5F1CBD54D884A04A4CD4ABAB87B48C0BDAC4E32DE4B1EB238A3C979CFF07808511D7A4EC5898A2ED93C3BA36661FA14E252BCBDC0876C41D02FBB0B97CD1963A6CB09B274A9D395E93177A6DD00BE3B7C3AC89E53E84829E5B1E0F4048485EE09AE6711791B0B6107F6106423
  265:d=1  hl=2 l=   3 prim:  INTEGER           :010001
$ echo -n 'BDF2C14F11E80EEC62EE63135839DBD8C9140617CD497AB2E0E39E6A0CE75889B46D7EA2BE11ED8D5E05941F9BCF066E1DA9D176D32B22AD34F8F9055680F01F156AD4CAF288FBDF0BB03C1E58ADDFB8DFBC4870C18B38BAB0B3B35757BC10D662E3AD113387348E48E1B46E2DB0041BECA6DFD323EC6D204D7F9B875B9E6C51A1B37E3019D03DB71584F83ED300CC471B42D5C5F1CBD54D884A04A4CD4ABAB87B48C0BDAC4E32DE4B1EB238A3C979CFF07808511D7A4EC5898A2ED93C3BA36661FA14E252BCBDC0876C41D02FBB0B97CD1963A6CB09B274A9D395E93177A6DD00BE3B7C3AC89E53E84829E5B1E0F4048485EE09AE6711791B0B6107F6106423' | wc
      0       1     512
以上是由OpenSSL生成的2048位RSA密钥。注意它对模数字段有一个“257”长度。如果您计算为模数打印的十六进制字符,您会看到512 = 256 * 2。在ASN1中,有一个0x00的模数。由于模数是一个整数,所以不会影响RSA数学。但为什么呢?在X509证书中公开密钥值前缀也可以看到0x00。这些额外0x00的目的是什么?
已邀请:

tfugit

赞同来自:

这是因为ASN.1编码。据我所知,INTEGER有签名所以当它们从高于0x80的字节开始时,它们应被视为负数,这就是为什么它们以0x00为前缀。