Block ciphers can operate in one of several modes; the following are the most important: As an aside, the AES selection process managed by NIST was very public.
A similar project, the New European Schemes for Signatures, Integrity and Encryption (NESSIE), was designed as an independent project meant to augment the work of NIST by putting out an open call for new cryptographic primitives. While several new algorithms were found during the NESSIE process, no new stream cipher survived cryptanalysis.
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.
As a result, the ECRYPT Stream Cipher Project (e STREAM) was created, which has approved a number of new stream ciphers for both software and hardware implementation.
Similar but different is the Japanese Government Cryptography Research and Evaluation Committees (CRYPTREC) efforts to evaluate algorithms submitted for government and industry applications.
Stream ciphers operate on a single bit (byte or computer word) at a time and implement some form of feedback mechanism so that the key is constantly changing.