Splitting PGP Keys in Symantec Encryption Desktop (PGP Encryption Desktop) for Windows
search cancel

Splitting PGP Keys in Symantec Encryption Desktop (PGP Encryption Desktop) for Windows

book

Article ID: 180242

calendar_today

Updated On:

Products

Desktop Email Encryption Drive Encryption Encryption Management Server Endpoint Encryption File Share Encryption Gateway Email Encryption PGP Command Line PGP Key Management Server PGP Key Mgmt Client Access and CLI API PGP SDK

Issue/Introduction

PGP Encryption Desktop (Symantec Encryption Desktop) has the ability to generate PGP keys for various purposes.  Some keys, such as Additional Decryption Keys, are highly sensitive and there is a need to ensure that not only one individual can use the key to decrypt content.  Splitting keys is the main idea behind this, so that in order to use the PGP Key Pair, more than one individual must be present to join the key for decryption.

This article will review how this is done. 

Resolution

WARNING:  Splitting keys is a one-time event and the shares can be rejoined only once.  If you split a key and rejoin the key, only the shares on the first split will work.  If you split a key for the second time, new shares (split a 2nd time) **must** be used.  Using shares from a previous splitting operation will not work. 
EPG-36076

For example, a key called "ADK Example Org" are split into 3 shares, "Share1-V1", "Share2-V1", and "Share3-V1".  Once these shares are used, they are to be considered no longer valid.  New shares must be created. 

A good way to know if shares have been used, is to keep your own internal records and track these for each rejoin operation.  It is highly recommended to record when these sensitive keys are rejoined, not only for auditing purposes, but to know when new shares need to be created and a new split completed. 

Taking a file hash of each share is also a good way to know which share goes to what split key.

For example, the "certutil" application can be used to derive the hash values for each of your split keys, such as the following example:

 

Note each of the values for the "SHA256" hash:

certutil -hashfile "User1 - 1 Share.shf" sha256
certutil -hashfile "User2 - 1 Share.shf" sha256
certutil -hashfile "User3 - 1 Share.shf" sha256
certutil -hashfile "User4 - 1 Share.shf" sha256
certutil -hashfile "User5 - 1 Share.shf" sha256

Each of these files can be recorded so that when you perform a join operation, you can note which HASH value is associated with the join.
The reason this is important is that the PGP Encryption Desktop client has no indication whether the share files are associated to a particular key. 

Also do this for your split key, which you can export into a .asc file and perform a hash operation on it:

 

certutil -hashfile ADKExample-split-key.asc sha256

 

Once you join a key, you will see the message below:

"The shared key has been rejoined. All old share files for this key are no longer valid".

Now you can make note in your records the hash values used, and that it was joined.  The shares can never be used again to re-join a key and are rendered unusable.

 

 

 

Any private key can be split into shares among multiple shareholders using a cryptographic process known as Blakely-Shamir key splitting. As mentioned, this technique is recommended for extremely high security keys.

When you split a key, the shares are saved as files either encrypted to the public key of a shareholder or encrypted conventionally if the shareholder has no public key. After the key has been split, any attempts to sign or decrypt with it will automatically attempt to rejoin the key.

To Split a PGP Key:
 

  1. Open PGP Desktop, click the PGP Keys Control box, and then click All Keys or My Private Keys in the Control box. The private keys on your keyring appear.
  2. Click on the keypair you want to split. The selected keypair highlights. In this example, the following key is being used:



  3. Select Keys > Share Key > Make Shared. The Shared PGP Key dialog box appears:  



  4. Add shareholders for the split key by dragging and dropping their keys in the Shareholder list.  In this list, we will add multiple users:

    User1, User2, User3, and User4

    So we will click the "Add" button where we can add User1 as one of the shared users:



    Once you click Add, type the name and then you will be prompted for a passphrase.  Only User1 knows the passphrase at this step:



    User1 will click OK and will now be one of the shared users:



    Click Add for three more users to the list:




     
  5. When all of the shareholders are listed, you can specify the number of key shares that are necessary to decrypt or sign with this key.
    In this example, we'll eave this as 2 users, meaning two of the above 4 users must be present to rejoin the key and use for decryption.

    Note: By default, each shareholder is responsible for one share. To increase the number of shares a shareholder controls, click the name in the shareholders list and then use the arrows to adjust the number of shares.

     
  6. Click Split Key. You are prompted to select a directory in which to store the shares.




  7. Select a location to store the key shares, then click OK. The Passphrase screen appears:



  8. Enter the passphrase for the key you want to split, then click OK. A confirmation dialog box is displayed:



    "The key you are sharing will no longer be able to decrypt or sign without rejoining the required shares.  Are you sure you want to do this?"

    Click Yes to split the key. The key is split and the shares are saved in the location you specified. Each key share is saved with the shareholders name as the file name and an SHF extension:




     

  9. Distribute the key shares to the owners, then securely remove the local copies. Once a key is split among multiple shareholders, attempting to sign or decrypt with it will cause PGP Encryption Desktop to automatically attempt to rejoin the key.


    Now if you open PGP Encryption Desktop to review the key, the icon will have a special overlay icon indicating the key is now split:
  10. It is possible to encrypt to split keys, but in order to decrypt, you must join the key:






  11. Now when you try to decrypt the file encrypted to these split keys, as long as you have the Split key in your keyring, you'll receive the pop-up listed here:



    If you have only the public portion of the K



     Also, if you try to join the key, you will see the option is grayed out:



    Important Note: Make sure you export the keypair of the HighSecurityKey and also back that up, otherwise, the key will not be able to be used!

    To export the keypair, right-click the key, and select "Include Private Key(s)":




    Also save this file somewhere safe!

    Now if you need to rejoin the key, you can do so with the following article:

    180243 - HOW TO: Rejoin Keys in PGP Desktop 10 for Windows

  12.