ietf-openpgp
[Top] [All Lists]

[openpgp] Fingerprint, Base32 or Base32C?

2015-04-27 13:10:12
I would like opinions on whether we should put a running checksum on
the fingerprint encoding or not.

The simplest encoding of a fingerprint is to take the BASE32 encoding,
truncate to the first n characters and group the result into sets of
five digits (according to the 7-2 rule).

Since each character encodes 5 bits and we have an 8 bit version ID,
we have 92 active bits in the following fingerprint:

xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

The problem typing this sort of code in by hand is that it is a bit
error prone. If a mistake is made we don't know where.

For a modest increase in complexity, we can add a running checksum at
the cost of one bit per block.

Con: The above fingerprint with five chunks only gives 87 active bits
Con: While we can chain the checksums to give a pretty robust check on
the first block, we only have a small chance of detecting an error in
the last.

Pro: Easier for the user
Pro: Since it is easier, a six chunk block might be acceptable giving
111 active bits.

Coding Base32C is if anything a bit easier than Base32 since each 5
character chunk is now 24 active bits. We consume bits in increments
of 8 bytes.

If we want to make things really robust, we probably want to add in a
checksum character at the end, either in addition to per block
checksums or as an alternative:

xxxxx-xxxxx-xxxxx-xxxxx-xxxxx c

c = (Sum (x_i)) (mod 5)

_______________________________________________
openpgp mailing list
openpgp(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/openpgp

<Prev in Thread] Current Thread [Next in Thread>