Chapter 2: 11 and 12: The message was the same, the substitution key was the same: ABCDEFGHIJKLMNOPQRSTUVWXYZ dkryfmtahovcjqxelszgnublpw Number 12 used a 40 column x 5 row transposition. 18. There are many: shared books, encyclopedias; messages from a shared broadcast, a web page, etc. 20. One day: Marketing plans immediately before release, votes in an election, etc. A battle plan (until it is realized). One year:Sales forecasts, marketing strategies. One century: A country's security plans, intelligence information, privacy data. 24. The main risks are that the US government might have selected a cryptosystem to which they have a key or that somebody might "crack" the system making it vulnerable. The best way to overcome these risks is to superimpose some other crypto on top of the original crypto in order to overcome the vulnerability. 32. It is not the values themeselves repeating, but the patterns; if the pattern doesn't repeat, it does not help us any that the last time this sequence of characters happened, it was followed by (say) a "k". 33. To provide a moving target: once a key is learned, it is useless, so, if changed, we are back in square 1. 34. I have given enough examples in class.... It is enough to have k=2 for the chinese remainder theorem because it provides the basis and the induction step in the complete induction proof. In addition, only the case k=2 is used in the notes. The last question simply involved some computation/programming. Chapter 3 5. You can either: i) Change the source code before compiling the program, ii) change the compiler, iii) change the binary code, iiii) change the code in memory. 6. Confinement would make sure that the program doesn't access any data and that the result is "reasonable". 7. a) Check the program during development. b) Spot checks of random accounts, recomputing data by hand c) DO account with matching totals for many interesecting account subsets. 11. The problem is that we have to keep the number of items to remember under control: the magical number 7 plus or minus 2 serves us here: just remember to keep the number of called modules small, the size small and the function simple. 13. First prepare all the info in the new node before inserting it in the list; then update one link from the list (say the left link) then, if everything goes OK, update the other link. In case of failure, a list scan can detect the inconsistency and correct the (single) incorrect link.