[curves] Pseudo-word length patterns for curve-sized base32 strings

Robert Ransom rransom.8774 at gmail.com
Wed Jan 29 02:43:27 PST 2014

It can be difficult to copy or read (e.g. over a telephone) a long
sequence of characters, even if the sequence is punctuated into
several chunks of uniform length.

Page 4 of <https://www.cl.cam.ac.uk/~rja14/Papers/prepay-meters.pdf>
reports that breaking a 20-character sequence non-uniformly across two
lines reduced users' copying error rate significantly.  Unfortunately,
not every application can rely on line breaks to improve readability.

I have experimented with using pseudo-words of non-uniform length on a
single line; varying chunk lengths does seem to improve my ability to
read and copy strings.  Here are some chunk-size sequences that I have
found effective for a few sizes of base32 strings, in roughly the
order that I produced them:

160 bits (32 chars): [6,5,4,3,7,2,5]

255 bits (51 chars): [6,5,4,3,7,2,5,4,7,3,5]

205 bits (41 chars): [6,5,4,3,7,2,5,2,4,3]

195 bits (39 chars): [6,5,4,3,7,2,5,4,3]

130 bits (26 chars): [5,3,2,7,5,4]

160-bit and 130-bit sequences may be useful for symmetric crypto
(e.g. file encryption passwords, keys for PSK-style authentication,
hashes).  195-bit, 205-bit, and 255-bit sequences are roughly the
right size for group elements in EC groups over 195-bit, 206-bit, and
255-bit coordinate fields.

Robert Ransom

More information about the Curves mailing list