Post
Topic
Board Discussioni avanzate e sviluppo
Merits 1 from 1 user
Re: curve ellittiche e algoritmo ECDSA
by
arulbero
on 16/01/2019, 21:27:58 UTC
⭐ Merited by Piggy (1)
...
Altra domanda...Qualcuno è così gentile da scrivere i vari passaggi da privkey a pubkey con una privkey reale? grazie
Vedi: https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses
e anche https://en.bitcoin.it/wiki/Address

Grazie, ma manca proprio il calcolo della chiave pubblica (passaggio da 0 a 1)

L'ho spiegato qui con un codice python applicato a una chiave reale:

https://bitcointalk.org/index.php?topic=5091462.msg48983013#msg48983013

nella libreria micro_ecdsa la funzione che effettua il passaggio dalla chiave privata alla chiave pubblica è la funzione mul che moltiplica il generatore G per una chiave privata d (uno scalare) e restituisce la chiave pubblica corrispondente d*G. Quindi per trovare la chiave pubblica relativa a 'd' basta chiamare la funzione mul(d,Gx, Gy), dove Gx e Gy sono le coordinate del punto G scelto dalla SEC. Ti consiglio di scaricarti lo script pyhton e provare a generare delle chiavi pubbliche a partire dalle chiavi private. Lascia stare gli indirizzi, quelli vengono dopo.

La funzione 'mul' invece di fare banalmente d*G = G+G+G+.... un numero d di volte (essendo d dell'ordine di 2^256 ci impiegherebbe un'eternità) crea tutte le potenze di 2 tipo 2*G, 4*G, 8*G, 16*G, 32*G, ... , 2^255*G e poi somma tra loro quelle che servono. Ho anche fatto un esempio concreto con una chiave piccola tipo 25 = 11001 in base 2. In quel caso basta generare 1G, 2G, 4G, 8G, 16G e poi sommare rispettivamente: 16G + 8G +1G (che corrispondono ai 3 'uno' della sequenza 11001) per ottenere 25G (che è la chiave pubblica relativa alla chiave privata 25).  Nella libreria ci sono anche la formula per l'addizione di due punti e la formula per il raddoppio di un punto che sono i mattoncini base per la funzione mul.

EDIT: altri link utili:

https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication

https://hackernoon.com/what-is-the-math-behind-elliptic-curve-cryptography-f61b25253da3