This is the last part of a three-part series covering encryption and decryption, with a focus on the algorithms used. If you have missed either the first or second part, I encourage you to check them out before reading this part.
We've arrived to the end of this series. I genuinely hope that you have enjoyed the ride as much as I have. It was amazing. In the first part I introduced you to the world of cryptography. I explained the basics and we wrote two simple algorithms. We implemented and coded them in C. Ultimately we saw the power of those algorithms. They were banal but turned our plaintext files into complete gibberish -- ciphertext. I am also sure that it was a sort of pleasant feeling to find out that the decryption process works, too. We were able to recover the plaintext from the ciphertext.
In the second part we found out what XOR is all about. We learned about the XOR logical operator; we implemented and coded it into an encryption algorithm. It worked great, too! Then I explained three techniques for breaking it.
In this article, on the other hand, we've taken a look at up-to-date encryption algorithms. We've discussed AES since it is considered the best and is the standard right now. Then I gave my list of favorite literature on cryptography.
In conclusion, I am pretty confident that you have learned and grasped the main concepts throughout this three-part article. I also think that now you have a general understanding of cryptography and realize that it isn't that mysterious at all. It can become very hard and complex, especially when it comes down to pure math and so forth. For these reasons, people tend to keep out of cryptography. I might have sparked some desires due to debunking myths and such...
Happy coding and have no fear -- cryptography can be learned. But as much as you get into it, you will realize the vastness of the field. And you will end up perceiving that it is impossible to completely "learn" cryptography. That's because it is infinite.