Symmetric key cryptography is an encryption system in which the sender and receiver of a message share a single, common key that is used to encrypt and decrypt the message.

Is the key public or it is secret? How can the sender and the receiver both know the key?

  • $\begingroup$ the key of the sender and receiver shared usually is computed vie key-exchange protocol. there are many kinds of key-exchange protocols, such as NAXOS, MQV,HMQV etc. $\endgroup$ – T.B Sep 16 '13 at 10:34

Handing keys, in general, is known as key management.

Symmetric keys should be kept secret from other parties than the participants in the scheme. The term "secret key" is often used as a synonym for the symmetric key. The private keys for asymmetric schemes are not shared, but are of course also kept secret, as privacy implies secrecy.

The establishment of symmetric keys between parties can be performed in several ways:

  1. (Authenticated) Key Agreement (KA)
  2. Sending of an (authenticated) encrypted key, also known as key wrapping
  3. Derivation from a base key using a Key Derivation Function (KDF), using other data as input, for instance, a unique number. If the derivation is performed so the resulting keys can be used in different schemes it is often called key diversification. If keys are derived in an iteration we talk about a key ratchet.
  4. Any kind of "out of band" procedure (after random key generation),
    • by a previous telephone call
    • sending a letter
    • meeting in a pub (handing over a USB stick or other data carrier)
  5. Creating a key from key parts held by different persons (key sharing schemes)
  6. Quantum key distribution

There are other methods for establishing symmetric keys, but these are some of the most commonly used ones. The security of these schemes depends of course on the implementation.

| improve this answer | |

The key must be kept secret or it is no longer an encryption system. They key must be shared at some point, when is not important, but how is, and how determines when.

You can send encrypted messages to someone, then hand them the key on a post-it note at a later point in time so they can decode it, or on a flash drive, or some other physical handoff or dead drop.

The most common method is to create a shared secret between the two parties by way of diffie hellman key exchange, which is then hashed to create the encryption key. This type of exchange is susceptible to a man in the middle attack, so some sort of scheme must be used to authenticate the exchange, such as signing each message of the exchange with a long term private key to which the other party holds a public key to verify.

Another method is to include the key with the message, and use RSA type encryption on the key, so that only the intended recipient can decode the key, and decode the message

| improve this answer | |
  • $\begingroup$ hand over the key by post or any media is not secure that why the concept of public key cryptography come in consideration. $\endgroup$ – Aria Sep 16 '13 at 5:42
  • 2
    $\begingroup$ Actually handoffs are used even to this day, and may conceal the fact that a key has been exchanged at all because an attacker does not see a key exchange over a tapped link. Mailing a key on the other hand is very insecure, as a letter can be opened or xrayed, discs can be cloned, etc. $\endgroup$ – Richie Frame Sep 16 '13 at 5:47

There are two main ways: Key Encapsulation Mechanism (KEM), or a Key Exchange (KEX).

In a KEM, Alice will create a symmetric key from a CSPRNG or TRNG, sign it with a private key and encrypt it with Bob's public key. RSA would be a scheme that can handle this.

The other option is KEX. This is when Alice and Bob both generate ephemeral keys (with ECC for example). They both sign their ephemeral public keys with their static private keys and send them to each other. Both Alice and Bob combine their own ephemeral private key with the other's ephemeral public key (EC point multiplication in the case of ECC), and end up with the same shared secret. This is a point on the elliptic curve, so it will be passed through HKDF, into the correct format and length for the symmetric key.

This symmetric key MUST NOT be public, as it would defeat the point of encryption as anyone could decrypt the ciphertext.

| improve this answer | |

An increasingly common way is to send a key directly via photons in a general technique called quantum key distribution. This is of course an entirely hardware solution. The two main protocols are E91, whereby the candidate key is initiated midpoint utilising quantum entanglement:-


and the slightly older protocol of polarisation encoding from one end of the communication link, called BB84:-


Both techniques leverage either spooky action or the observer effect to be (theoretically) 100% secure. Even in 2011, the sifted key exchange rate was 128 kbps (1000 AES-128 keys per second). This has now been built upon, but even then, the transfer rate was sufficient to allow encryption via distributed one time pads (the holy grail).

Quantum mechanics - "That means we don't really understand it." - Richard Feynman

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.