分組密碼算法-FPE格式保留加密簡(jiǎn)介

PassionWalker微信公眾號(hào)
康樂(lè)
格式保留加密常用于數(shù)據(jù)脫密領(lǐng)域,可以對(duì)敏感數(shù)據(jù)(如手機(jī)號(hào)碼,銀行卡號(hào)等)進(jìn)行加密存儲(chǔ),可以有效降低黑客入侵導(dǎo)致敏感信息泄露。另外,由于FPE可以保持加密后數(shù)據(jù)的格式不變,在一定程度上可以替代傳統(tǒng)基于掩碼的數(shù)據(jù)遮蔽方案。

2345截圖20211028093243.png

前面介紹了分組密碼算法的ECB,CBC,CFB,OFB,CTR,BC,OFBNLF,XTS-AES,GCM,CMAC和KW模式。本節(jié)介紹最后一種工作模式FPE。

1 FPE工作模式介紹

FPE定義

FPE,F(xiàn)ormat-Preserving Encryption,格式保留加密,也稱為保形加密。是一種特殊的對(duì)稱加密算法。FPE可以保證加密后的密文格式與加密前的明文格式完全相同。

2345截圖20211028093243.png

如上圖使用FPE和AES加密后的消息對(duì)比,F(xiàn)PE加密前后格式完全相同,而直接使用AES的其他模式達(dá)不到此種效果。

FPE應(yīng)用

格式保留加密常用于數(shù)據(jù)脫密領(lǐng)域,可以對(duì)敏感數(shù)據(jù)(如手機(jī)號(hào)碼,銀行卡號(hào)等)進(jìn)行加密存儲(chǔ),可以有效降低黑客入侵導(dǎo)致敏感信息泄露。另外,由于FPE可以保持加密后數(shù)據(jù)的格式不變,在一定程度上可以替代傳統(tǒng)基于掩碼的數(shù)據(jù)遮蔽方案。

備注:數(shù)據(jù)脫敏,是指對(duì)數(shù)據(jù)中包含的秘密或隱私信息(如個(gè)人身份信息,商業(yè)機(jī)密數(shù)據(jù)等)進(jìn)行數(shù)據(jù)變形處理,使得惡意攻擊者無(wú)法從經(jīng)過(guò)脫敏的數(shù)據(jù)中直接獲取敏感信息,從而實(shí)現(xiàn)對(duì)隱私和機(jī)密的保護(hù)。

FPE特征

數(shù)據(jù)不能被擴(kuò)充。如當(dāng)加密N為數(shù)字時(shí),必須輸出另外一個(gè)N位數(shù)字;

數(shù)據(jù)類型不能被改變。如一段只包含數(shù)據(jù)的內(nèi)容加密后也只能是數(shù)據(jù);

數(shù)據(jù)必須能被確定加密。如對(duì)數(shù)據(jù)庫(kù)中作為索引值字段的數(shù)據(jù)加密,加密后保留其所在列索引值的特性。

對(duì)于短明文數(shù)據(jù),安全性不會(huì)降低。

加密過(guò)程可逆,加密后的數(shù)據(jù)可以通過(guò)密鑰解密還原原始數(shù)據(jù)。

FPE種類

NIST SP800-38G中定義了的FPE模式包括FF1,FF3,FF2 3種模式。

FF2模式仍在審批中。

FF3算法存在安全漏洞已于2019年2月更新為FF3-1,見(jiàn)SP800-38G Rev1。

FF1和FF3-1算法均以128bit AES為底層算法,在AES算法的基礎(chǔ)上實(shí)現(xiàn)線性變換,F(xiàn)F1經(jīng)過(guò)10輪迭代,F(xiàn)F3經(jīng)過(guò)8輪迭代。因此FF3的性能高于FF1,但FF1的安全性更高。

2 FF1算法簡(jiǎn)介

備注:首字母F表示兩種模式都是基于Feistel網(wǎng)絡(luò)的FPE方法。

FF1和FF3算法定義的部分函數(shù)如下表,

2345截圖20211028093243.png

通過(guò)字符到數(shù)字和數(shù)字到字符的映射函數(shù)的使用,一個(gè)明文可以被轉(zhuǎn)換成一個(gè)無(wú)符號(hào)數(shù)存儲(chǔ)。

3加解密原理

-FF1加密

如下是FF1算法的加密函數(shù),加密函數(shù)的輸入是一個(gè)長(zhǎng)度為n的字符串X和一個(gè)長(zhǎng)度為t的tweak,經(jīng)過(guò)10輪迭代輸出是一個(gè)長(zhǎng)度為n的字符串。

2345截圖20211028093243.png

要理解FF1加密和解密計(jì)算,關(guān)鍵是要理解表格中描述的相關(guān)函數(shù),部分沒(méi)有列舉參考SP800-38G。

4附錄

Algorithm3

2345截圖20211028093243.png

舉例和文字描述如下:

2345截圖20211028093243.png

Algorithm6

2345截圖20211028093243.png

此函數(shù)的作用是用長(zhǎng)度是128位和加密密鑰K的數(shù)倍的輸入來(lái)產(chǎn)生128位輸出。

5參考資料

[1]https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38Gr1-draft.pdf

[2]https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/FF1samples.pdf

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論