Which background is more suitable to study "Cryptography" I am a student of Pure Mathematics and also interested in programming .I have learnt C++,SAGE .
Recently I have started learning "Cryptography" .But there are many definitions involved here like polynomial time algorithm,time complexity etc.
My question is it all right for a student in Pure Mathematics to study Cryptography or as time progresses I will eventually fall out of place and lose interest in this subject.
Is Cryptography more suitable for computer science graduates or it does not matter which background a student is from to study this?
Please share your thoughts here as i am still in my early days and may help to change the subject if necessary before it is too late
 A: In a sense, both of your ideas (computer science and pure mathematics) are both correct for what might be suitable for cryptography. RSA encryption is based on abstract algebra concepts, and also the computer science belief that factoring integers is hard unless on a quantum computer. You can read about RSA online, there's plenty of references and if you know abstract algebra it's not that hard. Similarly, mathematical (theoretical) computer science as well as more pure math like combinatorics and number theory can play a huge role in cryptography. Who knows what crazy problem from combinatorics or number theory or algebra will lead to the next latest and greatest cryptography system where de-crypting is equivalent to solving the original math problem instance and the problem is NP-complete?
A: Much of cryptography today works on grounds of abstract algebra (and number theory). Clearly to show that some encryption technique has a corresponding decryption one requires proof, that is math. But that is just a small part of cryptography. The recent most talked about problems with cryptographic systems have been programming errors, disregard of the theory and existing practical experiences, blatant misuse of the theory or of the programs, and other "human", not "technical" or "theoretical" problems.
I'd suggest you take a peek at the classic "Security Engineering" by Anderson (the link is to the free full set of PDFs for the chapters, I liked it so much I bought it on paper...), it shows a much wider scenery (one I find much more relevant in actual practice).
A: As a computer science student who took a graduate course (albeit an introductory one) in cryptography last semester, I found myself pulling from my knowledge of number theory immensely more than I did from my knowledge of computer science. The field today is a highly mathematical one, with current state-of-the-art systems reliant on number theoretical subjects like discrete logarithms, prime factorization, and elliptic curves. Emerging techniques center around even more mathematical subjects, such as the hardness of lattice basis reduction. In fact, I think that pure math students will on average have an easier time learning cryptography than computer science students.
Even though you are not currently familiar with the meaning of terms like "polynomial time algorithm," you should be able to grasp time complexity very quickly as a student of pure mathematics. You will need to become familiar with algorithm design, but that will come naturally as you study.
In short, go for it! Almost everyone will come in lacking some sort of background knowledge regardless of what they studied, but if you are motivated then you should be able to pick up the slack without much trouble.
