Import upstream version 0.0~git20170413.0+git20181203.1.bc7e13c
Debian Janitor
1 year, 4 months ago
0 | 0 | # entropy-mnemonics |
1 | 1 | |
2 | [![Build Status](https://travis-ci.org/NebulousLabs/entropy-mnemonics.svg?branch=master)](https://travis-ci.org/NebulousLabs/entropy-mnemonics) | |
3 | [![Documentation](https://img.shields.io/badge/docs-godoc-blue.svg)](https://godoc.org/github.com/NebulousLabs/entropy-mnemonics) | |
4 | ||
5 | mnemonics is a golang package that converts byte slices into human-friendly | |
6 | phrases. The primary purpose is to assist with the generation of | |
7 | cryptographically secure passwords. The threshold for a cryptographically | |
8 | secure password is between 128 and 256 bits, which when converted to base64 is | |
9 | 22-43 random characters. Random characters are both difficult to remember and | |
10 | subject to error when spoken or written down; slurring or sloppy handwriting | |
11 | can make it difficult to recover a password. | |
12 | ||
13 | These considerations may seem strange to those who use password managers; why | |
14 | write down the password at all? The answer is: healthy paranoia. Retaining a | |
15 | physical copy of a password protects the user from disk failure and malware. | |
16 | ||
17 | mnemonics solves these problems by converting byte slices into human-intelligible | |
18 | phrases. Take the following 128 bit example: | |
19 | ||
20 | ``` | |
21 | Hex: a26a4821e36c7f7dccaa5484c080cefa | |
22 | Base64: ompIIeNsf33MqlSEwIDO+g== | |
23 | Mnemonic: austere sniff aching hiding pact damp focus tacit timber pram left wonders | |
24 | ``` | |
25 | ||
26 | Though more verbose, the mnemonic phrase is less prone to human transcription errors. | |
27 | ||
28 | The words are chosen from a dictionary of size 1626, such that a 12-word phrase | |
29 | corresponds to almost exactly 128 bits of entropy. Note that only the first few | |
30 | characters of each word need be unique; for the English dictionary, 3 characters | |
31 | are sufficient. This means that passphrases can be altered to make them more | |
32 | understandable or more easily memorized. For example, the phrase "austere sniff aching" | |
33 | could be changed to "austere sniff achoo" and the phrase would still decode correctly. | |
34 | ||
35 | Full UTF-8 support is available for dictionaries, including input normalization | |
36 | for inputs with [canonical equivalence](https://en.wikipedia.org/wiki/Unicode_equivalence). | |
37 | ||
38 | ### Supported Dictionaries ### | |
39 | ||
40 | + English (prefix size: 3) | |
41 | + German (prefix size: 4) | |
42 | + Japanese (prefix size: 3) | |
2 | This repository has moved to [GitLab](https://gitlab.com/NebulousLabs/entropy-mnemonics). |