物理芝士数学酱 25-10-02 02:03
微博认证:科学科普博主 微博原创视频博主

#今天要来点数学吗?##椭圆曲线##密码学[超话]##比特币# 所使用的是椭圆曲线加密机制(Elliptic Curve Cryptography, ECC),

或者更具体点说,是这一定义明确的曲线

y^2 = x^3 + 7

代号secp256k1。

该曲线不是在实数域上定义,而是在一个有限域(finite field)上运算,具体是模一个大素数
𝑝=2^256-2^32−977

虽然椭圆曲线加法在几何上可以用切线与交点解释,但在有限域中,必须用代数公式定义加法规则。

运算是在一个阿贝尔群(Abelian group)中进行,群的加法由椭圆曲线上的点定义

secp256k1标准指定了一个基点(Base Point)𝑔,其坐标以压缩或非压缩形式表示

私钥是一个整数 𝑘,公钥是点𝑘⋅𝑔,即将基点自己加自己𝑘 次。

因为这里是加法群,所以“乘法”其实是群元素重复相加的意思。不至混淆的情况下,也可以表示成𝑔○𝑔○𝑔○𝑔○𝑔……○𝑔=𝑔^𝑘。这样仿指数的表示,就有了离散对数的概念。

压缩形式只包含 𝑥,通过求解
𝑦^2=𝑥^3+7 mod𝑝 得到 𝑦

非压缩形式直接包含 𝑥 和𝑦 的十六进制表示。

虽然从 𝑘 可以高效计算𝑘⋅𝑔,但从𝑘⋅𝑔 反推出𝑘 是极其困难的,

这就是椭圆曲线加密的安全基础:椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem)

目前,求解大小为n的群中的离散对数问题的最佳算法需要 O(√n) 次运算。这里n 有多大?

基点的阶约为 2^256,因此安全性约为√(2^256)=2^128,即128位安全性。

这里xx位安全性是密码学中的一个衡量标准,用来描述破解某个加密系统所需的计算强度。它并不是指密钥长度本身,而是指攻击者需要尝试的可能性数量级,即大约
2^128 次操作才能成功破解。

发布于 黑龙江