Projects

Rules:

You are asked to develop either software, hardware or analytical project.
Software projects typically involve writing a program in a high-level 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 E-mail & WWW security Authentication & access control Physics & cryptology Law & cryptology Number theory & cryptology

Cryptanalysis

Software/analytical:

  1. Cryptanalysis of "proprietary" ciphers included in WordPerfect, Lotus1-2-3, etc., based on Vigenere cipher
  2. Timing cryptanalysis of RSA and other public key cryptosystems
  3. Factoring large integers using Quadratic Field Sieve or Number Field Sieve and comparison with Lenstra's implementation of factoring over the Internet

Hardware:

  1. RC-5 breaking machine

Implementation

Software/analytical:

  1. Multiplication of large integers using Karatsuba and classical method
  2. Multiplication of large integers using Fast Fourier Transform and classical method
  3. Modulo reduction of large integers using classical and Barett algorithms
  4. Modular multiplication using Montgomery method
  5. Implementation of a chosen elliptic curve cryptosystem according to the IEEE 1363 standard

Hardware:

  1. Modular multiplication of large integers using Montgomery algorithm
  2. Modular exponentiation with systolic array.
  3. Elliptic curve cryptosystem
  4. IDEA.

Generation and management of cryptographic keys

Software/analytical:

  1. Evaluating random number generators
  2. Generating strong prime numbers for RSA using probabilistic Rabin-Miller algorithm
  3. Deterministic method of prime number generation for RSA using Maurer method.

Analytical:

  1. Organization of Certification Authority for the University or large company

E-mail & WWW security

Software:

  1. On-line time-stamping
  2. Simple payment protocol for a cybermall under WWW

Analytical:

  1. Comparison of security standards for multimedia mail S/MIME & MOSS, analysis of appearing implementations

Authentication and access control

Software:

  1. Building a simple firewall using a public domain software toolkit provided by Trusted Information Systems

Physics & cryptology

Analytical:

  1. Factoring large numbers using a quantum computer according to the Shor's algorithm
  2. Solving a discrete logarithm problem using a quantum computer
  3. Quantum cryptography: implementation and security of various schemes for a quantum key exchange

Law & cryptology

Analytical:

  1. Export control of strong cryptography and key escrow mechanisms
  2. Legal and liability issues related to acceptance of digital signatures and operation of Certification Authorities

Number theory & cryptology

Analytical:

  1. Choosing an elliptic curve for cryptographic applications
  2. Efficient operations on points of an elliptic curve over the Galois field GF(2^n)