This course provides an introduction to cryptography and the main types of primitives utilised in technical security mechanisms and security protocols embedded in widely used applications (web, messaging, data storage, data communications, etc.). It covers classical cryptosystems, private-key cryptosystems (including DES, 3DES and AES), public-key cryptosystems (including RSA, Diffie Hellman, DSA and ECC) and hashing (including SHA-1/2/3). The course discusses application security requirements and how these can be matched to cryptographic primitive security properties. The course introduces the main principles for the correct application of cryptographic techniques and elaborates on generic and specific attacks targeting cryptographic failures (e.g., wrongly implemented, or misconfigured applications). Finally, the course introduces post-quantum algorithms and quantum key distribution.
Learning Outcomes
Knowledge: Having attended and succeeded in the course, the student is able to describe the field of cryptography and its relation to security Understanding: Having attended and succeeded in the course, the student is able to explain the main types of cryptographic primitives, their applicability and their correct use Application: Having attended and succeeded in the course, the student is able to properly implement applications employing cryptographic primitives Analysis: Having attended and succeeded in the course, the student is able to attempt cryptanalysis of systems employing cryptographic primitives Synthesis: Having attended and succeeded in the course, the student is able to combine a suite of cryptographic primitives to implement complex interactions, like secure protocols Evaluation: Having attended and succeeded in the course, the student is able to evaluate the robustness of a system employing cryptographic primitives (e.g., classical, secret-key and public-key methods used as building blocks)
Student Performance Evaluation
Specific details on grading can be found on the course’ s website
The courses of the Computer Science Department are designated with the letters "CS" followed by three decimal digits. The first digit denotes the year of study during which students are expected to enroll in the course; the second digit denotes the area of computer science to which the course belongs.
First Digit
Advised Year of Enrollment
1,2,3,4
First, Second, Third and Fourth year
5,6
Graduate courses
7,8,9
Specialized topics
Second Digit
Computer Science Area
0
Introductory - General
1
Background (Mathematics, Physics)
2
Hardware Systems
3
Networks and Telecommunication
4,5
Software Systems
6
Information Systems
7
Computer Vision and Robotics
8
Algorithms and Theory of Computation
9
Special Projects
The following pages contain tables (one for each course category) summarizing courses offered by the undergraduate studies program of the Computer Science Department at the University of Crete. Courses with code-names beginning with "MATH" or "PHYS" are taught by the Mathematics Department and Physics Department respectively at the University of Crete.