Names                                                                     :
Cryptography Group Assignment 1
Due Wednesday Feb. 7, 2001
  1. The equation x3 = 5 has 3 solutions, if we let x take values over the complex numbers (i.e. we add to the real numbers a number I, where I2 = -1, and look at numbers of the form a + bI). You can ask Mathematica to answer this question by executing the command NSolve[x^3 == 5, {x}]. In general, an nth degree polynomial, when set equal to zero, will have n solutions if we let x range over the complex numbers (x3 is third degree and x3 = 0 has three solutions). On the other hand, if x must be an integer (whole number), then x3 = 5 has no solutions (the cube root of 5 is not an integer). We've seen odd things happen when we restrict our integer mathematics to the values from 0 to 25, using mod 26 on the result of common operations. For example, the equation 2x = 6 (mod 26) has the obvious solution x = 3, but it also has the oddball solution x = 16, since 2*16 = 32 = 32 - 26 (mod 26) = 6. To solve 2x = 6 mod 26, we simply calculated 2*x for x = 1 to 25, and selected all x values where 2*x was equal to 6. 
    Look at equations of the form x3 = c mod 26. For which values of c are there solutions? How many solutions are there? Which numbers have cube roots mod 26? Like the complex numbers, do cube roots come in triples, or is it like the reals, where cube roots are unique (come in singles). Which numbers have square roots mod 26? Are these unique (meaning each number with a square root has exactly one square root), or do they come in pairs?

  2. Look at problem 2.2.14. It's double starred! A (single) starred problem means that it is so hard that most professors couldn't do it; a double starred problem, no way. That means that only the very best students in the U.S. should be expected to answer this question, and that any professor who assigns it should be hung by their left ear lobe. But guess what? Most professors don't have their classes split up into groups with computer science experts paired with mathematics experts. The combination is deadly, and together the answer is a breeze (for a double starred problem anyway). 
    Here's what the CS experts need to do. Write code (Mathematica can do this also, in case nobody thinks they are a CS expert in your group) that generates n pairs of random (real or float or double) numbers from 0 to 1. In one part, you should add these numbers together and calculate the percentage (out of n) that are larger than 1. For the other part, multiply the 2 random real numbers together and count the percentage that are larger than 1/2. Don't be conservative, n = 1000 is the smallest value you should think about. Furthermore, the bigger the value of n, the better your estimate will be, however, averages are incredibly accurate, much more accurate than single values. 
    Your goal is to estimate the answers to the question with at least four decimal places of accuracy. Basically, this means you want to pick n so large that the first four decimals of your answers are "always the same", or rely on the fact that averages of large data sets are amazingly accurate. Perhaps average 1 million repetitions of the experiment with n = 10000. You should be so confident in you're first four decimal digits, that you're willing to bet your car that you know the answer accurate to four decimal places. Two decimal places is good, four is the goal. There is nothing wrong with good! Be sure to comment on the things you tried (like n = 5000 gave about 2 digits of accuracy, etc.), and the settings you eventually settled on.

  3. Given the incredibly accurate estimate from the CS members of your group, the math people should be able to come up with an exact formula for the answers. As an example, an exact answer might be "the square root of 2 times the natural log of 6", simple functions with nice clean numbers plugged in, that's your goal. Think of x as the first random real number and y as the second. Note that x and y are between 0 and 1 (so graphs of the answer can ignore all other values of x and y). Each problem ( sum > 1 and product > 1/2 ) can be "solved for y" (don't forget that both x and y must lie between 0 and 1) and calculated exactly as an integral. Your values should agree with the CS estimates, if they don't, one is wrong! It should help to draw a picture of the pairs (x, y) that satisfy each part of the question.