X25519:修订间差异
创建页面,内容为“在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲-赫尔曼(ECDH)密钥交换方法,可用作提供256比特的安全密钥。它是不被任何已知专利覆盖的最快ECC曲线之一。 Category:RFC” |
无编辑摘要 |
||
(未显示同一用户的2个中间版本) | |||
第1行: | 第1行: | ||
在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲- | 在密码学中,Curve25519是一种椭圆曲线,被设计用于椭圆曲线迪菲-赫尔曼(ECDH)密钥交换方法,可用作提供256比特的安全密钥。它是不被任何已知专利覆盖的最快ECC曲线之一。ECC的主要优势是它相比RSA加密算法使用较小的密钥长度并提供相当等级的安全性。 | ||
椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决“椭圆曲线离散对数”问题的困难性上,对应有限域上椭圆曲线的群。 | |||
<div name="div-table" style="margin: 24px;"> | |||
{| class="wikitable" style="margin: auto; width: 40%; text-align: center; padding: 8px;" align="center" | |||
|- | |||
! 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 | |||
|} | |||
</div> | |||
針對密碼學應用上的椭圆曲线是在[[有限域]](不是實數域)的[[平面曲线]],其方程式如下: | |||
: <math>y^2 = x^3 + ax + b, \, </math> | |||
有一個特別的[[无穷远点]](標示為∞)。座標會選定為特定的[[有限域]],其[[特征 (代数)|特征]]不等於2或是3,也有可能是更複雜的曲線方程。 | |||
由[[椭圆曲线]]產生的集合是[[阿贝尔群]],以无穷远点為單位元。此群的結構會繼承以下[[代数簇]]中[[除子]]的結構: | |||
: <math>\mathrm{Div}^0 (E) \to \mathrm{Pic}^0 (E) \simeq E, \, </math> | |||
= Algprithm = | |||
所用的曲線是<math> y^2 = x^3 + 486662x2 + x </math>,蒙哥馬利曲線,在由素數<math> 2^255 - 19 </math>定義的素數場的二次擴展上,並且使用基點<math> </math>。這個基點的階是<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:59的最新版本
在密码学中,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]\displaystyle{ y^2 = x^3 + 486662x2 + x }[/math],蒙哥馬利曲線,在由素數[math]\displaystyle{ 2^255 - 19 }[/math]定義的素數場的二次擴展上,並且使用基點[math]\displaystyle{ }[/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.