• Overview
  • Course Highlights
  • Takeaways
  • CS 161: Computer Security

    Grade Received: A

    Go | Cryptography | Hacking

    Link: Course Website

    Overview

    Introduction

    CS 161 is UC Berkeley’s undergraduate course in computer security. It provides a comprehensive introduction to cryptography, system security, web security, and network security/architecture. The course emphasizes understanding security principles, identifying vulnerabilities, and designing systems that are resistant to attacks.

    Key Topics Covered

    1. Cryptography: Symmetric Key Encryption, Public Key Cryptography, Digital Signatures, Hash Functions.

    2. System Security: Memory Safety (Buffer Overflows, Use-After-Free), Secure Software Development, Exploits (e.g., Stack Smashing, ROP), Mitigation Techniques (ASLR, Stack Canaries, DEP).

    3. Web Security: Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), SQL Injection, Same-Origin Policy.

    4. Network Security: Transport Layer Security (TLS), Man-in-the-Middle Attacks, TCP/IP Protocol Analysis, DNS and HTTP Security.

    Coursework Highlights

    Project 2

    none

    Implemented a simplified encryption scheme that provided secure sharing of files across multiple users.

    I worked alongside a partner to develop the scheme as well as the test suite using Go. We passed all but 2 test cases putting our score in the 90th percentile of implementations

    Takeaways...

    Security is not a single feature but a mindset integrated into every stage of software development.

    Understanding how attackers think is essential for designing effective defenses.

    Balancing usability, performance, and security is a constant challenge in system design.

    I thoroughly enjoyed the Web Security half of this course because of my interest in Capture The Flag Challenges (CTFs). Project 2 is one of the projects I'm most proud of because it showed me that putting a lot of time and considering into my work will often yield good results.