Side-Channel-Attack

側通道攻擊 - 執行時間取決於密鑰的大小

  • October 15, 2020

在我的算法中,執行時間取決於密鑰的大小。這是一個線性關係(可能)。密鑰越大,算法執行所需的時間就越長。到目前為止,我有一個 Python 程式碼。

例如,對於 3 位輪密鑰,它執行 1 秒,而對於 128 位輪密鑰,它執行 4 秒(對於一些輸入)。

這是取消資格的問題嗎?

PS 順便說一下,我會詳細說明它發生的原因。有簡單的加法和乘法。將明文乘以更大的數字需要更多時間,加法也是如此。更重要的是,還有一些方程可以用歐幾里得算法來求解,例如我們在哪裡求解 $ 2^{128} \cdot c - key^{64} \cdot k = 1 $ . 我不怎麼 $ key $ 大小會影響解決該問題的時間。

我的算法/程式碼的執行時間取決於密鑰的大小。這是取消資格的問題嗎?

,因為密鑰大小不被視為秘密。

但是執行時間取決於密鑰編碼的整數的位大小會有所不同。這將是一個問題,或多或少取決於我們談論的大小和算法/密鑰生成方法。例如,在 RSA 中,對於定義私鑰的任何整數來說,這通常不是一個嚴重的問題 $ p $ , $ q $ , $ d $ , $ d_p $ , $ d_q $ , $ q_\text{inv} $ ,因為與最大值相比,這些整數的位大小不太可能顯著減小;以及關於 $ p $ 和 $ q $ ,它們作為整數的位大小通常固定為位大小的一半 $ n=p,q $ .

可能是一個嚴重的旁道問題是執行時間取決於一些秘密數據,如密鑰值或加密算法中的明文。更糟糕的是,當執行時間取決於密鑰值和已知的或受攻擊者控制的各種資訊(例如密鑰和密文;或簽名數據的密鑰和散列)的組合時。這是進行側通道攻擊的理想場所。如果乘法時間取決於相乘的值,情況很可能就是這種情況。這是一個常見且難以避免的問題,請參閱this

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