ptanalysis, we conclude that this "no key exchange" approach based on the addition of independent keywords is, by and large, the worst possible and riskiest way to proceed. A safer solution for Alice and Bob could consist in using substitution algorithms instead. But the problem is that substitution algorithms have no reason to be commutative. If Alice first encrypts the message with her own substitution-key algorithm, then Bob does the same with his own, and then Alice and Bob again, the end result would be Classical and quantum cryptography nonsense. A fancier approach had to be devised, which led to the breakthroughs of cryptography without key exchange, and public-key cryptography (PKC), which are described in the next two subsections. Cryptography without key exchange The seemingly intractable problem of cryptography without key exchange was eventually solved in the mid 1970s. The ground-breaking idea was to use the principle of one-way functions in modular arithmetic. Here is the first proposed algorithm (now referred to as Diffie-Hellman or Diffie-Hellman-Merkle, after the inventors). Step 0 Alice and Bob call each other (or send an email) to agree on a choice of two numbers (m, n), regardless of the possibility that Eve could have wired the line; they can even make this choice openly public. Step 1 Alice chooses a large integer A and keeps it secret. Then she computes mod n and sends the result (e.g., by phone or email) to Bob. Step 2 Bob chooses a large integer B and keeps it secret. Then he computes b = B mod n and sends the result (e.g., by phone or email) to Alice; Step 3 At her end, Alice computes k = bA mod N. Step 4 At his end, Bob computes k = aB mod N. As it turns out, the results of these last two computations are equal, i.e., (modulo n). This means that both Alice and Bob have the same number, which they can use as a common key. Eve is not able to get this information, even if she has intercepted the information on the (a, b) values that Alice and Bob communicated to each other. Although Eve al