Cryptology and
Coding Theory Projects
The
main goals of the course project are to
- allow
students to choose a topic of personal interest for in-depth study
- allow
students to appropriately challenge themselves
- introduce students
to working with a group to independently research a topic related to
secure and reliable communications
- provide
practice at presenting mathematics (orally and written)
- provide a
meaningful culminating experience for every student
Guidelines:
- Choose a topic and partner: You must choose a topic that
interests you and appropriately challenges you. You will decide on a project topic in
consultation with your partner.
(You will work in pairs.)
The end of this document contains a list of suggested topics, some
of which require more mathematics background than others. These ideas are broad so that you can
narrow your exact focus based on your interests. You may also propose your own
topic.
- Background research: Each person in the group must research
the chosen topic. We suggest
starting with web-searches, looking for scientific articles, and using
interlibrary-loan as necessary to procure books (plan ahead!). Your bibliography must eventually
contain at least four references, two of which must be published documents
(so a website does not count as a published document but a journal article
accessed through an online journal subscription does count as a published
document). You have to have read
the documents (or noted portions of the documents) for them to go into the
bibliography!
- Preliminary ideas: A document summarizing your preliminary ideas should be
prepared for Thursday, November 9th. During class that day, you will have an
opportunity to share ideas with classmates, to help focus your plans and
to choose a partner.
- Prepare project outline: The project outline is (tentatively) due Monday November 27th. This will count towards your
project grade and should be professionally written. It should include
- A brief description of the chosen area of study.
- A statement of the specific
goals of the project. (What do
you hope to accomplish? What exactly will you investigate?)
- An explanation of why the chosen topic is appropriate* given your
strengths, backgrounds, and interests. *Do not propose to learn about
algorithm complexity if you already know about algorithm complexity. Do propose to learn about algorithm
complexity if you have no idea what this means but it sounds interesting.
- A detailed outline of
the planned paper/oral presentation.
- Brief descriptions (2-3 sentences) of your preliminary references
(which may or may not wind up in your final bibliography).
- Prepare presentation:
- Written:
Each pair will write a roughly 10-page double-spaced (12pt font,
one inch margins) paper describing the chosen project. Diagrams, tables, and figures do not count
in the page limit. You should work to fit high quality mathematics and
exposition within the page limitation.
The paper should be professionally written and should (in most
cases) include sections as follows:
i.
Abstract – Give a short, self-contained
description of the project. This will be archived for future reference.
ii.
Introduction
- Give a brief introduction to your chosen topic and outline what you will do
in the balance of the paper (ie. Explain the goals of the paper). Indicate why this topic is exciting/useful.
iii.
Background
- Introduce any new definitions, notation, or other background information
necessary for understanding the rest of the paper.
iv.
Main
Section(s) - Describe the heart of your project. What did you learn? What theorems did you prove or results did
you discover? What examples did you
find/invent? Show off the new stuff that
you now know.
v.
Conclusions
- Wrap things up. Remind us what new
knowledge your project produced and remind us why your project is exciting/useful. You
might also draw connections among the new stuff you learned or perhaps draw
connections to another aspect of the course.
vi.
Bibliography.
vii.
Proof-read, proof-read, proof-read. This is why we do it in pairs.
Note
on Written Presentation: You
can (and should) use references to guide your write-ups of the examples,
theorems, and proofs, but you must explain the details in your own words. Proofs and examples should not be copied, but
rather explained as your group has grown to understand them. Your paper must include some original thought. For example, you might come up with a new
example, an original comparison of different systems, or a new proof of a
result. Be sure to indicate your use of references, and be sure to indicate
which parts represent original thought.
See guidelines hand-out for more information.
- Oral: Each pair will
deliver a 15 minute presentation on their project. The oral presentation will essentially
give an overview of the content of the paper to the class. Usually, the oral presentation will not
contain formal proofs. Remember,
the goal here is to explain new knowledge to your classmates. Structure your presentation as you
would hope others would structure theirs!
Make it interesting and easy to understand. Practice, practice,
practice! See guidelines hand-out for more information.
Evaluation: Please see the “Presenting Mathematics” document (linked
from daily schedule) for criteria for effective papers and oral
presentations. Keep these criteria in
mind as you proceed with your project.
These criteria will be used in the evaluation of your work. Each student will also evaluate every other
presentation.
Project Ideas
- Investigate the error-control capabilities
and the mathematics of various common check schemes. Research why the schemes were chosen and
which are “best.” You would need to
go beyond what was covered in class – perhaps studying the group theory
behind the Verhoeff check digit scheme! Why was the permutation chosen as it
was?
- Hadamard matrices:
Research mathematical knowledge about Hadamard
matrices, their use in B&W photo transmission as discussed in class,
and their use in color photo transmission.
- Investigate Modern Symmetric Cryptosystems
- D.E.S., A.E.S., (Rijndael) etc.
- The role of cryptology in voting systems
- Attacks on RSA and other cryptosystems
- Elliptic Curve Cryptography - What is it and
how does it work? (Required some
sophisticated mathematics.)
- The history of Rotor Ciphers and an
analysis of the Enigma machine.
- Quantum Cryptography: Is the future now?
- Implementing cyclic codes via shift
registers: Shift registers, as seen
in the crypto part of the course, are also used in coding theory. Cyclic codes are often used in practice
b/c they can be efficiently implemented using shift registers. This is a good project for those with CS
interests.
- The role of digital signatures in future
life: smart cards, blind signatures and hash functions. Investigate the mathematics behind this
and the social/economic implications.
- Investigate codes over the integers modulo
4 (instead of binary!)
- Public Key Infrastructure: Trusted Authorities, Public Key
Certificates etc. How does this
actually work?
- Burst Error Correction and CRC codes. What happens when errors usually occur
in bursts? (Like a scratch on a CD
or errors due to a lightning storm in the atmosphere…)
- Using GAP to solve Crypto/Coding
problems: Investigate the power of
GAP to solve hard problems – use built-in functions and new programs to
solve problems of interest. (Good for
CS interests)
- P.G.P – What is P.G.P and what is the
role of freeware in future secure communications?
- Investigate cyclic codes (Good project for students who have
taken/are taking abstract algebra)
- R.S.A. - The state of the for profit
business of communication security. Investigate and compare products and
the impact on the business.
- Automating Repeat Request Protocols
- Investigate the impact of these
technologies on industry/commerce:
Research why companies choose the level of protection that they
choose, investigate how e-commerce has changed
the business plan of a particular company.
- Or, propose your own topic!