The problem is the following: I need to establish an encrypted connection (which, hence, requires at least one secret - the key[s]) between two clients. They are only allowed to communicate over public channels. Also, they don't know any secret about each other.
tl;dr
Alice, Bob and Carl are in a room. They don't know each other. Alice wants to tell Bob a secret, which Carl cannot understand. How can she do this?