java get the plaintext in RSA from decryption
我用Java将RSA加密集成在一个应用程序中。但我这里有两个问题。
我按照RSA算法执行了所有步骤。
例如:
我生成质数p和q,然后计算它们得到加密和解密密钥。
P=71,Q=73,N=5183
加密密钥:(e,n)=(53,5183)
解密密钥:(d,n)=(1997,5183)
我用的是纯文本:
然后,我根据ASCII将所有字母转换成数字。
所以,转换的数字是:
在那之后,我把所有的数字分为n位数的块。假设是3位数的块。
所以,除数必须是:
对于加密,我得到了密文号:
在那之后,我解密了密文。我有明文号码:
乍一看,它看起来工作得很好。但事实上,事实并非如此。
找第六个街区。应该是041,但看起来是41。这是第一个问题。如何解决这个问题?
从解密中获得明文号码后,我必须合并所有明文号码,然后将它们转换为字母。
这是第二个问题:我混淆了如何将明文数字转换为明文字母。
我混淆了,因为我没有分隔符来分隔数字。
因此,明文必须成功转换为:save the queen
我能做些什么来解决这些问题?
RSA致力于数字。这与处理位和字节的AES不同。因此,在计算过程中,
现在还有另一个问题,您没有分隔符。这可以通过使用字符的八进制编码来解决。检查这个ASCII表并查看八进制。在这种情况下,另一个好处是,每个解密值都有一个字符。
很明显,您也可以用零填充每个十进制表示,直到在"save the queen"中每个字符有3个十进制字符。