X25519:修订间差异

来自WHY42
Riguz留言 | 贡献
无编辑摘要
Riguz留言 | 贡献
无编辑摘要
第1行: 第1行:
在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲-赫尔曼(ECDH)密钥交换方法,可用作提供256比特的安全密钥。它是不被任何已知专利覆盖的最快ECC曲线之一。ECC的主要优势是它相比RSA加密算法使用较小的密钥长度并提供相当等级的安全性。
在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲-赫尔曼(ECDH)密钥交换方法,可用作提供256比特的安全密钥。它是不被任何已知专利覆盖的最快ECC曲线之一。ECC的主要优势是它相比RSA加密算法使用较小的密钥长度并提供相当等级的安全性。
椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决“椭圆曲线离散对数”问题的困难性上,对应有限域上椭圆曲线的群。


<div name="div-table" style="margin: 24px;">
<div name="div-table" style="margin: 24px;">
第29行: 第31行:


: <math>\mathrm{Div}^0 (E) \to \mathrm{Pic}^0 (E) \simeq E, \, </math>
: <math>\mathrm{Div}^0 (E) \to \mathrm{Pic}^0 (E) \simeq E, \, </math>
= Algprithm =
所用的曲線是{{math|<var>y</var><sup>2</sup> {{=}} <var>x</var><sup>3</sup> + 486662<var>x</var><sup>2</sup> + <var>x</var>}},蒙哥馬利曲線,在由素數{{math|2<sup>255</sup> − 19}}定義的素數場的二次擴展上,並且使用基點{{math|<var>x</var> {{=}} 9}}。這個基點的[[階_(群論)|階數]]是<math>(2^{252} + 27742317777372353535851937790883648493)</math>。
With those point operations, we'll be doing a key exchange that looks like this<ref>https://x25519.xargs.org/</ref>:
<math>kb∗(ka∗P) = ka∗(kb∗P)</math>
Let's give the above terms some better names:
* ka :  Alice's secret key - a 255-bit (~32-byte) random number
* kb :  Bob's secret key - a 255-bit (~32-byte) random number
* P :  a point on the curve, where x=9
* ka∗P :  Alice's public key
* kb∗P :  Bob's public key
* ka∗kb∗P :  The shared secret
* Once Alice and Bob have a shared secret, they can use it to build encryption keys for a secure connection.


[[Category:RFC]]
[[Category:RFC]]

2024年1月29日 (一) 19:52的版本

在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲-赫尔曼(ECDH)密钥交换方法,可用作提供256比特的安全密钥。它是不被任何已知专利覆盖的最快ECC曲线之一。ECC的主要优势是它相比RSA加密算法使用较小的密钥长度并提供相当等级的安全性。

椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决“椭圆曲线离散对数”问题的困难性上,对应有限域上椭圆曲线的群。

Symmetric Key Length Standard asymmetric Key Length Elliptic Curve Key Length
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 512

針對密碼學應用上的椭圆曲线是在有限域(不是實數域)的平面曲线,其方程式如下:

[math]\displaystyle{ y^2 = x^3 + ax + b, \, }[/math]

有一個特別的无穷远点(標示為∞)。座標會選定為特定的有限域,其特征不等於2或是3,也有可能是更複雜的曲線方程。

椭圆曲线產生的集合是阿贝尔群,以无穷远点為單位元。此群的結構會繼承以下代数簇除子的結構:

[math]\displaystyle{ \mathrm{Div}^0 (E) \to \mathrm{Pic}^0 (E) \simeq E, \, }[/math]

Algprithm

所用的曲線是模板:Math,蒙哥馬利曲線,在由素數模板:Math定義的素數場的二次擴展上,並且使用基點模板:Math。這個基點的階數[math]\displaystyle{ (2^{252} + 27742317777372353535851937790883648493) }[/math]

With those point operations, we'll be doing a key exchange that looks like this[1]:

[math]\displaystyle{ kb∗(ka∗P) = ka∗(kb∗P) }[/math]

Let's give the above terms some better names:

  • ka  : Alice's secret key - a 255-bit (~32-byte) random number
  • kb  : Bob's secret key - a 255-bit (~32-byte) random number
  • P  : a point on the curve, where x=9
  • ka∗P  : Alice's public key
  • kb∗P  : Bob's public key
  • ka∗kb∗P  : The shared secret
  • Once Alice and Bob have a shared secret, they can use it to build encryption keys for a secure connection.