Skip to main content

Kuifje: Quantified Information Flow with Monads in Haskell

Tom Schrijvers

Programs that manipulate private information must usually release part of their secret to achieve anything useful. Yet, unintended leaks, which could be avoided by more careful programming, are a major concern. Quantifying the information that does flow has been proposed as a means to analyse the severity and impact of such leaks. 

This talk presents Kuifje, a domain-specific language (DSL) for Quantitative Information Flow (QIF) in Haskell. Kuifje implements the recent insight that a monadic semantics based on hyper-distributions (distributions of distributions) generalises earlier QIF approaches based on Shannon entropy for channels to different notions of entropy for programs. 

The talk develops Kuifje in a gentle fashion, starting from a simple denotational semantics for a small imperative language. This development not only benefits from Haskell’s support for monads and DSLs, but also puts two elementary functional programming patterns, monoids and folds, to good use. The result is an efficient implementation of the hyper-distribution semantics that runs interesting example scenarios.

This is talk is based on joint work with Carroll Morgan, Annabelle McIver and Jeremy Gibbons.

Speaker bio

Tom Schrijvers is senior Research Professor at the KU Leuven Department of Computer Science. His research interests include type systems and semantics, programming language design and meta-theory, and functional models for programming with side-effects such as monads and algebraic effect handlers.

 

 

Share this: