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

对于RSA算法,把明文分成数据块的时候(设为a1,a2,a3...),将2个大素数P*Q的乘积设置为m,m的字符长度和a的字符长度有关系吗?为什么有的时候m为35位数字,... 对于RSA算法,把明文分成数据块的时候(设为a1,a2,a3...),将2个大素数P*Q的乘积设置为m, m的字符长度和a的字符长度有关系吗? 为什么有的时候m为35位数字,a也取35位,就会出现错误,有时候不会出现(好像a的值比m的值大时都会出现,错误就是加密前的明文和解密后的明文不一样),当a的数位比m数位小的时候,一般不会出现这种问题,谁能解释一下?对于数据块的长度有啥要求? 展开
 我来答
songbo3
推荐于2016-10-26 · TA获得超过896个赞
知道小有建树答主
回答量:398
采纳率:100%
帮助的人:163万
展开全部
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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式