安全芯片本身支持各種標(biāo)準(zhǔn)的加密算法,用戶可以使用相應(yīng)的算法完成數(shù)據(jù)的加解密、簽名驗(yàn)簽等功能來完善自己產(chǎn)品的安全性。在數(shù)據(jù)加解密應(yīng)用中,數(shù)據(jù)填充又是其中重要的組成部分。數(shù)據(jù)填充通常有兩個作用一是按要求將數(shù)據(jù)補(bǔ)足到要就的塊長度來滿足加密算法的應(yīng)用需求;二是通過增加填充數(shù)據(jù)來進(jìn)一步提高密文的安全性。本次主要介紹分組對稱算法中常用的PKCS7。 PKCS7是當(dāng)下各大加密算法都遵循的填充算法,且 OpenSSL 加密算法默認(rèn)填充算法就是 PKCS7。PKCS7Padding的填充方式為當(dāng)數(shù)據(jù)長度不足數(shù)據(jù)塊長度時,缺幾位補(bǔ)幾個幾,eg.對于AES128算法其數(shù)據(jù)塊為16Byte(數(shù)據(jù)長度需要為16Byte的倍數(shù)),如果數(shù)據(jù)為”00112233445566778899AA”一共11個Byte,缺了5位,采用PKCS7Padding方式填充之后的數(shù)據(jù)為“00112233445566778899AA0505050505”。 特別注意的一點(diǎn)是如果是數(shù)據(jù)剛好滿足數(shù)據(jù)塊長度也要在元數(shù)據(jù)后在按PKCS7規(guī)則填充一個數(shù)據(jù)塊數(shù)據(jù),這樣做的目的是為了區(qū)分有效數(shù)據(jù)和補(bǔ)齊數(shù)據(jù)。仍以AES128為例:如果數(shù)據(jù)為”00112233445566778899AABBCCDDEEFF”一共16個符合數(shù)據(jù)塊規(guī)則采用PKCS7Padding方式填充之后的數(shù)據(jù)為 “00112233445566778899AABBCCDDEEFF10101010101010101010101010101010” |
最近正好有加密芯片的需求,大家有啥推薦的產(chǎn)品嗎? |
有一家叫凌科芯安的公司,他家的芯片口碑不錯,有適合各種接口的不同型號供不同客戶的選擇。 |
數(shù)據(jù)填充是必須的嗎?我之前用過一款加密芯片,記得當(dāng)時沒填充啊。 |
應(yīng)該不是必須的吧,不過通過增加填充數(shù)據(jù)可以進(jìn)一步提高密文的安全性,所以還是有數(shù)據(jù)填充更好一些吧 |
填充的字節(jié)是隨機(jī)的還是有固定排列的,PKCS7算法的安全性又如何呢?是否可以徹底有效的防止被破解 |
如 AES,DES 一類的分組對稱加密算法要求明文數(shù)據(jù)的字節(jié)長度必須是其塊大小的倍數(shù),因此在加密明文數(shù)據(jù)之前我們必須對明文數(shù)據(jù)進(jìn)行填充。 |
PKCS7Padding填充時,最后一個字節(jié)肯定為填充數(shù)據(jù)的長度,所以在解密后可以準(zhǔn)確刪除填充的數(shù)據(jù),這樣是否存在一定的安全隱患呢? |
數(shù)據(jù)傳輸過程需要保護(hù),解密后的操作與安全性無關(guān)。填充標(biāo)準(zhǔn)是一種定義,無論怎么填充,或者不填充,都不會降低安全性。 |
還有其他填充方式嗎,期待樓主的下一篇講解 |
之前聽說過PKCS5填充,跟PKCS7填充比起來哪個更安全一點(diǎn)? |
PKCS7是一種數(shù)據(jù)填充而不是加密算法對安全性沒影響只是為了滿足對稱算法的數(shù)據(jù)需求。 |
文中說PKCS7是當(dāng)下各大加密算法都遵循的填充算法,那大多數(shù)人都知道的可能會影響安全性吧 |
某些加密算法要求明文需要按一定長度對齊,叫做塊大小(BlockSize),比如16字節(jié),所以需要填充,對安全性沒有影響 |
還有pkcs#5填充模式,兩者的填充方法基本相同,都是按照分塊之后填充,區(qū)別在于pkcs#5定長為8位,pkcs#7為非定長。 |
可見數(shù)據(jù)填充在數(shù)據(jù)加解密應(yīng)用過程中,起到了很關(guān)鍵性的作用缺一不可。 |
哪家芯片安全性高啊,我們有加密需求不知道選哪家好呢 |
LKT芯片這幾年口碑挺好,有幾個朋友都推薦過,大家都可以看看,畢竟產(chǎn)品安全是最重要的 |
真的嗎?我看身邊好多人都推薦他家,我去咨詢下剛好我們公司正在做一款產(chǎn)品需要加密, |
對的,LKT的芯片在業(yè)界還是挺出名的,建議去他家官網(wǎng)查看一下。 |