Bitcoin Forum
May 01, 2024, 08:28:28 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: HandyDandy a tool to work with entropy  (Read 168 times)
Coding Enthusiast (OP)
Legendary
*
Offline Offline

Activity: 1039
Merit: 2783


Bitcoin and C♯ Enthusiast


View Profile WWW
November 27, 2021, 04:11:41 PM
Merited by Welsh (12), hugeblack (10), coinableS (8), dkbit98 (5), BlackHatCoiner (5), o_e_l_e_o (4), TheArchaeologist (4), ABCbits (3), PawGo (1)
 #1

Handy Dandy is a tool that helps visualize and work with data in different formats that are used in Bitcoin protocol such as private keys and mnemonics.

A potential use case is offline generation of private keys or mnemonics using a coin flip.
User selects what result they want to generate (eg. a 15-word BIP-39 mnemonic) by selecting the appropriate options on top of the window and the program automatically generates appropriate number of bits to be set. In this example it is 165 bits (160 bit entropy + 5 bit dynamically computed checksum).
Then the user has to flip a coin and set each bit. For example
Heads: 1
Tails: 0
Heads: 1
Heads: 1


As each bit is being set, the respective value is also printed as integer, hexadecimal and BIP-39 word.
After all bits were set the final result will be printed in the result TextBox at the bottom of the page and can be copied.



Source code and compiled binaries can be found here: https://github.com/Coding-Enthusiast/HandyDandy
This project is in beta. Please report any bugs you find here or on GitHub

If You found this tool helpful consider making a donation:
Legacy address: 1Q9swRQuwhTtjZZ2yguFWk7m7pszknkWyk
SegWit address: bc1q3n5t9gv40ayq68nwf0yth49dt5c799wpld376s

The idea for project was influenced by: https://bitcointalk.org/index.php?topic=5187401.0

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
1714595308
Hero Member
*
Offline Offline

Posts: 1714595308

View Profile Personal Message (Offline)

Ignore
1714595308
Reply with quote  #2

1714595308
Report to moderator
1714595308
Hero Member
*
Offline Offline

Posts: 1714595308

View Profile Personal Message (Offline)

Ignore
1714595308
Reply with quote  #2

1714595308
Report to moderator
1714595308
Hero Member
*
Offline Offline

Posts: 1714595308

View Profile Personal Message (Offline)

Ignore
1714595308
Reply with quote  #2

1714595308
Report to moderator
According to NIST and ECRYPT II, the cryptographic algorithms used in Bitcoin are expected to be strong until at least 2030. (After that, it will not be too difficult to transition to different algorithms.)
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
dkbit98
Legendary
*
Offline Offline

Activity: 2226
Merit: 7105



View Profile WWW
November 27, 2021, 07:59:44 PM
 #2

Interesting tool but how can I confirm it is really giving me true random results?
I tried generating few Private Keys and Mnemonic words but it always giving me number 1 (head)with one click, and I have to click again to get number 0 (tails).
My suggestion is to add optional function of ''drawing'' so I could generate private keys with holding mouse button and moving around fields.
This would be faster for generating than it is currently.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Coding Enthusiast (OP)
Legendary
*
Offline Offline

Activity: 1039
Merit: 2783


Bitcoin and C♯ Enthusiast


View Profile WWW
November 28, 2021, 05:44:51 AM
 #3

Interesting tool but how can I confirm it is really giving me true random results?
It is not producing the entropy, the user produces each bit by random (like by flipping a coin) and the program converts the bit-stream to whatever they need.

I tried generating few Private Keys and Mnemonic words but it always giving me number 1 (head)with one click, and I have to click again to get number 0 (tails).
That is how it is supposed to work. You flip your coin and if it came up heads you click the button once to set it to 1, if it came up tails you click it twice to set it to 0.

My suggestion is to add optional function of ''drawing'' so I could generate private keys with holding mouse button and moving around fields.
You mean something like what bitaddress.org does? I guess I could add a canvas and track mouse movement then combine it with a strong random entropy generated programmatically.

This would be faster for generating than it is currently.
Well, generating entropy by hand is slow. 128 to 256 bits is 128 to 256 coin flips. However I will add an option to use 6-16 sides die to reduce the effort.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
ABCbits
Legendary
*
Offline Offline

Activity: 2856
Merit: 7434


Crypto Swap Exchange


View Profile
November 28, 2021, 09:05:00 AM
Merited by Welsh (3), Coding Enthusiast (3), BlackHatCoiner (1)
 #4

Neat tool, but definitely need improvement. Here are few feedback,
1. I really don't want to press "left click" at least 128 times. Consider keyboard support or other way to reduce press amount (such as drawing which already suggested).
2. Add option to fill all "?" with 0 or 1.
3. Do not discard user progress when they switch between BinaryGrid and GroupedBinary.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
dkbit98
Legendary
*
Offline Offline

Activity: 2226
Merit: 7105



View Profile WWW
November 28, 2021, 06:25:04 PM
Merited by Coding Enthusiast (2), ABCbits (1)
 #5

You mean something like what bitaddress.org does? I guess I could add a canvas and track mouse movement then combine it with a strong random entropy generated programmatically.
Yeah like bitaddress or maybe something similar like MrFreeDragon VisualBTC program but with some improvements.

Well, generating entropy by hand is slow. 128 to 256 bits is 128 to 256 coin flips. However I will add an option to use 6-16 sides die to reduce the effort.
Yeah I know it's usually a slower process, and my suggestion should only be optional for people who want to speed things up just a bit.
Maybe you should also add some information that it's better to use program on offline computer for generating seed words for cold storage.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Coding Enthusiast (OP)
Legendary
*
Offline Offline

Activity: 1039
Merit: 2783


Bitcoin and C♯ Enthusiast


View Profile WWW
January 04, 2022, 11:44:23 AM
Merited by dkbit98 (1)
 #6

Sorry for a late reply, it's been challenging to find free time lately and I'm working on 5 projects in parallel which is an additional challenge. Thanks everyone for your feedback, I've released the second beta, v0.2.0.0 with the following changes:

  • Added a new input type with keyboard which captures keys pressed and treats all keys as 1 except 0, space and escape keys which are treated as 0.
  • There are 2 buttons that let you fill all bits with either 0 or 1.
  • The result or checksum are not longer dynamically computed. You have to click Finalize button to calculate checksum and get the final result.
  • Each view is now cached so even if the options are changed, the bits that are already set will not change
Yeah like bitaddress or maybe something similar like MrFreeDragon VisualBTC program but with some improvements.
While implementing this I experienced some bugs while capturing mouse event so this option will be postponed for next release.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
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!