Rsa 算法加密的数据块大小问题

对于RSA算法,把明文分成数据块的时候(设为a1,a2,a3...),将2个大素数P*Q的乘积设置为m, m的字符长度和a的字符长度有关系吗? 为什么有的时候m为35位数字,a也取35位,就会出现错误,有时候不会出现(好像a的值比m的值大时都会出现,错误就是加密前的明文和解密后的明文不一样),当a的数位比m数位小的时候,一般不会出现这种问题,谁能解释一下?对于数据块的长度有啥要求?

PQ的积M叫做模,模规定了这个数字空间中最大的数,是这个空间的边界,这个空间中所有的数都要小于模M,包括被加密的消息块。所以如果消息(a1,a2,a3...)任何一个超过了M,加密后都无法正切解密,因为加密后和解密后得到的数都在这个空间中,不可能得到一个大于M的数。

但是如果用来加密的消息A大于M,解密后得到的结果加上K倍的M一定会等于A,因为加密的过程是做模乘操作,大于M的消息A首先被除M然后取余数了,该余数一定小于M,然后所有的加密操作都是针对该余数来进行的,想要还原A的话用该A模M的余数加上数倍的M就可以了。解密的话还原的也是该余数,得到余数后还原A,也是加上数倍的M就可以了。

实质上RSA的加密有个条件,消息A必须要小于M。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网