jbenet / jbenet/random-ideas

JRFC 31 - multikey

Open
#31 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
328
Forks
12
PR merge metrics
No merged PRs in 30d

Description

Following in line with multihash, multiaddr, multicodec, and so on, enter multikey.

In a conversation about [ipfs](https://github.com/jbenet/ipfs/) with @whyrusleeping and diffie, future-proofing the system came up. We noted the hashes used multihash. Then we discussed we need to do the same to keys -- in particular for avoiding catastrophe from an unexpected factoring breakthrough.[1]

Tentatively:

```

```

This works for both pub/private keys, as well as symmetric keys. (The algorithm code can signal whether the key is public or private, _say_ 0xc0 for rsa private key, and 0xc1 for corresponding public key)

[1] Another note is to carefully isolate the reliance on PKI, and design systems with transitions to stronger systems (e.g. post-quantum pki systems, like [this](http://eprint.iacr.org/2011/506.pdf)).

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or implementation entry points are named. Start by reviewing the multihash, multiaddr, and multicodec context, then examine the proposed varint algorithm, byte length, and key bytes layout. Done means reaching a settled multikey design that covers public, private, and symmetric keys and supports algorithm transitions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cryptography
Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.