Discrete-Logarithm

驗證 ECDSA 的離散對數是否在範圍內

  • June 18, 2020

是否可以驗證橢圓曲線中的離散對數是否在範圍內而不發現它?我需要驗證 $ x $ 是在 $ 1 $ , $ 2^{64} $ 為了 $ xG=P $ .

如果你給攻擊者 $ G $ 和 $ P := xG $ 和 $ 0<x<2^{64} $ 然後她可以計算一個表 $ 2^{32} $ 條目 $ yG $ 為了 $ 0\le y<2^{32} $ . 尋找任何 $ 0\le z<2^{32} $ 價值 $ P-(z\cdot 2^{32}\cdot G) $ 在表中產量 $ x = y + z\cdot 2^{32} $ . 空間複雜度為 $ 2^{32} $ 條目和時間複雜度 $ \le\log_2(2^{32})\cdot 2^{32} $ .

這就是為什麼 user679128 使用致盲標量 $ b $ .

您可以使用承諾樣式的範圍證明來表明您的承諾點在指定範圍內。

這方面的一個例子是防彈。返回的點將是 $ P=xG+bH $ 在哪裡 $ b $ 是一個致盲標量。

您可以將 b 設置為零,也可以將 b 與證明一起顯示。驗證者仍然無法知道什麼 $ x $ 假設他不能破壞離散對數。

編輯:

閱讀簡斯的答案,我們不能將盲點設置為零或顯示,因為要找到的空間和時間複雜度 $ x $ 減少到找到一個數字之間 $ 0 $ 和 $ 2^64 $ ,而且對手只需要計算一次查找表。

請注意,這在誠實驗證者模型中也不安全,因為該模型僅假設驗證者將遵循協議,他仍然可以離開並根據洩露的資訊計算查找表。

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