3 ms·
On a related note, I've been experimenting with using a simple word list (like the eff diceware list) to generate strings of words encoding data. Trickiest part
by adzm 6y ago
On a related note, I've been experimenting with using a simple word list (like the eff diceware list) to generate strings of words encoding data. Trickiest part is figuring out how to encode padding, and the eventual size of the word list, and how complicated the final solution should be (eg using word lists that are not even binary numbers and leftover bits and all that). The diceware word list is nice since the words are not ambiguous and don't have homophones.
I assumed there would be existing implementations of something similar but have not found one that fits criteria other than some that use very small word lists. Diceware has 7776 words and pushing that to 8192 should be feasible and is a bit easier to work with.
- shoghicp 6y agoBIP-39, uses 2048 words, and can all be distinguished from each other using the first four characters of each word. This is used to encode raw binary entropy, but adapting it to arbitrary amounts of data is straightforward. For padding I would suggest either pre-encoding length at the start or using classic block cipher padding (https://en.wikipedia.org/wiki/Padding_(cryptography) https://en.wikipedia.org/wiki/Padding_(cryptography) ) See for BIP-39, wordlists under a folder https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki https://github.com/bitcoin/bips/blob/master/bip-0039.mediawi...
- adzm 6y agoThanks for the reference. This is pretty much what I'd be going for!
- themk 6y agoMany years ago i created https://github.com/luke-clifton/memorable-bits https://github.com/luke-clifton/memorable-bits (Also on hackage [0] but readme is missing) It let's you define a pattern for generating "sentences" from data. It deals with padding, lets you join word lists, or use multiple word lists in a single pattern. Word lists can be any power of 2 long, and the library comes with a few different word lists. [0] https://hackage.haskell.org/package/memorable-bits https://hackage.haskell.org/package/memorable-bits