Post
Topic
Board Development & Technical Discussion
Re: Encryption algorithm for wallet seed using customized words
by
AdamLLL
on 13/04/2023, 07:07:15 UTC
Quote
7. Switch word which the user choose in the word list with the word which the index refer to. And get a new word list file.
If you want to end up storing the result digitally then there is no point in this step (and the steps leading to this) because the main purpose of encoding the result as a set of words is to make it easy for the user to write down something they see on their screens with minimal risk of mistakes.

This brings up another problem with your algorithm. Having a large word list means in that list there are words that ought to look similar (act, apt, aft,...) which means the risk of typos when user writes it down is high and the reason for using a word list is not there anymore.

We can create a simple off-line GUI for user. When they write the words, the GUI will suggest the words in the word list using prefix match. They need to make sure the words they write. And yes, when they forget the phase(for example, actor or actors), they need to try several times to get the seed.

Quote
1. Get the wallet seed which is 128 bits.
Another problem is the fact that you limited this algorithm to 128-bit entropy/seed whereas BIP39 entropies can be from 128 to 256 bits.

And biggest problem of all is that this is not exactly a cryptographically strong encryption algorithm. A better method would have been to use an actual encryption algorithm like AES to actually encrypt the entropy/seed and then encode that result however you liked and then stored that instead.

AES is a safe algorithm, but store the 128 bits private key is a difficult thing. My aim is to keep it as safe as AES, but user can memorize the password easily.