You must select a project from the
list below (or obtain instructor approval for
a project not on the list).
The precise details of your project will vary slightly
depending on the topic you select, but, in general,
you will be expected to do all of the following:
Study your selected cryptosystem
Write software to implement the system
Provide a detailed analysis of at least one attack on the system
Write software to implement an attack the system
Estimate the work factor for your attack
Conduct computational experiments to verify your analysis
Provide complete solutions for all problems in the Applied Cryptanalysis
book that relate to your selected project (if applicable)
In summary, you must become an expert on the
system that you choose to attack, and your work
must demonstrate your newfound expertise.
You are expected to work with a partner.
All projects will be
ranked against all other projects.
You must select your project topic by
TBD.
Instructor approval of your topic is required.
This must be done via email.
The topics are first come, first served.
For your email, use subject line "CS265-01 Cryptanalysis Topic"
or "CS265-02 Cryptanalysis Topic" as appropriate.
Send your email to
stamp@cs.sjsu.edu.
If I have any concerns regarding
your selected topic, I will let you
know promptly.
It is to your advantage to spend some effort
to initially select a good topic.
All software must be written in C.
In most cases, the number of lines of code will be relatively
small, but the coding will be technical
and challenging.
You must write a report that includes a detailed
description
and analyzing your results. There is no minimum or maximum
length for this paper, but quality is far
more important than quantity. Your paper should be
concise and to the point. Your grade for the project
will be largely determined by the content and
substance of your paper. While this is not 200W,
poor grammar, usage, organization, etc.,
will definitely not help your cause
and may detract significantly from your grade.
Every page of your report must include the
authors' names and email addresses.
Papers may be submitted to
www.turnitin.com,
an online plagiarism detection tool. If the
instructor determines that
you have committed plagiarism, you will fail the course
and an academic dishonesty report will be submitted.
The official
SJSU policy on academic dishonesty (including plagiarism)
can be found at http://www2.sjsu.edu/senate/s98-1.htm.
On or before the due date,
submit all material (including source code)
via email to the instructor at
stamp@cs.sjsu.edu.
Put all info in a single zip file named
Lastname1_Lastname2.zip, where Lastname1 and
Lastname2 are the last names of you and your partner.
The subject line of the email must read
"CS265-01 Cryptanalysis Project"
or "CS265-02 Cryptanalysis Project", as appropriate.
Finally,
it is imperative that you begin
working on this project immediately
and that you work on it consistently.
This is not the type of project that can be completed in
a few days, no matter how many hours you
work each day. It is also not the kind
of project that you can drop and easily pick
up where you left off. These are highly
technical and challenging problems that require constant
and ongoing effort to make any real progress.
Topics
Note that
it may be possible to select a topic not
on this list, but instructor approval is required.
Enigma (Section 2.2)
Purple (Section 2.3)
Sigaba, phase 1 (Section 2.4)
Sigaba, phase 2 (Section 2.4)
Shift registers and stream ciphers (Section 3.2)
ORYX (Section 3.3)
RC4, as used in WEP (Section 3.4)
PKZIP (Section 3.5)
Hellman's TMTO (Section 4.4)
CMEA (Section 4.5)
Akelarre (Section 4.6)
FEAL (Section 4.7)
Hashing basics and Nostradamus attack (Section 5.2)
MD4 (Section 5.3)
MD5, Wang's differentials (Section 5.4)
MD5, attack implementation (Section 5.4)
MD5, "meaningful" collision (Section 5.4)
Merkle-Hellman knapsack (Section 6.2)
Diffie-Hellman and RSA basics (Sections 6.3 and 6.5)