我正在学习 RSA 密码学,所以我必须了解 ke 长度。 Here ,我找到了有关 key 长度含义的解释。
那里说:
When we say a "1024-bit RSA key", we mean that the modulus has length 1024 bits, i.e. is an integer greater than 2^1023 but lower than 2^1024. Such an integer could be encoded as a sequence of 1024 bits, i.e. 128 bytes.
我从那里得到的,1024 位 key 意味着 key 有 1024 个二进制数字序列。
我们都知道,1 字节 = 8 位。因此,1024 位 = 128 字节
。好吧,它是二进制的。性格方面怎么样?
根据ASCII二进制码here ,每个字符有8位二进制数。所以,在我看来,如果 key 有 1024 位长度,则意味着 key 包含 1024/8 = 128 个字符。因此,我创建了一个 java 程序来生成具有 128 数字长度的素数。到目前为止,该程序运行良好。
但是,我再次重新思考了 RSA 1024 位的真正含义。所以,我用谷歌搜索并发现this 。我测试了一下,发现公钥模数的位长是1024。但是,公钥的长度是309个数字。
现在我真的很困惑。
我的问题:RSA 中 1024 位 key 长度的真正含义是什么?正如我所想或我发现的here ?
最佳答案
example将 key 保存为Object Stream,它是java序列化对象流,它有一些关于javatypes的元信息和编码二进制数据的特殊格式。要查看数字的真实大小,请尝试“pub.getModulus().bitLength()”。对我来说,它打印 1024。
关于java - RSA 中 1024 位 key 长度的实数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511758/