差分能量分析介绍(三)
簡單功率分析——SPA(Simple Power Analysis)
????????簡單功率分析是一組用于檢查功率跟蹤的方法,以深入了解設備的操作,包括識別與數據相關的功率變化。SPA側重于檢查在單個能量跡中直接可見或通過比較明顯可見的能量跡對。
1.SPA方法
1.1單信道分析? ? ?
????????在單個能量跡中,與計時、設備屬性、算法結構或計算的其他屬性相對應的特征通常是可見的。SPA的第一階段包括查看能量跡并推斷操作。
?
????????例如,圖10是從使用3DES和EEPROM運行偽隨機數生成操作的智能卡捕獲的。功耗的變化傳達了設備操作的信息。從左到右,跟蹤顯示設備輸入數據的到達、設備單字節的輸出、三重DES操作和一系列EEPROM寫入。其中一些子操作,如I/O和EEPROM寫入,可以從它們的時序和功耗配置文件中識別,或者使用關于設備及其實現的協議的背景知識來識別。在其他情況下,信息通過識別重復的模式并計算循環中的迭代次數,可以推斷出設備正在做什么。
????????在不同的層次上可以獲得不同的信息。圖10中的視圖縮小顯示了事務中涉及的每個主要操作。標記為“加密(3DES)”的部分中記錄到三次活動爆發。放大這些凸起中的第一個,會顯示重復16次的圖案,這是DES round函數。如果分析人員不知道該協議使用的是3DES,那么這些結構線索可能會有所幫助。放大時鐘周期級別可以顯示更多細節,例如低級別實現選擇。
????????雖然兩段可能看起來相似,但識別細微差異的更可靠方法是計算軌跡兩段之間的差異。這里通常使用的方法是復制軌跡,將其移動一段時間間隔,然后計算并顯示逐點差異。當軌跡的兩段真正相似時,它們之間的差異應在它們一致的范圍內相對平坦。在單一跟蹤中明顯存在的SPA泄漏也可能泄露加密秘密。圖11顯示了模塊化求冪循環的冪函數軌跡的一部分,其中SPA特性的直接解釋揭示了RSA解密密鑰。
????????此軌跡顯示設備使用從左到右的二進制算法執行模冪運算時的一系列平方和乘法。乘法在本族中消耗的能量大于平方,并且峰值更高。在從左到右的二進制算法中,每次迭代求冪循環都執行一個平方,而乘法僅在指數位為1時執行。這一事實允許解釋圖11中的操作模式。秘密指數中的每1位顯示為一個較短的凹凸,后面跟著一個較高的凹凸,而0位顯示為一個較短的凹凸,后面沒有較高的凹凸。因此,可以恢復指數的位,如圖所示。
1.2多信道分析
????????多信道分析包括對比試驗,以確定相似區域和差異。圖12顯示了使用A3算法執行GSM認證訂戶命令的設備記錄的兩條能量跡。該設備每次都使用相同的鍵,但初始數據值不同,從而產生上兩條能量跡。下部軌跡顯示頂部軌跡之間的差異。
????????軌跡在圖12的左邊緣對齊,并在圖的前半部分保持同步,差分軌跡相對平坦。然而,在暗垂直線指示的點處,軌跡發散,出現較大差異,表明計算采用了不同的路徑。
????????圖13顯示了相同的兩條記錄道,但第二條記錄已向左移動了21個時鐘周期(4.2μS),以使它們在最右側垂直黑線的位置恢復同步。圖12中的黑線已經斷開,并且仍然標記最初對齊的點。
????????圖12和圖13共同表明,這兩種計算短暫地采用了不同的路徑,發散區域在上記錄道中采用了20個時鐘周期,在第二記錄道中采用了41個時鐘周期。此特性是由在兩個跟蹤中采用不同執行路徑的條件分支引起的。
?????
????????導致時間差異的SPA泄漏通??梢允褂脮r間攻擊進行攻擊,但SPA通常提供比總體時間更多的信息。圖14顯示了使用兩個不同的輸入消息運行的置換函數的跟蹤。在這種情況下,即使總運行時間相同,高振幅泄漏也很明顯。一旦了解了變化的原因,此類泄漏可能會提供可用于恢復密鑰的信息。
????????在分析成對能量跡時,兩條能量跡中的宏觀SPA特征允許對齊和比較相似的特征。從另一個記錄道中減去一個記錄道的簡單方法突出顯示了它們之間的振幅和時間差。
2.SPA泄露
????????依賴數據的條件分支是SPA泄漏的一個來源。SPA泄漏的另一個常見來源是具有可變定時的CPU指令,例如ARM7和Intel 80486上的乘法。即使在具有恒定定時的無分支代碼中,具有微碼變化的指令在功耗方面也可能具有明顯的依賴于數據的變化。算術運算和多精度整數運算的計算復雜度可能會發生重大變化,從而導致泄漏幅度變化較大。SPA泄漏可能由低概率事件觸發。例如,對于輸入的每一個16位字,多精度整數乘法可能運行得更快。SPA變體與密碼處理系統無關,例如多線程CPU上的計時器中斷和上下文切換,它們也很常見,但往往不太有用,并且通??梢宰R別,因為它們對于給定的密鑰和數據輸入不一致。
????????特別選擇的輸入可用于搜索對應于異常中間狀態的SPA泄漏。當密鑰和數據都被修改或保持不變時,可以檢查其他能量跡對,以確定特征是否一致。正如將在后面討論的那樣,依賴于密鑰或計算中介的SPA泄漏往往對密碼分析特別有用。
3.SPA攻擊
????????一旦發現SPA泄漏,下一步就是用它來恢復鑰匙。在一些情況下,例如圖11中的裝置,處理是簡單的。在其他情況下,可能需要進行更多分析。
?
????????圖15中的軌跡顯示了在使用中國剩余定理(CRT)的RSA解密實現中出現的SPA泄漏。該圖顯示了解密這兩條消息的最終CRT處理步驟。選擇密文將明文中大約一半的最高有效位設置為0。 底部軌跡顯示大于2^512附近閾值的消息出現的凹凸。當M小于閾值時,頂部軌跡顯示相同的區域。進一步測試表明,該SPA泄漏揭示了M mod p>mod q。使用自適應選擇密文攻擊,可以通過二進制搜索找到閾值M=q,從而揭示RSA私鑰。
????????
????????在黑盒評估中,可能更難直接解釋觀察到的泄漏的含義。碰撞攻擊是利用SPA漏洞的一種相對簡單的方法。特別是,SPA可用于推斷輸入對何時導致設備進入碰撞(或類似)狀態,而無需精確了解設備泄漏的性質。在某些情況下,識別這些輸入的能力可以恢復密鑰。
????????代數攻擊具體來說,基于lattice-based methods是利用SPA泄漏的另一種途徑,這種泄漏在每條能量跡上只提供少量信息。
?
???????例如,圖16示出了來自設備的兩個功率跡線使用隨機數執行ECC曲線乘法。對于在這個裝置中,可以很容易地推斷出20位的nonce168位橢圓曲線上每次乘法的SPA泄漏。這個頂部記錄道顯示等于0的隨機數位,底部記錄道顯示等于0的隨機數位顯示一個隨機數等于1的操作。價值隨機數位在圖像區域具有清晰可見的效果垂直線之間的軌跡。使用基于網格的攻擊在Bleichenbacher和其他人的工作中簽名密鑰可以很容易地恢復。代數攻擊也被證明對實現對稱密碼算法。
????????如這些示例所示,一旦識別出SPA漏洞并對其特征進行描述,則密鑰的恢復通常是簡單的。這并不奇怪,因為對手擁有密碼設計者認為會被隱藏的關于計算中介的有用信息。
????????SPA僅在能量跡中的重要、依賴數據的特征明顯時才實用。在實踐中,加密計算期間的數據相關功率變化可能隱藏在噪聲中。在其他情況下,SPA泄漏可能是可見的,但它們的解釋非常繁瑣,自動攻擊更具吸引力。對于這些情況,DPA攻擊的統計能力和結構簡單性是有利的。
總結
以上是生活随笔為你收集整理的差分能量分析介绍(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 差分能量分析介绍(二)
- 下一篇: 差分能量分析介绍(四)