Compare public key cryptography to symmetric key cryptography. List some ciphers that implement each system. Explain the typical applications of both systems. Describe their respective advantages and disadvantages, and any potential weaknesses.