RSA——长度问题

1、密钥长度

RSA密钥对包含公钥(模数、公钥指数),私钥(模数、私钥指数)

RSA密钥长度指的是模数的位数,如2048位RSA密钥指的是模数为2048比特的RSA密钥对,常规选值为:1024、2048、4096等。

2、明文长度

一次RSA加密对明文长度是有限制,实际上,RSA算法本身要求加密内容也就是明文长度m必须0<m<n(模数)

如果要加密一个长度大于模数的明文块,就需要对明文进行分块以满足要求。

对长度小于模数的明文进行加密,则需要进行填充,一般使用的padding标准有NoPadding、OAEPPadding、PKCS1Padding等

3、密文长度

密文长度就是对给定符合条件的明文加密出来的结果位长,这个是可以确定的,加密后的密文长度跟密钥长度是相同的,也就是模数的长度

 

加密:

RSA算法也是一个块加密算法( block cipher algorithm),总是在一个固定长度的块上进行操作。一次RSA加密能处理的明文长度是受RSA填充模式限制的,但是RSA每次加密的块长度就是key length。

 

由于有填充,对同样的数据,用同样的密钥进行RSA加密, 每次的输出都会不一样, 但是这些加密的结果都能正确的解密。

 

posted @ 2021-05-21 18:08  hunterDing  阅读(15353)  评论(0编辑  收藏  举报