专栏中心

EEPW首页 > 专栏 > RSA加密的填充方式

RSA加密的填充方式

发布人:hanini 时间:2021-03-12 来源:工程师 发布文章

   与对称加密算法DESAES一样,RSA算法也是一个块加密算法( block cipher algorithm),其算法原理特点是总保持在一个固定长度的块上进行操作。但跟DESAES等算法不同的是,RSA算法的block lengthkey length相关,每次加密的块长度就是key lengthRSA加密算法目前有多种填充模式。当明文长度大于key length时,要进行切割分组,然后填充。处理后的每组数据长度也是固定不变的(与RSA密钥模长相等)。

 

填充方式

待填充长度

填充后长度

RSA_NO_PADDING

不填充

和公钥等长

RSA_PKCS1_PADDING

至少RSA_size(rsa) - 11

和公钥等长

RSA_PKCS1_OAEP_PADDING

RSA_size(rsa) - 41

和公钥等长

 

RSA加密常用的填充模式有三种:RSA_PKCS1_PADDINGRSA_PKCS1_OAEP_PADDINGRSA_NO_PADDING。假设现有RSA算法密钥长度为1024bit,则三种填充模式的填充效果如下所述。

 

1. RSA_NO_PADDING填充模式

用户选择RSA_NO_PADDING填充模式时,如果明文不够128字节,加密的时候会在明文前面填充若干数据0,直至达到128字节

解密后的明文也会包括前面填充的零,用户需要注意把解密后的字段前向填充的零去掉,才是真正的明文。凌科芯安系列芯片支持RSA算法的芯片目前就是时钟这种填充方式。如果填充规则不符合要求,建议用户使用芯片加密前,先自行填充。

 

2. RSA_PKCS1_PADDING填充模式

当你选择RSA_PKCS1_PADDING填充模式时,如果明文不够128字节加密的时候会在明文中随机填充一些数据,所以会导致对同样的明文每次加密后的结果都不一样。

对加密后的密文,用户使用相同的填充方式都能解密。解密后的明文也就是之前加密的明文。

 

EB = 00 || BT || PS || 00 || D ,其中D为消息

BTThe block type块类型):

BT=00 or 01 (私钥运算时)

BT=02 (公钥运算时)

 

PSThe padding string填充字符串):

BT=00PS00组成;

BT=01PSFF组成;

BT=02PS由伪随机生成,且非零;

PS长度为Len(EB) - 3 - Len(D),最少是8字节。

 

3. RSA_PKCS1_OAEP_PADDING填充模式

RSA_PKCS1_OAEP_PADDING填充模式是PKCS#1推出的新填充方式,安全性最高,和前面RSA_PKCS1_PADDING的区别就是加密前的编码方式不一样


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

AI终端的应用场景与产业发展探讨

智能计算 2025-09-29

嵌入式技术及学习方法 (上)

视频 2010-05-25

第四代示波器创新、卓越与价值 (中)

​利用晶体振荡器理解变容管和基于PLL的调频生成

AVR处理器上嵌入式Web Server

第四代示波器创新、卓越与价值 (下)

台积电称英特尔没有要求投资——否认存在合作、合资谈判

EDA/PCB 2025-09-29

Tenstorrent与CoreLab Technology携手推出开放架构计算平台“Atlantis”,面向机器人及汽车边缘应用

第四代示波器创新、卓越与价值 (上)

黄仁勋称中国在芯片制造方面“落后于”美国

2025年美国新芯片关税将如何影响AMD股票?

因涉嫌向中国泄露DRAM技术被捕的三星、海力士前高管获保释

C++ Primer Third Edition

2025年,世界半导体产业面临结构调整

嵌入式技术及学习方法 (中)

视频 2010-05-25

ARM中文指令集

三大存储器巨头正在投资1c DRAM,瞄准AI和HBM市场

Building Embedded Linux Systems

安森美半导体业绩显示终端市场趋于稳定

更多 培训课堂
更多 焦点
更多 视频

技术专区