General information:
Name:
Introduction to cryptography
Code:
int.courses-268
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Fall
Responsible teacher:
Topa Paweł (topa@agh.edu.pl)
Academic teachers:
Topa Paweł (topa@agh.edu.pl)
Module summary

The goal of this module is to familiarize students with basics of cryptography, especially with modern ciphers, digest functions and signing systems.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student is aware of of the need to ensure the security and confidentiality of information. Activity during classes
M_K002 Students knows the existing cryptographic tools and algorithms, and he can choose them depending on the needs and area applications. Activity during classes
Skills
M_U001 Students uses existing cryptographic tools to secure communication. Execution of laboratory classes
M_U002 Students is able to configure secure authentication, authorization and communication using existing tools. Execution of laboratory classes
M_U006 Student implements basic cryptographic algorithms. Execution of laboratory classes
Knowledge
M_W001 Student knows and understands basics of cryptography and cryptoanalysis. Test
M_W002 Student knows history of cryptography Activity during classes
M_W003 Student knows basics of number theory, information theory and computational complexity theory Test
M_W004 Student knows and understand the algorithms of symmetric and asymmetric cryptography Test
M_W005 Student knows and understands cryptographic protocols. Test
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student is aware of of the need to ensure the security and confidentiality of information. - - - - - - - - - - -
M_K002 Students knows the existing cryptographic tools and algorithms, and he can choose them depending on the needs and area applications. - - - - - - - - - - -
Skills
M_U001 Students uses existing cryptographic tools to secure communication. - - - - - - - - - - -
M_U002 Students is able to configure secure authentication, authorization and communication using existing tools. - - - - - - - - - - -
M_U006 Student implements basic cryptographic algorithms. - - - - - - - - - - -
Knowledge
M_W001 Student knows and understands basics of cryptography and cryptoanalysis. + - - - - - - - - - -
M_W002 Student knows history of cryptography + - - - - - - - - - -
M_W003 Student knows basics of number theory, information theory and computational complexity theory + - - - - - - - - - -
M_W004 Student knows and understand the algorithms of symmetric and asymmetric cryptography + - + - - - - - - - -
M_W005 Student knows and understands cryptographic protocols. + - + - - - - - - - -
Module content
Lectures:
  1. Introduction to cryptography

    Basic concepts of cryptography and cryptanalysis. The difference between coding and
    encryption. The formal definition of a cryptographic system. Classification of attacks on cryptographic systems. Practical security of cryptographic algorithms.

  2. Cryptography applied

    The Kerberos protocol. Pretty Good Privacy (PGP) cryptographic suite.

  3. Theoretical foundations of cryptography

    Shannon’s theory of information: amount of information, message entropy, redundancy
    language. Theoretical security of the cryptographic system. Computational complexity of algorithms and cryptography. Numbers theory.

  4. Symmetric cryptography

    Cryptography with secret key. Block and stream ciphers. Linear shift registers. RC4 algorithm. Block cipher modes of operation. Feistel’s transformation. DES and its algorithm extension. Blowfish algorithm. The AES algorithm

  5. History of cryptography and cryptanalisys

    Historical cryptographic systems. Methods of securing information in the past.
    Contemporary state of cryptography.

  6. Asymmetric cryptography

    Cryptography with public key. Public key and private key. Electronic signature. Diffie-Hellman-Merkel key exchange protocol. RSA cryptographic system. ElGamal cryptographic system. DSA cryptographic system.

  7. Digest functions and message authentication codes

    Integrity and non-repudiation of messages. Digest functions. The MD5 and the SHA family algorithms. MAC message authentication codes.

  8. Public-key infrastructure

    Public-key infrastructure. Public key certificate. Certification Authority. X.509 standard. Certificate hierarchy. Canceling certificates. The SSL/TLS protocols. OpenSSL library.

Laboratory classes:
  1. The Kerberos protocol

    Students configure Kerberos protocol for authentication in Unix environment

  2. Programming of asymmetric cryptography

    Students implement simple tool for encryption/decryption/signing using Java cryptographic library

  3. The PGP (Pretty Good Privacy) cryptographic suite

    Students practice encryption and signing electronic documents.

  4. Public-key infrastracture

    Students establish Certificate Authority and generate certificates for HTTPS servers.

  5. Programming of symmetric cryptography

    Students implement simple tool for encryption/decryption using Java cryptographic library

  6. Comparing symmetric and asymetric ciphers

    Students evaluate quality end efficiency of implemented cryptographic tool.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Participation in laboratory classes 16 h
Participation in lectures 16 h
Contact hours 8 h
Realization of independently performed tasks 20 h
Preparation for classes 18 h
Examination or Final test 2 h
Preparation of a report, presentation, written work, etc. 20 h
Additional information
Method of calculating the final grade:
  1. Positive grade for each laboratory
  2. Positive evaluation of the exam
  3. Final grade is weighted average of grades from laboratory and the exam
Prerequisites and additional requirements:

Basic Unix skills. Math knowledge.

Recommended literature and teaching resources:
  1. Contemporary Cryptography, Ralf Oppliger
  2. Modern Cryptanalysis: Techniques for Advanced Code Breaking, Christopher Swenson
  3. Cryptography Engineering: Design Principles and Practical Applications, Niels Ferguson, Bruce Schneier Tadayoshi Kohno
  4. Applied Cryptography: Protocols, Algorithms, and Source Code in C, Bruce Schneier
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

n. a.