午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

【密碼學(xué)】一文讀懂EdDSA

 123山不轉(zhuǎn)水轉(zhuǎn) 2024-12-13
圖片

在之前,我們已經(jīng)聊過了不少有關(guān)于橢圓曲線的知識(shí)了,其實(shí),對于橢圓曲線來說,除了我們之前非常熟悉的魏爾斯特拉斯形式,其實(shí),還有別的形式,本文來聊得呢,就是其他的形式,那么我們先來回顧一下,有關(guān)于橢圓曲線的知識(shí)。

前置知識(shí)

魏爾斯特拉斯曲線

魏爾斯特拉斯橢圓曲線是橢圓曲線的一種標(biāo)準(zhǔn)形式,通常用于數(shù)學(xué)和密碼學(xué)中。橢圓曲線是一個(gè)平面代數(shù)曲線,具有很多有趣的數(shù)學(xué)性質(zhì),廣泛應(yīng)用于數(shù)論、代數(shù)幾何以及信息安全,這也是我們熟知的形式,具體標(biāo)準(zhǔn)形式如下

這里,,其中是一個(gè)域,對于密碼學(xué)來說,一般我們?nèi)∷財(cái)?shù)域,或者的域,并且,這個(gè)要想成為一個(gè)橢圓曲線,這里需要滿足

否則,曲線會(huì)有奇點(diǎn),簡單理解,就是曲線自身存在相交的點(diǎn),這個(gè)其實(shí)不屬于本文的內(nèi)容,我們不過多討論,感興趣的讀者,可以自行了解下。

蒙哥馬利曲線(Montgomery Curves)

除了,上面,我們常見的 魏爾斯特拉斯形式的曲線呢,在密碼學(xué)當(dāng)中,還經(jīng)常用到另一種曲線形式,也就是蒙哥馬利曲線,具體的標(biāo)準(zhǔn)形式如下

這一種形式是由Peter Montgomery在1987年引入,特別適用于高效實(shí)現(xiàn)橢圓曲線離散對數(shù)問題(ECDLP)的算法,例如用于Diffie-Hellman密鑰交換。

這個(gè)曲線,我們其實(shí)是可以把他轉(zhuǎn)換為魏爾斯特拉斯形式的,這里,簡單推導(dǎo)一下吧[1]。

這里,我們需要首先,把B給消除掉,這里,我們需要做一個(gè)換元,令

之后,我們帶入蒙特卡羅曲線,可以得到

然后,觀察到,這里我們需要降低次數(shù),因?yàn)槲籂査固乩骨€,沒有二次項(xiàng),因此我們需要再做一次換元,也就是

然后,帶入,可以得到

然后,化簡一下,可以得到

也就是,對應(yīng)魏爾斯特拉斯當(dāng)中,我們令

這樣,就可以了。

愛德華曲線(Edwards Curves)

對于,愛德華曲線呢,他的標(biāo)準(zhǔn)形式是

或者,有他的簡化形式,也就是

這種曲線由Harold Edwards在2007年首次提出。

Curve25519[3]

Curve25519 是一種在橢圓曲線密碼學(xué)(ECC)中使用的橢圓曲線,提供 128 位的安全性(256 位密鑰大?。?,并設(shè)計(jì)用于橢圓曲線迪菲-赫爾曼(ECDH)密鑰協(xié)商方案。最初的 Curve25519 論文將其定義為一種迪菲-赫爾曼(DH)函數(shù)。丹尼爾·J·伯恩斯坦(Daniel J. Bernstein)隨后提出將 Curve25519 作為基礎(chǔ)曲線的名稱,而將 X25519 作為 DH 函數(shù)的名稱。

這個(gè)曲線,具體的形式是

然后,對于素?cái)?shù)域,所選擇的素?cái)?shù)為

注意到,紅色的部分,也就是25519的由來,如果我們令基點(diǎn)的x=9,我們可以得到一個(gè)階為

的循環(huán)子群。

EdDSA

終于到了,本篇文章的主題了,對于EdDSA的簽名算法,我們采用的是愛德華曲線,具體形式如下

這個(gè)q和curve25519是一個(gè)q, 也是,這個(gè)曲線,和我們之前提到的curve25519是雙有理等價(jià)的,具體代換是[2]

對于這個(gè)簽名算法呢,其實(shí)也包含三個(gè)部分,分別是密鑰生成,簽名算法和驗(yàn)簽算法。

密鑰生成

首先,隨機(jī)均勻的選擇一個(gè)k(這個(gè)作為種子),然后計(jì)算H(k), 這里H是哈希函數(shù),然后將H(k)的最后b有效比特,轉(zhuǎn)換成為一個(gè)整數(shù),作為, 這里s是私鑰,然后對于公鑰

其中,B是橢圓曲線的基點(diǎn)。

簽名算法

這里,我們先計(jì)算r,具體如下

然后,和其他橢圓曲線簽名方案類似,我們計(jì)算

之后,我們需要計(jì)算簽名

其中是橢圓曲線的階。

驗(yàn)簽算法

我們收到簽名(R, S),首先判斷S的范圍,是否在之內(nèi),如果不在,驗(yàn)簽失敗。

然后,我們驗(yàn)證

是否相等,如果相等,則驗(yàn)簽成功。

這里,我們簡單驗(yàn)證一下正確性吧,我們有

所以,這個(gè)是正確的。

總結(jié)

我們只是改了橢圓曲線對應(yīng)的曲線,就得到了不同的結(jié)果,當(dāng)然,曲線的選擇還有很多,后面我們有機(jī)會(huì)再聊。快樂的時(shí)光過得特別快,又到了說再見的時(shí)候了,咱們下次再見。

參考資料

  1. https://en./wiki/Montgomery_curve
  2. https://en./wiki/EdDSA
  3. https://en./wiki/Curve25519

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多