CTFZone 2017 Crypto409: e-Voting Writeup

這個挑戰是一個黑箱密碼系統,裡面有加密和解密的功能。經過一些測試後,發現是 ElGamal 密碼。測試過程如下:

加密 1,得到兩個數字 (是什麼並不重要);解密  1333333337 1,得到 1333333337

可以猜到它跟 Wikipedia 說的有點不同:它加密的 \((c_1, c_2)\) 跟維基的 \((c_1, c_2)\) 次序是相反的。

對於這個挑戰,我們想解密 \((c_1, c_2) = (m\times s^k, t^k)\) (我們不知道 \(m, s, t, k\))。可以用一個選擇密文攻擊,方法如下:

  1. 加密 1,得到 \((c_1′, c_2′)\)
  2. 算出 \((C_1, C_2) := (c_1\times c_1′, c_2 \times c_2′))\)
  3. 由於 \((C_1, C_2) = (m\times s^{k + k’}, t^{k + k’})\) (化簡後得出),把它解密就得到明文

 


發表迴響