我刚刚编写了一个用RSA加密方法加密整数的程序。当我将这个程序扩展为只能传输一个小整数(到目前为止大约4位数)到能够传输完整的消息时,我面临两个主要问题。
问题#1:如何才能显示公钥?我的合作伙伴是否需要使用n和我的公钥来为我加密消息? (下面的公式)
加密:F(m,e)= m ^ e mod n = c,其中m是消息,e是公钥,n是两个随机生成的素数的乘积,c是密码。
解密:F(c,d)= c ^ d mod n = m,其中d是私钥。
问题#2:如何传输大邮件?我使用article作为我的代码的基础触及加密块,但我不知道从哪里开始这样的事情。从其他问题我得知,我应该将文件读入字节流,然后使用BigInteger类加密单个字节,但没有太多细节。这是怎么做到的?
答案 0 :(得分:2)
RSA公钥是一对数字:公共指数和模数。
您不使用RSA加密大型邮件;使用RSA加密其他加密密钥。
您的发件人应为AES选择一个随机密钥,并使用该密钥加密,并以合适的模式运行。然后,他们将使用您的RSA公钥加密AES密钥,并向您发送AES加密的消息和RSA加密的密钥。
分组密码模式不是为与RSA一起使用而设计的。它们专为AES和TDEA等分组密码而设计。