Hash
基於離散對數問題的散列
乍一看,可以使用橢圓曲線離散對數問題來授予單向性 $ H(x)=x*G $ (在哪裡 $ G $ 是循環子群的生成點)。
此外, $ H(x) $ 是同態的,因為 $ H(x+y)=H(x)+H(y) $ ,這在某些應用程序中可能被證明是雜湊函式的有用屬性。
使這種散列方案在實踐中不流行的一些缺點或漏洞是什麼?
基於離散對數問題的安全散列函式是 $ H(x|y)=x\cdot G+y\cdot P $ , 在哪裡 $ P $ 是離散對數未知的隨機點,並且“ $ | $ " 表示串聯;這由 Damgård 顯示。這可以在離散對數假設下證明是抗碰撞的(如果你能找到衝突,那麼這可以用來找到離散對數 $ P $ )。請注意,為了使其感興趣,輸出必須比輸入短。但是,對於大多數曲線,這很容易通過使用點壓縮來實現。一旦你有了這個函式,你就可以通過應用 Merkle-Damgård 變換得到一個通用的抗碰撞雜湊函式。
當然,這將是非常低效的,但它是離散對數問題的抗衝突雜湊函式。
介紹這一點的論文是Ivan Damgård 的無衝突雜湊函式和公鑰簽名方案。Katz-Lindell 教科書(第二版)的第 8.4.2 節也對此進行了描述。