標(biāo)題: 數(shù)據(jù)填充規(guī)則之PKCS7 [打印本頁(yè)]

作者: 小小尼    時(shí)間: 2021-6-21 11:40
標(biāo)題: 數(shù)據(jù)填充規(guī)則之PKCS7
安全芯片本身支持各種標(biāo)準(zhǔn)的加密算法,用戶可以使用相應(yīng)的算法完成數(shù)據(jù)的加解密、簽名驗(yàn)簽等功能來(lái)完善自己產(chǎn)品的安全性。在數(shù)據(jù)加解密應(yīng)用中,數(shù)據(jù)填充又是其中重要的組成部分。數(shù)據(jù)填充通常有兩個(gè)作用一是按要求將數(shù)據(jù)補(bǔ)足到要就的塊長(zhǎng)度來(lái)滿足加密算法的應(yīng)用需求;二是通過(guò)增加填充數(shù)據(jù)來(lái)進(jìn)一步提高密文的安全性。本次主要介紹分組對(duì)稱算法中常用的PKCS7。
PKCS7是當(dāng)下各大加密算法都遵循的填充算法,且 OpenSSL 加密算法默認(rèn)填充算法就是 PKCS7。PKCS7Padding的填充方式為當(dāng)數(shù)據(jù)長(zhǎng)度不足數(shù)據(jù)塊長(zhǎng)度時(shí),缺幾位補(bǔ)幾個(gè)幾,eg.對(duì)于AES128算法其數(shù)據(jù)塊為16Byte(數(shù)據(jù)長(zhǎng)度需要為16Byte的倍數(shù)),如果數(shù)據(jù)為”00112233445566778899AA”一共11個(gè)Byte,缺了5位,采用PKCS7Padding方式填充之后的數(shù)據(jù)為“00112233445566778899AA0505050505”。
特別注意的一點(diǎn)是如果是數(shù)據(jù)剛好滿足數(shù)據(jù)塊長(zhǎng)度也要在元數(shù)據(jù)后在按PKCS7規(guī)則填充一個(gè)數(shù)據(jù)塊數(shù)據(jù),這樣做的目的是為了區(qū)分有效數(shù)據(jù)和補(bǔ)齊數(shù)據(jù)。仍以AES128為例:如果數(shù)據(jù)為”00112233445566778899AABBCCDDEEFF”一共16個(gè)符合數(shù)據(jù)塊規(guī)則采用PKCS7Padding方式填充之后的數(shù)據(jù)為
“00112233445566778899AABBCCDDEEFF10101010101010101010101010101010”

作者: zyqq58    時(shí)間: 2021-6-22 10:53
最近正好有加密芯片的需求,大家有啥推薦的產(chǎn)品嗎?
作者: zyqq58    時(shí)間: 2021-6-22 10:54
最近正好有加密芯片的需求,大家有啥推薦的產(chǎn)品嗎?
作者: 小屁孩123    時(shí)間: 2021-6-22 13:17
有一家叫凌科芯安的公司,他家的芯片口碑不錯(cuò),有適合各種接口的不同型號(hào)供不同客戶的選擇。

作者: sunxiang0506    時(shí)間: 2021-6-22 13:26
數(shù)據(jù)填充是必須的嗎?我之前用過(guò)一款加密芯片,記得當(dāng)時(shí)沒(méi)填充啊。
作者: Testwf    時(shí)間: 2021-6-22 20:12
應(yīng)該不是必須的吧,不過(guò)通過(guò)增加填充數(shù)據(jù)可以進(jìn)一步提高密文的安全性,所以還是有數(shù)據(jù)填充更好一些吧
作者: 鄧女士    時(shí)間: 2021-6-23 09:49
填充的字節(jié)是隨機(jī)的還是有固定排列的,PKCS7算法的安全性又如何呢?是否可以徹底有效的防止被破解




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1