Side-Channel-Attack

有沒有辦法使黑盒功能側通道攻擊抗性?

  • October 29, 2019

如果我不了解函式的內部工作原理(即黑盒函式),有沒有辦法讓它抗側通道攻擊?(作為參考,我正在使用 JavaScript 加密庫)

如果我不了解函式的內部工作原理(即黑盒函式),有沒有辦法讓它抗側通道攻擊?

不,不是。當我們使加密函式具有“側通道”抗性時,我們通常使用以下策略之一:

  • 我們修改了加密實現以不向該特定側通道洩漏任何內容。例如,對於時序和記憶體側通道,我們可以使算法在恆定時間和恆定記憶體訪問中執行(或者,至少獨立於任何秘密數據)。
  • 我們修改密碼實現以分散內部資訊,以便僅獲取部分密碼狀態的資訊不會洩露任何關於我們實際在做什麼的資訊。例如,在“門檻值化”實現中,我們可以將密碼狀態的每個位轉換為三個內部位(其中邏輯位的狀態是三個內部位的異或)。通過這樣做(並隨機化每個單獨的內部位),我們確保對手需要同時獲取所有三個位的邊通道資訊,而不是任何一個或兩個……
  • 我們可以利用密碼運算的數學特性,對隨機數據執行運算,然後將其轉換為我們感興趣的結果。典型的例子是 RSA 密文阻塞;當我們要解密密文時 $ C $ ,我們選擇一個隨機值 $ R $ 併計算 $ R^eC \bmod N $ (在哪裡 $ e, N $ 是 RSA 公鑰);作為 $ R $ 是一個不相關的隨機值 $ C $ ,這是一個隨機值。我們將此值傳遞給低級 RSA 解密器,它將返回 $ RC^d \bmod N $ . 然後我們將其乘以 $ R^{-1} \bmod N $ ,這給了我們實際的明文。

不幸的是,以上都不適用於您的場景。前兩個涉及修改密碼實現,這是你不能做的,最後一個使用密碼算法的數學屬性,而黑匣子通常不會有。

引用自:https://crypto.stackexchange.com/questions/75390