414-S11: questions and responses

If you ask a question that is of general relevance, I'll add the question and a response at the end of this page. Your name will be shown iff you ask for it.

Question 1 On the HW 3 solution part c, it says the answer is "yes". I don't understand this answer because the "session key = enc(-k,nA+nB)" . Lets say thread 1 nA =5, nB = 3, then enc(-k,8). Then next time, nA=2,nB=6, then enc(-k,8). Thus the same session key was used twice. Nothing in the code prevents this. Response random() means that the probability of this happening is very small, effectively zero. To be precise, suppose random can generate numbers in 0..N. Consider two successive connection attempts, with [xA,xB] in the first and [yA,yB] in the second. Prob [xA+xB = yA+yB] decreases with N. (You can calculate the probability as number of pairs that equal K divided by number of possible pairs The first is 2K (size of {[0,K], [1,K-1], ..., [K,0]}), which is less than N. The second is N*N. So Probability is 1/N. For 64-bit random numbers, N = 2**64.