liveBook · Manning

Key generation

As explained in Real-World Cryptography

An algorithm that generates cryptographic key material, such as a public-key and private-key pair.

A key generation algorithm creates cryptographic key material before communication begins. In asymmetric encryption, it produces a public key that may be shared and a private key that must remain secret; a security parameter controls key strength. section 6.1

A typical key-generation role looks like this:

Alice and Bob establish a secret

Alice and Bob each generate a key pair, exchange public keys, and combine the peer's public key with their own private key. Both obtain the same shared secret, while a passive observer cannot reproduce it. Without authentication, however, an active man-in-the-middle can impersonate both parties. section 5.1

Figure 6.2 To use asymmetric encryption, you first need to generate a key pair. Depending on the security parameters you provide, you can generate keys of different security strengths.

Shows how the chosen security parameter affects the generated key pair's security strength. section 6.1

How Real-World Cryptography covers it

How deep it goes
Defines inputs and outputs and shows protocol roles, but defers concrete generation algorithms and implementation details.
Examples
Uses Alice-and-Bob encryption, signature, and key-exchange scenarios, including passive observation and active man-in-the-middle attacks.
What it assumes
Assumes basic encryption concepts while building the public/private-key distinction from the problem of sharing one secret with everyone.
What you can do after
Evaluate how a cryptographic protocol creates, shares, and uses related public and private keys.
How it connects
Connects public keys, private keys, asymmetric encryption, digital signatures, key exchange, shared secrets, and security parameters.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Real-World Cryptography. The section links point to the parts of the book it draws on.