本公開的實(shí)施例概括而言涉及keccak處理,具體而言涉及對物理側(cè)信道攻擊有彈性的改進(jìn)keccak執(zhí)行。
背景技術(shù):
1、密碼散列是用于提供數(shù)據(jù)完整性和認(rèn)證的最基本操作之一,并且被用在各種平臺中。安全散列算法3(secure?hash?algorithm?3,sha3)是相對新的國家標(biāo)準(zhǔn)與技術(shù)研究院(national?institute?of?standards?and?technology,nist)標(biāo)準(zhǔn)密碼散列操作,并且成為越來越流行的散列算法,用于計算經(jīng)典簽名方案(例如,橢圓曲線數(shù)字簽名算法(elliptic?curve?digital?signature?algorithm,ecdsa)和rivest-shamir-adleman(rsa)方案)、后量子簽名方案(例如,基于散列的簽名)以及某些sha3導(dǎo)出函數(shù)(例如,keccak消息認(rèn)證碼(keccak?message?authentication?code,kmac)、可定制安全散列算法和keccak(customizable?secure?hash?algorithm?and?keccak,cshake)、tuplehash和parallelhash)的大圖像/數(shù)據(jù)的摘要。sha3是所有后量子數(shù)字簽名(crystals-dilithium、falcon、sphincs+)以及由nist選擇用于即將到來的標(biāo)準(zhǔn)的密鑰封裝機(jī)制(crystals-kyber)的基本構(gòu)建塊。物理側(cè)信道(例如,功耗、電磁輻射、光子發(fā)射)在sha3執(zhí)行期間泄漏敏感輸入或輸出,而不管其sw在專用hw上執(zhí)行或?qū)嵤?。sha3實(shí)現(xiàn)方式的這些側(cè)信道被認(rèn)為是部署新的后量子密碼(post-quantum?cryptography,pqc)算法的基本威脅。
技術(shù)實(shí)現(xiàn)思路
1、本公開的一方面提供了一種裝置,包括:存儲裝置,用于存儲1600位輸入狀態(tài);keccak輪數(shù)據(jù)路徑,所述keccak輪數(shù)據(jù)路徑耦合到所述存儲裝置,所述keccak輪數(shù)據(jù)路徑至少包括:第一路徑,所述第一路徑包括θ步驟、ρ步驟、π步驟、以及ι步驟,以處理所述1600位輸入狀態(tài)的掩蔽版本;第二路徑,所述第二路徑包括θ步驟、ρ步驟、以及π步驟,以處理掩碼1600位輸入狀態(tài);以及經(jīng)掩蔽χ步驟,所述經(jīng)掩蔽χ步驟由所述第一路徑和所述第二路徑共享。
2、本公開的一方面提供了一種系統(tǒng),包括:存儲器,用于存儲1600位輸入狀態(tài);執(zhí)行電路,包括:keccak輪數(shù)據(jù)路徑,所述keccak輪數(shù)據(jù)路徑耦合到所述存儲器,所述keccak輪數(shù)據(jù)路徑至少包括:第一路徑,所述第一路徑包括θ步驟、ρ步驟、π步驟、以及ι步驟,以處理所述1600位輸入狀態(tài)的掩蔽版本;第二路徑,所述第二路徑包括θ步驟、ρ步驟、以及π步驟,以處理掩碼1600位輸入狀態(tài);以及經(jīng)掩蔽χ步驟,所述經(jīng)掩蔽χ步驟由所述第一路徑和所述第二路徑共享;以及其它sha3電路。
3、本公開的一方面提供了一種方法,包括:將1600位輸入狀態(tài)分割成兩個隨機(jī)的1600位狀態(tài);對所述兩個1600位隨機(jī)狀態(tài)獨(dú)立地執(zhí)行線性keccak運(yùn)算;在非線性χ步驟計算中組合對所述兩個隨機(jī)狀態(tài)進(jìn)行所述線性keccak運(yùn)算的輸出以產(chǎn)生更新值;以及對所述非線性χ計算的輸出執(zhí)行ι運(yùn)算。
1.一種裝置,包括:
2.根據(jù)權(quán)利要求1所述的裝置,其中,所述keccak輪數(shù)據(jù)路徑還至少包括:用于掩碼的存儲裝置。
3.根據(jù)權(quán)利要求2所述的裝置,其中,所述掩碼是隨機(jī)的1600位值。
4.根據(jù)權(quán)利要求2所述的裝置,其中,所述keccak輪數(shù)據(jù)路徑還至少包括:異或電路,用于將所述1600位輸入狀態(tài)與掩碼進(jìn)行異或以生成所述1600位輸入狀態(tài)的掩蔽版本。
5.根據(jù)權(quán)利要求1所述的裝置,其中,所述keccak輪數(shù)據(jù)路徑還至少包括:異或電路,用于將所述第一路徑和所述第二路徑的輸出進(jìn)行異或作為輸出狀態(tài)。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的裝置,還包括:
7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的裝置,還包括:
8.根據(jù)權(quán)利要求7所述的裝置,其中,所述keccak置換包括keccak輪。
9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的裝置,其中,包括θ步驟、ρ步驟、以及π步驟以處理所述掩碼1600位輸入狀態(tài)的所述第二路徑以及共享的經(jīng)掩蔽χ步驟僅用于keccak置換輪的真子集。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的裝置,其中,所述keccak輪數(shù)據(jù)路徑被連續(xù)地用于多個keccak輪。
11.一種系統(tǒng),包括:
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述keccak輪數(shù)據(jù)路徑還至少包括:用于掩碼的存儲裝置。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述掩碼是隨機(jī)的1600位值。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述keccak輪數(shù)據(jù)路徑還至少包括:異或電路,用于將所述1600位輸入狀態(tài)與掩碼進(jìn)行異或以生成所述1600位輸入狀態(tài)的掩蔽版本。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述keccak輪數(shù)據(jù)路徑還至少包括:異或電路,用于將所述第一路徑和所述第二路徑的輸出進(jìn)行異或作為輸出狀態(tài)。
16.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括:
17.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括:
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述第一路徑的θ步驟、ρ步驟、和π步驟以及所述第二路徑的θ步驟、ρ步驟、和π步驟不被所述第一路徑和所述第二路徑共享。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述θ步驟、所述ρ步驟、以及所述π步驟由所述第一路徑和所述第二路徑共享。
20.一種方法,包括: