• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

数据填充规则之PKCS7

安全芯片本身支持各种标准的加密算法,用户可以使用相应的算法完成数据的加解密、签名验签等功能来完善自己产品的安全性。在数据加解密应用中,数据填充又是其中重要的组成部分。数据填充通常有两个作用一是按要求将数据补足到要就的块长度来满足加密算法的应用需求;二是通过增加填充数据来进一步提高密文的安全性。本次主要介绍分组对称算法中常用的PKCS7。

PKCS7是当下各大加密算法都遵循的填充算法,且 OpenSSL 加密算法默认填充算法就是 PKCS7。PKCS7Padding的填充方式为当数据长度不足数据块长度时,缺几位补几个几,eg.对于AES128算法其数据块为16Byte(数据长度需要为16Byte的倍数),如果数据为”00112233445566778899AA”一共11个Byte,缺了5位,采用PKCS7Padding方式填充之后的数据为“00112233445566778899AA0505050505”。

特别注意的一点是如果是数据刚好满足数据块长度也要在元数据后在按PKCS7规则填充一个数据块数据,这样做的目的是为了区分有效数据和补齐数据。仍以AES128为例:如果数据为”00112233445566778899AABBCCDDEEFF”一共16个符合数据块规则采用PKCS7Padding方式填充之后的数据为

“00112233445566778899AABBCCDDEEFF10101010101010101010101010101010”。

全部回复(18)
正序查看
倒序查看
2021-06-22 14:00

最近正好有加密芯片的需求,大家有啥推荐的产品吗?

0
回复
2021-06-22 14:56

有一家叫凌科芯安的公司,他家的芯片口碑不错,有适合各种接口的不同型号供不同客户的选择

0
回复
2021-06-22 15:35

数据填充是必须的吗?我之前用过一款加密芯片,记得当时没填充啊。

0
回复
2021-06-22 16:06

填充的字节是随机的还是有固定排列的,PKCS7算法的安全性又如何呢?是否可以彻底有效的防止被破解

0
回复
2021-06-23 09:03
@dy-98AYH6wr
填充的字节是随机的还是有固定排列的,PKCS7算法的安全性又如何呢?是否可以彻底有效的防止被破解

如AES,DES一类的分组对称加密算法要求明文数据的字节长度必须是其块大小的倍数,因此在加密明文数据之前我们必须对明文数据进行填充。

0
回复
Nic_浩
LV.4
7
2021-06-23 11:47

PKCS7Padding填充时,最后一个字节肯定为填充数据的长度,所以在解密后可以准确删除填充的数据,这样是否存在一定的安全隐患呢?

0
回复
liaqi333
LV.4
8
2021-06-23 13:21
@Nic_浩
PKCS7Padding填充时,最后一个字节肯定为填充数据的长度,所以在解密后可以准确删除填充的数据,这样是否存在一定的安全隐患呢?

数据传输过程需要保护,解密后的操作与安全性无关。填充标准是一种定义,无论怎么填充,或者不填充,都不会降低安全性

0
回复
2021-06-23 17:02

还有其他填充模式么?期待楼主下一篇讲解

0
回复
DY20171215
LV.4
10
2021-06-24 10:23
@我心痛了
还有其他填充模式么?期待楼主下一篇讲解

还有pkcs#5填充模式,两者的填充方法基本相同,都是按照分块之后填充,区别在于pkcs#5定长为8位,pkcs#7为非定长。

0
回复
2021-06-24 10:37

之前听说过PKCS5填充,跟PKCS7填充比起来哪个更安全一点?

0
回复
liaqi333
LV.4
12
2021-06-24 15:30
@旋转木偶
之前听说过PKCS5填充,跟PKCS7填充比起来哪个更安全一点?

PKCS7是一种数据填充而不是加密算法对安全性没影响只是为了满足对称算法的数据需求

0
回复
dy-98AYH6wr
LV.4
13
2021-06-24 16:57

文中说PKCS7是当下各大加密算法都遵循的填充算法,那大多数人都知道的可能会影响安全性吧

0
回复
DY20171215
LV.4
14
2021-06-25 13:14
@dy-98AYH6wr
文中说PKCS7是当下各大加密算法都遵循的填充算法,那大多数人都知道的可能会影响安全性吧

某些加密算法要求明文需要按一定长度对齐,叫做块大小(BlockSize),比如16字节,所以需要填充,对安全性没有影响

0
回复
pinbo200808
LV.4
15
2021-06-25 13:27

可见数据填充在数据加解密应用过程中,起到了很关键性的作用缺一不可。

0
回复
Nic_浩
LV.4
16
2021-06-25 13:31

哪家芯片安全性高啊,我们有加密需求不知道选哪家好呢

0
回复
dy-XNr9wSrQ
LV.2
17
2021-06-25 13:37

LKT芯片这几年口碑挺好,有几个朋友都推荐过,大家都可以看看,毕竟产品安全是最重要的

0
回复
2021-06-25 14:08

真的吗?我看身边好多人都推荐他家,我去咨询下刚好我们公司正在做一款产品需要加密

0
回复
dy-XNr9wSrQ
LV.2
19
2021-06-25 15:52

文章很值得学习,感谢楼主分享,收藏了

0
回复