last modification 2018/12/11

Lecturer: prof.Ing. Miloš Drutarovský, CSc.

Abstract (3/2e)

Subject is focused on acquiring basic knowledge in the area of cryptography with secret and public keys, on basic types of symmetric ciphers DES, AES, RC4 and asymmetric ciphers RSA, El Gamal and ciphers based on elliptic curves. Students obtain basic knowledge about management of cryptographic keys, user authentication and authorization data using hash functions and digital signatures. To obtain basic practical experiences students will implement specific cryptografic blocks (primitives) in selected micorcontroller. After completing the course, students obtain overview about cryptography application in the area of embedded security.

Main topics:

Information about lessons, exercises and conditions to get credits are available in the document AC.pdf

Lessons will be given in the KEMT laboratory V002, Vysokoškolská 4.

Topics of final projects (GF128_multiplicationon in C)

Topics of the final exam (winter 2018)

Study materials:

Book Understanding Cryptography written by Christof Paar and Jan Pelzl will be used as the main study material. The book web page contains additional useful information including slides, errata and links to additional practical tools. Information about selected target microcontroller will be provided during next weeks.  

MCU for Final Project:

The final project will be implemented on 8-bit Analog Devices ADuC 836 MCU (a member of MicroConverters family that use MCU core with Intel 8051 instruction set). The project will be developed and tested by using free Keil C51 Evaluation Tools. The coorrect functionality will be tested in Keil uVision Debugger that provides precise simulation capability by using precise ADuC 836 simulation model. Hardware development board ADuC836EB1 (schematic, layout) will be available for hardware related testing.
The Final word on the 8051 - on-line book about Intel 8051 (local PDF).
Exercises materials (from subject Microprocessor Technology) related to Intel 8051 and ADuC836 - mt1, mt2, mt3, mt4, mt5, mt6, mt7, mt8. ADuC 83x bootload PC control software.

Useful AES implementation related resources:

Rijndael - original AES proposal submitted to the NIST contest.
AES - Silabs Application Note about AES implementation on 8051 MCU (local PDF & zip).
Extreme compact AES implementation.
ADuC83x User Download (ULOAD) Mode, MicroConverter Technical Note - uC007 (local PDF).

Useful programs and tools:

Cryptool Portal - web page of the tool with graphical user interface supporting teaching of cryptography and cryptonalysis.
Magma Calculator - environment for on-line computation by using MAGMA system optimized for algebraic computations (including ECC support). Online MAGMA calculator is free and supports only time limited  computations.
Calc - programmable "calculator" which provides for easy large numeric calculations (calc package for Windows).
OpenSSL - cryptographic library and run-time environment for cryptographic algorithms and protocols used e.g. also in SSL and TLS implementations. Links to actual instalation packages for Windows and Linux operating systems.
Dev C++ - C/C++ IDE to be used for simple C programs developed during exercises and home-works (simple  
Make Tutorial - a short introduction how to create simple makefile.

Interesting links:

PGP program - compmuter program for počítačový program for encrypted communication, basic information and history.
AES Matlab - iimplementation of AES encryption standard in Matlab by using well documented m-files.
Handbook of Applied Cryptography - electronic version of the book with detailed information about cryptographic algorithms.
Encyclopedia of Cryptography and Security - additional book with detailed information about cryptographic algorithms (online access).
RSA - original paper of R.L. Rivesta, A. Shamira, a L. Adlemana published in Communications of the ACM, v. 21, n. 2, Feb 1978.
First 100000 prime numbers.