The popular symmetric encryption algorithms in use today
have a lot more in common, on a conceptual level, than they
have differences between them. A certain set of basic
operations and frameworks are known to stand on solid
mathematical ground and have withstood years of cryptanalysis.
As such, all the general remarks of this section apply
almost equally well to any symmetric algorithm you might
find yourself working with. Specific details can be
found in the documentation associated with a specific
algorithm.
Using the right basic operations and frameworks does
not guarantee a strong algorithm. There are many subtle
ways to put things together that introduce
significant vulnerabilities to attack. Understanding this tutorial
is not enough to allow you to invent your own strong algorithm; however,
"rolling your own" is not a useful goal for most programmers
anyway. There are so many well-tested algorithms out there
that you are almost surely better off starting with them and
worrying only about implementation. This tutorial will allow
you to understand the logic behind what you are implementing.