Applying Privacy-Enhancing Technologies

Level: Advanced Beginner

Cost: $1,000

Length: three full days of classroom instruction

Instructor: Bill Garrison

Privacy is an increasingly significant concern in our modern, connected society. We all share personal information on a daily basis with a wide range of organizations. Although at times such sharing can be intentional and beneficial for the user, there are instances where information is shared against the user’s will, used for purposes that the user did not expect, revealed to entities other than those approved by the user, or used to infer additional information that the user did not intend to reveal.

Learn how and why information is shared through computer systems in Applying Privacy-Enhancing Technologies. Study several different scenarios in which information sharing is either unavoidable or (to some extent) desirable. Examine several privacy enhancing technologies (PETs) and how these can be put to use by software developers to defend the privacy of their users.

Skills You’ll Learn

  • Apply a privacy-oriented mindset and thought process to modeling electronic systems, their interactions with the environments in which they are deployed, and the information they reveal to various entities
  • Recognize potential privacy issues and the threats they present—even in systems that employ cryptographic techniques
  • Understand a wide range of languages for representing access control policies and determine which should be used for a given system and deployment
  • Quantify the level of information revealed in a data release containing potentially identifying information to avoid mistakes made by companies in the past

Before taking this course, you should be able to:

  • Describe the basic functions of a computer's hardware components (e.g., memory, storage, CPU, motherboard, I/O devices) and operating system / kernel (e.g., memory management, scheduling, providing an interface with storage and I/O devices).
  • Read, understand, and analyze algorithms expressed in pseudocode and/or common programming languages such as Python, Java, JavaScript, and C.
  • Comfortably interact with a Unix command-line interface (e.g., the terminal in Mac, Linux, or WSL: Windows Subsystem for Linux).
  • Explain the high-level function of common network protocols and concepts. This should include DNS, TCP/IP, HTTP, routers and routing, Wi-Fi, and MAC and IP addresses.
  • Understand mathematical concepts typically taught in Discrete Mathematics (e.g., first-order logic, modular arithmetic and congruencies, functions, summations, combinations and permutations, discrete probability).