SE547: Concurrent noninterference [15/23] Previous pageContentsNext page

Noninterference for concurrent programs is much harder. Thread α:

  while (trigger0H == 0) {}  resultL = 1;
  trigger1H++

Thread β:

  while (trigger1H == 0) {} resultL = 0;
  trigger0H++;

Thread γ:

  if (secretH == 0) { trigger0H++; } else { trigger1H++; }

What happens in initial memory { secretH = 0, everything else = 0 }?

What happens in initial memory { secretH = 1, everything else = 0 }?

Smith and Volpano scale this up to leak an n-bit PIN, not just one bit.

Previous pageContentsNext page