Announcements and Special Information
CSC555
12/6 – Some preliminary notes on CA encryption.
12/5 – Exam study notes have been posted.
12/4 – What is graduate study? Perhaps we should start with Einstein's view of research:
http://en.thinkexist.com/quotation/if_we_knew_what_it_was_we_were_doing-it_would_not/10118.html
12/3 – In order to give you flexibility in the design of your program, the ciphertext part of the test data will be given
in four different formats, as shown by the samples posted here. As for the original project assignment the key will be given as a 4 x 4 array of bits.
12/2 – You may be interested in the case study of a JavaScript program developed for the 130 class. First, because it illustrates an
interesting feature of JavaScript - the ability to send functions as arguments to other functions. Second, because the case study is of the problem of computing the gcd of a several integers. Sound familiar? A slightly deeper discussion is found on the 130 homework assignment page.
11/27 – Little Ben, the Lehigh/Penn/Lockheed entry in the DARPA Urban Challenge came in 4th of 36 entrants. One of the leaders of
the Ben Franklin Racing Team, Dr. John Spletzer, will be describing the racing team's experience this Thursday at Lehigh. If you can make it, it would be worth your while.
11/27 – Files giving the heart of the encoding & decoding algorithms as well as the inverse S-Box & mix column matrix have been posted at the useful files section.
11/25B – The posting for Nov.20 HW has been amended to include the actual steps of the multiplication
process of two integers in GF(2^8). Be sure to notice that the product which is then sent to the modulo function is NOT the same as what you would get if you used the computer's calculator to test your answer. The reason for that is that the calculator is not multiplying in the Galois Field, but your program must.
11/25 – As mentioned in class, the due date for Project #3 has been changed to Dec. 6. Also, if you have not already finished, I
would like to have the ciphertext displayed as 4 x 4 arrays of 2-digit hex integers.
11/23B – A word of caution: If your decoder program calculates the key schedule from scratch, make sure you use the S-Box
(from the encoder) and not the Inverse S-Box which the decoder uses in the Inverse Byte Sub steps. Because xor(xor(x)) = x, we apply the same key schedule but in reverse order to recover the plaintext from the ciphertext.
11/23 – Step by step traces of both encoding and decoding the plaintext consisting of the first 16 letters of the alphabet have been
posted. One set uses the all 0s key; the other uses our key (i.e., the designated key for Project #3).
11/22 – The round-by-round output of various test runs has been posted in a new folder; the key schedule test runs have also been
placed there. And, I noticed that the old (incorrect) version of the Round Constants had been posted. That file was also corrected.
11/21B – Here is the key schedule for a key of 128 zeros. The test vectors for key expansion {D.1 } appear to be given column by
column instead of row by row.
11/21 – The round constants in the key schedule program have been changed in accordance with Daemen & Rijmen's book. And
the new keyschedule has been posted.
11/20B – Two more files have been posted: code for key schedule generation and the resulting key schedule. All of this has yet to
be tested and verified.
11/20 – The description of key schedule generation has been posted.
11/19C – Sample code for matrix multiplication has been posted.
11/19B – The bitwise xor table for hexadecimal digits had an error in row 1, which has now been corrected.
11/19 – A bitwise xor table for hexadecimal digits has been added to our set of files.
11/18B – A homework assignment for Nov. 20 has been posted. Notice also that the cipher text for the project should be rendered
into hexadecimal.
11/18 – A number of files that may be useful for AES have been posted in .txt.
11/15 – In keeping with the theme of the importance of incremental testing and due to the potential for complexity in the AES project
we will discuss ways that you can check each other's preliminary results. To start the ball rolling I have posted a very preliminary file for the multiplication table in GF(2^8) modulo 100011011. If you find errors, let me know. Eventually I would like to have a thoroughly tested table you can use as a touchstone for your project.
11/14b – Please be prepared to fill out a tally sheet in class on Thursday.
11/14 – The due date for Project #3 is Nov. 29; assignment description is complete.
A tally sheet is under development to guide you in incremental development of the project.
If you want, you can get the Rijndael S-Box here.
11/13 – The missing links to the homework assignment have been established. Please be ready to discuss your findings regarding the
assignment on Thursday.
11/8 – A description of the encryption steps for AES has been posted. It would be good to print this out and bring it to class.
Notice that the key expansion section is yet to be completed. Also, to augment our textbook's description of AES you may want to download several other descriptions, such as the FIPS Announcement and the original AES specs.
10/31 – The Ben Franklin racing team from Lehigh, Penn & Lockheed has reached the finals in the DARPA Grand Challenge: http://www.darpa.mil/grandchallenge/qualified_teams.asp
10/30B – The DARPA Grand Challenge is this Saturday and will be webcast. Here are a couple of their web sites:
http://www.darpa.mil/grandchallenge/docs/Countdown_Press_Release_10_23_07.pdf
http://www.darpa.mil/grandchallenge/index.asp
10/30 – The next homework assignment has been posted. This assignment will be collected.
10/29 – Since submissions for Project #2 are by email, the deadline is midnight of the due date.
10/27 – Some more material on AES and operations in a Galois Field has been posted.
10/26 – Here is a source of very large prime numbers: http://en.wikipedia.org/wiki/RSA_Factoring_Challenge. If you click on one of
the RSA numbers that have been factored, you will get a p,q pair. For example, if you click on RSA-160 you will get: http://en.wikipedia.org/wiki/RSA-160, a p-q pair of 160 decimal digits.
Another source is RSA Labs, where you can find a 576 digit and a 640 digit p-q pair.
Or, if you are looking for primes that are not that large, here are a couple of pages: http://primes.utm.edu/lists/small/millions/; http://primes.utm.edu/lists/small/small3.html; http://primes.utm.edu/notes/by_year.html.
10/25 – In preparation for Project #3, look over the posted material, especially the partially finished example and the GF-1011 multiplication table.
10/24 – For the RSA project use the plaintext found here. And here is a formal list of what to hand in.
10/22 – For those who were unable to attend the IAB meeting, since it counts as a class meeting, I would like for
you to read this
10/13 – Several larger values of p, q, e & d have been added to the RSA assignment page. A preliminary test has been run on the
new integer sets in which the plain integer 5 was raised to the e power mod n, producing the cipher integer c. This was then raised to the d power mod n to see if 5 would reappear. The results of those preliminary tests are included on that page under the column headings: #, plainInt, cipherInt, plainAgain.
In addition, I place a copy of the primes < 100K on the project website both in zipped & unzipped form (although for some reason the unzipped file opens only in Mozilprojects/rsa/dream.txtla, at least at the moment).
Finally, I have also placed code for an iterative version of the extended Euclidean algorithm adapted specifically to finding d, given e and f(n), since I found it easier to implement in a large integer version.
10/12 – The annotations for the study material are now ready.
10/11 – Preliminary study material for the MidTerm has been posted. Check back later for a more complete rendition.
Note: Make sure your browser faithfully displays all the mathematical symbols!!!
10/10b – After giving the matter some thought, if you are pressed for time, it is more important to spend time on Step #5 (trying to
have your program work on very large values of p, q, e & d) than on Step #2 (develop your own powmod from scratch). Best, of course, would be to accomplish both.
10/10 – As announced in class, the due date for Project #2 has been changed. It is now Tuesday, Oct. 30.
10/8 – The third project will be to implement the AES. If you want to look ahead, I would recommend section 3.11 and chapter 5 of
the textbook.
10/4 – An Extended Euclidean algorithm program, based on the Wikipedia article referenced below, has been posted.
10/3 – Rivest, Shamir and Adelman's early paper on the RSA can be found online: http://people.csail.mit.edu/rivest/Rsapaper.pdf.
There are also several references for the Extended Euclidean Algorithm that you may want to consult:
http://en.wikipedia.org/wiki/Extended_Euclidean_algorithm
http://www-math.cudenver.edu/~wcherowi/courses/m5410/exeuclid.pdf (in PDF format)
http://www-math.cudenver.edu/~wcherowi/courses/m5410/exeucalg.html (in HTML format)
10/2 – As an alternative for Project #2, you can work with a large integer math program in VB. There is also a QkPowMod function
available for that program which has not yet been posted.
10/1c – A simple program to produce base-128 plain integers has been posted.
10/1b – After giving the matter some thought, for several reasons it is best to use the base-128 approach, rather than the
concatenation of digits approach. In class I will explain why.
10/1 – I posted some additional values for p, q, e & d. Calculate n & f(n) for each p-q pair.
Verify for each p-q-e-d set that e*d mod f(n) = 1.
Which of the p-q-e-d sets would be appropriate to use if the cipher integers were represented in base-128?
For each of those, how many base-128 "digits" would each p-q-e-d set be appropriate for?
9/28 – Please look over this material relating to Project #2.
9/27 – The description of the RSA, Project #2, has been posted.
9/22 – Assignments for Sept. 25, Sept. 27 and a second Sept. 27 assignment have been posted, in preparation for the RSA project. You
may need to use IE or similar browser to get all the special math symbols to show up properly.
9/18 – The ciphertexts to use to test your program for project #1 have been posted. Keep in mind that for the purpose of finding the
keyset you do not have to process the entire ciphertext - only as much as you need to find the key length and the keys themselves. After that apply the keys to decrypt the entire file.
Also, as I indicated in an email, I have updated the MultiGCD file.
9/17 – To test the multiple-gcd algorithm I have written a multi-gcd program and posted it. It can definitely be cleaned up, but seems to
work. Notice also, that we can use this file to show how changing the length of the acceptable matched string results in a prospective keylength of 6 rather than 2. This is illustrated by the keylengthInfo4 & keyLengthInfo5 files and will be explained in class.
9/16 – The next assignment has been posted. Although it covers two class days, you should get started on it as soon as possible. In
preparation for it and other work leading to the RSA algorithm, a number theory section has been posted.
9/13b – A folder for the final stage of producing the plaintext has been added to our Vigenere section. Please pay particular attention to the concept of iterative deepening as applied to the "odometer" setting approach described in the detailed V-decrypt algorithm.
9/13 – The function for calculating the Fee Table has been posted. Also, a zipped folder containing an executable and information for guessing the keyset (Step #3).
9/12 – The algorithms page for the Vigenere has been updated and a sample executable has been posted.
9/11b – Info regarding keynote speaker for PACISE 2008 conference, John Spletzer, CS professor at Lehigh:
http://www.cse.lehigh.edu/~spletzer/
9/11 – To help with the project I am writing out sample algorithms for each Step. As I have time I will update that page until all algorithms have been completed.
9/10 – Apparently there is an error in the C++ Vigenere program, as discovered by a vigilant fellow student. You may want to check
this out before relying heavily on the program: "Also I think I found an error in vigenere.cpp. Line 60 is a while loop. I believe it outputs the eof as an extra cipher character. To correct input the first plain text character before the while loop. Check if eof. Encode the character. And then input the next plain text just before it loops back."
9/9 – I strongly recommend that you consider KTA, a student organization of, by and for CS majors.
9/4 – Please note that for Sept. 6th problems 4(c) and 4(d) have been removed. The proofs given in the book using gcd are much sharper.
9/2 – The Reading Report order and the September 6 assignment has been posted, along with the
answers for the August 30th assignment. Also, the due date for the first project has been changed.
8/31 – If you have difficulty accessing the books on reserve in the library read some of the history of cryptography pages found on the Web.
8/30c – A temporary link has been established to information relevant to Project #1 from the Info Security website. If you get a chance, peruse this page and especially download the FindKeyLenExample and study the material there.
8/30b – Have you considered ACM student membership? This may be a good time to learn more about THE professional society for computer scientists. Student membership is described here. The quick join application form is here.
8/30 – In preparation for our discussion of Vigenere decryption, try your hand at recovering the plaintext from this shift cipher encryption. Keep in mind that all non-alphabetic characters in the plaintext have been ignored in producing the ciphertext.
Or, if you would like to start with something a bit easier, here is an encryption of the same plaintext with blanks replacing all non-alphabetic characters. After that you can try your hand at a second shift cipher encryption without blanks.
8/29b – A description of Project #1 along with accompanying information has been posted. Please look it over before class.
8/29 – Welcome to class! Please check this page regularly for information that will be posted.
8/28b – Here is a good way to enter into the professional conversation: