To Remember a Private Key

Public key crypto deals in large numbers which are conceptually “remembered” by parties holding those keys. In practice these numbers are so large that probably no one actually remembers their key but instead keeps the key in a computer protected with a pass phrase. Elliptic crypto keys are smaller but still scarcely memorable. Here is a scheme to remember about 100 bits of random information from preexisting memories instead of having to form new memories. If these memories are very likely to be private then the algorithm may produce a private key that is sufficiently secret. What ever your private noise, here is how to use it to generate a private RSA key.

To produce a 1024 bits RSA private key requires the prospective owner to produce and remember information (entropy) of around 100 bits. If your noise is text in some natural language, append your Social Security Number, not because it is a good secret but because it thwarts dictionary attacks. This information is hashed to produce numbers A1 and A2 each of 512 bits and B1 and B2 each of perhaps 20 bits. Bi is incremented until it is relatively prime to Ai. The two arithmetic sequences, Ai + Bi*ji, are each searched for primes. (See routine ‘scan’ Here.) The search results in values for ji, each about 10 bits long. This produces the private key from which the public key may be derived. If the new owner is willing and able to remember j0 coded conveniently somehow, then with the following

the private key can be reproduced in milliseconds. Without the j0, minutes will be required for subsequent retrieval of the private key.

A brute force attack on the key must presumably search the space of hash values, or search some statistically appropriate space of natural language. If the owner has indeed provided adequate entropy this will require 2100 * (several seconds) of normal computer time by either method.

There is no direct analog to remember public keys, but they need less protection. Remembering part of the public key’s fingerprint serves much of the purpose.

Advantages:

Disadvantages:
Some progress