A reasonable way to achieve a long term backup of OpenPGP (GnuPG, PGP, etc) keys is to print them out on paper. Due to metadata and redundancy, OpenPGP secret keys are significantly larger than just the "secret bits". In fact, the secret key contains a complete copy of the public key. Since the public key generally doesn't need to be backed up in this way (most people have many copies of it on various keyservers, Web pages, etc), only extracting the secret parts can be a real advantage. Paperkey extracts just those secret bytes and prints them. To reconstruct, you re-enter those bytes (whether by hand or via OCR), and paperkey can use them to transform your existing public key into a secret key.
| Tags | Security Cryptography |
|---|---|
| Licenses | GPLv2 |
| Operating Systems | Mac OS X Windows Windows Cygwin OS Independent POSIX Unix |
| Implementation | C |
Recent releases


Release Notes: This release adds support for OpenPGP elliptic curve keys (ECDH and ECDSA) as specified in RFC 6637. It uses minimal OpenPGP packet encoding. This does not affect functionality, but makes it more likely that a given key will match byte-for-byte the same key after running through paperkey.


Release Notes: Output files are now generated with more restrictive permissions. Minor documentation changes were made. gnulib was refreshed.


Release Notes: A minor bugfix for Windows platforms. The instructions on how to restore a key without the paperkey program are a bit clearer.


Release Notes: Minor documentation and build changes were made. The program can now be cross compiled for Win32. A gnulib refresh was done.


Release Notes: The file format is now included as part of the base16 output, as there is no guarantee that this program will be on-hand when a reconstruction is necessary. The format can also be displayed via the --file-format command. Some bugfixes (actually to gnulib, but relevant here as well) have been made to the SHA-1 code on platforms that require aligned access. A new --comment option adds comments to the base16 output.