Encryption
對於橢圓曲線密碼學,256 位密鑰是否意味著XXx和是是y每個是 256 位還是 128 位?
在維基百科文章中,聲稱“256 位橢圓曲線公鑰應提供與 3072 位 RSA 公鑰相當的安全性”。因為,在 ECC 中,公鑰由一個點組成 $ (x, y) $ ,當他們說“256 位公鑰”時,這是否意味著 $ x $ 和 $ y $ 每個都是256位嗎?或者,它們加在一起是 256 位(意味著每個都是 128 位)?
在 ECC 中,xxx 位曲線表示模數長度。此外,這意味著每個座標的長度 $ (x,y) $ . 所以, $ x $ 和 $ y $ 每個都是 256 位
我將以Curve25519 為例。欄位順序為 $ N=2^{255}-19 $ . 這意味著曲線點的座標 $ (x,y) $ 兩者都是數字 $ [0, N-1] $ . 編碼這樣的數字需要 $ \log_2{N}=254.99… $ bits,幾乎是255 位(實際上是 255 位)。
但是,如果我們天真地對兩者進行編碼,我們就會儲存冗餘資訊 $ x $ 和 $ y $ !我們的曲線在 x 軸上是對稱的,曲線方程 $ y^2 = x^3 + 486662x^2 + x $ 給定的只有兩個解決方案 $ x $ . 這意味著,給定 $ x $ ,我們可以編碼 $ y $ 一位(方程解的符號)。
所以,總的來說,我們可以編碼 $ x $ 255 位,和 $ y $ 單個位,共 256 位。這正好適合 32 個字節!這確實或多或少地稱為“256 位曲線”。