views:

908

answers:

9

I need to have a better understanding of cryptography, specially the mathematics behind some of the core concepts.

However, my High School Maths knowledge has gone a bit blunt, and so I was wondering which topics I should revisit for this purpose?

+5  A: 

I think discrete mathematics will be a very good friend in understanding some core concepts.

-- Oh sorry, I guess you are looking for "single subjects" ?

Well, then the lists gets a bit more comprehensive...: Primes, permuatations, matrix, equations, and so on... But you should really take on a course of Discrete mathematics to understand a bit more....

Israr Khan
+7  A: 

You might think about picking up the book 'Applied Cryptography' by Bruce Schneier. It covers the protocols, algorithms and includes some C source code.

You also might take a listen to 'Security Now' which is a podcast put on by Leo Leporte and Steve Gibson. Steve does a great job of explaining many crypto concepts and the associated math for non-mathematicians. You could start with episodes 30 through 37.

Here is the site for Security Now: https://www.grc.com/securitynow.htm

Mitch Baker
Applied Cryptography is beginning to show its age; it is missing important algorithms that did not exist when it was written (surprise, surprise), such as AES. That's not to say it is a bad choice; just that you need to be careful.
Jonathan Leffler
+20  A: 

Discrete mathematics is definitely needed for cryptography, and there is no way around it.

off the top of my head, you won't get far without:

but really, most of these are directly related to discrete mathematics, so there is no way around (re)studying that.

Sven
Saying that primes are used in 'most' encryption schemes is a bit misleading: Most public key crypto uses it, but symmetric key ciphers and hash algorithms rarely use primes.
Nick Johnson
+1 to modulus arithmetic and exponentiation
chakrit
ah yes you are correct, Arachnid. But as you might also know, asymmetric cryptographic algorithms are more commonly used today than their symmetric counterparts... but I will change the statement a bit to clarify its meaning
Sven
Not really - pretty much every use of an asymmetric algorithm is paired with a symmetric cipher - the symmetric cipher does the encryption of the actual data, and the asymmetric algorithm only encrypts the key to the symmetric cipher.
Nick Johnson
Yep, the exponentiation required for asymmetric algorithms is still too slow on modern hardware to encrypt any sizable chunk of data with it, which is why symmetric algorithms are still very important.
Bob Somers
+4  A: 

The basic topic you're really looking at is number theory, which is also one of the more enjoyable kinds of math. Of course, I'm a crypto geek so I'd say that. You also need a good grounding in probability. Here are a few good books that have appropriate topics:

Charlie Martin
+3  A: 
Federico Ramponi
+3  A: 

Knowing what an injective, a surjective and a bijective function are is helpful.

Some areas that might be useful:

  • Number theory - some algorithms use the difficulty of factoring large numbers as their basis.
  • Probability - used in analysing many kinds of ciphers.
  • Linear algebra - Linear Feedback Shift Registers, which are used as primitives in many applications have their basis in this.
  • Group theory - some algorithms are based on elliptic curves.

These are just to start with.

The Handbook of Applied Cryptography may also be useful: http://www.cacr.math.uwaterloo.ca/hac/

+4  A: 

Here's an incomplete list:

  • Number theory -- to understand why and how RSA works. It's also used for n-of-n threshold secret sharing.
  • Group theory -- to understand why and how El Gamal works.
  • Probability theory -- to better understand what "statistical security" means.
  • Algebra -- the theory of finite fields is used in multiparty computation.
  • Linear Algebra -- lagrange interpolation is used in Shamir's Secret Sharing Scheme. Some linear operations are also used in AES.

That's probably the order in which I'd go about studying the topics as well.

Jonas Kölker
+1  A: 

I'd actually recommend just picking a good book, eg Applied Cryptography, and learning the required math on a need-to-know basis. I certainly wouldn't like to discourage you from exploring interesting areas of mathematics mentioned by others here, but be warned that there's a huge amount of accumulated knowledge in each of these areas, and only small parts are actually used in cryptography. I'd say get the big picture of cryptography first, and then you'll know much better which areas of mathematics you need to study more.

This assumes that your goal is to actually understand how cryptography works. If your real goal is to use it in practice (ie computer security), I think you should rather concentrate on understanding abstractions (eg public key crypto, digital signature, hash function, protocol, mode of operation), not on how they are implemented. Understand these abstractions, use standard implementations (libraries), and above all, don't invent your own.

A: 

I think... handbook of cryptography and A Computational Introduction to Number Theory and Algebra by Victor shoup

are the 2 books you can refer for start and then move to other books...