首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >偶数y坐标的公钥是否真的对应小于n/2的私钥,反之亦然?(Secp256k1)

偶数y坐标的公钥是否真的对应小于n/2的私钥,反之亦然?(Secp256k1)
EN

Cryptography用户
提问于 2022-09-18 10:43:18
回答 1查看 369关注 0票数 4

这个问题有点复杂,目的是澄清问题。

假设n是循环组的顺序。It n - 1是所有可能的私钥数。

代码语言:javascript
运行
复制
n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

我们还知道,每个私钥和公钥都有它的模逆。要获得私钥的模逆,我们需要从n中减去私钥。

n - privKey

要得到公钥的模逆,我们必须将它的y坐标乘以-1,模乘以有限域的p阶。

x,y = x, -y \bmod p

模组反转公钥具有与原始公钥相同的x坐标,但具有不同的y坐标,并且y坐标的极性总是不同的。如果原始y是奇数,则在模倒键中它将是偶数,反之亦然。

问题是,如果公钥的y坐标为偶数,是否意味着相应的私钥值小于n/2?如果y是奇数,那么私钥比n/2更多?

y (或x)坐标的均匀度/奇性与相应私钥的值之间有什么关系吗?

在不知道私钥本身的情况下,是否有任何方法知道私钥比n/2更多或更少?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2022-09-18 11:11:24

用Sagemath测试前10个整数作为私钥;

代码语言:javascript
运行
复制
#secp256k1
p = Integer("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F")

a = Integer("0x0000000000000000000000000000000000000000000000000000000000000000")
b = Integer("0x0000000000000000000000000000000000000000000000000000000000000007")

K = GF(p)
E = EllipticCurve(K,[a,b])

Gx = Integer(0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)
Gy = Integer(0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
G = E(Gx, Gy)

# Check the point

#prime curve
n = E.order()


for i in range(1,10):
    A = i* G
    print(A[0],A[1])

下面是输出(x,y)

代码语言:javascript
运行
复制
55066263022277343669578718895168534326250603453777594175500187360389116729240 32670510020758816978083085130507043184471273380659243275938904335757337482424
89565891926547004231252920425935692360644145829622209833684329913297188986597 12158399299693830322967808612713398636155367887041628176798871954788371653930
112711660439710606056748659173929673102114977341539408544630613555209775888121 25583027980570883691656905877401976406448868254816295069919888960541586679410
103388573995635080359749164254216598308788835304023601477803095234286494993683 37057141145242123013015316630864329550140216928701153669873286428255828810018
21505829891763648114329055987619236494102133314575206970830385799158076338148 98003708678762621233683240503080860129026887322874138805529884920309963580118
115780575977492633039504758427830329241728645270042306223540962614150928364886 78735063515800386211891312544505775871260717697865196436804966483607426560663
41948375291644419605210209193538855353224492619856392092318293986323063962044 48361766907851246668144012348516735800090617714386977531302791340517493990618
21262057306151627953595685090280431278183829487175876377991189246716355947009 41749993296225487051377864631615517161996906063147759678534462689479575333124
78173298682877769088723994436027545680738210601369041078747105985693655485630 92362876758821804597230797234617159328445543067760556585160674174871431781431

正如我们所看到的,在这个范围内,XY坐标有偶数和奇数的情况。由此得出结论,没有%100的关系。

它真的很难分辨,我想是的,但是,我既不能证明它,也不能计算它!

对于我们拥有的前100万个私钥的运行;

Number of odd X'es 499822

Number of odd Y'es 499944

正如我们所看到的,非常接近一半。

作为一个特别的注意:点的坐标不应用于随机性,因为它们是不均匀的。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/101939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档