50.020 Security

This is the official webpage for 50.020 Security, elective of the ISTDĀ  pillar. The tentative schedule for 2018 can be seen here. The old schedules from 2014, 2016 and 2017 are archived here (2014), here (2016), and here (2017).

Subject Title 50.020 Security
Pillar/Cluster ISTD
Initial Offering Fall 2014
Term Offered Term 7
Elective or Core Elective
Grading Method Letter grade
Maximum Class Size 50
Workload 3-2-7 Teaching-Lab-Homework
Subject Credits 12

Citibank Award
The security class features a three week group project to design and implement a security challenge for your classmates. The challenges can then be solved by the teams as part of a CTF we are hosting. In 2016, the three top teams were awarded cash prizes sponsored by Citybank.

Subject Description:
This course will provide students with a basic appreciation and understanding of the underlying security issues and implications of the use of various networked systems and electronic devices. Topics to be covered include overview of information systems and devices in a global network environment; introduction to cybercrimes and security issues; threats to information systems and devices; concepts for confidentiality, integrity and availability; security solutions and technologies; web security and electronic payment models; encryption algorithms.

Learning Objectives

  1. List basic security solutions and models; explain concepts for confidentiality, integrity and availability.
  2. Apply protocols used for key establishment, network encryption, and authentication to secure a system.
  3. Classify and describe common attacks and countermeasures for host, network and web security.
  4. Apply known attacks to vulnerable cryptographic primitives.
  5. Model, analyze, and apply cryptographic primitives used for encryption, secure hashing, and digital signatures.
  6. Design security solutions to achieve specific security goals in a system.
  7. Evaluate the security of existing networked systems.

Measurable Outcomes

  1. Description of the fundamental concepts of security.
  2. Application of TLS to establish an authenticated secure connection.
  3. Critical assessment and summary of real-world attacks.
  4. Demonstration of known security vulnerabilities related to incorrect use of One-time-pads and block ciphers in Electronic-Codebook mode.
  5. Design and implementation of a scheme for preimage recovery of hashes through brute force and hybrid attacks.
  6. Application of substitution ciphers, One-time-pads, and AES to preserve the confidentiality of secret data.
  7. Analysis of potential attacks on schemes for secure authentication and digital signatures.
  8. Development of security requirements for a networked system.
  9. Design and analysis of a secure system using common security technologies.
  10. Practical security assessment of a provided networked system.


50.012 Networks. If you do not meet this pre-requisite and are interested in this course, please contact me to discuss.

The exercises for this class will be mostly based on Python. Our lab will provide a live Linux environment to perform experiments and exercises. No prior experience with Linux is required.