Current location - Quotes Website - Personality signature - How to learn cryptography?
How to learn cryptography?

The direction of my current master’s and doctoral studies is cryptography. Thinking about it makes me cry. It is impossible to master cryptography because it is endless. Cryptography can generally be divided into cryptography and cryptanalysis (that is, cracking). Both courses require the same foundation, mainly number theory and modern algebra. But I don’t recommend that the subject take these two courses from the beginning. The questioner can first get a book on cryptography and understand the various algorithms in it. Next, you can look at modern algebra in number theory while looking at algorithms. This is to explore their mathematical principles. Then learn a programming language and try to implement each algorithm and more efficient implementation methods. In fact, it is the theoretical direction and engineering direction of cryptography. The theoretical direction is mainly mathematics. There are many world-wide problems in number theory and modern algebra. The engineering direction also requires learning mathematics. But don’t think that you can write it if you understand it, just like you You know that the S box is designed for diffusion and chaos, but you know why the S box is designed with those data, not many people understand. Password cracking is not the so-called online cracking. The cracking here is cracking in principle, mainly mathematical cracking. For example, Professor Wang Xiaoyun used bit tracing method to crack SHA, which cannot be achieved by brute force cracking. Therefore, the most important thing to study cryptography is persistence and interest. Moreover, you may not be able to crack an algorithm in a lifetime of studying cryptography, so are you prepared? If it is a high school foundation, first learn advanced mathematics, probability theory, mathematical statistics, and discrete mathematics (it is best to ignore formal languages, automata, and computational complexity theory, otherwise you will definitely have to make up for it later), and it is best to be able to write some code (Matlab will also work) , SAGE is also acceptable), and then read introductory books on cryptography. It will take 2 years (study 6-8 hours a day) to be able to understand conference articles. To be able to make something of your own, uh, you usually need to accumulate it to the level equivalent to a master's degree in information security-related majors. The time depends on individual talents. Starting from the basics of the junior year of engineering, if you finish Introduction to Cryptography in half a year, and then spend another half to one year studying things such as Zero-Knowledge-Proof, BR-Model, and IBE, you will be able to understand a lot of new results. And a classic article. Next, you have to get into contact with Cryptanalysis. At this time, you must supplement elementary number theory (including elliptic curves) and group theory, otherwise you will be confused about mathematical attacks on encryption algorithms.