Author

Topic: Giveaway de fuerza bruta (0.001 BTC) (Read 263 times)

legendary
Activity: 3346
Merit: 3125
April 25, 2020, 09:41:54 AM
#14
Con el paso de las horas, el problema base se ha ido simplificando mucho a golpe de resoluciones parciales. No obstante, me pregunto cómo lo abordarías en el escenario inicial de las 18! combinaciones.

Es decir, fuera del plano teórico (que lo tengo claro), en la práctica cómo habríais abordado la cuestión (desarrollo propio, herramientas tipo Brainflayer o similares, etc.), y qué expectativas de máquina se precisaría para dar con algo en algún momento de nuestra vida.

Es posible que el volumen de las 18! combinaciones no sea algo que sea factible abordar en la práctica con expectativas realistas, por lo que quedaría la cuestión de qué volumen es abordable, y en qué condiciones (de máquina, etc.). Las respuestas pueden quedar desiertas …



Buen día Ddmr... tengo que aceptar que al principio era imposible sin una computadora realmente potente. Y fue mi error, por que cuando quise calcular las posible combinaciones tuve un error de dedo y escribí 8! en vez de 18!, y al ver que 8! es 40,320 lo tomé como factible. Fue por esto que liberé muchas palabras del acertijo para que todos puedan con el.

Para resolverlo personalmente hubiera hecho los siguientes pasos:

1.- Usar crunch para generar todas las combinaciones posibles.
2.- Tomamos la lista de posibles combinaciones para después procesarla con un script en python de brain wallet.

Fuentes
http://manpages.ubuntu.com/manpages/bionic/man1/crunch.1.html
https://github.com/arzzen/python-simple-brainwallet

Y ya con eso Smiley

Creo que si el premio fuera de 1btc, encontraría la forma de abordar el problema, tal vez con una granja de tarjetas de video. Wink
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
April 25, 2020, 06:17:24 AM
#13
Con el paso de las horas, el problema base se ha ido simplificando mucho a golpe de resoluciones parciales. No obstante, me pregunto cómo lo abordarías en el escenario inicial de las 18! combinaciones.

Es decir, fuera del plano teórico (que lo tengo claro), en la práctica cómo habríais abordado la cuestión (desarrollo propio, herramientas tipo Brainflayer o similares, etc.), y qué expectativas de máquina se precisaría para dar con algo en algún momento de nuestra vida.

Es posible que el volumen de las 18! combinaciones no sea algo que sea factible abordar en la práctica con expectativas realistas, por lo que quedaría la cuestión de qué volumen es abordable, y en qué condiciones (de máquina, etc.). Las respuestas pueden quedar desiertas …
copper member
Activity: 1652
Merit: 1325
I'm sometimes known as "miniadmin"
April 25, 2020, 04:31:38 AM
#12
te sugiero hacer un gasto doble con mas fees para que se confirmen pronto tus monedas Smiley

Pues no ha llegado a hacer falta, y me ha sorprendido bastante.

Dejo ahora si el código entero de la frase

Code:
bonita hispana de se trata que es calidad bitcoin sino cantidad de comunidad habla de de no mi

En realidad, cualquiera con un poco de arte podía haber sacado el post original, ya que se guardan automáticametne
legendary
Activity: 3346
Merit: 3125
April 24, 2020, 02:18:00 PM
#11
----

Yay! Ahora si! Meter menos de 60 combinaciones a mano ha sido bastante más sencillo que 6000

dejo una dirección curiosa que me he encontrado por el camino también:

Quote
1FuckSVbkFEdtLUKAWJnKK8SBNEg1jcbkA

dejo la frase final completa....

Edit: la dejo cuando se confirme la tx, que se me olvida el replace by fee.....

Otro edit: Se ve que cuando hago las cosas dormido no me entero de lo que estoy haciendo..... 2 direcciones de legacy (la brainwallet y la hot wallet que tengo para inputs pequeñas) y no me doy cuenta de que tengo predeterminado 1satoshi/byte de comision...

1Fucks... jajaja que buena addy te encontraste en el camino.

Muchas felicidades por ser el ganador, se ve que te divertiste resolviendo el acertijo y de eso se trataba.

La buena noticia es que estás en la seccion de español y dudo que alguien vaya a tomar tu premio con un Double spend, la mala es que no sabemos cuando se confirmará tu transaccion, te sugiero hacer un gasto doble con mas fees para que se confirmen pronto tus monedas Smiley
copper member
Activity: 1652
Merit: 1325
I'm sometimes known as "miniadmin"
April 24, 2020, 05:00:30 AM
#10
----

Yay! Ahora si! Meter menos de 60 combinaciones a mano ha sido bastante más sencillo que 6000

dejo una dirección curiosa que me he encontrado por el camino también:

Quote
1FuckSVbkFEdtLUKAWJnKK8SBNEg1jcbkA

dejo la frase final completa....

Edit: la dejo cuando se confirme la tx, que se me olvida el replace by fee.....

Otro edit: Se ve que cuando hago las cosas dormido no me entero de lo que estoy haciendo..... 2 direcciones de legacy (la brainwallet y la hot wallet que tengo para inputs pequeñas) y no me doy cuenta de que tengo predeterminado 1satoshi/byte de comision...
legendary
Activity: 3346
Merit: 3125
April 24, 2020, 12:51:52 AM
#9
Ya que nadie ha resulto el problema les daré otras 3 palabras.

Las primeras 13 palabras en orden son:

Quote
bonita hispana de se trata que es calidad bitcoin sino cantidad de comunidad

Espero que con esto lo puedan resolver antes del domingo. Buena suerte!
legendary
Activity: 3346
Merit: 3125
April 22, 2020, 01:15:59 PM
#8
<...>
Tienes razón. Si se usase como entrada al proceso de hackeo un fichero con las 18! combinaciones (ahora 8!), hay frase repetidas por la presencia de 4 términos "de", lo cual reduce la combinatoria al tratarse de permutaciones con repetición (en lugar de sin).

PR (permutaciones con repetición)= n! / (n1!*n2!* … *nm!)
Donde:
-     n es el número de términos (18).
-    n1 .. nm representa el número de repeticiones de cada término.

Quedaría pues:

18! / 4! (el resto de los multiplicandos del denominador se repite 1 sola vez cada uno, y multiplican por uno el denominador-> 1!=1) = 2,66766E+14 (266.766.000.000.000).

Es un ahorro importante en combinaciones teóricas.

En la práctica, para resolver el caso usando fuerza bruta, tengo dudas de si ciertos algoritmos serían capaces de llevar la reducción a la práctica. Por ejemplo, si para insertar un registro resultante de una combinación, sobre una tabla temporal, has de validar si ya está previamente creado, el proceso se ralentiza enormemente (y no digamos select distinct de la tabla resultante para crear la tabla final más reducida).

Quizás los procesos que trabajan sobre memoria pura y dura (sin usar disco) puedan manejarlo de manera que la reducción de la combinatoria (con comprobaciones sobre lo ya generado) sea más eficiente que generar y probar todas las combinaciones. Dependerá mucho del hardware usado supongo.

Teniendo esto presente, las 8! combinaciones pendientes se convierten realmente en 8!/3!= 6.720 combinaciones pendientes distintas ...


Gracias por el curso de números factoriales  Grin tenia un poco oxidado ese tema pero me da gusto recordarlo. 6720 combinaciones se puedes verificar incluso a mano con la merecida paciencia... Incluso se puede hacer una lista de las 40,000 en un archivo y con un comando filtra las repetidas:

Code:
cat lista.txt | sort -u > newList.txt
copper member
Activity: 1652
Merit: 1325
I'm sometimes known as "miniadmin"
April 22, 2020, 01:05:18 PM
#7
---

Quiero pensar que como realmente no tengo ni idea de software, mi mente esta menos limitada de los que tienen, porque las burradas que se me ocurren no pasan por un filtro de realismo. Dicho esto, yo plantearía el problema de la siguiente manera:

1- Con un programita, meterle las 18 palabras y que nos vomite todas las combinaciones posibles, digamos que a un block de notas
2- Paralelamente, otro programita va escaneando en busca de duplicados y cargandoselos
3- Al finalizar, o tambien paralelamente (aunque aqui ya tiene que ser un cacho hardware potente para hacer todo a la vez cero), ir comparando uno por uno los resultados de pubkey que nos da cada combinacion con el pubkey target que tenemos. Cuando se encuentre, nos indica cual es la frase, y hacemos un bonito sweep de la llave privada

Dicho esto, 6720 y bajando....




Gracias por el curso de números factoriales  Grin tenia un poco oxidado ese tema pero me da gusto recordarlo. 6720 combinaciones se puedes verificar incluso a mano con la merecida paciencia... Incluso se puede hacer una lista de las 40,000 en un archivo y con un comando filtra las repetidas:

Code:
cat lista.txt | sort -u > newList.txt

Pues se ve que mi idea descabellada no lo era tanto, je
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
April 22, 2020, 12:14:26 PM
#6
<...>
Tienes razón. Si se usase como entrada al proceso de hackeo un fichero con las 18! combinaciones (ahora 8!), hay frase repetidas por la presencia de 4 términos "de", lo cual reduce la combinatoria al tratarse de permutaciones con repetición (en lugar de sin).

PR (permutaciones con repetición)= n! / (n1!*n2!* … *nm!)
Donde:
-     n es el número de términos (18).
-    n1 .. nm representa el número de repeticiones de cada término.

Quedaría pues:

18! / 4! (el resto de los multiplicandos del denominador se repite 1 sola vez cada uno, y multiplican por uno el denominador-> 1!=1) = 2,66766E+14 (266.766.000.000.000).

Es un ahorro importante en combinaciones teóricas.

En la práctica, para resolver el caso usando fuerza bruta, tengo dudas de si ciertos algoritmos serían capaces de llevar la reducción a la práctica. Por ejemplo, si para insertar un registro resultante de una combinación, sobre una tabla temporal, has de validar si ya está previamente creado, el proceso se ralentiza enormemente (y no digamos select distinct de la tabla resultante para crear la tabla final más reducida).

Quizás los procesos que trabajan sobre memoria pura y dura (sin usar disco) puedan manejarlo de manera que la reducción de la combinatoria (con comprobaciones sobre lo ya generado) sea más eficiente que generar y probar todas las combinaciones. Dependerá mucho del hardware usado supongo.

Teniendo esto presente, las 8! combinaciones pendientes se convierten realmente en 8!/3!= 6.720 combinaciones pendientes distintas ...
copper member
Activity: 1652
Merit: 1325
I'm sometimes known as "miniadmin"
April 22, 2020, 11:41:27 AM
#5
Diría que no. Las palabras se pueden (y deben) repetir en passphrase. No podemos quitar ninguna combinación, pues todas han de tener las 18 palabras (en el orden que sea).

Pero habría que quitar las que la palabra repetida está en la misma posicion en todas; dentro ejemplo


Si asignamos un número a cada palabra tenemos

Code:
que bonita es mi comunidad de habla hispana de bitcoin no se trata de cantidad sino de calidad
1      2       3   4   5               6   7        8         9    10    11 12 13   14     15      16    17  18

La frase aleatoria

Code:
se bitcoin de hispana habla comunidad sino es que de calidad trata mi cantidad de no bonita de
12   10     6     8          7         5            16 3   1     17  18     13     4   15         14 11   2      9

Es la misma que

Code:
se bitcoin de hispana habla comunidad sino es que de calidad trata mi cantidad de no bonita de
12   10     9     8          7         5            16 3   1     6     18     13     4   15         14 11   2      17

Pero todas las combinaciones de las palabras repetidas desaparecen, al ser la misma. Se que me explico tremendamente mal, pero espero que el ejemplo ayude a aclarar ( ya veo que los números estan un poco descuadrados, pero creo que se interpreta bien)
legendary
Activity: 3346
Merit: 3125
April 22, 2020, 11:33:05 AM
#4
Entiendo que hay 18! combinaciones potenciales para dar con la passphrase; es decir

640.237.3705.728.000 (o 6.402373705728E+15), y luego hay que probarlas … a ver quién lo saca …

Buena observacion colega, solo por eso les dare las primeras 10 palabras en el orden correcto para que ustedes adivinene las ultimas 8... un 8! se me hace justo, asi serian 40000 posibilidades aprox:

Primeras 10 palabras en orden:

Quote
bonita hispana de se trata que es calidad bitcoin sino

Espero que con esto puedan resolverlo, sino liberare mas palabras a futuro.

Y con respecto a la pregunta de Csmiami. La clave es descomprimida.

Suerte!
copper member
Activity: 1652
Merit: 1325
I'm sometimes known as "miniadmin"
April 22, 2020, 10:20:50 AM
#3
Entiendo que hay 18! combinaciones potenciales para dar con la passphrase; es decir

En realidad menos combinaciones, ya que al repetirse algunas palabras, se reduce el numero de posibilidades. Eso no quita que sean una burrada de ellas.
Tambien tengo que decir que haciendo un poco el chorra y probando a mano, he encontrado ya 2 19n..... pero mi gozo en un pozo Sad Seguire probando en ratos que me aburra

Lo que si que estaria bien es saber si es la clave publica comprimida o no comprimida
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
April 22, 2020, 09:50:41 AM
#2
Entiendo que hay 18! combinaciones potenciales para dar con la passphrase; es decir

640.237.3705.728.000 (o 6.402373705728E+15), y luego hay que probarlas … a ver quién lo saca … claro que la idea no es ir uno a uno probando todas las combinaciones, sino usar una herramienta tipo Brainflayer o parecido.

Aún así, suponiendo 50M de pruebas por segundo (que ya es suponer), supondría 4 años en el peor de los casos (2 en un término medio) ¿no?

P.D. No me voy a instalar nada para probarlo, al haber leído de la existencia de crackers malignos.


En realidad menos combinaciones, ya que al repetirse algunas palabras, se reduce el numero de posibilidades. <...>
Diría que no. Las palabras se pueden (y deben) repetir en passphrase. No podemos quitar ninguna combinación, pues todas han de tener las 18 palabras (en el orden que sea).
legendary
Activity: 3346
Merit: 3125
April 21, 2020, 02:45:56 PM
#1
Este es un giveaway de brain wallet... He tomado la frase:

Quote
que bonita es mi comunidad de habla hispana de bitcoin no se trata de cantidad sino de calidad

Y la he desordenado con bash:

Code:
echo "que bonita es mi comunidad de habla hispana de bitcoin no se trata de cantidad sino de calidad" | tr " " "\n" | shuf | tr "\n" " "

Después he tomado la nueva frase para crear una brainwallet: https://brainwalletx.github.io/

Y he aquí la transacción:

Addy: 19n2bLAKUqyCj8yn7LnJekgeqtC71DoP7A

https://blockchair.com/bitcoin/transaction/0af0caec7d5926be489779c99063178613d337aa70ce44a55515515eb4fa121f

Diviértanse el primero en encontrar la llave puede tomar los 0.001 bitcoins!
Jump to: