RSA中实际的1024位密钥长度

时间:2014-05-07 07:44:27

标签: java encryption rsa

我正在学习RSA密码学,所以我必须了解ke长度。 Here,我找到了关键长度的解释。

说:

  

当我们说" 1024位RSA密钥"时,我们的意思是模数有长度   1024位,即大于2 ^ 1023但小于2 ^ 1024的整数。   这样的整数可以编码为1024比特的序列,即128   字节。

我从那里获得了什么,1024位密钥意味着该密钥具有1024个二进制数序列。

我们都知道,1字节= 8位。所以,1024 bits = 128 bytes。好的,它是二进制的。性格怎么样?

根据ASCII二进制代码here,每个字符都有8位二进制数。因此,在我看来,如果密钥有1024位长度,则表示密钥包含1024/8 = 128个字符。所以,我创建了一个java程序来生成 128 数字长度的素数。到目前为止,该计划运作良好。

但是,我再次考虑了RSA 1024位的真正含义。所以,我用Google搜索并找到this。我测试了它,我得到公钥模数的位长是1024.但是,公钥有 309 数字长度。

现在,我真的很困惑。

我的问题:RSA中1024位密钥长度的真正含义是什么?正如我想象的那样here

1 个答案:

答案 0 :(得分:0)

example将密钥保存为Object Stream,它是java序列化对象流,它有一些关于javatypes的元信息和用于编码二进制数据的特殊格式。要查看数字的真实大小,请尝试“pub.getModulus()。bitLength()”。对我来说它打印1024。