Let's think of a simple answer first.
Suppose I want to send a message to Alice.
If I want confidentiality, I can put that in an envelope, seal the envelope,
and write that it's for Alice.
To make sure my seal is good, I'll make sure that no one else can open this.
I could give the message to Alice.
Now, the problem is if Bob is jealous and the mere fact
that I'm communicating with Alice would cause problems
I can't just hand the message to Alice. That would show that we're communicating.
What I'm going to do instead is use Coleen.
I'm going to give the message to Coleen and ask Colleen to give the message to Alice.
I will have a new envelope. I'll give this to Coleen.
What I'll put in that envelope is the message I want to give to Alice.
This also has a very secure seal, so no one else will open the message,
and I give it to Coleen.
If someone sees me giving a message to Coleen, well, there's no problem there.
Coleen would open the message and see that it's got a message to give to Alice.
Then she could give the message to Alice.
This works a little bit, and Coleen could open the message and give it to Alice.
How well does this scheme work?
The question is which of these properties are necessary
for this scheme that I just described to successfully hide the fact
that I'm communicating with Alice?
Requires complete trust in Coleen?
It require that Bob cannot see when I talk with Coleen?
It requires that Bob must not be able to see when Coleen talks with Alice?
It requires that Bob must not be able to see both communications
when I talk with Coleen and when Coleen talks with Alice?
