Bitcoin Forum
June 15, 2024, 12:25:28 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How to calculate Lambda and Beta for n and p?  (Read 121 times)
digaran (OP)
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
October 11, 2023, 04:38:40 PM
Merited by NotATether (10)
 #1

I know Hal (rip) talked about them here but since I'm not that good with math, I can't find a way to calculate them for other curves, if I'm not mistaken Lambda is derived from n while Beta is derived from p, correct? Is there a formula preferably in python to derive these 2 values for different curves?

I'd appreciate the help, I'm just trying to test different curves, using Lambda and Beta as n and p, then if I have a way to calculate the lambda value for secp256k1's Lambda I could use them for my studies.

🖤😏
j2002ba2
Full Member
***
Online Online

Activity: 206
Merit: 444


View Profile
October 11, 2023, 05:54:12 PM
Last edit: October 12, 2023, 03:20:57 AM by j2002ba2
Merited by NotATether (2), albert0bsd (1)
 #2

lambda and beta are non-trivial cube roots of 1 modulo n and p.
λ3 = 1 (mod n)
β3 = 1 (mod p)
[λ](x,y) = (βx,y)

Since there are 3 of each you'd have to match them (2 are non-trivial, so there is just one equality check).

You could find how to get such root of 1 here.

So, let your curve is modulo q, and has order m, both prime numbers.
Compute a primitive root of 1 modulo q:
a≠1
aq-1 = 1 (mod q)
Then the cube root of 1 would be:
k = a(q-1)/3 = 11/3 (mod q)

Instead of finding a primitive root of 1, one could directly find a cube root of 1, this is faster:
k = (-1-sqrt(-3))/2 (mod q)

Do the same modulo the order of the curve m:
b≠1
bm-1 = 1 (mod m)
λ = b(m-1)/3 = 11/3 (mod m)

Then check which one matches:
[λ](x,y) = (kx,y)
β = k
or
[λ](x,y) = (k2x,y)
β = k2 (mod q)



Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!