- Each participant has
- public key - released to others
- secret key - kept secret
- Example Alice (
*P*_{A},*S*_{A}), Bob (*P*_{B},*S*_{B})

- Public and Secret functions are inverses
- M =
*S*_{A}(*P*_{A}(M)) - M =
*P*_{A}(*S*_{A}(M))

- M =
- Must be able to reveal
*P*_{A}while*S*_{A}remains uncomputable (or at least very difficult to compute). - Security depends on method of computing keys
- RSA - factoring large integers
- McEliece - decoding linear code (NP-Complete)
- El Gamal - discrete logarithm problem
- Chor-Rivest - knapsack (NP-Complete)