簡述PRESENT加密算法

在之前的文章中,我們了解了輕量級(jí)分組密碼算法,并且在文章中我們講到PRESENT算法和其他算法相比,擁有更高的硬件執(zhí)行效率,使其成為輕量級(jí)分組算法中的佼佼者。今天我們就通過本文來了解一下PRESENT加密算法。

PRESENT算法簡介

PRESENT算法是在CHES2007國際會(huì)議上由Bogdanov等人提出的,主要為物聯(lián)網(wǎng)中資源受限的智能卡或加密節(jié)點(diǎn)開發(fā)設(shè)計(jì)。雖然是輕量級(jí)密碼算法,但完全的31輪PRESENT密碼算法是可以抵抗現(xiàn)有的數(shù)學(xué)攻擊的。

PRESENT算法的設(shè)計(jì)思路借鑒了DES加密算法,但具體實(shí)現(xiàn)還是有很大差別,PRESENT的S盒是4位進(jìn)4位出,位移和模2加運(yùn)算。同時(shí),PRESENT的輪函數(shù)采用SP結(jié)構(gòu)(替代—輪換),而DES則采用的是FEISTEL結(jié)構(gòu);相比 DES、AES 等加密算法,PRESENT算法更適合資源受限的物聯(lián)網(wǎng)安全應(yīng)用。

PRESENT加密算法

PRESENT算法的加密原理

PRESENT分組長度為64 bit,即每次運(yùn)算操作輸入64 bit,又由于是4進(jìn)4出的方式,故推算共有16個(gè)S盒,其加密輪函數(shù)F主要操作有輪密鑰加、S盒置換、P置換三個(gè)部分。31輪中每一輪包括線性置換Р和非線性置換S,非線性置換S常稱之為的S盒置換。

PRESENT算法的密鑰長度可以為80 bit 或128 bit;64 bit明文經(jīng)過31輪的迭代和最末輪白化運(yùn)算后得到需要的64 bit密鑰。

PRESENT加密算法

PRESENT算法的加密過程

  1. 輪密鑰加:64bit 輪輸入同輪密鑰進(jìn)行異或。
  2. ?S 盒代換層:將輪密鑰加64bit 輸出查找16 個(gè)4 進(jìn)4 出的S 盒。
  3. ?P 置換層:通過置換表P(i)對(duì)S 盒代換64bit 輸出按比特進(jìn)行重新排列。

為提高算法安全性,PRESENT 在第31 輪后使用64bit 密鑰K32 進(jìn)行后期白化操作。

PRESENT加密算法

PRESENT算法的優(yōu)缺點(diǎn)

與AES、DES等算法相比,輕量級(jí)PRESENT加密算法將經(jīng)過多次S置換和P置換、輪密鑰加操作的密鑰作為加密系統(tǒng)的主控密鑰,擴(kuò)展了密鑰寬度,增加了安全性能。

但是,PRESENT加密算法的編程非常簡單,功耗攻擊點(diǎn)也比較容易選擇,這就導(dǎo)致PRESENT差分功耗攻擊在安全性方面仍然存在著一定的不足之處。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。