部分密文的RSA加密和解密?

时间:2013-11-26 17:50:42

标签: math encryption cryptography rsa

我已经在我的PC上成功构建并编译了一个应用程序,它将生成一个RSA密钥对(我使用GPK进行长算术)。然后,我在字符串“Hello World”(ASCII - > Hex transform first)上测试加密/解密。

我的问题是,在数学上可能只从我的密码文本字符串“Hello World”解密“Hello”,或者我必须首先加密“Hello”,然后加密“World”,然后解密他们分开?

编辑:我想要的用例:

我有一个芯片(Xilinx的Zynq SoC),它只有256K的片上内存和512K的L2缓存。

我可以使用一些基本指令/数据预填充并锁定缓存,然后将256K用于我的堆栈,堆和.data / .bss代码段(变量)。

我需要更多空间,所以我想我可以使用256K作为“交换”空间,并从外部加密闪存中获取.text(指令代码)的其余部分,但我需要解密它-chip以保持安全。

我想知道我是否可以加密整个图像,然后“获取,解密,解码,执行”。看起来我可能仅限于以256K块加密我的图像,并以这种大小的块解密它。

1 个答案:

答案 0 :(得分:2)

RSA是一项数学运算。您无法仅恢复部分纯文本;进行数学运算( c d mod n )将产生整个纯文本。如您所知,如果您想分别解密两个部分,则必须执行两个单独的RSA加密操作。

这听起来有点像X-Y问题。你真的想要完成什么?


更新: RSA最适合用作密钥加密算法:您不是直接加密数据,而是使用RSA加密对称算法的密钥,然后使用该对称算法加密应用程序数据。这是RSA在TLS,S / MIME,PGP和任何其他广泛接受的协议等协议中使用的方式。

因此,使用AES等算法(使用合适的模式,最好是提供完整性保护的模式)和RSA,以获得安全高效的系统。