RSA加密难度

时间:2017-08-07 11:51:43

标签: encryption rsa public-key-encryption

我正在编写一个python脚本来使用RSA加密/解密字符串。我对算法本身没有任何问题,但我不明白如何正确使用它。

我的意思是,分别加密字符串中的每个符号都没有意义。因为相同的符号会给我们相同的密码(如Caesar密码)。所以我认为我应该将整个消息分成相同长度的块。 但这使得解密消息变得困难。因为在加密块之后,每个块的长度可能会改变。因此,在解密时,您不知道某个创建块的开始位置和结束位置。 例如,当我使用RSA加密“更强”时,我得到:

5716225862

我将原始消息分成4个4个符号的块。但加密后我收到10个符号的消息。这就是问题所在。 希望,你理解我的意思。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

简单地说,RSA不是用于直接加密纯文本,而是用于加密对称密钥(例如AES),而这是通过这种对称密钥来加密(并进一步解密)纯文本。

由于纯文本可能有任何大小,因此使用AES加密流加密(例如AES-256-GCM)或分组密码(例如AES-256-CBC)。

使用AES,相同的符号不会给出相同的密码,因为每次加密纯文本时都必须选择一个新的随机IV(初始化向量)。

因此,您需要使用两步加密方案:使用RSA加密对称密钥,并使用此对称密钥加密纯文本。