elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  shared secret en bitcoin
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: shared secret en bitcoin  (Leído 4,603 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
shared secret en bitcoin
« en: 27 Febrero 2022, 12:56 pm »

Acabo de publicar una pequeña herramienta (Prueba de concepto) para calcular un secreto compartido entre Alice y Bob utilizando su llaves de bitcoin.

sharedsecret

Alicia (Tu) quiere enviar un archivo cifrado a Bob (Otra persona) Alicia tiene su propia llave privada y ademas conoce la llave Publica de Bob

Alicia utiliza esta herramienta de para caluclar el secreto compartido entre ambos y utilizar ese mismo secreto como llave

LLaves de Alicia para el ejemplo:

Código:
Private key: 18f619c4d16057d362ddfce772f551d46a2390517698226cff6e5bf67ac4b324 (Desconocida para Bob y para todo el mundo)
Public key : 03af6e50db92ce378c29df0ed9a04d3431bc06762aa37ec3ab42af147083630596 (Publica)

Llaves de Bob para el ejemplo:
Código:
Private key: bc9e78f140a76cbdcdbecc5ab0ec38b4db710edfa40dea342712c8a695fe8b22 (Desconocida for Alicia y para todo el mundo)
Public key : 022c8191049a3f2816bc95077b91caed87900d0cd2af3757004531face9c3b6082 (Publica)

Alicia ejecuta el programa:

Código:
./sharedsecret
A: private key (hex): 18f619c4d16057d362ddfce772f551d46a2390517698226cff6e5bf67ac4b324
B: public key : 022c8191049a3f2816bc95077b91caed87900d0cd2af3757004531face9c3b6082
Secret between A and B: 22fb667f3bc1a2153e3cef75df0ce757a1c86051c07ace6b0c30dc87f3358511 (DON'T SHARE, THIS IS SECRET)

Bob ejecuta el programa

Código:
./sharedsecret
A: private key (hex): bc9e78f140a76cbdcdbecc5ab0ec38b4db710edfa40dea342712c8a695fe8b22
B: public key : 03af6e50db92ce378c29df0ed9a04d3431bc06762aa37ec3ab42af147083630596
Secret between A and B: 22fb667f3bc1a2153e3cef75df0ce757a1c86051c07ace6b0c30dc87f3358511 (DON'T SHARE, THIS IS SECRET)

Alicia y Bob obtienen el mismo secreto, compartiendo unicamente sus llaves PUBLICAS

Alice procede a cifrar el archivo secreto input.txt with the password 22fb667f3bc1a2153e3cef75df0ce757a1c86051c07ace6b0c30dc87f3358511

Código:
openssl aes-256-cbc -salt -pbkdf2 -in input.txt -out input.txt.enc

Bob decifra el archivo secreto utilizando el mismo password: 22fb667f3bc1a2153e3cef75df0ce757a1c86051c07ace6b0c30dc87f3358511:

Código:
openssl aes-256-cbc -d -salt -pbkdf2 -in input.txt.enc -out message.txt



Como funciona esto?

En criptografia asimetrica cada usuario tiene su llave privada y su llave publica.

En curvas elipticas la llave privada es un numero cualquiera, menor que el Orden de la Curva.

Existe un punto generado G(x,y) el cual es la base para todas las llaves publicas de los usurios.

Si tu llave privada es K, tu llave Publica es K*G

Es virtualmente imposible obtener o calcular la llave privada K utilizando la llave Publica K*G, esto es asi por que la multiplicacion en Curvas elipticas no es como la multiplicacion que conocemos.

Alicia tiene su llave Publica: A*G

Bob tiene su llave Publica: B*G

Alicia calcula el secreto compartido entre ella y Bob, multiplicando la llave publica de Bob por su propia Llave Privada obteniendo el nuevo valor: A*B*G
Bob calcula el secreto compartido entre el y Alicia, multiplicando la llave publica de Alicia por su propia Llave Privada obteniendo el  nuevo valor: B*A*G

En este caso A*B*G es igual a B*A*G


No es comun que se utilize de la forma que mostre, pero de igual forma funciona, para ejercicio entre personas que estan iniciando en la criptografia viene bastante bien, ademas personalmente creo que las criptomonedas estan llevando la criptografia mas cerca a las personas, aunque muchos no se den cuenta de ello.

Quires probarlo? genera un par de llaves de bitcoin con el programa keygen que tengo en ese mismo repositorio en github y enviame un adjunto cifrado con el secreto compartido, mi publickey de bitcoin esta en mi firma.

Saludos!


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: shared secret en bitcoin
« Respuesta #1 en: 27 Febrero 2022, 16:45 pm »

Esto se conoce como un sistema hibrido en criptografía y es la base de protocolos como TLS y PGP.

Ahora lo divertido es acertar que la llave pública de la persona con la que intercambiaste llaves es Bob realmente y no Mallory.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: shared secret en bitcoin
« Respuesta #2 en: 1 Marzo 2022, 16:47 pm »

Ahora lo divertido es acertar que la llave pública de la persona con la que intercambiaste llaves es Bob realmente y no Mallory.

Si se que esa es la parte paranoica de la criptografia, en el post en github coloque una nota para criptografos:

Citar
Note for cryptographers this is just a basic proof of concept, i know that the comunication channel can be compromised, there are mitm attacks, there is no authentication or integrity of the data etc...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Shared folders
Dudas Generales
sweetvane 3 3,839 Último mensaje 4 Marzo 2011, 12:15 pm
por IS0BUST3R
[Shared] Intranet Colegio
Desarrollo Web
Hadess_inf 4 5,732 Último mensaje 14 Enero 2013, 18:19 pm
por pammb
Secret, una red social con peligro
Noticias
wolfbcn 0 1,398 Último mensaje 17 Agosto 2014, 03:08 am
por wolfbcn
Bitcoin Cash duplica su valor mientras Bitcoin pierde un 20%: ¿Qué ocurre?
Noticias
wolfbcn 0 4,702 Último mensaje 13 Noviembre 2017, 14:19 pm
por wolfbcn
Ya puedes comprar Bitcoin Cash, Ethereum, Litecoin y Bitcoin en el mismo sitio
Noticias
wolfbcn 0 4,397 Último mensaje 20 Diciembre 2017, 14:22 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines