Synchronous stream ciphers generate the keystream in a fashion independent of the message stream but by using the same keystream generation function at sender and receiver.

While stream ciphers do not propagate transmission errors, they are, by their nature, periodic so that the keystream will eventually repeat.

Two that leap to mind are the Crypto Museum's Crypto List and John J. Savard's (albeit old) A Cryptographic Compendium page.

The Advanced Encryption Standard (AES) and Rijndael 5.10. Because a single key is used for both functions, secret key cryptography is also called symmetric encryption.

The receiver applies the same key to decrypt the message and recover the plaintext.

The mathematical "trick" in PKC is to find a trap door in the one-way function so that the inverse calculation becomes easy given knowledge of some item of information.

Generic PKC employs two keys that are mathematically related although knowledge of one key does not allow someone to easily determine the other key.

PKC depends upon the existence of so-called one-way functions, or mathematical functions that are easy to compute whereas their inverse function is relatively difficult to compute.

Let me give you two simple examples: While the examples above are trivial, they do represent two of the functional pairs that are used with PKC; namely, the ease of multiplication and exponentiation versus the relative difficulty of factoring and calculating logarithms, respectively.

The other key is designated the private key and is never revealed to another party.

It is straight forward to send messages under this scheme. Alice encrypts some information using Bob's public key; Bob decrypts the ciphertext using his private key.

The most common construct for block encryption algorithms is the Feistel cipher, named for cryptographer Horst Feistel (IBM).

As shown in Figure 3, a Feistel cipher combines elements of substitution, permutation (transposition), and key expansion; these features create a large amount of "confusion and diffusion" (per Claude Shannon) in the cipher.

Self-synchronizing stream ciphers calculate each bit in the keystream as a function of the previous n bits in the keystream.