# What math will I need in order to learn Microsoft's UProve?

I'm studying Microsoft's UProve (independent studies at 35 years old) and forget most of the Math I learned in college.

I intend to proceed and learn the contents of this chapter of this book but can barely get past 2.1.1.

To get a sense of where I'm at, today I discovered that the "e" symbol is an epsilon, is a small number, and is impossible to find beginner information on math.stackexchange.com because searching for the word epsilon results in a text search of every equation in the site. (not helpful to me).

Can anyone recommend a course, keywords websites, etc. in order to fully appreciate Chapter 2 of this book?

• Are you talking about $\in$ or $\epsilon$? The reason I ask is that I didn't notice the "small number" epsilon in the chapter(typically that is the $\epsilon$ symbol). If you are talking about $\in$ that is the symbol for set membership.
– user29123
Apr 26, 2013 at 22:39

The first epsilon, $\in$, that appears is not actually for a small number, but is the "element of" symbol, as in Ford is an element of the set of car brands. So apparently they mean a random car brand by $b \in_{\scr{R}} \text{Brands}$. Epsilon in the sense you mentioned appears later on as a probability $\varepsilon$.

You can use the Wikipedia article Set (mathematics) to familiarize yourself with the basics of set theory. They're dropping a lot of abstract algebra notation like $\Bbb{Z}_n$, which is the cyclic group of order $n$. This is just addition on a clock with $n$ hours on it instead of $12$. Likewise you can do multiplication on a clock, but $3*4=12$ and going 12 hours around the clock from anything is 12, so $12*x=12$, so 12 is really 0. So, in order to be able to divide - to get a subgroup of multiplication - you want to take only the numbers that can't produce 0 through multiplication of any pair. This is the group of units of a ring. $\Bbb{R}, \Bbb{N}, \Bbb{Z}$ are the real numbers, natural numbers, and integers.

To be honest this is somewhat dense, and while it might be a good bellwether for learning new material and putting it into context, you would have a lot more fun reading an introduction to abstract algebra, playing with modular arithmetic to do tricks with large numbers, or learning about probability theory, Turing machines, and cellular automata (which are related). Or, as the other posters suggested, picking up a self-contained book on cryptography.

I would start with a gentle overview of the subject, like Good Old Mathematics The Basis of Cryptography. Things like this will help to get you a good footing and overview.

The mathematics you need to learn is quite broad and includes:

• Information theory
• Computational complexity
• Statistics
• Combinatorics
• Abstract algebra
• Number theory
• Finite mathematics

There are quite a few math books specifically related to the math side, however, there are also many cryptographic protocols and standards.

I have written a list of those in another post.

A very nice algorithmic book is:

I would also look into the Open Courseware at schools like MIT and certainly check out your local university library and look for books that float your boat.

Lastly, security is a process and deals with a lot more than algorithms, protocols and math. It also deals with the human element and that is as unpredictable as can be!

• I hadn't known about UProve until the question was posted! Apr 27, 2013 at 0:10
• @amWhy: I did not either, but these big companies are always putting out custom products that meet no industry standards and it is maddening! :-) Apr 27, 2013 at 0:31
• @Amzoti - For what it's worth, I'm an IT Security Pro and the current tools in Elliptical Curve PKI don't permit the "blinding" features and anonymity that UProve allows. A whole industry will be born from this Apr 27, 2013 at 4:07
• @makerofthings7: Hopefully, it doesn't have exploitable vulnerabilities! Regards Apr 27, 2013 at 6:20

MIT-OCW has a cryptanalysis course in the Computer Science department: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-875-cryptography-and-cryptanalysis-spring-2005/

Prerequisites listed there include "General ease with algorithms, elementary number theory and discrete probability." Maybe those would be good keywords to begin with?

I believe the particular predicament that you are in is an excellent way to motivate one to learn mathematics in general. In your studying, you will realize that there is indeed quite a lot of mathematics that needs to be digested in order to understand the chapter. Your goal is to understand chapter 2 of the MIT paper for career purposes, whence your motivation to learn math is coming from.

I believe the very first thing that you should learn is Discrete Mathematics, which is where you will learn about Logic (Essential to mathematical proofs), Set Theory (to clear up your confusion with the epsilon symbol when used in the context of sets), Combinatorics (Essential for dealing with discrete statistics), Functions (essential mechanisms to understand), Number Theory (For understanding modern day cryptography).

After, you have learned the fundamentals go back to the paper and read. Then determine again what else you need to learn. As you develop more mathematical maturity, you will then begin to recognize what you need to further research to understand the paper. From there you can create another list and repeat the process.

You may realize after a breadth overview of Discrete Mathematics you need to drill down further into Algorithms and Complexity Theory. You would then continue to research those subjects, digest them, re-read chapter 2. Continue the process until you have fully read and comprehended the chapter.

It can be a long and tedious task to complete, but can also be fun, entertaining, rewarding, relaxing, interesting, etc.

As a computer scientist, I found myself in a somewhat similar situation, as you dealing with complexity theory and the P=NP conjecture. I find myself still currently studying deeper into Logic and Abstract Algebra. Then I discovered that I enjoyed mathematics so much that I am now studying and teaching myself Multi-variable Real Analysis (Advanced Calculus) just for fun.