Master Practical Course: Design of Secure Communication Systems


How Standards Proliferate

  • SWS: 4, ECTS: 7
  • Organiser: Prof. Dr. Klaus Wehrle
  • TAs: Oscar Soria Dustmann, Daniel Schemmel, Felix Rath
    Please direct all organisational inquiries to Oscar.
  • Course Language: English
  • Important Dates:
    • The Kick-off meeting has been moved to 2017-08-24T13:30.
    • Course begins: 11th of October at 10:15 (2017-10-11T10:15:00).
    • Weekly meetings every Wednesday at 10:15-11:45
    • Final presentation: January/February.


Course subjects

One of the most important rules of cryptography is: "Never implement your own crypto-functions!" In this practical course we will completely and utterly wreck that rule. Instead of using standardised approaches such as TLS and their implementation counterparts such as OpenSSL, students of this course will standardise and implement their own protocol.

Using symmetric and asymmetric algorithms, Message Authentication Codes and a Zero Knowledge proof, we will create an authentication method with the whole course. Then each group will implement this standard and try to achieve interoperability with the other groups. A final presentation will conclude the course.

The following technologies are sure to be featured in this course:

  • SSH to access the development and testing infrastructure we will provide
  • GIT as a version control system
  • C++ 17 (ISO 14882:2017)
  • Linux sockets for raw data transfer
  • RSA as an encryption primitive to establish a client-to-server connection
  • Symmetric cryptography to secure the actual connection
  • Message Authentication Codes to ensure the authenticity of transmitted data
  • Zero Knowledge Proofs to identify the client

What knowledge do I need?

We expect some basics from the participants in order to make this course work:

  • Elementary knowledge of network programming and software development
  • Familiarity with some of the technologies listed above
  • Attendance to all meetings and timely submission of tasks
  • Respecting coding standards
  • Capacity to teamwork and active participation in your group
  • Firm grasp of either C, C++ or both
  • The following Bachelor base lectures will be of relevance in this practical course
    • Programmierung
    • Betriebssysteme und Systemsoftware
    • Praktikum Systemprogrammierung
    • Berechenbarkeit und Komplexität
    • Datenstrukturen und Algorithmen
  • Further, we recommend having attended the lecture Communication Systems Engineering
- Impressum | Datenschutz -