分组对称算法中常用的PKCS7数据填充介绍
在数据加解密应用中,数据填充是其中重要的组成部分。数据填充通常有两个作用一是按要求将数据补足到分组块长度来满足加密算法的应用需求;二是通过增加填充数据来进一步提高密文的安全性。本文主要介绍分组对称算法中常用的PKCS7。
PKCS7是对称安全算法常用的数据填充规则。PKCS7 Padding的填充方式为当数据长度不足数据块长度时,缺几位补几个,eg.对于AES128算法其数据块为16Byte(数据长度需要为16Byte的倍数),如果数据为“00112233445566778899AA”一共11个Byte,缺了5位,采用PKCS7 Padding方式填充之后的数据为“00112233445566778899AA0505050505”。
特别注意的一点是如果是数据刚好满足数据块长度也要在元数据后在按PKCS7规则填充一个数据块数据,这样做的目的是为了区分有效数据和补齐数据。
以AES128为例:
如果数据为“00112233445566778899AABBCCDDEEFF”一共16个符合数据块规则采用PKCS7Padding方式填充之后的数据为
“00112233445566778899AABBCCDDEEFF10101010101010101010101010101010”。
PKCS7补齐代码如下:
void PKCS7_Padding(u8*InOutBuf,u32 *Inoutlen ,u8 Blocksize)
{
u8 paddata=0x00;
u32 padoffset=0x00;
u32 i;
u32 lp;
lp=*Inoutlen;
paddata=Blocksize-(lp%Blocksize);
padoffset=(lp/Blocksize)*Blocksize+(lp%Blocksize);
for(i=0 ;i<paddata;i++)
InOutBuf[padoffset+i]=paddata;
*Inoutlen +=paddata ;
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自凌科芯安加密芯片公众号,原文标题为:数据填充之PKCS7填充,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【技术】PEM格式RSA密钥解析(一)——Base64转16进制格式
本文介绍如何将BASE64编码转换16进制。
【技术】PEM格式RSA密钥解析(二)——RSA密钥参数
上一部分讲解了将Base64编码的密钥数据转换成hex格式数据,本章将介绍如何获从转码后的数据中获取RSA密钥的相关参数。
【技术】ECDSA签名算法及其原理,签名及验证过程详解
关于ECDSA签名算法您有哪些了解?本文凌科芯安将针对ECDSA签名算法及其原理,签名及验证过程进行介绍。
凌科芯安LKT/LCS系列版权保护芯片方案简介
本文介绍了凌科芯安LKT/LCS系列版权保护芯片的几种方案,包括对比认证方案、参数保护方案、算法移植方案和混合加密方案。
【经验】凌科芯安LKT/LCS系列IIC接口加密芯片调试常见问题及解决方法
凌科芯安定位在嵌入式数据安全领域,产品涵盖了嵌入式数据加解密及版权保护芯片、智能卡、软件加密锁、加密存储产品、读写机具以及密钥安全系统的定制开发服务。本文基于LKT/LCS系列加密芯片,介绍芯片调试中经常遇到的问题及解决方法。
【经验】凌科芯安带你了解常用国密算法:SM1(SCB2)、SM2、SM3、SM4、SM7
国密算法是国家商用密码管理办公室制定的一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等等。在终端设备上通常需要使用内嵌国密算法的安全芯片配合使用,倚靠安全芯片的安全性来实现密钥的存储和安全防护。
FLASH数据丢失原因分析及解决方案
本文中凌科芯安来为大家介绍FLASH数据丢失原因分析及解决方案,希望对各位工程师朋友有所帮助。
凌科芯安的LCS4110A可以用在医疗耗材上吗?
只要是数据加密或者尤其是程序防盗版都可以用,车用电子、智能眼镜、车载诊断设备、游戏手柄、医疗耗材、移动互联、智能网关、打印耗材、工业控制、智能门锁、智能楼宇、工业喷码、人脸识别、工业相机、智能家居。
探讨加密芯片在AI领域的应用与推广
随着人工智能(AI)技术的快速发展,数据安全与隐私保护成为了各行各业关注的焦点。加密芯片作为硬件层面的安全保障,正在AI领域中发挥着越来越重要的作用。本文凌科芯安将探讨加密芯片在AI领域的应用,并分析其对AI安全性、效率及未来发展的影响。
【产品】8位IIC接口防盗版加密芯片LKT4106 ,支持DES、SHA1等国际标准加密算法
凌科芯安推出的8位IIC接口防盗版加密芯片LKT4106,以8位安全芯片平台为基础,内部嵌入凌科芯安公司的LKCOS智能操作系统,通讯速度最高可达400Kbps。支持DES、SHA1等国际标准加密算法,用户可将自定义关键算法下载到芯片中运行,从而实现产品防盗版、身份认证、数据加解密等功能。
【产品】支持SM1/2/3/4/7算法的加密芯片LKT4305-GM,具有32位CPU内核及操作系统
LKT4305-GM是凌科芯安科技(北京)有限公司行业内开发的以32位安全处理器为基础的具有高性能高安全性的国密算法加密产品。加密芯片满足商密安全检测标准 GM/T 0008-2012《安全芯片密码检测标准》安全等级第二级。
RSA科普-大质数生成算法与公钥指数的选取
本文介绍大质数生成算法,公钥指数的选取和RSA公私钥生成流程。
LKT4305GM 32 位高端 SPI/I2C 接口国密芯片数据手册
描述- 该资料为凌科芯安科技(北京)有限公司生产的LKT4305GM 32位高端SPI/I2C接口国密芯片的数据手册。文档介绍了芯片的特点、引脚说明、工作条件和应用电路,包括I2C和SPI两种接口的使用方法。
型号- LKT4305GM
【IC】LKT4202UGM安全芯片符合EAL4+安全等级设计要求、功耗低,智能门锁设备首选安全解决方案
凌科芯安LKT4202UGM是以32位安全CPU内核为基础的高性价比安全芯片,符合EAL4+安全等级设计要求,支持低功耗,自带DES/TDES硬件协处理器,同时支持SM2协处理器、SM3协处理器、SM4协处理器。
电子商城
登录 | 立即注册
提交评论