Announcements and Special Information

CSC555

 

12/6Some preliminary notes on CA encryption.

 

12/5Exam study notes have been posted.

 

12/4What 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/3In 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/2You 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/27Little 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/27Files 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/25BThe 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/25As 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/23BA 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/23Step 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/21BHere 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/21The 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/20BTwo 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/20The description of key schedule generation has been posted.

 

11/19C – Sample code for matrix multiplication has been posted.

 

11/19BThe bitwise xor table for hexadecimal digits had an error in row 1, which has now been corrected.

 

11/19A bitwise xor table for hexadecimal digits has been added to our set of files.

 

11/18BA homework assignment for Nov. 20 has been posted.  Notice also that the cipher text for the project should be rendered

into hexadecimal.

 

11/18A number of files that may be useful for AES have been posted in .txt.

 

11/15In 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/14bPlease be prepared to fill out a tally sheet in class on Thursday.

 

11/14The 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/13The missing links to the homework assignment have been established.  Please be ready to discuss your findings regarding the

assignment on Thursday.

 

11/8A 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/31The 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/30The next homework assignment has been posted.  This assignment will be collected.

 

10/29Since submissions for Project #2 are by email, the deadline is midnight of the due date.

 

10/27Some more material on AES and operations in a Galois Field has been posted.

 

10/26Here 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/25In preparation for Project #3, look over the posted material, especially the partially finished example and the GF-1011 multiplication table.

 

10/24For the RSA project use the plaintext found here.  And here is a formal list of what to hand in.

 

10/22For those who were unable to attend the IAB meeting, since it counts as a class meeting, I would like for

you to read this

paper: http://www.research.ibm.com/journal/sj/421/ganek.pdf
and submit a 1-2 page typed summary.
 

10/13Several 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/12The annotations for the study material are now ready.

 

10/11Preliminary 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/10bAfter 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/10As announced in class, the due date for Project #2 has been changed.  It is now Tuesday, Oct. 30.

 

10/8The 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/4An Extended Euclidean algorithm program, based on the Wikipedia article referenced below, has been posted.

 

10/3Rivest, 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/2As 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/1cA simple program to produce base-128 plain integers has been posted.

 

10/1bAfter 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/1I 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/28Please look over this material relating to Project #2.

 

9/27The description of the RSA, Project #2, has been posted.

 

9/22Assignments 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/18The 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/17To 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/16The 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/13bA 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/13The 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/12The algorithms page for the Vigenere has been updated and a sample executable has been posted.

 

9/11bInfo regarding keynote speaker for PACISE 2008 conference, John Spletzer, CS professor at Lehigh:

 

http://www.cse.lehigh.edu/~spletzer/
http://video.google.com/videoplay?docid=-3475636757150021405
http://video.google.com/videoplay?docid=9118034119327643376
http://www.darpa.mil/grandchallenge/index.asp
http://www.darpa.mil/grandchallenge/Teams/TheBenFranklinRacingTeam.asp
 

9/11To 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/10Apparently 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/9I strongly recommend that you consider KTA, a student organization of, by and for CS majors.

 

9/4Please 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/2The 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/31If you have difficulty accessing the books on reserve in the library read some of the history of cryptography pages found on the Web.

 

8/30cA 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/30bHave 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/30In 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/29bA description of Project #1 along with accompanying information has been posted.  Please look it over before class.

 

8/29Welcome to class!  Please check this page regularly for information that will be posted.

 

8/28bHere is a good way to enter into the professional conversation:

            http://www.lehigh.edu/~inacout/STEMConference.html