# Site ## Pages - [Page not found](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/404/): That page doesn't exist, or it has moved since you last looked - [Assessment](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/assessments/): Every piece of graded work in the course, what it is worth, and when it is due. - [Capstone Design Review](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/assessments/capstone-design-review/): The semester's method, applied once in full — a device, an adversary, and a ranked, quantified list of which channels apply - [Channel Report](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/assessments/channel-report/): A full treatment of one of the seven channels the course argues, written to the same standard the lectures introducing them were written to - [Trace Analysis Lab](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/assessments/trace-analysis-lab/): Reading an unannotated power trace against the program that produced it, without a lecture walking you through it first - [Lectures](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/): The twelve-week argument, one line per week, and the lecture behind each line. - [What a machine says without meaning to](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-01/): The opening lecture — stating the course's thesis and the shape of the twelve weeks that argue it - [Acoustic emanations](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-02/): What a keyboard's sound reveals about what was typed on it, and how far the effect generalises - [Reading a power trace](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-03/): Differential power analysis, and why a device's current draw is close to a printout of the arithmetic it is doing - [Timing as a channel](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-04/): When a comparison's running time depends on how much of the secret it agrees with, and how far that reaches over a network - [Radiation nobody asked for](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-05/): Van Eck phreaking, TEMPEST, and what it costs to stop a display's own electronics from broadcasting what it shows - [What a shared cache gives away](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-06/): Reading a neighbouring process's memory-access pattern through nothing but the timing of your own cache hits and misses - [Compromising reflections](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-07/): Recovering a screen's contents from its reflection in glasses, a teapot, or an eyeball, at a distance and after the fact - [Heat that outlasts the keystroke](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-08/): Thermal imaging of a keypad after use, and why this channel's clock keeps running after the exploit's own action stops - [Establishing that the hardware is shared](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-09/): Colocation as a precondition every shared-hardware channel depends on, and as a problem a provider can defend on its own terms - [The leakage taxonomy](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-10/): Putting one rubric under seven individually-argued channels, and attaching a number to what each of them actually reveals - [Closing a channel in software](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-11/): Constant-time programming as a discipline, and what it costs to actually practise it - [Choosing which channels to defend](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/lectures/week-12/): The closing lecture — turning a semester of separately-argued channels into one design method with a stated stopping point - [People](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/people/): Who teaches the course, and how to reach them. - [Idris Fenn](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/people/idris-fenn/): Tutor. Runs the acoustic, cache, optical and thermal weeks, and half the weekly Bench sessions. - [Marisol Quaye](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/people/marisol-quaye/): Convenor. Works on power and electromagnetic analysis, and is responsible for the shape of the semester. - [Policies and support](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/policies/): The course-wide rules for late work, extensions, academic integrity and getting help. - [Noticing a leak](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/01-noticing-a-leak/): The first Bench — treating a machine as something that emits, not just something that computes - [Listening for keys](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/02-listening-for-keys/): Recording a keyboard, and finding out how much of what was typed survives in the sound alone - [Tracing by hand](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/03-tracing-by-hand/): Reading a captured power trace against the code that produced it, one operation at a time - [Timing a comparison](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/04-timing-a-comparison/): Measuring how long a string comparison takes, and watching the measurement get more honest as the sample size grows - [Shielding a room](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/05-shielding-a-room/): Pricing out what it would take to stop a monitor's electromagnetic emissions from leaving the room they are generated in - [Mapping a shared cache](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/06-mapping-a-shared-cache/): Timing memory accesses to work out, without any special privilege, which cache lines a second process touched - [Measuring a reflection](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/07-measuring-a-reflection/): Recovering readable text from a photograph of light bounced off something that was never meant to be a display - [Timing a decay](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/08-timing-a-decay/): Measuring how fast a keypad forgets what was pressed on it, and finding the two different moments at which recovery stops working - [Sharing a tenant](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/09-sharing-a-tenant/): Working out, from the outside, whether two processes are colocated on the same physical machine - [Scoring a leak](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/10-scoring-a-leak/): Attaching a number to how much a channel reveals, then using the numbers to build two rankings that disagree - [Rewriting for constant time](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/11-rewriting-for-constant-time/): Taking a function that leaks through its running time and rewriting it so the leak is gone, not just smaller - [Defending a design](https://comp4020-agentic-coding-studio.github.io/comp4020-ass2-marcuszorian/sessions/12-defending-a-design/): A dry run of the capstone review, done as peer critique before it counts