Bitcoin Forum

Local => Italiano (Italian) => Topic started by: saverio on June 25, 2014, 07:45:35 AM



Title: Chiave pubblica e chiave privata
Post by: saverio on June 25, 2014, 07:45:35 AM
Mi sto avvicinando adesso al mondo bitcoin e ho 2 domande tecniche da completo neofita.

Premessa: da quanto ho capito quando creiamo un nuovo indirizzo bitcoin il software crea una chiave privata che resta segreta e una chiave pubblica che poi è il nostro indirizzo. Data la chiave privata si può creare facilmente la chiave pubblica mentre il processo non è reversibile, dalla chiave pubblica non si può risalire alla chiave privata.

Se la premessa è giusta (lo è?)...

Prima domanda, teoricamente è possibile che creando una chiave privata casuale ne creo una uguale ad un'altra già esistente, capisco che la possibilità è remotissima, ma c'è questa possibilità giusto? Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

Seconda domanda, con la tecnologia odierna (o almeno quella conosciuta) dalla chiave pubblica non riesco a trovare la chiave privata, se ci provo con metodi di forza bruta impiego probabilmente ere geologiche anche disponendo di super computer. Con il prossimo possibile avvento dei computer quantistici e di possibilità di calcolo oggi impensabili tutto il sistema bitcoin potrebbe essere a rischio?







Title: Re: Chiave pubblica e chiave privata
Post by: picchio on June 25, 2014, 07:52:45 AM
Mi sto avvicinando adesso al mondo bitcoin e ho 2 domande tecniche da completo neofita.

Premessa: da quanto ho capito quando creiamo un nuovo indirizzo bitcoin il software crea una chiave privata che resta segreta e una chiave pubblica che poi è il nostro indirizzo. Data la chiave privata si può creare facilmente la chiave pubblica mentre il processo non è reversibile, dalla chiave pubblica non si può risalire alla chiave privata.

Se la premessa è giusta (lo è?)...

Prima domanda, teoricamente è possibile che creando una chiave privata casuale ne creo una uguale ad un'altra già esistente, capisco che la possibilità è remotissima, ma c'è questa possibilità giusto? Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?
Il ragionamento simile e' stato affrontato in questo 3d
https://bitcointalk.org/index.php?topic=645667.0
In sintesi: hai ragione.


Seconda domanda, con la tecnologia odierna (o almeno quella conosciuta) dalla chiave pubblica non riesco a trovare la chiave privata, se ci provo con metodi di forza bruta impiego probabilmente ere geologiche anche disponendo di super computer. Con il prossimo possibile avvento dei computer quantistici e di possibilità di calcolo oggi impensabili tutto il sistema bitcoin potrebbe essere a rischio?
Qui' le cose si complicano, ho letto ma non ricordo dove, che un indirizzo utilizzato per firmare transazioni è piu' a rischio di attacchi quantistici di uno non utilizzato in quanto i livelli di codifica sono di due tipi differenti ... non ne so molto di più, al momento starei tranquillo.


Title: Re: Chiave pubblica e chiave privata
Post by: alexrossi on June 25, 2014, 10:11:49 AM
Prima domanda, teoricamente è possibile che creando una chiave privata casuale ne creo una uguale ad un'altra già esistente, capisco che la possibilità è remotissima, ma c'è questa possibilità giusto? Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

Boh, prendo sempre lo stesso esempio che però spiega bene quanto potrebbe essere remoto l'evento: è più probabile che il tuo PC si fonda e dalle ceneri ne esca uno scontrino con i numeri del lotto giusti, piuttosto che un indirizzo bitcoin generato 2 volte.


Title: Re: Chiave pubblica e chiave privata
Post by: Gc24 on June 25, 2014, 12:34:45 PM
Mi sto avvicinando adesso al mondo bitcoin e ho 2 domande tecniche da completo neofita.

Premessa: da quanto ho capito quando creiamo un nuovo indirizzo bitcoin il software crea una chiave privata che resta segreta e una chiave pubblica che poi è il nostro indirizzo. Data la chiave privata si può creare facilmente la chiave pubblica mentre il processo non è reversibile, dalla chiave pubblica non si può risalire alla chiave privata.

Se la premessa è giusta (lo è?)...

Prima domanda, teoricamente è possibile che creando una chiave privata casuale ne creo una uguale ad un'altra già esistente, capisco che la possibilità è remotissima, ma c'è questa possibilità giusto? Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

Seconda domanda, con la tecnologia odierna (o almeno quella conosciuta) dalla chiave pubblica non riesco a trovare la chiave privata, se ci provo con metodi di forza bruta impiego probabilmente ere geologiche anche disponendo di super computer. Con il prossimo possibile avvento dei computer quantistici e di possibilità di calcolo oggi impensabili tutto il sistema bitcoin potrebbe essere a rischio?







la premessa è giusta, se vuoi i dettagli matematici puoi cercare RSA e funzioni di hash su wikipedia o su google e leggere le slide di qualche corso universitario di sicurezza informatica (le chiavi negli esempi matematici sono due coppie di numeri, es: chiave pubblica (33,7) e chiave privata (33,3) )


1)la possibilità esiste, ma per essere accettato come standard dalla comunità informatica, la collisione della funzione di hash (così si chiama quando da due chiavi pubbliche viene generata la stessa chiave privata) dev'essere remotissima


2) si, potrebbe, ma la vulnerabilità verrebbe evidenziata a caratteri cubitali anche fuori dal mondo bitcoin, e si parlerà di eventualmente una "rottura" di SHA-256 (credo che bitcoin usi questa implementazione), visto che sha viene usato anche per altro e non solo per generare indirizzi bitcoin.
La rottura tuttavia non minerà l'intero protocollo, perché trovare una collisione su centinaia di miliardi di miliardi (e mi tengo basso) di tentativi non vuol dire che è stato trovato un "bug" nella funzione di hash, quindi probabile che anche in caso di funzione hash "craccata", i portafogli rimarranno sicuri,  il problema sarà quando la bruteforce sarà in grado di farlo in tempi ragionevoli....

Tuttavia si potrà implementare un wallet a SHA-512 ad esempio, e incentivare il passaggio a questa nuova generazione di wallets



Title: Re: Chiave pubblica e chiave privata
Post by: Ilsk on June 25, 2014, 09:51:24 PM
Un indirizzo è formato da un 1 + 33 caratteri casuali che possono essere lettere maiuscole, minuscole o numeri (26+26+10=62)

Quindi esistono 62^(33)=1.4*10^(59) indirizzi possibili.

Ora ipotizzando che una popolazione di 1000 miliardi di persone che generano ogni giorno 10'000 nuovi indirizzi a testa usi i bitcoin per 5 miliardi di anni la probabilità che vengano generati due indirizzi uguali almeno una volta è di circa una ogni 1'000'000'000'000'000'000'000'000'000'000

Spero di aver reso l'idea.


Title: Re: Chiave pubblica e chiave privata
Post by: Stemby on June 26, 2014, 10:50:47 PM
la vulnerabilità verrebbe evidenziata a caratteri cubitali anche fuori dal mondo bitcoin, e si parlerà di eventualmente una "rottura" di SHA-256 (credo che bitcoin usi questa implementazione), visto che sha viene usato anche per altro e non solo per generare indirizzi bitcoin.
SHA-256 è la funzione di hashing usata per il mining, che è una parte del protocollo bitcoin totalmente distinta dalla firma delle transazioni.

Per la generazione degli indirizzi bitcoin si usa l'ECDSA.

In realtà anche SHA-256, assieme ad un altro algoritmo di hashing (RIPEMD-160), è usato varie volte per passare dalla chiave pubblica all'indirizzo bitcoin finale come siamo soliti vederlo, ma si tratta di dettagli abbastanza secondari.

Ciao!


Title: Re: Chiave pubblica e chiave privata
Post by: carlob on July 01, 2014, 10:06:50 AM
Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

In teoria è remota in realtà non tanto, con questo programmino qui sotto,

http://gobittest.appspot.com/Address

io ho messo random chiavi private ed ho trovato un indirizzo esistente che aveva 4 btc, aveva perchè li ho presi,
(non è vero, magari :)), se vuoi provare metti 01 nella private ECDSA key ti darà questo indirizzo:
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm e provalo con la blockchain,
uno pensa l'eccezione fà la regola, ma se provi 0A trovi questo indirizzo valido:
1GDWJm5dPj6JTxF68WEVhicAS4gS3pvjo7 e anche questo aveva dei bitcoin dentro,
trovarne uno può essere un caso ma due come si spiega se si continua a dire che ci vogliono miliardi di anni,
io ci ho messo 10 minuti,

ciau


Title: Re: Chiave pubblica e chiave privata
Post by: Amph on July 01, 2014, 10:22:46 AM
con i computer quantistici sarebbero a rischio solo le chiavi pubbliche che sono a 128 bit non quelle private, i computer quantici è come se applicassero una radice di due nel calcolo, quindi per loro 128bit sono 64 e 256 diventano 128 ecc....e i 128 non si possono "bruteforzare"


Title: Re: Chiave pubblica e chiave privata
Post by: alexrossi on July 01, 2014, 10:23:31 AM
Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

In teoria è remota in realtà non tanto, con questo programmino qui sotto,

http://gobittest.appspot.com/Address

io ho messo random chiavi private ed ho trovato un indirizzo esistente che aveva 4 btc, aveva perchè li ho presi,
(non è vero, magari :)), se vuoi provare metti 01 nella private ECDSA key ti darà questo indirizzo:
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm e provalo con la blockchain,
uno pensa l'eccezione fà la regola, ma se provi 0A trovi questo indirizzo valido:
1GDWJm5dPj6JTxF68WEVhicAS4gS3pvjo7 e anche questo aveva dei bitcoin dentro,
trovarne uno può essere un caso ma due come si spiega se si continua a dire che ci vogliono miliardi di anni,
io ci ho messo 10 minuti,

ciau

e le marmotte impacchettano la cioccolata... Già che ci sono mi metto a cercare pure io


Title: Re: Chiave pubblica e chiave privata
Post by: Amph on July 01, 2014, 10:28:01 AM
Io potrei avere dal nulla la chiave privata di un indirizzo già esistente e magari con bitcoin sopra. Quando è remota questa possibilità?

In teoria è remota in realtà non tanto, con questo programmino qui sotto,

http://gobittest.appspot.com/Address

io ho messo random chiavi private ed ho trovato un indirizzo esistente che aveva 4 btc, aveva perchè li ho presi,
(non è vero, magari :)), se vuoi provare metti 01 nella private ECDSA key ti darà questo indirizzo:
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm e provalo con la blockchain,
uno pensa l'eccezione fà la regola, ma se provi 0A trovi questo indirizzo valido:
1GDWJm5dPj6JTxF68WEVhicAS4gS3pvjo7 e anche questo aveva dei bitcoin dentro,
trovarne uno può essere un caso ma due come si spiega se si continua a dire che ci vogliono miliardi di anni,
io ci ho messo 10 minuti,

ciau

1 è caso 2 è coincidenza 3 è premeditazione http://www.hwupgrade.it/forum/images_hwu/smilies/asd.gif


Title: Re: Chiave pubblica e chiave privata
Post by: Stemby on July 01, 2014, 10:32:32 AM
In teoria è remota in realtà non tanto, con questo programmino qui sotto,

http://gobittest.appspot.com/Address

io ho messo random chiavi private ed ho trovato un indirizzo esistente che aveva 4 btc, aveva perchè li ho presi,
(non è vero, magari :)), se vuoi provare metti 01 nella private ECDSA key ti darà questo indirizzo:
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm e provalo con la blockchain,
uno pensa l'eccezione fà la regola, ma se provi 0A trovi questo indirizzo valido:
1GDWJm5dPj6JTxF68WEVhicAS4gS3pvjo7 e anche questo aveva dei bitcoin dentro,
trovarne uno può essere un caso ma due come si spiega se si continua a dire che ci vogliono miliardi di anni,
io ci ho messo 10 minuti
Le chiavi private che hai testato non sono dei numeri casuali a 256 bit, bensì dei casi molto specifici: sono tutti numeri bassissimi, evidentemente usati a fini didattici e sperimentali (e rapinati nel giro di pochi secondi, se guardi bene in cronologia). La chiave numero 1 poi non parliamone...

Prova a generare numeri realmente casuali a 256 bit (64 caratteri esadecimali) e dedica 10 minuti di tentativi (ma anche un anno della tua vita o più, se preferisci): sono sicurissimo che non beccherai neppure un indirizzo bitcoin già utilizzato.


Title: Re: Chiave pubblica e chiave privata
Post by: carlob on July 01, 2014, 11:16:22 AM
Quindi sono stati creati apposta all'inizio dici, quello che mi sono chiesto è che quando si genera una chiave privata,
cosa di cui noi non possiamo avere il controllo, è sempre lunga il massimo cioè 64 caratteri come dici, o c'è un range che sò
fra 30 e 64,
capisco il sarcasmo ma è solo perchè sono piccolo e nero :),

ciau


Title: Re: Chiave pubblica e chiave privata
Post by: alexrossi on July 01, 2014, 11:29:59 AM
Quindi sono stati creati apposta all'inizio dici, quello che mi sono chiesto è che quando si genera una chiave privata,
cosa di cui noi non possiamo avere il controllo, è sempre lunga il massimo cioè 64 caratteri come dici, o c'è un range che sò
fra 30 e 64,
capisco il sarcasmo ma è solo perchè sono piccolo e nero :),

ciau

Non sono stati creati necessariamente all'inizio, sono semplicemente valori molto bassi che qualcuno ha voluto testare nella generazione di key: spero per lui che non abbia perso nulla
Che io sappia sì, la private key in base 58 è sempre lunga 64 caratteri


Title: Re: Chiave pubblica e chiave privata
Post by: carlob on July 01, 2014, 11:54:02 AM
Ecco 64 numeri casuali di chiave privata:
1111111111111111111111111111111111111111111111111111111111111111
genera l'indirizzo:
1MsHWS1BnwMc3tLE8G35UXsS58fKipzB7a
che ha avuto bitcoin fino a gennaio 2014, lo sò non sembrano numeri casuali perchè sono tutti 1,
ma se sono casuali sono casuali anche tutti 1 :),

ciau


Title: Re: Chiave pubblica e chiave privata
Post by: Stemby on July 01, 2014, 12:16:53 PM
Ecco 64 numeri casuali di chiave privata:
1111111111111111111111111111111111111111111111111111111111111111
genera l'indirizzo:
1MsHWS1BnwMc3tLE8G35UXsS58fKipzB7a
che ha avuto bitcoin fino a gennaio 2014, lo sò non sembrano numeri casuali perchè sono tutti 1,
ma se sono casuali sono casuali anche tutti 1 :)
Eh, no. "Tutti 1" è casuale se lo ottieni estraendolo con una funzione random, altrimenti è una tua scelta arbitraria. Personalmente propendo per la seconda opzione  ;)

Per estrarre un numero casuale, ti prendi un bel dado a 20 facce (http://it.wikipedia.org/wiki/Dado_(gioco)#Varianti_standard) (a 16 non esiste), lo tiri 64 volte e ti annoti su un foglietto i numeri usciti (trasformi 10 in A, 11 in B, [...], 15 in F, 16 in 0 e se esce un numero maggiore ritiri). Se non disponi di quel dado, tiri 256 volte una moneta (testa = 0, croce = 1).

Questo è un numero a 256 bit casuale.

[EDIT]
Scopro ora che esistono anche dadi esadecimali (https://www.google.it/search?q=hexadecimal+dice&source=lnms&tbm=isch&sa=X&ei=3HC2U7PWCq6M7Aay9IDoDA&ved=0CAgQ_AUoAQ&biw=1366&bih=680) già pronti.
[/EDIT]


Title: Re: Chiave pubblica e chiave privata
Post by: bitcoinplaza on July 01, 2014, 12:26:22 PM
https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

Quote
Since Bitcoin addresses are basically random numbers, it is possible, although extremely unlikely, for two people to independently generate the same address.

This is called a collision. If this happens, then both the original owner of the address and the colliding owner could spend money SENT TO THAT ADDRESS. It would NOT be possible for the colliding person to spend the original owner's entire wallet (or vice versa).

If you were to intentionally try to make a collision, it would currently take 2^107 times longer to generate a colliding Bitcoin address than to generate a block. As long as the signing and hashing algorithms remain cryptographically strong, it will likely always be more profitable to collect generations and transaction fees than to try to create collisions."


Title: Re: Chiave pubblica e chiave privata
Post by: TheBomber999 on July 01, 2014, 01:42:25 PM
Piccolo inciso da programmatore web.
NON utilizzate servizi del genere (http://gobittest.appspot.com/Address) con la vostra chiave privata.
Il sito sicuramente salverà i tentativi che state facendo...


Title: Re: Chiave pubblica e chiave privata
Post by: alexrossi on July 01, 2014, 08:31:45 PM
Piccolo inciso da programmatore web.
NON utilizzate servizi del genere (http://gobittest.appspot.com/Address) con la vostra chiave privata.
Il sito sicuramente salverà i tentativi che state facendo...

Ma infatti normalmente servizi del genere hanno una versione scaricabile .zip da eseguire su un computer offline, tipo bitaddress.


Title: Re: Chiave pubblica e chiave privata
Post by: Gicpiglio on July 04, 2014, 08:14:08 AM
MIO DIO

Ho schiacciato "Random" e mi ha generato questo indirizzo: 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Che HA CONTENUTO BTC!


Title: Re: Chiave pubblica e chiave privata
Post by: alexrossi on July 04, 2014, 08:19:18 AM
MIO DIO

Ho schiacciato "Random" e mi ha generato questo indirizzo: 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Che HA CONTENUTO BTC!

https://i.imgur.com/5G2DBIP.gif


Title: Re: Chiave pubblica e chiave privata
Post by: Gicpiglio on July 04, 2014, 09:01:55 AM
MIO DIO

Ho schiacciato "Random" e mi ha generato questo indirizzo: 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Che HA CONTENUTO BTC!

https://i.imgur.com/5G2DBIP.gif

È la mia reazione XD

Comunque veramente, non sono come funziona il Random di quel sito, ma mi ha dato le chiavi private!


Title: Re: Chiave pubblica e chiave privata
Post by: TheBomber999 on July 04, 2014, 09:19:31 AM
Cmq, ci vuole culo per ottenere un indirizzo BTC con BTC all'interno in quel momento.
Ma culo a livelli storici.
Bisogna avere meno culo a vincere al superenalotto probabilmente.