【发布时间】:2015-02-03 00:25:51
【问题描述】:
在 PyCrypto 中,我想使用树莓派上的硬件随机数生成器创建一个 RSA 密钥。我已经可以访问 Pis hrng 中的数据,但我不知道如何使用/将该数据提供给创建 RSA 密钥RSA.generate() 的 PyCrypto 函数。
生成函数上来自 PyCrypto 的documentation 似乎表明我需要传递一个返回随机数而不是随机数本身的函数。有谁知道我如何使用我捕获的硬件随机数在 python 中创建一个 RSA 密钥,更具体地说是使用 PyCrypto。下面是我玩过的一些示例代码。
这会生成一个 RSA 密钥,但不使用真正的随机数:
#/usr/bin/python
from Crypto.PublicKey import RSA
from Crypto import Random
random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
print 'Random_generate', random_generator
print 'key: ', key
这正是我想要的,但generate() 中的randomStream 变量对生成函数的使用不正确。
#/usr/bin/python
from Crypto.PublicKey import RSA
from Crypto import Random
hwrngFile = open('/dev/hwrng', 'r')
randomStream = hwrngFile.read(512)
hwrngFile.close()
key = RSA.generate(4096, randomStream)
print key
【问题讨论】:
标签: python encryption cryptography raspberry-pi encryption-asymmetric