李聰
(北方民族大學 計算機科學與工程學院,寧夏 銀川 750021)
在當今信息化革命發展進程中,信息占據了越來越重要的地位,但是在信息傳遞過程中不可避免地帶來信息泄露的困擾,因此信息安全日益受到人們的廣泛關注。信息安全主要研究的是如何解決網絡環境中的安全威脅以及安全防護問題。密碼學作為信息安全領域的研究核心,其主要分為密碼分析學以及密碼編碼學兩個方向。密碼編碼學主要側重于研究如何優化密碼算法,其核心是在數學公式的基礎上完成密鑰的產生以及信息的轉換。密碼分析學則與之相反,其主要研究如何破解密碼算法或者密鑰,從而達到信息竊取的目的。傳統的密碼分析學主要集中在對密碼算法進行破解上,并對輸入輸出等數據輔之以監聽等手段,在流程內實現攻擊。而側信道攻擊,其核心思想是通過加密軟件或硬件運行時產生的各種泄露獲取密文信息,通過分析秘密信息與側信息之間的依賴關系進行側信道攻擊。
國際標準Common Criteria 被稱為通用標準(CC),用于評估IT 產品和系統的安全性能,評估結果有助于消費者確定IT 產品或者系統對于其預期應用是否足夠安全,以及其使用中隱含的安全風險是否可以容忍,然而目前主流的密碼產品測評機構均將側信道攻擊的防護能力作為衡量密碼產品安全性的主要指標。
1996年Paul Kocher 等學者首次提出了側信道攻擊,翻開了密碼分析學領域的新篇章。側信道攻擊是以密碼算法為核心,但其與密碼算法執行所依托的軟硬件平臺密不可分,例如中央處理器、Cache 緩存器、邏輯運算部件、集成電路等硬件設備和鏈接硬件設備與上層應用軟件的操作系統等,共同承載著密碼算法的運行。我們將側信道攻擊按照攻擊方法進行分類總結為計時攻擊、功耗分析、故障分析、電磁分析以及Cache攻擊五個方面,并討論了上述攻擊中所用到的模型。理論模型:
(1)通常密碼系統在運行過程中所呈現出來的秘密信息與側信息之間的模型為:=((,))+,其中為密碼算法的輸入,為密鑰信息,為噪聲,(,)為假設側信道信息(如假設功耗),為(,)到真實側信息的映射。
(2)文獻[8]提出了基于信息熵的RSA 時間信息泄露模型,其中為密鑰,為密文,為采樣時間,為時間信息泄露函數,最終用信息熵概念量化通道泄露函數進行建模為:


表1從攻擊方法、攻擊手段/原理、攻擊對象/平臺三個方面總結了近年來的側信道攻擊發展趨勢。

表1 側信道攻擊方法
RSA 公鑰密碼算法是Rivest、Shamir 與Adleman 三位學者于1978年提出的,是目前應用最為廣泛的公鑰密碼算法之一。RSA 算法主要通過計算=mmodn 完成加密,計算=mmodn 完成解密,其中為明文,為密文,為模,(,)為公鑰對,(,)為私鑰對。對RSA 實現進行快速模冪運算的算法主要有“平方—乘法”算法、蒙哥馬利算法、中國剩余定理或引入并行的模乘線程來提高模冪運算速度。
Paul Kocher 在1996年首次提出了計時攻擊的概念,其用數學理論證明了計時攻擊的可行性,并對Diffie-Hellman、DSS、RSA 進行計時攻擊破解分析。計時攻擊是側信道攻擊中的一種,通過獲取在不同輸入下的每個操作的執行時間從而提取有關設備平臺的關鍵信息,該時間可能會因為操作不同、輸入數據的差異以及運行環境屬性不同而存在差異。雖然現階段隨著量子計算密碼的發展,但其仍不能對1024-bit 的RSA 密碼破解構成威脅。RSA 計時攻擊原理如圖1所示。

圖1 計時攻擊原理
RSA 計時攻擊通過分析模冪運算過程中條件分支語句運行時間不同來區分比特1 和比特0,通過獲取運行時間進行統計分析從而破解私鑰。“平方-乘法”算法描述如算法1(a)和算法1(b)所示,分別為從左至右和從右至左平方乘算法兩種。

本文以算法1(b)展開實驗,通過分析可知當私鑰位為1 時執行語句4,私鑰位為0 時執行語句6,模乘運算的時間遠大于賦值運算,我們獲取時間運行數據進行方差運算破解私鑰。根據Kocher 假設每個私鑰位運行時間是相互獨立的,猜測正確位較比于猜測錯誤位減少更多的方差,其攻擊步驟為:
(1)用條密文對算法進行解密,獲取每條密文解密總時間T(1 ≤≤)。
(2)給定兩個測試私鑰,測試私鑰與真實私鑰二進制位長度相同,均為,從右向左進行攻擊,兩條測試私鑰高位任意,低位攻擊過的私鑰位固定,但當前攻擊位不同,比較當前攻擊位方差減少情況,方差減少多得即為猜測正確。
為了評估RSA 密碼核時間側信道。本文以(Intel(R)Xeon(R) Gold 6154 CPU @ 3.00 GHz雙核處理器,256 GB內存,1 TB 固態)Linux 操作系統為主要測試平臺,利用OpenSSL庫生成測試向量(RSA 密鑰和模)。其時間數據如圖2所示,比特1 時間為(150 000~200 000)時鐘周期之間,比特0時間在200 時鐘周期以內。計時攻擊結果如圖3所示。

圖2 時間統計

圖3 攻擊成功率
常見的側信道防御技術包括:隨機掩碼,該技術是通過將隨機數添加到加密算法的中間過程中,從而改變側信道信息泄露和密鑰之間的依賴關系,因此攻擊者則無法還原出正確的密鑰;功耗平衡,此種方法為了消除側信道信息泄露和密鑰之間的依賴關系,通過將側信道泄露的信息特征進行隱藏,從而使攻擊者難以捕捉側信息的泄露;無效操作,此種方法主要是通過在特定的攻擊點周圍添加無效操作,或者在密碼算法實現過程中添加無效操作或者延時干擾,其基本原理也是破壞側信息同密鑰之間的依賴關系。
本文對近年來典型以及新興的側信道攻擊成果進行了總結。首先介紹了常見的攻擊方法,然后將各類攻擊方法作為分類目標,闡述了其中所用到的各類攻擊手段和作用平臺,最后以RSA 計時攻擊為例,演示了時間側信道信息泄露途徑。側信道攻擊應用場景逐漸擴大,其攻擊手段也不斷豐富,對于加強側信道研究以保護信息泄露刻不容緩。