, Bubble Babble
is a binary data encoding
designed by Antti Huima.
This encoding uses alternation of consonants
to encode binary data to pseudowords that can be pronounced more easily than arbitrary lists of hexadecimal
digits. While Bubble Babble is technically a binary encoding, it also acts as a 65,536-digit positional number system
with a one-to-one mapping from each five-character sequence to 16 bits of data.
Bubble babble also includes a checksum in its encoding to detect transmission errors, as well as markers for the start and end of a number string. Each two bytes in the input sequence results in the output of five characters and a dash.
The original specification for Bubble Babble lists these example test vector encodings. The strings are considered to be ASCII-encoded:
`' (empty string) `xexax'
According to the specification, each vowel in the output string conveys 0.58 bits of redundant information for every input bit. Therefore, a 1000-word string would have 4640 extra bits of checksum information to detect flipped bits and other data transmission errors.
- There may be situations where validated encryption keys are unavailable, and key verification depends entirely on the user comparing the key fingerprint with their recollection of that of the authentic key. If the fingerprint is shown in Bubble Babble encoding, it may be slightly more memorable than the hexadecimal equivalent. This is of course not ideal, but may be a preferable alternative to accepting a key without any checking at all.
- Double dabble, an unrelated algorithm with a similar name
- S/KEY uses a lookup table to encode 64-bit numbers as 6 English words
- PGP word list is another way of encoding binary values into pronounceable words, using a standardized list of 512 unique words
- Diceware has a way of encoding base 6 values into pronounceable words, using a standardized list of 7,776 unique words