Re: [openpgp] Deriving an OpenPGP secret key from a human readable seed

Michael Richardson <mcr@sandelman.ca> Tue, 15 October 2019 16:21 UTC

Return-Path: <mcr@sandelman.ca>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB1F512010E for <openpgp@ietfa.amsl.com>; Tue, 15 Oct 2019 09:21:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AJh6cBc6Rtdi for <openpgp@ietfa.amsl.com>; Tue, 15 Oct 2019 09:21:03 -0700 (PDT)
Received: from relay.sandelman.ca (relay.cooperix.net [176.58.120.209]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E68F4120033 for <openpgp@ietf.org>; Tue, 15 Oct 2019 09:21:02 -0700 (PDT)
Received: from dooku.sandelman.ca (214-137-20-31.ftth.glasoperator.nl [31.20.137.214]) by relay.sandelman.ca (Postfix) with ESMTPS id B87441F455; Tue, 15 Oct 2019 16:21:00 +0000 (UTC)
Received: by dooku.sandelman.ca (Postfix, from userid 179) id 8437BFD2; Tue, 15 Oct 2019 18:21:53 +0200 (CEST)
From: Michael Richardson <mcr@sandelman.ca>
To: Kai Engert <kaie@kuix.de>
cc: openpgp@ietf.org
In-reply-to: <5eb8774d-8d4f-63e3-29bc-53f3c8d21c51@kuix.de>
References: <5eb8774d-8d4f-63e3-29bc-53f3c8d21c51@kuix.de>
Comments: In-reply-to Kai Engert <kaie@kuix.de> message dated "Tue, 15 Oct 2019 14:16:31 +0200."
X-Mailer: MH-E 8.6; nmh 1.6; GNU Emacs 24.5.1
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha256"; protocol="application/pgp-signature"
Date: Tue, 15 Oct 2019 18:21:53 +0200
Message-ID: <23498.1571156513@dooku.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/N7A-GxOCJFkNqzw4TVAdMx24yjM>
Subject: Re: [openpgp] Deriving an OpenPGP secret key from a human readable seed
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Oct 2019 16:21:05 -0000

Kai Engert <kaie@kuix.de> wrote:
    > The high level idea is:

    > - key generation requires a source of entropy

    > - instead of using the entropy directly, the entropy could be used to
    > seed a CSPRNG (like HMAC_DRBG), which is then used to obtain the random
    > data that is needed for key generation.

PHB's MMM offers a similar mechanism.
Might as well have a single solution.

See draft-hallambaker-mesh-* and 
    https://mailarchive.ietf.org/arch/msg/mathmesh/GF1d5X4F0eqAk6x7T9qQu6khAIw

    > I see the primary purpose for this recovery mechanism as desaster
    > recovery: - ensure the recovered primary key can be used to decrypt an
    > archive of old data, like the encrypted emails in a sent folder - allow
    > the use of the recovered primary key to create a revocation statement

A secondary use is for keys that are generally kept offline.
Instead of bringing them back from the "cold storage", the key is just
renegerated each time from a printed piece of paper.   My original PGPv3
root@sandelman.ca went through five kinds of media (5.25" floppy, 
3.5" floppy, CDROM, DVD, USB key...)... 

-- 
]               Never tell me the odds!                 | ipv6 mesh networks [ 
]   Michael Richardson, Sandelman Software Works        | network architect  [ 
]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [