Monday, November 25, 2013

16.5 , due December 11 and Student Ratings

Difficult:
     I would like to go through some examples of using the elliptic curve cryptosystem. It seems that we can use elliptic curve to improve most cryptosystems that use discrete logs and some that don't. I'm not really sure how it improves each cryptosystem except that it makes the discrete logarithm harder to find. 

Reflective:
     I think it's interesting that the elliptic curve cryptosystem essentially builds off the other cyrptosystems. I was wondering if there is any stand alone elliptic curve method or if it always requires some base system to improve. Also I was curious how we can use the elliptic curve to improve non discrete log cryptosystems.

I also completed the student ratings for this course.

16.4, due December 9

Difficult:
     I think I understand the reasons of why we need to modify the elliptic curves mod 2. I'm not really sure what we are doing when we modify them and what makes the modified curve more secure than the original cure mod 2. I think I would like to see a geometric representation of what is happening and why that is better.

Reflective:
     I think it is interesting that the NIST recommended elliptic curves for cryptographic use. It always makes me wonder what they have in mind as the give suggestions. I know in some cases such as DES they made it more secure. But with elliptic curves I wonder if they knew that people would need to modify the elliptic curves in order to make them secure for use. 

16.3, due December 6

Difficult:
     I think I understand the basic idea behind factoring with elliptic curves. Essentially the two primes p and q that compose n behave differently and thus we can find pa and q. I had a difficult time following the examples so I think an in class example would be very helpful. 

Reflective:
     I was wondering how the elliptic curve method of factoring compares with other methods of factoring. It seems like it can be much quicker in some cases. However, it also seems that as long as we choose good large primes we can still be fairly sure that n won't be factored. I was wondering how much better the method is and also if it is more versatile. 

16.2, due December 4

Difficult:
     I don't understand representing plaintext with the curve. I get the idea of needing to match the message to a point on the curve and then using elliptic curve operations on that point to obtain a ciphertext. What I don't understand is both what elliptic curve operations are done and also I didn't understand how the message is mapped to a point on the curve originally. 

Reflective:
     The elliptic curve method reminds me a lot of shamir secret sharing since both involve a linear equation and finding points on that line. It does seem especially important that it is extremely important to choose primes because if not we can easily factor the number. 

Monday, November 18, 2013

16.1, due December 2

Difficult:
     So I think I understand the basics of elliptic curves and the addition rule seems fairly straight forward. It is interesting that from any two points you can generate a third just base on those points. I'm not sure how this is actually used in a crytpo system but we'll probably get to that in the next section.

Reflective:
     It is impressive that we can drastically reduce our key size when using the elliptic curve method. I was wondering if elliptic curves can be used in both public key cryptography and symmetric key. I'm not sure if we really need to use it for both but I also haven't seen the actual encryption method.

18.1 and 18.2, due November 26

Difficult:
     I had a difficult time understanding the error correcting codes. I think I basically understood all the examples that were in the introduction about how we can check for errors, but I got lost in section 18.2. I understood the Hamming distance but I'm not sure how we really get the codewords or how we use the codewords once we have them.

Reflective:
     It seems that error checking often involves either resending information or just sending multiple repetitions of the same message. It seems that this could get expensive very quickly, especially for large messages. I'm not sure if there is a better way but it does seem that there could be a pretty large cost with error checking.

2.13, due November 25

Difficult:
     It seems like the enigma machine itself would be somewhat secure. I do question needing a codebook to set the rotors everyday because it seems that if the codebook was captured it would be very easy to decrypt messages and also send false messages. I don't think I fully understood the basics of how they were able to crack the enigma machine. That might just be because my permutation knowledge is a bit rusty. 

Reflective:
      I think that creating a machine to encrypt and decrypt messages is a very smart idea especially in war. This way the knowledge of even how the cipher worked would be more hidden because the operators may not even know how the machine works and thus if they are captured they can break the machine and no one knows how to decrypt the messages. 

Nonmathematical Explanation of Shor's algorithm and 19.3, due November 22

Difficult:
    I didn't really understand what a superposition was. I know it had something to do with having multiple values all at the same time but I'm not really sure beyond that. I think I understood the basics of QFT but couldn't really make the connection to Shor's algorithm. I also think that I understood the basic of how we can factor and do things quickly with a quantum computer but I'm still a bit confused as to what Shor's algorithm is for. 

Reflective:
      I wonder when if ever quantum computing will become a reality. It would make many parts of our lives easier with quicker computing. However as seem int eh chapter it would also allow us to break many cryptosystems which would mean a massive and expensive overhaul of almost all security software. 

19.1-19.2, due November 20

Difficult:
     I think I understood the basic example that was explained in 19.1 but had a difficult time understanding the concept that was discussed in 19.2. So Alice and Bob are trying to create a shared symmetric key but I'm not sure how that is done. So I think the idea is that after the quantum bit is looked at, it changes value. I don't know how this can ever protect against someone looking at the bits and thus messing up the symmetric key between Alice and Bob. 

Reflective:
      I think the idea of quantum computing is very interesting because it would allow our computer to do so much more. I'm admittedly a bit fuzzy as why our computers could do so much more but I know it could allow much faster computation, which is always a good thing. 

Thursday, November 14, 2013

14.1 and 14.2, due November 18

Difficult:
     I don't really get how the Feige-Fiat-Shamir-Identification Scheme. I'm not really sure how the steps lead up to be able to figure anything out. It seems that there isn't a lot of complex math involved but it's mainly number theory that lets us figure anything out.

Reflective:
      I'm not really sure what exactly the use cases for this are. There was the example of the fake ATM machines in the mall. I'm wondering what other uses there are for something like this are. I can't really think of many other applications because it seems like a pretty abstract idea.

Exam Responses, due Nov 15

  • Which topics and ideas do you think are the most important out of those we have studied?
    • I think that public key cryptography is the most important thing that we have studied. It seems like it is the most widely used and thus most applicable.
  • What kinds of questions do you expect to see on the exam?
    • I think there will be questions on public key cryptography as well as primality testing. It seems this test will be more theoretical than calculations because so much of the homework and the concepts we talked about can only be done quickly on a computer. 
  • What do you need to work on understanding better before the exam?
    • I need to better understand the factorization methods as well as the strengths and weaknesses of particular algorithms. I also don't think I can find discrete logs very well using the Pohlig-Hellman or the quadratic sieve.  

Wednesday, November 6, 2013

12.1 and 12.2, due November 13

Difficult:
       I understand the idea of secret splitting but the threshold schemes don't really make sense. I can't really follow the examples very well.  I know what they are trying to do but I had a really hard time figuring out exactly how either the Shamir or Lagrange interpolation polynomial actually work. 

Reflective:
     I think that the idea of secret splitting is very ingenious and it is amazing how much it is used. It seems like it is one of the most used application of cryptography that we see in movies. I do wonder how much it is actually used in real life and not just in fiction. 

Monday, November 4, 2013

9.1-9.4, due November 11

Difficult:
      I would like some clarification on the RSA blind signature method. I'm not exactly sure why the random number k is important in the process. I'm also not sure why talked about birthday attacks on signatures when it still seems fairly difficult and easily defeated. 

Reflective:
     I think it's interesting how signatures could be created from pretty much any encryption method that uses public key cryptography. Essentially it seems that it's just the signing with the private key and then verifying the signature with the public key. Since only one person has the private key we can verify it came from them. 

8.4-8.5 and 8.7, due November 8

Difficult:
      I think I need an example of how a hash function can be used as an encryption process. It seems like we are XORing different values to obtain our ciphertext. Also the text states that "the idea of using a hash function to create a an encryption procedure can be modified to create an encryption procedure." I'm curious of how this would work and what we would have to do to make it like that. 

Reflective:
     I think that it's interesting how different approaches to the same problem can still yield a similar result such as the birthday attack and Baby Step Giant Step attack. Both are finding the discrete logarithm and even though they came from different background they still have almost the same methodology. 

8.1-8.2, due November 6

Difficult:
      I understand what a hash is and why it is useful but I had a somewhat difficult time following the example of a hash algorithm. It also seems like we can't really know if we did the hash correctly since we can't reverse the process with the hash and get the message. It seems pretty complicated that we can take in a message of any length and always produce a digest of the same length. 

Reflective:
     I think it's interesting how we can't reverse the process of a hash. It seems that if we know the algorithm of the hash we would be able to reverse the process since there aren't any private keys or anything like that. I suppose we just lose too much data in the creation of a hash to be able to reverse the process any way at all. 

Monday, October 28, 2013

7.3-7.5, due November 4

Difficult:
      I think I understand how the ElGamal Cryptosystem works but I'm not sure. I think I need an example to see it better. I'm not sure why the set of possible ciphertexts isn't the same as the set of possible plaintexts. It seems really similar to RSA but I'm a bit confused about the value of t and r. It seems like both t and r are computed and I'm not sure how you choose some k value but you don't need to send that to whoever your are sending a message to. 

Reflective:
     I think it's interesting they've created a way of exchanging keys. However it seems that with public key cryptography we wouldn't need to exchange keys. We could use RSA to encrypt a key for AES and then send the encrytped key. The receiver could then decrypt the key with RSA and then the receiver and sender both have a symmetric key. 

7.2, due November 1

Difficult:
     It seems like we can only find the discrete logarithm if p is of a moderate to small size. I don't think I understand the Pohlig-Hellman algorithm very well because there seem to be a lot of steps to it. All of these algorithms seems like they are pretty complicated. I don't really get why the computing discrete logs mod 4 is very helpful for anything either. 

Reflective:
     It seems we have good ways of factoring numbers for many subsets of problems. In general I wonder if usual RSA attacks try all of these ways because it would be easy or if they just assume that these subsets are not included in anyone's RSA key. 

6.5-6.7 and section 7.1, due October 30

Difficult:
      I think I need a quick refresher on how logarithms work again. I'm not really sure what makes a discrete logarithm different than a regular logarithm. Also, I think that a know plaintext attack on RSA is essentially a discrete logarithm attack. Because m =c^d (mod n), if we know m, c, and n, if we find d we have found the secret key of RSA. 


Reflective:
     I think it is interesting how people get worried about RSA breaking when it can take a lot of work to find the secret key. I think that people are worried that if we have a slow algorithm now, as computers get faster we will be able to break RSA even with this slow algorithm. While this is interesting, it seems we could just use larger keys which because our computers are faster will still be fast to encrypt and decrypt. 

Monday, October 21, 2013

6.4.1 and 6.4.2, due October 28

Difficult:
      I didn't understand the quadratic sieve very well at all. I couldn't even follow the example from step to step. I think I understand a super general why it should work from quadratic residue but overall I'm not sure what it's doing to get the factors. I get the last part of finding the gcd and then finding the other factor from by dividing by the gcd. 

Reflective:
     It's interesting that we don't have one set way of doing many of these problems. We have different methods that work well for different things. Many of them seem to build upon each other but often they can be quite separate but spawn from the same origin. I guess it must be difficult to combine all of these methods into a super method that we work best. 

6.4 up to just before section 6.4.1, due October 25

Difficult:
      I think that I need some clarification on the p-1  factoring algorithm. I understand that the algorithm is better because it allows to not have to try every single possible factoring but instead a subset of them. I think I need a n example to see how it works because the book just explains it in a paragraph and then leaves it alone. 

Reflective:
     I thought we were pretty sure that factorization is hard. So all of these algorithms should be slow. I guess I'm not sure why we are learning about algorithms that we know are already know are slow. It would be a big deal if we could factor numbers quickly because it would break RSA. So it seems like we are learning the best algorithms of the hard problem. 

6.3, due October 23

Difficult:
      I don't know why we need different primality tests. I don't think I see the advantages of one over the other. It seems that Fermat's Primality test is very easy so we would use that more but I don't know why we need any others. Are the other tests faster or better under certain circumstances. It seems like we would stop worrying about a primality test once we already have one instead of finding other ways to do the same thing. 

Reflective:
     I think that it's interesting how we have compositeness tests instead of primality tests. It's like we couldn't figure out how to solve a particular problem but we solved one that is related to it close enough that we can use it for the same thing. It seems all the primality tests are really compositeness tests because the problem of whether a a number is prime is too difficult. 

Monday, October 14, 2013

3.10, due October 21

Difficult:
      I follow the properties of the Jacobi and Legendre symbols but am confused when we try to use the symbols. It seems like we are using the symbols to always get either a 1 or a -1 which tell us if there is a solution or not. That part makes sense but I think I just need the examples explained as we do them because I can't really follow the logic of the book. 

Reflective:
     The Legendre and Jacobi symbols don't really seem like symbols. They appear to be the relations between two numbers. When I think of symbol it seems more like the symbol of phi or something as opposed to how the Legendre and Jacobi symbols are explained. Also the text always says to let p be an odd prime but all primes are odd except for 2 anyway so it seems that they could just say all primes that are not 2. 

3.9, due October 18

Difficult:
     I couldn't follow the examples int he book very well. They kept using (p+1)/4=3 in the sample problems but I didn't know why other than that we used that in the proof of the theorem. I think I understand why it is supposed to work, but I'm not sure how we go about and actually find the square roots.  

Reflective:
     I'm not sure how this gets used in RSA. I understand that dealing with the modulus and large primes can be helpful but I don't know how this applies directly. I see how we want to use it to get the p and q of n, which than allows us to find d and decrypt messages. But it seems it only works on finding the square root of things. 

6.2, due October 16

Difficult:
      I don't fully understand how the short plaintext attack works. It appears that we are somehow getting a subset of keys of to try instead of having to try all possibilities. I'm mainly not sure how we got that subset of things to try. I also think that timing attack are impressive but would have no idea about how to implement one. 

Reflective:
     It seems that encryption methods are always safer when we refuse to cut corners. It looks like most encryption methods are made unsafe when people try to make it quicker or easier and thus they lose some key element that made the encryption method safe. I think it's interesting that at the beginning of the chapter it said RSA is safe as long as it is implemented correctly and then went on to describe all the bad things that happen when it isn't implemented correctly. 

Monday, October 7, 2013

3.12, due October 14

Difficult:
      I don't really know what the point of saving decimals as continued fractions. It doesn't seem like it would safe space or make computing any faster. I don't get why it's useful when computers can store decimal values just fine. However, that being said it doesn't seem like we have used decimals or fractions at all yet this class so I'm not sure when that will be used either. 

Reflective:
     I'm surprised how often we are willing to take approximations. I have always thought that math had such an exact answer and you had to pretty much be exactly that. It seems interesting that as we continue to apply math we are willing to settle for what is pretty close to the right answer and it will work in the context we need it to. 

6.1, due October 11

Difficult:
     It seems that RSA relies on finding large primes to use in the algorithm, but I thought that we had mentioned earlier that it was usually difficult to generate truly random numbers. It seems that it would be even harder to generate random numbers that are a subset of all the numbers. 

Reflective:
     I am curious in how RSA stands up to symmetric key cryptography. Is is as secure as AES. I have been told that it generally is slower than many symmetric key encryption but I'm not sure why that is either. It seems like it is less complex than DES or AES but maybe there is more computing to do for it overall. 

3.6-3.7, due October 9

Difficult:
     I don't think I fully understand what the phi function is used for. I also understand what primitive roots are but I didn't see a good way to find the primitive. I could find it out by trying roots of n-1 but I don't know if that is always the best way or if there is some other way also. 

Reflective:
     I think it's amazing that even though Euler and Fermat lived so long ago we are just now begin able to use the theorem's that they created. I do wonder if they had any idea what there ideas and discoveries would be used for. 

Thursday, October 3, 2013

3.4-3.5, due October 7

Difficult:
     I don't know how the modular exponentiation method they explained works. It says that we square both sides which I understand but then it just adds some numbers together and multiplies others together. I do understand that a computer could obviously do this method much better because it would never need to take up a bunch of memory holding really big numbers. 

Reflective:
     I was wondering what the Chinese remainder theorem is used for. It doesn't really give any examples in the book and it seems more strictly math than have a cryptography use. I may have just missed that but I didn't see where the Chinese remainder theorem was used elsewhere in the reading. 

Wednesday, October 2, 2013

Q&A, due October 4

    • Which topics and ideas do you think are the most important out of those we have studied?
      • I think the most important topics we have talked about are AES and DES. I think the other ciphers helped us to better understand the math that will be used later on in the course. I think AES and DES are most important because they are more recent. 
    • What kinds of questions do you expect to see on the exam?
      • I expect more conceptual questions on the exam. I think that most of the questions will be more about the process and ideas behind encryption as opposed to just brute computing the cipher or plaintext.
    • What do you need to work on understanding better before the exam?
      • I would like to better understand linear recurrence and how we can figure out the linear recurrence given a sequence. Also, I don't understand how man-in-the-middle attacks are performed. 

Friday, September 27, 2013

5.1-5.4, due October 2

Difficult:
     I think the most difficult part to understand was the mix columns and the key schedule. I'm not really sure why the mix columns is helpful other than it just reorganizes the columns differently. I also don't fully understand how the key schedule is made. The text seemed a little confusing of how they got each key. 

Reflective:
     It seems like this method is much more complicated than anything that we have looked at before. It seems pretty intense that for every 128 bits we have to do at least 10 rounds to obscure the data. I think this would be very time consuming if we had a decently long plaintext. I was wondering if all algorithms need to be longer in order to be more secure. 

Q & A, due Sept 30

  • How long have you spent on the homework assignments? Did lecture and the reading prepare you for them?
    • I generally spend between one and two hours on the homework assignments. Usually lecture and reading prepares me for the homework,  but some of the questions with more complex math I still have a harder time with. 
  • What has contributed most to your learning in this class thus far?
    • Lecture has definitely been the most helpful. The reading is pretty dry and usually somewhat difficult to understand.  
  • What do you think would help you learn more effectively or make the class better for you?
    • I think more examples during lecture would be most helpful. I think I really understand a concept a lot better once I've seen an example of it. I think going over some of the more difficult homework problems would also be helpful. 

Monday, September 16, 2013

3.11-3.11.2, due Sept 27

Difficult:
      I don't understand the need for the irreducible polynomials. I know what they are but I don't know why we use them, or what makes them important. It seems that just changing the mod changes which polynomials are irreducible and which ones are not. 

Reflective:
     It is interesting seeing where some of the math that we learned is actually useful. In some of the math classes I've taken it always seems that the math isn't used by anyone other than math professors. It's good knowing that the math we are learning is directly applicably to the specific field of cryptography. 

4.5-4.8, due Sept 25

Difficult:
     I didn't really get the Triple DES method. A longer key would make the cipher harder to crack so why don't we just use longer keys instead of using more than one key. It seems that it would be less expensive to use a longer key as opposed to using going through the entire DES method more than once. 

Reflective:
     I think it's interesting how cryptography algorithms have to get better as software and hardware improves. It seems that DES was broken mainly using a brute-force method. They had to check a lot of keys before they found the right one. I wonder if there will come a time when cryptography can't quite live up to increasing hardware and we have to resort to something else. 

4.1, 4.2, and 4.4, due on Sept 23

Difficult:
     I didn't really understand how the expander function worked. It makes sense that it scrambles the data up more and makes it a harder to decipher. I'm not quite sure how we input the 6 bits and get 8 bits out. I don't know where we got the S-box from. I know how it works but I'm not sure who decided what the S-box was filled with. 

Reflective:
     So I learned about AES in my Computer Security class this semester. It's interesting how differently it's explained in the different ways. I think it made more sense in the Computer Security class because it was a much more formulaic approach it seemed. 

Wednesday, September 11, 2013

2.9-2.11, due on Sept 20

Difficult:
     I would like a bit of clarification on pseudo-random number generators. Some of them seemed to make a lot sense while I wasn't really clear what the others did. I also got lost on the linear shift register sequences. I understand how it requires you to have less bits in advance I was unclear as to how the proofs that were in the book completely applied to the actual encryption of the data.

Reflective:
     I think it is interesting that we actually have a cipher that is unbreakable. The OneTimePad Cipher seems so simple it's a bit hard to see how it can be so good. It makes sense that we can't really use it in practice as much because of it requires that your key be as long your text which is reasonably unfeasible if you want to encrypt something very long.

3.8, 2.5-2.8, due on Sept 18

Difficult:
     I don't think I really understood how the Playfair Cipher works. I think it's interesting that we first change the plaintext into different plaintext before we actually encrypt it. I'm not great with matrices so that will take some practice to really understand that. I just have to get used to matrix operations again.

Reflective:
     I think it's amazing that as technology has increased we've been able to come up with better and better encryption methods. Even in WWI there encryption methods weren't at all difficult compared to some of the encryption methods we have now. With the power of the computer we are now able to do so much more encrypting and decrypting quickly that our ciphers can be much more complex.

Guest Lecture, due on September 11

Difficult: 
     I think the most difficult part would be understanding how people didn't break these codes more easily. A lot of the old ways to encode were fairly simple and it seems today would easily have been solved. I suppose it is a pain to have to try and figure out some of the substitution ciphers but still  be possible. I suppose it seems that if someone really wanted to break the cipher they could have.

Reflective: 
   I think it is really interesting how some people wanted to use codes but some did not. Today, I think we are much more likely to want to do cipher things because we care much more about security. In the past they also just had less things they would need to encode. Today we have much greater access to private documents and with more access we need better security and so we want to encode things. 

Monday, September 9, 2013

2.3, due on September 16

Difficult: 
     Although I think I understand the Vigenere Cipher pretty well and how it works, I didn't' really understand how we could guess the key length. It did say that it was just a best guess. It seems by increasing the key length it would make the encryption that much harder to break. However, I guess you don't want the key length to be comparably sizable to the text itself.

Reflective: 
    We essentially used the Vigenere Cipher for our project. I just made up the algorithm before I read this chapter but I think it is funny how when I wanted to come up with a simple cipher it is so similar to another cipher that has already been done. I think that is partly why cryptography can be so difficult because it's difficult to create something that is completely new because cryptography has been around for so long. 

Friday, September 6, 2013

2.1-2.2 and 2.4, due on September 13

Difficult: 
     I don't really understand the affine ciphers. I understand that it is to strengthen the key but I don't get really how it works. The substitution ciphers and shift ciphers are logicial but I don't understand the math behind the affine ciphers that makes it different.

Reflective: 
    I thought is was interesting how long people have been using ciphers. In today's world we don't think much about it when something is encrypted. But I think that is mostly because we are so used to computers today. Computers have drastically changed how cryptography works because of things being accessible and just pure computing power. 

Wednesday, September 4, 2013

3.2 and 3.3, due on September 9

Most Difficult Part of the Reading:
     I didn't understand the working with fractions and modulo. I'm not really clear of when we should use fractions and when we shouldn't use fractions. I would also like some clarification on the Euclidean Algorithm and some examples. I don't quite get how we used it for inverse and modulo. 

Something Reflective:
    I think it is interesting how we use modulo in order to avoid using to large of numbers. We want to limit the space that it would take up on a computer and also make problems easier to solve. Other than those two reasons I'm not sure why we use modulo as much as we do. 

1.1-1.2 and 3.1, due on September 6.

Most Difficult Part of the Reading:
     I had a difficult time understanding the proofs behind the Prime Number Theorem. It makes since that all positive numbers are made up of prime numbers and I've been taught that often. I understand the proofs on a logical level that makes them believable but the actual lemmas of the proof were difficult to follow.

Something Reflective:
    I thought the most interesting part of the material was the discussion about public key encryption. I have learned a bit about RSA in one of my CS courses but I look forward to getting a better understanding of how it works. I also thought the discussion about making an encryption process that not only pays attention to how difficult it is to crack but also how quickly it can be done so it isn't burdensome.

Introduction, due on September 6

  • What is your year in school and major?
    • Senior, Computer Science
  • Which post-calculus math courses have you taken?  (Use names or BYU course numbers.)
    • Math 313
  • Why are you taking this class?  (Be specific.)
    • I need one more class to get a math minor and this class seemed like it would be most relevant to my field and could be helpful if I went into computer security. 
  • Do you have experience with Maple, Mathematica, SAGE, or another computer algebra system? 
    • No, but I have coded with Jave and C++ quite a bit so using code to solve math isn't too bad. 
  • Programming experience?  How comfortable are you with using one of these programs to complete homework assignments?
    • I am a senior in computer science so I can code in Java, C++, and C# decently well. I can probably use SAGE well enough for the purposes of the class. 
  • Tell me about the math professor or teacher you have had who was the most and/or least effective.  What did s/he do that worked so well/poorly?
    • I had Professor Lang for Math 313. I like how he handed out typed notes because it was easier to follow the lecture without having to worry about scribbling everything down as fast as I can. I disliked how he didn't give partial credit on tests. If you had a small mathematical error that you couldn't find, which caused you to get the wrong answer, you immediately lost 75% of the points for that problem even though you knew how to do the problem. 
  • Write something interesting or unique about yourself.
    •  I speak the African dialect of Twi. 
  • If you are unable to come to my scheduled office hours, what times would work for you?
    • After 4 pm Monday through Friday are the only times I have available.