Weekend
The other problem that took up most of my time was regarding the creation of a program. We were instructed to write a program that achieved the following: Taking as input, two cipher-texts c1 and c2 of the same length. Where c1= 4ADD55BA941FE954 and c2= 5AC643BE8504E35E. Both are expected to be the encryption of a single word m1,m2 using the one-time pad. (Encryption scheme.) To produce the cipher-texts the same key has been used. (This doesn't usually happen with the OTP, as if the same key is used it creates a vulnerability. Generally when this happens it's referred to as a two-time pad.) The program will then find m1 and m2. (The messages in plain-text.)
Now I hadn't expected to have to write code, which is fine, I was actually somewhat excited at the prospect. I picked python as my language, as I was familiar enough with it. I made progress up to a point, where my understanding of the problem was not enough to allow me to finish the program. Basically, there is a point at which you have XOR'd the two cipher-texts, then take the resulting string of hex and compare it to a wordlist. Generally at this point you're looking for something that would reveal the word in one of the messages, which would then allow you to get the key and reveal the contents of the other messages. However my understanding of this was fuzzy enough, and despite my searching I couldn't find anything exact enough to figure out where to go with my code. It was a bit frustrating, but I submitted my program in the hopes that the teacher would provide partial credit.
I'll also post the code for those that or interested. Or if anyone has enough of an understanding of crypto and wants to tackle solving the problem for fun.
Monday
So, for the rest of the afternoon until my class I just relaxed and started a bit of my reading homework. Once class arrived I headed to the CS building. After staying inside all weekend the cold air was somewhat startling at first, but it was refreshing to walk through once I got used to it.
Class itself was, as always, interesting. We discussed two approaches to creating secure encryption schemes: best-effort design, and provable security. We then used a provable security approach to create a stream-cipher based on a pseudo random generator. There were, of course, a lot of proofs involved in this. Though thankfully he didn't utilize a completely formal mathematical definition for each part. We began by defining what security was, followed by a definition of a security assumption. Next we constructed our scheme and lastly proved that it was secure utilizing the earlier definitions. It was all a bit much to absorb, so I'll definitely be going back over my notes and trying to find other explanations of this to make sure I really understand it.
After class, I stopped by the Metro cafe to pick up a sandwich for dinner, as I was feeling too lazy to cook anything. The food was delicious as always, and gave me the energy needed to get through the rest of my reading for Religion and Politics.
No comments:
Post a Comment