We're currently approaching the end of our semester, but I've found that our homework is starting to consist more of encrypting and decrypting using different types of algorithms instead of learning any other core fundamentals. Even though we've switched over from symmetric to asymmetric algorithms. I'm wondering if we're missing any other core fundamentals in a semester of learning cryptography? We've seemed to just focus on different types of algorithms this entire semester along with what aspects of cryptanalysis they meet. What else are we missing? (This is for personal use to learn more on the side)
Learning Cryptography in academic is something between science and practice. For science part,the aim is to studying and focus on topics related to cryptographic primitives(building block of cryptographic protocols).Based on categorizing these primitives, we can learn them easily:
- Unkeyed primitives-----> Arbitrary Hash Functions,One way permutation,Random sequences
- Symmetric-key primitives ----->Symmetric ciphers(Block ciphers,Stream ciphers),Arbitrary length hash functions(MAC),Signatures,Pseudo-random sequences,Identification primitives
- Public-key primitives------->public-key ciphers,signatures,Identification primitives.
In this category, fundamental Topics like signatures, Hash,Identification,Pseudo-random sequence generators highlighted. Also topics such as Authenticated encryption,secrete sharing and subjects related to key-management based on cryptography.
In the practice part, the intention is to design and implement a cryptosystem, which means that use the logic of cryptographic primitives in an algorithm and then evaluate its soundness based on mathematics. In this side, we can name topics as cryptanalysis and attacks(theoretic and implementation),methods for designing a cryptosystem,Lightweight cryptography and ways of implementing ciphers and cryptosystems in different devices.
At the end, examination of different ciphers and cryptosystems, gives analyse and design method ideas and also the way of using them in real world.