mainDistributed Privacy Guard - Summary

Membership Info
Group Admin:
1 active member

Group identification
Id: 11776
System Name: dkgpg
Name: Distributed Privacy Guard
Group Type: non-GNU software and documentation

Search in this Group


This group is not part of the GNU Project.

The Distributed Privacy Guard implements Distributed Key Generation (DKG) and Threshold Cryptography for OpenPGP. The generated public keys are compatible with the standard and thus can be used by any RFC4880-compliant application (e.g. GnuPG). The main purposes of this software are

  • distributing power among multiple parties,
  • eliminating single points of failure, and
  • increasing the difficulty of side-channel attacks on private key material.

Due to the interactiveness of the protocols a lot of messages between participating parties have to be exchanged in a secure way. We employ GNUnet, and in particular its mesh routed CADET service, to establish private and broadcast channels for this message exchange. A reliable broadcast protocol from LibTMCG is used as mechanism to achieve some validity, consistency, and totality in a most likely asynchronous communication environment. However, there are still some limitations due to the predefined timeout values. Such problems may be recognized by looking for timeout error messages on STDERR.

Please note that for building dkg-generate, dkg-sign, dkg-keysign, dkg-revoke, dkg-refresh, dkg-timestamp, and the interactive version of dkg-decrypt with GNUnet support the development files for a very recent GNUnet version (at least v0.11.x, which is when writing these lines still not yet released) must be present at configure-time resp. compile-time of DKGPG. However, as alternative to GNUnet a simple TCP/IP based service for message exchange is included. With torsocks and port-forwarding of a hidden service this allows running the interactive programs over the well-known Tor network.

The package depends on following free software libraries:

Registration Date: Sun 24 Sep 2017 12:45:44 PM UTC
License: GNU General Public License v2 or later
Development Status: 4 - Beta


Latest News rss feed
Distributed Privacy Guard 1.1.2 released
     posted by stamer, Sun 02 Jun 2019 10:53:22 AM UTC

This release adds a lot of features to some programs: two new options ("-K" and "-f") allow dkg-keysign to read the certification key from a keyring instead of a single key block file. Moreover, with option "-a" an interactive confirmation by the user is required for each signature. Passive support of V5 keys (cf. [...]

Distributed Privacy Guard 1.1.1 released
     posted by stamer, Sun 28 Apr 2019 11:43:52 AM UTC

Some small improvements have been applied for dkg-generate: Two new options ("-u" and "-N") allow providing the initial user ID and to disable the passphrase at command line. Moreover, since this release dkg-timestamp and dkg-timestamp-verify require a special key usage flag from a recent draft RFC 4880bis to select so-called [...]

Distributed Privacy Guard 1.1.0 released
     posted by stamer, Sun 09 Dec 2018 05:51:13 PM UTC

In this release AEAD support (cf. draft RFC 4880bis) has been added for dkg-encrypt and dkg-decrypt. Please note that it requires LibTMCG version >= 1.3.16 and at least libgcrypt version >= 1.7.0 for OCB mode. Moreover, if dkg-generate is called with the new option "--timestamping" then a corresponding key usage flag from draft RFC 4880bis is set. Other changes are marginal.

Distributed Privacy Guard 1.0.9 released
     posted by stamer, Mon 12 Nov 2018 04:37:44 PM UTC

This release improves the possibilities of DKGPG further. With the new programs dkg-adduid and dkg-revuid an user ID can be added and revoked, respectively. The program dkg-revoke now supports a human-readable reason for revocation (by option "-R") and dkg-decrypt verifies an included signature according to a given keyring (option "-k"). Last but not least, by the program dkg-addrevoker an external revocation key can be specified.

Quick Overview
 Memberlist (1 member)

Communication Tools

Back to the top

Powered by Savane 3.13-4b48.
Corresponding source code