# Number of keys when using symmetric and asymmetric encryption?

Quoting part of my homework/assignment:

How many keys are required for secure communication among 1000 person if:

1. Symmetric key encryption algorithm is used?
2. Asymmetric key encryption algorithm is used?

My guess:

For symmetric they each need to maintain and transfer their own key, so probably $1000 \times 1000$, and for asymmetric maybe just $2000$, each having one public one private.

Is that correct?

-
The answer depends on the security requirements, it could be just 1 symmetric key if everyone is supposed to read the messages of everyone else (group key) – Richie Frame May 8 '14 at 19:24
Its secure communication. – Prakash Wadhwani May 8 '14 at 19:31
Its secure communication. That was rather obvious. The question is: “What exactly are the security requirements which are expected in this secure communication?” Which somewhat asks for a protocol description… in case your homework/assignment provides that. – e-sushi May 8 '14 at 20:20
Nope, the question is here as it is. Doesn't provide anything else. But its assumed logically on such questions that the parties involved would be able to communicate secretly from one another. – Prakash Wadhwani May 9 '14 at 2:21
Do they really need a symmetric key to communicate with themselves? – mikeazo May 9 '14 at 12:25

## 2 Answers

For the symmetric key, you can approach this problem as a complete graph with order 1000. With the vertexes representing people and the edges representing the symmetric keys. Then each vertex would have degree 999 and, applying the Handshaking lemma, the number of edges would be:

(1000 * 999)/2 = 499500

So they would need 499500 symmetric keys to have a secure communication between all of them.

For the asymmetric keys, each one would have 2 keys, so a total of 2000 keys.

-

For a homework question you are probably correct. If the keys are distributed in a secure way that should be the minimum amount of keys for persons to communicate without them being able to read each others messages, if those messages can be intercepted.

Practical protocols could use more or less static keys, it all depends on the requirements, attack vectors etc..

-