Public-Key

有可能證明兩個私鑰是相關的嗎?

  • January 11, 2022

假設 Alice 擁有兩個密鑰對:( $ Pub_1 $ , $ Priv_1 $ ) 和 ( $ Pub_2 $ , $ Priv_2 $ ).

這對 ( $ Pub_1 $ , $ Priv_1 $ ) 很普通。

$ Priv_2 $ 是由 Alice 通過連接故意創建的 $ Priv_1 $ 和“香蕉”這個詞(然後她得出 $ Pub_2 $ 在……之外 $ Priv_2 $ 通常的方式)。

Bob 知道公鑰。

任何非對稱密鑰算法中,Alice 是否有可能證明 $ Priv_2 $ = $ Priv_1 $ +“香蕉”?——不洩露私鑰?

假設您使用 Curve25519,它有一個眾所周知的生成點 $ G $ 形成一個大小的循環群 $ \ell $ . 有效標量(私鑰)通常表示為無符號 little-endian 32 字節序列。

的 ASCII 字節 $ \texttt{banana} $ 解釋為小端數是 $ 107126708920674 $ .

如果您附加 ASCII 字節 $ \texttt{banana} $ 到一個 32 字節(256 位)的小端私鑰,你在數學上做的是添加 $ x $ 在哪裡 $ x = 107126708920674 \cdot 2^{256} $ . 因為這個私鑰會超過組大小 $ \ell $ , 橢圓曲線庫只有在它被歸約後才會接受它作為私鑰 $ mod\ \ell $ .

因此與 $ \texttt{banana} $ 意味著你有 $ priv_2 = priv_1 + x\ mod\ \ell $ .

任何人都可以很容易地觀察到 $ pub_2 == pub_1 + x \cdot G $ , 只有當你添加了 $ x $ 至 $ priv_1 $ , 或添加 $ x + n \cdot \ell $ 對於一些價值 $ n $ .

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