lgorithms are used at the top layer of this two-layered hierarchy to cre- ate a common shared secret bit-sequence, which can serve as the equivalent of a secure envelope for the safe and reliable exchange between the communicating parties of the session key that is usu- ally generated by one of the two communicating devices. The two communicating parties usually use this session key as the initial encryption and decryption key of the underlying symmetric encryp- tion algorithm. The word initial was used in the previous paragraph. In older symmetric encryption systems (and in offline or mostly software-based cryptographic systems), the same key was used during the entire communications session. This is no longer the case with many state-of-the-art communications secu- rity designs, where systems engineering experience drawn from decades of military and intelligence- related networks has created the widespread know-how that allows systems engineers to design robust handshake protocols as well as methods and techniques that allow the encryption keys to be dynam- ically updated from both sides in a communication link at predetermined frequent, sparse, or even quasirandomly chosen points in time during the ongoing transmission. The advantage of such a cryptographic environment is that even if one of these symmetric keys is compromised, only a small portion of the overall transmission will be sacrificed. The disadvantage is that this increases the over- all design complexity and key management. The following are some interesting, but not obvious, points regarding this technique: Once a user has encrypted a bit sequence with someone else's public key, he or she cannot decipher the ciphertext back to plaintext, as the user is usually not in possession of the private key of the intended recipient. This is not the case with symmetric cryptography where both parties can pro- duce cipher and plaintext, given the availability of the common key. The generation of the session key in the public-key cryptography arena and the sym