Hardware Cryptography (replaces Mobile Security)
Warning: the course topic and contents have changed from the originally announced Mobile Security course! This is now a Hardware Cryptography course.
Corresponding entry in b-it IPEC, Aachen Campus, Bonn Computer Science, Bonn Mathematics, Bonn University.
Lecture
Time & Place
- Lab: 21-25 July 2008 and 04-22 August 2008, each day 930-1100 and 1115-1245, in room 2.1 (b-it).
(one week gap during crypt@b-it 2008)
First meeting: Monday, 21 July 2008.
Contents
This course will focus on the hardware development and implementation of cryptographic primitives, and more precisely of elliptic curve cryptosystems. No former knowledge of this domain is required from the students.
The course will start with two series of lectures introducing the necessary material: elliptic curves and their use in cryptography, followed by hardware design and the VHDL language. It will then take a more practical turn, with the design of a full-blown hardware elliptic curve cryptosystem during tutorial and lab sessions. Designs will be simulated in software, but if we have time we might also consider an actual implementation on a reconfigurable circuit!
Material
You will find here some interesting things to read, but they are in no way mandatory for this course:
- Peter J. Ashenden, The VHDL Cookbook, First Edition. 1990.
- Lawrence C. Washington, Elliptic Curves, Number Theory and Cryptography. Chapman & Hall/CRC, 2003.
Here are some slides with examples of elliptic curves used during the lectures: pdf.
We will also use some software in order to simulate and synthesize the VHDL description of our circuits. Free versions of these tools can be downloaded there:
- Altera Quartus II Web Edition Software v8.0 SP1: VHDL synthesizer, to map the VHDL description of a circuit onto an FPGA.
- ModelSim-Altera Web Edition v6.1g for Quartus II v8.0 SP1: VHDL software simulator.
Of course, you do not have to download these tools before the course, unless you want to play with them for a bit. We will anyway go through everything together during the labs.
Useful stuff
- FIPS 186-2: Digital Signature Standard (DSS): you will find here the elliptic curves as recommended by NIST, and among them K-233 and B-233 which we will use in the labs.
- Operation toolbox: a JavaScript-enhanced page to compute various operations over the finite field F2233 or over the curves K-233 and B-233. Pretty useful to test your implementations. Note that you can also save this page on your own computer and use it offline.
- Top-level VHDL and memory files:
- ecc.vhd: the top-level VHDL entity, containing the register file (data memory) and instantiating the ecc_core component;
- ecc_core.vhd: the squeleton for your ECC processor;
- data_mem.mif: initialisation file for the data memory;
- instr_mem.mif: initialisation file for the instruction memory.
Prerequisites
None.
Allocation
5 SWS, 10 credits.
- Media Informatics: Computer and Communication Technology.
- Recommendation for University of Bonn - Computer Science: A or A1, respectively.