文獻標識碼: A
文章編號: 0258-7998(2013)10-0056-03
近幾年來,,針對密碼算法的DPA攻擊得到越來越多的關注。通過對設備的功耗進行分析發(fā)現(xiàn),,密碼設備在執(zhí)行相同指令的情況下,,功耗與參與運算的密鑰有一定的關系。攻擊者利用這種關系對采集到的能量跡進行DPA攻擊,,可以分析出密鑰[1-3],。
為了防御DPA攻擊,一種有效的技術是對參與運算的數(shù)據(jù)進行隨機掩碼,,也稱為信息盲化[4],。加了掩碼的數(shù)據(jù)在進行密碼運算時,包含密鑰信息的中間數(shù)據(jù)被掩碼保護起來,,因此能夠抵抗一階DPA攻擊,。然而這種防御技術仍然可以用高階DPA進行攻擊。相對一階DPA攻擊來說,,高階DPA需要攻擊者了解更多的算法實現(xiàn)細節(jié),,并且需要選擇恰當?shù)墓裟P停怨暨^程也比一階DPA復雜得多,。
1 能量泄露模型和DPA攻擊原理
1.1 能量泄露模型
設備的功耗可以通過在設備的GND管腳和地之間插入一個電阻,,然后用示波器測量電阻兩端的電壓變化來獲得。為了建立能量泄露模型,,用P[t]表示設備在特定t時刻的功耗,。P[t]可以分成兩部分,第一部分是與運算相關的功耗d[t],第二部分是所有與運算無關的功耗n,,包括常量部分以及各種噪聲,。因此P[t]可以表示為[5]:
從表1可以看出,在泄露漢明重量的情況下,,使用絕對差組合函數(shù)能達到更好的效果,。
2 掩碼技術和高階DPA攻擊
2.1 掩碼技術原理
掩碼技術的核心思想是使密碼設備的功耗不依賴于設備所執(zhí)行的密碼算法的中間值。掩碼技術通過隨機化密碼設備所處理的中間值來實現(xiàn)這個目標,。掩碼方案可以用下式來表示:
2.3 變形掩碼方案的高階DPA攻擊
在上述掩碼方案中,,整個加密過程每個中間值都帶著掩碼,因此可以抵抗一階DPA攻擊,。掩碼方案為了保證每輪運算的結構相同,,在輪運算結束時通過非線性的SBOX變換將掩碼重新設置為每輪開始的的掩碼值X132-63。
在同時攻擊12 bit子密鑰時,,密鑰組合為212個,,即需要攻擊4 096個假設密鑰。
3 高階DPA攻擊實驗驗證
基于以上分析,,對FPGA上實現(xiàn)的帶變形掩碼方案的DES算法進行了攻擊實驗,。首先在DES運算過程中采集2 000條能量跡,在該能量跡上可以清晰地識別出每輪DES運算過程,,如圖4所示,。
為了抵抗DPA攻擊,掩碼技術越來越多地被采用,。但掩碼方案可能受到高階DPA的攻擊,,因此在設計掩碼方案時,需要充分考慮抵抗高階DPA攻擊的措施,。本文首先介紹了能量泄露模型以及一階和高階DPA的攻擊原理,。然后結合變形掩碼方案,從理論上證明可以采用二階DPA實施攻擊,,并且論述了組合函數(shù)的選擇以及在攻擊中提高信噪比的方法,。本文最后在FPGA上對掩碼方案的硬件實現(xiàn)進行了攻擊實驗,并成功獲得密鑰,。
參考文獻
[1] KOCHER P,,JAFFE J,JUN B.Introduction to differential power analysis and related attacks[A].Cryptography Research Inc.,,1998.
[2] KOCHER P,,JAE J,JUN B.Differential power analysis[C]. In Proceedings of CRYPTO'99,,Springer-Verlag,,1999.
[3] MESSERGES T S,,DABBISH E A,SLOAN R H,Investigations of power analysis attacks on smartcards[C].In Proceedings of the USENIX Workshop on Smartcard Technology,,Chicago,,1999.
[4] AKKAR M L,GIRAUD C.An implementation of DES and AES secure against some attacks[C].In Proceedings of CHES'2001,,Springer-Verlag,,2001.
[5] BRIER E,CLAVIER C,,OLIVIER F.Correlation power analysis with a leakage model[C].In Cryptographic Hardware and Embedded Systems-CHES 2004,,Springer-Verlag,2004.
[6] MESSERGES T S.Using second-order power analysis to attack DPA resistant software[C].In Proceedings of CHES’ 2000,,Springer-Verlag,,2000.