A clever means by which two parties may agree on a shared secret key purely using an insecure transport mechanism.

Example taken from Simon Singh's The Code Book

The scheme relies on the one way function Y^x mod P. Y and P may be agreed by insecure means. In this example, Y=7 and P=11. In real life, I imagine much bigger numbers would be chosen.

        Alice                    Bob
Stage 1 Alice chooses a number,  Bob chooses a number,
        say 3, and keeps it      say 6, and keeps it
        secret.                  secret.
        We label her number A    We label his number B

Stage 2 Alice puts 3 into the    Bob puts 6 into the
        one way function and     one way function and
        works out the result     works out the result of
        of 7^A mod 11:           7^B mod 11:
          7^3 mod 11               7^6 mod 11
        = 343 mod 11             = 117,649 mod 11
        = 2                      = 4
   
Stage 3 Alice calls the result   Bob calls the result
        of her calculation       of his calculation beta,
        alpha, and she sends     and he sends his result
        her result, 2, to Bob.   4, to Alice.

The     Ordinarily, this would be a crucial moment:
swap    Alice and Bob are exchanging information over a
        public transmission medium, and this is an
        opportunity for an eavesdropper to snatch some
        information.

        However, it turns out that the two numbers alpha 
        and beta are useless to an eavesdropper without
        knowledge of either A or B.

Stage 4 Alice takes Bob's        Bob takes Alice's result 
        result and works out     and works out the result of
        the result of            alpha^B mod 11:
        beta^A mod 11:
          4^3 mod 11               2^6 mod 11
        = 64 mod 11              = 64 mod 11
        = 9                      = 9
     
The     Miraculously, Alice and Bob have ended up with the
key     same number, 9. This is the key!