Projects
Rules:
You are asked to develop either software, hardware or analytical
project.
Software projects typically involve writing a program in a highlevel
language
(C, C++, Java, etc) or assembler.
Hardware projects involve the design of a digital circuit (down
to the timing simulation
at the gate level) using available CAD tools for design of FPGAs
or ASICs.
Analytical projects involve comparative analysis of competing algorithms,
protocols, or implementations. They also may involve solving problems related
to cryptology and some other field such as number theory, physics, law,
etc.
All projects can be done individually or in a group of two or three
students. You are welcome to propose the project topic by yourself.
List of topics proposed by the instructor (to be extended):
Cryptanalysis
Implementation of cryptoalgorithms
Generation and management of cryptographic keys
Email & WWW security
Authentication & access control
Physics & cryptology
Law & cryptology
Number theory & cryptology
Cryptanalysis
Software/analytical:

Cryptanalysis
of "proprietary" ciphers included in WordPerfect, Lotus123, etc., based
on Vigenere cipher

Timing
cryptanalysis of RSA and other public key cryptosystems

Factoring
large integers using Quadratic Field Sieve or Number Field Sieve and comparison
with Lenstra's implementation of factoring over the Internet
Hardware:

RC5
breaking machine
Implementation
Software/analytical:

Multiplication
of large integers using Karatsuba and classical method

Multiplication
of large integers using Fast Fourier Transform and classical method

Modulo
reduction of large integers using classical and Barett algorithms

Modular
multiplication using Montgomery method

Implementation
of a chosen elliptic curve cryptosystem according to the IEEE 1363 standard
Hardware:

Modular
multiplication of large integers using Montgomery algorithm

Modular
exponentiation with systolic array.

Elliptic
curve cryptosystem

IDEA.
Generation and management of cryptographic keys
Software/analytical:

Evaluating
random number generators

Generating
strong prime numbers for RSA using probabilistic RabinMiller algorithm

Deterministic
method of prime number generation for RSA using Maurer method.
Analytical:

Organization
of Certification Authority for the University or large company
Email & WWW security
Software:

Online
timestamping

Simple
payment protocol for a cybermall under WWW
Analytical:

Comparison
of security standards for multimedia mail S/MIME & MOSS, analysis of
appearing implementations
Authentication and access control
Software:

Building
a simple firewall using a public domain software toolkit provided by Trusted
Information Systems
Physics & cryptology
Analytical:

Factoring
large numbers using a quantum computer according to the Shor's algorithm

Solving
a discrete logarithm problem using a quantum computer

Quantum
cryptography: implementation and security of various schemes for a quantum
key exchange
Law & cryptology
Analytical:

Export
control of strong cryptography and key escrow mechanisms

Legal
and liability issues related to acceptance of digital signatures and operation
of Certification Authorities
Number theory & cryptology
Analytical:

Choosing
an elliptic curve for cryptographic applications

Efficient
operations on points of an elliptic curve over the Galois field GF(2^n)